studiograph 1.3.44-next.1 → 1.3.44-next.3
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/server/index.js +36 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes/insights-api.d.ts +7 -3
- package/dist/server/routes/insights-api.js +52 -21
- package/dist/server/routes/insights-api.js.map +1 -1
- package/dist/server/ws-hub.d.ts +6 -1
- package/dist/server/ws-hub.js.map +1 -1
- package/dist/services/auth-service.d.ts +13 -0
- package/dist/services/auth-service.js +52 -0
- package/dist/services/auth-service.js.map +1 -1
- package/dist/services/insights.d.ts +18 -11
- package/dist/services/insights.js +121 -77
- package/dist/services/insights.js.map +1 -1
- package/dist/web/_app/immutable/assets/3.zsEg_MDN.css +1 -0
- package/dist/web/_app/immutable/assets/{7.CObh-s2-.css → 7.D55lTQ_F.css} +1 -1
- package/dist/web/_app/immutable/chunks/{Be5VhuaI.js → APIqItee.js} +1 -1
- package/dist/web/_app/immutable/chunks/B-PHzYeY.js +1 -0
- package/dist/web/_app/immutable/chunks/{JDb8RpWX.js → B3NI-DOv.js} +1 -1
- package/dist/web/_app/immutable/chunks/{B-eIKuyV.js → BDTSG9D-.js} +1 -1
- package/dist/web/_app/immutable/chunks/{Dg_GUhrt.js → BEbZenUn.js} +1 -1
- package/dist/web/_app/immutable/chunks/{SJusBvJH.js → BHue2Ock.js} +1 -1
- package/dist/web/_app/immutable/chunks/{DRJ9YW_E.js → BPXdu_FX.js} +1 -1
- package/dist/web/_app/immutable/chunks/{D0zbd2ZV.js → BR3Oh1Lv.js} +1 -1
- package/dist/web/_app/immutable/chunks/{DYVSnKKh.js → BYKARDRw.js} +1 -1
- package/dist/web/_app/immutable/chunks/BfEy5AjR.js +2 -0
- package/dist/web/_app/immutable/chunks/{BJimep0Q.js → BgBJ0u3M.js} +1 -1
- package/dist/web/_app/immutable/chunks/{P7PfXw_H.js → Bnl5ADsW.js} +1 -1
- package/dist/web/_app/immutable/chunks/{Dv65pOU4.js → Bolw6cIp.js} +1 -1
- package/dist/web/_app/immutable/chunks/{7lzM-85A.js → Bt5_mycY.js} +1 -1
- package/dist/web/_app/immutable/chunks/C0v9FrTH.js +1 -0
- package/dist/web/_app/immutable/chunks/CB2-7g10.js +1 -0
- package/dist/web/_app/immutable/chunks/{DEyrdHQB.js → CFtRXHDP.js} +1 -1
- package/dist/web/_app/immutable/chunks/{BA_Wro7X.js → CRnhIQbv.js} +1 -1
- package/dist/web/_app/immutable/chunks/CSzKZPD4.js +1 -0
- package/dist/web/_app/immutable/chunks/Cc0c675R.js +1 -0
- package/dist/web/_app/immutable/chunks/{RGHlrGBn.js → D-yNNNdf.js} +1 -1
- package/dist/web/_app/immutable/chunks/{DTDfEpZd.js → D2C1YupD.js} +1 -1
- package/dist/web/_app/immutable/chunks/{BtJ5VKKi.js → DCVmM0L5.js} +1 -1
- package/dist/web/_app/immutable/chunks/{CdvQjHNy.js → DHtLlmE0.js} +1 -1
- package/dist/web/_app/immutable/chunks/DNldxAbC.js +4 -0
- package/dist/web/_app/immutable/chunks/{9QAsBMIK.js → DQ5NTKSo.js} +1 -1
- package/dist/web/_app/immutable/chunks/{CNVuHNwC.js → DQYNi3YK.js} +1 -1
- package/dist/web/_app/immutable/chunks/{CfuRx7rA.js → DSh-OF2y.js} +1 -1
- package/dist/web/_app/immutable/chunks/{Cwkp_c4R.js → DT3KtxWU.js} +1 -1
- package/dist/web/_app/immutable/chunks/{mkNdSDMf.js → DiWKchgv.js} +1 -1
- package/dist/web/_app/immutable/chunks/HVmKTSmh.js +1 -0
- package/dist/web/_app/immutable/chunks/{fKdE_Jx_.js → KHKAD2Ng.js} +1 -1
- package/dist/web/_app/immutable/chunks/{BH82yShn.js → Sk0ODu4Y.js} +1 -1
- package/dist/web/_app/immutable/chunks/{Bypyvp-Q.js → azUmHUDT.js} +1 -1
- package/dist/web/_app/immutable/chunks/{CajNsaOw.js → b0XUoOIH.js} +2 -2
- package/dist/web/_app/immutable/chunks/{DP6MOIr2.js → lsAKkphT.js} +1 -1
- package/dist/web/_app/immutable/chunks/{BLi1Oegj.js → vZ2iBqLE.js} +1 -1
- package/dist/web/_app/immutable/entry/app.BuNYNoxY.js +2 -0
- package/dist/web/_app/immutable/entry/start.6840wwQK.js +1 -0
- package/dist/web/_app/immutable/nodes/0.Dowq8M1Z.js +2 -0
- package/dist/web/_app/immutable/nodes/1.UNZ7IKS_.js +1 -0
- package/dist/web/_app/immutable/nodes/{10.BqjRpXN6.js → 10.7pt8gUOi.js} +1 -1
- package/dist/web/_app/immutable/nodes/2.B5L8POz_.js +84 -0
- package/dist/web/_app/immutable/nodes/3.B1Y1g0du.js +1 -0
- package/dist/web/_app/immutable/nodes/4.BerDMn5m.js +11 -0
- package/dist/web/_app/immutable/nodes/{5.pB3H4l7g.js → 5.IM34i9-W.js} +1 -1
- package/dist/web/_app/immutable/nodes/6.DPwydXYm.js +2 -0
- package/dist/web/_app/immutable/nodes/7.DpSO-I2k.js +2 -0
- package/dist/web/_app/immutable/nodes/{8.B5sO5Rkn.js → 8.BVUyEEut.js} +1 -1
- package/dist/web/_app/immutable/nodes/{9.DOysjWYm.js → 9.8nTMvuWx.js} +1 -1
- package/dist/web/_app/version.json +1 -1
- package/dist/web/index.html +11 -12
- package/package.json +1 -1
- package/dist/web/_app/immutable/assets/3.CHSDCrUY.css +0 -1
- package/dist/web/_app/immutable/chunks/BZd_7gpI.js +0 -1
- package/dist/web/_app/immutable/chunks/CAEA_aBe.js +0 -1
- package/dist/web/_app/immutable/chunks/CHDa87Lu.js +0 -1
- package/dist/web/_app/immutable/chunks/D18-Aspv.js +0 -1
- package/dist/web/_app/immutable/chunks/DQ_O96iG.js +0 -1
- package/dist/web/_app/immutable/chunks/DUsnWwWN.js +0 -1
- package/dist/web/_app/immutable/chunks/DgMUDNqD.js +0 -4
- package/dist/web/_app/immutable/entry/app.FJ-QaQhu.js +0 -2
- package/dist/web/_app/immutable/entry/start.Cae6DI7N.js +0 -1
- package/dist/web/_app/immutable/nodes/0.tyq0tjYR.js +0 -2
- package/dist/web/_app/immutable/nodes/1.D-QPCIcu.js +0 -1
- package/dist/web/_app/immutable/nodes/2.CogYiW3g.js +0 -84
- package/dist/web/_app/immutable/nodes/3.CQ8SfijF.js +0 -1
- package/dist/web/_app/immutable/nodes/4.BS-4PSr6.js +0 -11
- package/dist/web/_app/immutable/nodes/6.CKD5i0Ve.js +0 -2
- package/dist/web/_app/immutable/nodes/7.au7lCUbq.js +0 -2
|
@@ -1,44 +1,45 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Insights Service
|
|
3
3
|
*
|
|
4
|
-
* Generates AI-driven insights by analyzing entities across collections
|
|
5
|
-
*
|
|
4
|
+
* Generates AI-driven insights by analyzing entities across collections,
|
|
5
|
+
* personalized by the user's home brief. Insights surface actionable
|
|
6
|
+
* patterns: risks, relationship health, opportunities, and graph quality.
|
|
7
|
+
*
|
|
8
|
+
* Adapted from feat/insights-home reference implementation.
|
|
6
9
|
*/
|
|
7
|
-
import { join } from 'path';
|
|
8
|
-
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
9
10
|
import Anthropic from '@anthropic-ai/sdk';
|
|
10
|
-
import { resolveApiKey, resolveProvider, loadUserConfig } from '../core/user-config.js';
|
|
11
|
-
const INSIGHTS_FILE = 'insights.json';
|
|
12
|
-
/**
|
|
13
|
-
* Read cached insights from disk.
|
|
14
|
-
*/
|
|
15
|
-
export function readInsights(workspacePath) {
|
|
16
|
-
const filePath = join(workspacePath, '.studiograph', INSIGHTS_FILE);
|
|
17
|
-
if (!existsSync(filePath))
|
|
18
|
-
return null;
|
|
19
|
-
try {
|
|
20
|
-
return JSON.parse(readFileSync(filePath, 'utf-8'));
|
|
21
|
-
}
|
|
22
|
-
catch {
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Save insights to disk.
|
|
28
|
-
*/
|
|
29
|
-
function saveInsights(workspacePath, data) {
|
|
30
|
-
const dir = join(workspacePath, '.studiograph');
|
|
31
|
-
if (!existsSync(dir))
|
|
32
|
-
mkdirSync(dir, { recursive: true });
|
|
33
|
-
writeFileSync(join(dir, INSIGHTS_FILE), JSON.stringify(data, null, 2), 'utf-8');
|
|
34
|
-
}
|
|
11
|
+
import { resolveApiKey, resolveProvider, resolveModelId, loadUserConfig } from '../core/user-config.js';
|
|
35
12
|
/**
|
|
36
13
|
* Gather entity summaries for insight generation.
|
|
37
|
-
*
|
|
14
|
+
* Includes temporal signals (due dates, staleness) for actionable analysis.
|
|
38
15
|
*/
|
|
39
16
|
function gatherEntityContext(wm, repoNames, maxEntities = 200) {
|
|
40
17
|
const lines = [];
|
|
41
18
|
let total = 0;
|
|
19
|
+
const now = new Date();
|
|
20
|
+
// Collection summaries first — gives the AI an accurate overview before entity details
|
|
21
|
+
lines.push('=== COLLECTION SUMMARIES ===');
|
|
22
|
+
for (const repoName of repoNames) {
|
|
23
|
+
try {
|
|
24
|
+
const graph = wm.getGraph(repoName);
|
|
25
|
+
const allEntities = graph.search({});
|
|
26
|
+
const typeCounts = {};
|
|
27
|
+
for (const e of allEntities) {
|
|
28
|
+
const t = e.data?.entity_type ?? e.entityType ?? 'unknown';
|
|
29
|
+
typeCounts[t] = (typeCounts[t] ?? 0) + 1;
|
|
30
|
+
}
|
|
31
|
+
const repoConfig = wm.getRepoConfig(repoName);
|
|
32
|
+
const syncSources = repoConfig?.sync ?? [];
|
|
33
|
+
const summary = Object.entries(typeCounts).map(([t, c]) => `${c} ${t}s`).join(', ');
|
|
34
|
+
lines.push(`[${repoName}] ${allEntities.length} entities: ${summary}`);
|
|
35
|
+
if (syncSources.length > 0) {
|
|
36
|
+
lines.push(` sync sources: ${syncSources.map((s) => s.source ?? 'unknown').join(', ')}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch { /* skip */ }
|
|
40
|
+
}
|
|
41
|
+
lines.push('');
|
|
42
|
+
lines.push('=== ENTITY DETAILS ===');
|
|
42
43
|
for (const repoName of repoNames) {
|
|
43
44
|
try {
|
|
44
45
|
const graph = wm.getGraph(repoName);
|
|
@@ -48,31 +49,47 @@ function gatherEntityContext(wm, repoNames, maxEntities = 200) {
|
|
|
48
49
|
break;
|
|
49
50
|
const fm = entity.data;
|
|
50
51
|
const type = fm.entity_type ?? entity.entityType ?? 'unknown';
|
|
51
|
-
const title = fm.
|
|
52
|
+
const title = fm.name ?? entity.id;
|
|
52
53
|
const wikilinks = entity.document?.wikilinks ?? [];
|
|
53
54
|
const content = entity.document?.content ?? '';
|
|
54
|
-
|
|
55
|
-
const snippet = content.length > 500 ? content.slice(0, 500) + '...' : content;
|
|
55
|
+
const snippet = content.length > 300 ? content.slice(0, 300) + '...' : content;
|
|
56
56
|
lines.push(`[${repoName}/${type}/${entity.id}] ${title}`);
|
|
57
|
-
|
|
58
|
-
lines.push(` links: ${wikilinks.join(', ')}`);
|
|
59
|
-
}
|
|
60
|
-
// Include select frontmatter fields
|
|
57
|
+
// Temporal and status metadata
|
|
61
58
|
const meta = [];
|
|
62
|
-
if (fm.created_at)
|
|
63
|
-
meta.push(`created: ${fm.created_at}`);
|
|
64
|
-
if (fm.updated_at)
|
|
65
|
-
meta.push(`updated: ${fm.updated_at}`);
|
|
66
59
|
if (fm.status)
|
|
67
60
|
meta.push(`status: ${fm.status}`);
|
|
68
|
-
if (fm.
|
|
69
|
-
meta.push(`
|
|
61
|
+
if (fm.priority)
|
|
62
|
+
meta.push(`priority: ${fm.priority}`);
|
|
63
|
+
if (fm.stage)
|
|
64
|
+
meta.push(`stage: ${fm.stage}`);
|
|
65
|
+
if (fm.assignee)
|
|
66
|
+
meta.push(`assignee: ${fm.assignee}`);
|
|
67
|
+
if (fm.due_date) {
|
|
68
|
+
const dueDate = new Date(fm.due_date);
|
|
69
|
+
const daysUntil = Math.round((dueDate.getTime() - now.getTime()) / 86400000);
|
|
70
|
+
meta.push(`due: ${fm.due_date} (${daysUntil < 0 ? Math.abs(daysUntil) + 'd overdue' : daysUntil + 'd away'})`);
|
|
71
|
+
}
|
|
72
|
+
if (fm.expected_close)
|
|
73
|
+
meta.push(`expected_close: ${fm.expected_close}`);
|
|
70
74
|
if (fm.client)
|
|
71
75
|
meta.push(`client: ${fm.client}`);
|
|
72
76
|
if (fm.project)
|
|
73
77
|
meta.push(`project: ${fm.project}`);
|
|
78
|
+
if (fm.deal_value)
|
|
79
|
+
meta.push(`deal_value: ${fm.deal_value}`);
|
|
80
|
+
if (fm.attendees)
|
|
81
|
+
meta.push(`attendees: ${JSON.stringify(fm.attendees)}`);
|
|
82
|
+
if (fm.updated_at) {
|
|
83
|
+
const updated = new Date(fm.updated_at);
|
|
84
|
+
const daysSince = Math.round((now.getTime() - updated.getTime()) / 86400000);
|
|
85
|
+
if (daysSince > 14)
|
|
86
|
+
meta.push(`stale: ${daysSince}d since update`);
|
|
87
|
+
}
|
|
74
88
|
if (meta.length > 0)
|
|
75
89
|
lines.push(` ${meta.join(' | ')}`);
|
|
90
|
+
if (wikilinks.length > 0) {
|
|
91
|
+
lines.push(` links: ${wikilinks.join(', ')}`);
|
|
92
|
+
}
|
|
76
93
|
if (snippet)
|
|
77
94
|
lines.push(` content: ${snippet}`);
|
|
78
95
|
lines.push('');
|
|
@@ -85,60 +102,86 @@ function gatherEntityContext(wm, repoNames, maxEntities = 200) {
|
|
|
85
102
|
}
|
|
86
103
|
return { context: lines.join('\n'), entityCount: total };
|
|
87
104
|
}
|
|
88
|
-
|
|
105
|
+
function buildSystemPrompt(userBrief, tools) {
|
|
106
|
+
const briefSection = userBrief
|
|
107
|
+
? `\n\nThe user has described what they care about most:\n"${userBrief}"\n\nPrioritize insights that align with their focus. But also surface critical issues they might not have asked about (like overdue tasks or stalled projects).`
|
|
108
|
+
: '';
|
|
109
|
+
return `You are an insight engine for a knowledge management workspace used by creative services teams. Analyze entities (meetings, people, projects, decisions, tasks, deals, documents, etc.) and surface actionable insights.
|
|
110
|
+
|
|
111
|
+
ACCURACY IS CRITICAL. The data provided includes:
|
|
112
|
+
- Collection summaries with exact entity type counts — trust these numbers, do not guess or speculate about what exists
|
|
113
|
+
- Sync source configurations — if a collection lists a sync source, data IS flowing from it
|
|
114
|
+
- Entity details with metadata — only make claims you can back up with the data shown
|
|
89
115
|
|
|
90
|
-
Generate
|
|
91
|
-
-
|
|
92
|
-
-
|
|
93
|
-
-
|
|
94
|
-
-
|
|
116
|
+
Generate 3-7 insights. Each insight should be:
|
|
117
|
+
- ACCURATE — only state facts supported by the data provided. Never say "no X entities exist" unless the collection summaries confirm zero
|
|
118
|
+
- ACTIONABLE — the action must be something the AI agent can actually execute (see capabilities below)
|
|
119
|
+
- SPECIFIC — name the entities involved
|
|
120
|
+
- IMPORTANT — focus on things that need attention now
|
|
121
|
+
${briefSection}
|
|
95
122
|
|
|
96
123
|
Insight patterns to look for:
|
|
97
|
-
-
|
|
98
|
-
-
|
|
99
|
-
-
|
|
100
|
-
-
|
|
101
|
-
-
|
|
124
|
+
- risk: Overdue tasks, stalled projects, deadlines approaching without progress, deals aging without next steps
|
|
125
|
+
- relationship: Client engagement gaps, key people appearing across contexts, uncontacted stakeholders
|
|
126
|
+
- opportunity: Patterns across deals/projects, uncaptured practice areas, reusable knowledge
|
|
127
|
+
- quality: Isolated entities with no connections, missing data, entities that should be linked but aren't
|
|
128
|
+
- trend: Activity patterns, increasing/decreasing engagement, velocity changes
|
|
129
|
+
|
|
130
|
+
IMPORTANT — The "action" field will be sent to an AI assistant as a prompt. Think of yourself as a concierge offering to do things for the user. The action should be something you'd naturally say: "Shall I create a meeting entity for a check-in with Cooper Hewitt?" or "I can update the status of these overdue tasks — want me to?"
|
|
131
|
+
|
|
132
|
+
The assistant has access to ONLY these tools — no others:
|
|
133
|
+
${tools.length > 0 ? tools.map(t => `- ${t.name}: ${t.description}`).join('\n') : '(core workspace tools only — create/update/search/delete entities, create views, lint, find orphans)'}
|
|
134
|
+
|
|
135
|
+
CRITICAL: Only suggest actions that use the tools listed above. If a connector (like Pipedrive, Linear, Slack, etc.) is NOT in the tool list, do NOT reference it in any action. Even if entities in the workspace mention an external system, only suggest actions the assistant can actually perform with its available tools. For example, if there is no pipedrive_connector tool, never suggest "Search Pipedrive" — instead suggest workspace-level actions like "Create a deal entity" or "Search for existing deal entities."
|
|
102
136
|
|
|
103
137
|
Respond with valid JSON matching this schema:
|
|
104
138
|
{
|
|
105
139
|
"insights": [
|
|
106
140
|
{
|
|
107
|
-
"headline": "
|
|
108
|
-
"detail": "2
|
|
109
|
-
"
|
|
110
|
-
"
|
|
141
|
+
"headline": "Short, punchy headline (under 12 words)",
|
|
142
|
+
"detail": "1-2 sentence explanation — be concise, not exhaustive",
|
|
143
|
+
"urgency": "high|medium|low",
|
|
144
|
+
"actions": ["Imperative action 1", "Imperative action 2"],
|
|
145
|
+
"entities": [{"id": "entity-id", "type": "entity-type", "repo": "collection-name", "name": "display name"}],
|
|
146
|
+
"pattern": "risk|relationship|opportunity|quality|trend"
|
|
111
147
|
}
|
|
112
148
|
]
|
|
113
|
-
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
Each insight should have exactly 1 action — the single most impactful next step. The action is a short imperative sentence sent directly to the AI assistant as a prompt. Write as an instruction, not a question:
|
|
152
|
+
- Good: "Run a lint check on all Cooper Hewitt entities"
|
|
153
|
+
- Good: "Create a deal entity for the Existence next phase"
|
|
154
|
+
- Bad: "Shall I run a lint check?" (not imperative)
|
|
155
|
+
- Bad: "You should consider updating..." (not an instruction)`;
|
|
156
|
+
}
|
|
114
157
|
/**
|
|
115
|
-
* Generate insights from workspace entities.
|
|
158
|
+
* Generate insights from workspace entities, personalized by user brief.
|
|
116
159
|
*/
|
|
117
|
-
export async function generateInsights(wm,
|
|
160
|
+
export async function generateInsights(wm, repoNames, userBrief, authService, userId, workspaceConfig, tools) {
|
|
118
161
|
const { context, entityCount } = gatherEntityContext(wm, repoNames);
|
|
119
162
|
if (entityCount === 0) {
|
|
120
|
-
const empty = { insights: [],
|
|
121
|
-
|
|
163
|
+
const empty = { insights: [], generatedAt: new Date().toISOString(), entityCount: 0 };
|
|
164
|
+
authService.setCachedInsights(userId, []);
|
|
122
165
|
return empty;
|
|
123
166
|
}
|
|
124
167
|
const userConfig = loadUserConfig();
|
|
125
168
|
const apiKey = resolveApiKey(userConfig, workspaceConfig);
|
|
126
169
|
const provider = resolveProvider(userConfig, workspaceConfig);
|
|
127
170
|
if (!apiKey || provider !== 'anthropic') {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
saveInsights(workspacePath, empty);
|
|
171
|
+
const empty = { insights: [], generatedAt: new Date().toISOString(), entityCount };
|
|
172
|
+
authService.setCachedInsights(userId, []);
|
|
131
173
|
return empty;
|
|
132
174
|
}
|
|
175
|
+
const modelId = resolveModelId(userConfig, workspaceConfig);
|
|
133
176
|
const client = new Anthropic({ apiKey });
|
|
134
177
|
const response = await client.messages.create({
|
|
135
|
-
model:
|
|
136
|
-
max_tokens:
|
|
137
|
-
system:
|
|
178
|
+
model: modelId,
|
|
179
|
+
max_tokens: 3000,
|
|
180
|
+
system: buildSystemPrompt(userBrief, tools ?? []),
|
|
138
181
|
messages: [
|
|
139
182
|
{
|
|
140
183
|
role: 'user',
|
|
141
|
-
content: `Here are the entities in my workspace:\n\n${context}\n\nGenerate insights
|
|
184
|
+
content: `Here are the entities in my workspace (today is ${new Date().toISOString().split('T')[0]}):\n\n${context}\n\nGenerate actionable insights.`,
|
|
142
185
|
},
|
|
143
186
|
],
|
|
144
187
|
});
|
|
@@ -148,27 +191,28 @@ export async function generateInsights(wm, workspacePath, repoNames, workspaceCo
|
|
|
148
191
|
.join('');
|
|
149
192
|
let insights = [];
|
|
150
193
|
try {
|
|
151
|
-
// Extract JSON from response (may be wrapped in markdown code block)
|
|
152
194
|
const jsonMatch = text.match(/\{[\s\S]*\}/);
|
|
153
195
|
if (jsonMatch) {
|
|
154
196
|
const parsed = JSON.parse(jsonMatch[0]);
|
|
155
197
|
insights = (parsed.insights ?? []).map((i) => ({
|
|
156
198
|
headline: i.headline ?? '',
|
|
157
199
|
detail: i.detail ?? '',
|
|
200
|
+
urgency: (['high', 'medium', 'low'].includes(i.urgency) ? i.urgency : 'medium'),
|
|
201
|
+
actions: Array.isArray(i.actions) ? i.actions.filter((a) => typeof a === 'string') : (i.action ? [i.action] : []),
|
|
158
202
|
entities: Array.isArray(i.entities) ? i.entities : [],
|
|
159
|
-
pattern: i.pattern
|
|
203
|
+
pattern: (['risk', 'relationship', 'opportunity', 'quality', 'trend'].includes(i.pattern) ? i.pattern : 'trend'),
|
|
160
204
|
}));
|
|
161
205
|
}
|
|
162
206
|
}
|
|
163
207
|
catch {
|
|
164
208
|
console.error('[insights] Failed to parse LLM response:', text.slice(0, 200));
|
|
165
209
|
}
|
|
166
|
-
|
|
210
|
+
// Cache per-user
|
|
211
|
+
authService.setCachedInsights(userId, insights);
|
|
212
|
+
return {
|
|
167
213
|
insights,
|
|
168
|
-
|
|
169
|
-
|
|
214
|
+
generatedAt: new Date().toISOString(),
|
|
215
|
+
entityCount,
|
|
170
216
|
};
|
|
171
|
-
saveInsights(workspacePath, data);
|
|
172
|
-
return data;
|
|
173
217
|
}
|
|
174
218
|
//# sourceMappingURL=insights.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insights.js","sourceRoot":"","sources":["../../src/services/insights.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"insights.js","sourceRoot":"","sources":["../../src/services/insights.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.home.svelte-h7bcrl{flex:1;display:flex;flex-direction:column;min-height:0;overflow-y:auto}.home-center.svelte-h7bcrl{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;margin:0 auto;color:var(--color-text-tertiary);padding:24px;box-sizing:border-box}.home-center.svelte-h7bcrl h2:where(.svelte-h7bcrl){font-size:17px;font-weight:500;color:var(--color-text-secondary)}.onboarding.svelte-h7bcrl{gap:20px;max-width:560px;width:100%;text-align:center}.onboarding.svelte-h7bcrl h2:where(.svelte-h7bcrl){font-size:22px;font-weight:600;color:var(--color-text-primary)}.onboarding-subtitle.svelte-h7bcrl{font-size:14px;color:var(--color-text-secondary);line-height:1.5}.suggestions.svelte-h7bcrl{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.suggestion-chip.svelte-h7bcrl{padding:8px 16px;border:1px solid var(--color-border);border-radius:9999px;background:transparent;color:var(--color-text-secondary);font-family:inherit;font-size:13px;cursor:pointer;transition:border-color .15s,color .15s}.suggestion-chip.svelte-h7bcrl:hover{border-color:var(--color-accent);color:var(--color-text-primary)}.custom-brief.svelte-h7bcrl{display:flex;gap:8px;width:100%;max-width:480px}.brief-input.svelte-h7bcrl{flex:1;height:36px;padding:0 12px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text-primary);font-family:inherit;font-size:14px;outline:none}.brief-input.svelte-h7bcrl:focus{border-color:var(--color-accent)}.brief-input.svelte-h7bcrl::placeholder{color:var(--color-text-tertiary)}.generating.svelte-h7bcrl{display:flex;align-items:center;gap:10px;color:var(--color-text-secondary);font-size:14px}.animate-spin{animation:svelte-h7bcrl-spin 1s linear infinite}@keyframes svelte-h7bcrl-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.home-insights.svelte-h7bcrl{padding:24px;max-width:1080px;margin:0 auto;width:100%}.insights-header.svelte-h7bcrl{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.insights-title.svelte-h7bcrl{display:flex;align-items:baseline;gap:10px}.insights-title.svelte-h7bcrl h2:where(.svelte-h7bcrl){font-size:17px;font-weight:600;color:var(--color-text-primary)}.insights-meta.svelte-h7bcrl{font-size:12px;color:var(--color-text-tertiary)}.insights-actions.svelte-h7bcrl{display:flex;align-items:center;gap:8px}.edit-focus-link.svelte-h7bcrl{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-family:inherit;color:var(--color-text-tertiary);background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:4px}.edit-focus-link.svelte-h7bcrl:hover{color:var(--color-text-secondary);background:var(--color-bg-hover)}.insights-grid.svelte-h7bcrl{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,320px));gap:12px}.insight-card.svelte-h7bcrl{padding:16px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg)}.insight-top.svelte-h7bcrl{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.pattern-tag.svelte-h7bcrl{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary)}.insight-headline.svelte-h7bcrl{font-size:14px;font-weight:600;color:var(--color-text-primary);margin-bottom:6px;line-height:1.3}.insight-detail.svelte-h7bcrl{font-size:13px;color:var(--color-text-secondary);line-height:1.5;margin-bottom:8px}.action-btn.svelte-h7bcrl{display:flex;align-items:flex-start;padding:6px 8px;margin-bottom:8px;font-family:inherit;font-size:13px;font-weight:500;color:var(--color-accent);background:transparent;border:1px solid var(--color-border);border-radius:6px;cursor:pointer;text-align:left;line-height:1.3;transition:border-color .15s,background .15s}.action-btn.svelte-h7bcrl:hover{border-color:var(--color-accent)}.insight-entities.svelte-h7bcrl{display:flex;flex-wrap:wrap;gap:4px}.entity-chip.svelte-h7bcrl{padding:2px 8px;font-size:12px;font-family:inherit;color:var(--color-text-secondary);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:4px;cursor:pointer}.entity-chip.svelte-h7bcrl:hover{border-color:var(--color-accent);color:var(--color-text-primary)}.no-insights.svelte-h7bcrl{text-align:center;padding:40px;color:var(--color-text-tertiary);font-size:14px}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.json-editor-wrap.svelte-1grruw9{width:100%;max-height:50vh;overflow-y:auto;border-radius:6px}.json-editor-wrap.svelte-1grruw9 .cm-editor{outline:none}.json-editor-wrap.svelte-1grruw9 .cm-scroller{overflow:visible!important}.settings-page.svelte-zymv0t{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.settings-header.svelte-zymv0t{height:40px;flex-shrink:0;border-bottom:1px solid var(--color-border)}.content-toolbar.svelte-zymv0t{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.content-count.svelte-zymv0t{font-size:13px;color:var(--color-text-tertiary)}.settings-content.svelte-zymv0t{flex:1;overflow-y:auto;padding:20px 40px 32px}.tab-header.svelte-zymv0t{margin-bottom:20px}.tab-title.svelte-zymv0t{font-size:17px;font-weight:600;color:var(--color-text-primary);margin:0 0 4px}.tab-description.svelte-zymv0t{font-size:14px;color:var(--color-text-tertiary);margin:0}.accordion-item{border-bottom:1px solid var(--color-border)}.accordion-item:last-child{border-bottom:none}.accordion-trigger{display:flex;align-items:center;gap:0;width:100%;padding:10px 4px;border:none;background:transparent;cursor:pointer;font-family:inherit;text-align:left}.accordion-trigger:hover{background:var(--color-bg-hover);border-radius:6px}.accordion-chevron.svelte-zymv0t{display:flex;align-items:center;justify-content:center;width:16px;height:22px;margin-right:14px;color:var(--color-text-tertiary);flex-shrink:0;transition:transform .15s ease}[data-state=open]>.accordion-trigger .accordion-chevron,.accordion-trigger[data-state=open] .accordion-chevron{transform:rotate(90deg)}.accordion-label.svelte-zymv0t{font-size:14px;font-weight:500;color:var(--color-text-primary);flex:1}.accordion-count{margin-left:auto}.accordion-content{overflow:hidden;padding:0 0 8px 34px}.accordion-content[data-state=closed]{display:none}.section-header.svelte-zymv0t{display:flex;align-items:center;height:32px;gap:0;margin-top:8px}.section-label.svelte-zymv0t{font-size:12px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;flex:1}.member-row.svelte-zymv0t{display:grid;grid-template-columns:22px 1fr 2fr 80px;align-items:center;height:44px;gap:0 14px;font-size:14px}.member-name-cell.svelte-zymv0t{display:flex;align-items:baseline;gap:0;min-width:0}.member-name.svelte-zymv0t{font-size:15px;font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pill-key{color:var(--color-text-tertiary)}.pill-val{color:var(--color-text-secondary)}.member-pills.svelte-zymv0t{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.member-email.svelte-zymv0t{font-size:13px;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-list.svelte-zymv0t>.member-row:where(.svelte-zymv0t),.accordion-content .member-row.svelte-zymv0t{border-bottom:1px solid var(--color-border)}.member-list.svelte-zymv0t>.member-row:where(.svelte-zymv0t):last-child,.accordion-content .member-row.svelte-zymv0t:last-child{border-bottom:none}.member-actions.svelte-zymv0t{display:flex;justify-content:flex-end;gap:4px}.icon-danger:hover{color:var(--color-error, #e55)!important}.confirm-row.svelte-zymv0t{display:flex;grid-column:1 / -1;background:#e5555514;border-radius:6px;padding:0 10px 0 12px}.confirm-text.svelte-zymv0t{flex:1;font-size:14px;color:var(--color-text-primary)}.dialog-fields.svelte-zymv0t{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.dialog-field.svelte-zymv0t{display:flex;flex-direction:column;gap:4px}.checkbox-list.svelte-zymv0t{display:flex;flex-direction:column;gap:2px}.checkbox-item.svelte-zymv0t{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:14px;color:var(--color-text-primary);cursor:pointer}.checkbox-item.svelte-zymv0t:hover{background:var(--color-bg-hover)}.modal-member-list.svelte-zymv0t{display:flex;flex-direction:column;gap:2px;margin:8px 0;max-height:300px;overflow-y:auto}.modal-member-row.svelte-zymv0t{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:6px;cursor:pointer}.modal-member-row.svelte-zymv0t:hover{background:var(--color-bg-hover)}.modal-member-info.svelte-zymv0t{display:flex;flex-direction:column;min-width:0}.connector-list.svelte-zymv0t{display:flex;flex-direction:column}.connector-row.svelte-zymv0t{display:flex;align-items:center;gap:14px;height:44px;border-bottom:1px solid var(--color-border);font-size:14px}.connector-row.svelte-zymv0t:last-child{border-bottom:none}.connector-section-label.svelte-zymv0t{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary);margin-top:20px;margin-bottom:4px}.connector-description{font-size:14px;color:var(--color-text-secondary);margin:0 0 12px}.connector-row-actions.svelte-zymv0t{display:flex;align-items:center;gap:2px;margin-left:auto}.connector-action{margin-left:auto!important;font-size:13px!important;gap:4px!important}.connector-action.connected{color:var(--color-success, #4ade80)!important}.setup-instructions.svelte-zymv0t{display:flex;flex-direction:column;gap:16px}.setup-instructions.svelte-zymv0t p:where(.svelte-zymv0t){margin:0;font-size:14px;line-height:22px;color:var(--color-text-secondary)}.setup-instructions.svelte-zymv0t a:where(.svelte-zymv0t){color:var(--color-accent)}.setup-steps.svelte-zymv0t{display:flex;flex-direction:column;gap:16px}.setup-step.svelte-zymv0t{display:flex;gap:12px}.step-number.svelte-zymv0t{width:24px;height:24px;border-radius:50%;background:var(--color-bg-surface);color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.env-var.svelte-zymv0t{display:block;margin-top:8px;padding:8px 12px;background:var(--color-bg-surface);border-radius:6px;font-family:var(--font-mono);font-size:13px;color:var(--color-accent)}.connector-row-actions.svelte-zymv0t .connector-action{margin-left:0!important}.connector-hint{font-size:13px;color:var(--color-text-tertiary);margin:0}.connector-form{display:flex;flex-direction:column;gap:16px;margin-top:16px}.connector-field{display:flex;flex-direction:column;gap:6px}.connector-field-hint{font-size:13px;color:var(--color-text-tertiary);margin-top:2px}.connector-docs-link{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--color-text-tertiary);text-decoration:none}.connector-docs-link:hover{color:var(--color-text-secondary)}.status-msg.svelte-zymv0t{font-size:14px;color:var(--color-error, #e55);padding:0;background:none}.loading-text.svelte-zymv0t{font-size:14px;color:var(--color-text-tertiary);padding:20px 0;text-align:center}.spinning{animation:svelte-zymv0t-spin 1s linear infinite}@keyframes svelte-zymv0t-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.about-section.svelte-zymv0t{display:flex;flex-direction:column;gap:16px}.ws-field.svelte-zymv0t{display:flex;flex-direction:column;gap:6px}.about-actions.svelte-zymv0t{display:flex;justify-content:flex-end;gap:8px}.accent-palette.svelte-zymv0t{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.accent-palette.saving.svelte-zymv0t{opacity:.5;pointer-events:none}.accent-swatch.svelte-zymv0t{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:border-color .15s,transform .15s}.accent-swatch.svelte-zymv0t:hover{transform:scale(1.15)}.accent-swatch.active.svelte-zymv0t{border-color:var(--color-text-primary)}.
|
|
1
|
+
.json-editor-wrap.svelte-1grruw9{width:100%;max-height:50vh;overflow-y:auto;border-radius:6px}.json-editor-wrap.svelte-1grruw9 .cm-editor{outline:none}.json-editor-wrap.svelte-1grruw9 .cm-scroller{overflow:visible!important}.settings-page.svelte-zymv0t{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.settings-header.svelte-zymv0t{height:40px;flex-shrink:0;border-bottom:1px solid var(--color-border)}.content-toolbar.svelte-zymv0t{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.content-count.svelte-zymv0t{font-size:13px;color:var(--color-text-tertiary)}.settings-content.svelte-zymv0t{flex:1;overflow-y:auto;padding:20px 40px 32px}.tab-header.svelte-zymv0t{margin-bottom:20px}.tab-title.svelte-zymv0t{font-size:17px;font-weight:600;color:var(--color-text-primary);margin:0 0 4px}.tab-description.svelte-zymv0t{font-size:14px;color:var(--color-text-tertiary);margin:0}.accordion-item{border-bottom:1px solid var(--color-border)}.accordion-item:last-child{border-bottom:none}.accordion-trigger{display:flex;align-items:center;gap:0;width:100%;padding:10px 4px;border:none;background:transparent;cursor:pointer;font-family:inherit;text-align:left}.accordion-trigger:hover{background:var(--color-bg-hover);border-radius:6px}.accordion-chevron.svelte-zymv0t{display:flex;align-items:center;justify-content:center;width:16px;height:22px;margin-right:14px;color:var(--color-text-tertiary);flex-shrink:0;transition:transform .15s ease}[data-state=open]>.accordion-trigger .accordion-chevron,.accordion-trigger[data-state=open] .accordion-chevron{transform:rotate(90deg)}.accordion-label.svelte-zymv0t{font-size:14px;font-weight:500;color:var(--color-text-primary);flex:1}.accordion-count{margin-left:auto}.accordion-content{overflow:hidden;padding:0 0 8px 34px}.accordion-content[data-state=closed]{display:none}.section-header.svelte-zymv0t{display:flex;align-items:center;height:32px;gap:0;margin-top:8px}.section-label.svelte-zymv0t{font-size:12px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;flex:1}.member-row.svelte-zymv0t{display:grid;grid-template-columns:22px 1fr 2fr 80px;align-items:center;height:44px;gap:0 14px;font-size:14px}.member-name-cell.svelte-zymv0t{display:flex;align-items:baseline;gap:0;min-width:0}.member-name.svelte-zymv0t{font-size:15px;font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pill-key{color:var(--color-text-tertiary)}.pill-val{color:var(--color-text-secondary)}.member-pills.svelte-zymv0t{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.member-email.svelte-zymv0t{font-size:13px;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-list.svelte-zymv0t>.member-row:where(.svelte-zymv0t),.accordion-content .member-row.svelte-zymv0t{border-bottom:1px solid var(--color-border)}.member-list.svelte-zymv0t>.member-row:where(.svelte-zymv0t):last-child,.accordion-content .member-row.svelte-zymv0t:last-child{border-bottom:none}.member-actions.svelte-zymv0t{display:flex;justify-content:flex-end;gap:4px}.icon-danger:hover{color:var(--color-error, #e55)!important}.confirm-row.svelte-zymv0t{display:flex;grid-column:1 / -1;background:#e5555514;border-radius:6px;padding:0 10px 0 12px}.confirm-text.svelte-zymv0t{flex:1;font-size:14px;color:var(--color-text-primary)}.dialog-fields.svelte-zymv0t{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.dialog-field.svelte-zymv0t{display:flex;flex-direction:column;gap:4px}.checkbox-list.svelte-zymv0t{display:flex;flex-direction:column;gap:2px}.checkbox-item.svelte-zymv0t{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:14px;color:var(--color-text-primary);cursor:pointer}.checkbox-item.svelte-zymv0t:hover{background:var(--color-bg-hover)}.modal-member-list.svelte-zymv0t{display:flex;flex-direction:column;gap:2px;margin:8px 0;max-height:300px;overflow-y:auto}.modal-member-row.svelte-zymv0t{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:6px;cursor:pointer}.modal-member-row.svelte-zymv0t:hover{background:var(--color-bg-hover)}.modal-member-info.svelte-zymv0t{display:flex;flex-direction:column;min-width:0}.connector-list.svelte-zymv0t{display:flex;flex-direction:column}.connector-row.svelte-zymv0t{display:flex;align-items:center;gap:14px;height:44px;border-bottom:1px solid var(--color-border);font-size:14px}.connector-row.svelte-zymv0t:last-child{border-bottom:none}.connector-section-label.svelte-zymv0t{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary);margin-top:20px;margin-bottom:4px}.connector-description{font-size:14px;color:var(--color-text-secondary);margin:0 0 12px}.connector-row-actions.svelte-zymv0t{display:flex;align-items:center;gap:2px;margin-left:auto}.connector-action{margin-left:auto!important;font-size:13px!important;gap:4px!important}.connector-action.connected{color:var(--color-success, #4ade80)!important}.setup-instructions.svelte-zymv0t{display:flex;flex-direction:column;gap:16px}.setup-instructions.svelte-zymv0t p:where(.svelte-zymv0t){margin:0;font-size:14px;line-height:22px;color:var(--color-text-secondary)}.setup-instructions.svelte-zymv0t a:where(.svelte-zymv0t){color:var(--color-accent)}.setup-steps.svelte-zymv0t{display:flex;flex-direction:column;gap:16px}.setup-step.svelte-zymv0t{display:flex;gap:12px}.step-number.svelte-zymv0t{width:24px;height:24px;border-radius:50%;background:var(--color-bg-surface);color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.env-var.svelte-zymv0t{display:block;margin-top:8px;padding:8px 12px;background:var(--color-bg-surface);border-radius:6px;font-family:var(--font-mono);font-size:13px;color:var(--color-accent)}.connector-row-actions.svelte-zymv0t .connector-action{margin-left:0!important}.connector-hint{font-size:13px;color:var(--color-text-tertiary);margin:0}.connector-form{display:flex;flex-direction:column;gap:16px;margin-top:16px}.connector-field{display:flex;flex-direction:column;gap:6px}.connector-field-hint{font-size:13px;color:var(--color-text-tertiary);margin-top:2px}.connector-docs-link{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--color-text-tertiary);text-decoration:none}.connector-docs-link:hover{color:var(--color-text-secondary)}.status-msg.svelte-zymv0t{font-size:14px;color:var(--color-error, #e55);padding:0;background:none}.loading-text.svelte-zymv0t{font-size:14px;color:var(--color-text-tertiary);padding:20px 0;text-align:center}.spinning{animation:svelte-zymv0t-spin 1s linear infinite}@keyframes svelte-zymv0t-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.about-section.svelte-zymv0t{display:flex;flex-direction:column;gap:16px}.ws-field.svelte-zymv0t{display:flex;flex-direction:column;gap:6px}.field-help.svelte-zymv0t{font-size:13px;color:var(--color-text-tertiary);line-height:1.4}.about-actions.svelte-zymv0t{display:flex;justify-content:flex-end;gap:8px}.accent-palette.svelte-zymv0t{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.accent-palette.saving.svelte-zymv0t{opacity:.5;pointer-events:none}.accent-swatch.svelte-zymv0t{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:border-color .15s,transform .15s}.accent-swatch.svelte-zymv0t:hover{transform:scale(1.15)}.accent-swatch.active.svelte-zymv0t{border-color:var(--color-text-primary)}.prefs-sections.svelte-zymv0t{display:flex;flex-direction:column;gap:32px}.prefs-block.svelte-zymv0t{display:flex;flex-direction:column;gap:8px}.section-heading.svelte-zymv0t{font-size:14px;font-weight:600;color:var(--color-text-primary)}.mcp-header.svelte-zymv0t{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.mcp-actions.svelte-zymv0t{display:flex;gap:4px}.mcp-hint.svelte-zymv0t{font-size:14px;color:var(--color-text-tertiary);margin:0 0 8px}.mcp-config-textarea{font-family:var(--font-mono, ui-monospace, monospace)!important;font-size:13px!important}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as n,b as c}from"./
|
|
1
|
+
import{a as n,b as c}from"./b0XUoOIH.js";import{b as d,c as p}from"./DQ5NTKSo.js";import{p as u,b as f}from"./DSh-OF2y.js";import{a as m}from"./CRnhIQbv.js";import{b}from"./DT3KtxWU.js";import{p as a,r as v}from"./D-yNNNdf.js";var x=c("<input/>");function P(l,r){u(r,!0);let e=a(r,"ref",15,null),s=a(r,"value",15),i=v(r,["$$slots","$$events","$$legacy","class","ref","value"]);var o=x();m(o,t=>({class:t,...i}),[()=>p("h-8 w-full rounded-md border border-[var(--color-border)] bg-[var(--color-bg)] px-2.5 text-[14px] text-[var(--color-text-primary)] font-[inherit] outline-none transition-colors placeholder:text-[var(--color-text-tertiary)] focus:border-[var(--color-accent,#e05050)] disabled:cursor-not-allowed disabled:opacity-50",r.class)],void 0,void 0,void 0,!0),b(o,t=>e(t),()=>e()),d(o,s),n(l,o),f()}export{P as I};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as A}from"./C0v9FrTH.js";import{a as f,s as M,f as x}from"./b0XUoOIH.js";import{i as k}from"./vZ2iBqLE.js";import{p as B,l as u,s as b,d as p,g as o,a as C,c as g,n as N,r as m,b as P,m as _,t as R}from"./DSh-OF2y.js";import{i as S}from"./DT3KtxWU.js";import{a as Y}from"./CRnhIQbv.js";import{l as v,p as h}from"./D-yNNNdf.js";const j=()=>{const e=A;return{page:{subscribe:e.page.subscribe},navigating:{subscribe:e.navigating.subscribe},updated:e.updated}},L={subscribe(e){return j().page.subscribe(e)}};var q=x("<title> </title>"),D=x('<svg><!><path d="M17 15 17 8 15 8 15 15 8 15 8 17 15 17 15 24 17 24 17 17 24 17 24 15z"></path></svg>');function O(e,s){const t=v(s,["children","$$slots","$$events","$$legacy"]),w=v(t,["size","title"]);B(s,!1);const a=_(),c=_();let d=h(s,"size",8,16),r=h(s,"title",8,void 0);u(()=>(p(t),p(r())),()=>{b(a,t["aria-label"]||t["aria-labelledby"]||r())}),u(()=>(o(a),p(t)),()=>{b(c,{"aria-hidden":o(a)?void 0:!0,role:o(a)?"img":void 0,focusable:Number(t.tabindex)===0?!0:void 0})}),C(),k();var i=D();Y(i,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:d(),height:d(),...o(c),...w}));var y=g(i);{var z=n=>{var l=q(),$=g(l,!0);m(l),R(()=>M($,r())),f(n,l)};S(y,n=>{r()&&n(z)})}N(),m(i),f(e,i),P()}export{O as A,L as p};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{w as f,h as u,_,$ as o,i as t,C as g,Z as i,u as l,q as d,v as p,y as v}from"./
|
|
1
|
+
import{w as f,h as u,_,$ as o,i as t,C as g,Z as i,u as l,q as d,v as p,y as v}from"./DSh-OF2y.js";function C(n,r){let s=null,y=t;var a;if(t){s=p;for(var e=v(document.head);e!==null&&(e.nodeType!==g||e.data!==n);)e=i(e);if(e===null)l(!1);else{var E=i(e);e.remove(),d(E)}}t||(a=document.head.appendChild(f()));try{u(()=>r(a),_|o)}finally{y&&(l(!0),d(s))}}export{C as h};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{O as B,f as F,g as A,e as V,w as S,a as J,t as v,c as D,r as L,b as _,d as N,h as E,i as P,j as G,k as O,l as q,D as R,m as z}from"./CLFba8FK.js";import{r as M}from"./
|
|
1
|
+
import{O as B,f as F,g as A,e as V,w as S,a as J,t as v,c as D,r as L,b as _,d as N,h as E,i as P,j as G,k as O,l as q,D as R,m as z}from"./CLFba8FK.js";import{r as M}from"./BfEy5AjR.js";const b=3e4;class K extends B{constructor(n){super(),this.doc=n,this.clientID=n.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval(()=>{const e=A();this.getLocalState()!==null&&b/2<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const s=[];this.meta.forEach((a,c)=>{c!==this.clientID&&b<=e-a.lastUpdated&&this.states.has(c)&&s.push(c)}),s.length>0&&x(this,s,"timeout")},F(b/10)),n.on("destroy",()=>{this.destroy()}),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(n){const e=this.clientID,s=this.meta.get(e),a=s===void 0?0:s.clock+1,c=this.states.get(e);n===null?this.states.delete(e):this.states.set(e,n),this.meta.set(e,{clock:a,lastUpdated:A()});const l=[],u=[],r=[],p=[];n===null?p.push(e):c==null?n!=null&&l.push(e):(u.push(e),V(c,n)||r.push(e)),(l.length>0||r.length>0||p.length>0)&&this.emit("change",[{added:l,updated:r,removed:p},"local"]),this.emit("update",[{added:l,updated:u,removed:p},"local"])}setLocalStateField(n,e){const s=this.getLocalState();s!==null&&this.setLocalState({...s,[n]:e})}getStates(){return this.states}}const x=(t,n,e)=>{const s=[];for(let a=0;a<n.length;a++){const c=n[a];if(t.states.has(c)){if(t.states.delete(c),c===t.clientID){const l=t.meta.get(c);t.meta.set(c,{clock:l.clock+1,lastUpdated:A()})}s.push(c)}}s.length>0&&(t.emit("change",[{added:[],updated:[],removed:s},e]),t.emit("update",[{added:[],updated:[],removed:s},e]))},Q=(t,n,e=t.states)=>{const s=n.length,a=D();S(a,s);for(let c=0;c<s;c++){const l=n[c],u=e.get(l)||null,r=t.meta.get(l).clock;S(a,l),S(a,r),J(a,JSON.stringify(u))}return v(a)},X=(t,n,e)=>{const s=N(n),a=A(),c=[],l=[],u=[],r=[],p=L(s);for(let m=0;m<p;m++){const d=L(s);let g=L(s);const h=JSON.parse(_(s)),y=t.meta.get(d),k=t.states.get(d),o=y===void 0?0:y.clock;(o<g||o===g&&h===null&&t.states.has(d))&&(h===null?d===t.clientID&&t.getLocalState()!=null?g++:t.states.delete(d):t.states.set(d,h),t.meta.set(d,{clock:g,lastUpdated:a}),y===void 0&&h!==null?c.push(d):y!==void 0&&h===null?r.push(d):h!==null&&(V(h,k)||u.push(d),l.push(d)))}(c.length>0||u.length>0||r.length>0)&&t.emit("change",[{added:c,updated:u,removed:r},e]),(c.length>0||l.length>0||r.length>0)&&t.emit("update",[{added:c,updated:l,removed:r},e])},W=0,j=1,C=2,Z=(t,n)=>{S(t,W);const e=P(n);E(t,e)},$=(t,n,e)=>{S(t,j),E(t,q(n,e))},H=(t,n,e)=>$(n,e,O(t)),Y=(t,n,e,s)=>{try{G(n,O(t),e)}catch(a){s?.(a),console.error("Caught error while handling a Yjs update",a)}},tt=(t,n)=>{S(t,C),E(t,n)},et=Y,nt=(t,n,e,s,a)=>{const c=L(t);switch(c){case W:H(t,n,e);break;case j:Y(t,e,s,a);break;case C:et(t,e,s,a);break;default:throw new Error("Unknown message type")}return c},U=0,T=1;function st(t,n,e){const s=new TextEncoder().encode(t),a=new ArrayBuffer(2+s.length+1+e.length);return new DataView(a).setUint16(0,s.length),new Uint8Array(a,2,s.length).set(s),new Uint8Array(a)[2+s.length]=n,new Uint8Array(a,2+s.length+1).set(e),a}function at(t){if(t.byteLength<3)return null;const e=new DataView(t).getUint16(0);if(t.byteLength<2+e+1)return null;const s=new TextDecoder().decode(new Uint8Array(t,2,e)),a=new Uint8Array(t)[2+e],c=new Uint8Array(t,2+e+1);return{docName:s,msgType:a,payload:c}}function lt(t,n){const e=new R,s=e.getText("content"),a=new K(e);a.setLocalStateField("user",{name:n.name,color:n.color,colorLight:n.colorLight??n.color+"33"});let c=null,l=!1;function u(){return M.ws??null}function r(o,f){const i=u();!i||i.readyState!==WebSocket.OPEN||i.send(st(t,o,f))}function p(){const o=D();Z(o,e),r(U,v(o))}function m(o){const f=o??[e.clientID],i=Q(a,f);r(T,i)}function d(o){if(l||typeof o.data=="string")return;const f=o.data instanceof ArrayBuffer?o.data:null;if(!f)return;const i=at(f);if(!(!i||i.docName!==t))if(i.msgType===U){const I=N(i.payload),w=D();nt(I,w,e,"ws-server"),z(w)>0&&r(U,v(w))}else i.msgType===T&&X(a,i.payload,"ws-server")}function g(o,f){if(l||f==="ws-server")return;const i=D();tt(i,o),r(U,v(i))}function h({added:o,updated:f,removed:i},I){if(l||I==="ws-server")return;const w=o.concat(f,i);m(w)}function y(){if(l)return;const o=u();!o||o.readyState!==WebSocket.OPEN||(o.send(JSON.stringify({type:"collab:join",docName:t})),c&&o.removeEventListener("message",c),c=d,o.addEventListener("message",c),p(),m())}e.on("update",g),a.on("update",h),y(),M.addConnectHandler(y);function k(){if(l)return;l=!0,x(a,[e.clientID],"local"),m([e.clientID]);const o=u();o&&o.readyState===WebSocket.OPEN&&o.send(JSON.stringify({type:"collab:leave",docName:t})),c&&o&&(o.removeEventListener("message",c),c=null),e.off("update",g),a.off("update",h),a.destroy(),e.destroy()}return{ydoc:e,ytext:s,awareness:a,destroy:k}}export{lt as createCollabSession};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as m,a,f as l}from"./
|
|
1
|
+
import{c as m,a,f as l}from"./b0XUoOIH.js";import{a0 as w}from"./DSh-OF2y.js";import{i as n}from"./DT3KtxWU.js";import{p as d}from"./D-yNNNdf.js";import{L as b,T as k}from"./BYKARDRw.js";import{t as y}from"./BfEy5AjR.js";import{u as S}from"./BfEy5AjR.js";var u=l('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" height="20" width="20"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z" clip-rule="evenodd"></path></svg>'),x=l('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" height="20" width="20"><path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd"></path></svg>'),_=l('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" height="20" width="20"><path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z" clip-rule="evenodd"></path></svg>'),z=l('<svg viewBox="0 0 64 64" fill="currentColor" height="20" width="20" xmlns="http://www.w3.org/2000/svg"><path d="M32.427,7.987c2.183,0.124 4,1.165 5.096,3.281l17.936,36.208c1.739,3.66 -0.954,8.585 -5.373,8.656l-36.119,0c-4.022,-0.064 -7.322,-4.631 -5.352,-8.696l18.271,-36.207c0.342,-0.65 0.498,-0.838 0.793,-1.179c1.186,-1.375 2.483,-2.111 4.748,-2.063Zm-0.295,3.997c-0.687,0.034 -1.316,0.419 -1.659,1.017c-6.312,11.979 -12.397,24.081 -18.301,36.267c-0.546,1.225 0.391,2.797 1.762,2.863c12.06,0.195 24.125,0.195 36.185,0c1.325,-0.064 2.321,-1.584 1.769,-2.85c-5.793,-12.184 -11.765,-24.286 -17.966,-36.267c-0.366,-0.651 -0.903,-1.042 -1.79,-1.03Z"></path><path d="M33.631,40.581l-3.348,0l-0.368,-16.449l4.1,0l-0.384,16.449Zm-3.828,5.03c0,-0.609 0.197,-1.113 0.592,-1.514c0.396,-0.4 0.935,-0.601 1.618,-0.601c0.684,0 1.223,0.201 1.618,0.601c0.395,0.401 0.593,0.905 0.593,1.514c0,0.587 -0.193,1.078 -0.577,1.473c-0.385,0.395 -0.929,0.593 -1.634,0.593c-0.705,0 -1.249,-0.198 -1.634,-0.593c-0.384,-0.395 -0.576,-0.886 -0.576,-1.473Z"></path></svg>');function H(s,v){const t=d(v,"type",3,"success");var e=m(),c=w(e);{var i=o=>{var r=u();a(o,r)},p=o=>{var r=x();a(o,r)},h=o=>{var r=_();a(o,r)},g=o=>{var r=z();a(o,r)},f=o=>{};n(c,o=>{t()==="success"?o(i):t()==="error"?o(p,1):t()==="info"?o(h,2):t()==="warning"?o(g,3):o(f,!1)})}a(s,e)}export{H as Icon,b as Loader,k as Toaster,y as toast,S as useSonner};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as S}from"./DEyrdHQB.js";import{c as _,a as h,p as Q,b as D}from"./CajNsaOw.js";import{ac as y,g as s,s as P,e as R,p as C,a0 as m,b as O,ae as z,c as M,r as K,a1 as at}from"./CfuRx7rA.js";import{c as J}from"./BtJ5VKKi.js";import{p as l,r as A,s as k}from"./RGHlrGBn.js";import{s as I,a as j}from"./BA_Wro7X.js";import{C as kt,s as q,L as nt,w as it,v as _t,E as Pt,A as mt,b,N as Rt,x as xt,B as Dt,n as G,c as X,m as x,H as Et,O as Ut,I as Bt,J as Ft,T as Tt,K as yt,p as zt}from"./CNVuHNwC.js";import{c as H,a as bt}from"./9QAsBMIK.js";import{i as F,b as Ct}from"./Cwkp_c4R.js";const Mt=Dt({component:"dialog",parts:["content","trigger","overlay","title","description","close","cancel","action"]}),T=new kt("Dialog.Root | AlertDialog.Root");class lt{static create(t){const e=T.getOr(null);return T.set(new lt(t,e))}opts;#t=R(null);get triggerNode(){return s(this.#t)}set triggerNode(t){P(this.#t,t,!0)}#e=R(null);get contentNode(){return s(this.#e)}set contentNode(t){P(this.#e,t,!0)}#r=R(null);get overlayNode(){return s(this.#r)}set overlayNode(t){P(this.#r,t,!0)}#o=R(null);get descriptionNode(){return s(this.#o)}set descriptionNode(t){P(this.#o,t,!0)}#n=R(void 0);get contentId(){return s(this.#n)}set contentId(t){P(this.#n,t,!0)}#s=R(void 0);get titleId(){return s(this.#s)}set titleId(t){P(this.#s,t,!0)}#a=R(void 0);get triggerId(){return s(this.#a)}set triggerId(t){P(this.#a,t,!0)}#i=R(void 0);get descriptionId(){return s(this.#i)}set descriptionId(t){P(this.#i,t,!0)}#l=R(null);get cancelNode(){return s(this.#l)}set cancelNode(t){P(this.#l,t,!0)}#c=R(0);get nestedOpenCount(){return s(this.#c)}set nestedOpenCount(t){P(this.#c,t,!0)}depth;parent;contentPresence;overlayPresence;constructor(t,e){this.opts=t,this.parent=e,this.depth=e?e.depth+1:0,this.handleOpen=this.handleOpen.bind(this),this.handleClose=this.handleClose.bind(this),this.contentPresence=new mt({ref:b(()=>this.contentNode),open:this.opts.open,enabled:!0,onComplete:()=>{this.opts.onOpenChangeComplete.current(this.opts.open.current)}}),this.overlayPresence=new mt({ref:b(()=>this.overlayNode),open:this.opts.open,enabled:!0}),it(()=>this.opts.open.current,n=>{this.parent&&(n?this.parent.incrementNested():this.parent.decrementNested())},{lazy:!0}),Rt(()=>{this.opts.open.current&&this.parent?.decrementNested()})}handleOpen(){this.opts.open.current||(this.opts.open.current=!0)}handleClose(){this.opts.open.current&&(this.opts.open.current=!1)}getBitsAttr=t=>Mt.getAttr(t,this.opts.variant.current);incrementNested(){this.nestedOpenCount++,this.parent?.incrementNested()}decrementNested(){this.nestedOpenCount!==0&&(this.nestedOpenCount--,this.parent?.decrementNested())}#d=y(()=>({"data-state":xt(this.opts.open.current)}));get sharedProps(){return s(this.#d)}set sharedProps(t){P(this.#d,t)}}class Ot{static create(t){return new Ot(t,T.get())}opts;root;attachment;constructor(t,e){this.opts=t,this.root=e,this.attachment=q(this.opts.ref),this.onclick=this.onclick.bind(this),this.onkeydown=this.onkeydown.bind(this)}onclick(t){this.opts.disabled.current||t.button>0||this.root.handleClose()}onkeydown(t){this.opts.disabled.current||(t.key===_t||t.key===Pt)&&(t.preventDefault(),this.root.handleClose())}#t=y(()=>({id:this.opts.id.current,[this.root.getBitsAttr(this.opts.variant.current)]:"",onclick:this.onclick,onkeydown:this.onkeydown,disabled:this.opts.disabled.current?!0:void 0,tabindex:0,...this.root.sharedProps,...this.attachment}));get props(){return s(this.#t)}set props(t){P(this.#t,t)}}class ct{static create(t){return new ct(t,T.get())}opts;root;attachment;constructor(t,e){this.opts=t,this.root=e,this.attachment=q(this.opts.ref)}#t=y(()=>({id:this.opts.id.current,[this.root.getBitsAttr("action")]:"",...this.root.sharedProps,...this.attachment}));get props(){return s(this.#t)}set props(t){P(this.#t,t)}}class dt{static create(t){return new dt(t,T.get())}opts;root;attachment;constructor(t,e){this.opts=t,this.root=e,this.root.titleId=this.opts.id.current,this.attachment=q(this.opts.ref),it.pre(()=>this.opts.id.current,n=>{this.root.titleId=n})}#t=y(()=>({id:this.opts.id.current,role:"heading","aria-level":this.opts.level.current,[this.root.getBitsAttr("title")]:"",...this.root.sharedProps,...this.attachment}));get props(){return s(this.#t)}set props(t){P(this.#t,t)}}class ut{static create(t){return new ut(t,T.get())}opts;root;attachment;constructor(t,e){this.opts=t,this.root=e,this.root.descriptionId=this.opts.id.current,this.attachment=q(this.opts.ref,n=>{this.root.descriptionNode=n}),it.pre(()=>this.opts.id.current,n=>{this.root.descriptionId=n})}#t=y(()=>({id:this.opts.id.current,[this.root.getBitsAttr("description")]:"",...this.root.sharedProps,...this.attachment}));get props(){return s(this.#t)}set props(t){P(this.#t,t)}}class ht{static create(t){return new ht(t,T.get())}opts;root;attachment;constructor(t,e){this.opts=t,this.root=e,this.attachment=q(this.opts.ref,n=>{this.root.contentNode=n,this.root.contentId=n?.id})}#t=y(()=>({open:this.root.opts.open.current}));get snippetProps(){return s(this.#t)}set snippetProps(t){P(this.#t,t)}#e=y(()=>({id:this.opts.id.current,role:this.root.opts.variant.current==="alert-dialog"?"alertdialog":"dialog","aria-modal":"true","aria-describedby":this.root.descriptionId,"aria-labelledby":this.root.titleId,[this.root.getBitsAttr("content")]:"",style:{pointerEvents:"auto",outline:this.root.opts.variant.current==="alert-dialog"?"none":void 0,"--bits-dialog-depth":this.root.depth,"--bits-dialog-nested-count":this.root.nestedOpenCount,contain:"layout style"},tabindex:this.root.opts.variant.current==="alert-dialog"?-1:void 0,"data-nested-open":nt(this.root.nestedOpenCount>0),"data-nested":nt(this.root.parent!==null),...this.root.sharedProps,...this.attachment}));get props(){return s(this.#e)}set props(t){P(this.#e,t)}get shouldRender(){return this.root.contentPresence.shouldRender}}class pt{static create(t){return new pt(t,T.get())}opts;root;attachment;constructor(t,e){this.opts=t,this.root=e,this.attachment=q(this.opts.ref,n=>this.root.overlayNode=n)}#t=y(()=>({open:this.root.opts.open.current}));get snippetProps(){return s(this.#t)}set snippetProps(t){P(this.#t,t)}#e=y(()=>({id:this.opts.id.current,[this.root.getBitsAttr("overlay")]:"",style:{pointerEvents:"auto","--bits-dialog-depth":this.root.depth,"--bits-dialog-nested-count":this.root.nestedOpenCount},"data-nested-open":nt(this.root.nestedOpenCount>0),"data-nested":nt(this.root.parent!==null),...this.root.sharedProps,...this.attachment}));get props(){return s(this.#e)}set props(t){P(this.#e,t)}get shouldRender(){return this.root.overlayPresence.shouldRender}}class ft{static create(t){return new ft(t,T.get())}opts;root;attachment;constructor(t,e){this.opts=t,this.root=e,this.attachment=q(this.opts.ref,n=>this.root.cancelNode=n),this.onclick=this.onclick.bind(this),this.onkeydown=this.onkeydown.bind(this)}onclick(t){this.opts.disabled.current||t.button>0||this.root.handleClose()}onkeydown(t){this.opts.disabled.current||(t.key===_t||t.key===Pt)&&(t.preventDefault(),this.root.handleClose())}#t=y(()=>({id:this.opts.id.current,[this.root.getBitsAttr("cancel")]:"",onclick:this.onclick,onkeydown:this.onkeydown,tabindex:0,...this.root.sharedProps,...this.attachment}));get props(){return s(this.#t)}set props(t){P(this.#t,t)}}function Kt(r,t){C(t,!0);let e=l(t,"open",15,!1),n=l(t,"onOpenChange",3,G),o=l(t,"onOpenChangeComplete",3,G);lt.create({variant:b(()=>"alert-dialog"),open:b(()=>e(),d=>{e(d),n()(d)}),onOpenChangeComplete:b(()=>o())});var c=_(),a=m(c);I(a,()=>t.children??z),h(r,c),O()}var Jt=D("<div><!></div>");function jt(r,t){const e=Q();C(t,!0);let n=l(t,"id",19,()=>X(e)),o=l(t,"ref",15,null),c=l(t,"level",3,2),a=A(t,["$$slots","$$events","$$legacy","id","ref","child","children","level"]);const d=dt.create({id:b(()=>n()),level:b(()=>c()),ref:b(()=>o(),i=>o(i))}),p=y(()=>x(a,d.props));var g=_(),N=m(g);{var w=i=>{var f=_(),v=m(f);I(v,()=>t.child,()=>({props:s(p)})),h(i,f)},u=i=>{var f=Jt();j(f,()=>({...s(p)}));var v=M(f);I(v,()=>t.children??z),K(f),h(i,f)};F(N,i=>{t.child?i(w):i(u,!1)})}h(r,g),O()}var Ht=D("<button><!></button>");function Lt(r,t){const e=Q();C(t,!0);let n=l(t,"id",19,()=>X(e)),o=l(t,"ref",15,null),c=A(t,["$$slots","$$events","$$legacy","children","child","id","ref"]);const a=ct.create({id:b(()=>n()),ref:b(()=>o(),u=>o(u))}),d=y(()=>x(c,a.props));var p=_(),g=m(p);{var N=u=>{var i=_(),f=m(i);I(f,()=>t.child,()=>({props:s(d)})),h(u,i)},w=u=>{var i=Ht();j(i,()=>({...s(d)}));var f=M(i);I(f,()=>t.children??z),K(i),h(u,i)};F(g,u=>{t.child?u(N):u(w,!1)})}h(r,p),O()}var Wt=D("<button><!></button>");function qt(r,t){const e=Q();C(t,!0);let n=l(t,"id",19,()=>X(e)),o=l(t,"ref",15,null),c=l(t,"disabled",3,!1),a=A(t,["$$slots","$$events","$$legacy","id","ref","children","child","disabled"]);const d=ft.create({id:b(()=>n()),ref:b(()=>o(),i=>o(i)),disabled:b(()=>!!c())}),p=y(()=>x(a,d.props));var g=_(),N=m(g);{var w=i=>{var f=_(),v=m(f);I(v,()=>t.child,()=>({props:s(p)})),h(i,f)},u=i=>{var f=Wt();j(f,()=>({...s(p)}));var v=M(f);I(v,()=>t.children??z),K(f),h(i,f)};F(N,i=>{t.child?i(w):i(u,!1)})}h(r,g),O()}var Vt=D("<!> <!>",1),Gt=D("<!> <div><!></div>",1);function Qt(r,t){const e=Q();C(t,!0);let n=l(t,"id",19,()=>X(e)),o=l(t,"ref",15,null),c=l(t,"forceMount",3,!1),a=l(t,"interactOutsideBehavior",3,"ignore"),d=l(t,"onCloseAutoFocus",3,G),p=l(t,"onEscapeKeydown",3,G),g=l(t,"onOpenAutoFocus",3,G),N=l(t,"onInteractOutside",3,G),w=l(t,"preventScroll",3,!0),u=l(t,"trapFocus",3,!0),i=l(t,"restoreScrollDelay",3,null),f=A(t,["$$slots","$$events","$$legacy","id","children","child","ref","forceMount","interactOutsideBehavior","onCloseAutoFocus","onEscapeKeydown","onOpenAutoFocus","onInteractOutside","preventScroll","trapFocus","restoreScrollDelay"]);const v=ht.create({id:b(()=>n()),ref:b(()=>o(),B=>o(B))}),L=y(()=>x(f,v.props));var E=_(),U=m(E);{var Y=B=>{Et(B,{get ref(){return v.opts.ref},loop:!0,get trapFocus(){return u()},get enabled(){return v.root.opts.open.current},get onCloseAutoFocus(){return d()},onOpenAutoFocus:Z=>{g()(Z),!Z.defaultPrevented&&(Z.preventDefault(),Ut(0,()=>v.opts.ref.current?.focus()))},focusScope:(Z,At)=>{let gt=()=>At?.().props;Bt(Z,k(()=>s(L),{get enabled(){return v.root.opts.open.current},get ref(){return v.opts.ref},onEscapeKeydown:rt=>{p()(rt),!rt.defaultPrevented&&v.root.handleClose()},children:(rt,ae)=>{Ft(rt,k(()=>s(L),{get ref(){return v.opts.ref},get enabled(){return v.root.opts.open.current},get interactOutsideBehavior(){return a()},onInteractOutside:ot=>{N()(ot),!ot.defaultPrevented&&v.root.handleClose()},children:(ot,ie)=>{Tt(ot,k(()=>s(L),{get ref(){return v.opts.ref},get enabled(){return v.root.opts.open.current},children:(It,le)=>{var vt=_(),St=m(vt);{var wt=V=>{var $=Vt(),tt=m($);{var et=W=>{yt(W,{get preventScroll(){return w()},get restoreScrollDelay(){return i()}})};F(tt,W=>{v.root.opts.open.current&&W(et)})}var st=at(tt,2);{let W=y(()=>({props:x(s(L),gt()),...v.snippetProps}));I(st,()=>t.child,()=>s(W))}h(V,$)},Nt=V=>{var $=Gt(),tt=m($);yt(tt,{get preventScroll(){return w()}});var et=at(tt,2);j(et,W=>({...W}),[()=>x(s(L),gt())]);var st=M(et);I(st,()=>t.children??z),K(et),h(V,$)};F(St,V=>{t.child?V(wt):V(Nt,!1)})}h(It,vt)},$$slots:{default:!0}}))},$$slots:{default:!0}}))},$$slots:{default:!0}}))},$$slots:{focusScope:!0}})};F(U,B=>{(v.shouldRender||c())&&B(Y)})}h(r,E),O()}var Xt=D("<div><!></div>");function Yt(r,t){const e=Q();C(t,!0);let n=l(t,"id",19,()=>X(e)),o=l(t,"forceMount",3,!1),c=l(t,"ref",15,null),a=A(t,["$$slots","$$events","$$legacy","id","forceMount","child","children","ref"]);const d=pt.create({id:b(()=>n()),ref:b(()=>c(),u=>c(u))}),p=y(()=>x(a,d.props));var g=_(),N=m(g);{var w=u=>{var i=_(),f=m(i);{var v=E=>{var U=_(),Y=m(U);{let B=y(()=>({props:x(s(p)),...d.snippetProps}));I(Y,()=>t.child,()=>s(B))}h(E,U)},L=E=>{var U=Xt();j(U,B=>({...B}),[()=>x(s(p))]);var Y=M(U);I(Y,()=>t.children??z,()=>d.snippetProps),K(U),h(E,U)};F(f,E=>{t.child?E(v):E(L,!1)})}h(u,i)};F(N,u=>{(d.shouldRender||o())&&u(w)})}h(r,g),O()}var Zt=D("<div><!></div>");function $t(r,t){const e=Q();C(t,!0);let n=l(t,"id",19,()=>X(e)),o=l(t,"ref",15,null),c=A(t,["$$slots","$$events","$$legacy","id","children","child","ref"]);const a=ut.create({id:b(()=>n()),ref:b(()=>o(),u=>o(u))}),d=y(()=>x(c,a.props));var p=_(),g=m(p);{var N=u=>{var i=_(),f=m(i);I(f,()=>t.child,()=>({props:s(d)})),h(u,i)},w=u=>{var i=Zt();j(i,()=>({...s(d)}));var f=M(i);I(f,()=>t.children??z),K(i),h(u,i)};F(g,u=>{t.child?u(N):u(w,!1)})}h(r,p),O()}function ye(r){return S(`/api/repos/${encodeURIComponent(r)}/sync`,{method:"POST"})}function _e(){return S("/api/sync",{method:"POST"})}function Pe(r,t,e){return S(`/api/repos/${encodeURIComponent(r)}/entities/${encodeURIComponent(t)}/${encodeURIComponent(e)}/refresh`,{method:"POST"})}function be(r,t,e){return S(`/api/repos/${encodeURIComponent(r)}/entities/${encodeURIComponent(t)}/${encodeURIComponent(e)}/refresh/apply`,{method:"POST"})}function Ce(){return S("/api/sources")}function Oe(){return S("/api/connectors")}function Ae(r){return S(`/api/connectors/${encodeURIComponent(r)}/config`)}function Ie(r,t){return S(`/api/connectors/${encodeURIComponent(r)}/config`,{method:"POST",body:JSON.stringify({...t,name:r})})}function Se(r){return S(`/api/connectors/${encodeURIComponent(r)}/config`,{method:"DELETE"})}function we(r){return S(`/api/sources/${encodeURIComponent(r)}`)}function Ne(r,t){return S(`/api/sources/${encodeURIComponent(r)}`,{method:"POST",body:JSON.stringify(t)})}function ke(r,t){return S(`/api/repos/${encodeURIComponent(r)}`,{method:"PATCH",body:JSON.stringify({sync:t})})}function Re(r){return S(`/api/connectors/${encodeURIComponent(r)}/oauth/authorize`,{method:"POST"})}function xe(r){return S(`/api/connectors/${encodeURIComponent(r)}/oauth/status`)}function De(r){return S(`/api/connectors/${encodeURIComponent(r)}/oauth/disconnect`,{method:"POST"})}function Ee(r,t){C(t,!0);let e=l(t,"open",15,!1),n=A(t,["$$slots","$$events","$$legacy","open"]);var o=_(),c=m(o);J(c,()=>Kt,(a,d)=>{d(a,k(()=>n,{get open(){return e()},set open(p){e(p)}}))}),h(r,o),O()}function te(r,t){let e=A(t,["$$slots","$$events","$$legacy"]);var n=_(),o=m(n);J(o,()=>zt,(c,a)=>{a(c,k(()=>e))}),h(r,n)}function Ue(r,t){C(t,!0);let e=l(t,"ref",15,null),n=A(t,["$$slots","$$events","$$legacy","ref","class"]);var o=_(),c=m(o);{let a=y(()=>H("text-lg font-semibold",t.class));J(c,()=>jt,(d,p)=>{p(d,k({"data-slot":"alert-dialog-title",get class(){return s(a)}},()=>n,{get ref(){return e()},set ref(g){e(g)}}))})}h(r,o),O()}function Be(r,t){C(t,!0);let e=l(t,"ref",15,null),n=A(t,["$$slots","$$events","$$legacy","ref","class"]);var o=_(),c=m(o);{let a=y(()=>t.class||H(bt()));J(c,()=>Lt,(d,p)=>{p(d,k({"data-slot":"alert-dialog-action",get class(){return s(a)}},()=>n,{get ref(){return e()},set ref(g){e(g)}}))})}h(r,o),O()}function Fe(r,t){C(t,!0);let e=l(t,"ref",15,null),n=A(t,["$$slots","$$events","$$legacy","ref","class"]);var o=_(),c=m(o);{let a=y(()=>t.class||H(bt({variant:"ghost"})));J(c,()=>qt,(d,p)=>{p(d,k({"data-slot":"alert-dialog-cancel",get class(){return s(a)}},()=>n,{get ref(){return e()},set ref(g){e(g)}}))})}h(r,o),O()}var ee=D("<div><!></div>");function Te(r,t){C(t,!0);let e=l(t,"ref",15,null),n=A(t,["$$slots","$$events","$$legacy","ref","class","children"]);var o=ee();j(o,a=>({"data-slot":"alert-dialog-footer",class:a,...n}),[()=>H("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t.class)]);var c=M(o);I(c,()=>t.children??z),K(o),Ct(o,a=>e(a),()=>e()),h(r,o),O()}var re=D("<div><!></div>");function ze(r,t){C(t,!0);let e=l(t,"ref",15,null),n=A(t,["$$slots","$$events","$$legacy","ref","class","children"]);var o=re();j(o,a=>({"data-slot":"alert-dialog-header",class:a,...n}),[()=>H("flex flex-col gap-2 text-center sm:text-start",t.class)]);var c=M(o);I(c,()=>t.children??z),K(o),Ct(o,a=>e(a),()=>e()),h(r,o),O()}function oe(r,t){C(t,!0);let e=l(t,"ref",15,null),n=A(t,["$$slots","$$events","$$legacy","ref","class"]);var o=_(),c=m(o);{let a=y(()=>H("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t.class));J(c,()=>Yt,(d,p)=>{p(d,k({"data-slot":"alert-dialog-overlay",get class(){return s(a)}},()=>n,{get ref(){return e()},set ref(g){e(g)}}))})}h(r,o),O()}var ne=D("<!> <!>",1);function Me(r,t){C(t,!0);let e=l(t,"ref",15,null),n=A(t,["$$slots","$$events","$$legacy","ref","class","portalProps"]);te(r,k(()=>t.portalProps,{children:(o,c)=>{var a=ne(),d=m(a);oe(d,{});var p=at(d,2);{let g=y(()=>H("bg-[var(--color-bg-elevated)] border-[var(--color-border)] text-[var(--color-text-primary)] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",t.class));J(p,()=>Qt,(N,w)=>{w(N,k({"data-slot":"alert-dialog-content",get class(){return s(g)}},()=>n,{get ref(){return e()},set ref(u){e(u)}}))})}h(o,a)},$$slots:{default:!0}})),O()}function Ke(r,t){C(t,!0);let e=l(t,"ref",15,null),n=A(t,["$$slots","$$events","$$legacy","ref","class"]);var o=_(),c=m(o);{let a=y(()=>H("text-[var(--color-text-secondary)] text-sm",t.class));J(c,()=>$t,(d,p)=>{p(d,k({"data-slot":"alert-dialog-description",get class(){return s(a)}},()=>n,{get ref(){return e()},set ref(g){e(g)}}))})}h(r,o),O()}export{Me as A,ye as B,lt as D,ze as a,Ue as b,Ke as c,Te as d,Fe as e,Be as f,Ee as g,ht as h,Yt as i,jt as j,Ce as k,Oe as l,we as m,Ae as n,Ie as o,De as p,Se as q,Re as r,Ne as s,xe as t,ke as u,be as v,Pe as w,Ot as x,$t as y,_e as z};
|
|
1
|
+
import{a as S}from"./CFtRXHDP.js";import{c as _,a as h,p as Q,b as D}from"./b0XUoOIH.js";import{a4 as y,g as s,s as P,e as R,p as C,a0 as m,b as O,ae as z,c as M,r as K,a3 as at}from"./DSh-OF2y.js";import{c as J}from"./DCVmM0L5.js";import{p as l,r as A,s as k}from"./D-yNNNdf.js";import{s as I,a as j}from"./CRnhIQbv.js";import{C as kt,s as q,L as nt,w as it,v as _t,E as Pt,A as mt,b,N as Rt,x as xt,B as Dt,n as G,c as X,m as x,H as Et,O as Ut,I as Bt,J as Ft,T as Tt,K as yt,p as zt}from"./DQYNi3YK.js";import{c as H,a as bt}from"./DQ5NTKSo.js";import{i as F,b as Ct}from"./DT3KtxWU.js";const Mt=Dt({component:"dialog",parts:["content","trigger","overlay","title","description","close","cancel","action"]}),T=new kt("Dialog.Root | AlertDialog.Root");class lt{static create(t){const e=T.getOr(null);return T.set(new lt(t,e))}opts;#t=R(null);get triggerNode(){return s(this.#t)}set triggerNode(t){P(this.#t,t,!0)}#e=R(null);get contentNode(){return s(this.#e)}set contentNode(t){P(this.#e,t,!0)}#r=R(null);get overlayNode(){return s(this.#r)}set overlayNode(t){P(this.#r,t,!0)}#o=R(null);get descriptionNode(){return s(this.#o)}set descriptionNode(t){P(this.#o,t,!0)}#n=R(void 0);get contentId(){return s(this.#n)}set contentId(t){P(this.#n,t,!0)}#s=R(void 0);get titleId(){return s(this.#s)}set titleId(t){P(this.#s,t,!0)}#a=R(void 0);get triggerId(){return s(this.#a)}set triggerId(t){P(this.#a,t,!0)}#i=R(void 0);get descriptionId(){return s(this.#i)}set descriptionId(t){P(this.#i,t,!0)}#l=R(null);get cancelNode(){return s(this.#l)}set cancelNode(t){P(this.#l,t,!0)}#c=R(0);get nestedOpenCount(){return s(this.#c)}set nestedOpenCount(t){P(this.#c,t,!0)}depth;parent;contentPresence;overlayPresence;constructor(t,e){this.opts=t,this.parent=e,this.depth=e?e.depth+1:0,this.handleOpen=this.handleOpen.bind(this),this.handleClose=this.handleClose.bind(this),this.contentPresence=new mt({ref:b(()=>this.contentNode),open:this.opts.open,enabled:!0,onComplete:()=>{this.opts.onOpenChangeComplete.current(this.opts.open.current)}}),this.overlayPresence=new mt({ref:b(()=>this.overlayNode),open:this.opts.open,enabled:!0}),it(()=>this.opts.open.current,n=>{this.parent&&(n?this.parent.incrementNested():this.parent.decrementNested())},{lazy:!0}),Rt(()=>{this.opts.open.current&&this.parent?.decrementNested()})}handleOpen(){this.opts.open.current||(this.opts.open.current=!0)}handleClose(){this.opts.open.current&&(this.opts.open.current=!1)}getBitsAttr=t=>Mt.getAttr(t,this.opts.variant.current);incrementNested(){this.nestedOpenCount++,this.parent?.incrementNested()}decrementNested(){this.nestedOpenCount!==0&&(this.nestedOpenCount--,this.parent?.decrementNested())}#d=y(()=>({"data-state":xt(this.opts.open.current)}));get sharedProps(){return s(this.#d)}set sharedProps(t){P(this.#d,t)}}class Ot{static create(t){return new Ot(t,T.get())}opts;root;attachment;constructor(t,e){this.opts=t,this.root=e,this.attachment=q(this.opts.ref),this.onclick=this.onclick.bind(this),this.onkeydown=this.onkeydown.bind(this)}onclick(t){this.opts.disabled.current||t.button>0||this.root.handleClose()}onkeydown(t){this.opts.disabled.current||(t.key===_t||t.key===Pt)&&(t.preventDefault(),this.root.handleClose())}#t=y(()=>({id:this.opts.id.current,[this.root.getBitsAttr(this.opts.variant.current)]:"",onclick:this.onclick,onkeydown:this.onkeydown,disabled:this.opts.disabled.current?!0:void 0,tabindex:0,...this.root.sharedProps,...this.attachment}));get props(){return s(this.#t)}set props(t){P(this.#t,t)}}class ct{static create(t){return new ct(t,T.get())}opts;root;attachment;constructor(t,e){this.opts=t,this.root=e,this.attachment=q(this.opts.ref)}#t=y(()=>({id:this.opts.id.current,[this.root.getBitsAttr("action")]:"",...this.root.sharedProps,...this.attachment}));get props(){return s(this.#t)}set props(t){P(this.#t,t)}}class dt{static create(t){return new dt(t,T.get())}opts;root;attachment;constructor(t,e){this.opts=t,this.root=e,this.root.titleId=this.opts.id.current,this.attachment=q(this.opts.ref),it.pre(()=>this.opts.id.current,n=>{this.root.titleId=n})}#t=y(()=>({id:this.opts.id.current,role:"heading","aria-level":this.opts.level.current,[this.root.getBitsAttr("title")]:"",...this.root.sharedProps,...this.attachment}));get props(){return s(this.#t)}set props(t){P(this.#t,t)}}class ut{static create(t){return new ut(t,T.get())}opts;root;attachment;constructor(t,e){this.opts=t,this.root=e,this.root.descriptionId=this.opts.id.current,this.attachment=q(this.opts.ref,n=>{this.root.descriptionNode=n}),it.pre(()=>this.opts.id.current,n=>{this.root.descriptionId=n})}#t=y(()=>({id:this.opts.id.current,[this.root.getBitsAttr("description")]:"",...this.root.sharedProps,...this.attachment}));get props(){return s(this.#t)}set props(t){P(this.#t,t)}}class ht{static create(t){return new ht(t,T.get())}opts;root;attachment;constructor(t,e){this.opts=t,this.root=e,this.attachment=q(this.opts.ref,n=>{this.root.contentNode=n,this.root.contentId=n?.id})}#t=y(()=>({open:this.root.opts.open.current}));get snippetProps(){return s(this.#t)}set snippetProps(t){P(this.#t,t)}#e=y(()=>({id:this.opts.id.current,role:this.root.opts.variant.current==="alert-dialog"?"alertdialog":"dialog","aria-modal":"true","aria-describedby":this.root.descriptionId,"aria-labelledby":this.root.titleId,[this.root.getBitsAttr("content")]:"",style:{pointerEvents:"auto",outline:this.root.opts.variant.current==="alert-dialog"?"none":void 0,"--bits-dialog-depth":this.root.depth,"--bits-dialog-nested-count":this.root.nestedOpenCount,contain:"layout style"},tabindex:this.root.opts.variant.current==="alert-dialog"?-1:void 0,"data-nested-open":nt(this.root.nestedOpenCount>0),"data-nested":nt(this.root.parent!==null),...this.root.sharedProps,...this.attachment}));get props(){return s(this.#e)}set props(t){P(this.#e,t)}get shouldRender(){return this.root.contentPresence.shouldRender}}class pt{static create(t){return new pt(t,T.get())}opts;root;attachment;constructor(t,e){this.opts=t,this.root=e,this.attachment=q(this.opts.ref,n=>this.root.overlayNode=n)}#t=y(()=>({open:this.root.opts.open.current}));get snippetProps(){return s(this.#t)}set snippetProps(t){P(this.#t,t)}#e=y(()=>({id:this.opts.id.current,[this.root.getBitsAttr("overlay")]:"",style:{pointerEvents:"auto","--bits-dialog-depth":this.root.depth,"--bits-dialog-nested-count":this.root.nestedOpenCount},"data-nested-open":nt(this.root.nestedOpenCount>0),"data-nested":nt(this.root.parent!==null),...this.root.sharedProps,...this.attachment}));get props(){return s(this.#e)}set props(t){P(this.#e,t)}get shouldRender(){return this.root.overlayPresence.shouldRender}}class ft{static create(t){return new ft(t,T.get())}opts;root;attachment;constructor(t,e){this.opts=t,this.root=e,this.attachment=q(this.opts.ref,n=>this.root.cancelNode=n),this.onclick=this.onclick.bind(this),this.onkeydown=this.onkeydown.bind(this)}onclick(t){this.opts.disabled.current||t.button>0||this.root.handleClose()}onkeydown(t){this.opts.disabled.current||(t.key===_t||t.key===Pt)&&(t.preventDefault(),this.root.handleClose())}#t=y(()=>({id:this.opts.id.current,[this.root.getBitsAttr("cancel")]:"",onclick:this.onclick,onkeydown:this.onkeydown,tabindex:0,...this.root.sharedProps,...this.attachment}));get props(){return s(this.#t)}set props(t){P(this.#t,t)}}function Kt(r,t){C(t,!0);let e=l(t,"open",15,!1),n=l(t,"onOpenChange",3,G),o=l(t,"onOpenChangeComplete",3,G);lt.create({variant:b(()=>"alert-dialog"),open:b(()=>e(),d=>{e(d),n()(d)}),onOpenChangeComplete:b(()=>o())});var c=_(),a=m(c);I(a,()=>t.children??z),h(r,c),O()}var Jt=D("<div><!></div>");function jt(r,t){const e=Q();C(t,!0);let n=l(t,"id",19,()=>X(e)),o=l(t,"ref",15,null),c=l(t,"level",3,2),a=A(t,["$$slots","$$events","$$legacy","id","ref","child","children","level"]);const d=dt.create({id:b(()=>n()),level:b(()=>c()),ref:b(()=>o(),i=>o(i))}),p=y(()=>x(a,d.props));var g=_(),N=m(g);{var w=i=>{var f=_(),v=m(f);I(v,()=>t.child,()=>({props:s(p)})),h(i,f)},u=i=>{var f=Jt();j(f,()=>({...s(p)}));var v=M(f);I(v,()=>t.children??z),K(f),h(i,f)};F(N,i=>{t.child?i(w):i(u,!1)})}h(r,g),O()}var Ht=D("<button><!></button>");function Lt(r,t){const e=Q();C(t,!0);let n=l(t,"id",19,()=>X(e)),o=l(t,"ref",15,null),c=A(t,["$$slots","$$events","$$legacy","children","child","id","ref"]);const a=ct.create({id:b(()=>n()),ref:b(()=>o(),u=>o(u))}),d=y(()=>x(c,a.props));var p=_(),g=m(p);{var N=u=>{var i=_(),f=m(i);I(f,()=>t.child,()=>({props:s(d)})),h(u,i)},w=u=>{var i=Ht();j(i,()=>({...s(d)}));var f=M(i);I(f,()=>t.children??z),K(i),h(u,i)};F(g,u=>{t.child?u(N):u(w,!1)})}h(r,p),O()}var Wt=D("<button><!></button>");function qt(r,t){const e=Q();C(t,!0);let n=l(t,"id",19,()=>X(e)),o=l(t,"ref",15,null),c=l(t,"disabled",3,!1),a=A(t,["$$slots","$$events","$$legacy","id","ref","children","child","disabled"]);const d=ft.create({id:b(()=>n()),ref:b(()=>o(),i=>o(i)),disabled:b(()=>!!c())}),p=y(()=>x(a,d.props));var g=_(),N=m(g);{var w=i=>{var f=_(),v=m(f);I(v,()=>t.child,()=>({props:s(p)})),h(i,f)},u=i=>{var f=Wt();j(f,()=>({...s(p)}));var v=M(f);I(v,()=>t.children??z),K(f),h(i,f)};F(N,i=>{t.child?i(w):i(u,!1)})}h(r,g),O()}var Vt=D("<!> <!>",1),Gt=D("<!> <div><!></div>",1);function Qt(r,t){const e=Q();C(t,!0);let n=l(t,"id",19,()=>X(e)),o=l(t,"ref",15,null),c=l(t,"forceMount",3,!1),a=l(t,"interactOutsideBehavior",3,"ignore"),d=l(t,"onCloseAutoFocus",3,G),p=l(t,"onEscapeKeydown",3,G),g=l(t,"onOpenAutoFocus",3,G),N=l(t,"onInteractOutside",3,G),w=l(t,"preventScroll",3,!0),u=l(t,"trapFocus",3,!0),i=l(t,"restoreScrollDelay",3,null),f=A(t,["$$slots","$$events","$$legacy","id","children","child","ref","forceMount","interactOutsideBehavior","onCloseAutoFocus","onEscapeKeydown","onOpenAutoFocus","onInteractOutside","preventScroll","trapFocus","restoreScrollDelay"]);const v=ht.create({id:b(()=>n()),ref:b(()=>o(),B=>o(B))}),L=y(()=>x(f,v.props));var E=_(),U=m(E);{var Y=B=>{Et(B,{get ref(){return v.opts.ref},loop:!0,get trapFocus(){return u()},get enabled(){return v.root.opts.open.current},get onCloseAutoFocus(){return d()},onOpenAutoFocus:Z=>{g()(Z),!Z.defaultPrevented&&(Z.preventDefault(),Ut(0,()=>v.opts.ref.current?.focus()))},focusScope:(Z,At)=>{let gt=()=>At?.().props;Bt(Z,k(()=>s(L),{get enabled(){return v.root.opts.open.current},get ref(){return v.opts.ref},onEscapeKeydown:rt=>{p()(rt),!rt.defaultPrevented&&v.root.handleClose()},children:(rt,ae)=>{Ft(rt,k(()=>s(L),{get ref(){return v.opts.ref},get enabled(){return v.root.opts.open.current},get interactOutsideBehavior(){return a()},onInteractOutside:ot=>{N()(ot),!ot.defaultPrevented&&v.root.handleClose()},children:(ot,ie)=>{Tt(ot,k(()=>s(L),{get ref(){return v.opts.ref},get enabled(){return v.root.opts.open.current},children:(It,le)=>{var vt=_(),St=m(vt);{var wt=V=>{var $=Vt(),tt=m($);{var et=W=>{yt(W,{get preventScroll(){return w()},get restoreScrollDelay(){return i()}})};F(tt,W=>{v.root.opts.open.current&&W(et)})}var st=at(tt,2);{let W=y(()=>({props:x(s(L),gt()),...v.snippetProps}));I(st,()=>t.child,()=>s(W))}h(V,$)},Nt=V=>{var $=Gt(),tt=m($);yt(tt,{get preventScroll(){return w()}});var et=at(tt,2);j(et,W=>({...W}),[()=>x(s(L),gt())]);var st=M(et);I(st,()=>t.children??z),K(et),h(V,$)};F(St,V=>{t.child?V(wt):V(Nt,!1)})}h(It,vt)},$$slots:{default:!0}}))},$$slots:{default:!0}}))},$$slots:{default:!0}}))},$$slots:{focusScope:!0}})};F(U,B=>{(v.shouldRender||c())&&B(Y)})}h(r,E),O()}var Xt=D("<div><!></div>");function Yt(r,t){const e=Q();C(t,!0);let n=l(t,"id",19,()=>X(e)),o=l(t,"forceMount",3,!1),c=l(t,"ref",15,null),a=A(t,["$$slots","$$events","$$legacy","id","forceMount","child","children","ref"]);const d=pt.create({id:b(()=>n()),ref:b(()=>c(),u=>c(u))}),p=y(()=>x(a,d.props));var g=_(),N=m(g);{var w=u=>{var i=_(),f=m(i);{var v=E=>{var U=_(),Y=m(U);{let B=y(()=>({props:x(s(p)),...d.snippetProps}));I(Y,()=>t.child,()=>s(B))}h(E,U)},L=E=>{var U=Xt();j(U,B=>({...B}),[()=>x(s(p))]);var Y=M(U);I(Y,()=>t.children??z,()=>d.snippetProps),K(U),h(E,U)};F(f,E=>{t.child?E(v):E(L,!1)})}h(u,i)};F(N,u=>{(d.shouldRender||o())&&u(w)})}h(r,g),O()}var Zt=D("<div><!></div>");function $t(r,t){const e=Q();C(t,!0);let n=l(t,"id",19,()=>X(e)),o=l(t,"ref",15,null),c=A(t,["$$slots","$$events","$$legacy","id","children","child","ref"]);const a=ut.create({id:b(()=>n()),ref:b(()=>o(),u=>o(u))}),d=y(()=>x(c,a.props));var p=_(),g=m(p);{var N=u=>{var i=_(),f=m(i);I(f,()=>t.child,()=>({props:s(d)})),h(u,i)},w=u=>{var i=Zt();j(i,()=>({...s(d)}));var f=M(i);I(f,()=>t.children??z),K(i),h(u,i)};F(g,u=>{t.child?u(N):u(w,!1)})}h(r,p),O()}function ye(r){return S(`/api/repos/${encodeURIComponent(r)}/sync`,{method:"POST"})}function _e(){return S("/api/sync",{method:"POST"})}function Pe(r,t,e){return S(`/api/repos/${encodeURIComponent(r)}/entities/${encodeURIComponent(t)}/${encodeURIComponent(e)}/refresh`,{method:"POST"})}function be(r,t,e){return S(`/api/repos/${encodeURIComponent(r)}/entities/${encodeURIComponent(t)}/${encodeURIComponent(e)}/refresh/apply`,{method:"POST"})}function Ce(){return S("/api/sources")}function Oe(){return S("/api/connectors")}function Ae(r){return S(`/api/connectors/${encodeURIComponent(r)}/config`)}function Ie(r,t){return S(`/api/connectors/${encodeURIComponent(r)}/config`,{method:"POST",body:JSON.stringify({...t,name:r})})}function Se(r){return S(`/api/connectors/${encodeURIComponent(r)}/config`,{method:"DELETE"})}function we(r){return S(`/api/sources/${encodeURIComponent(r)}`)}function Ne(r,t){return S(`/api/sources/${encodeURIComponent(r)}`,{method:"POST",body:JSON.stringify(t)})}function ke(r,t){return S(`/api/repos/${encodeURIComponent(r)}`,{method:"PATCH",body:JSON.stringify({sync:t})})}function Re(r){return S(`/api/connectors/${encodeURIComponent(r)}/oauth/authorize`,{method:"POST"})}function xe(r){return S(`/api/connectors/${encodeURIComponent(r)}/oauth/status`)}function De(r){return S(`/api/connectors/${encodeURIComponent(r)}/oauth/disconnect`,{method:"POST"})}function Ee(r,t){C(t,!0);let e=l(t,"open",15,!1),n=A(t,["$$slots","$$events","$$legacy","open"]);var o=_(),c=m(o);J(c,()=>Kt,(a,d)=>{d(a,k(()=>n,{get open(){return e()},set open(p){e(p)}}))}),h(r,o),O()}function te(r,t){let e=A(t,["$$slots","$$events","$$legacy"]);var n=_(),o=m(n);J(o,()=>zt,(c,a)=>{a(c,k(()=>e))}),h(r,n)}function Ue(r,t){C(t,!0);let e=l(t,"ref",15,null),n=A(t,["$$slots","$$events","$$legacy","ref","class"]);var o=_(),c=m(o);{let a=y(()=>H("text-lg font-semibold",t.class));J(c,()=>jt,(d,p)=>{p(d,k({"data-slot":"alert-dialog-title",get class(){return s(a)}},()=>n,{get ref(){return e()},set ref(g){e(g)}}))})}h(r,o),O()}function Be(r,t){C(t,!0);let e=l(t,"ref",15,null),n=A(t,["$$slots","$$events","$$legacy","ref","class"]);var o=_(),c=m(o);{let a=y(()=>t.class||H(bt()));J(c,()=>Lt,(d,p)=>{p(d,k({"data-slot":"alert-dialog-action",get class(){return s(a)}},()=>n,{get ref(){return e()},set ref(g){e(g)}}))})}h(r,o),O()}function Fe(r,t){C(t,!0);let e=l(t,"ref",15,null),n=A(t,["$$slots","$$events","$$legacy","ref","class"]);var o=_(),c=m(o);{let a=y(()=>t.class||H(bt({variant:"ghost"})));J(c,()=>qt,(d,p)=>{p(d,k({"data-slot":"alert-dialog-cancel",get class(){return s(a)}},()=>n,{get ref(){return e()},set ref(g){e(g)}}))})}h(r,o),O()}var ee=D("<div><!></div>");function Te(r,t){C(t,!0);let e=l(t,"ref",15,null),n=A(t,["$$slots","$$events","$$legacy","ref","class","children"]);var o=ee();j(o,a=>({"data-slot":"alert-dialog-footer",class:a,...n}),[()=>H("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t.class)]);var c=M(o);I(c,()=>t.children??z),K(o),Ct(o,a=>e(a),()=>e()),h(r,o),O()}var re=D("<div><!></div>");function ze(r,t){C(t,!0);let e=l(t,"ref",15,null),n=A(t,["$$slots","$$events","$$legacy","ref","class","children"]);var o=re();j(o,a=>({"data-slot":"alert-dialog-header",class:a,...n}),[()=>H("flex flex-col gap-2 text-center sm:text-start",t.class)]);var c=M(o);I(c,()=>t.children??z),K(o),Ct(o,a=>e(a),()=>e()),h(r,o),O()}function oe(r,t){C(t,!0);let e=l(t,"ref",15,null),n=A(t,["$$slots","$$events","$$legacy","ref","class"]);var o=_(),c=m(o);{let a=y(()=>H("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t.class));J(c,()=>Yt,(d,p)=>{p(d,k({"data-slot":"alert-dialog-overlay",get class(){return s(a)}},()=>n,{get ref(){return e()},set ref(g){e(g)}}))})}h(r,o),O()}var ne=D("<!> <!>",1);function Me(r,t){C(t,!0);let e=l(t,"ref",15,null),n=A(t,["$$slots","$$events","$$legacy","ref","class","portalProps"]);te(r,k(()=>t.portalProps,{children:(o,c)=>{var a=ne(),d=m(a);oe(d,{});var p=at(d,2);{let g=y(()=>H("bg-[var(--color-bg-elevated)] border-[var(--color-border)] text-[var(--color-text-primary)] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",t.class));J(p,()=>Qt,(N,w)=>{w(N,k({"data-slot":"alert-dialog-content",get class(){return s(g)}},()=>n,{get ref(){return e()},set ref(u){e(u)}}))})}h(o,a)},$$slots:{default:!0}})),O()}function Ke(r,t){C(t,!0);let e=l(t,"ref",15,null),n=A(t,["$$slots","$$events","$$legacy","ref","class"]);var o=_(),c=m(o);{let a=y(()=>H("text-[var(--color-text-secondary)] text-sm",t.class));J(c,()=>$t,(d,p)=>{p(d,k({"data-slot":"alert-dialog-description",get class(){return s(a)}},()=>n,{get ref(){return e()},set ref(g){e(g)}}))})}h(r,o),O()}export{Me as A,ye as B,lt as D,ze as a,Ue as b,Ke as c,Te as d,Fe as e,Be as f,Ee as g,ht as h,Yt as i,jt as j,Ce as k,Oe as l,we as m,Ae as n,Ie as o,De as p,Se as q,Re as r,Ne as s,xe as t,ke as u,be as v,Pe as w,Ot as x,$t as y,_e as z};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as p,s as C,f as h}from"./
|
|
1
|
+
import{a as p,s as C,f as h}from"./b0XUoOIH.js";import{i as M}from"./vZ2iBqLE.js";import{p as k,l as c,s as m,d as f,g as i,a as A,c as _,n as B,r as u,b as N,m as v,t as P}from"./DSh-OF2y.js";import{i as R}from"./DT3KtxWU.js";import{a as Y}from"./CRnhIQbv.js";import{l as g,p as b}from"./D-yNNNdf.js";var j=h("<title> </title>"),q=h('<svg><!><path d="M17.4141 16 24 9.4141 22.5859 8 16 14.5859 9.4143 8 8 9.4141 14.5859 16 8 22.5859 9.4143 24 16 17.4141 22.5859 24 24 22.5859 17.4141 16z"></path></svg>');function J(x,t){const e=g(t,["children","$$slots","$$events","$$legacy"]),w=g(e,["size","title"]);k(t,!1);const a=v(),n=v();let d=b(t,"size",8,16),s=b(t,"title",8,void 0);c(()=>(f(e),f(s())),()=>{m(a,e["aria-label"]||e["aria-labelledby"]||s())}),c(()=>(i(a),f(e)),()=>{m(n,{"aria-hidden":i(a)?void 0:!0,role:i(a)?"img":void 0,focusable:Number(e.tabindex)===0?!0:void 0})}),A(),M();var r=q();Y(r,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:d(),height:d(),...i(n),...w}));var y=_(r);{var z=o=>{var l=j(),$=_(l,!0);u(l),P(()=>C($,s())),p(o,l)};R(y,o=>{s()&&o(z)})}B(),u(r),p(x,r),N()}export{J as C};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as g,s as
|
|
1
|
+
import{a as g,s as ce,f as fe,d as ke,e as f,b as P,c as F,g as ze}from"./b0XUoOIH.js";import{p as ue,l as le,s,d as J,g as t,a as Me,c as l,n as W,r as o,b as me,m as oe,t as I,a1 as Ce,a2 as He,e as V,f as De,a0 as H,a3 as p,a4 as Re}from"./DSh-OF2y.js";import{a as Ae,r as $e,s as Ie,b as Pe}from"./CRnhIQbv.js";import{i as k,b as Ee}from"./DT3KtxWU.js";import{e as Te}from"./DHtLlmE0.js";import{s as Q}from"./CFtRXHDP.js";import{b as Be,B as Ne}from"./DQ5NTKSo.js";import{l as ve,p as ee}from"./D-yNNNdf.js";import{g as de}from"./C0v9FrTH.js";import{i as Se}from"./vZ2iBqLE.js";import{A as Ye}from"./BgBJ0u3M.js";import{E as Ge,T as Ke}from"./azUmHUDT.js";import{n as U}from"./HVmKTSmh.js";import{v as D}from"./D2C1YupD.js";var Le=fe("<title> </title>"),Oe=fe('<svg><!><path d="M17.74,30,16,29l4-7h6a2,2,0,0,0,2-2V8a2,2,0,0,0-2-2H6A2,2,0,0,0,4,8V20a2,2,0,0,0,2,2h9v2H6a4,4,0,0,1-4-4V8A4,4,0,0,1,6,4H26a4,4,0,0,1,4,4V20a4,4,0,0,1-4,4H21.16Z"></path><path d="M8 10H24V12H8z"></path><path d="M8 16H18V18H8z"></path></svg>');function Xe(E,u){const n=ve(u,["children","$$slots","$$events","$$legacy"]),R=ve(n,["size","title"]);ue(u,!1);const _=oe(),A=oe();let v=ee(u,"size",8,16),d=ee(u,"title",8,void 0);le(()=>(J(n),J(d())),()=>{s(_,n["aria-label"]||n["aria-labelledby"]||d())}),le(()=>(t(_),J(n)),()=>{s(A,{"aria-hidden":t(_)?void 0:!0,role:t(_)?"img":void 0,focusable:Number(n.tabindex)===0?!0:void 0})}),Me(),Se();var c=Oe();Ae(c,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:v(),height:v(),...t(A),...R}));var b=l(c);{var T=w=>{var z=Le(),B=l(z,!0);o(z),I(()=>ce(B,d())),g(w,z)};k(b,w=>{d()&&w(T)})}W(3),o(c),g(E,c),me()}var Ze=P('<input class="view-rename-input svelte-r6dy5f"/>'),je=P('<button><span class="toggle-label"> </span></button>'),qe=P('<div class="context-backdrop svelte-r6dy5f"></div> <div class="view-context-menu svelte-r6dy5f"><div class="view-menu-item svelte-r6dy5f"><!> Rename</div> <div class="view-menu-item view-menu-item-danger svelte-r6dy5f"><!> Delete</div></div>',1),Fe=P('<div class="view-toolbar svelte-r6dy5f"><div></div> <div class="view-toggles svelte-r6dy5f"><button><span class="toggle-label">Details</span></button> <button><span class="toggle-label">Graph</span></button> <!> <button class="toggle-btn add-view-btn svelte-r6dy5f" title="New view"><!></button></div> <div class="toolbar-right svelte-r6dy5f"><!> <!></div></div> <!>',1);function dt(E,u){ue(u,!0);let n=ee(u,"activeView",3,"entity");const R=Ce("chat");function _(e){de(e,{noScroll:!0})}async function A(){const e=await D.create("New View");de(`/views/${e.id}`)}let v=V(null),d=V(""),c=V(null),b=V(!1);function T(e){s(b,!1),s(v,e.id,!0),s(d,e.name,!0)}He(()=>{t(v)&&t(c)&&(t(c).focus(),t(c).select(),setTimeout(()=>{s(b,!0)},50))});function w(){t(b)&&(t(v)&&t(d).trim()&&D.update(t(v),{name:t(d).trim()}),s(v,null),s(b,!1))}function z(){s(v,null),s(b,!1)}function B(e){e.key==="Enter"&&(e.preventDefault(),s(b,!0),w()),e.key==="Escape"&&(e.preventDefault(),z())}let $=V(null),N=V(De({x:0,y:0}));function pe(e,a){e.preventDefault(),s($,a.id,!0),s(N,{x:e.clientX,y:e.clientY},!0)}function S(){s($,null)}async function ge(e){S(),confirm(`Delete view "${e.name}"?`)&&await D.remove(e.id)}var te=Fe(),Y=H(te),G=p(l(Y),2),K=l(G);let ae;var L=p(K,2);let ie;var se=p(L,2);Te(se,17,()=>D.views,e=>e.id,(e,a)=>{var h=F(),X=H(h);{var Z=m=>{var i=Ze();$e(i),Ee(i,r=>s(c,r),()=>t(c)),f("keydown",i,B),ze("blur",i,w),Be(i,()=>t(d),r=>s(d,r)),g(m,i)},y=m=>{var i=je();let r;var M=l(i),x=l(M,!0);o(M),o(i),I(()=>{r=Q(i,1,"toggle-btn svelte-r6dy5f",null,r,{active:n()==="view"&&U.activeViewId===t(a).id}),ce(x,t(a).name)}),f("click",i,()=>!(n()==="view"&&U.activeViewId===t(a).id)&&_(`/views/${t(a).id}`)),f("contextmenu",i,j=>pe(j,t(a))),g(m,i)};k(X,m=>{t(v)===t(a).id?m(Z):m(y,!1)})}g(e,h)});var O=p(se,2),_e=l(O);Ye(_e,{size:14}),o(O),o(G);var ne=p(G,2),re=l(ne);{var be=e=>{var a=F(),h=H(a);Ie(h,()=>u.right),g(e,a)};k(re,e=>{u.right&&e(be)})}var he=p(re,2);{var ye=e=>{Ne(e,{variant:"accent",size:"icon",class:"chat-toggle",title:"Open Agent",get onclick(){return R.toggle},children:(a,h)=>{Xe(a,{size:14})},$$slots:{default:!0}})};k(he,e=>{R.open||e(ye)})}o(ne),o(Y);var we=p(Y,2);{var xe=e=>{const a=Re(()=>D.views.find(y=>y.id===t($)));var h=F(),X=H(h);{var Z=y=>{var m=qe(),i=H(m),r=p(i,2);let M;var x=l(r),j=l(x);Ge(j,{size:12}),W(),o(x);var q=p(x,2),Ve=l(q);Ke(Ve,{size:12}),W(),o(q),o(r),I(()=>M=Pe(r,"",M,{left:`${t(N).x??""}px`,top:`${t(N).y??""}px`})),f("click",i,S),f("click",r,C=>C.stopPropagation()),f("click",x,()=>{const C=t(a);S(),T(C)}),f("click",q,()=>{const C=t(a);ge(C)}),g(y,m)};k(X,y=>{t(a)&&y(Z)})}g(e,h)};k(we,e=>{t($)&&e(xe)})}I(()=>{ae=Q(K,1,"toggle-btn svelte-r6dy5f",null,ae,{active:n()==="entity"}),ie=Q(L,1,"toggle-btn svelte-r6dy5f",null,ie,{active:n()==="graph"})}),f("click",K,()=>n()!=="entity"&&_(U.entityPath??"/")),f("click",L,()=>n()!=="graph"&&_("/graph")),f("click",O,A),g(E,te),me()}ke(["click","keydown","contextmenu"]);export{dt as V};
|