fuli-context 0.7.7 → 0.7.9
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/web/assets/AboutPage-Bp-Xz6yo.js +1 -0
- package/dist/web/assets/ConnectionsPage-BMpkYeSE.js +1 -0
- package/dist/web/assets/{EmployeeRecruitDialog-CfFlyKSh.css → EmployeeRecruitDialog-CnA7rOnB.css} +1 -1
- package/dist/web/assets/EmployeeRecruitDialog-DbMVuLAI.js +1 -0
- package/dist/web/assets/EmployeeWorkbenchPage-BpkqpEs7.css +1 -0
- package/dist/web/assets/EmployeeWorkbenchPage-DtXSJOpq.js +1 -0
- package/dist/web/assets/KnowledgeEditDialog-DADXj_BT.js +1 -0
- package/dist/web/assets/KnowledgeInspector-Xs4VCUg8.js +1 -0
- package/dist/web/assets/KnowledgeOrganizerPage-B_Ct4bB2.js +1 -0
- package/dist/web/assets/KnowledgePage-RG9Ttnrp.js +1 -0
- package/dist/web/assets/KnowledgeWorkspace-DI8YqTVI.js +4 -0
- package/dist/web/assets/OverviewPage-HwoSW-5z.js +1 -0
- package/dist/web/assets/PersonalProfilePage-DCoG52SW.js +1 -0
- package/dist/web/assets/PersonalProjectsPage-CNb9mlbp.js +1 -0
- package/dist/web/assets/ProjectAgentsPage-zQ9BZW9v.js +11 -0
- package/dist/web/assets/PublicProjectsPage-BuLqkZ8g.js +1 -0
- package/dist/web/assets/ReviewPage-8A7N5pJs.js +1 -0
- package/dist/web/assets/SearchableSelect-CFZNdtlY.js +1 -0
- package/dist/web/assets/SettingsPage-4ah1u906.js +1 -0
- package/dist/web/assets/WritingTastePage-DztRj6MK.js +1 -0
- package/dist/web/assets/{catalog-DFvIaHVS.js → avatars-LvVKbDF7.js} +1 -1
- package/dist/web/assets/console-B7dWYAoU.js +1 -0
- package/dist/web/assets/{conversation-launcher-settings-DuFSpPAo.js → conversation-launcher-settings-D1xhW1S5.js} +1 -1
- package/dist/web/assets/{i18n-CgBHZthI.js → i18n-DQH9D35M.js} +2 -2
- package/dist/web/assets/{identity-CFo_Uw1H.js → identity-JjZG6aS5.js} +1 -1
- package/dist/web/assets/index-Ch1jmkyO.css +1 -0
- package/dist/web/assets/index-DRd-2Tii.js +2 -0
- package/dist/web/assets/jefa-avatar-Dew42td5.webp +0 -0
- package/dist/web/assets/{model-BtnVr7fX.js → model-zL97NJ-U.js} +1 -1
- package/dist/web/assets/{useApi-CROJJdhE-B6MHm_Av.js → useApi-CROJJdhE-CElDxEZI.js} +1 -1
- package/dist/web/assets/{vue-router-CzHm-y-x.js → vue-router-F7MnkVlW.js} +1 -1
- package/dist/web/index.html +7 -7
- package/graph-provider/pyproject.toml +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/src/cli/update-command.js +6 -43
- package/src/employees/task-entry.js +1 -1
- package/src/http/api-router.js +5 -0
- package/src/semantic-version.js +42 -0
- package/src/system/package-version-checker.js +72 -0
- package/src/system/system-service.js +3 -0
- package/dist/web/assets/AboutPage-BcZeFcHe.js +0 -1
- package/dist/web/assets/ConnectionsPage-xAQYl1SQ.js +0 -1
- package/dist/web/assets/EmployeeRecruitDialog-CbPAmhy7.js +0 -1
- package/dist/web/assets/EmployeeWorkbenchPage-BQvTLoc8.css +0 -1
- package/dist/web/assets/EmployeeWorkbenchPage-DF3EL0Ui.js +0 -1
- package/dist/web/assets/KnowledgeEditDialog-UnnBDt0I.js +0 -1
- package/dist/web/assets/KnowledgeInspector-BqPJH5Rr.js +0 -1
- package/dist/web/assets/KnowledgeOrganizerPage-CyvRflXM.js +0 -1
- package/dist/web/assets/KnowledgePage-59eczTqe.js +0 -1
- package/dist/web/assets/KnowledgeWorkspace-CfIjhOog.js +0 -4
- package/dist/web/assets/OverviewPage-Xyfm5xkZ.js +0 -1
- package/dist/web/assets/PersonalProfilePage-DB9mByB3.js +0 -1
- package/dist/web/assets/PersonalProjectsPage-_-YXVi5O.js +0 -1
- package/dist/web/assets/ProjectAgentsPage-DeeQByPX.js +0 -11
- package/dist/web/assets/PublicProjectsPage-BEZ1YPs3.js +0 -1
- package/dist/web/assets/ReviewPage-CQYGwFBH.js +0 -1
- package/dist/web/assets/SearchableSelect-D27H0MoP.js +0 -1
- package/dist/web/assets/SettingsPage-BlEZ03Yi.js +0 -1
- package/dist/web/assets/WritingTastePage-DvRt_nmP.js +0 -1
- package/dist/web/assets/console-tOxOl8Vq.js +0 -1
- package/dist/web/assets/index-CJc5ppXH.css +0 -1
- package/dist/web/assets/index-yCi3cz2l.js +0 -2
|
@@ -10,6 +10,12 @@ import {
|
|
|
10
10
|
import { quoteShellArgument } from './shell-argument.js';
|
|
11
11
|
import { parseUpdateOptions } from '../setup/options.js';
|
|
12
12
|
import { runLocalRuntimeCommand } from './local-runtime-command.js';
|
|
13
|
+
import {
|
|
14
|
+
compareSemanticVersions,
|
|
15
|
+
parseSemanticVersion
|
|
16
|
+
} from '../semantic-version.js';
|
|
17
|
+
|
|
18
|
+
export { compareSemanticVersions } from '../semantic-version.js';
|
|
13
19
|
|
|
14
20
|
const LATEST_PACKAGE = `${FULI_PACKAGE_NAME}@latest`;
|
|
15
21
|
|
|
@@ -161,34 +167,6 @@ export function formatUpdateResult(result) {
|
|
|
161
167
|
return `Fuli updated from ${result.previousVersion} to ${result.version}.`;
|
|
162
168
|
}
|
|
163
169
|
|
|
164
|
-
export function compareSemanticVersions(left, right) {
|
|
165
|
-
const parsedLeft = parseSemanticVersion(left);
|
|
166
|
-
const parsedRight = parseSemanticVersion(right);
|
|
167
|
-
for (let index = 0; index < 3; index += 1) {
|
|
168
|
-
if (parsedLeft.core[index] > parsedRight.core[index]) return 1;
|
|
169
|
-
if (parsedLeft.core[index] < parsedRight.core[index]) return -1;
|
|
170
|
-
}
|
|
171
|
-
if (!parsedLeft.prerelease.length && !parsedRight.prerelease.length) return 0;
|
|
172
|
-
if (!parsedLeft.prerelease.length) return 1;
|
|
173
|
-
if (!parsedRight.prerelease.length) return -1;
|
|
174
|
-
const length = Math.max(parsedLeft.prerelease.length, parsedRight.prerelease.length);
|
|
175
|
-
for (let index = 0; index < length; index += 1) {
|
|
176
|
-
const leftPart = parsedLeft.prerelease[index];
|
|
177
|
-
const rightPart = parsedRight.prerelease[index];
|
|
178
|
-
if (leftPart === undefined) return -1;
|
|
179
|
-
if (rightPart === undefined) return 1;
|
|
180
|
-
if (leftPart === rightPart) continue;
|
|
181
|
-
const leftNumeric = /^\d+$/.test(leftPart);
|
|
182
|
-
const rightNumeric = /^\d+$/.test(rightPart);
|
|
183
|
-
if (leftNumeric && rightNumeric) {
|
|
184
|
-
return BigInt(leftPart) > BigInt(rightPart) ? 1 : -1;
|
|
185
|
-
}
|
|
186
|
-
if (leftNumeric !== rightNumeric) return leftNumeric ? -1 : 1;
|
|
187
|
-
return leftPart > rightPart ? 1 : -1;
|
|
188
|
-
}
|
|
189
|
-
return 0;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
170
|
export function resolveGlobalCliPath(globalRoot, platform = process.platform) {
|
|
193
171
|
const path = platform === 'win32' ? win32 : posix;
|
|
194
172
|
if (typeof globalRoot !== 'string' || !path.isAbsolute(globalRoot.trim())) return null;
|
|
@@ -226,21 +204,6 @@ function queryLatestVersion(npmCommand, runCaptured, env) {
|
|
|
226
204
|
return version;
|
|
227
205
|
}
|
|
228
206
|
|
|
229
|
-
function parseSemanticVersion(value) {
|
|
230
|
-
const text = String(value ?? '').trim();
|
|
231
|
-
const match = /^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/
|
|
232
|
-
.exec(text);
|
|
233
|
-
if (!match) throw new TypeError(`Invalid package version: ${text || '<empty>'}`);
|
|
234
|
-
const numeric = match.slice(1, 4);
|
|
235
|
-
if (numeric.some((part) => part.length > 1 && part.startsWith('0'))) {
|
|
236
|
-
throw new TypeError(`Invalid package version: ${text}`);
|
|
237
|
-
}
|
|
238
|
-
return {
|
|
239
|
-
core: numeric.map((part) => BigInt(part)),
|
|
240
|
-
prerelease: match[4]?.split('.') ?? []
|
|
241
|
-
};
|
|
242
|
-
}
|
|
243
|
-
|
|
244
207
|
function formatSetupRecoveryCommand(args, platform) {
|
|
245
208
|
const forwarded = args
|
|
246
209
|
.filter((arg) => arg !== '--yes')
|
|
@@ -28,7 +28,7 @@ export async function employeeTaskEntry({ registry, recruitment, workspace }, in
|
|
|
28
28
|
session: { sourceApplication: input.sourceApplication ?? 'other', sessionId: input.sourceSessionId ?? input.sessionId ?? null },
|
|
29
29
|
tools: { discover: 'list_employee_tools', call: 'call_employee_tool',
|
|
30
30
|
read_board: manifest.taskEntry.boardTool, prepare_title: manifest.taskEntry.titleTool ?? null },
|
|
31
|
-
guidance: 'Route actionable work in this project through this manager: match existing board items, or create a concise task for new work. Keep conversation-only questions out of the backlog. Update linked items as evidence arrives; Agent completion goes to review, never human-confirmed done. Before creating or editing, discover the installed tool schemas and preserve versions/idempotency. If title_mode is auto or suggest, prepare a title from only this session’s linked work item IDs. Auto applies only when the current host exposes a native session rename capability and the exact target session is known: execute the returned action in that host, then report its actual result. Never edit client databases or transcripts, invent an execution receipt, rename another session, or override a locked/manual title. Do not start an additional model solely for this entry.'
|
|
31
|
+
guidance: 'Route actionable work in this project through this manager: match existing board items, or create a concise task for new work. Keep conversation-only questions out of the backlog. Update linked items as evidence arrives; Agent completion goes to review, never human-confirmed done. When this conversation materially advances a matched task and its progress was actually recorded, end the user-facing response with a short receipt naming that task; never claim a task update that did not succeed. Before creating or editing, discover the installed tool schemas and preserve versions/idempotency. If title_mode is auto or suggest, prepare a title from only this session’s linked work item IDs. Auto applies only when the current host exposes a native session rename capability and the exact target session is known: execute the returned action in that host, then report its actual result. Never edit client databases or transcripts, invent an execution receipt, rename another session, or override a locked/manual title. Do not start an additional model solely for this entry.'
|
|
32
32
|
});
|
|
33
33
|
} catch (error) {
|
|
34
34
|
// Excluded/unassigned/inactive projects never reach the plugin runtime.
|
package/src/http/api-router.js
CHANGED
|
@@ -37,6 +37,11 @@ export async function handleApiRequest({
|
|
|
37
37
|
return true;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
+
if (system && url.pathname === '/api/system/version' && request.method === 'GET') {
|
|
41
|
+
sendJson(response, 200, await system.versionStatus());
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
|
|
40
45
|
if (system && url.pathname === '/api/system/runtime' && request.method === 'GET') {
|
|
41
46
|
sendJson(response, 200, system.runtimeStatus());
|
|
42
47
|
return true;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export function compareSemanticVersions(left, right) {
|
|
2
|
+
const parsedLeft = parseSemanticVersion(left);
|
|
3
|
+
const parsedRight = parseSemanticVersion(right);
|
|
4
|
+
for (let index = 0; index < 3; index += 1) {
|
|
5
|
+
if (parsedLeft.core[index] > parsedRight.core[index]) return 1;
|
|
6
|
+
if (parsedLeft.core[index] < parsedRight.core[index]) return -1;
|
|
7
|
+
}
|
|
8
|
+
if (!parsedLeft.prerelease.length && !parsedRight.prerelease.length) return 0;
|
|
9
|
+
if (!parsedLeft.prerelease.length) return 1;
|
|
10
|
+
if (!parsedRight.prerelease.length) return -1;
|
|
11
|
+
const length = Math.max(parsedLeft.prerelease.length, parsedRight.prerelease.length);
|
|
12
|
+
for (let index = 0; index < length; index += 1) {
|
|
13
|
+
const leftPart = parsedLeft.prerelease[index];
|
|
14
|
+
const rightPart = parsedRight.prerelease[index];
|
|
15
|
+
if (leftPart === undefined) return -1;
|
|
16
|
+
if (rightPart === undefined) return 1;
|
|
17
|
+
if (leftPart === rightPart) continue;
|
|
18
|
+
const leftNumeric = /^\d+$/.test(leftPart);
|
|
19
|
+
const rightNumeric = /^\d+$/.test(rightPart);
|
|
20
|
+
if (leftNumeric && rightNumeric) {
|
|
21
|
+
return BigInt(leftPart) > BigInt(rightPart) ? 1 : -1;
|
|
22
|
+
}
|
|
23
|
+
if (leftNumeric !== rightNumeric) return leftNumeric ? -1 : 1;
|
|
24
|
+
return leftPart > rightPart ? 1 : -1;
|
|
25
|
+
}
|
|
26
|
+
return 0;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function parseSemanticVersion(value) {
|
|
30
|
+
const text = String(value ?? '').trim();
|
|
31
|
+
const match = /^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/
|
|
32
|
+
.exec(text);
|
|
33
|
+
if (!match) throw new TypeError(`Invalid package version: ${text || '<empty>'}`);
|
|
34
|
+
const numeric = match.slice(1, 4);
|
|
35
|
+
if (numeric.some((part) => part.length > 1 && part.startsWith('0'))) {
|
|
36
|
+
throw new TypeError(`Invalid package version: ${text}`);
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
core: numeric.map((part) => BigInt(part)),
|
|
40
|
+
prerelease: match[4]?.split('.') ?? []
|
|
41
|
+
};
|
|
42
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { FULI_PACKAGE_NAME, FULI_VERSION } from '../package-metadata.js';
|
|
2
|
+
import { compareSemanticVersions, parseSemanticVersion } from '../semantic-version.js';
|
|
3
|
+
|
|
4
|
+
const DEFAULT_TIMEOUT_MS = 3_000;
|
|
5
|
+
const DEFAULT_SUCCESS_CACHE_MS = 6 * 60 * 60 * 1_000;
|
|
6
|
+
const DEFAULT_FAILURE_CACHE_MS = 5 * 60 * 1_000;
|
|
7
|
+
|
|
8
|
+
export function createPackageVersionChecker({
|
|
9
|
+
fetchImpl = globalThis.fetch,
|
|
10
|
+
now = () => Date.now(),
|
|
11
|
+
packageName = FULI_PACKAGE_NAME,
|
|
12
|
+
currentVersion = FULI_VERSION,
|
|
13
|
+
timeoutMs = DEFAULT_TIMEOUT_MS,
|
|
14
|
+
successCacheMs = DEFAULT_SUCCESS_CACHE_MS,
|
|
15
|
+
failureCacheMs = DEFAULT_FAILURE_CACHE_MS
|
|
16
|
+
} = {}) {
|
|
17
|
+
const registryUrl = `https://registry.npmjs.org/${encodeURIComponent(packageName)}/latest`;
|
|
18
|
+
const packageUrl = `https://www.npmjs.com/package/${encodeURIComponent(packageName)}`;
|
|
19
|
+
let cached = null;
|
|
20
|
+
let expiresAt = 0;
|
|
21
|
+
let inFlight = null;
|
|
22
|
+
|
|
23
|
+
async function resolveStatus() {
|
|
24
|
+
const checkedAt = new Date(now()).toISOString();
|
|
25
|
+
try {
|
|
26
|
+
parseSemanticVersion(currentVersion);
|
|
27
|
+
const response = await fetchImpl(registryUrl, {
|
|
28
|
+
headers: { accept: 'application/json' },
|
|
29
|
+
signal: AbortSignal.timeout(timeoutMs)
|
|
30
|
+
});
|
|
31
|
+
if (!response.ok) throw new Error(`npm registry returned ${response.status}`);
|
|
32
|
+
const body = await response.json();
|
|
33
|
+
const latestVersion = String(body?.version ?? '').trim();
|
|
34
|
+
parseSemanticVersion(latestVersion);
|
|
35
|
+
return {
|
|
36
|
+
status: 'ready',
|
|
37
|
+
currentVersion,
|
|
38
|
+
latestVersion,
|
|
39
|
+
updateAvailable: compareSemanticVersions(latestVersion, currentVersion) > 0,
|
|
40
|
+
packageUrl,
|
|
41
|
+
checkedAt
|
|
42
|
+
};
|
|
43
|
+
} catch {
|
|
44
|
+
return {
|
|
45
|
+
status: 'unavailable',
|
|
46
|
+
currentVersion,
|
|
47
|
+
latestVersion: null,
|
|
48
|
+
updateAvailable: false,
|
|
49
|
+
packageUrl,
|
|
50
|
+
checkedAt
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
async function check() {
|
|
56
|
+
const timestamp = now();
|
|
57
|
+
if (cached && timestamp < expiresAt) return cached;
|
|
58
|
+
if (inFlight) return inFlight;
|
|
59
|
+
inFlight = resolveStatus()
|
|
60
|
+
.then((result) => {
|
|
61
|
+
cached = result;
|
|
62
|
+
expiresAt = now() + (result.status === 'ready' ? successCacheMs : failureCacheMs);
|
|
63
|
+
return result;
|
|
64
|
+
})
|
|
65
|
+
.finally(() => {
|
|
66
|
+
inFlight = null;
|
|
67
|
+
});
|
|
68
|
+
return inFlight;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return { check };
|
|
72
|
+
}
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
import { createResourceMonitor } from './resource-monitor.js';
|
|
10
10
|
import { createAdaptiveRuntimeBroker } from '../adaptive-runtime/runtime-broker.js';
|
|
11
11
|
import { readAdaptiveRuntimeSettings } from '../adaptive-runtime/settings.js';
|
|
12
|
+
import { createPackageVersionChecker } from './package-version-checker.js';
|
|
12
13
|
|
|
13
14
|
export function createSystemService({
|
|
14
15
|
paths,
|
|
@@ -19,6 +20,7 @@ export function createSystemService({
|
|
|
19
20
|
readSettings = readRuntimeSettings,
|
|
20
21
|
writeSettings = writeRuntimeSettings,
|
|
21
22
|
executorAdapters = new Map(),
|
|
23
|
+
versionChecker = createPackageVersionChecker(),
|
|
22
24
|
runtimeBroker = createAdaptiveRuntimeBroker({
|
|
23
25
|
paths,
|
|
24
26
|
settings: readAdaptiveRuntimeSettings(paths.adaptiveRuntimeSettingsPath),
|
|
@@ -59,6 +61,7 @@ export function createSystemService({
|
|
|
59
61
|
getSettings,
|
|
60
62
|
updateSettings,
|
|
61
63
|
resources: () => resourceMonitor.sample(),
|
|
64
|
+
versionStatus: () => versionChecker.check(),
|
|
62
65
|
runtimeStatus: () => runtimeBroker.status(),
|
|
63
66
|
acquireRuntimeLease: (input) => runtimeBroker.acquire(input),
|
|
64
67
|
refreshRuntimeLease: (leaseId) => runtimeBroker.refresh(leaseId),
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,N as t,S as n,a as r,et as i,g as a,h as o,j as s,m as c,rt as l,y as u}from"./i18n-CgBHZthI.js";import{t as d}from"./fuli-logo-Bu9WBuQe.js";import{t as f}from"./_plugin-vue_export-helper-BDNMzG2s.js";var p=[`aria-label`],m={class:`label-dimension-strip`},h=[`data-dimension`],g={class:`label-guide-sheet`},_={class:`label-guide-section profile-guide`},v={class:`label-definition-list`},y=[`data-kind`],b={class:`label-guide-section quadrant-guide`},x={class:`quadrant-explainer`},S={class:`quadrant-y-axis`,"aria-hidden":`true`},C={class:`quadrant-grid`},w=[`data-quadrant`],T={class:`quadrant-x-axis`,"aria-hidden":`true`},E={class:`quadrant-notes`},D={class:`label-guide-section confirmation-guide`},O={class:`status-definition-list`},k=[`data-status`],A={class:`status-boundaries`},j={class:`label-example`},M={class:`label-example-tags`,"aria-hidden":`true`},N={class:`label-token profile-token`,"data-kind":`taste`},P={class:`label-token origin-token`},ee={class:`label-token status-token`,"data-status":`confirmed`},F={class:`label-all-note`},I=f(e({__name:`LabelGuide`,setup(e){let n=o(()=>[{key:`profile`,title:r(`about.dimensions.profile.title`),question:r(`about.dimensions.profile.question`),timing:r(`about.dimensions.profile.timing`)},{key:`origin`,title:r(`about.dimensions.origin.title`),question:r(`about.dimensions.origin.question`),timing:r(`about.dimensions.origin.timing`)},{key:`confirmation`,title:r(`about.dimensions.confirmation.title`),question:r(`about.dimensions.confirmation.question`),timing:r(`about.dimensions.confirmation.timing`)}]),d=o(()=>[{key:`taste`,label:r(`about.profiles.taste.label`),short:r(`about.profiles.taste.short`),description:r(`about.profiles.taste.description`)},{key:`personality`,label:r(`about.profiles.personality.label`),short:r(`about.profiles.personality.short`),description:r(`about.profiles.personality.description`)},{key:`judgment`,label:r(`about.profiles.judgment.label`),short:r(`about.profiles.judgment.short`),description:r(`about.profiles.judgment.description`)}]),f=o(()=>[{key:`known-unknown`,label:r(`about.quadrants.knownUnknown.label`),coordinate:r(`about.quadrants.knownUnknown.coordinate`),description:r(`about.quadrants.knownUnknown.description`)},{key:`known-known`,label:r(`about.quadrants.knownKnown.label`),coordinate:r(`about.quadrants.knownKnown.coordinate`),description:r(`about.quadrants.knownKnown.description`)},{key:`unknown-unknown`,label:r(`about.quadrants.unknownUnknown.label`),coordinate:r(`about.quadrants.unknownUnknown.coordinate`),description:r(`about.quadrants.unknownUnknown.description`)},{key:`unknown-known`,label:r(`about.quadrants.unknownKnown.label`),coordinate:r(`about.quadrants.unknownKnown.coordinate`),description:r(`about.quadrants.unknownKnown.description`)}]),I=o(()=>[{key:`pending`,label:r(`about.statuses.pending.label`),description:r(`about.statuses.pending.description`),rule:r(`about.statuses.pending.rule`)},{key:`agent-confirmed`,label:r(`about.statuses.agentConfirmed.label`),description:r(`about.statuses.agentConfirmed.description`),rule:r(`about.statuses.agentConfirmed.rule`)},{key:`confirmed`,label:r(`about.statuses.confirmed.label`),description:r(`about.statuses.confirmed.description`),rule:r(`about.statuses.confirmed.rule`)}]);return(e,o)=>(s(),u(`section`,{class:`label-guide`,"aria-label":i(r)(`about.labelsAria`)},[a(`div`,m,[(s(!0),u(c,null,t(n.value,e=>(s(),u(`article`,{key:e.key,"data-dimension":e.key},[o[0]||=a(`i`,{"aria-hidden":`true`},null,-1),a(`div`,null,[a(`strong`,null,l(e.title),1),a(`p`,null,l(e.question),1),a(`small`,null,l(e.timing),1)])],8,h))),128))]),a(`div`,g,[a(`section`,_,[a(`header`,null,[a(`span`,null,l(i(r)(`about.sections.profile.index`)),1),a(`div`,null,[a(`h3`,null,l(i(r)(`about.sections.profile.title`)),1),a(`p`,null,l(i(r)(`about.sections.profile.meta`)),1)])]),a(`div`,v,[(s(!0),u(c,null,t(d.value,e=>(s(),u(`article`,{key:e.key,class:`label-definition-row`},[a(`span`,{class:`label-token profile-token`,"data-kind":e.key},l(e.label),9,y),a(`div`,null,[a(`strong`,null,l(e.short),1),a(`p`,null,l(e.description),1)])]))),128))])]),a(`section`,b,[a(`header`,null,[a(`span`,null,l(i(r)(`about.sections.origin.index`)),1),a(`div`,null,[a(`h3`,null,l(i(r)(`about.sections.origin.title`)),1),a(`p`,null,l(i(r)(`about.sections.origin.meta`)),1)])]),a(`div`,x,[a(`div`,S,[a(`span`,null,l(i(r)(`about.quadrants.aware`)),1),a(`strong`,null,l(i(r)(`about.quadrants.awareness`)),1),a(`span`,null,l(i(r)(`about.quadrants.unaware`)),1)]),a(`div`,C,[(s(!0),u(c,null,t(f.value,e=>(s(),u(`article`,{key:e.key,"data-quadrant":e.key},[a(`span`,null,l(e.coordinate),1),a(`strong`,null,l(e.label),1),a(`p`,null,l(e.description),1)],8,w))),128))]),a(`div`,T,[a(`span`,null,l(i(r)(`about.quadrants.unmastered`)),1),a(`strong`,null,l(i(r)(`about.quadrants.mastery`)),1),a(`span`,null,l(i(r)(`about.quadrants.mastered`)),1)]),a(`div`,E,[a(`p`,null,l(i(r)(`about.quadrants.immutable`)),1),a(`p`,null,l(i(r)(`about.quadrants.unclassified`)),1)])])]),a(`section`,D,[a(`header`,null,[a(`span`,null,l(i(r)(`about.sections.confirmation.index`)),1),a(`div`,null,[a(`h3`,null,l(i(r)(`about.sections.confirmation.title`)),1),a(`p`,null,l(i(r)(`about.sections.confirmation.meta`)),1)])]),a(`div`,null,[a(`div`,O,[(s(!0),u(c,null,t(I.value,e=>(s(),u(`article`,{key:e.key,class:`status-definition-row`},[a(`span`,{class:`label-token status-token`,"data-status":e.key},l(e.label),9,k),a(`p`,null,l(e.description),1),a(`div`,null,[a(`span`,null,l(i(r)(`about.statuses.entryCondition`)),1),a(`strong`,null,l(e.rule),1)])]))),128))]),a(`div`,A,[a(`p`,null,l(i(r)(`about.statuses.usageBoundary`)),1),a(`p`,null,l(i(r)(`about.statuses.resetBoundary`)),1)])])]),a(`section`,j,[a(`div`,null,[a(`span`,null,l(i(r)(`about.example.title`)),1),a(`strong`,null,l(i(r)(`about.example.item`)),1)]),a(`div`,M,[a(`span`,N,l(i(r)(`about.example.profile`)),1),a(`span`,P,l(i(r)(`about.example.origin`)),1),a(`span`,ee,l(i(r)(`about.example.status`)),1)]),a(`p`,null,l(i(r)(`about.example.description`)),1)]),a(`p`,F,l(i(r)(`about.allFilter`)),1)])],8,p))}}),[[`__scopeId`,`data-v-b79b7e68`]]),L={class:`open-source-credits`},R={class:`credits-roll`},z={class:`credit-grid`},B=[`href`],V={class:`credit-mark`},H=[`src`,`alt`],U={class:`credit-copy`},W={class:`credit-source-note`},G={class:`fuli-finale`},K={class:`finale-brand`},q=[`src`],J=f(e({__name:`OpenSourceCredits`,setup(e){let n=o(()=>[{name:`Vue.js`,role:r(`about.credits.roles.vue`),logo:`https://raw.githubusercontent.com/vuejs/docs/main/src/public/logo.svg`,url:`https://vuejs.org/`},{name:`Vite`,role:r(`about.credits.roles.vite`),logo:`https://raw.githubusercontent.com/vitejs/vite/main/docs/public/logo-without-border.svg`,url:`https://vite.dev/`},{name:`Pinia`,role:r(`about.credits.roles.pinia`),logo:`https://raw.githubusercontent.com/vuejs/pinia/v4/packages/docs/public/logo.svg`,url:`https://pinia.vuejs.org/`},{name:`D3.js`,role:r(`about.credits.roles.d3`),logo:`https://raw.githubusercontent.com/d3/d3-logo/master/d3.svg`,url:`https://d3js.org/`},{name:`Vitest`,role:r(`about.credits.roles.vitest`),logo:`https://raw.githubusercontent.com/vitest-dev/vitest/main/docs/public/logo-without-border.svg`,url:`https://vitest.dev/`},{name:`Hono`,role:r(`about.credits.roles.hono`),logo:`https://raw.githubusercontent.com/honojs/website/main/public/images/logo.svg`,url:`https://hono.dev/`},{name:`Neo4j`,role:r(`about.credits.roles.neo4j`),logo:`https://avatars.githubusercontent.com/u/201120?v=4`,url:`https://neo4j.com/`},{name:`Zod`,role:r(`about.credits.roles.zod`),logo:`https://raw.githubusercontent.com/colinhacks/zod/main/packages/docs/public/logo/logo_square.png`,url:`https://zod.dev/`},{name:`FastAPI`,role:r(`about.credits.roles.fastapi`),logo:`https://raw.githubusercontent.com/fastapi/fastapi/master/docs/en/docs/img/favicon.png`,url:`https://fastapi.tiangolo.com/`},{name:`Graphiti`,role:r(`about.credits.roles.graphiti`),logo:`https://avatars.githubusercontent.com/u/132832125?s=128&v=4`,url:`https://github.com/getzep/graphiti`},{name:`Model Context Protocol`,role:r(`about.credits.roles.mcp`),logo:`https://raw.githubusercontent.com/modelcontextprotocol/docs/main/favicon.svg`,url:`https://modelcontextprotocol.io/`}]);return(e,o)=>(s(),u(`section`,L,[a(`div`,R,[a(`header`,null,[a(`h3`,null,l(i(r)(`about.credits.title`)),1),a(`p`,null,l(i(r)(`about.credits.description`)),1)]),a(`div`,z,[(s(!0),u(c,null,t(n.value,e=>(s(),u(`a`,{key:e.name,href:e.url,target:`_blank`,rel:`noreferrer`},[a(`span`,V,[a(`img`,{src:e.logo,alt:e.name},null,8,H)]),a(`span`,U,[a(`strong`,null,l(e.name),1),a(`small`,null,l(e.role),1)])],8,B))),128))]),a(`p`,W,l(i(r)(`about.credits.sourceNote`)),1)]),a(`footer`,G,[a(`div`,K,[a(`img`,{src:i(d),alt:``,"aria-hidden":`true`},null,8,q),a(`div`,null,[a(`strong`,null,l(i(r)(`common.brand`)),1),o[0]||=a(`span`,null,`Context Graph`,-1)])]),a(`p`,null,l(i(r)(`about.credits.finale`)),1)])]))}}),[[`__scopeId`,`data-v-8676884b`]]),Y={class:`product-principles`},X={class:`principles-lede`},Z={class:`principle-sequence`},Q={class:`principle-boundaries`},$=[`data-boundary`],te=f(e({__name:`ProductPrinciples`,setup(e){let n=o(()=>[{key:`capture`,index:r(`about.philosophy.capture.index`),title:r(`about.philosophy.capture.title`),description:r(`about.philosophy.capture.description`)},{key:`project`,index:r(`about.philosophy.project.index`),title:r(`about.philosophy.project.title`),description:r(`about.philosophy.project.description`)},{key:`review`,index:r(`about.philosophy.review.index`),title:r(`about.philosophy.review.title`),description:r(`about.philosophy.review.description`)},{key:`reuse`,index:r(`about.philosophy.reuse.index`),title:r(`about.philosophy.reuse.title`),description:r(`about.philosophy.reuse.description`)}]),d=o(()=>[{key:`local`,title:r(`about.philosophy.local.title`),description:r(`about.philosophy.local.description`)},{key:`authority`,title:r(`about.philosophy.authority.title`),description:r(`about.philosophy.authority.description`)},{key:`scope`,title:r(`about.philosophy.scope.title`),description:r(`about.philosophy.scope.description`)}]);return(e,o)=>(s(),u(`section`,Y,[a(`header`,X,[a(`h3`,null,l(i(r)(`about.philosophy.title`)),1),a(`p`,null,l(i(r)(`about.philosophy.intro`)),1),a(`p`,null,l(i(r)(`about.philosophy.support`)),1)]),a(`div`,Z,[(s(!0),u(c,null,t(n.value,e=>(s(),u(`article`,{key:e.key},[a(`span`,null,l(e.index),1),a(`div`,null,[a(`h4`,null,l(e.title),1),a(`p`,null,l(e.description),1)])]))),128))]),a(`div`,Q,[a(`strong`,null,l(i(r)(`about.philosophy.boundariesTitle`)),1),a(`div`,null,[(s(!0),u(c,null,t(d.value,e=>(s(),u(`article`,{key:e.key},[a(`i`,{"data-boundary":e.key,"aria-hidden":`true`},null,8,$),a(`h4`,null,l(e.title),1),a(`p`,null,l(e.description),1)]))),128))])])]))}}),[[`__scopeId`,`data-v-d823b02d`]]),ne=[`aria-label`],re={class:`about-content`},ie={class:`about-labels-section`},ae=f(e({__name:`AboutPage`,setup(e){return(e,t)=>(s(),u(`section`,{class:`view about-view`,"aria-label":i(r)(`about.aria`)},[a(`div`,re,[n(te),a(`section`,ie,[a(`header`,null,[a(`h3`,null,l(i(r)(`about.labelsIntro.title`)),1),a(`p`,null,l(i(r)(`about.labelsIntro.description`)),1)]),n(I)]),n(J)])],8,ne))}}),[[`__scopeId`,`data-v-6bd30c79`]]);export{ae as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as e,B as t,C as n,D as r,I as i,L as ee,N as a,O as o,S as s,Y as c,_ as l,a as u,et as d,g as f,h as p,j as m,k as h,m as g,n as te,p as _,q as v,rt as y,tt as b,u as x,v as S,x as C,y as w}from"./i18n-CgBHZthI.js";import{a as T,i as E,n as D,r as O,t as k}from"./console-tOxOl8Vq.js";import{t as A}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as j}from"./SearchableSelect-D27H0MoP.js";import{r as M,t as N}from"./identity-CFo_Uw1H.js";var P=[`data-select-id`],F=[`aria-expanded`,`aria-controls`,`aria-label`,`aria-required`,`disabled`],I={class:`searchable-select-current`},L={class:`searchable-select-current-label`},ne={key:0,class:`searchable-select-current-meta`},re=[`hidden`],ie={key:0,class:`searchable-select-search`},ae=[`placeholder`,`aria-label`],R=[`id`],z=[`aria-selected`,`disabled`,`onClick`],oe={class:`searchable-select-option-copy`},se={key:0},ce={key:1,class:`searchable-select-empty`},le=n({__name:`SearchableMultiSelect`,props:{modelValue:{},options:{},label:{},controlId:{default:void 0},placeholder:{default:void 0},searchPlaceholder:{default:void 0},searchable:{type:Boolean,default:void 0},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1}},emits:[`update:modelValue`,`change`],setup(n,{emit:r}){let s=n,l=r,v=c(null),C=c(null),T=c(null),E=c(null),D=c(!1),O=c(!1),k=c(``),A=i().replace(/[^A-Za-z0-9_-]/g,``),j=p(()=>`${s.controlId||`searchable-multi-select-${A}`}-options`),M=p(()=>new Set(s.modelValue)),N=p(()=>s.options.filter(({value:e})=>M.value.has(e))),le=p(()=>N.value.length===0?s.placeholder??u(`common.searchableSelect.placeholder`):N.value.length===1?N.value[0].label:u(`common.searchableSelect.selectedCount`,{count:N.value.length})),B=p(()=>s.searchPlaceholder??u(`common.searchableSelect.searchPlaceholder`)),V=p(()=>s.searchable??s.options.length>5),H=p(()=>{let e=te(),t=k.value.trim().toLocaleLowerCase(e);return t?s.options.filter(n=>[n.label,n.value,n.meta,n.search].filter(Boolean).join(` `).toLocaleLowerCase(e).includes(t)):s.options});ee(()=>s.disabled,e=>{e&&W()}),e(()=>document.addEventListener(`pointerdown`,he)),h(()=>document.removeEventListener(`pointerdown`,he));async function U(){D.value?W():await ue()}async function ue(){s.disabled||(k.value=``,ve(),D.value=!0,await o(),V.value?T.value?.focus():_e()?.focus())}function W({restoreFocus:e=!1}={}){D.value=!1,O.value=!1,k.value=``,e&&o(()=>C.value?.focus())}function de(e){if(s.disabled||e.disabled)return;let t=M.value.has(e.value)?s.modelValue.filter(t=>t!==e.value):[...s.modelValue,e.value];l(`update:modelValue`,t),l(`change`,t)}function fe(e){[`ArrowDown`,`Enter`,` `].includes(e.key)&&(e.preventDefault(),D.value&&[`Enter`,` `].includes(e.key)?W():ue())}function pe(e){if(e.key===`Escape`){e.preventDefault(),W({restoreFocus:!0});return}if(e.key===`ArrowDown`){e.preventDefault(),K()?.focus();return}e.key===`Enter`&&(e.preventDefault(),K()?.click())}function me(e){if(e.key===`Escape`){e.preventDefault(),W({restoreFocus:!0});return}if(![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key))return;e.preventDefault();let t=G(),n=t.indexOf(e.currentTarget);t[e.key===`Home`?0:e.key===`End`?t.length-1:e.key===`ArrowDown`?Math.min(t.length-1,n+1):Math.max(0,n-1)]?.focus()}function he(e){D.value&&!v.value?.contains(e.target)&&W()}function ge(e){let t=e.relatedTarget;t&&v.value?.contains(t)||queueMicrotask(()=>{D.value&&!v.value?.contains(document.activeElement)&&W()})}function G(){return[...E.value?.querySelectorAll(`.searchable-select-option:not(:disabled)`)??[]]}function K(){return G()[0]??null}function _e(){return G().find(e=>e.getAttribute(`aria-selected`)===`true`)??K()}function ve(){let e=C.value?.getBoundingClientRect();O.value=!!(e&&window.innerHeight-e.bottom<270&&e.top>270)}return(e,r)=>(m(),w(`div`,{ref_key:`root`,ref:v,class:b([`searchable-select searchable-multi-select`,{open:D.value,"open-up":O.value,disabled:n.disabled}]),"data-select-id":n.controlId,onFocusout:ge},[f(`button`,{ref_key:`trigger`,ref:C,type:`button`,class:`searchable-select-trigger`,role:`combobox`,"aria-haspopup":`listbox`,"aria-expanded":D.value,"aria-controls":j.value,"aria-label":n.label,"aria-required":n.required,disabled:n.disabled,onPointerdown:r[0]||=_(()=>{},[`stop`]),onClick:_(U,[`stop`]),onKeydown:fe},[f(`span`,I,[f(`span`,L,y(le.value),1),N.value.length>1?(m(),w(`small`,ne,y(N.value.map(({label:e})=>e).join(` · `)),1)):S(``,!0)]),r[3]||=f(`i`,{class:`searchable-select-arrow`,"aria-hidden":`true`},null,-1)],40,F),f(`div`,{class:`searchable-select-panel`,hidden:!D.value},[V.value?(m(),w(`div`,ie,[t(f(`input`,{ref_key:`searchInput`,ref:T,"onUpdate:modelValue":r[1]||=e=>k.value=e,type:`search`,autocomplete:`off`,placeholder:B.value,"aria-label":d(u)(`common.searchableSelect.searchAria`,{label:n.label}),onKeydown:pe},null,40,ae),[[x,k.value]])])):S(``,!0),f(`div`,{id:j.value,ref_key:`optionsList`,ref:E,class:`searchable-select-options`,role:`listbox`,"aria-multiselectable":`true`},[(m(!0),w(g,null,a(H.value,e=>(m(),w(`button`,{key:e.value,type:`button`,class:`searchable-select-option`,role:`option`,"aria-selected":M.value.has(e.value),disabled:e.disabled,onMousedown:r[2]||=_(()=>{},[`prevent`]),onClick:t=>de(e),onKeydown:me},[f(`span`,oe,[f(`strong`,null,y(e.label),1),e.meta?(m(),w(`small`,se,y(e.meta),1)):S(``,!0)]),r[4]||=f(`i`,{class:`searchable-select-check`,"aria-hidden":`true`},null,-1)],40,z))),128))],8,R),H.value.length===0?(m(),w(`p`,ce,y(d(u)(`common.searchableSelect.noMatches`)),1)):S(``,!0)],8,re)],42,P))}}),B={class:`text-field`},V=[`id`,`value`,`name`,`placeholder`,`disabled`,`required`,`rows`],H=[`id`,`value`,`name`,`type`,`placeholder`,`disabled`,`required`],U=A(n({inheritAttrs:!1,__name:`TextField`,props:{modelValue:{},label:{},controlId:{default:void 0},type:{default:`text`},placeholder:{default:void 0},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},multiline:{type:Boolean,default:!1},rows:{default:3},name:{default:void 0}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=t;function i(e){n(`update:modelValue`,e.target.value)}return(t,n)=>(m(),w(`label`,B,[f(`span`,null,y(e.label),1),e.multiline?(m(),w(`textarea`,r({key:0},t.$attrs,{id:e.controlId,value:e.modelValue,name:e.name,placeholder:e.placeholder,disabled:e.disabled,required:e.required,rows:e.rows,onInput:i}),null,16,V)):(m(),w(`input`,r({key:1},t.$attrs,{id:e.controlId,value:e.modelValue,name:e.name,type:e.type,placeholder:e.placeholder,disabled:e.disabled,required:e.required,onInput:i}),null,16,H))]))}}),[[`__scopeId`,`data-v-6c32205a`]]),ue={class:`view connections-view`},W={class:`connection-intro`},de=[`aria-label`],fe=[`data-status`],pe={class:`service-state`},me=[`data-status`],he={class:`connection-title-row`},ge={class:`service-state`},G={class:`external-knowledge-section`},K={class:`section-title section-title-with-help`},_e=[`href`,`aria-label`,`title`],ve={class:`external-binding-count`},ye={class:`external-binding-list`},be=[`data-status`],xe={class:`external-binding-copy`},Se={class:`external-binding-targets`},Ce=[`data-status`],we={key:0},Te={key:1},Ee={class:`external-binding-actions`},De=[`disabled`,`onClick`],Oe=[`disabled`,`onClick`],ke=[`disabled`,`onClick`],Ae=[`disabled`,`onClick`],je={key:0,class:`external-binding-editor`},Me={class:`external-target-mode-list`},Ne={class:`external-binding-editor-actions`},Pe=[`disabled`],Fe=[`disabled`,`onClick`],Ie={key:0,class:`compact-empty`},Le={class:`wide-field`},Re={class:`trusted-code-badge`},ze=[`disabled`],Be={key:0,class:`conflict-policy-section`},Ve={class:`section-title section-title-with-help`},He=[`href`,`aria-label`,`title`],Ue={class:`conflict-policy-controls`},We={key:1,class:`connection-subscriptions`},Ge={class:`section-title`},Ke={class:`subscription-list`},qe=[`onClick`],Je={key:0,class:`empty-state`},Ye={type:`submit`},q=n({__name:`ConnectionsPage`,setup(t){let n=k(),r=c(``),i=c([]),o=c([]),h=c(!1),b=c(null),x=c([]),A=c({}),P=c(``),F=c(`ask_human`),I=c(!1),L=v({name:``,connectorType:`mcp`,mode:`hybrid`,personalProjectIds:[],mcpTransport:`http`,mcpUrl:``,mcpCommand:``,mcpArgs:``,mcpTokenEnv:``,mcpResourcePrefix:``,notionTokenEnv:``,notionPageIds:``,notionDataSourceIds:``,feishuTokenEnv:``,feishuRegion:`cn`,feishuSpaceId:``,feishuRootNodeToken:``,feishuNodeTokens:``,feishuWebBaseUrl:``,retrievalUrl:``,retrievalTokenEnv:``,retrievalKnowledgeIds:``,retrievalScoreThreshold:`0.5`,customModule:``,customEnvironmentNames:``,customSourceJson:`{}`}),ne=p(()=>n.state?.providers?.personal?.status===`ready`),re=p(()=>n.state?.providers?.workspaces??[]),ie=p(()=>re.value.filter(({status:e})=>e===`ready`).length),ae=p(()=>{let e=n.state?.capabilities,t=[e?.browsePublicProjects?u(`pages.connections.publicCapability.discovery`):null,e?.subscribeProject?u(`pages.connections.publicCapability.subscription`):null,e?.publishProject?u(`pages.connections.publicCapability.publishing`):null,e?.submitKnowledge?u(`pages.connections.publicCapability.contribution`):null,e?.reviewProposals?u(`pages.connections.publicCapability.review`):null].filter(e=>!!e);return t.length?new Intl.ListFormat(te(),{style:`long`,type:`conjunction`}).format(t):u(`pages.connections.notAvailable`)}),R=p(()=>n.state?.subscriptions??[]),z=p(()=>n.state?.personalProjects??[]),oe=p(()=>wt(`connect-external-knowledge`)),se=p(()=>wt(`external-knowledge-conflict-policy`)),ce=p(()=>new Set(R.value.map(({provider_url:e,project_id:t})=>`${e}::${t}`))),B=p(()=>(n.state?.projects??[]).filter(e=>!ce.value.has(et(e)))),V=p(()=>B.value.map(e=>({value:et(e),label:e.name,meta:`#${N(e.id,26)}`,search:M(e.id)}))),H=p(()=>i.value.map(e=>({value:e.type,label:e.name,meta:e.description}))),q=p(()=>z.value.map(e=>({value:e.project_id,label:e.profile.name,meta:`#${N(e.project_id,26)}`,search:M(e.project_id)}))),Xe=p(()=>[{value:`hybrid`,label:u(`pages.connections.mode.hybrid`),disabled:!Y(L.connectorType,`hybrid`)},{value:`mirror`,label:u(`pages.connections.mode.mirror`),disabled:!Y(L.connectorType,`mirror`)},{value:`live`,label:u(`pages.connections.mode.live`),disabled:!Y(L.connectorType,`live`)}]),Ze=p(()=>[{value:`http`,label:`Streamable HTTP`},{value:`stdio`,label:`stdio`}]),Qe=p(()=>[{value:`cn`,label:`Feishu`},{value:`global`,label:`Lark`}]),$e=p(()=>[{value:`ask_human`,label:u(`pages.connections.askHuman`)},{value:`agent_decide`,label:u(`pages.connections.agentDecide`)}]);ee(z,e=>{let t=new Set(e.map(({project_id:e})=>e)),n=e[0]?.project_id??``;L.personalProjectIds=L.personalProjectIds.filter(e=>t.has(e)),!L.personalProjectIds.length&&n&&(L.personalProjectIds=[n]),x.value=x.value.filter(e=>t.has(e)),t.has(P.value)||(P.value=n,n&&mt())},{immediate:!0}),ee(()=>L.connectorType,e=>{Y(e,L.mode)||(L.mode=_t(e))}),e(async()=>{await J(),P.value&&await mt()});function et(e){return`${e.providerUrl}::${e.id}`}async function tt(){let e=B.value.find(e=>et(e)===r.value);if(e)try{await T(`/api/subscriptions`,{personalSpaceId:n.activePersonalSpace?.id,projectId:e.id,providerUrl:e.providerUrl,projectName:e.name}),r.value=``,n.notify(u(`pages.connections.subscribed`,{name:e.name})),await n.refresh()}catch(e){n.reportError(e)}}async function nt(e){try{let t=new URLSearchParams({personalSpaceId:n.activePersonalSpace?.id??``,providerUrl:e.provider_url});await D(`/api/subscriptions/${encodeURIComponent(e.project_id)}?${t}`),n.notify(u(`pages.connections.unsubscribed`,{name:e.project_name??e.project_id})),await n.refresh()}catch(e){n.reportError(e)}}async function J(){try{let[e,t]=await Promise.all([O(`/api/external-knowledge/connectors`),O(`/api/external-knowledge/bindings`)]);i.value=e,o.value=t}catch(e){n.reportError(e)}}async function rt(){let e=n.activePersonalSpace?.id;if(!(!e||!L.personalProjectIds.length)){h.value=!0;try{let{connectorConfig:t,source:r}=it();await T(`/api/external-knowledge/bindings`,{name:L.name.trim(),connectorType:L.connectorType,connectorConfig:t,source:r,targets:L.personalProjectIds.map(t=>({personalSpaceId:e,personalProjectId:t,mode:L.mode}))}),n.notify(u(`pages.connections.externalCreated`,{name:L.name.trim()})),L.name=``,await J()}catch(e){n.reportError(e)}finally{h.value=!1}}}function it(){if(L.connectorType===`notion`)return{connectorConfig:{tokenEnv:$(L.notionTokenEnv,`Notion token env`)},source:{pageIds:Z(L.notionPageIds),dataSourceIds:Z(L.notionDataSourceIds)}};if(L.connectorType===`feishu`)return{connectorConfig:{accessTokenEnv:$(L.feishuTokenEnv,`Feishu token env`),region:L.feishuRegion},source:Q({spaceId:L.feishuSpaceId.trim(),rootNodeToken:L.feishuRootNodeToken.trim(),nodeTokens:Z(L.feishuNodeTokens),webBaseUrl:L.feishuWebBaseUrl.trim()})};if(L.connectorType===`retrieval_api`){let e=Number(L.retrievalScoreThreshold);if(!Number.isFinite(e)||e<0||e>1)throw TypeError(u(`pages.connections.scoreThresholdInvalid`));return{connectorConfig:Q({url:$(L.retrievalUrl,`Retrieval API URL`),tokenEnv:L.retrievalTokenEnv.trim(),scoreThreshold:e}),source:{knowledgeIds:Ct(L.retrievalKnowledgeIds,`Knowledge IDs`)}}}if(L.connectorType===`custom`){let e=JSON.parse(L.customSourceJson);if(!e||typeof e!=`object`||Array.isArray(e))throw TypeError(u(`pages.connections.customSourceObject`));return{connectorConfig:{module:$(L.customModule,`Custom connector module`),environmentNames:Z(L.customEnvironmentNames)},source:e}}return{connectorConfig:L.mcpTransport===`stdio`?Q({transport:`stdio`,command:L.mcpCommand.trim(),args:Z(L.mcpArgs)}):Q({transport:`http`,url:$(L.mcpUrl,`MCP URL`),tokenEnv:L.mcpTokenEnv.trim()}),source:Q({resourceUriPrefix:L.mcpResourcePrefix.trim()})}}async function at(e){await st(e,`check`)}async function ot(e){await st(e,`sync`)}async function st(e,t){h.value=!0;try{let r=await T(`/api/external-knowledge/bindings/${encodeURIComponent(e.id)}/${t}`,{});n.notify(u(t===`sync`&&r.skippedCredentials?`pages.connections.externalSyncedWithSkipped`:t===`sync`?`pages.connections.externalSynced`:`pages.connections.externalChecked`,{name:e.name,count:r.skippedCredentials??0})),await J()}catch(e){n.reportError(e)}finally{h.value=!1}}async function ct(e){h.value=!0;try{await D(`/api/external-knowledge/bindings/${encodeURIComponent(e.id)}`),n.notify(u(`pages.connections.externalDeleted`,{name:e.name})),await J()}catch(e){n.reportError(e)}finally{h.value=!1}}function lt(e){let t=X(e);b.value=e.id,x.value=t.map(({personalProjectId:e})=>e),A.value=Object.fromEntries(t.map(({personalProjectId:e,mode:t})=>[e,t]))}function ut(){b.value=null,x.value=[],A.value={}}function dt(e){let t=o.value.find(({id:e})=>e===b.value);if(!t)return;let n=A.value,r=_t(t.connectorType);A.value=Object.fromEntries(e.map(e=>[e,n[e]??t.mode??r]))}function ft(e,t){A.value={...A.value,[e]:t}}async function pt(e){let t=n.activePersonalSpace?.id;if(!(!t||!x.value.length)){h.value=!0;try{await E(`/api/external-knowledge/bindings/${encodeURIComponent(e.id)}/targets`,{targets:x.value.map(n=>({personalSpaceId:t,personalProjectId:n,mode:A.value[n]??e.mode}))}),n.notify(u(`pages.connections.projectsUpdated`,{name:e.name})),ut(),await J()}catch(e){n.reportError(e)}finally{h.value=!1}}}async function mt(){if(P.value)try{let e=await O(`/api/external-knowledge/conflict-policy?${new URLSearchParams({personalProjectId:P.value})}`);F.value=e.mode}catch(e){n.reportError(e)}}async function ht(){let e=n.activePersonalSpace?.id;if(!(!e||!P.value)){I.value=!0;try{let t=await E(`/api/external-knowledge/conflict-policy?${new URLSearchParams({personalProjectId:P.value})}`,{personalSpaceId:e,personalProjectId:P.value,mode:F.value});F.value=t.mode,n.notify(u(`pages.connections.conflictSaved`))}catch(e){n.reportError(e)}finally{I.value=!1}}}function gt(e){return i.value.find(t=>t.type===e)?.name??e}function Y(e,t){let n=i.value.find(t=>t.type===e)?.capabilities;return!n?.length||(t===`live`||t===`hybrid`?n.includes(`retrieve`):!0)&&(t===`mirror`||t===`hybrid`?n.includes(`sync`):!0)}function _t(e){return[`hybrid`,`mirror`,`live`].find(t=>Y(e,t))??`live`}function vt(e){return[`hybrid`,`mirror`,`live`].map(t=>({value:t,label:u(`pages.connections.mode.${t}`),disabled:!Y(e,t)}))}function X(e){return e.targets?.length?e.targets:[{id:e.id,...e.target,mode:e.mode,status:e.status,sync:e.sync}]}function yt(e){return X(e).some(({mode:e})=>e!==`live`)}function bt(e){return z.value.find(({project_id:t})=>t===e)?.profile.name??e}function xt(e){return X(e).find(({sync:e})=>e?.error)?.sync?.error??e.sync?.error}function St(e){return X(e).reduce((e,t)=>e+(t.sync?.skippedCredentials??0),0)}function Z(e){return[...new Set(e.split(`,`).map(e=>e.trim()).filter(Boolean))]}function Ct(e,t){let n=Z(e);if(!n.length)throw TypeError(`${t} is required`);return n}function Q(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==``&&(!Array.isArray(e)||e.length>0)))}function $(e,t){if(!e.trim())throw TypeError(`${t} is required`);return e.trim()}function wt(e){return`https://github.com/JevonsCode/fuli/blob/main/${te()===`zh-CN`?`README.zh-CN.md`:`README.md`}#${e}`}return(e,t)=>(m(),w(`section`,ue,[f(`div`,W,[f(`h3`,null,y(d(u)(`pages.connections.title`)),1)]),f(`div`,{class:`service-connection-grid`,"aria-label":d(u)(`pages.connections.statusAria`)},[f(`article`,{class:`service-connection-card`,"data-status":ne.value?`ready`:`error`},[f(`header`,null,[t[30]||=f(`span`,{class:`service-connection-icon local`,"aria-hidden":`true`},[f(`span`,{class:`nav-icon nav-icon-personal-project`})],-1),f(`div`,null,[f(`h3`,null,y(d(u)(`pages.connections.localGraphiti`)),1)]),f(`span`,pe,y(ne.value?d(u)(`common.status.connected`):d(u)(`common.status.connectionError`)),1)]),f(`dl`,null,[f(`div`,null,[f(`dt`,null,y(d(u)(`pages.connections.storage`)),1),t[31]||=f(`dd`,null,`Neo4j`,-1)]),f(`div`,null,[f(`dt`,null,y(d(u)(`pages.connections.purpose`)),1),f(`dd`,null,y(d(u)(`pages.connections.localPurpose`)),1)])])],8,fe),f(`article`,{class:`service-connection-card`,"data-status":d(n).publicRuntimeStatus},[f(`header`,null,[t[33]||=f(`span`,{class:`service-connection-icon public`,"aria-hidden":`true`},[f(`span`,{class:`nav-icon nav-icon-public-project`})],-1),f(`div`,he,[f(`h3`,null,y(d(u)(`pages.connections.publicService`)),1),t[32]||=f(`span`,{class:`feature-badge beta`},`BETA`,-1)]),f(`span`,ge,y(d(n).publicRuntimeStatus===`ready`?d(u)(`common.status.connected`):d(n).publicRuntimeStatus===`error`?d(u)(`common.status.connectionError`):d(u)(`common.status.notConnected`)),1)]),f(`dl`,null,[f(`div`,null,[f(`dt`,null,y(d(u)(`pages.connections.currentStatus`)),1),f(`dd`,null,y(d(n).publicRuntimeStatus===`ready`?d(u)(`pages.connections.sharedServicesReady`,{count:ie.value||re.value.length}):d(u)(`pages.connections.notAvailable`)),1)]),f(`div`,null,[f(`dt`,null,y(d(u)(`pages.connections.purpose`)),1),f(`dd`,null,y(ae.value),1)])])],8,me)],8,de),f(`section`,G,[f(`div`,K,[f(`h3`,null,y(d(u)(`pages.connections.externalTitle`)),1),f(`a`,{class:`section-help-link`,"data-testid":`external-knowledge-help`,href:oe.value,"aria-label":d(u)(`pages.connections.externalHelp`),title:d(u)(`pages.connections.externalHelp`),target:`_blank`,rel:`noreferrer`},`?`,8,_e),f(`span`,ve,y(d(u)(`pages.connections.bindingCount`,{count:o.value.length})),1)]),f(`div`,ye,[(m(!0),w(g,null,a(o.value,e=>(m(),w(`article`,{key:e.id,class:`external-binding-row`,"data-status":e.status},[t[34]||=f(`i`,{"aria-hidden":`true`},null,-1),f(`div`,xe,[f(`strong`,null,y(e.name),1),f(`span`,null,y(gt(e.connectorType)),1),f(`div`,Se,[f(`b`,null,y(d(u)(`pages.connections.boundTo`)),1),(m(!0),w(g,null,a(X(e),e=>(m(),w(`span`,{key:e.id,class:`external-binding-target-chip`,"data-status":e.status},y(bt(e.personalProjectId))+` · `+y(d(u)(`pages.connections.mode.${e.mode}`)),9,Ce))),128))]),xt(e)?(m(),w(`small`,we,y(xt(e)),1)):St(e)?(m(),w(`small`,Te,y(d(u)(`pages.connections.credentialsSkipped`,{count:St(e)})),1)):S(``,!0)]),f(`div`,Ee,[f(`button`,{class:`quiet-button`,type:`button`,disabled:h.value,onClick:t=>at(e)},y(d(u)(`pages.connections.check`)),9,De),f(`button`,{class:`quiet-button external-sync-action`,type:`button`,disabled:h.value||!yt(e),onClick:t=>ot(e)},y(d(u)(`pages.connections.sync`)),9,Oe),f(`button`,{class:`quiet-button`,type:`button`,disabled:h.value,onClick:t=>lt(e)},y(d(u)(`pages.connections.manageProjects`)),9,ke),f(`button`,{class:`quiet-button danger`,type:`button`,disabled:h.value,onClick:t=>ct(e)},y(d(u)(`pages.connections.disconnect`)),9,Ae)]),b.value===e.id?(m(),w(`div`,je,[f(`label`,null,[f(`span`,null,y(d(u)(`pages.connections.targetProjects`)),1),s(le,{modelValue:x.value,"onUpdate:modelValue":t[0]||=e=>x.value=e,"control-id":`external-projects-${e.id}`,label:d(u)(`pages.connections.targetProjects`),options:q.value,disabled:h.value,required:``,searchable:``,onChange:dt},null,8,[`modelValue`,`control-id`,`label`,`options`,`disabled`])]),f(`div`,Me,[(m(!0),w(g,null,a(x.value,t=>(m(),w(`div`,{key:t,class:`external-target-mode-row`},[f(`span`,null,y(bt(t)),1),s(j,{"model-value":A.value[t]??e.mode,"control-id":`external-target-mode-${e.id}-${t}`,label:d(u)(`pages.connections.bindingMode`),options:vt(e.connectorType),disabled:h.value,"onUpdate:modelValue":e=>ft(t,e)},null,8,[`model-value`,`control-id`,`label`,`options`,`disabled`,`onUpdate:modelValue`])]))),128))]),f(`div`,Ne,[f(`button`,{class:`quiet-button`,type:`button`,disabled:h.value,onClick:ut},y(d(u)(`common.actions.cancel`)),9,Pe),f(`button`,{class:`primary-action`,type:`button`,disabled:h.value||!x.value.length,onClick:t=>pt(e)},y(d(u)(`pages.connections.saveProjects`)),9,Fe)])])):S(``,!0)],8,be))),128)),o.value.length?S(``,!0):(m(),w(`div`,Ie,y(d(u)(`pages.connections.noExternalBindings`)),1))]),f(`form`,{class:`external-binding-form`,onSubmit:_(rt,[`prevent`])},[s(U,{modelValue:L.name,"onUpdate:modelValue":t[1]||=e=>L.name=e,label:d(u)(`pages.connections.bindingName`),"data-testid":`external-name`,required:``},null,8,[`modelValue`,`label`]),f(`label`,null,[f(`span`,null,y(d(u)(`pages.connections.connector`)),1),s(j,{modelValue:L.connectorType,"onUpdate:modelValue":t[2]||=e=>L.connectorType=e,"control-id":`external-connector`,label:d(u)(`pages.connections.connector`),options:H.value,disabled:h.value,required:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),f(`label`,null,[f(`span`,null,y(d(u)(`pages.connections.targetProjects`)),1),s(le,{modelValue:L.personalProjectIds,"onUpdate:modelValue":t[3]||=e=>L.personalProjectIds=e,"control-id":`external-projects`,label:d(u)(`pages.connections.targetProjects`),options:q.value,disabled:h.value,required:``,searchable:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),f(`label`,null,[f(`span`,null,y(d(u)(`pages.connections.bindingMode`)),1),s(j,{modelValue:L.mode,"onUpdate:modelValue":t[4]||=e=>L.mode=e,"control-id":`external-binding-mode`,label:d(u)(`pages.connections.bindingMode`),options:Xe.value,disabled:h.value,required:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),L.connectorType===`mcp`?(m(),w(g,{key:0},[f(`label`,null,[f(`span`,null,y(d(u)(`pages.connections.transport`)),1),s(j,{modelValue:L.mcpTransport,"onUpdate:modelValue":t[5]||=e=>L.mcpTransport=e,"control-id":`external-mcp-transport`,label:d(u)(`pages.connections.transport`),options:Ze.value,disabled:h.value,required:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),L.mcpTransport===`http`?(m(),l(U,{key:0,modelValue:L.mcpUrl,"onUpdate:modelValue":t[6]||=e=>L.mcpUrl=e,label:`MCP URL`,"data-testid":`mcp-url`,type:`url`,required:``},null,8,[`modelValue`])):(m(),l(U,{key:1,modelValue:L.mcpCommand,"onUpdate:modelValue":t[7]||=e=>L.mcpCommand=e,label:d(u)(`pages.connections.command`),required:``},null,8,[`modelValue`,`label`])),L.mcpTransport===`stdio`?(m(),l(U,{key:2,modelValue:L.mcpArgs,"onUpdate:modelValue":t[8]||=e=>L.mcpArgs=e,label:d(u)(`pages.connections.arguments`)},null,8,[`modelValue`,`label`])):(m(),l(U,{key:3,modelValue:L.mcpTokenEnv,"onUpdate:modelValue":t[9]||=e=>L.mcpTokenEnv=e,label:d(u)(`pages.connections.tokenEnv`),"data-testid":`mcp-token-env`},null,8,[`modelValue`,`label`])),s(U,{modelValue:L.mcpResourcePrefix,"onUpdate:modelValue":t[10]||=e=>L.mcpResourcePrefix=e,label:d(u)(`pages.connections.resourcePrefix`),"data-testid":`mcp-resource-prefix`},null,8,[`modelValue`,`label`])],64)):L.connectorType===`notion`?(m(),w(g,{key:1},[s(U,{modelValue:L.notionTokenEnv,"onUpdate:modelValue":t[11]||=e=>L.notionTokenEnv=e,label:d(u)(`pages.connections.tokenEnv`),required:``},null,8,[`modelValue`,`label`]),s(U,{modelValue:L.notionPageIds,"onUpdate:modelValue":t[12]||=e=>L.notionPageIds=e,label:`Page IDs`},null,8,[`modelValue`]),s(U,{modelValue:L.notionDataSourceIds,"onUpdate:modelValue":t[13]||=e=>L.notionDataSourceIds=e,label:`Data Source IDs`},null,8,[`modelValue`])],64)):L.connectorType===`feishu`?(m(),w(g,{key:2},[s(U,{modelValue:L.feishuTokenEnv,"onUpdate:modelValue":t[14]||=e=>L.feishuTokenEnv=e,label:d(u)(`pages.connections.tokenEnv`),required:``},null,8,[`modelValue`,`label`]),f(`label`,null,[f(`span`,null,y(d(u)(`pages.connections.region`)),1),s(j,{modelValue:L.feishuRegion,"onUpdate:modelValue":t[15]||=e=>L.feishuRegion=e,"control-id":`external-feishu-region`,label:d(u)(`pages.connections.region`),options:Qe.value,disabled:h.value,required:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),s(U,{modelValue:L.feishuSpaceId,"onUpdate:modelValue":t[16]||=e=>L.feishuSpaceId=e,label:`Space ID`},null,8,[`modelValue`]),s(U,{modelValue:L.feishuRootNodeToken,"onUpdate:modelValue":t[17]||=e=>L.feishuRootNodeToken=e,label:`Root Node Token`},null,8,[`modelValue`]),s(U,{modelValue:L.feishuNodeTokens,"onUpdate:modelValue":t[18]||=e=>L.feishuNodeTokens=e,label:`Node Tokens`},null,8,[`modelValue`]),s(U,{modelValue:L.feishuWebBaseUrl,"onUpdate:modelValue":t[19]||=e=>L.feishuWebBaseUrl=e,label:`Web URL`,type:`url`},null,8,[`modelValue`])],64)):L.connectorType===`retrieval_api`?(m(),w(g,{key:3},[s(U,{modelValue:L.retrievalUrl,"onUpdate:modelValue":t[20]||=e=>L.retrievalUrl=e,label:d(u)(`pages.connections.retrievalUrl`),type:`url`,required:``},null,8,[`modelValue`,`label`]),s(U,{modelValue:L.retrievalTokenEnv,"onUpdate:modelValue":t[21]||=e=>L.retrievalTokenEnv=e,label:d(u)(`pages.connections.tokenEnv`)},null,8,[`modelValue`,`label`]),s(U,{modelValue:L.retrievalKnowledgeIds,"onUpdate:modelValue":t[22]||=e=>L.retrievalKnowledgeIds=e,label:d(u)(`pages.connections.knowledgeIds`),required:``},null,8,[`modelValue`,`label`]),s(U,{modelValue:L.retrievalScoreThreshold,"onUpdate:modelValue":t[23]||=e=>L.retrievalScoreThreshold=e,label:d(u)(`pages.connections.scoreThreshold`),inputmode:`decimal`,required:``},null,8,[`modelValue`,`label`])],64)):(m(),w(g,{key:4},[s(U,{modelValue:L.customModule,"onUpdate:modelValue":t[24]||=e=>L.customModule=e,label:d(u)(`pages.connections.module`),required:``},null,8,[`modelValue`,`label`]),s(U,{modelValue:L.customEnvironmentNames,"onUpdate:modelValue":t[25]||=e=>L.customEnvironmentNames=e,label:d(u)(`pages.connections.environmentNames`)},null,8,[`modelValue`,`label`]),f(`div`,Le,[s(U,{modelValue:L.customSourceJson,"onUpdate:modelValue":t[26]||=e=>L.customSourceJson=e,label:d(u)(`pages.connections.sourceJson`),multiline:``,required:``},null,8,[`modelValue`,`label`])]),f(`span`,Re,y(d(u)(`pages.connections.trustedCode`)),1)],64)),f(`button`,{class:`primary-action external-create-action`,type:`submit`,disabled:h.value||!z.value.length||!L.personalProjectIds.length},[t[35]||=f(`span`,{class:`external-create-action-icon`,"aria-hidden":`true`},null,-1),f(`span`,null,y(d(u)(`pages.connections.connect`)),1)],8,ze)],32)]),z.value.length?(m(),w(`section`,Be,[f(`div`,Ve,[f(`h3`,null,y(d(u)(`pages.connections.conflictTitle`)),1),f(`a`,{class:`section-help-link`,"data-testid":`conflict-policy-help`,href:se.value,"aria-label":d(u)(`pages.connections.conflictHelp`),title:d(u)(`pages.connections.conflictHelp`),target:`_blank`,rel:`noreferrer`},`?`,8,He)]),f(`div`,Ue,[f(`label`,null,[f(`span`,null,y(d(u)(`pages.connections.targetProject`)),1),s(j,{modelValue:P.value,"onUpdate:modelValue":t[27]||=e=>P.value=e,"control-id":`external-conflict-project`,label:d(u)(`pages.connections.targetProject`),options:q.value,disabled:I.value,required:``,onChange:mt},null,8,[`modelValue`,`label`,`options`,`disabled`])]),f(`label`,null,[f(`span`,null,y(d(u)(`pages.connections.conflictAction`)),1),s(j,{modelValue:F.value,"onUpdate:modelValue":t[28]||=e=>F.value=e,"control-id":`external-conflict-mode`,label:d(u)(`pages.connections.conflictAction`),options:$e.value,disabled:I.value,required:``,onChange:ht},null,8,[`modelValue`,`label`,`options`,`disabled`])])])])):S(``,!0),d(n).state?.capabilities?.subscribeProject?(m(),w(`section`,We,[f(`div`,Ge,[f(`h3`,null,[C(y(d(u)(`pages.connections.subscriptionsTitle`))+` `,1),t[36]||=f(`span`,{class:`feature-badge beta`},`BETA`,-1)])]),f(`div`,Ke,[(m(!0),w(g,null,a(R.value,e=>(m(),w(`div`,{key:`${e.provider_url}:${e.project_id}`,class:`subscription-row`},[t[37]||=f(`span`,null,`↗`,-1),f(`div`,null,[f(`strong`,null,y(e.project_name??e.project_id),1),f(`span`,null,y(d(u)(`pages.connections.sharedProject`)),1)]),f(`button`,{class:`secondary-action subscription-action`,type:`button`,onClick:t=>nt(e)},y(d(u)(`pages.connections.unsubscribe`)),9,qe)]))),128)),R.value.length?S(``,!0):(m(),w(`div`,Je,y(d(u)(`pages.connections.noSubscriptions`)),1))]),f(`form`,{class:`subscription-form`,onSubmit:_(tt,[`prevent`])},[s(j,{modelValue:r.value,"onUpdate:modelValue":t[29]||=e=>r.value=e,options:V.value,label:d(u)(`pages.connections.sharedProjectLabel`),placeholder:d(u)(`pages.connections.choosePublicProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`]),f(`button`,Ye,y(d(u)(`pages.connections.subscribe`)),1)],32)])):S(``,!0)]))}});export{q as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as e,B as t,C as n,I as r,L as i,N as a,O as o,S as s,Y as c,_ as l,a as u,et as d,f,g as p,h as m,j as h,k as g,m as ee,p as te,rt as _,tt as ne,u as v,v as y,x as b,y as x,z as S}from"./i18n-CgBHZthI.js";import{a as C}from"./console-tOxOl8Vq.js";import{t as w}from"./vue-router-CzHm-y-x.js";import{t as T}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as E,n as D,o as O,r as k,t as A}from"./catalog-DFvIaHVS.js";import{n as j}from"./paths-CDREouhi.js";import{t as M}from"./SearchableSelect-D27H0MoP.js";var N={class:`project-scope-heading`},re=[`id`],P={key:0,class:`project-scope-count`,role:`status`},F=[`disabled`,`aria-expanded`,`aria-controls`,`aria-labelledby`],I={key:0,viewBox:`0 0 20 20`,width:`18`,height:`18`,"aria-hidden":`true`},L=[`id`],R={key:1,class:`project-scope-multiple`},z=[`id`,`aria-labelledby`],B=[`placeholder`,`aria-label`,`disabled`],ie={class:`project-scope-bulk`},ae={class:`project-scope-option project-scope-all`},oe=[`checked`,`indeterminate`,`disabled`],V=[`disabled`],H={class:`project-scope-list`},se=[`value`,`checked`,`disabled`,`onChange`],U={key:0,class:`project-scope-project-id`},W={key:0,class:`project-scope-empty`},G={key:0,class:`project-scope-footer`},K={role:`status`},ce={key:1,class:`project-scope-hint`},le={key:2,class:`project-scope-hint`},q=T(n({__name:`ProjectScopePicker`,props:{modelValue:{},projects:{},disabled:{type:Boolean},inline:{type:Boolean},label:{},hint:{},emptyLabel:{},compact:{type:Boolean}},emits:[`update:modelValue`],setup(n,{emit:s}){let l=n,S=s,C=c(null),w=c(null),T=c(null),E=c(!1),D=c(``),O=`employee-projects-${r().replace(/[^a-zA-Z0-9_-]/g,``)}`,k=m(()=>new Set(l.modelValue)),A=m(()=>l.projects.filter(e=>k.value.has(e.id)).length),j=m(()=>l.projects.length>0&&A.value===l.projects.length),M=m(()=>l.label??u(`employees.scope.label`)),q=m(()=>{let e=new Map;for(let t of l.projects)e.set(t.name,(e.get(t.name)??0)+1);return new Set([...e].filter(([,e])=>e>1).map(([e])=>e))}),J=m(()=>{let e=l.projects.find(e=>k.value.has(e.id));return e?`${e.name}${q.value.has(e.name)?` · ${e.id}`:``}`:``}),ue=m(()=>j.value?u(`employees.scope.allSummary`,{count:A.value}):A.value===1?J.value:A.value?u(`employees.scope.selected`,{count:A.value}):l.emptyLabel??u(`employees.unassigned`)),Y=m(()=>{let e=D.value.trim().toLocaleLowerCase();return l.projects.filter(t=>`${t.name} ${t.id}`.toLocaleLowerCase().includes(e))});i(()=>l.disabled,e=>{e&&X()}),e(()=>document.addEventListener(`pointerdown`,fe)),g(()=>document.removeEventListener(`pointerdown`,fe));async function de(){if(!l.disabled){if(E.value){X();return}D.value=``,E.value=!0,await o(),T.value?.focus()}}function X(e=!1){E.value=!1,e&&o(()=>w.value?.focus())}function fe(e){E.value&&!C.value?.contains(e.target)&&X()}function pe(e){e.relatedTarget&&!C.value?.contains(e.relatedTarget)&&X()}function me(e){E.value&&e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),X(!0))}function Z(e){l.disabled||S(`update:modelValue`,e)}function he(){Z(j.value?[]:l.projects.map(e=>e.id))}function ge(){Z(l.projects.filter(e=>!k.value.has(e.id)).map(e=>e.id))}function _e(e){let t=new Set(l.modelValue);t.has(e)?t.delete(e):t.add(e),Z(l.projects.filter(e=>t.has(e.id)).map(e=>e.id))}return(e,r)=>(h(),x(`div`,{ref_key:`root`,ref:C,class:ne([`project-scope-picker`,{"is-inline":n.inline,"is-compact":n.compact}]),onFocusout:pe,onKeydown:me},[p(`div`,N,[p(`span`,{id:`${O}-label`,class:`project-scope-label`},_(M.value),9,re),n.inline?(h(),x(`span`,P,_(d(u)(`employees.scope.count`,{selected:A.value,total:n.projects.length})),1)):y(``,!0)]),n.inline?y(``,!0):(h(),x(`button`,{key:0,ref_key:`trigger`,ref:w,type:`button`,class:`project-scope-trigger`,disabled:n.disabled,"aria-expanded":E.value,"aria-controls":`${O}-panel`,"aria-labelledby":`${O}-label ${O}-value`,onClick:de},[n.compact?(h(),x(`svg`,I,[...r[3]||=[p(`path`,{d:`M3 5h14M5.5 10h9M8 15h4`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`},null,-1)]])):y(``,!0),p(`span`,{id:`${O}-value`,class:`project-scope-value`},_(ue.value),9,L),n.compact?(h(),x(`small`,R,_(d(u)(`employees.scope.multiple`)),1)):y(``,!0),r[4]||=p(`svg`,{viewBox:`0 0 20 20`,width:`18`,height:`18`,"aria-hidden":`true`},[p(`path`,{d:`m5 7.5 5 5 5-5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1)],8,F)),n.inline||E.value?(h(),x(`div`,{key:1,id:`${O}-panel`,class:`project-scope-panel`,role:`group`,"aria-labelledby":`${O}-label`},[t(p(`input`,{ref_key:`search`,ref:T,"onUpdate:modelValue":r[0]||=e=>D.value=e,type:`search`,class:`project-scope-search`,placeholder:d(u)(`employees.scope.search`),"aria-label":d(u)(`employees.scope.search`),disabled:n.disabled,onKeydown:r[1]||=f(te(()=>{},[`prevent`]),[`enter`])},null,40,B),[[v,D.value]]),p(`div`,ie,[p(`label`,ae,[p(`input`,{type:`checkbox`,checked:j.value,indeterminate:A.value>0&&!j.value,disabled:n.disabled||!n.projects.length,onChange:he},null,40,oe),p(`span`,null,[b(_(d(u)(`employees.scope.all`))+` `,1),p(`small`,null,_(n.projects.length),1)])]),p(`button`,{type:`button`,disabled:n.disabled||!n.projects.length,onClick:ge},_(d(u)(`employees.scope.invert`)),9,V)]),p(`div`,H,[(h(!0),x(ee,null,a(Y.value,e=>(h(),x(`label`,{key:e.id,class:ne([`project-scope-option`,{"is-selected":k.value.has(e.id)}])},[p(`input`,{type:`checkbox`,value:e.id,checked:k.value.has(e.id),disabled:n.disabled,onChange:t=>_e(e.id)},null,40,se),p(`span`,null,[b(_(e.name),1),q.value.has(e.name)?(h(),x(`small`,U,_(e.id),1)):y(``,!0)])],2))),128)),Y.value.length?y(``,!0):(h(),x(`p`,W,_(d(u)(n.projects.length?`employees.scope.noMatch`:`employees.scope.empty`)),1))]),n.inline?y(``,!0):(h(),x(`div`,G,[p(`span`,K,_(d(u)(`employees.scope.count`,{selected:A.value,total:n.projects.length})),1),p(`button`,{type:`button`,onClick:r[2]||=e=>X(!0)},_(d(u)(`employees.scope.done`)),1)])),n.compact&&n.hint?(h(),x(`p`,ce,_(n.hint),1)):y(``,!0)],8,z)):y(``,!0),!n.compact&&n.hint!==``?(h(),x(`p`,le,_(n.hint??d(u)(`employees.scope.snapshotHint`)),1)):y(``,!0)],34))}}),[[`__scopeId`,`data-v-f8d66833`]]),J=[`button:not([disabled])`,`input:not([disabled]):not([type="hidden"])`,`select:not([disabled])`,`textarea:not([disabled])`,`a[href]`,`[contenteditable="true"]`,`[tabindex]:not([tabindex="-1"])`].join(`,`);function ue(e,t){let n=c(null),r=c(null),a=null,s=0;i(e,t=>{let i=++s;if(t){a=document.activeElement instanceof HTMLElement?document.activeElement:null,o().then(()=>{if(i!==s||!e())return;let t=n.value;t&&(t.open||t.showModal(),(r.value??Y(t)[0])?.focus({preventScroll:!0}))});return}let c=n.value;c?.open&&c.close(),l(i)},{immediate:!0}),g(()=>{s+=1;let e=n.value;e?.open&&e.close();let t=a;a=null,t?.isConnected&&t.focus({preventScroll:!0})});function l(e){let t=a;a=null,o().then(()=>{e!==s||!t?.isConnected||t.focus({preventScroll:!0})})}function u(e){e.preventDefault(),t()}function d(e){if(e.key!==`Tab`)return;let t=n.value;if(!t)return;let r=Y(t);if(!r.length){e.preventDefault(),t.focus({preventScroll:!0});return}let i=r[0],a=r.at(-1)??i,o=document.activeElement;e.shiftKey&&(o===i||!t.contains(o))?(e.preventDefault(),a.focus({preventScroll:!0})):!e.shiftKey&&(o===a||!t.contains(o))&&(e.preventDefault(),i.focus({preventScroll:!0}))}return{dialogRef:n,initialFocusRef:r,onCancel:u,onKeydown:d}}function Y(e){return[...e.querySelectorAll(J)].filter(e=>!e.hidden&&e.getAttribute(`aria-hidden`)!==`true`)}var de={class:`employee-recruit-heading`},X={id:`employee-recruit-title`},fe=[`disabled`],pe={key:0,role:`status`},me={key:1,role:`alert`,class:`employee-message`},Z={key:2},he={class:`employee-recruit-body`},ge={key:0,class:`employee-picker-field`},_e={class:`employee-profile`},ve={class:`employee-avatar`,"aria-hidden":`true`},ye={class:`employee-specialties`},be={key:1,class:`employee-muted`,role:`status`},xe=[`aria-label`],Se=[`data-scope`,`aria-checked`,`tabindex`,`disabled`,`onClick`],Ce={key:3,class:`employee-scope-rule`,role:`status`},we={key:4,class:`employee-muted`},Te={key:5,class:`employee-muted`},Ee={key:6,class:`employee-muted`},De=[`aria-label`],Oe={class:`employee-title-controls`},ke={class:`employee-picker-field`},Ae={class:`employee-picker-field`},je={class:`employee-title-preview`},Me={class:`employee-muted`},Ne=[`aria-label`],Pe={key:9,class:`employee-error`,role:`alert`},Fe=[`disabled`],Ie={key:11,class:`employee-success`,role:`status`},Le={class:`employee-recruit-actions`},Re=[`disabled`],ze=[`disabled`],Be=T(n({__name:`EmployeeRecruitDialog`,props:{open:{type:Boolean},personalSpaceId:{},projects:{},defaultProjectId:{},defaultProjectIds:{},templateId:{}},emits:[`close`,`recruited`],setup(e,{emit:t}){let n=e,r=t,o=c([]),f=c([]),g=c(`selected`),v=c([]),T=c(`auto`),N=c(`emoji`),re=c(``),P=c(``),F=c(!1),I=c(!1),L=c(``),R=c(!1),z=c(``),B=c(null),{dialogRef:ie,initialFocusRef:ae,onCancel:oe,onKeydown:V}=ue(()=>n.open,$),H=m(()=>n.templateId?E.value.find(e=>e.id===n.templateId):E.value.find(e=>e.id===L.value)??E.value[0]),se=m(()=>H.value?.agentId?u(`employees.manageProjectsTitle`,{name:H.value.name}):u(`employees.recruit`)),U=m(()=>n.projects.filter(e=>e.profile.lifecycle!==`archived`).map(e=>({id:e.project_id,name:e.profile.name}))),W=m(()=>H.value?.management!==void 0),G=m({get:()=>g.value===`all`?U.value.filter(e=>!v.value.includes(e.id)).map(e=>e.id):o.value,set:e=>{if(g.value===`all`){let t=new Set(U.value.map(e=>e.id));v.value=[...v.value.filter(e=>!t.has(e)),...U.value.filter(t=>!e.includes(t.id)).map(e=>e.id)]}else o.value=e}}),K=m(()=>({mode:g.value,projectIds:g.value===`selected`?[...o.value].sort():[],excludedProjectIds:g.value===`all`?[...v.value].sort():[],titleMode:T.value,titleStyle:N.value})),ce=m(()=>[`auto`,`suggest`,`off`].map(e=>({value:e,label:u(`employees.titles.${e}`)}))),le=m(()=>[`emoji`,`text`].map(e=>({value:e,label:u(`employees.titles.${e}`)}))),J=m(()=>new Set(f.value)),Y=m(()=>[...J.value].filter(e=>!G.value.includes(e))),Be=m(()=>!!(H.value?.agentStatus&&H.value.agentStatus!==`active`)),Q=m(()=>H.value?.agentStatus===`active`&&(W.value?JSON.stringify(K.value)===re.value&&(g.value===`all`||o.value.length===J.value.size&&o.value.every(e=>J.value.has(e))):o.value.length===J.value.size&&o.value.every(e=>J.value.has(e)))),Ve=m(()=>R.value?u(`employees.recruiting`):Be.value?u(`employees.rehire`,{name:H.value?.name??``}):Q.value||H.value?.agentId?u(`employees.assign`):u(`employees.recruitName`,{name:H.value?.name??``})),He=m(()=>H.value&&G.value.length?`/employees/${encodeURIComponent(H.value.id)}?project=${encodeURIComponent(G.value[0])}`:``),Ue=0;i([()=>n.open,()=>n.personalSpaceId,()=>n.templateId],([e])=>{Ue+=1,e&&Ge(!0)},{immediate:!0}),i(L,()=>{n.open&&!F.value&&We(!0)}),i(K,()=>{z.value=I.value?z.value:``,B.value=null},{flush:`sync`});function We(e=!1){let t=new Set(U.value.map(e=>e.id));f.value=[...new Set((H.value?.assignments??[]).filter(e=>e.status===`active`&&t.has(e.personalProjectId)).map(e=>e.personalProjectId))];let r=e&&!H.value?.agentId?n.defaultProjectIds??(n.defaultProjectId?[n.defaultProjectId]:[]):[];o.value=[...new Set([...f.value,...r.filter(e=>t.has(e))])];let i=H.value?.management;g.value=i?.mode??`selected`,v.value=[...i?.excludedProjectIds??[]],T.value=i?.titleMode??`auto`,N.value=i?.titleStyle??`emoji`,i?.mode===`selected`&&H.value?.agentId&&(o.value=i.projectIds.filter(e=>t.has(e))),i?.mode===`all`&&H.value?.agentId&&(f.value=[...G.value]),re.value=JSON.stringify(K.value),P.value=H.value?.assignmentsVersion??``,I.value=!1,z.value=``,B.value=null}async function Ge(e=!1){let t=++Ue;F.value=!0,await O(n.personalSpaceId),!(t!==Ue||!n.open)&&(A.value||We(e),F.value=!1)}function $(){R.value||r(`close`)}async function Ke(){if(!H.value||H.value.identityConflict||!n.personalSpaceId||R.value||F.value||I.value||!P.value||Q.value)return;R.value=!0,z.value=``;let e=H.value.id;try{let t=await C(`/api/employee-templates/${encodeURIComponent(e)}/recruit`,{personalSpaceId:n.personalSpaceId,...W.value?{management:K.value}:{personalProjectIds:[...o.value]},replaceAssignments:!0,expectedAssignmentsVersion:P.value,...Be.value?{reactivate:!0}:{}});await O(n.personalSpaceId),We(),B.value=t,r(`recruited`,t)}catch(e){z.value=k(e);try{let t=JSON.parse(e instanceof Error?e.message:``);I.value=t.code===`assignment_scope_conflict`||t.code===`assignment_update_incomplete`}catch{}}finally{R.value=!1}}function qe(e){e===`selected`&&(o.value=[...G.value]),g.value=e}function Je(e){if(!(R.value||F.value||I.value)&&[`ArrowLeft`,`ArrowRight`,`Home`,`End`].includes(e.key)){e.preventDefault();let t=e.key===`Home`?`all`:e.key===`End`||g.value===`all`?`selected`:`all`;qe(t),e.currentTarget.querySelector(`[data-scope="${t}"]`)?.focus()}}return(t,r)=>e.open?(h(),x(`dialog`,{key:0,ref_key:`dialogRef`,ref:ie,class:`employee-recruit-dialog`,"aria-modal":`true`,"aria-labelledby":`employee-recruit-title`,onCancel:r[6]||=(...e)=>d(oe)&&d(oe)(...e),onKeydown:r[7]||=(...e)=>d(V)&&d(V)(...e)},[p(`header`,de,[p(`h2`,X,_(se.value),1),p(`button`,{ref_key:`initialFocusRef`,ref:ae,type:`button`,class:`quiet-button`,disabled:R.value,onClick:$},_(d(u)(`employees.close`)),9,fe)]),d(D)&&!d(E).length?(h(),x(`p`,pe,_(d(u)(`employees.loading`)),1)):d(A)?(h(),x(`div`,me,[p(`p`,null,_(d(A)),1),p(`button`,{class:`quiet-button`,type:`button`,onClick:r[0]||=e=>Ge(!0)},_(d(u)(`employees.retry`)),1)])):H.value?(h(),x(`form`,{key:3,onSubmit:te(Ke,[`prevent`])},[p(`div`,he,[d(E).length>1&&!n.templateId?(h(),x(`div`,ge,[p(`span`,null,_(d(u)(`employees.choose`)),1),s(M,{modelValue:L.value,"onUpdate:modelValue":r[1]||=e=>L.value=e,"control-id":`employee-template`,label:d(u)(`employees.choose`),options:d(E).map(e=>({value:e.id,label:e.name,meta:e.role})),disabled:R.value||F.value},null,8,[`modelValue`,`label`,`options`,`disabled`])])):y(``,!0),p(`div`,_e,[p(`span`,ve,_(H.value.name.slice(0,1)),1),p(`div`,null,[p(`h3`,null,[b(_(H.value.name)+` `,1),p(`span`,null,_(H.value.role),1)]),p(`p`,null,_(H.value.description),1)])]),p(`p`,ye,_(H.value.capabilities.join(` · `)),1),F.value?(h(),x(`p`,be,_(d(u)(`employees.loadingScope`)),1)):y(``,!0),W.value?(h(),x(`div`,{key:2,class:`employee-scope-mode`,role:`radiogroup`,"aria-label":d(u)(`employees.scope.rule`),onKeydown:Je},[(h(),x(ee,null,a([`all`,`selected`],e=>p(`button`,{key:e,type:`button`,role:`radio`,"data-scope":e,"aria-checked":g.value===e,tabindex:g.value===e?0:-1,disabled:R.value||F.value||I.value,onClick:t=>qe(e)},_(d(u)(`employees.scope.${e===`all`?`continuousAll`:`onlySelected`}`)),9,Se)),64))],40,xe)):y(``,!0),W.value?(h(),x(`p`,Ce,_(g.value===`all`?d(u)(`employees.scope.allHint`,{name:H.value.name}):d(u)(`employees.scope.selectedHint`)),1)):y(``,!0),s(q,{modelValue:G.value,"onUpdate:modelValue":r[2]||=e=>G.value=e,projects:U.value,inline:``,hint:g.value===`all`?d(u)(`employees.scope.excludeHint`):void 0,disabled:R.value||F.value||I.value},null,8,[`modelValue`,`projects`,`hint`,`disabled`]),g.value===`all`&&v.value.length?(h(),x(`p`,we,_(d(u)(`employees.scope.excludedCount`,{count:v.value.length})),1)):y(``,!0),U.value.length?y(``,!0):(h(),x(`p`,Te,[b(_(d(u)(`employees.noProjects`))+` `,1),s(d(w),{to:d(j)(e.personalSpaceId,`directory`),onClick:$},{default:S(()=>[b(_(d(u)(`employees.createProject`)),1)]),_:1},8,[`to`])])),Y.value.length&&!B.value?(h(),x(`p`,Ee,_(d(u)(`employees.scopeRemoved`,{count:Y.value.length})),1)):y(``,!0),W.value&&H.value.permissions.includes(`session.title`)?(h(),x(`section`,{key:7,class:`employee-title-settings`,"aria-label":d(u)(`employees.titles.heading`)},[p(`h3`,null,_(d(u)(`employees.titles.heading`)),1),p(`div`,Oe,[p(`div`,ke,[p(`span`,null,_(d(u)(`employees.titles.mode`)),1),s(M,{modelValue:T.value,"onUpdate:modelValue":r[3]||=e=>T.value=e,"control-id":`employee-title-mode`,label:d(u)(`employees.titles.mode`),options:ce.value,disabled:R.value||F.value||I.value},null,8,[`modelValue`,`label`,`options`,`disabled`])]),p(`div`,Ae,[p(`span`,null,_(d(u)(`employees.titles.style`)),1),s(M,{modelValue:N.value,"onUpdate:modelValue":r[4]||=e=>N.value=e,"control-id":`employee-title-style`,label:d(u)(`employees.titles.style`),options:le.value,disabled:R.value||F.value||I.value||T.value===`off`},null,8,[`modelValue`,`label`,`options`,`disabled`])])]),p(`p`,je,[b(_(d(u)(`employees.titles.example`))+` `,1),p(`span`,null,`【P1|`+_(N.value===`emoji`?`🔧 `:``)+`FIX|`+_(d(u)(`employees.titles.exampleTask`))+`】`,1)]),p(`p`,Me,_(d(u)(`employees.titles.boundary`)),1)],8,De)):y(``,!0),p(`section`,{class:`employee-permissions`,"aria-label":d(u)(`employees.permissions`)},[p(`strong`,null,_(d(u)(`employees.permissions`)),1),p(`ul`,null,[(h(!0),x(ee,null,a(H.value.permissions,e=>(h(),x(`li`,{key:e},_(e===`board.read`?d(u)(`employees.boardRead`):e===`board.write`?d(u)(`employees.boardWrite`):e===`session.title`?d(u)(`employees.titles.heading`):e),1))),128))]),p(`p`,null,_(d(u)(`employees.noExecutor`)),1)],8,Ne),H.value.runtime?(h(),x(`p`,{key:8,class:ne([`employee-runtime`,{"is-warning":H.value.runtimeStatus!==`ready`}])},_(H.value.runtimeStatus===`ready`?d(u)(`employees.hostReady`):d(u)(`employees.installRequired`)),3)):y(``,!0),z.value||H.value.identityConflict?(h(),x(`p`,Pe,_(z.value||d(u)(`employees.errors.identity_conflict`)),1)):y(``,!0),I.value?(h(),x(`button`,{key:10,type:`button`,class:`quiet-button`,disabled:F.value,onClick:r[5]||=e=>Ge()},_(d(u)(`employees.reloadScope`)),9,Fe)):y(``,!0),B.value?(h(),x(`div`,Ie,[p(`strong`,null,_(d(u)(`employees.scopeSaved`)),1),p(`p`,null,_(g.value===`all`?d(u)(`employees.scope.successAll`,{count:G.value.length}):G.value.length?d(u)(`employees.successMultiple`,{count:G.value.length}):d(u)(`employees.successUnassigned`)),1)])):y(``,!0)]),p(`footer`,Le,[p(`button`,{class:`quiet-button`,type:`button`,disabled:R.value,onClick:$},_(d(u)(`employees.cancel`)),9,Re),Q.value&&He.value&&!R.value&&!F.value&&!I.value&&H.value.runtimeStatus===`ready`?(h(),l(d(w),{key:0,class:`employee-primary`,to:He.value,onClick:$},{default:S(()=>[b(_(d(u)(`employees.open`)),1)]),_:1},8,[`to`])):(h(),x(`button`,{key:1,class:`employee-primary`,type:`submit`,disabled:R.value||F.value||I.value||!P.value||Q.value||H.value.identityConflict||!e.personalSpaceId},_(Ve.value),9,ze))])],32)):(h(),x(`p`,Z,_(d(u)(`employees.noTemplates`)),1))],544)):y(``,!0)}}),[[`__scopeId`,`data-v-fbb19f26`]]);export{ue as n,q as r,Be as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.employee-workbench-view[data-v-6eb3ead3]{background:#fff;flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.employee-workbench-toolbar[data-v-6eb3ead3]{flex:none;justify-content:space-between;align-items:center;gap:20px;padding:16px 24px 10px;display:flex}.employee-workbench-identity[data-v-6eb3ead3]{align-items:center;gap:10px;min-width:0;display:flex}.employee-workbench-mark[data-v-6eb3ead3]{color:#315c43;background:#eaf0ec;border-radius:9px;flex:0 0 32px;place-items:center;height:32px;font-size:17px;font-weight:650;display:grid}.employee-workbench-toolbar h1[data-v-6eb3ead3]{color:#253c2f;overflow-wrap:anywhere;margin:0;font-size:18px;font-weight:650;line-height:1.4}.employee-workbench-toolbar h1 span[data-v-6eb3ead3]{color:#59685f;margin-left:8px;font-size:12px;font-weight:400}.employee-workbench-toolbar[data-v-6eb3ead3] .searchable-select{width:min(240px,30vw)}.employee-workbench-actions[data-v-6eb3ead3]{align-items:center;gap:12px;min-width:0;display:flex}.employee-workbench-project-view[data-v-6eb3ead3]{min-width:0}.employee-manage-projects[data-v-6eb3ead3]{color:#465b4d;min-height:40px;font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:8px 10px;font-size:13px;display:inline-flex}.employee-manage-projects[data-v-6eb3ead3]:hover:not(:disabled){background:#e2ece5}.employee-manage-projects[data-v-6eb3ead3]:disabled{color:#647568;cursor:default}.employee-manage-projects[data-v-6eb3ead3]:focus-visible{outline-offset:3px;outline:2px solid #356448}.employee-workbench-frame[data-v-6eb3ead3]{border:0;flex:1;width:100%;height:100%;min-height:0}.employee-workbench-state[data-v-6eb3ead3]{color:#58695e;text-align:center;flex:1;place-content:center;justify-items:center;gap:14px;padding:30px;font-size:14px;display:grid}.employee-workbench-state a[data-v-6eb3ead3]{color:#315c43}.employee-workbench-state h2[data-v-6eb3ead3]{color:#253c2f;font-size:20px;font-weight:600}.employee-workbench-state p[data-v-6eb3ead3]{max-width:48ch;margin:0;line-height:1.7}@media (width<=640px){.employee-workbench-toolbar[data-v-6eb3ead3]{flex-wrap:wrap;gap:10px;padding:8px 16px 10px}.employee-workbench-actions[data-v-6eb3ead3]{gap:8px;width:100%}.employee-workbench-project-view[data-v-6eb3ead3]{flex:1}.employee-workbench-project-view[data-v-6eb3ead3] .searchable-select{width:100%}.employee-workbench-toolbar h1 span[data-v-6eb3ead3]{margin-left:6px}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,L as t,S as n,Y as r,a as i,et as a,g as o,h as s,j as c,rt as l,v as u,x as d,y as f,z as p}from"./i18n-CgBHZthI.js";import{r as m,t as h}from"./console-tOxOl8Vq.js";import{h as g,m as _}from"./useApi-CROJJdhE-B6MHm_Av.js";import{t as v}from"./vue-router-CzHm-y-x.js";import{t as y}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as b,n as x,o as S,r as C,t as w}from"./catalog-DFvIaHVS.js";import{t as T}from"./SearchableSelect-D27H0MoP.js";import{t as E}from"./EmployeeRecruitDialog-CbPAmhy7.js";var D=[`aria-label`],O={class:`employee-workbench-toolbar`},k={class:`employee-workbench-identity`},A={class:`employee-workbench-mark`,"aria-hidden":`true`},j={class:`employee-workbench-actions`},M=[`title`],N=[`disabled`],P={key:0,class:`employee-workbench-state`,role:`status`},F={key:1,class:`employee-workbench-state`,role:`alert`},I={key:2,class:`employee-workbench-state`},L={key:3,class:`employee-workbench-state`},R={key:4,class:`employee-workbench-state`},z=[`src`,`title`],B=y(e({__name:`EmployeeWorkbenchPage`,setup(e){let y=_(),B=g(),V=h(),H=r(``),U=r(null),W=r(``),G=r(!1),K=r(!1),q=s(()=>V.activePersonalSpace?.id??``),J=s(()=>String(y.params.templateId??``)),Y=s(()=>b.value.find(e=>e.id===J.value)),X=s(()=>w.value||W.value),Z=s(()=>Y.value?.managedProjects===void 0?(Y.value?.assignments??[]).filter(e=>e.status===`active`).map(e=>({value:e.personalProjectId,label:V.state?.personalProjects?.find(t=>t.project_id===e.personalProjectId)?.profile.name??e.personalProjectId})):Y.value.managedProjects.map(e=>({value:e.id,label:e.name}))),Q=0;t(q,e=>{S(e)},{immediate:!0}),t([Z,()=>y.query.project,J],()=>{let e=typeof y.query.project==`string`?y.query.project:``,t=Z.value;H.value=e||(t.some(e=>e.value===H.value)?H.value:t[0]?.value??``),!e&&H.value&&B.replace({query:{...y.query,project:H.value}})},{immediate:!0}),t([J,H,q],()=>{$()},{immediate:!0});async function $(){let e=++Q;if(U.value=null,W.value=``,!H.value||!q.value){G.value=!1;return}G.value=!0;let t=J.value,n=H.value;try{let r=await m(`/api/employee-templates/${encodeURIComponent(t)}/workspace?${new URLSearchParams({personalSpaceId:q.value,personalProjectId:n})}`),a=`/employee-workspaces/${encodeURIComponent(t)}/${encodeURIComponent(n)}/`;if(r.workbenchUrl!==a)throw Error(i(`employees.loadError`));e===Q&&(U.value=r)}catch(t){e===Q&&(W.value=C(t))}finally{e===Q&&(G.value=!1)}}function ee(e){B.replace({query:{...y.query,project:e}})}async function te(){await S(q.value),w.value||await $()}async function ne(){let e=Z.value.find(e=>e.value===H.value)?.value??Z.value[0]?.value;await B.replace({query:e?{project:e}:{}}),await $()}return(e,t)=>(c(),f(`section`,{class:`employee-workbench-view`,"aria-label":Y.value?.name??a(i)(`employees.workbench`)},[o(`header`,O,[o(`div`,k,[o(`span`,A,l(Y.value?.name.slice(0,1)??`A`),1),o(`h1`,null,[d(l(Y.value?.name??a(i)(`employees.workbench`))+` `,1),o(`span`,null,l(Y.value?.role),1)])]),o(`div`,j,[Z.value.length?(c(),f(`div`,{key:0,class:`employee-workbench-project-view`,title:a(i)(`employees.viewingHint`)},[n(T,{"model-value":H.value,"control-id":`workbench-project`,label:a(i)(`employees.viewingProject`),options:Z.value,"onUpdate:modelValue":ee},null,8,[`model-value`,`label`,`options`])],8,M)):u(``,!0),Y.value?(c(),f(`button`,{key:1,class:`employee-manage-projects`,type:`button`,disabled:!q.value,onClick:t[0]||=e=>K.value=!0},[t[3]||=o(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`,"aria-hidden":`true`},[o(`path`,{d:`M4 7h9m4 0h3M4 17h3m4 0h9`}),o(`circle`,{cx:`15`,cy:`7`,r:`2`}),o(`circle`,{cx:`9`,cy:`17`,r:`2`})],-1),d(` `+l(a(i)(`employees.manageProjects`)),1)],8,N)):u(``,!0)])]),n(E,{open:K.value,"personal-space-id":q.value,projects:a(V).state?.personalProjects??[],"template-id":J.value,onClose:t[1]||=e=>K.value=!1,onRecruited:ne},null,8,[`open`,`personal-space-id`,`projects`,`template-id`]),G.value||!Y.value&&a(x)?(c(),f(`div`,P,l(a(i)(`employees.loadingWorkbench`)),1)):X.value?(c(),f(`div`,F,[o(`p`,null,l(X.value),1),o(`button`,{class:`quiet-button`,type:`button`,onClick:te},l(a(i)(`employees.retry`)),1)])):Y.value?H.value?U.value?.runtimeStatus===`ready`?U.value?(c(),f(`iframe`,{key:U.value.workbenchUrl,src:U.value.workbenchUrl,title:`${U.value.name} · ${U.value.project.name}`,class:`employee-workbench-frame`},null,8,z)):u(``,!0):(c(),f(`div`,R,[o(`p`,null,l(a(i)(`employees.installRequired`)),1),o(`small`,null,l(a(i)(`employees.installHelp`)),1)])):(c(),f(`div`,L,[o(`h2`,null,l(a(i)(`employees.emptyWorkbench`)),1),o(`p`,null,l(a(i)(`employees.manageHint`)),1),o(`button`,{class:`quiet-button`,type:`button`,onClick:t[2]||=e=>K.value=!0},l(a(i)(`employees.manageProjects`)),1)])):(c(),f(`div`,I,[o(`p`,null,l(a(i)(`employees.unavailable`)),1),n(a(v),{to:`/project-agents`},{default:p(()=>[d(l(a(i)(`employees.backToAgents`)),1)]),_:1})]))],8,D))}}),[[`__scopeId`,`data-v-6eb3ead3`]]);export{B as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{B as e,C as t,J as n,L as r,S as i,Y as a,a as o,b as s,et as c,g as l,h as u,j as d,k as f,m as p,p as m,q as h,rt as g,s as _,u as v,v as y,x as b,y as x}from"./i18n-CgBHZthI.js";import{a as S,i as C,t as w}from"./console-tOxOl8Vq.js";import{t as T}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as E}from"./SearchableSelect-D27H0MoP.js";import{r as D,t as O}from"./identity-CFo_Uw1H.js";import{E as k,T as A}from"./model-BtnVr7fX.js";var j={class:`view-loading growth-loading`,role:`status`,"aria-live":`polite`,"aria-atomic":`true`},M={class:`growth-loading__content`},N={class:`growth-loading__label`},P=T(t({__name:`GrowthLoading`,props:{label:{}},setup(e){return(t,n)=>(d(),x(`div`,j,[l(`div`,M,[n[0]||=s(`<div class="growth-loading__chart" aria-hidden="true" data-v-f65da374><span class="growth-loading__bar growth-loading__bar--1" data-v-f65da374><i data-v-f65da374></i></span><span class="growth-loading__bar growth-loading__bar--2" data-v-f65da374><i data-v-f65da374></i></span><span class="growth-loading__bar growth-loading__bar--3" data-v-f65da374><i data-v-f65da374></i></span><span class="growth-loading__bar growth-loading__bar--4" data-v-f65da374><i data-v-f65da374></i></span><span class="growth-loading__bar growth-loading__bar--5" data-v-f65da374><i data-v-f65da374></i></span><span class="growth-loading__baseline" data-v-f65da374></span></div>`,1),l(`span`,N,g(e.label),1)])]))}}),[[`__scopeId`,`data-v-f65da374`]]),F=`testLoading`;function I(e=typeof window>`u`?``:window.location.search){return new URLSearchParams(e).get(F)===`1`}function L(e,t=500){let i=a(!1),o=0,s=null;function c(){s!==null&&(clearTimeout(s),s=null)}return r(e,e=>{if(c(),e){i.value||(o=Date.now()),i.value=!0;return}if(!i.value)return;let n=Math.max(0,t-(Date.now()-o));if(n===0){i.value=!1;return}s=setTimeout(()=>{s=null,i.value=!1},n)},{immediate:!0,flush:`sync`}),f(c),n(i)}var R={key:0,open:``,class:`knowledge-confirm-dialog vue-dialog`},z={class:`project-dialog-header`},B=[`disabled`],V={class:`knowledge-confirm-summary`},H={class:`knowledge-confirm-fields`},U={class:`knowledge-confirm-acknowledgement`},W={key:0,class:`publish-dialog-error`,role:`alert`},ee={class:`project-profile-dialog-actions`},te=[`disabled`],ne=[`disabled`],G=T(t({__name:`KnowledgeConfirmDialog`,props:{item:{},personalSpaceId:{},personalProjectId:{}},emits:[`close`,`saved`],setup(t,{emit:n}){let i=t,s=n,f=w(),p=a(``),h=a(``),b=a(``),S=a(!1),T=a(!1),E=a(``),D=a({kind:`import`,label:o(`knowledge.domain.actors.historicalRecord`)}),O=u(()=>i.item?.profileAspect?o(`knowledge.dialogs.confirm.preferenceSubject`):o(`knowledge.dialogs.confirm.knowledgeSubject`));r(()=>i.item,e=>{if(!e)return;let t=e.evidence.at(0),n=e.confirmationBasis;p.value=n?.existence_reason||t?.source_description||t?.summary||o(`knowledge.dialogs.confirm.sourceSupport`),h.value=n?.quadrant_reason||e.reasoningSummary||o(`knowledge.dialogs.confirm.quadrantReason`,{quadrant:k(e.originQuadrant),description:A(e.originQuadrant)}),D.value=n?.proposed_by??M(t),b.value=o(`knowledge.dialogs.confirm.confirmationReason`),S.value=!1,E.value=``},{immediate:!0});async function j(){let e=i.item;if(!(!e||T.value)){if(!e.classificationExplicit)return N(o(`knowledge.dialogs.confirm.errors.quadrantRequired`));if(!p.value.trim())return N(o(`knowledge.dialogs.confirm.errors.existenceRequired`));if(!h.value.trim())return N(o(`knowledge.dialogs.confirm.errors.quadrantReasonRequired`));if(!b.value.trim())return N(o(`knowledge.dialogs.confirm.errors.confirmationReasonRequired`));if(!S.value)return N(o(`knowledge.dialogs.confirm.errors.acknowledgmentRequired`));T.value=!0,E.value=``;try{await C(`/api/knowledge/${e.itemKind}/${encodeURIComponent(e.id)}`,{personalSpaceId:i.personalSpaceId,personalProjectId:i.personalProjectId,action:`confirm`,reason:b.value.trim(),confirmationStatus:`confirmed`,confirmationBasis:{existenceReason:p.value.trim(),quadrantReason:h.value.trim(),proposedBy:D.value,confirmedBy:{kind:`user`,label:o(`knowledge.domain.actors.currentUser`)},confirmedAt:new Date().toISOString()}}),f.notify(o(`knowledge.dialogs.confirm.confirmed`,{subject:O.value})),s(`saved`),s(`close`)}catch(e){E.value=e instanceof Error?e.message:o(`knowledge.dialogs.confirm.errors.failed`),f.reportError(e)}finally{T.value=!1}}}function M(e){let t={codex:`Codex`,claude:`Claude`,claude_code:`Claude Code`,cursor:`Cursor`,kiro:`Kiro`,other:o(`knowledge.domain.actors.otherAgent`)}[e?.source_application??``];return t?{kind:`agent`,label:t}:{kind:`import`,label:o(`knowledge.domain.actors.historicalRecord`)}}function N(e){E.value=e}return(n,r)=>t.item?(d(),x(`dialog`,R,[l(`form`,{class:`knowledge-confirm-dialog-shell`,onSubmit:m(j,[`prevent`])},[l(`header`,z,[l(`div`,null,[r[6]||=l(`p`,{class:`eyebrow`},`KNOWLEDGE CONFIRMATION`,-1),l(`h3`,null,g(c(o)(`knowledge.dialogs.confirm.title`,{subject:O.value})),1),l(`p`,null,g(c(o)(`knowledge.dialogs.confirm.intro`)),1)]),l(`button`,{class:`secondary-action`,type:`button`,disabled:T.value,onClick:r[0]||=e=>s(`close`)},g(c(o)(`common.actions.close`)),9,B)]),l(`section`,V,[l(`span`,null,g(t.item.profileAspect?c(o)(`knowledge.dialogs.confirm.preference`):c(o)(`knowledge.dialogs.confirm.knowledge`)),1),l(`strong`,null,g(t.item.title),1),l(`p`,null,g(t.item.body),1),l(`small`,null,g(c(o)(`knowledge.dialogs.confirm.quadrant`,{quadrant:c(k)(t.item.originQuadrant)})),1)]),l(`div`,H,[l(`label`,null,[l(`span`,null,g(c(o)(`knowledge.dialogs.confirm.whyExists`)),1),e(l(`textarea`,{"onUpdate:modelValue":r[1]||=e=>p.value=e,name:`confirmation-existence-reason`,maxlength:`4096`,rows:`3`,required:``},null,512),[[v,p.value]])]),l(`label`,null,[l(`span`,null,g(c(o)(`knowledge.dialogs.confirm.whyQuadrant`)),1),e(l(`textarea`,{"onUpdate:modelValue":r[2]||=e=>h.value=e,name:`confirmation-quadrant-reason`,maxlength:`4096`,rows:`3`,required:``},null,512),[[v,h.value]])]),l(`label`,null,[l(`span`,null,g(c(o)(`knowledge.dialogs.confirm.confirmationCopy`)),1),e(l(`textarea`,{"onUpdate:modelValue":r[3]||=e=>b.value=e,name:`confirmation-reason`,maxlength:`2000`,rows:`2`,required:``},null,512),[[v,b.value]])])]),l(`label`,U,[e(l(`input`,{"onUpdate:modelValue":r[4]||=e=>S.value=e,name:`confirmation-acknowledged`,type:`checkbox`},null,512),[[_,S.value]]),l(`span`,null,g(c(o)(`knowledge.dialogs.confirm.acknowledgment`)),1)]),E.value?(d(),x(`p`,W,g(E.value),1)):y(``,!0),l(`footer`,ee,[l(`button`,{class:`secondary-action`,type:`button`,disabled:T.value,onClick:r[5]||=e=>s(`close`)},g(c(o)(`common.actions.cancel`)),9,te),l(`button`,{class:`primary-action`,type:`submit`,disabled:T.value||!S.value},g(T.value?c(o)(`knowledge.dialogs.confirm.confirming`):c(o)(`knowledge.dialogs.confirm.confirmSubject`,{subject:O.value})),9,ne)])],32)])):y(``,!0)}}),[[`__scopeId`,`data-v-090c2668`]]),re={key:0,open:``,class:`project-dialog knowledge-edit-dialog vue-dialog`},ie={class:`project-dialog-shell`},ae={class:`project-dialog-header`},oe={class:`knowledge-edit-columns`},se={key:0},ce={key:1},le={key:2},ue={class:`knowledge-taxonomy-fields`},de={class:`knowledge-classification-warning`},fe={key:3,class:`knowledge-classification-warning`},pe={class:`knowledge-confirmation-fields`},me={class:`knowledge-taxonomy-fields`},he=[`placeholder`],ge=[`placeholder`],_e={key:4,class:`knowledge-replacement-fields`},ve={key:0},ye={class:`knowledge-replacement-fields`},be={key:5,class:`publish-dialog-error`,role:`alert`},xe={class:`knowledge-editor-actions`},Se=[`disabled`],Ce=[`disabled`],we=[`disabled`],Te=[`disabled`],Ee={key:0},De=[`disabled`],Oe={key:1},ke={key:0},Ae=[`disabled`],K=t({__name:`KnowledgeEditDialog`,props:{item:{},personalSpaceId:{},personalProjectId:{},projects:{},replacementItems:{default:()=>[]}},emits:[`close`,`saved`],setup(t,{emit:n}){let s=t,f=n,_=w(),T=a(!1),A=a(``),j=a(``),M=a(``),N=a(`global`),P=a(``),F=a(``),I=a(``),L=a(``),R=h({name:``,summary:``,fact:``,currentQuadrant:``,confirmationStatus:`pending`,existenceReason:``,quadrantReason:``,proposedByKind:`agent`,proposedByLabel:``,confirmedByKind:`user`,confirmedByLabel:``,profileAspect:`none`,inheritanceMode:`local_only`,reason:``}),z=u(()=>s.item?.itemKind===`relationship`),B=u(()=>!!s.item?.invalidAt),V=u(()=>!!s.item?.raw.profile_aspect),H=u(()=>s.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:`#${O(e.project_id,26)}`,search:D(e.project_id)}))),U=u(()=>[`known_known`,`known_unknown`,`unknown_known`,`unknown_unknown`].map(e=>({value:e,label:o(`knowledge.dialogs.edit.quadrants.${e}`)}))),W=u(()=>[{value:`pending`,label:o(`knowledge.dialogs.edit.confirmationStates.pending`)},{value:`confirmed`,label:o(`knowledge.dialogs.edit.confirmationStates.confirmed`)}]),ee=u(()=>[{value:`local_only`,label:o(`knowledge.dialogs.edit.inheritance.local`)},{value:`descendants`,label:o(`knowledge.dialogs.edit.inheritance.descendants`)},{value:`selected_projects`,label:o(`knowledge.dialogs.edit.inheritance.selected`)}]),te=u(()=>[`user`,`agent`,`authoritative_source`,`import`].map(e=>({value:e,label:o(`knowledge.domain.actors.${e}`)}))),ne=u(()=>[`user`,`authoritative_source`].map(e=>({value:e,label:o(`knowledge.domain.actors.${e}`)}))),G=u(()=>[{value:`none`,label:o(`knowledge.dialogs.edit.profiles.none`)},...[`taste`,`personality`,`judgment_preference`].map(e=>({value:e,label:o(`knowledge.domain.profiles.${e}`)}))]),K=u(()=>[{value:`global`,label:o(`knowledge.dialogs.edit.scopes.global`)},{value:`project`,label:o(`knowledge.dialogs.edit.scopes.project`),disabled:s.projects.length===0}]),je=u(()=>[{value:``,label:o(`knowledge.dialogs.edit.replacementNone`)},...s.replacementItems.filter(e=>!e.invalidAt&&(e.itemKind!==s.item?.itemKind||e.id!==s.item?.id)).map(e=>({value:Z(e.itemKind,e.id),label:e.title,meta:e.type,search:`${e.body} ${e.id}`}))]),q=u(()=>{if(!L.value)return null;try{let[e,t]=JSON.parse(L.value);return e!==`entity`&&e!==`relationship`||typeof t!=`string`?null:{itemKind:e,id:t}}catch{return null}}),J=u(()=>s.item?.assignments.at(0)?.project_id??s.item?.evidence.find(({personal_project_id:e})=>e)?.personal_project_id??s.personalProjectId??null);r(()=>s.item,e=>{if(!e)return;let t=e.raw;R.name=e.itemKind===`entity`?t.name:``,R.summary=e.itemKind===`entity`?t.summary??``:``,R.fact=e.itemKind===`relationship`?t.fact??``:``;let n=e.confirmationBasis,r=e.evidence.at(0);R.currentQuadrant=e.classificationExplicit?t.current_quadrant??t.origin_quadrant??`known_known`:``,R.confirmationStatus=e.confirmationStatus===`confirmed`?`confirmed`:`pending`,R.existenceReason=n?.existence_reason??r?.source_description??r?.summary??``,R.quadrantReason=n?.quadrant_reason??t.reasoning_summary??``,R.proposedByKind=n?.proposed_by.kind??`agent`,R.proposedByLabel=n?.proposed_by.label??``,R.confirmedByKind=n?.confirmed_by?.kind??`user`,R.confirmedByLabel=n?.confirmed_by?.label??``,R.profileAspect=t.profile_aspect??`none`,R.inheritanceMode=t.profile_aspect?`local_only`:t.inheritance_mode??`local_only`,I.value=t.inherited_project_ids?.at(0)??s.projects[0]?.project_id??``,R.reason=``,j.value=``,M.value=J.value??s.projects[0]?.project_id??``,N.value=t.preference_scope??`global`,P.value=t.preference_project_id??s.projects[0]?.project_id??``,F.value=``,L.value=e.replacedByItemId&&e.replacedByItemKind?Z(e.replacedByItemKind,e.replacedByItemId):``,A.value=``},{immediate:!0});async function Me(){let e=s.item;if(!e)return;if(!R.reason.trim())return $(o(`knowledge.dialogs.edit.errors.reasonRequired`));if(!z.value&&!R.name.trim())return $(o(`knowledge.dialogs.edit.errors.nameRequired`));if(z.value&&!R.fact.trim())return $(o(`knowledge.dialogs.edit.errors.factRequired`));if(!R.currentQuadrant||!R.confirmationStatus)return $(o(`knowledge.dialogs.edit.errors.classificationRequired`));if(!R.existenceReason.trim())return $(o(`knowledge.dialogs.edit.errors.existenceRequired`));if(!R.quadrantReason.trim())return $(o(`knowledge.dialogs.edit.errors.quadrantRequired`));if(!R.proposedByKind)return $(o(`knowledge.dialogs.edit.errors.proposerRequired`));if(R.confirmationStatus===`confirmed`&&!R.confirmedByKind)return $(o(`knowledge.dialogs.edit.errors.confirmerRequired`));if(R.inheritanceMode===`selected_projects`&&!I.value)return $(o(`knowledge.dialogs.edit.errors.inheritedProjectsRequired`));let t={...X(`update`),confirmationStatus:R.confirmationStatus,confirmationBasis:{existenceReason:R.existenceReason.trim(),quadrantReason:R.quadrantReason.trim(),proposedBy:{kind:R.proposedByKind,label:R.proposedByLabel.trim()||null},confirmedBy:R.confirmationStatus===`confirmed`?{kind:R.confirmedByKind,label:R.confirmedByLabel.trim()||null}:null,confirmedAt:R.confirmationStatus===`confirmed`?new Date().toISOString():null},profileAspect:R.profileAspect,inheritanceMode:R.profileAspect===`none`?R.inheritanceMode:`local_only`,inheritedProjectIds:R.profileAspect===`none`&&R.inheritanceMode===`selected_projects`?[I.value]:[],reasoningSummary:R.quadrantReason.trim()};s.item.classificationExplicit?t.currentQuadrant=R.currentQuadrant:t.originQuadrant=R.currentQuadrant,z.value?t.fact=R.fact.trim():(t.name=R.name.trim(),t.summary=R.summary.trim()),await Q(async()=>{await C(`/api/knowledge/${e.itemKind}/${encodeURIComponent(e.id)}`,t),_.notify(o(`knowledge.dialogs.edit.notices.corrected`))})}async function Y(e){let t=s.item;if(t){if(!R.reason.trim())return $(o(e===`invalidate`?`knowledge.dialogs.edit.errors.statusReasonRequired`:`knowledge.dialogs.edit.errors.restoreReasonRequired`));await Q(async()=>{let n=X(e);e===`invalidate`&&q.value&&(n.replacementItemId=q.value.id,n.replacementItemKind=q.value.itemKind),await C(`/api/knowledge/${t.itemKind}/${encodeURIComponent(t.id)}`,n),_.notify(e===`invalidate`?q.value?o(`knowledge.dialogs.edit.notices.invalidatedWithReplacement`):o(`knowledge.dialogs.edit.notices.invalidated`):o(`knowledge.dialogs.edit.notices.restored`))})}}async function Ne(){let e=s.item,t=q.value;if(!(!e||!B.value)){if(!t)return $(o(`knowledge.dialogs.edit.errors.replacementRequired`));if(!R.reason.trim())return $(o(`knowledge.dialogs.edit.errors.replacementReasonRequired`));await Q(async()=>{await C(`/api/knowledge/${e.itemKind}/${encodeURIComponent(e.id)}`,{...X(`link_replacement`),replacementItemId:t.id,replacementItemKind:t.itemKind}),_.notify(o(`knowledge.dialogs.edit.notices.replacementSaved`))})}}async function Pe(){let e=s.item;if(e){if(!M.value)return $(o(`knowledge.dialogs.edit.errors.projectRequired`));if(!j.value.trim())return $(o(`knowledge.dialogs.edit.errors.assignmentReasonRequired`));if(M.value===J.value)return $(o(`knowledge.dialogs.edit.errors.alreadyAssigned`));await Q(async()=>{await S(`/api/knowledge/${e.itemKind}/${encodeURIComponent(e.id)}/assignment`,{personalSpaceId:s.personalSpaceId,targetProjectId:M.value,reason:j.value.trim()}),_.notify(o(`knowledge.dialogs.edit.notices.assignmentChanged`))})}}async function Fe(){let e=s.item;if(!e)return;let t=N.value===`project`?P.value:null;if(N.value===`project`&&!t)return $(o(`knowledge.dialogs.edit.errors.preferenceProjectRequired`));if(!F.value.trim())return $(o(`knowledge.dialogs.edit.errors.preferenceReasonRequired`));await Q(async()=>{await S(`/api/knowledge/${e.itemKind}/${encodeURIComponent(e.id)}/preference-scope`,{personalSpaceId:s.personalSpaceId,scope:N.value,projectId:t,reason:F.value.trim()}),_.notify(N.value===`global`?o(`knowledge.dialogs.edit.notices.preferenceGlobal`):o(`knowledge.dialogs.edit.notices.preferenceProject`))})}function X(e){return{personalSpaceId:s.personalSpaceId,personalProjectId:s.personalProjectId,action:e,reason:R.reason.trim()}}function Z(e,t){return JSON.stringify([e,t])}async function Q(e){T.value=!0,A.value=``;try{await e(),f(`close`),f(`saved`)}catch(e){A.value=e instanceof Error?e.message:o(`knowledge.dialogs.edit.errors.saveFailed`),_.reportError(e)}finally{T.value=!1}}function $(e){A.value=e}return(n,r)=>t.item?(d(),x(`dialog`,re,[l(`div`,ie,[l(`header`,ae,[l(`div`,null,[r[24]||=l(`p`,{class:`eyebrow`},`PERSONAL KNOWLEDGE`,-1),l(`h3`,null,g(B.value?c(o)(`knowledge.dialogs.edit.titleRestore`):c(o)(`knowledge.dialogs.edit.titleCorrect`)),1),l(`p`,null,g(c(o)(`knowledge.dialogs.edit.intro`)),1)]),l(`button`,{class:`secondary-action`,type:`button`,onClick:r[0]||=e=>f(`close`)},g(c(o)(`common.actions.close`)),1)]),l(`div`,oe,[l(`section`,null,[l(`h4`,null,g(c(o)(`knowledge.dialogs.edit.currentContent`)),1),l(`form`,{class:`knowledge-editor-form`,onSubmit:m(Me,[`prevent`])},[z.value?y(``,!0):(d(),x(`label`,se,[b(g(c(o)(`knowledge.dialogs.edit.name`)),1),e(l(`input`,{"onUpdate:modelValue":r[1]||=e=>R.name=e,maxlength:`512`},null,512),[[v,R.name]])])),z.value?(d(),x(`label`,le,[b(g(c(o)(`knowledge.dialogs.edit.fact`)),1),e(l(`textarea`,{"onUpdate:modelValue":r[3]||=e=>R.fact=e,maxlength:`8192`,rows:`5`},null,512),[[v,R.fact]])])):(d(),x(`label`,ce,[b(g(c(o)(`knowledge.dialogs.edit.description`)),1),e(l(`textarea`,{"onUpdate:modelValue":r[2]||=e=>R.summary=e,maxlength:`4096`,rows:`5`},null,512),[[v,R.summary]])])),l(`div`,ue,[l(`label`,null,[b(g(c(o)(`knowledge.dialogs.edit.classification`))+` `,1),i(E,{modelValue:R.currentQuadrant,"onUpdate:modelValue":r[4]||=e=>R.currentQuadrant=e,options:U.value,label:c(o)(`knowledge.dialogs.edit.classification`)},null,8,[`modelValue`,`options`,`label`])]),l(`label`,null,[b(g(c(o)(`knowledge.dialogs.edit.confirmationStatus`))+` `,1),i(E,{modelValue:R.confirmationStatus,"onUpdate:modelValue":r[5]||=e=>R.confirmationStatus=e,options:W.value,label:c(o)(`knowledge.dialogs.edit.confirmationStatus`)},null,8,[`modelValue`,`options`,`label`])]),l(`label`,null,[b(g(c(o)(`knowledge.dialogs.edit.preferenceDimension`))+` `,1),i(E,{modelValue:R.profileAspect,"onUpdate:modelValue":r[6]||=e=>R.profileAspect=e,options:G.value,label:c(o)(`knowledge.dialogs.edit.preferenceDimension`)},null,8,[`modelValue`,`options`,`label`])])]),l(`p`,de,g(c(o)(`knowledge.dialogs.edit.originQuadrant`,{quadrant:c(k)(t.item.originQuadrant)})),1),t.item.classificationExplicit?y(``,!0):(d(),x(`p`,fe,g(c(o)(`knowledge.dialogs.edit.missingQuadrant`)),1)),l(`fieldset`,pe,[l(`legend`,null,g(c(o)(`knowledge.dialogs.edit.basis`)),1),l(`label`,null,[b(g(c(o)(`knowledge.dialogs.edit.whyExists`))+` `,1),e(l(`textarea`,{"onUpdate:modelValue":r[7]||=e=>R.existenceReason=e,maxlength:`4096`,rows:`3`,required:``},null,512),[[v,R.existenceReason]])]),l(`label`,null,[b(g(c(o)(`knowledge.dialogs.edit.whyQuadrant`))+` `,1),e(l(`textarea`,{"onUpdate:modelValue":r[8]||=e=>R.quadrantReason=e,maxlength:`4096`,rows:`3`,required:``},null,512),[[v,R.quadrantReason]])]),l(`div`,me,[l(`label`,null,[b(g(c(o)(`knowledge.dialogs.edit.proposer`))+` `,1),i(E,{modelValue:R.proposedByKind,"onUpdate:modelValue":r[9]||=e=>R.proposedByKind=e,options:te.value,label:c(o)(`knowledge.dialogs.edit.proposer`)},null,8,[`modelValue`,`options`,`label`])]),l(`label`,null,[b(g(c(o)(`knowledge.dialogs.edit.proposerDescription`))+` `,1),e(l(`input`,{"onUpdate:modelValue":r[10]||=e=>R.proposedByLabel=e,maxlength:`160`,placeholder:c(o)(`knowledge.dialogs.edit.proposerPlaceholder`)},null,8,he),[[v,R.proposedByLabel]])]),R.confirmationStatus===`confirmed`?(d(),x(p,{key:0},[l(`label`,null,[b(g(c(o)(`knowledge.dialogs.edit.confirmer`))+` `,1),i(E,{modelValue:R.confirmedByKind,"onUpdate:modelValue":r[11]||=e=>R.confirmedByKind=e,options:ne.value,label:c(o)(`knowledge.dialogs.edit.confirmer`)},null,8,[`modelValue`,`options`,`label`])]),l(`label`,null,[b(g(c(o)(`knowledge.dialogs.edit.confirmerDescription`))+` `,1),e(l(`input`,{"onUpdate:modelValue":r[12]||=e=>R.confirmedByLabel=e,maxlength:`160`,placeholder:c(o)(`knowledge.dialogs.edit.confirmerPlaceholder`)},null,8,ge),[[v,R.confirmedByLabel]])])],64)):y(``,!0)]),l(`p`,null,g(c(o)(`knowledge.dialogs.edit.agentConfirmedBoundary`)),1)]),V.value?y(``,!0):(d(),x(`fieldset`,_e,[l(`legend`,null,g(c(o)(`knowledge.dialogs.edit.crossProjectInheritance`)),1),l(`label`,null,[b(g(c(o)(`knowledge.dialogs.edit.inheritanceScope`))+` `,1),i(E,{modelValue:R.inheritanceMode,"onUpdate:modelValue":r[13]||=e=>R.inheritanceMode=e,options:ee.value,label:c(o)(`knowledge.dialogs.edit.inheritanceScope`)},null,8,[`modelValue`,`options`,`label`])]),R.inheritanceMode===`selected_projects`?(d(),x(`label`,ve,[b(g(c(o)(`knowledge.dialogs.edit.inheritedProjects`))+` `,1),i(E,{modelValue:I.value,"onUpdate:modelValue":r[14]||=e=>I.value=e,options:H.value,label:c(o)(`knowledge.dialogs.edit.inheritedProjects`),searchable:``},null,8,[`modelValue`,`options`,`label`])])):y(``,!0),l(`p`,null,g(c(o)(`knowledge.dialogs.edit.inheritanceBoundary`)),1)])),l(`fieldset`,ye,[l(`legend`,null,g(B.value?c(o)(`knowledge.dialogs.edit.replacement`):c(o)(`knowledge.dialogs.edit.optionalReplacement`)),1),l(`label`,null,[b(g(B.value?c(o)(`knowledge.dialogs.edit.historicalReplacement`):c(o)(`knowledge.dialogs.edit.activeReplacement`))+` `,1),i(E,{modelValue:L.value,"onUpdate:modelValue":r[15]||=e=>L.value=e,options:je.value,label:c(o)(`knowledge.dialogs.edit.replacement`),searchable:``},null,8,[`modelValue`,`options`,`label`])]),l(`p`,null,g(c(o)(`knowledge.dialogs.edit.replacementBoundary`)),1)]),l(`label`,null,[b(g(c(o)(`knowledge.dialogs.edit.correctionReason`)),1),e(l(`textarea`,{"onUpdate:modelValue":r[16]||=e=>R.reason=e,maxlength:`2000`,rows:`3`,required:``},null,512),[[v,R.reason]])]),A.value?(d(),x(`p`,be,g(A.value),1)):y(``,!0),l(`div`,xe,[B.value?(d(),x(p,{key:1},[l(`button`,{class:`secondary-action`,type:`button`,disabled:T.value,onClick:r[18]||=e=>Y(`restore`)},g(c(o)(`knowledge.dialogs.edit.restore`)),9,Ce),l(`button`,{class:`secondary-action`,type:`button`,disabled:T.value,onClick:Ne},g(c(o)(`knowledge.dialogs.edit.saveReplacement`)),9,we)],64)):(d(),x(`button`,{key:0,class:`secondary-action`,type:`button`,disabled:T.value,onClick:r[17]||=e=>Y(`invalidate`)},g(c(o)(`knowledge.dialogs.edit.invalidate`)),9,Se)),l(`button`,{class:`primary-action`,type:`submit`,disabled:T.value},g(T.value?c(o)(`knowledge.dialogs.edit.saving`):R.confirmationStatus===`confirmed`?c(o)(`knowledge.dialogs.edit.saveConfirmed`):c(o)(`knowledge.dialogs.edit.savePending`)),9,Te)])],32)]),V.value?(d(),x(`section`,Oe,[l(`h4`,null,g(c(o)(`knowledge.dialogs.edit.preferenceScope`)),1),l(`p`,null,g(c(o)(`knowledge.dialogs.edit.preferenceScopeCopy`)),1),l(`form`,{class:`knowledge-editor-form`,onSubmit:m(Fe,[`prevent`])},[l(`label`,null,[b(g(c(o)(`knowledge.dialogs.edit.effectiveScope`))+` `,1),i(E,{modelValue:N.value,"onUpdate:modelValue":r[21]||=e=>N.value=e,options:K.value,label:c(o)(`knowledge.dialogs.edit.preferenceScope`)},null,8,[`modelValue`,`options`,`label`])]),N.value===`project`?(d(),x(`label`,ke,[b(g(c(o)(`knowledge.dialogs.edit.personalProject`))+` `,1),i(E,{modelValue:P.value,"onUpdate:modelValue":r[22]||=e=>P.value=e,options:H.value,label:c(o)(`knowledge.dialogs.edit.personalProject`),searchable:``},null,8,[`modelValue`,`options`,`label`])])):y(``,!0),l(`label`,null,[b(g(c(o)(`knowledge.dialogs.edit.assignmentReason`)),1),e(l(`textarea`,{"onUpdate:modelValue":r[23]||=e=>F.value=e,maxlength:`2000`,rows:`3`,required:``},null,512),[[v,F.value]])]),l(`button`,{class:`primary-action`,type:`submit`,disabled:T.value},g(c(o)(`knowledge.dialogs.edit.saveScope`)),9,Ae)],32)])):(d(),x(`section`,Ee,[l(`h4`,null,g(c(o)(`knowledge.dialogs.edit.projectOwnership`)),1),l(`p`,null,g(c(o)(`knowledge.dialogs.edit.ownershipCopy`)),1),l(`form`,{class:`knowledge-editor-form`,onSubmit:m(Pe,[`prevent`])},[l(`label`,null,[b(g(c(o)(`knowledge.dialogs.edit.targetProject`))+` `,1),i(E,{modelValue:M.value,"onUpdate:modelValue":r[19]||=e=>M.value=e,options:H.value,label:c(o)(`knowledge.dialogs.edit.targetProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`])]),l(`label`,null,[b(g(c(o)(`knowledge.dialogs.edit.assignmentReason`)),1),e(l(`textarea`,{"onUpdate:modelValue":r[20]||=e=>j.value=e,maxlength:`2000`,rows:`3`,required:``},null,512),[[v,j.value]])]),l(`button`,{class:`primary-action`,type:`submit`,disabled:T.value||t.projects.length===0},g(c(o)(`knowledge.dialogs.edit.adjustOwnership`)),9,De)],32)]))])])])):y(``,!0)}});export{P as a,L as i,G as n,I as r,K as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,L as t,N as n,O as r,P as i,Y as a,a as o,et as s,g as c,h as l,j as u,k as d,m as f,nt as p,rt as m,tt as h,v as g,y as _}from"./i18n-CgBHZthI.js";import{t as v}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{C as y,D as b,E as x,O as S,S as C,T as w,_ as T,a as E,c as D,d as O,f as k,g as A,i as j,p as M,u as N,w as P}from"./model-BtnVr7fX.js";import{a as F,c as I,i as L,n as ee,s as te}from"./conversation-launcher-settings-DuFSpPAo.js";var R=[`aria-label`],z=[`data-virtual-index`],B={class:`virtual-directory-list__content`},V={class:`virtual-directory-list__watermark`,"aria-hidden":`true`},H=[`aria-label`],U=v(e({__name:`VirtualDirectoryList`,props:{items:{},rowHeight:{},label:{},minWidth:{default:`100%`},overscan:{default:8},resetKey:{default:void 0},activeIndex:{default:-1},watermarkPrefix:{default:`#`},itemKey:{type:Function,default:void 0}},setup(e,{expose:v}){let y=e,b=a(null),x=a(null),S=a(0),C=a(640),w=a(0),T=null,E=l(()=>y.items.length),D=l(()=>Math.max(3,String(E.value).length)),O=l(()=>E.value?Math.min(E.value,Math.floor(S.value/y.rowHeight)+1):0),k=l(()=>{let e=Math.max(0,Math.floor(S.value/y.rowHeight)-y.overscan),t=Math.ceil(C.value/y.rowHeight)+y.overscan*2;return{start:e,end:Math.min(E.value,e+t)}}),A=l(()=>Array.from({length:k.value.end-k.value.start},(e,t)=>k.value.start+t)),j=l(()=>({height:`${E.value*y.rowHeight}px`,minWidth:y.minWidth})),M=l(()=>({minWidth:y.minWidth}));t([b,x],([e,t])=>{T?.disconnect(),T=null,e&&(P(),typeof ResizeObserver==`function`&&(T=new ResizeObserver(P),T.observe(e),t&&T.observe(t)))},{flush:`post`}),t(()=>y.resetKey,async()=>{await r(),I()},{flush:`post`}),t(E,async()=>{await r();let e=b.value;if(!e)return;let t=Math.max(0,e.scrollHeight-e.clientHeight);e.scrollTop>t&&(e.scrollTop=t),P()}),t([b,()=>y.activeIndex],async([e,t])=>{!e||t<0||t>=E.value||(await r(),L(t))},{flush:`post`}),d(()=>T?.disconnect());function N(e){return String(e).padStart(D.value,`0`)}function P(){let e=b.value;e&&(S.value=e.scrollTop,C.value=e.clientHeight||C.value,w.value=x.value?.offsetHeight??0)}function F(e){let t=e.currentTarget;S.value=t.scrollTop}function I(){let e=b.value;e&&(e.scrollTop=0,S.value=0)}function L(e){let t=b.value;if(!t||e<0||e>=E.value)return;let n=e*y.rowHeight,r=n+y.rowHeight,i=t.scrollTop,a=i+t.clientHeight-w.value;n<i?t.scrollTop=n:t.clientHeight&&r>a&&(t.scrollTop=r-t.clientHeight+w.value),S.value=t.scrollTop}return v({scrollToStart:I,scrollIndexIntoView:L}),(t,r)=>(u(),_(`section`,{class:`virtual-directory-list`,"aria-label":e.label},[c(`div`,{ref_key:`scroller`,ref:b,class:`virtual-directory-list__scroller`,onScrollPassive:F},[t.$slots.header?(u(),_(`div`,{key:0,ref_key:`header`,ref:x,class:`virtual-directory-list__header`,style:p(M.value)},[i(t.$slots,`header`,{},void 0,!0)],4)):g(``,!0),c(`div`,{class:`virtual-directory-list__canvas`,style:p(j.value)},[(u(!0),_(f,null,n(A.value,n=>(u(),_(`div`,{key:e.itemKey?.(e.items[n],n)??n,class:h([`virtual-directory-list__row`,{"is-active":n===e.activeIndex}]),"data-virtual-index":n,style:p({height:`${e.rowHeight}px`,transform:`translateY(${n*e.rowHeight}px)`})},[c(`div`,B,[i(t.$slots,`default`,{item:e.items[n],index:n,formattedIndex:N(n+1)},void 0,!0)]),c(`span`,V,m(e.watermarkPrefix)+m(N(n+1)),1)],14,z))),128))],4),!E.value&&t.$slots.empty?(u(),_(`div`,{key:1,class:`virtual-directory-list__empty`,style:p(M.value)},[i(t.$slots,`empty`,{},void 0,!0)],4)):g(``,!0),t.$slots.footer?(u(),_(`div`,{key:2,class:`virtual-directory-list__footer`,style:p(M.value)},[i(t.$slots,`footer`,{},void 0,!0)],4)):g(``,!0)],544),E.value?(u(),_(`output`,{key:0,class:`virtual-directory-list__position`,"aria-label":s(o)(`common.counts.listPosition`,{current:O.value,total:E.value})},[c(`strong`,null,m(N(O.value)),1),c(`span`,null,`/ `+m(N(E.value)),1)],8,H)):g(``,!0)],8,R))}}),[[`__scopeId`,`data-v-dd2afd66`]]),ne={class:`graph-inspector`},re={class:`eyebrow`},ie={class:`inspector-identity`},ae={class:`muted`},oe={key:0,class:`inspector-project-material`},se={key:3,class:`inspector-replacement`},ce={class:`inspector-replacement-heading`},le={key:1},ue={key:2},de={class:`inspector-meta`},fe={key:0},pe={key:1},me={key:2},he={key:3},ge={key:4},_e={key:5},ve={key:6},ye={key:7},be={key:8},xe={key:9},Se={key:10},Ce={key:12},we={class:`inspector-subtitle`},Te={key:0,class:`inspector-meta inspector-confirmation-basis`},Ee={key:0},De={key:1,class:`inspector-reasoning`},Oe={class:`inspector-subtitle`},ke={class:`inspector-meta inspector-attributes`},Ae={class:`inspector-subtitle`},je={class:`inspector-reasoning`},Me={key:7,class:`inspector-actions`},Ne={class:`inspector-subtitle`},Pe={class:`inspector-relations`},Fe={class:`relation-type`},Ie={class:`relation-target`},Le={class:`inspector-subtitle`},Re={class:`inspector-evidence`},ze={key:0,class:`evidence-excerpt`},Be={key:1,class:`evidence-source-actions`},Ve=[`onClick`],He=[`href`,`title`],Ue={class:`inspector-subtitle`},We={class:`inspector-history`},Ge={class:`inspector-subtitle`},Ke={class:`inspector-history inspector-audit-history`},qe={key:0},Je={class:`eyebrow`},Ye={class:`inspector-placeholder`},W=e({__name:`KnowledgeInspector`,props:{item:{},graph:{},editable:{type:Boolean},currentProjectId:{},canPublishProject:{type:Boolean},canManageProject:{type:Boolean},mode:{},conversationLaunchers:{}},emits:[`confirm`,`edit`,`createProject`,`openProject`,`publishProject`,`openDirectory`,`openGraph`,`openReplacement`,`manageProject`],setup(e,{emit:t}){let r=e,i=t,d=l(()=>r.item?.itemKind===`entity`?r.item.raw:null),p=l(()=>r.item?.itemKind===`relationship`?r.item.raw:null),v=l(()=>new Map(r.graph?.nodes.map(e=>[e.id,e.name])??[])),R=l(()=>!d.value||!r.graph?[]:r.graph.edges.filter(e=>D(e.source)===d.value?.id||D(e.target)===d.value?.id).slice(0,12)),z=l(()=>Object.entries(r.item?.raw.attributes??{}).filter(([,e])=>e!=null&&e!==``)),B=l(()=>k(r.item)),V=l(()=>C(r.item)),H=l(()=>r.item?.itemKind===`entity`&&[`PersonalProject`,`RelatedPersonalProject`].includes(r.item.type)),U=l(()=>r.editable&&r.item?.itemKind===`entity`&&!r.item.invalidAt&&!r.item.profileAspect&&!B.value),W=l(()=>r.editable&&!B.value),G=l(()=>r.editable&&!B.value&&!r.item?.invalidAt&&!!r.item?.classificationExplicit&&q.value===`pending`),K=l(()=>B.value&&r.canManageProject&&r.item?.type!==`ExternalKnowledgeSource`),Xe=l(()=>U.value||W.value||G.value||K.value||!!r.mode||H.value&&!!V.value&&V.value!==r.currentProjectId||H.value&&!!V.value&&r.canPublishProject),q=l(()=>r.item?T(r.item):`unclassified`),Ze=l(()=>r.item?j(r.item):``),J=l(()=>r.item?.confirmationBasis??null),Y=a(``),Qe=ee(),X=l(()=>r.conversationLaunchers??Qe.value),Z=l(()=>{let e=r.item?.replacedByItemId,t=r.item?.replacedByItemKind;return!e||!t?null:A(r.graph).find(n=>n.id===e&&n.itemKind===t)??null}),$e=l(()=>{let e=r.item;return e?.humanEdited?e.humanChangeStatus===`unseen`?o(`knowledge.workspace.inspector.humanReview.unseen`):e.humanChangeStatus===`viewed`?o(`knowledge.workspace.inspector.humanReview.viewed`):o(`knowledge.workspace.inspector.humanReview.reviewed`):``});function et(e){return typeof e==`string`?e:JSON.stringify(e)}function Q(e){return`${Math.round(e*100)}%`}function tt(e){return e.inheritanceMode===`descendants`?o(`knowledge.workspace.inspector.inheritance.descendants`):e.inheritanceMode===`selected_projects`?o(`knowledge.workspace.inspector.inheritance.selected`,{count:e.inheritedProjectIds.length}):o(`knowledge.workspace.inspector.inheritance.local`)}function nt(e){if(e.preferenceScope!==`project`||!e.preferenceProjectId)return o(`knowledge.workspace.inspector.personalGlobal`);let t=e.preferenceProjectId,n=r.graph?.nodes.find(e=>e.attributes?.projectId===t)?.name;return o(`knowledge.workspace.inspector.selectedProject`,{project:n&&n.toLocaleLowerCase()!==t.toLocaleLowerCase()?`${n} (${t})`:t})}function rt(e){return I(e,X.value)}function it(e){return te(e,X.value)}function $(e,t){return String(e.id??e.session_id??t)}async function at(e,t){await L(e)&&(Y.value=$(e,t))}return(t,r)=>(u(),_(`aside`,ne,[e.item?(u(),_(f,{key:0},[c(`p`,re,m(B.value?`PROJECT MATERIAL`:e.item.itemKind===`entity`?`ENTITY`:`RELATIONSHIP`),1),c(`h3`,null,m(e.item.itemKind===`entity`?e.item.title:p.value?.type),1),c(`div`,ie,[c(`span`,null,m(B.value?s(o)(`knowledge.workspace.inspector.ids.projection`):e.item.itemKind===`entity`?s(o)(`knowledge.workspace.inspector.ids.node`):s(o)(`knowledge.workspace.inspector.ids.relationship`)),1),c(`code`,null,m(e.item.id),1)]),c(`p`,ae,m(e.item.body),1),B.value?(u(),_(`section`,oe,[c(`div`,null,[c(`span`,null,m(s(o)(`knowledge.workspace.inspector.ownership`)),1),c(`strong`,null,m(s(P)(e.item)),1)]),c(`p`,null,m(s(o)(`knowledge.workspace.inspector.projectionCopy`)),1)])):(u(),_(`section`,{key:1,class:h([`inspector-classification`,`state-${q.value}`])},[c(`div`,null,[c(`span`,null,m(s(o)(`knowledge.workspace.inspector.currentJudgment`)),1),c(`strong`,null,m(s(b)(e.item)),1)]),c(`p`,null,m(Ze.value),1)],2)),!B.value&&e.item.humanEdited?(u(),_(`section`,{key:2,class:h([`inspector-human-change`,`state-${e.item.humanChangeStatus}`])},[c(`div`,null,[c(`span`,null,m(s(o)(`knowledge.workspace.inspector.humanReviewTitle`)),1),c(`strong`,null,m(s(O)(e.item.humanChangeStatus)),1)]),c(`p`,null,m($e.value),1),c(`small`,null,m(s(o)(`knowledge.workspace.inspector.humanVersion`,{version:e.item.humanChangeVersion})),1)],2)):g(``,!0),!B.value&&e.item.invalidAt?(u(),_(`section`,se,[c(`div`,ce,[c(`span`,null,m(s(o)(`knowledge.workspace.inspector.replacement`)),1),c(`strong`,null,m(Z.value?s(o)(`knowledge.workspace.inspector.replacedBy`):s(o)(`knowledge.workspace.inspector.noReplacement`)),1)]),Z.value?(u(),_(`button`,{key:0,class:`inspector-replacement-link`,type:`button`,onClick:r[0]||=e=>i(`openReplacement`,Z.value)},[c(`span`,null,[c(`strong`,null,m(Z.value.title),1),c(`small`,null,m(Z.value.body),1)]),c(`b`,null,m(s(o)(`knowledge.workspace.inspector.viewReplacement`)),1)])):e.item.replacedByItemId?(u(),_(`p`,le,m(s(o)(`knowledge.workspace.inspector.replacementOutOfScope`)),1)):(u(),_(`p`,ue,m(s(o)(`knowledge.workspace.inspector.missingReplacement`)),1))])):g(``,!0),c(`dl`,de,[c(`div`,null,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.fields.type`)),1),c(`dd`,null,m(e.item.type),1)]),B.value?g(``,!0):(u(),_(`div`,fe,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.fields.originQuadrant`)),1),c(`dd`,null,m(s(x)(e.item.originQuadrant)),1)])),B.value?g(``,!0):(u(),_(`div`,pe,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.fields.currentQuadrant`)),1),c(`dd`,null,m(s(x)(e.item.currentQuadrant)),1)])),B.value?g(``,!0):(u(),_(`div`,me,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.fields.quadrantExplanation`)),1),c(`dd`,null,m(s(w)(e.item.originQuadrant)),1)])),B.value?g(``,!0):(u(),_(`div`,he,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.fields.confirmationStatus`)),1),c(`dd`,null,m(s(b)(e.item)),1)])),B.value?g(``,!0):(u(),_(`div`,ge,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.fields.confidence`)),1),c(`dd`,null,m(Q(e.item.confidenceScore)),1)])),B.value?g(``,!0):(u(),_(`div`,_e,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.fields.utility`)),1),c(`dd`,null,m(Q(e.item.utilityScore)),1)])),B.value?g(``,!0):(u(),_(`div`,ve,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.fields.materialUse`)),1),c(`dd`,null,m(s(o)(`knowledge.workspace.inspector.useCount`,{uses:e.item.qualifiedUseCount,tasks:e.item.distinctTaskCount})),1)])),B.value?g(``,!0):(u(),_(`div`,ye,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.fields.recentUse`)),1),c(`dd`,null,m(s(N)(e.item.lastUsedAt)),1)])),!B.value&&!e.item.profileAspect?(u(),_(`div`,be,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.fields.inheritance`)),1),c(`dd`,null,m(tt(e.item)),1)])):g(``,!0),!B.value&&e.item.profileAspect?(u(),_(`div`,xe,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.fields.preference`)),1),c(`dd`,null,m(s(y)(e.item.profileAspect)),1)])):g(``,!0),!B.value&&e.item.profileAspect?(u(),_(`div`,Se,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.fields.effectiveScope`)),1),c(`dd`,null,m(nt(e.item)),1)])):g(``,!0),p.value?(u(),_(f,{key:11},[c(`div`,null,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.fields.source`)),1),c(`dd`,null,m(v.value.get(s(D)(p.value.source))??p.value.source_name??s(D)(p.value.source)),1)]),c(`div`,null,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.fields.target`)),1),c(`dd`,null,m(v.value.get(s(D)(p.value.target))??p.value.target_name??s(D)(p.value.target)),1)])],64)):g(``,!0),B.value?g(``,!0):(u(),_(`div`,Ce,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.fields.status`)),1),c(`dd`,null,m(e.item.invalidAt?s(o)(`knowledge.workspace.inspector.historical`):s(o)(`common.status.current`)),1)]))]),B.value?g(``,!0):(u(),_(f,{key:4},[c(`h4`,we,m(s(o)(`knowledge.workspace.inspector.basisTitle`)),1),J.value?(u(),_(`dl`,Te,[c(`div`,null,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.basis.existence`)),1),c(`dd`,null,m(J.value.existence_reason),1)]),c(`div`,null,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.basis.quadrant`)),1),c(`dd`,null,m(J.value.quadrant_reason),1)]),c(`div`,null,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.basis.proposer`)),1),c(`dd`,null,m(s(E)(J.value.proposed_by)),1)]),c(`div`,null,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.basis.confirmer`)),1),c(`dd`,null,m(s(E)(J.value.confirmed_by)),1)]),c(`div`,null,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.basis.time`)),1),c(`dd`,null,m(s(N)(J.value.confirmed_at)),1)]),J.value.agent_policy_version?(u(),_(`div`,Ee,[c(`dt`,null,m(s(o)(`knowledge.workspace.inspector.basis.agentPolicy`)),1),c(`dd`,null,m(J.value.agent_policy_version),1)])):g(``,!0)])):(u(),_(`p`,De,m(s(o)(`knowledge.workspace.inspector.legacyBasis`)),1))],64)),z.value.length?(u(),_(f,{key:5},[c(`h4`,Oe,m(s(o)(`knowledge.workspace.inspector.contentDetails`)),1),c(`dl`,ke,[(u(!0),_(f,null,n(z.value,([e,t])=>(u(),_(`div`,{key:e},[c(`dt`,null,m(e),1),c(`dd`,null,m(et(t)),1)]))),128))])],64)):g(``,!0),e.item.reasoningSummary?(u(),_(f,{key:6},[c(`h4`,Ae,m(s(o)(`knowledge.workspace.inspector.formation`)),1),c(`p`,je,m(e.item.reasoningSummary),1)],64)):g(``,!0),Xe.value?(u(),_(`div`,Me,[G.value?(u(),_(`button`,{key:0,class:`primary-action inspector-confirm-action`,type:`button`,onClick:r[1]||=t=>i(`confirm`,e.item)},m(e.item.profileAspect?s(o)(`knowledge.workspace.inspector.confirmPreference`):s(o)(`knowledge.workspace.inspector.confirmKnowledge`)),1)):g(``,!0),K.value?(u(),_(`button`,{key:1,class:`primary-action`,type:`button`,onClick:r[2]||=t=>i(`manageProject`,e.item)},m(s(o)(`knowledge.workspace.inspector.editMaterials`)),1)):g(``,!0),e.mode===`graph`?(u(),_(`button`,{key:2,class:`secondary-action`,type:`button`,onClick:r[3]||=t=>i(`openDirectory`,e.item)},m(s(o)(`knowledge.workspace.inspector.locateDirectory`)),1)):g(``,!0),e.mode===`directory`?(u(),_(`button`,{key:3,class:`secondary-action`,type:`button`,onClick:r[4]||=t=>i(`openGraph`,e.item)},m(s(o)(`knowledge.workspace.inspector.locateGraph`)),1)):g(``,!0),H.value&&V.value&&V.value!==e.currentProjectId?(u(),_(`button`,{key:4,class:`primary-action`,type:`button`,onClick:r[5]||=e=>i(`openProject`,V.value)},m(s(o)(`knowledge.workspace.inspector.enterProject`)),1)):g(``,!0),H.value&&V.value&&e.canPublishProject?(u(),_(`button`,{key:5,class:`secondary-action`,type:`button`,onClick:r[6]||=e=>i(`publishProject`,V.value)},m(s(o)(`knowledge.workspace.inspector.publish`)),1)):g(``,!0),U.value?(u(),_(`button`,{key:6,class:`primary-action`,type:`button`,onClick:r[7]||=t=>i(`createProject`,e.item)},m(s(o)(`knowledge.workspace.inspector.createProject`)),1)):g(``,!0),W.value?(u(),_(`button`,{key:7,class:`secondary-action inspector-edit-action`,type:`button`,onClick:r[8]||=t=>i(`edit`,e.item)},m(e.item.profileAspect?s(o)(`knowledge.workspace.inspector.correctPreference`):s(o)(`knowledge.workspace.inspector.correctOrAssign`)),1)):g(``,!0)])):g(``,!0),R.value.length?(u(),_(f,{key:8},[c(`h4`,Ne,m(s(o)(`knowledge.workspace.inspector.relations`)),1),c(`div`,Pe,[(u(!0),_(f,null,n(R.value,e=>(u(),_(`div`,{key:e.id,class:`inspector-relation`},[c(`strong`,Fe,m(e.type),1),c(`p`,Ie,m(e.fact||s(o)(`knowledge.workspace.inspector.relationshipFallback`)),1)]))),128))])],64)):g(``,!0),e.item.evidence.length?(u(),_(f,{key:9},[c(`h4`,Le,m(s(o)(`knowledge.workspace.inspector.evidence`)),1),c(`div`,Re,[(u(!0),_(f,null,n(e.item.evidence,(e,t)=>(u(),_(`article`,{key:$(e,t),class:`evidence-card`},[c(`strong`,null,m(e.name||e.source_description||s(o)(`knowledge.workspace.inspector.sourceRecord`)),1),c(`p`,null,m(e.summary||e.source_description),1),c(`span`,null,m(s(F)(e))+` · `+m(e.source_kind||s(o)(`knowledge.workspace.inspector.source`))+` · `+m(s(N)(e.reference_time||e.created_at)),1),e.source_excerpt?(u(),_(`p`,ze,m(e.source_excerpt),1)):g(``,!0),e.session_id?(u(),_(`div`,Be,[c(`button`,{class:`evidence-source-action`,type:`button`,onClick:n=>at(e,t)},m(Y.value===$(e,t)?s(o)(`knowledge.workspace.inspector.copiedSessionId`):s(o)(`knowledge.workspace.inspector.copySessionId`)),9,Ve),rt(e)?(u(),_(`a`,{key:0,class:`evidence-source-action`,href:rt(e)??void 0,title:s(o)(`knowledge.workspace.inspector.openConversationWith`,{app:it(e)??s(F)(e)})},m(s(o)(`knowledge.workspace.inspector.openConversation`)),9,He)):g(``,!0)])):g(``,!0)]))),128))])],64)):g(``,!0),e.item.revisions.length?(u(),_(f,{key:10},[c(`h4`,Ue,m(s(o)(`knowledge.workspace.inspector.revisions`)),1),c(`div`,We,[(u(!0),_(f,null,n(e.item.revisions,(e,t)=>(u(),_(`article`,{key:String(e.id??t),class:`history-row`},[c(`strong`,null,m(s(S)(e.action)),1),c(`p`,null,m(e.reason??e.summary??s(o)(`knowledge.workspace.inspector.noRevisionCopy`)),1),c(`span`,null,m(s(N)(e.created_at)),1)]))),128))])],64)):g(``,!0),e.item.auditEvents.length?(u(),_(f,{key:11},[c(`h4`,Ge,m(s(o)(`knowledge.workspace.inspector.audit`)),1),c(`div`,Ke,[(u(!0),_(f,null,n(e.item.auditEvents,e=>(u(),_(`article`,{key:e.id,class:`history-row`},[c(`strong`,null,m(s(M)(e.action)),1),c(`p`,null,m(e.reason),1),c(`span`,null,m(s(o)(`knowledge.workspace.inspector.version`,{version:e.human_change_version}))+` · `+m(s(N)(e.created_at)),1),e.action===`agent_review`?(u(),_(`small`,qe,m(s(o)(`knowledge.workspace.inspector.conflictClassification`,{conflict:e.conflict_check===`no_conflict`?s(o)(`knowledge.workspace.inspector.conflictNone`):s(o)(`knowledge.workspace.inspector.conflictFound`),classification:e.classification_check===`reasonable`?s(o)(`knowledge.workspace.inspector.classificationReasonable`):s(o)(`knowledge.workspace.inspector.classificationAdjust`)})),1)):g(``,!0)]))),128))])],64)):g(``,!0)],64)):(u(),_(f,{key:1},[c(`p`,Je,m(s(o)(`knowledge.workspace.inspector.contentDetails`)),1),c(`h3`,null,m(s(o)(`knowledge.workspace.inspector.placeholderTitle`)),1),c(`p`,Ye,m(s(o)(`knowledge.workspace.inspector.placeholderCopy`)),1)],64))]))}});export{U as n,W as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{B as e,C as t,L as n,N as r,O as ee,S as i,Y as a,_ as o,a as s,et as c,g as l,h as u,j as d,k as f,m as p,p as m,rt as h,s as g,tt as _,u as v,v as y,x as b,y as x,z as S}from"./i18n-CgBHZthI.js";import{a as C,r as w,t as te}from"./console-tOxOl8Vq.js";import{t as T}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as E}from"./SearchableSelect-D27H0MoP.js";import{r as D,t as O}from"./identity-CFo_Uw1H.js";import{a as k,i as A,n as j,r as M,t as N}from"./KnowledgeEditDialog-UnnBDt0I.js";import{n as ne,t as P}from"./KnowledgeInspector-BqPJH5Rr.js";import{D as F,E as I,_ as L,g as R,n as z,o as re,r as ie,t as B,u as ae,v as V}from"./model-BtnVr7fX.js";var H={open:``,class:`project-dialog batch-confirm-dialog vue-dialog`},U={class:`project-dialog-shell`},W={class:`project-dialog-header`},oe={class:`batch-confirm-controls`},se={key:0,class:`batch-group-summary`},G={class:`batch-confirmer-fields`},K=[`required`,`placeholder`],q=[`placeholder`],J={class:`batch-confirm-rule`},Y={class:`batch-confirm-review`},ce={class:`batch-review-heading`},le={key:0,class:`batch-limit-note`},X={class:`batch-review-list`},ue=[`value`],Z={class:`batch-confirm-acknowledgement`},de={key:0,class:`publish-dialog-error`,role:`alert`},fe={class:`publish-dialog-actions`},Q=[`disabled`],pe=[`disabled`],me=T(t({__name:`KnowledgeBatchConfirmDialog`,props:{groups:{},personalSpaceId:{}},emits:[`close`,`saved`],setup(t,{emit:ee}){let o=t,f=ee,_=te(),S=a(``),w=a([]),T=a(`user`),k=a(``),A=a(``),j=a(!1),M=a(!1),N=a(``),ne=u(()=>o.groups.map(e=>({value:e.key,label:e.label,meta:s(`knowledge.dialogs.batch.groupMeta`,{kind:e.kind===`source`?s(`knowledge.dialogs.batch.sameSource`):s(`knowledge.dialogs.batch.sameSession`),count:e.items.length}),search:`${D(e.value)} ${e.description}`}))),P=u(()=>o.groups.find(({key:e})=>e===S.value)??null),F=u(()=>P.value?.items.slice(0,200)??[]),L=u(()=>{let e=new Set(w.value);return F.value.filter(t=>e.has(B(t)))}),R=u(()=>F.value.length>0&&L.value.length===F.value.length),re=u(()=>!M.value&&L.value.length>=2&&!!A.value.trim()&&j.value&&(T.value!==`authoritative_source`||!!k.value.trim())),ie=u(()=>[{value:`user`,label:s(`knowledge.domain.actors.user`)},{value:`authoritative_source`,label:s(`knowledge.domain.actors.authoritative_source`)}]);n(()=>o.groups,e=>{e.some(({key:e})=>e===S.value)||(S.value=e[0]?.key??``)},{immediate:!0}),n(S,()=>{w.value=F.value.map(B),j.value=!1,N.value=``},{immediate:!0});function B(e){return`${e.itemKind}:${e.id}`}function ae(){w.value=R.value?[]:F.value.map(B),j.value=!1}function V(e){let t=P.value;return t?z(e,t):null}async function me(){let e=P.value;if(!e)return $(s(`knowledge.dialogs.batch.errors.groupRequired`));if(L.value.length<2)return $(s(`knowledge.dialogs.batch.errors.itemsRequired`));if(!A.value.trim())return $(s(`knowledge.dialogs.batch.errors.reasonRequired`));if(T.value===`authoritative_source`&&!k.value.trim())return $(s(`knowledge.dialogs.batch.errors.sourceNameRequired`));if(!j.value)return $(s(`knowledge.dialogs.batch.errors.acknowledgmentRequired`));M.value=!0,N.value=``;try{let t=await C(`/api/knowledge/batch-confirmation`,{personalSpaceId:o.personalSpaceId,groupKind:e.kind,groupValue:e.value,reason:A.value.trim(),confirmer:{kind:T.value,label:k.value.trim()||null},items:L.value.map(e=>{let t=V(e);return{itemId:e.id,itemKind:e.itemKind,existenceReason:t.existenceReason,quadrantReason:t.quadrantReason,proposedBy:t.proposedBy}})});_.notify(s(`knowledge.dialogs.batch.confirmed`,{count:t.confirmed_count})),f(`saved`),f(`close`)}catch(e){N.value=e instanceof Error?e.message:s(`knowledge.dialogs.batch.errors.failed`),_.reportError(e)}finally{M.value=!1}}function $(e){N.value=e}return(t,n)=>(d(),x(`dialog`,H,[l(`div`,U,[l(`header`,W,[l(`div`,null,[n[8]||=l(`p`,{class:`eyebrow`},`BATCH CONFIRMATION`,-1),l(`h3`,null,h(c(s)(`knowledge.dialogs.batch.title`)),1),l(`p`,null,h(c(s)(`knowledge.dialogs.batch.intro`)),1)]),l(`button`,{class:`secondary-action`,type:`button`,onClick:n[0]||=e=>f(`close`)},h(c(s)(`common.actions.close`)),1)]),l(`form`,{class:`batch-confirm-form`,onSubmit:m(me,[`prevent`])},[l(`section`,oe,[l(`label`,null,[b(h(c(s)(`knowledge.dialogs.batch.range`))+` `,1),i(E,{modelValue:S.value,"onUpdate:modelValue":n[1]||=e=>S.value=e,options:ne.value,label:c(s)(`knowledge.dialogs.batch.rangeLabel`),searchable:``},null,8,[`modelValue`,`options`,`label`])]),P.value?(d(),x(`div`,se,[l(`span`,null,h(P.value.kind===`source`?c(s)(`knowledge.dialogs.batch.sameSource`):c(s)(`knowledge.dialogs.batch.sameSession`)),1),l(`strong`,null,h(P.value.label),1),l(`p`,null,h(P.value.description),1),l(`small`,null,`#`+h(c(O)(P.value.value,28)),1)])):y(``,!0),l(`div`,G,[l(`label`,null,[b(h(c(s)(`knowledge.dialogs.batch.confirmer`))+` `,1),i(E,{modelValue:T.value,"onUpdate:modelValue":n[2]||=e=>T.value=e,options:ie.value,label:c(s)(`knowledge.dialogs.batch.confirmerLabel`)},null,8,[`modelValue`,`options`,`label`])]),l(`label`,null,[b(h(c(s)(`knowledge.dialogs.batch.confirmerDescription`))+` `,1),e(l(`input`,{"onUpdate:modelValue":n[3]||=e=>k.value=e,maxlength:`160`,required:T.value===`authoritative_source`,placeholder:T.value===`user`?c(s)(`knowledge.dialogs.batch.userPlaceholder`):c(s)(`knowledge.dialogs.batch.sourcePlaceholder`)},null,8,K),[[v,k.value]])])]),l(`label`,null,[b(h(c(s)(`knowledge.dialogs.batch.basis`))+` `,1),e(l(`textarea`,{"onUpdate:modelValue":n[4]||=e=>A.value=e,maxlength:`2000`,rows:`3`,required:``,placeholder:c(s)(`knowledge.dialogs.batch.basisPlaceholder`)},null,8,q),[[v,A.value]])]),l(`p`,J,h(c(s)(`knowledge.dialogs.batch.agentBoundary`)),1)]),l(`section`,Y,[l(`div`,ce,[l(`div`,null,[l(`h4`,null,h(c(s)(`knowledge.dialogs.batch.itemReview`)),1),l(`p`,null,h(c(s)(`knowledge.dialogs.batch.selected`,{selected:L.value.length,total:F.value.length})),1)]),l(`button`,{class:`secondary-action`,type:`button`,onClick:ae},h(R.value?c(s)(`knowledge.dialogs.batch.clearAll`):c(s)(`knowledge.dialogs.batch.selectAll`)),1)]),(P.value?.items.length??0)>200?(d(),x(`p`,le,h(c(s)(`knowledge.dialogs.batch.limit`)),1)):y(``,!0),l(`div`,X,[(d(!0),x(p,null,r(F.value,t=>(d(),x(`label`,{key:B(t),class:`batch-review-item`},[e(l(`input`,{"onUpdate:modelValue":n[5]||=e=>w.value=e,type:`checkbox`,value:B(t)},null,8,ue),[[g,w.value]]),l(`span`,null,[l(`strong`,null,h(t.title),1),l(`small`,null,h(c(I)(t.originQuadrant))+` · `+h(t.type),1),l(`em`,null,h(V(t)?.existenceReason),1),l(`em`,null,h(V(t)?.quadrantReason),1)])]))),128))]),l(`label`,Z,[e(l(`input`,{"onUpdate:modelValue":n[6]||=e=>j.value=e,type:`checkbox`},null,512),[[g,j.value]]),l(`span`,null,h(c(s)(`knowledge.dialogs.batch.acknowledgment`)),1)])]),N.value?(d(),x(`p`,de,h(N.value),1)):y(``,!0),l(`div`,fe,[l(`button`,{class:`secondary-action`,type:`button`,disabled:M.value,onClick:n[7]||=e=>f(`close`)},h(c(s)(`common.actions.cancel`)),9,Q),l(`button`,{class:`primary-action`,type:`submit`,disabled:!re.value},h(M.value?c(s)(`knowledge.dialogs.batch.confirming`):c(s)(`knowledge.dialogs.batch.confirmItems`,{count:L.value.length})),9,pe)])],32)])]))}}),[[`__scopeId`,`data-v-5b6ea24b`]]),$={class:`view knowledge-organizer`},he={class:`organizer-toolbar`},ge={class:`organizer-search`},_e=[`placeholder`],ve=[`aria-label`],ye=[`aria-pressed`],be=[`data-quadrant`,`aria-pressed`,`title`,`onClick`],xe=[`aria-label`],Se=[`aria-pressed`],Ce=[`data-review-state`,`aria-pressed`,`title`,`onClick`],we={class:`organizer-toolbar-actions`},Te={class:`organizer-result-summary`},Ee={key:0},De={class:`organizer-table-head`,"aria-hidden":`true`},Oe=[`onClick`],ke={class:`organizer-item-copy`},Ae={class:`organizer-basis`},je={key:0,class:`organizer-loading-inline`},Me={class:`empty-state`},Ne=100,Pe=68,Fe=T(t({__name:`KnowledgeOrganizerPage`,setup(t){let m=te(),g=a(null),C=a(!1),T=a(!1),E=a(``),D=a(`all`),O=a(`all`),z=a(null),H=a(null),U=a(null),W=a(!1),oe=M(),se=A(u(()=>oe||C.value&&!g.value)),G=0,K=u(()=>[{value:`known_unknown`,short:s(`knowledge.workspace.organizer.quadrants.known_unknown.short`),coordinate:s(`knowledge.workspace.organizer.quadrants.known_unknown.coordinate`)},{value:`known_known`,short:s(`knowledge.workspace.organizer.quadrants.known_known.short`),coordinate:s(`knowledge.workspace.organizer.quadrants.known_known.coordinate`)},{value:`unknown_unknown`,short:s(`knowledge.workspace.organizer.quadrants.unknown_unknown.short`),coordinate:s(`knowledge.workspace.organizer.quadrants.unknown_unknown.coordinate`)},{value:`unknown_known`,short:s(`knowledge.workspace.organizer.quadrants.unknown_known.short`),coordinate:s(`knowledge.workspace.organizer.quadrants.unknown_known.coordinate`)}]),q=u(()=>[{value:`pending`,label:s(`knowledge.domain.reviewStates.pending`),hint:s(`knowledge.workspace.organizer.review.pendingHint`)},{value:`agent_confirmed`,label:s(`knowledge.domain.reviewStates.agent_confirmed`),hint:s(`knowledge.workspace.organizer.review.agentConfirmedHint`)},{value:`confirmed`,label:s(`knowledge.domain.reviewStates.confirmed`),hint:s(`knowledge.workspace.organizer.review.confirmedHint`)}]),J=u(()=>R(g.value)),Y=u(()=>ie(J.value)),ce=u(()=>Object.fromEntries([...K.value.map(({value:e})=>e),`unclassified`].map(e=>[e,J.value.filter(t=>t.originQuadrant===e).length]))),le=u(()=>D.value!==`all`),X=u(()=>le.value?J.value.filter(e=>e.originQuadrant===D.value):J.value),ue=u(()=>Object.fromEntries(q.value.map(({value:e})=>[e,X.value.filter(t=>L(t)===e).length]))),Z=u(()=>{let e=E.value.trim().toLocaleLowerCase();return J.value.filter(t=>D.value!==`all`&&t.originQuadrant!==D.value||O.value!==`all`&&L(t)!==O.value?!1:!e||[t.title,t.body,t.type,I(t.originQuadrant),F(t),...t.evidence.flatMap(e=>[e.name,e.summary,e.source_description])].filter(Boolean).join(` `).toLocaleLowerCase().includes(e))}),de=u(()=>`${E.value}\u0000${D.value}\u0000${O.value}`),fe=u(()=>z.value?Z.value.findIndex(({id:e,itemKind:t})=>e===z.value?.id&&t===z.value?.itemKind):-1);n(()=>m.activePersonalSpace?.id,e=>{e&&Q(e)},{immediate:!0}),n(Z,e=>{z.value&&!e.some(({id:e,itemKind:t})=>e===z.value?.id&&t===z.value?.itemKind)&&(z.value=null)}),f(()=>{G+=1});async function Q(e=m.activePersonalSpace?.id){if(!e)return;let t=++G;C.value=!0,T.value=!1;let n=!1;try{let r=0;for(;t===G;){let i=await w(`/api/graph?${new URLSearchParams({spaceId:e,limit:String(Ne),offset:String(r)})}`);if(t!==G)return;if(g.value=n?B(g.value,i):i,n=!0,z.value&&=J.value.find(({id:e,itemKind:t})=>e===z.value?.id&&t===z.value?.itemKind)??null,C.value=!1,!i.truncated)break;let a=i.next_offset;if(!Number.isInteger(a)||a<=r)throw Error(s(`knowledge.workspace.organizer.paginationError`));r=a,T.value=!0,await ee()}}catch(e){n||(g.value=null),m.reportError(e)}finally{t===G&&(C.value=!1,T.value=!1)}}function pe(e){return`${e.itemKind}:${e.id}`}function Fe(e){D.value=D.value===e?`all`:e}function Ie(e){O.value=e}function Le(e){E.value=``,D.value=e.originQuadrant,O.value=`all`,z.value=e}return(t,n)=>(d(),x(`section`,$,[l(`div`,he,[l(`label`,ge,[l(`span`,null,h(c(s)(`knowledge.workspace.organizer.filterKnowledge`)),1),e(l(`input`,{"onUpdate:modelValue":n[0]||=e=>E.value=e,type:`search`,placeholder:c(s)(`knowledge.workspace.organizer.searchPlaceholder`)},null,8,_e),[[v,E.value]])]),l(`div`,{class:`quadrant-filter`,"aria-label":c(s)(`knowledge.workspace.organizer.quadrantFilterAria`)},[l(`span`,null,h(c(s)(`knowledge.workspace.organizer.discoverySource`)),1),l(`button`,{type:`button`,"data-quadrant":`all`,class:_({active:D.value===`all`}),"aria-pressed":D.value===`all`,onClick:n[1]||=e=>D.value=`all`},[b(h(c(s)(`common.status.all`))+` `,1),l(`strong`,null,h(J.value.length),1)],10,ye),(d(!0),x(p,null,r(K.value,e=>(d(),x(`button`,{key:e.value,type:`button`,"data-quadrant":e.value,class:_({active:D.value===e.value}),"aria-pressed":D.value===e.value,title:e.coordinate,onClick:t=>Fe(e.value)},[b(h(e.short)+` `,1),l(`strong`,null,h(ce.value[e.value]),1)],10,be))),128))],8,ve),l(`div`,{class:`review-state-filter`,"aria-label":c(s)(`knowledge.workspace.organizer.reviewFilterAria`)},[l(`span`,null,h(c(s)(`knowledge.workspace.organizer.reviewStatus`)),1),l(`button`,{type:`button`,"data-review-state":`all`,class:_({active:O.value===`all`}),"aria-pressed":O.value===`all`,onClick:n[2]||=e=>Ie(`all`)},[b(h(c(s)(`common.status.all`))+` `,1),l(`strong`,null,h(X.value.length),1)],10,Se),(d(!0),x(p,null,r(q.value,e=>(d(),x(`button`,{key:e.value,type:`button`,"data-review-state":e.value,class:_([`state-${e.value}`,{active:O.value===e.value}]),"aria-pressed":O.value===e.value,title:e.hint,onClick:t=>Ie(e.value)},[b(h(e.label)+` `,1),l(`strong`,null,h(ue.value[e.value]),1)],10,Ce))),128))],8,xe),l(`div`,we,[l(`p`,Te,[b(h(c(s)(`knowledge.workspace.organizer.showing`,{visible:Z.value.length,total:X.value.length}))+` `,1),O.value===`all`?y(``,!0):(d(),x(`span`,Ee,` · `+h(q.value.find(({value:e})=>e===O.value)?.label),1))]),Y.value.length?(d(),x(`button`,{key:0,class:`toolbar-action batch-confirm-action`,type:`button`,onClick:n[3]||=e=>W.value=!0},h(c(s)(`knowledge.workspace.organizer.batchConfirm`,{count:Y.value.length})),1)):y(``,!0),l(`button`,{class:`toolbar-action`,type:`button`,onClick:n[4]||=e=>Q()},h(c(s)(`common.actions.refresh`)),1)])]),c(se)?(d(),o(k,{key:0,label:c(s)(`common.status.loadingKnowledge`)},null,8,[`label`])):(d(),x(`div`,{key:1,class:_([`organizer-layout`,{"has-selection":z.value}])},[i(ne,{class:`organizer-directory`,items:Z.value,"row-height":Pe,"active-index":fe.value,"reset-key":de.value,"item-key":pe,"min-width":`var(--organizer-list-min-width)`,label:c(s)(`knowledge.workspace.organizer.directoryAria`)},{header:S(()=>[l(`div`,De,[l(`span`,null,h(c(s)(`knowledge.workspace.workspace.view.knowledgeContent`)),1),l(`span`,null,h(c(s)(`knowledge.workspace.workspace.view.columns.quadrant`)),1),l(`span`,null,h(c(s)(`knowledge.workspace.workspace.view.columns.review`)),1),l(`span`,null,h(c(s)(`knowledge.workspace.organizer.confirmationBasis`)),1),l(`span`,null,h(c(s)(`knowledge.workspace.organizer.updated`)),1)])]),default:S(({item:e})=>[l(`button`,{type:`button`,class:_([`organizer-row`,{selected:z.value?.id===e.id}]),onClick:t=>z.value=e},[l(`span`,ke,[l(`strong`,null,h(e.title),1),l(`small`,null,h(e.body),1)]),l(`span`,{class:_([`quadrant-chip`,e.originQuadrant])},h(c(I)(e.originQuadrant)),3),l(`span`,{class:_([`review-chip`,`state-${c(L)(e)}`])},h(c(F)(e)),3),l(`span`,Ae,h(c(re)(e)),1),l(`time`,null,h(c(ae)(c(V)(e))),1)],10,Oe)]),footer:S(()=>[T.value?(d(),x(`div`,je,h(c(s)(`knowledge.workspace.organizer.loadingMore`)),1)):y(``,!0)]),empty:S(()=>[l(`div`,Me,h(J.value.length?c(s)(`knowledge.workspace.organizer.noFilteredContent`):c(s)(`knowledge.workspace.organizer.noContent`)),1)]),_:1},8,[`items`,`active-index`,`reset-key`,`label`]),i(P,{item:z.value,graph:g.value,editable:``,onConfirm:n[5]||=e=>H.value=e,onEdit:n[6]||=e=>U.value=e,onOpenReplacement:Le},null,8,[`item`,`graph`])],2)),i(N,{item:U.value,"personal-space-id":c(m).activePersonalSpace?.id??``,"personal-project-id":null,projects:c(m).state?.personalProjects??[],"replacement-items":J.value,onClose:n[7]||=e=>U.value=null,onSaved:n[8]||=e=>Q()},null,8,[`item`,`personal-space-id`,`projects`,`replacement-items`]),i(j,{item:H.value,"personal-space-id":c(m).activePersonalSpace?.id??``,"personal-project-id":null,onClose:n[9]||=e=>H.value=null,onSaved:n[10]||=e=>Q()},null,8,[`item`,`personal-space-id`]),W.value?(d(),o(me,{key:2,groups:Y.value,"personal-space-id":c(m).activePersonalSpace?.id??``,onClose:n[11]||=e=>W.value=!1,onSaved:n[12]||=e=>Q()},null,8,[`groups`,`personal-space-id`])):y(``,!0)]))}}),[[`__scopeId`,`data-v-0646b6aa`]]);export{Fe as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,_ as t,j as n}from"./i18n-CgBHZthI.js";import{t as r}from"./KnowledgeWorkspace-CfIjhOog.js";var i=e({__name:`KnowledgePage`,setup(e){return(e,i)=>(n(),t(r))}});export{i as default};
|