fuli-context 0.7.5 → 0.7.7
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/README.md +69 -13
- package/README.zh-CN.md +60 -14
- package/dist/web/assets/{AboutPage-ByCUor-j.js → AboutPage-BcZeFcHe.js} +1 -1
- package/dist/web/assets/{ConnectionsPage-DkdkZ40Q.js → ConnectionsPage-xAQYl1SQ.js} +1 -1
- package/dist/web/assets/EmployeeRecruitDialog-CbPAmhy7.js +1 -0
- package/dist/web/assets/EmployeeRecruitDialog-CfFlyKSh.css +1 -0
- package/dist/web/assets/EmployeeWorkbenchPage-BQvTLoc8.css +1 -0
- package/dist/web/assets/EmployeeWorkbenchPage-DF3EL0Ui.js +1 -0
- package/dist/web/assets/KnowledgeEditDialog-UnnBDt0I.js +1 -0
- package/dist/web/assets/{KnowledgeEditDialog-DWUV_NPp.css → KnowledgeEditDialog-iv-dgUeD.css} +1 -1
- package/dist/web/assets/{KnowledgeInspector-CYAjAb9J.js → KnowledgeInspector-BqPJH5Rr.js} +1 -1
- package/dist/web/assets/{KnowledgeOrganizerPage-CV4F54R_.js → KnowledgeOrganizerPage-CyvRflXM.js} +1 -1
- package/dist/web/assets/KnowledgePage-59eczTqe.js +1 -0
- package/dist/web/assets/{KnowledgeWorkspace-z4u5mXOG.js → KnowledgeWorkspace-CfIjhOog.js} +1 -1
- package/dist/web/assets/{OverviewPage-BWOfeS6k.js → OverviewPage-Xyfm5xkZ.js} +1 -1
- package/dist/web/assets/{PersonalProfilePage-c3w4-h7a.js → PersonalProfilePage-DB9mByB3.js} +1 -1
- package/dist/web/assets/PersonalProjectsPage-_-YXVi5O.js +1 -0
- package/dist/web/assets/ProjectAgentsPage-C3vW6wmk.css +1 -0
- package/dist/web/assets/ProjectAgentsPage-DeeQByPX.js +11 -0
- package/dist/web/assets/{PublicProjectsPage-DdH0oGB3.js → PublicProjectsPage-BEZ1YPs3.js} +1 -1
- package/dist/web/assets/{ReviewPage-BYIpcIHG.js → ReviewPage-CQYGwFBH.js} +1 -1
- package/dist/web/assets/SearchableSelect-D27H0MoP.js +1 -0
- package/dist/web/assets/{SettingsPage-2VkbXgZi.js → SettingsPage-BlEZ03Yi.js} +1 -1
- package/dist/web/assets/{WritingTastePage-BOPQZuva.js → WritingTastePage-DvRt_nmP.js} +1 -1
- package/dist/web/assets/catalog-DFvIaHVS.js +1 -0
- package/dist/web/assets/{console-BlAhujsH.js → console-tOxOl8Vq.js} +1 -1
- package/dist/web/assets/conversation-launcher-settings-DuFSpPAo.js +1 -0
- package/dist/web/assets/{i18n-Ci3heuiL.js → i18n-CgBHZthI.js} +3 -3
- package/dist/web/assets/{identity-4_-v6cB7.js → identity-CFo_Uw1H.js} +1 -1
- package/dist/web/assets/index-CJc5ppXH.css +1 -0
- package/dist/web/assets/index-yCi3cz2l.js +2 -0
- package/dist/web/assets/{model-yG0YqUyZ.js → model-BtnVr7fX.js} +1 -1
- package/dist/web/assets/{useApi-CROJJdhE-twhdZArA.js → useApi-CROJJdhE-B6MHm_Av.js} +1 -1
- package/dist/web/assets/{vue-router-C-wot_Di.js → vue-router-CzHm-y-x.js} +1 -1
- package/dist/web/index.html +7 -6
- package/docs/employee-agents.md +99 -0
- package/docs/project-agent-memory.md +479 -0
- package/graph-provider/fuli_graph/knowledge_audit_models.py +171 -0
- package/graph-provider/fuli_graph/model_base.py +5 -0
- package/graph-provider/fuli_graph/model_validation.py +32 -0
- package/graph-provider/fuli_graph/models.py +26 -170
- package/graph-provider/fuli_graph/project_agent_context_models.py +29 -0
- package/graph-provider/fuli_graph/project_agent_coordination_models.py +22 -0
- package/graph-provider/fuli_graph/project_agent_executor_models.py +35 -7
- package/graph-provider/fuli_graph/project_agent_memory_models.py +79 -0
- package/graph-provider/fuli_graph/project_agent_memory_routes.py +46 -0
- package/graph-provider/fuli_graph/project_agent_models.py +9 -0
- package/graph-provider/fuli_graph/project_agent_recruitment_values.py +48 -0
- package/graph-provider/fuli_graph/project_agent_routes.py +50 -1
- package/graph-provider/fuli_graph/project_agent_task_models.py +220 -29
- package/graph-provider/fuli_graph/runtime.py +37 -1
- package/graph-provider/fuli_graph/store.py +6 -0
- package/graph-provider/fuli_graph/store_project_agent_context.py +65 -0
- package/graph-provider/fuli_graph/store_project_agent_coordination_policy.py +122 -0
- package/graph-provider/fuli_graph/store_project_agent_executor_learning.py +175 -11
- package/graph-provider/fuli_graph/store_project_agent_executor_routing.py +33 -10
- package/graph-provider/fuli_graph/store_project_agent_executors.py +181 -14
- package/graph-provider/fuli_graph/store_project_agent_memory.py +174 -0
- package/graph-provider/fuli_graph/store_project_agent_task_activity.py +423 -0
- package/graph-provider/fuli_graph/store_project_agent_task_persistence.py +152 -0
- package/graph-provider/fuli_graph/store_project_agent_task_reads.py +187 -21
- package/graph-provider/fuli_graph/store_project_agent_task_recruitment.py +756 -164
- package/graph-provider/fuli_graph/store_project_agent_task_staffing.py +396 -7
- package/graph-provider/fuli_graph/store_project_agent_tasks.py +265 -465
- package/graph-provider/fuli_graph/store_project_agents.py +214 -46
- package/graph-provider/fuli_graph/store_task_contexts.py +217 -0
- package/graph-provider/fuli_graph/store_transactions.py +40 -0
- package/graph-provider/fuli_graph/task_context_models.py +50 -0
- package/graph-provider/fuli_graph/task_context_routes.py +31 -0
- package/graph-provider/fuli_graph/workflow_observation_models.py +1 -1
- package/graph-provider/pyproject.toml +1 -1
- package/npm-shrinkwrap.json +8 -8
- package/package.json +5 -2
- package/skills/capturing-session-knowledge/SKILL.md +18 -6
- package/src/adaptive-runtime/executor-pool.js +46 -5
- package/src/adaptive-runtime/graph-services.js +10 -3
- package/src/adaptive-runtime/lease-client.js +66 -14
- package/src/adaptive-runtime/runtime-broker.js +24 -9
- package/src/agent-tools/employee-definitions.js +43 -0
- package/src/agent-tools/graph-definitions.js +48 -6
- package/src/agent-tools/graph-handlers.js +15 -0
- package/src/agent-tools/project-agent-definitions.js +35 -4
- package/src/agent-tools/project-agent-memory-definitions.js +36 -0
- package/src/agent-tools.js +6 -2
- package/src/agents/codex/lifecycle-hook.js +107 -0
- package/src/agents/codex/lifecycle-hooks.js +231 -0
- package/src/agents/cursor/lifecycle-hook.js +133 -0
- package/src/agents/cursor/lifecycle-hooks.js +50 -0
- package/src/agents/lifecycle-message.js +19 -0
- package/src/app/agent-request-context.js +23 -0
- package/src/cli/command-registry.js +2 -0
- package/src/cli/employee-command.js +17 -0
- package/src/cli/remote-mcp-command.js +282 -0
- package/src/cli/setup-command.js +5 -0
- package/src/cli.js +10 -0
- package/src/employees/catalog/jefa.json +21 -0
- package/src/employees/install-package.js +77 -0
- package/src/employees/management-policy.js +88 -0
- package/src/employees/manifest.js +53 -0
- package/src/employees/package-registry.js +107 -0
- package/src/employees/project-selection.js +50 -0
- package/src/employees/recruitment.js +199 -0
- package/src/employees/service.js +83 -0
- package/src/employees/task-entry.js +39 -0
- package/src/graphiti/agent-knowledge-workflows.js +135 -25
- package/src/graphiti/federated-application.js +78 -35
- package/src/graphiti/project-agent-control-plane.js +32 -3
- package/src/graphiti/project-agent-mapping.js +175 -4
- package/src/graphiti/project-agent-memory.js +115 -0
- package/src/graphiti/project-agent-task-entry.js +126 -0
- package/src/graphiti/project-agent-workflows.js +49 -14
- package/src/graphiti/provider-client.js +78 -4
- package/src/http/api-router.js +25 -5
- package/src/http/employee-api-router.js +64 -0
- package/src/http/error-mapping.js +4 -0
- package/src/http/graph-api-router.js +14 -0
- package/src/http/request-policy.js +6 -3
- package/src/http/static-handler.js +4 -3
- package/src/mcp/create-mcp-server.js +98 -37
- package/src/mcp/direct-call.js +38 -0
- package/src/mcp/instructions.js +8 -7
- package/src/mcp/provider-task-context-registry.js +74 -0
- package/src/mcp/remote-http-server.js +761 -0
- package/src/mcp/session-id.js +29 -3
- package/src/mcp/task-context-registry.js +88 -29
- package/src/mcp/tool-annotations.js +12 -2
- package/src/mcp/tool-result.js +8 -3
- package/src/mcp-server.js +20 -8
- package/src/native-runtime/runtime.js +58 -8
- package/src/server.js +76 -28
- package/src/setup/agent-installation-status.js +38 -6
- package/src/setup/agents.js +20 -8
- package/src/setup/claude-code-config.js +55 -13
- package/src/setup/codex-bootstrap.js +11 -10
- package/src/setup/codex-config.js +74 -7
- package/src/setup/config-backup.js +18 -2
- package/src/setup/cursor-config.js +22 -5
- package/src/setup/setup.js +30 -22
- package/src/storage/json-file.js +11 -3
- package/dist/web/assets/KnowledgeEditDialog-DSe3Gwep.js +0 -1
- package/dist/web/assets/KnowledgePage-vYYXipOi.js +0 -1
- package/dist/web/assets/PersonalProjectsPage-B7AlLEwf.js +0 -1
- package/dist/web/assets/ProjectAgentsPage-CgftpIPB.css +0 -1
- package/dist/web/assets/ProjectAgentsPage-DTHcL_ox.js +0 -11
- package/dist/web/assets/SearchableSelect-Dz13ClQb.js +0 -1
- package/dist/web/assets/conversation-launcher-settings-DTYxiLJt.js +0 -1
- package/dist/web/assets/index-BnH5mcZx.css +0 -1
- package/dist/web/assets/index-C67Q0JY2.js +0 -2
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
2
|
|
|
3
3
|
import { readJsonFile, writeJsonFileAtomic } from '../storage/json-file.js';
|
|
4
|
+
import { withCursorLifecycleHooks, withoutCursorLifecycleHooks } from '../agents/cursor/lifecycle-hooks.js';
|
|
4
5
|
|
|
5
6
|
export function connectCursor(agent, context, {
|
|
6
7
|
readConfig = readJsonFile,
|
|
@@ -11,8 +12,10 @@ export function connectCursor(agent, context, {
|
|
|
11
12
|
|
|
12
13
|
const currentServers = current.mcpServers ?? {};
|
|
13
14
|
assertObject(currentServers, 'Cursor mcpServers');
|
|
15
|
+
const currentHooks = agent.hooksPath ? readConfig(agent.hooksPath, {}) : null;
|
|
16
|
+
const nextHooks = agent.hooksPath ? withCursorLifecycleHooks(currentHooks, context) : null;
|
|
14
17
|
|
|
15
|
-
|
|
18
|
+
const next = {
|
|
16
19
|
...current,
|
|
17
20
|
mcpServers: {
|
|
18
21
|
...currentServers,
|
|
@@ -27,9 +30,16 @@ export function connectCursor(agent, context, {
|
|
|
27
30
|
]
|
|
28
31
|
}
|
|
29
32
|
}
|
|
30
|
-
}
|
|
33
|
+
};
|
|
34
|
+
const registrationChanged = JSON.stringify(current) !== JSON.stringify(next);
|
|
35
|
+
if (registrationChanged) writeConfig(agent.configPath, next);
|
|
36
|
+
const hooksChanged = nextHooks && JSON.stringify(currentHooks) !== JSON.stringify(nextHooks);
|
|
37
|
+
if (hooksChanged) writeConfig(agent.hooksPath, nextHooks);
|
|
31
38
|
|
|
32
|
-
return { id: agent.id, label: agent.label, status: 'connected'
|
|
39
|
+
return { id: agent.id, label: agent.label, status: 'connected',
|
|
40
|
+
...(agent.hooksPath
|
|
41
|
+
? { newTaskRequired: registrationChanged || Boolean(hooksChanged) }
|
|
42
|
+
: {}) };
|
|
33
43
|
}
|
|
34
44
|
|
|
35
45
|
export function disconnectCursor(agent, {
|
|
@@ -37,15 +47,22 @@ export function disconnectCursor(agent, {
|
|
|
37
47
|
readConfig = readJsonFile,
|
|
38
48
|
writeConfig = writeJsonFileAtomic
|
|
39
49
|
} = {}) {
|
|
50
|
+
let hooksChanged = false;
|
|
51
|
+
if (agent.hooksPath && fileExists(agent.hooksPath)) {
|
|
52
|
+
const currentHooks = readConfig(agent.hooksPath, {});
|
|
53
|
+
const nextHooks = withoutCursorLifecycleHooks(currentHooks);
|
|
54
|
+
hooksChanged = JSON.stringify(currentHooks) !== JSON.stringify(nextHooks);
|
|
55
|
+
if (hooksChanged) writeConfig(agent.hooksPath, nextHooks);
|
|
56
|
+
}
|
|
40
57
|
if (!fileExists(agent.configPath)) {
|
|
41
|
-
return { id: agent.id, label: agent.label, status: 'not_connected' };
|
|
58
|
+
return { id: agent.id, label: agent.label, status: hooksChanged ? 'disconnected' : 'not_connected' };
|
|
42
59
|
}
|
|
43
60
|
const current = readConfig(agent.configPath, {});
|
|
44
61
|
assertObject(current, 'Cursor MCP config');
|
|
45
62
|
const currentServers = current.mcpServers ?? {};
|
|
46
63
|
assertObject(currentServers, 'Cursor mcpServers');
|
|
47
64
|
if (!Object.hasOwn(currentServers, 'fuli')) {
|
|
48
|
-
return { id: agent.id, label: agent.label, status: 'not_connected' };
|
|
65
|
+
return { id: agent.id, label: agent.label, status: hooksChanged ? 'disconnected' : 'not_connected' };
|
|
49
66
|
}
|
|
50
67
|
|
|
51
68
|
const { fuli: _removed, ...remainingServers } = currentServers;
|
package/src/setup/setup.js
CHANGED
|
@@ -109,36 +109,44 @@ export async function applyLocalSetup(plan, options, dependencies = {}) {
|
|
|
109
109
|
for (const agent of plan.agents.filter(
|
|
110
110
|
({ available, selected }) => available && selected !== false
|
|
111
111
|
)) {
|
|
112
|
+
let backupPath;
|
|
113
|
+
let connected;
|
|
114
|
+
const skills = [];
|
|
112
115
|
try {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
|
|
116
|
+
backupPath = backupConfig(agent, { backupDir: plan.paths.backupDir });
|
|
117
|
+
connected = connect(agent, context);
|
|
118
|
+
for (const [target, sourcePath] of [
|
|
119
|
+
[agent, plan.paths.sessionSkillPath],
|
|
120
|
+
[{ ...agent, skillPath: agent.projectSkillPath }, plan.paths.projectSkillPath],
|
|
121
|
+
[{ ...agent, skillPath: agent.reviewSkillPath }, plan.paths.reviewSkillPath]
|
|
122
|
+
]) {
|
|
123
|
+
skills.push(await installSkill(target, {
|
|
124
|
+
sourcePath,
|
|
118
125
|
backupDir: plan.paths.backupDir
|
|
119
|
-
})
|
|
120
|
-
|
|
121
|
-
sourcePath: plan.paths.projectSkillPath,
|
|
122
|
-
backupDir: plan.paths.backupDir
|
|
123
|
-
}),
|
|
124
|
-
installSkill({ ...agent, skillPath: agent.reviewSkillPath }, {
|
|
125
|
-
sourcePath: plan.paths.reviewSkillPath,
|
|
126
|
-
backupDir: plan.paths.backupDir
|
|
127
|
-
})
|
|
128
|
-
];
|
|
126
|
+
}));
|
|
127
|
+
}
|
|
129
128
|
agents.push({ ...connected, backupPath, skills });
|
|
130
129
|
} catch (error) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
130
|
+
const message = error instanceof Error ? error.message : 'Agent connection failed';
|
|
131
|
+
agents.push(connected
|
|
132
|
+
? {
|
|
133
|
+
...connected,
|
|
134
|
+
status: 'partial',
|
|
135
|
+
backupPath,
|
|
136
|
+
skills,
|
|
137
|
+
message
|
|
138
|
+
}
|
|
139
|
+
: {
|
|
140
|
+
id: agent.id,
|
|
141
|
+
label: agent.label,
|
|
142
|
+
status: 'failed',
|
|
143
|
+
message
|
|
144
|
+
});
|
|
137
145
|
}
|
|
138
146
|
}
|
|
139
147
|
|
|
140
148
|
return {
|
|
141
|
-
status: agents.some(({ status }) => status
|
|
149
|
+
status: agents.some(({ status }) => status !== 'connected') ? 'partial' : 'ready',
|
|
142
150
|
runtime,
|
|
143
151
|
agents
|
|
144
152
|
};
|
package/src/storage/json-file.js
CHANGED
|
@@ -5,11 +5,12 @@ import {
|
|
|
5
5
|
readFileSync,
|
|
6
6
|
renameSync,
|
|
7
7
|
rmSync,
|
|
8
|
+
statSync,
|
|
8
9
|
writeFileSync
|
|
9
10
|
} from 'node:fs';
|
|
10
11
|
import { basename, dirname, join } from 'node:path';
|
|
11
12
|
|
|
12
|
-
const DEFAULT_IO = Object.freeze({ mkdirSync, renameSync, rmSync, writeFileSync });
|
|
13
|
+
const DEFAULT_IO = Object.freeze({ mkdirSync, renameSync, rmSync, statSync, writeFileSync });
|
|
13
14
|
|
|
14
15
|
export function readJsonFile(filePath, fallback) {
|
|
15
16
|
if (!existsSync(filePath)) return fallback;
|
|
@@ -22,12 +23,19 @@ export function writeJsonFileAtomic(filePath, value, io = {}) {
|
|
|
22
23
|
const fileIo = { ...DEFAULT_IO, ...io };
|
|
23
24
|
const directory = dirname(filePath);
|
|
24
25
|
const tempPath = join(directory, `.${basename(filePath)}.${randomUUID()}.tmp`);
|
|
26
|
+
let mode = 0o600;
|
|
27
|
+
try {
|
|
28
|
+
mode = fileIo.statSync(filePath).mode & 0o777;
|
|
29
|
+
} catch (error) {
|
|
30
|
+
if (error?.code !== 'ENOENT') throw error;
|
|
31
|
+
}
|
|
25
32
|
|
|
26
|
-
fileIo.mkdirSync(directory, { recursive: true });
|
|
33
|
+
fileIo.mkdirSync(directory, { recursive: true, mode: 0o700 });
|
|
27
34
|
try {
|
|
28
35
|
fileIo.writeFileSync(tempPath, `${JSON.stringify(value, null, 2)}\n`, {
|
|
29
36
|
encoding: 'utf8',
|
|
30
|
-
flag: 'wx'
|
|
37
|
+
flag: 'wx',
|
|
38
|
+
mode
|
|
31
39
|
});
|
|
32
40
|
fileIo.renameSync(tempPath, filePath);
|
|
33
41
|
} catch (error) {
|
|
@@ -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-Ci3heuiL.js";import{a as S,i as C,t as w}from"./console-BlAhujsH.js";import{t as T}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as E}from"./SearchableSelect-Dz13ClQb.js";import{r as D,t as O}from"./identity-4_-v6cB7.js";import{E as k,T as A}from"./model-yG0YqUyZ.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_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-26170b1a`]]),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,_ as t,j as n}from"./i18n-Ci3heuiL.js";import{t as r}from"./KnowledgeWorkspace-z4u5mXOG.js";var i=e({__name:`KnowledgePage`,setup(e){return(e,i)=>(n(),t(r))}});export{i as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,_ as t,j as n}from"./i18n-Ci3heuiL.js";import{t as r}from"./KnowledgeWorkspace-z4u5mXOG.js";var i=e({__name:`PersonalProjectsPage`,setup(e){return(e,i)=>(n(),t(r,{"personal-projects-only":``}))}});export{i as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.project-agent-assignment-dialog[data-v-27954ba8]{background:0 0;border:0;border-radius:12px;width:min(620px,100vw - 32px);max-height:calc(100vh - 32px);padding:0}.project-agent-assignment-dialog-shell[data-v-27954ba8]{background:#fbfcfb;border:1px solid #d5dcd7;border-radius:12px;flex-direction:column;max-height:calc(100vh - 32px);display:flex;overflow:hidden;box-shadow:0 18px 48px #212d262e}.project-agent-assignment-dialog-header[data-v-27954ba8],.project-agent-assignment-dialog-actions[data-v-27954ba8]{justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.project-agent-assignment-dialog-header[data-v-27954ba8]{border-bottom:1px solid #e1e6e2}.project-agent-assignment-dialog-header h3[data-v-27954ba8]{color:#283a31;font-size:16px}.project-agent-assignment-dialog-fields[data-v-27954ba8]{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-height:0;padding:18px;display:grid;overflow:auto}.project-agent-assignment-dialog-fields label[data-v-27954ba8]{color:#626d66;gap:6px;font-size:11px;font-weight:650;display:grid}.project-agent-assignment-dialog-fields input[data-v-27954ba8],.project-agent-assignment-dialog-fields textarea[data-v-27954ba8]{color:#28342d;background:#fff;border:1px solid #ccd5ce;border-radius:8px;width:100%;padding:8px 9px;font-size:12px;line-height:1.5}.project-agent-assignment-dialog-fields textarea[data-v-27954ba8]{resize:vertical}.project-agent-assignment-dialog-fields input[data-v-27954ba8]:focus-visible,.project-agent-assignment-dialog-fields textarea[data-v-27954ba8]:focus-visible{outline-offset:1px;outline:2px solid #91a398}.project-agent-assignment-wide-field[data-v-27954ba8]{grid-column:1/-1}.project-agent-assignment-dialog-error[data-v-27954ba8]{color:#8b3f38;margin:0 18px;font-size:11px}.project-agent-assignment-dialog-actions[data-v-27954ba8]{border-top:1px solid #e1e6e2;justify-content:flex-end}.project-agent-primary-action[data-v-27954ba8]{color:#fff;background:#344c3d;border:0;border-radius:8px;padding:8px 13px;font-size:11px;font-weight:700}.project-agent-primary-action[data-v-27954ba8]:focus-visible{outline-offset:2px;outline:2px solid #91a398}@media (width<=620px){.project-agent-assignment-dialog-fields[data-v-27954ba8]{grid-template-columns:1fr}.project-agent-assignment-wide-field[data-v-27954ba8]{grid-column:auto}}.project-agent-dialog-check[data-v-6b96c90d]{align-items:center;gap:7px!important;display:flex!important}.project-agent-dialog-check input[data-v-6b96c90d]{width:auto!important}.project-agent-dialog-note[data-v-6b96c90d]{color:#7b857e;font-size:10px;line-height:1.55}.project-agent-source-state[data-v-f174e20d]{color:#727d75;background:#f7f9f7;border:1px solid #e1e6e2;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;margin-top:22px;padding:10px 12px;font-size:10px;display:flex}.project-agent-source-state.is-error[data-v-f174e20d]{color:#8c4f49;background:#fbf3f1;border-color:#ebd5d0}.project-agent-dialog[data-v-83825f22]{background:0 0;border:0;border-radius:12px;width:min(760px,100vw - 64px);max-height:calc(100vh - 64px);padding:0;overflow:hidden}.project-agent-dialog-shell[data-v-83825f22]{background:#fbfcfb;border:1px solid #d5dcd7;border-radius:12px;flex-direction:column;min-height:0;max-height:calc(100vh - 64px);display:flex;overflow:hidden;box-shadow:0 18px 48px #212d262e}.project-agent-dialog-header[data-v-83825f22],.project-agent-dialog-actions[data-v-83825f22]{justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.project-agent-dialog-header[data-v-83825f22]{border-bottom:1px solid #e1e6e2}.project-agent-dialog-header h3[data-v-83825f22]{color:#283a31;font-size:17px}.project-agent-dialog-fields[data-v-83825f22]{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-height:0;padding:20px;display:grid;overflow:auto}.project-agent-dialog-fields label[data-v-83825f22]{color:#626d66;align-content:start;gap:6px;min-width:0;font-size:11px;font-weight:650;display:grid}.project-agent-dialog-fields input[data-v-83825f22],.project-agent-dialog-fields select[data-v-83825f22],.project-agent-dialog-fields textarea[data-v-83825f22]{color:#28342d;background:#fff;border:1px solid #ccd5ce;border-radius:8px;width:100%;padding:9px 10px;font-size:12px;line-height:1.5}.project-agent-dialog-fields textarea[data-v-83825f22]{resize:vertical}.project-agent-dialog-fields input[data-v-83825f22]:focus-visible,.project-agent-dialog-fields select[data-v-83825f22]:focus-visible,.project-agent-dialog-fields textarea[data-v-83825f22]:focus-visible{outline-offset:1px;outline:2px solid #91a398}.project-agent-wide-field[data-v-83825f22],.project-agent-id-note[data-v-83825f22]{grid-column:1/-1}.project-agent-strategy-fields[data-v-83825f22]{border:1px solid #dfe5e0;border-radius:9px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0;margin:0;padding:12px;display:grid}.project-agent-strategy-fields legend[data-v-83825f22]{color:#59665d;padding:0 5px;font-size:10px;font-weight:700}.project-agent-strategy-fields>small[data-v-83825f22]{color:#818a84;grid-column:1/-1;font-size:9px;line-height:1.5}.project-agent-id-note[data-v-83825f22]{color:#7b847e;margin-top:-8px;font-size:10px}.project-agent-dialog-error[data-v-83825f22]{color:#8b3f38;margin:0 20px;font-size:11px}.project-agent-dialog-actions[data-v-83825f22]{border-top:1px solid #e1e6e2;justify-content:flex-end}.project-agent-primary-action[data-v-83825f22]{color:#fff;background:#344c3d;border:0;border-radius:8px;padding:8px 14px;font-size:12px;font-weight:700}.project-agent-primary-action[data-v-83825f22]:hover{background:#2b4234}.project-agent-primary-action[data-v-83825f22]:focus-visible{outline-offset:2px;outline:2px solid #91a398}.project-agent-primary-action[data-v-83825f22]:disabled,.project-agent-dialog-fields[data-v-83825f22] :disabled{cursor:not-allowed;opacity:.6}@media (width<=720px){.project-agent-dialog-fields[data-v-83825f22]{grid-template-columns:1fr}.project-agent-wide-field[data-v-83825f22],.project-agent-id-note[data-v-83825f22]{grid-column:1}}.project-agents-view[data-v-7dd25330]{flex-direction:column;gap:12px;min-height:0;padding:18px 32px 20px;display:flex;overflow:hidden}.project-agents-header[data-v-7dd25330],.project-agent-section-heading[data-v-7dd25330],.project-agent-section-tools[data-v-7dd25330],.project-agent-detail-actions[data-v-7dd25330],.project-agent-assignment-card header[data-v-7dd25330],.project-agent-task-card header[data-v-7dd25330],.project-agent-learning-card header[data-v-7dd25330],.project-agent-day-detail header[data-v-7dd25330]{justify-content:space-between;align-items:center;gap:12px;display:flex}.project-agents-header h2[data-v-7dd25330]{color:#283a31;font-size:18px}.project-agents-header-meta[data-v-7dd25330]{color:#7a847d;font-size:10px}.project-agents-summary[data-v-7dd25330]{color:#737d76;background:#f9faf9;border:1px solid #d6ddd8;border-radius:10px;gap:18px;padding:9px 14px;font-size:11px;display:flex}.project-agents-summary span[data-v-7dd25330]:first-child{color:#2f493b;font-weight:700}.project-agent-add[data-v-7dd25330]{color:#fff;background:#344c3d;border:0;border-radius:8px;padding:8px 13px;font-size:11px;font-weight:700}.project-agent-add[data-v-7dd25330]:hover{background:#2b4234}.project-agent-add[data-v-7dd25330]:focus-visible,.quiet-button[data-v-7dd25330]:focus-visible{outline-offset:2px;outline:2px solid #91a398}.project-agent-add[data-v-7dd25330]:disabled{cursor:not-allowed;opacity:.55}.project-agents-toolbar[data-v-7dd25330]{grid-template-columns:minmax(220px,300px) minmax(240px,1fr) auto;align-items:center;gap:10px;display:grid}.project-agents-search input[data-v-7dd25330]{color:#2e3932;background:#fff;border:1px solid #cfd7d1;border-radius:8px;width:100%;min-height:34px;padding:7px 10px;font-size:11px}.project-agents-search input[data-v-7dd25330]:focus-visible{outline-offset:1px;outline:2px solid #91a398}.project-agents-status-filter[data-v-7dd25330]{background:#f5f7f5;border:1px solid #d8ded9;border-radius:8px;gap:3px;padding:3px;display:flex}.project-agents-status-filter button[data-v-7dd25330],.quiet-button[data-v-7dd25330]{color:#6d7770;background:0 0;border:0;border-radius:6px;padding:6px 9px;font-size:10px}.project-agents-status-filter button[aria-pressed=true][data-v-7dd25330]{color:#315440;background:#fff;font-weight:700;box-shadow:0 1px 3px #27392f1f}.project-agents-directory[data-v-7dd25330]{background:#fff;border:1px solid #cfd7d1;border-radius:10px;flex:1;grid-template-columns:minmax(360px,.94fr) minmax(390px,1.06fr);min-height:0;display:grid;overflow:hidden}.project-agent-list[data-v-7dd25330]{border-right:1px solid #dfe4e0;min-width:0;min-height:0;overflow:auto}.project-agent-row[data-v-7dd25330]{width:100%;color:inherit;text-align:left;background:#fff;border:0;border-bottom:1px solid #e6eae7;grid-template-columns:minmax(0,1fr) auto;gap:5px 14px;padding:14px 16px;display:grid}.project-agent-row[data-v-7dd25330]:hover{background:#f7f9f7}.project-agent-row.selected[data-v-7dd25330]{background:#edf3ef;box-shadow:inset 3px 0 #64816f}.project-agent-row[data-v-7dd25330]:focus-visible{z-index:1;outline-offset:-3px;outline:2px solid #91a398;position:relative}.project-agent-row-heading[data-v-7dd25330]{align-items:center;gap:7px;min-width:0;display:flex}.project-agent-occupation-emoji[data-v-7dd25330]{flex:none;justify-content:center;align-items:center;min-width:1.2em;font-size:15px;line-height:1;display:inline-flex}.project-agent-row-heading strong[data-v-7dd25330]{color:#293b31;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.project-agent-row-heading i[data-v-7dd25330],.project-agent-assignment-card header i[data-v-7dd25330],.project-agent-task-card header i[data-v-7dd25330],.project-agent-learning-card header i[data-v-7dd25330]{color:#66716a;background:#e6eae7;border-radius:999px;flex:none;padding:2px 7px;font-size:9px;font-style:normal;font-weight:700}.project-agent-row-heading i.is-active[data-v-7dd25330]{color:#2f6947;background:#e1eee6}.project-agent-row-heading i.is-archived[data-v-7dd25330]{color:#75695d;background:#eeeae5}.project-agent-kind[data-v-7dd25330]{color:#53647b!important;background:#eef2f7!important}.project-agent-row-id[data-v-7dd25330]{color:#8a938d;overflow-wrap:anywhere;text-align:right;font-size:9px}.project-agent-row-projects[data-v-7dd25330]{flex-wrap:wrap;grid-column:1/-1;gap:4px;display:flex}.project-agent-row-projects b[data-v-7dd25330],.project-agent-tags span[data-v-7dd25330],.project-agent-inline-list span[data-v-7dd25330]{color:#5f6b64;background:#eef1ef;border-radius:999px;padding:3px 7px;font-size:9px;font-weight:650}.project-agent-row-projects em[data-v-7dd25330]{color:#8a938d;font-size:9px;font-style:normal}.project-agent-row-responsibility[data-v-7dd25330]{color:#59645d;text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;font-size:11px;line-height:1.5;overflow:hidden}.project-agent-row-work[data-v-7dd25330]{color:#59645d;grid-column:1/-1;font-size:10px;line-height:1.5}.project-agent-work-dot[data-v-7dd25330]{background:#4b8d63;border-radius:50%;width:6px;height:6px;margin-right:4px;display:inline-block}.project-agent-row-capabilities[data-v-7dd25330]{flex-wrap:wrap;grid-column:1/-1;gap:5px;min-height:20px;display:flex}.project-agent-row-capabilities b[data-v-7dd25330]{color:#68736c;background:#f1f3f1;border-radius:999px;padding:3px 7px;font-size:9px;font-weight:650}.project-agent-detail[data-v-7dd25330]{min-width:0;min-height:0;padding:20px;overflow:auto;container-type:inline-size}.project-agent-detail>header[data-v-7dd25330]{border-bottom:1px solid #e1e6e2;grid-template-columns:minmax(0,1fr) max-content;align-items:flex-start;gap:16px;padding-bottom:16px;display:grid}.project-agent-detail-heading[data-v-7dd25330]{min-width:0}.project-agent-detail h3[data-v-7dd25330]{color:#263b30;text-wrap:balance;font-size:17px;line-height:1.32}.project-agent-detail header p[data-v-7dd25330]{color:#7a847d;overflow-wrap:anywhere;max-width:72ch;margin-top:5px;font-size:10px;line-height:1.5}.project-agent-detail-actions[data-v-7dd25330]{grid-auto-columns:78px;grid-auto-flow:column;justify-content:end;gap:8px;display:grid}.project-agent-detail-actions .quiet-button[data-v-7dd25330]{white-space:nowrap;width:78px}.project-agent-detail-meta[data-v-7dd25330],.project-agent-compact-meta[data-v-7dd25330]{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 0;display:grid}.project-agent-detail-meta div[data-v-7dd25330],.project-agent-compact-meta div[data-v-7dd25330]{min-width:0}.project-agent-detail-meta dt[data-v-7dd25330],.project-agent-compact-meta dt[data-v-7dd25330],.project-agent-detail-section h4[data-v-7dd25330]{color:#7a847d;letter-spacing:.06em;text-transform:uppercase;font-size:9px;font-weight:700}.project-agent-detail-meta dd[data-v-7dd25330],.project-agent-compact-meta dd[data-v-7dd25330]{overflow-wrap:anywhere;color:#39483f;margin:4px 0 0;font-size:11px}.project-agent-detail-meta dd small[data-v-7dd25330]{color:#818a84;margin-top:3px;font-size:9px;line-height:1.4;display:block}.project-agent-detail-section[data-v-7dd25330]{margin-top:22px}.project-agent-detail-section.is-responsibility[data-v-7dd25330]{background:#f2f5f2;border-radius:10px;padding:14px}.project-agent-detail-section p[data-v-7dd25330],.project-agent-detail-section li[data-v-7dd25330]{color:#4f5c54;font-size:11px;line-height:1.65}.project-agent-tags[data-v-7dd25330],.project-agent-inline-list[data-v-7dd25330]{flex-wrap:wrap;gap:6px;margin-top:9px;display:flex}.project-agent-muted[data-v-7dd25330]{color:#8a928d!important}.project-agent-detail-notice[data-v-7dd25330]{background:#f5f5f1;border-radius:7px;margin:12px 0 0;padding:8px 10px;color:#6f705f!important}.project-agent-detail-placeholder[data-v-7dd25330],.project-agents-state[data-v-7dd25330]{color:#737d76;text-align:center;place-content:center;justify-items:center;gap:8px;min-height:240px;font-size:11px;display:grid}.project-agents-state[data-v-7dd25330]{background:#fafbfa;border:1px solid #d9dfda;border-radius:10px;flex:1}.project-agents-state strong[data-v-7dd25330]{color:#36473e;font-size:14px}.project-agents-state p[data-v-7dd25330]{max-width:52ch;line-height:1.6}.project-agents-state.is-error[data-v-7dd25330]{color:#8b3f38}.project-agent-assignment-list[data-v-7dd25330],.project-agent-task-list[data-v-7dd25330],.project-agent-learning-list[data-v-7dd25330],.project-agent-recruitment-list[data-v-7dd25330]{gap:8px;margin-top:9px;display:grid}.project-agent-execution-summary[data-v-7dd25330]{border-top:1px solid #dfe5e0;margin-top:13px;padding-top:12px}.project-agent-worker-event-evidence[data-v-7dd25330]{background:#f8faf8;border:1px dashed #d8dfd9;border-radius:8px;margin-top:13px;padding:10px 10px 0}.project-agent-execution-summary .project-agent-section-heading[data-v-7dd25330]{gap:8px}.project-agent-execution-summary h5[data-v-7dd25330]{color:#65736a;letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:9px;font-weight:700}.project-agent-execution-summary-list[data-v-7dd25330]{margin:7px 0 0;padding:0;list-style:none;display:grid}.project-agent-execution-summary-row[data-v-7dd25330]{border-top:1px solid #e6ebe7;min-width:0;padding:10px 0}.project-agent-execution-summary-row[data-v-7dd25330]:first-child{border-top:0}.project-agent-execution-summary-row header[data-v-7dd25330]{align-items:flex-start}.project-agent-execution-summary-row header strong[data-v-7dd25330]{overflow-wrap:anywhere;color:#3f5647;align-items:center;gap:5px;min-width:0;font-size:10px;display:flex}.project-agent-execution-summary-row header strong small[data-v-7dd25330]{color:#89948c;margin:0;font-size:8px;font-weight:500;display:inline}.project-agent-execution-summary-row header i[data-v-7dd25330]{color:#66716a;background:#e6eae7;border-radius:999px;flex:none;padding:2px 6px;font-size:8px;font-style:normal;font-weight:700}.project-agent-execution-summary-row header i.is-completed[data-v-7dd25330]{color:#2f6947;background:#e1eee6}.project-agent-execution-summary-row header i.is-failed[data-v-7dd25330]{color:#8c4f49;background:#f7e9e6}.project-agent-execution-summary-row header i.is-cancelled[data-v-7dd25330]{color:#75695d;background:#eeeae5}.project-agent-execution-summary-meta[data-v-7dd25330]{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 10px;margin:8px 0 0;display:grid}.project-agent-execution-summary-meta div[data-v-7dd25330]{min-width:0}.project-agent-execution-summary-meta dt[data-v-7dd25330]{color:#89948c;letter-spacing:.04em;text-transform:uppercase;font-size:8px;font-weight:700}.project-agent-execution-summary-meta dd[data-v-7dd25330]{overflow-wrap:anywhere;color:#4f5e54;margin:2px 0 0;font-size:9px;line-height:1.45}.project-agent-execution-summary-meta dd small[data-v-7dd25330]{color:#89948c;margin-top:2px;font-size:8px;display:block}.project-agent-assignment-card[data-v-7dd25330],.project-agent-task-card[data-v-7dd25330],.project-agent-learning-card[data-v-7dd25330],.project-agent-recruitment-card[data-v-7dd25330]{background:#fbfcfb;border:1px solid #e0e6e1;border-radius:9px;padding:11px 12px}.project-agent-assignment-card header strong[data-v-7dd25330],.project-agent-task-card header strong[data-v-7dd25330],.project-agent-learning-card header strong[data-v-7dd25330]{color:#33483a;font-size:11px}.project-agent-card-actions[data-v-7dd25330]{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;display:flex}.project-agent-assignment-card p[data-v-7dd25330],.project-agent-task-card p[data-v-7dd25330],.project-agent-learning-card p[data-v-7dd25330]{margin:7px 0 0}.project-agent-assignment-card small[data-v-7dd25330],.project-agent-task-card small[data-v-7dd25330],.project-agent-learning-card small[data-v-7dd25330]{color:#818a84;margin-top:6px;font-size:9px;line-height:1.5;display:block}.project-agent-assignment-card header i.is-ended[data-v-7dd25330],.project-agent-assignment-card header i.is-replaced[data-v-7dd25330]{color:#75695d;background:#eeeae5}.project-agent-strategy-note[data-v-7dd25330],.project-agent-execution-line[data-v-7dd25330]{color:#7a847d;flex-wrap:wrap;align-items:baseline;gap:6px;margin-top:8px;font-size:9px;display:flex}.project-agent-strategy-note strong[data-v-7dd25330],.project-agent-execution-line strong[data-v-7dd25330]{color:#53685a;font-size:10px}.project-agent-strategy-note small[data-v-7dd25330]{color:#8c5d54;flex-basis:100%}.project-agent-routing-decision[data-v-7dd25330]{color:#65736a;background:#f3f7f3;border-left:3px solid #7c9c86;border-radius:0 7px 7px 0;gap:5px;margin-top:10px;padding:9px 10px;font-size:9px;display:grid}.project-agent-routing-decision .project-agent-section-heading[data-v-7dd25330]{align-items:baseline;gap:8px}.project-agent-routing-decision .project-agent-section-heading strong[data-v-7dd25330]{color:#3f604b;font-size:10px}.project-agent-routing-decision small[data-v-7dd25330]{color:#65736a;line-height:1.45}.project-agent-blocked[data-v-7dd25330]{color:#8c5d54!important}.project-agent-task-card header[data-v-7dd25330]{align-items:flex-start}.project-agent-task-card header small[data-v-7dd25330]{margin-top:3px}.project-agent-task-card header i[data-v-7dd25330]{color:#53647b;background:#eef2f7}.project-agent-task-card header i.is-completed[data-v-7dd25330]{color:#2f6947;background:#e1eee6}.project-agent-task-card header i.is-failed[data-v-7dd25330]{color:#8c4f49;background:#f7e9e6}.project-agent-task-card header i.is-cancelled[data-v-7dd25330]{color:#75695d;background:#eeeae5}.project-agent-heatmap-viewport[data-v-7dd25330]{contain:layout inline-size paint;min-width:0;max-width:100%;overflow-x:clip}.project-agent-heatmap[data-v-7dd25330]{grid-template-rows:repeat(7,minmax(10px,1fr));grid-auto-columns:minmax(10px,1fr);grid-auto-flow:column;gap:3px;width:100%;max-width:100%;margin-top:9px;padding:0;display:grid;overflow-x:auto}.project-agent-heat-cell[data-v-7dd25330]{appearance:none;box-sizing:border-box;aspect-ratio:1;background:#f2f4f2;border:1px solid #dfe6e0;border-radius:3px;min-width:9px;margin:0;padding:0}.project-agent-heat-cell.intensity-1[data-v-7dd25330]{background:#dce9df}.project-agent-heat-cell.intensity-2[data-v-7dd25330]{background:#b9d3bf}.project-agent-heat-cell.intensity-3[data-v-7dd25330]{background:#87b493}.project-agent-heat-cell.intensity-4[data-v-7dd25330]{background:#548466}.project-agent-heat-cell[data-v-7dd25330]:focus-visible,.project-agent-heat-cell.selected[data-v-7dd25330]{box-shadow:none;border:2px solid #2f5740;outline:none}.project-agent-day-detail[data-v-7dd25330]{background:#f6f8f6;border-radius:8px;margin-top:10px;padding:10px}.project-agent-day-detail ul[data-v-7dd25330]{margin:8px 0 0;padding-left:17px}.project-agent-day-detail li[data-v-7dd25330]{margin-top:6px}.project-agent-day-detail li strong[data-v-7dd25330],.project-agent-day-detail li span[data-v-7dd25330],.project-agent-day-detail li small[data-v-7dd25330]{display:block}.project-agent-day-detail li span[data-v-7dd25330]{color:#66736b;font-size:9px}.project-agent-day-detail li small[data-v-7dd25330]{color:#7e8981;font-size:9px}.project-agent-client-list[data-v-7dd25330],.project-agent-rule-list[data-v-7dd25330]{gap:5px;margin-top:9px;display:grid}.project-agent-client-row[data-v-7dd25330],.project-agent-rule-row[data-v-7dd25330]{color:#68736c;background:#f7f9f7;border-radius:7px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;padding:8px 10px;font-size:9px;display:grid}.project-agent-client-row strong[data-v-7dd25330],.project-agent-rule-row strong[data-v-7dd25330]{color:#43584a;font-size:10px}.project-agent-client-row small[data-v-7dd25330]{color:#8a938d;grid-column:1/-1}.project-agent-executor-list[data-v-7dd25330]{gap:5px;margin-top:9px;display:grid}.project-agent-executor-row[data-v-7dd25330]{color:#68736c;background:#f7f9f7;border-radius:7px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;padding:8px 10px;font-size:9px;display:grid}.project-agent-executor-row strong[data-v-7dd25330]{color:#43584a;font-size:10px}.project-agent-executor-row small[data-v-7dd25330]{color:#8a938d;grid-column:1/-1}.project-agent-learning-card header i[data-v-7dd25330]{color:#6c776f;background:#f1f3f1}.project-agent-evidence-list[data-v-7dd25330]{margin:8px 0 0;padding-left:17px}.project-agent-evidence-list li[data-v-7dd25330]{color:#768179;font-size:9px}.project-agent-learning-actions[data-v-7dd25330]{gap:6px;margin-top:8px;display:flex}.project-agent-note[data-v-7dd25330]{color:#818a84;margin-top:9px;font-size:9px;line-height:1.5;display:block}.sr-only[data-v-7dd25330]{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=1180px){.project-agents-toolbar[data-v-7dd25330]{grid-template-columns:minmax(220px,280px) 1fr}.project-agents-status-filter[data-v-7dd25330]{grid-column:1/-1;justify-self:start}.project-agents-directory[data-v-7dd25330]{grid-template-columns:minmax(320px,.9fr) minmax(330px,1fr)}.project-agent-detail-meta[data-v-7dd25330],.project-agent-compact-meta[data-v-7dd25330]{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (width<=420px){.project-agent-detail>header[data-v-7dd25330]{grid-template-columns:minmax(0,1fr)}.project-agent-detail-actions[data-v-7dd25330]{justify-content:start}}@media (width<=760px){.project-agents-view[data-v-7dd25330]{padding:14px 16px 18px;overflow:auto}.project-agents-header[data-v-7dd25330],.project-agents-summary[data-v-7dd25330],.project-agent-section-heading[data-v-7dd25330],.project-agent-assignment-card header[data-v-7dd25330]{flex-wrap:wrap;align-items:flex-start}.project-agents-toolbar[data-v-7dd25330]{grid-template-columns:minmax(0,1fr)}.project-agents-project-filter[data-v-7dd25330],.project-agents-search[data-v-7dd25330],.project-agents-status-filter[data-v-7dd25330]{grid-column:1}.project-agents-status-filter[data-v-7dd25330]{flex-wrap:wrap;justify-self:stretch;width:100%}.project-agents-directory[data-v-7dd25330]{flex:none;grid-template-columns:minmax(0,1fr);overflow:visible}.project-agent-list[data-v-7dd25330]{border-bottom:1px solid #dfe4e0;border-right:0;max-height:340px}.project-agent-detail[data-v-7dd25330]{min-height:520px;padding:16px}.project-agent-client-row[data-v-7dd25330],.project-agent-rule-row[data-v-7dd25330],.project-agent-executor-row[data-v-7dd25330]{grid-template-columns:minmax(0,1fr);align-items:start}.project-agent-client-row small[data-v-7dd25330],.project-agent-executor-row small[data-v-7dd25330]{grid-column:1}.project-agent-execution-summary-meta[data-v-7dd25330]{grid-template-columns:minmax(0,1fr)}.project-agent-execution-summary-row header[data-v-7dd25330]{gap:8px}}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import{A as e,B as t,C as n,D as r,L as i,N as a,O as o,P as s,S as c,Y as l,a as u,d,et as f,g as p,h as m,j as h,k as g,l as _,m as v,n as y,p as ee,rt as b,s as x,tt as S,u as C,v as w,x as T,y as E,z as D}from"./i18n-Ci3heuiL.js";import{a as O,i as k,n as A,o as j,r as M,t as N}from"./console-BlAhujsH.js";import{t as P}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as te}from"./SearchableSelect-Dz13ClQb.js";var F=[`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 ne(e,t){let n=l(null),r=l(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??I(t)[0])?.focus({preventScroll:!0}))});return}let l=n.value;l?.open&&l.close(),c(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 c(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=I(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 I(e){return[...e.querySelectorAll(F)].filter(e=>!e.hidden&&e.getAttribute(`aria-hidden`)!==`true`)}var re={class:`project-agent-assignment-dialog-header`},L={id:`project-agent-assignment-dialog-title`},ie=[`disabled`],R={class:`project-agent-assignment-dialog-fields`},z={key:0},B={key:1},V=[`value`],H={key:2},U={key:3,class:`project-agent-assignment-wide-field`},ae=[`disabled`],oe={key:4},se=[`disabled`],ce={key:5},le=[`disabled`,`placeholder`],ue={class:`project-agent-assignment-wide-field`},de=[`disabled`,`placeholder`],fe={key:0,class:`project-agent-assignment-dialog-error`,role:`alert`},pe={class:`project-agent-assignment-dialog-actions`},me=[`disabled`],W=[`disabled`],he=P(n({__name:`AgentAssignmentDialog`,props:{open:{type:Boolean},agent:{},assignment:{default:null},action:{default:`assign`},projects:{},availableAgents:{default:()=>[]},defaultProjectId:{default:null}},emits:[`close`,`saved`,`changed`],setup(e,{emit:n}){let r=e,a=n,o=l(``),s=l(``),d=l(``),g=l(``),_=l(``),v=l(``),y=l(!1),x=l(``),{dialogRef:S,initialFocusRef:T,onCancel:D,onKeydown:k}=ne(()=>r.open,()=>a(`close`)),A=m(()=>r.action!==`assign`),j=m(()=>r.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id}))),M=m(()=>r.availableAgents.filter(e=>e.agentId!==r.agent?.agentId&&e.profile.status===`active`).map(e=>({value:e.agentId,label:e.profile.name,meta:e.agentId})));i(()=>[r.open,r.agent,r.assignment,r.action,r.defaultProjectId],()=>{r.open&&(o.value=r.assignment?.personalProjectId??r.defaultProjectId??r.projects[0]?.project_id??``,s.value=``,d.value=r.assignment?.responsibility??r.agent?.profile.responsibility??``,g.value=r.assignment?.scope??``,_.value=r.assignment?.workKinds?.join(`
|
|
2
|
-
`)??``,v.value=``,x.value=``)},{immediate:!0});async function N(){if(!r.agent)return;x.value=``;let e=v.value.trim(),t=d.value.trim();if(!e||r.action===`assign`&&!t){x.value=u(`projectAgents.assignmentDialog.required`);return}if(r.action===`replace`&&!s.value){x.value=u(`projectAgents.assignmentDialog.replacementRequired`);return}y.value=!0;try{if(r.action===`assign`){let n=await O(`/api/project-agent-assignments`,{personalSpaceId:r.agent.personalSpaceId,personalProjectId:o.value,agentId:r.agent.agentId,idempotencyKey:F(),responsibility:t,workKinds:P(_.value),capabilities:[],reason:e});a(`saved`,n)}else{if(!r.assignment)return;await O(`/api/project-agent-assignments/${encodeURIComponent(r.assignment.assignmentId)}/${r.action}`,r.action===`replace`?{personalSpaceId:r.agent.personalSpaceId,personalProjectId:r.assignment.personalProjectId,assignmentId:r.assignment.assignmentId,expectedRevision:r.assignment.revision??0,replacementAgentId:s.value,idempotencyKey:F(),responsibility:t||r.assignment.responsibility,workKinds:P(_.value),capabilities:r.assignment.capabilities??[],reason:e}:{personalSpaceId:r.agent.personalSpaceId,personalProjectId:r.assignment.personalProjectId,assignmentId:r.assignment.assignmentId,expectedRevision:r.assignment.revision??0,reason:e}),a(`changed`)}a(`close`)}catch(e){x.value=e instanceof Error?e.message:u(`projectAgents.assignmentDialog.saveFailed`)}finally{y.value=!1}}function P(e){return[...new Set(e.split(`
|
|
3
|
-
`).map(e=>e.trim()).filter(Boolean))]}function F(){return`project-agent-assignment-${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}return(n,i)=>e.open?(h(),E(`dialog`,{key:0,ref_key:`dialogRef`,ref:S,class:`project-agent-assignment-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`project-agent-assignment-dialog-title`,onCancel:i[8]||=(...e)=>f(D)&&f(D)(...e),onKeydown:i[9]||=(...e)=>f(k)&&f(k)(...e)},[p(`form`,{class:`project-agent-assignment-dialog-shell`,onSubmit:ee(N,[`prevent`])},[p(`header`,re,[p(`h3`,L,b(f(u)(`projectAgents.assignmentDialog.${A.value?e.action:`assign`}Title`)),1),p(`button`,{ref_key:`initialFocusRef`,ref:T,"data-dialog-initial-focus":``,class:`quiet-button`,type:`button`,disabled:y.value,onClick:i[0]||=e=>a(`close`)},b(f(u)(`common.actions.close`)),9,ie)]),p(`div`,R,[A.value?(h(),E(`label`,B,[p(`span`,null,b(f(u)(`projectAgents.fields.project`)),1),p(`input`,{value:r.assignment?r.assignment.personalProjectId:``,disabled:``},null,8,V)])):(h(),E(`label`,z,[p(`span`,null,b(f(u)(`projectAgents.fields.project`)),1),c(te,{modelValue:o.value,"onUpdate:modelValue":i[1]||=e=>o.value=e,"control-id":`project-agent-assignment-project`,options:j.value,label:f(u)(`projectAgents.fields.project`),placeholder:f(u)(`projectAgents.dialog.projectPlaceholder`),disabled:y.value,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])])),A.value&&e.action===`replace`?(h(),E(`label`,H,[p(`span`,null,b(f(u)(`projectAgents.assignmentDialog.replacement`)),1),c(te,{modelValue:s.value,"onUpdate:modelValue":i[2]||=e=>s.value=e,"control-id":`project-agent-assignment-replacement`,options:M.value,label:f(u)(`projectAgents.assignmentDialog.replacement`),placeholder:f(u)(`projectAgents.assignmentDialog.replacementPlaceholder`),disabled:y.value,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])])):w(``,!0),A.value?w(``,!0):(h(),E(`label`,U,[p(`span`,null,b(f(u)(`projectAgents.fields.responsibility`)),1),t(p(`textarea`,{"onUpdate:modelValue":i[3]||=e=>d.value=e,rows:`3`,maxlength:`4096`,disabled:y.value,required:``},null,8,ae),[[C,d.value]])])),A.value?w(``,!0):(h(),E(`label`,oe,[p(`span`,null,b(f(u)(`projectAgents.fields.scope`)),1),t(p(`input`,{"onUpdate:modelValue":i[4]||=e=>g.value=e,maxlength:`4096`,disabled:y.value},null,8,se),[[C,g.value]])])),A.value?w(``,!0):(h(),E(`label`,ce,[p(`span`,null,b(f(u)(`projectAgents.assignmentDialog.workKinds`)),1),t(p(`textarea`,{"onUpdate:modelValue":i[5]||=e=>_.value=e,rows:`3`,disabled:y.value,placeholder:f(u)(`projectAgents.assignmentDialog.workKindsPlaceholder`)},null,8,le),[[C,_.value]])])),p(`label`,ue,[p(`span`,null,b(f(u)(`projectAgents.fields.reason`)),1),t(p(`textarea`,{"onUpdate:modelValue":i[6]||=e=>v.value=e,rows:`3`,maxlength:`2048`,disabled:y.value,placeholder:f(u)(`projectAgents.assignmentDialog.reasonPlaceholder`),required:``},null,8,de),[[C,v.value]])])]),x.value?(h(),E(`p`,fe,b(x.value),1)):w(``,!0),p(`footer`,pe,[p(`button`,{class:`quiet-button`,type:`button`,disabled:y.value,onClick:i[7]||=e=>a(`close`)},b(f(u)(`common.actions.cancel`)),9,me),p(`button`,{class:`project-agent-primary-action`,type:`submit`,disabled:y.value},b(f(u)(`projectAgents.assignmentDialog.${A.value?`saveChange`:`saveAssign`}`)),9,W)])],32)],544)):w(``,!0)}}),[[`__scopeId`,`data-v-27954ba8`]]),ge={class:`project-agent-dialog-header`},_e={id:`executor-routing-dialog-title`},ve=[`disabled`],ye={class:`project-agent-dialog-fields`},G=[`disabled`],be=[`disabled`],xe=[`disabled`],Se=[`disabled`],Ce={class:`project-agent-wide-field`},we=[`disabled`],Te={class:`project-agent-dialog-check`},Ee=[`disabled`],De={class:`project-agent-dialog-note project-agent-wide-field`},Oe=[`disabled`],K=[`disabled`],ke={key:0},Ae={key:1},je=[`disabled`],q=[`disabled`],Me={class:`project-agent-wide-field`},Ne=[`placeholder`,`disabled`],Pe={class:`project-agent-wide-field`},Fe=[`disabled`],Ie={class:`project-agent-wide-field`},Le=[`disabled`],Re={class:`project-agent-dialog-note project-agent-wide-field`},ze={key:0,class:`project-agent-dialog-error`,role:`alert`},Be={class:`project-agent-dialog-actions`},Ve=[`disabled`],He=[`disabled`],Ue=P(n({__name:`ExecutorRoutingDialog`,props:{open:{type:Boolean},mode:{},personalSpaceId:{},executor:{default:null},rule:{default:null},projects:{default:()=>[]},availableExecutors:{default:()=>[]}},emits:[`close`,`saved`],setup(e,{emit:n}){let r=e,a=n,o=l(``),s=l(``),d=l(`external`),g=l(``),y=l(100),S=l(!1),D=l(`space`),O=l(``),k=l(``),A=l(``),M=l(``),N=l(``),P=l(``),F=l(!1),I=l(``),{dialogRef:re,initialFocusRef:L,onCancel:ie,onKeydown:R}=ne(()=>r.open,()=>a(`close`)),z=m(()=>!!r.executor),B=m(()=>r.mode===`executor`?z.value?`executorEditTitle`:`executorCreateTitle`:`ruleCreateTitle`),V=m(()=>r.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id})));m(()=>r.availableExecutors.map(e=>({value:e.executorId,label:e.displayName||e.label||e.executorId,meta:e.executorId}))),i(()=>[r.open,r.mode,r.executor,r.rule],([e])=>{if(!e)return;let t=r.executor,n=r.rule;o.value=t?.executorId??``,s.value=t?.displayName??t?.label??``,d.value=t?.executorKind??`external`,g.value=t?.capabilities?.join(`
|
|
4
|
-
`)??``,y.value=t?.globalPriority??n?.priority??100,S.value=t?.healthRequired===!0,D.value=n?.scope??`space`,O.value=n?.personalProjectId??``,k.value=n?.taskId??``,A.value=n?.workKind??``,M.value=n?.requiredCapabilities?.join(`
|
|
5
|
-
`)??``,N.value=n?.executorIds?.join(`
|
|
6
|
-
`)??``,P.value=``,I.value=``},{immediate:!0});function H(e){return[...new Set(e.split(`
|
|
7
|
-
`).map(e=>e.trim()).filter(Boolean))]}function U(e){return`${e}-${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}async function ae(){if(F.value)return;let e=H(g.value),t=P.value.trim();if(r.mode===`executor`){if(!o.value.trim()||!s.value.trim()||y.value<1){I.value=u(`projectAgents.routing.editor.executorRequired`);return}}else if(!A.value.trim()||!H(N.value).length||!t){I.value=u(`projectAgents.routing.editor.ruleRequired`);return}F.value=!0,I.value=``;try{if(r.mode===`executor`){let t=await j(`/api/executors`,{personalSpaceId:r.personalSpaceId,executorId:o.value.trim(),displayName:s.value.trim(),executorKind:d.value.trim()||`external`,capabilities:e,advertisedModels:r.executor?.advertisedModels??r.executor?.availableModels??[],globalPriority:y.value,healthRequired:S.value,expectedRevision:r.executor?.revision,idempotencyKey:U(`executor-directory`)});a(`saved`,t)}else{let e=await j(`/api/executor-routing-rules`,{personalSpaceId:D.value===`global`?void 0:r.personalSpaceId,scope:D.value,personalProjectId:(D.value===`project`||D.value===`task`)&&O.value||void 0,taskId:D.value===`task`&&k.value||void 0,workKind:A.value.trim(),requiredCapabilities:H(M.value),executorIds:H(N.value),priority:y.value,reason:t,idempotencyKey:U(`executor-rule`)});a(`saved`,e)}a(`close`)}catch(e){I.value=e instanceof Error?e.message:u(`projectAgents.routing.editor.saveFailed`)}finally{F.value=!1}}return(n,r)=>e.open?(h(),E(`dialog`,{key:0,ref_key:`dialogRef`,ref:re,class:`project-agent-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`executor-routing-dialog-title`,onCancel:r[16]||=(...e)=>f(ie)&&f(ie)(...e),onKeydown:r[17]||=(...e)=>f(R)&&f(R)(...e)},[p(`form`,{class:`project-agent-dialog-shell`,onSubmit:ee(ae,[`prevent`])},[p(`header`,ge,[p(`h3`,_e,b(f(u)(`projectAgents.routing.editor.${B.value}`)),1),p(`button`,{ref_key:`initialFocusRef`,ref:L,"data-dialog-initial-focus":``,class:`quiet-button`,type:`button`,disabled:F.value,onClick:r[0]||=e=>a(`close`)},b(f(u)(`common.actions.close`)),9,ve)]),p(`div`,ye,[e.mode===`executor`?(h(),E(v,{key:0},[p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.executorId`)),1),t(p(`input`,{"onUpdate:modelValue":r[1]||=e=>o.value=e,maxlength:`128`,disabled:z.value||F.value,required:``},null,8,G),[[C,o.value]])]),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.displayName`)),1),t(p(`input`,{"onUpdate:modelValue":r[2]||=e=>s.value=e,maxlength:`160`,disabled:F.value,required:``},null,8,be),[[C,s.value]])]),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.executorKind`)),1),t(p(`input`,{"onUpdate:modelValue":r[3]||=e=>d.value=e,maxlength:`128`,disabled:F.value},null,8,xe),[[C,d.value]])]),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.priority`)),1),t(p(`input`,{"onUpdate:modelValue":r[4]||=e=>y.value=e,type:`number`,min:`1`,max:`1000000`,disabled:F.value,required:``},null,8,Se),[[C,y.value,void 0,{number:!0}]])]),p(`label`,Ce,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.capabilities`)),1),t(p(`textarea`,{"onUpdate:modelValue":r[5]||=e=>g.value=e,rows:`3`,disabled:F.value},null,8,we),[[C,g.value]])]),p(`label`,Te,[t(p(`input`,{"onUpdate:modelValue":r[6]||=e=>S.value=e,type:`checkbox`,disabled:F.value},null,8,Ee),[[x,S.value]]),r[18]||=T(),p(`span`,null,b(f(u)(`projectAgents.routing.editor.healthRequired`)),1)]),p(`p`,De,b(f(u)(`projectAgents.routing.editor.evidenceNote`)),1)],64)):(h(),E(v,{key:1},[p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.scope`)),1),t(p(`select`,{"onUpdate:modelValue":r[7]||=e=>D.value=e,disabled:F.value},[...r[19]||=[p(`option`,{value:`space`},`space`,-1),p(`option`,{value:`project`},`project`,-1),p(`option`,{value:`task`},`task`,-1)]],8,Oe),[[_,D.value]])]),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.priority`)),1),t(p(`input`,{"onUpdate:modelValue":r[8]||=e=>y.value=e,type:`number`,min:`1`,max:`1000000`,disabled:F.value,required:``},null,8,K),[[C,y.value,void 0,{number:!0}]])]),D.value===`project`||D.value===`task`?(h(),E(`label`,ke,[p(`span`,null,b(f(u)(`projectAgents.fields.project`)),1),c(te,{modelValue:O.value,"onUpdate:modelValue":r[9]||=e=>O.value=e,"control-id":`executor-rule-project`,options:V.value,label:f(u)(`projectAgents.fields.project`),disabled:F.value},null,8,[`modelValue`,`options`,`label`,`disabled`])])):w(``,!0),D.value===`task`?(h(),E(`label`,Ae,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.taskId`)),1),t(p(`input`,{"onUpdate:modelValue":r[10]||=e=>k.value=e,maxlength:`128`,disabled:F.value},null,8,je),[[C,k.value]])])):w(``,!0),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.workKind`)),1),t(p(`input`,{"onUpdate:modelValue":r[11]||=e=>A.value=e,maxlength:`128`,disabled:F.value,required:``},null,8,q),[[C,A.value]])]),p(`label`,Me,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.executorIds`)),1),t(p(`textarea`,{"onUpdate:modelValue":r[12]||=e=>N.value=e,rows:`3`,placeholder:f(u)(`projectAgents.routing.editor.executorIdsPlaceholder`),disabled:F.value,required:``},null,8,Ne),[[C,N.value]])]),p(`label`,Pe,[p(`span`,null,b(f(u)(`projectAgents.routing.editor.requiredCapabilities`)),1),t(p(`textarea`,{"onUpdate:modelValue":r[13]||=e=>M.value=e,rows:`3`,disabled:F.value},null,8,Fe),[[C,M.value]])]),p(`label`,Ie,[p(`span`,null,b(f(u)(`projectAgents.fields.reason`)),1),t(p(`textarea`,{"onUpdate:modelValue":r[14]||=e=>P.value=e,rows:`3`,disabled:F.value,required:``},null,8,Le),[[C,P.value]])]),p(`p`,Re,b(f(u)(`projectAgents.routing.editor.ruleNote`)),1)],64))]),I.value?(h(),E(`p`,ze,b(I.value),1)):w(``,!0),p(`footer`,Be,[p(`button`,{class:`quiet-button`,type:`button`,disabled:F.value,onClick:r[15]||=e=>a(`close`)},b(f(u)(`common.actions.cancel`)),9,Ve),p(`button`,{class:`project-agent-primary-action`,type:`submit`,disabled:F.value},b(f(u)(`projectAgents.routing.editor.save`)),9,He)])],32)],544)):w(``,!0)}}),[[`__scopeId`,`data-v-6b96c90d`]]),We={key:0,class:`project-agent-source-state`,role:`status`},Ge={key:1,class:`project-agent-source-state`,role:`status`},Ke={key:2,class:`project-agent-source-state is-error`,role:`alert`},qe=P(n({__name:`ProjectAgentDetailState`,props:{status:{},error:{}},emits:[`retry`],setup(e){return(t,n)=>e.status===`idle`?(h(),E(`div`,We,b(f(u)(`projectAgents.detail.notLoaded`)),1)):e.status===`loading`?(h(),E(`div`,Ge,b(f(u)(`projectAgents.detail.loadingSection`)),1)):e.status===`error`?(h(),E(`div`,Ke,[p(`span`,null,b(e.error||f(u)(`projectAgents.detail.sectionUnavailable`)),1),p(`button`,{class:`quiet-button`,type:`button`,onClick:n[0]||=e=>t.$emit(`retry`)},b(f(u)(`projectAgents.retry`)),1)])):s(t.$slots,`default`,{},void 0,!0,3)}}),[[`__scopeId`,`data-v-f174e20d`]]);function J(e){return e&&typeof e==`object`?e:{}}function Y(e,t,n){return e[t]??e[n]}function X(e,t,n){let r=Y(e,t,n);return typeof r==`string`?r:null}function Z(e){return Array.isArray(e)?e:[]}function Je(e){let t=J(e);return Array.isArray(e)?e:Z(t.agents??t.items)}function Ye(e){if(!e||typeof e!=`object`)return null;let t=J(e);return{mode:X(t,`mode`,`mode`)??null,reasoningEffort:X(t,`reasoningEffort`,`reasoning_effort`)??null,capabilityHints:Z(Y(t,`capabilityHints`,`capability_hints`)).filter(e=>typeof e==`string`)}}function Xe(e){if(!e||typeof e!=`object`)return null;let t=J(e);return{enabled:typeof t.enabled==`boolean`?t.enabled:null,independentVerification:typeof Y(t,`independentVerification`,`independent_verification`)==`boolean`?Y(t,`independentVerification`,`independent_verification`):null,conflictFreeScopes:typeof Y(t,`conflictFreeScopes`,`conflict_free_scopes`)==`boolean`?Y(t,`conflictFreeScopes`,`conflict_free_scopes`):null,reason:X(t,`reason`,`reason`),workstreamBoundaries:Z(Y(t,`workstreamBoundaries`,`workstream_boundaries`)).filter(e=>typeof e==`string`)}}function Ze(e){if(!e||typeof e!=`object`)return null;let t=J(e),n=Z(Y(t,`allowList`,`allow_list`)).map(e=>{if(typeof e==`string`)return{executorId:e};let t=J(e);return{executorId:X(t,`executorId`,`executor_id`)??``,label:X(t,`label`,`label`),provider:X(t,`provider`,`provider`),model:X(t,`model`,`model`),client:X(t,`client`,`client`)}}).filter(({executorId:e})=>e),r=Z(Y(t,`lockedExecutorIds`,`locked_executor_ids`)).filter(e=>typeof e==`string`),i=Z(Y(t,`preferredExecutorIds`,`preferred_executor_ids`)).filter(e=>typeof e==`string`);return{mode:X(t,`mode`,`mode`)??`flexible`,allowList:n,lockedExecutorIds:r,preferredExecutorIds:i}}function Qe(e){if(!e||typeof e!=`object`)return null;let t=J(e),n={executor:X(t,`executor`,`executor`),provider:X(t,`provider`,`provider`)??X(t,`actualModelProvider`,`actual_model_provider`),model:X(t,`model`,`model`)??X(t,`actualModel`,`actual_model`),client:X(t,`client`,`client`)??X(t,`sourceApplication`,`source_application`),rule:X(t,`rule`,`rule`),fallback:X(t,`fallback`,`fallback`),reportedAt:X(t,`reportedAt`,`reported_at`)};return[n.executor,n.provider,n.model,n.rule,n.fallback].some(Boolean)?n:null}function $e(e,t){let n=J(e),r=X(n,`personalProjectId`,`personal_project_id`),i=X(n,`assignmentId`,`assignment_id`);return!r||!i?null:{assignmentId:i,personalSpaceId:X(n,`personalSpaceId`,`personal_space_id`)??t.personalSpaceId,personalProjectId:r,agentId:X(n,`agentId`,`agent_id`)??t.agentId,responsibility:X(n,`responsibility`,`responsibility`)??t.profile.responsibility,scope:X(n,`scope`,`scope`),workKinds:Z(Y(n,`workKinds`,`work_kinds`)).filter(e=>typeof e==`string`),capabilities:Z(n.capabilities).filter(e=>typeof e==`string`),modelStrategyOverride:Ye(Y(n,`modelStrategyOverride`,`model_strategy_override`)),executorPolicyOverride:Ze(Y(n,`executorPolicyOverride`,`executor_policy_override`)),reason:X(n,`reason`,`reason`),status:X(n,`status`,`status`)??`active`,revision:typeof n.revision==`number`?n.revision:void 0,sourceApplication:X(n,`sourceApplication`,`source_application`),sourceSessionId:X(n,`sourceSessionId`,`source_session_id`),assignedAt:X(n,`assignedAt`,`assigned_at`)??t.createdAt,updatedAt:X(n,`updatedAt`,`updated_at`)??t.updatedAt,endedAt:X(n,`endedAt`,`ended_at`),endReason:X(n,`endReason`,`end_reason`),replacedByAssignmentId:X(n,`replacedByAssignmentId`,`replaced_by_assignment_id`)}}function et(e){let t=J(e);return{agentId:X(t,`agentId`,`agent_id`)??``,assignmentId:X(t,`assignmentId`,`assignment_id`),role:X(t,`role`,`role`)??`collaborator`,status:X(t,`status`,`status`),assignmentSummary:X(t,`assignmentSummary`,`assignment_summary`),joinedAt:X(t,`joinedAt`,`joined_at`),updatedAt:X(t,`updatedAt`,`updated_at`),endedAt:X(t,`endedAt`,`ended_at`)}}function tt(e){if(Array.isArray(e))return e.map(e=>{let t=J(e);return{agentId:X(t,`agentId`,`agent_id`),agentName:X(t,`agentName`,`agent_name`),occupationEmoji:X(t,`occupationEmoji`,`occupation_emoji`),workerId:X(t,`workerId`,`worker_id`),workerLabel:X(t,`workerLabel`,`worker_label`),workerOccupationEmoji:X(t,`workerOccupationEmoji`,`worker_occupation_emoji`),participantRole:X(t,`participantRole`,`participant_role`),executor:X(t,`executor`,`executor`),executorId:X(t,`executorId`,`executor_id`),sourceApplication:X(t,`sourceApplication`,`source_application`),actualModelProvider:X(t,`actualModelProvider`,`actual_model_provider`),actualModel:X(t,`actualModel`,`actual_model`),workSummary:X(t,`workSummary`,`work_summary`),status:X(t,`status`,`status`)}})}function nt(e){let t=J(e),n=X(t,`eventId`,`event_id`),r=X(t,`taskId`,`task_id`);if(!n||!r)return null;let i=Qe(Y(t,`actualExecution`,`actual_execution`))??Qe({executor:X(t,`actualExecutor`,`actual_executor`),provider:X(t,`actualModelProvider`,`actual_model_provider`),model:X(t,`actualModel`,`actual_model`),client:X(t,`sourceApplication`,`source_application`),rule:X(t,`routingRuleId`,`routing_rule_id`)??X(t,`matchedExecutorRuleId`,`matched_executor_rule_id`),fallback:X(t,`fallbackReason`,`fallback_reason`)??X(t,`executorFallbackReason`,`executor_fallback_reason`),reportedAt:X(t,`createdAt`,`created_at`)});return{eventId:n,taskId:r,agentId:X(t,`agentId`,`agent_id`),status:X(t,`status`,`status`),actorKind:X(t,`actorKind`,`actor_kind`)??void 0,summary:X(t,`summary`,`summary`)??``,sourceApplication:X(t,`sourceApplication`,`source_application`),sourceSessionId:X(t,`sourceSessionId`,`source_session_id`),actualExecution:i,actualModelProvider:X(t,`actualModelProvider`,`actual_model_provider`),actualModel:X(t,`actualModel`,`actual_model`),workerId:X(t,`workerId`,`worker_id`),workerLabel:X(t,`workerLabel`,`worker_label`),workerOccupationEmoji:X(t,`workerOccupationEmoji`,`worker_occupation_emoji`),workerStatus:X(t,`workerStatus`,`worker_status`),createdAt:X(t,`createdAt`,`created_at`)??``}}function Q(e){if(!e||typeof e!=`object`)return null;let t=J(e);return{decisionId:X(t,`decisionId`,`decision_id`)??void 0,taskId:X(t,`taskId`,`task_id`)??void 0,coordinatorAgentId:X(t,`coordinatorAgentId`,`coordinator_agent_id`),complexity:(()=>{let e=Y(t,`complexity`,`complexity`);return typeof e==`string`||typeof e==`number`?e:null})(),complexityBasis:Z(Y(t,`complexityBasis`,`complexity_basis`)).filter(e=>typeof e==`string`),outcome:X(t,`outcome`,`outcome`)??X(t,`routingOutcome`,`routing_outcome`),reason:X(t,`reason`,`reason`)??X(t,`routingReason`,`routing_reason`),matchBasis:Z(Y(t,`matchBasis`,`match_basis`)).filter(e=>typeof e==`string`),candidateAgentIds:Z(Y(t,`candidateAgentIds`,`candidate_agent_ids`)).filter(e=>typeof e==`string`),optimizationPriority:Z(Y(t,`optimizationPriority`,`optimization_priority`)).filter(e=>typeof e==`string`),parallelPlan:Xe(Y(t,`parallelPlan`,`parallel_plan`)),selectedModelStrategy:Ye(Y(t,`selectedModelStrategy`,`selected_model_strategy`)),modelStrategySource:X(t,`modelStrategySource`,`model_strategy_source`)??void 0,ruleId:X(t,`ruleId`,`rule_id`)??X(t,`matchedExecutorRuleId`,`matched_executor_rule_id`)??X(t,`executorRuleId`,`executor_rule_id`),fallback:X(t,`fallback`,`fallback`)??X(t,`fallbackReason`,`fallback_reason`)??X(t,`executorFallbackReason`,`executor_fallback_reason`)}}function rt(e){return e!=null&&(typeof e!=`string`||e.length>0)&&(!Array.isArray(e)||e.length>0)}function it(e){return[`staffingIntent`,`staffing_intent`,`routingOutcome`,`routing_outcome`,`routingReason`,`routing_reason`,`routingExplanation`,`routing_explanation`,`coordinatorAgentId`,`coordinator_agent_id`,`complexity`,`complexityBasis`,`complexity_basis`,`matchBasis`,`match_basis`,`candidateAgentIds`,`candidate_agent_ids`].some(t=>rt(e[t]))?Q({outcome:Y(e,`routingOutcome`,`routing_outcome`),reason:Y(e,`routingReason`,`routing_reason`),matchBasis:Y(e,`matchBasis`,`match_basis`),coordinatorAgentId:Y(e,`coordinatorAgentId`,`coordinator_agent_id`),complexity:Y(e,`complexity`,`complexity`),complexityBasis:Y(e,`complexityBasis`,`complexity_basis`),candidateAgentIds:Y(e,`candidateAgentIds`,`candidate_agent_ids`)}):null}function at(e){let t=J(e),n=X(t,`taskId`,`task_id`);if(!n)return null;let r=Qe(Y(t,`actualExecution`,`actual_execution`))??Qe({executor:X(t,`actualExecutor`,`actual_executor`),provider:X(t,`actualModelProvider`,`actual_model_provider`),model:X(t,`actualModel`,`actual_model`),client:X(t,`sourceApplication`,`source_application`),rule:X(t,`routingRuleId`,`routing_rule_id`)??X(t,`matchedExecutorRuleId`,`matched_executor_rule_id`),fallback:X(t,`fallbackReason`,`fallback_reason`)??X(t,`executorFallbackReason`,`executor_fallback_reason`)}),i=Q(Y(t,`routingDecision`,`routing_decision`))??it(t);return{taskId:n,personalSpaceId:X(t,`personalSpaceId`,`personal_space_id`)??void 0,personalProjectId:X(t,`personalProjectId`,`personal_project_id`),title:X(t,`title`,`title`)??n,objective:X(t,`objective`,`objective`),workKind:X(t,`workKind`,`work_kind`),status:X(t,`status`,`status`),runId:X(t,`runId`,`run_id`),executionId:X(t,`executionId`,`execution_id`),ownerAgentId:X(t,`ownerAgentId`,`owner_agent_id`),leadAgentId:X(t,`leadAgentId`,`lead_agent_id`),coordinatorAgentId:X(t,`coordinatorAgentId`,`coordinator_agent_id`),hrAgentId:X(t,`hrAgentId`,`hr_agent_id`),recruitmentId:X(t,`recruitmentId`,`recruitment_id`),participants:Z(t.participants).map(et),sourceApplication:X(t,`sourceApplication`,`source_application`),sourceSessionId:X(t,`sourceSessionId`,`source_session_id`),resultSummary:X(t,`resultSummary`,`result_summary`),failureReason:X(t,`failureReason`,`failure_reason`),createdAt:X(t,`createdAt`,`created_at`),updatedAt:X(t,`updatedAt`,`updated_at`),completedAt:X(t,`completedAt`,`completed_at`),effectiveModelStrategy:Ye(Y(t,`effectiveModelStrategy`,`effective_model_strategy`)),effectiveExecutorPolicy:Ze(Y(t,`effectiveExecutorPolicy`,`effective_executor_policy`)??Y(t,`executorPolicy`,`executor_policy`)),staffingIntent:X(t,`staffingIntent`,`staffing_intent`),routingOutcome:X(t,`routingOutcome`,`routing_outcome`),routingReason:X(t,`routingReason`,`routing_reason`),routingExplanation:X(t,`routingExplanation`,`routing_explanation`),matchBasis:Z(Y(t,`matchBasis`,`match_basis`)).filter(e=>typeof e==`string`),complexity:(()=>{let e=Y(t,`complexity`,`complexity`);return typeof e==`string`||typeof e==`number`?e:null})(),complexityBasis:Z(Y(t,`complexityBasis`,`complexity_basis`)).filter(e=>typeof e==`string`),modelStrategySource:X(t,`modelStrategySource`,`model_strategy_source`)??void 0,actualExecution:r,executionSummary:tt(Y(t,`executionSummary`,`execution_summary`)),routingDecision:i,events:Z(t.events).map(nt).filter(Boolean)}}function ot(e){return e.executionSummary===void 0?(e.events??[]).filter(e=>!!(e.workerId||e.workerLabel||e.workerOccupationEmoji||e.workerStatus)):[]}function st(e){return!!(e&&(e.enabled||e.independentVerification||e.conflictFreeScopes||e.reason||e.workstreamBoundaries?.length))}function ct(e){return e.actualExecution??{provider:e.actualModelProvider??null,model:e.actualModel??null,client:e.sourceApplication??null,reportedAt:e.createdAt}}var lt={class:`project-agent-dialog-header`},ut={id:`project-agent-dialog-title`},dt=[`disabled`],ft={class:`project-agent-dialog-fields`},pt=[`disabled`],mt={value:`active`},ht={value:`inactive`},gt={value:`archived`},_t=[`disabled`],vt={value:`durable`},yt={value:`hr`},bt={key:0,value:`temporary`,disabled:``},xt={key:1,value:`coordinator`,disabled:``},St=[`disabled`,`placeholder`],$=[`disabled`,`placeholder`],Ct=[`disabled`,`placeholder`],wt={key:0,class:`project-agent-id-note`},Tt={class:`project-agent-wide-field`},Et=[`disabled`,`placeholder`],Dt={class:`project-agent-wide-field`},Ot=[`disabled`,`placeholder`],kt={class:`project-agent-wide-field`},At=[`disabled`,`placeholder`],jt={class:`project-agent-wide-field project-agent-strategy-fields`},Mt=[`disabled`],Nt={value:`flexible`},Pt={value:`locked`},Ft=[`disabled`],It={class:`project-agent-wide-field`},Lt=[`disabled`,`placeholder`],Rt={key:0,class:`project-agent-dialog-error`,role:`alert`},zt={class:`project-agent-dialog-actions`},Bt=[`disabled`],Vt=[`disabled`],Ht=P(n({__name:`ProjectAgentDialog`,props:{open:{type:Boolean},agent:{},projects:{},defaultProjectId:{},personalSpaceId:{}},emits:[`close`,`saved`],setup(e,{emit:n}){let r=e,a=n,o=l(``),s=l(``),d=l(``),g=l(``),v=l(``),y=l(``),x=l(``),S=l(`active`),T=l(`durable`),D=l(`adaptive`),k=l(`flexible`),A=l(``),M=l(!1),N=l(``),{dialogRef:P,initialFocusRef:F,onCancel:I,onKeydown:re}=ne(()=>r.open,()=>a(`close`)),L=m(()=>!!r.agent),ie=m(()=>r.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id})));i(()=>[r.open,r.agent,r.defaultProjectId],([e,t,n])=>{if(!e)return;o.value=t?.personalProjectId??n??r.projects[0]?.project_id??``,s.value=t?.agentId??``,d.value=t?.profile.name??``,g.value=t?.profile.occupationEmoji??``,v.value=t?.profile.responsibility??``,y.value=(t?.profile.capabilities??[]).join(`
|
|
8
|
-
`),x.value=(t?.profile.initialPreferences??[]).join(`
|
|
9
|
-
`),S.value=t?.profile.status??`active`,T.value=t?.profile.agentType??`durable`,D.value=t?.profile.defaultModelStrategy?.mode??`adaptive`,k.value=t?.profile.executorPolicy?.mode??`flexible`;let i=t?.profile.executorPolicy,a=i?.mode===`locked`?i.lockedExecutorIds:i?.preferredExecutorIds;A.value=(a?.length?a:i?.allowList?.map(({executorId:e})=>e)??[]).join(`
|
|
10
|
-
`),N.value=``},{immediate:!0});function R(e){let t=e.split(`
|
|
11
|
-
`).map(e=>e.trim()).filter(Boolean),n=t.map(e=>e.toLocaleLowerCase());return new Set(n).size===n.length?t:null}async function z(){if(M.value)return;let e=o.value.trim(),t=s.value.trim(),n=d.value.trim(),i=g.value.trim(),c=v.value.trim();if(!t||!n||!c){N.value=u(`projectAgents.dialog.required`);return}let l=r.projects.find(({project_id:t})=>t===e);if(e&&!l){N.value=u(`projectAgents.dialog.projectUnavailable`);return}if(i&&!B(i)){N.value=u(`projectAgents.dialog.occupationEmojiInvalid`);return}let f=l?.personal_space_id??r.personalSpaceId??r.agent?.personalSpaceId;if(!f){N.value=u(`projectAgents.dialog.spaceUnavailable`);return}let p=R(y.value),m=R(x.value);if(!p||!m){N.value=u(`projectAgents.dialog.duplicate`);return}let h=R(A.value);if(!h||k.value===`locked`&&!h.length){N.value=u(`projectAgents.dialog.duplicate`);return}M.value=!0,N.value=``;try{let r={name:n,responsibility:c,capabilities:p,initialPreferences:m,status:S.value};i&&(r.occupationEmoji=i),T.value!==`durable`&&(r.agentType=T.value),D.value!==`adaptive`&&(r.defaultModelStrategy={mode:D.value}),(k.value!==`flexible`||h.length)&&(r.executorPolicy={mode:k.value,lockedExecutorIds:k.value===`locked`?h:[],preferredExecutorIds:k.value===`flexible`?h:[]});let o=await j(`/api/project-agents`,{personalSpaceId:f,personalProjectId:null,agentId:t,profile:r}),s=o;if(e){let n=await O(`/api/project-agent-assignments`,{personalSpaceId:f,personalProjectId:e,agentId:t,idempotencyKey:`directory:${t}:${Date.now()}`,responsibility:c,capabilities:p,reason:u(`projectAgents.dialog.initialAssignmentReason`)});s={...o,personalProjectId:e,assignments:[n]}}a(`saved`,s),a(`close`)}catch(e){N.value=e instanceof Error?e.message:u(`projectAgents.dialog.saveFailed`)}finally{M.value=!1}}function B(e){return Array.from(e).length>32||/\s/u.test(e)||Array.from(new Intl.Segmenter(void 0,{granularity:`grapheme`}).segment(e)).length!==1?!1:/\p{Extended_Pictographic}|\p{Regional_Indicator}{2}|[#*0-9]\uFE0F?\u20E3/u.test(e)&&/^[\p{Extended_Pictographic}\p{Emoji_Component}\uFE0E\uFE0F\u200D\u{E0020}-\u{E007F}#*0-9]+$/u.test(e)}return(n,r)=>e.open?(h(),E(`dialog`,{key:0,ref_key:`dialogRef`,ref:P,class:`project-agent-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`project-agent-dialog-title`,onCancel:r[14]||=(...e)=>f(I)&&f(I)(...e),onKeydown:r[15]||=(...e)=>f(re)&&f(re)(...e)},[p(`form`,{class:`project-agent-dialog-shell`,onSubmit:ee(z,[`prevent`])},[p(`header`,lt,[p(`h3`,ut,b(L.value?f(u)(`projectAgents.dialog.editTitle`):f(u)(`projectAgents.dialog.createTitle`)),1),p(`button`,{ref_key:`initialFocusRef`,ref:F,"data-dialog-initial-focus":``,class:`quiet-button`,type:`button`,disabled:M.value,onClick:r[0]||=e=>a(`close`)},b(f(u)(`common.actions.close`)),9,dt)]),p(`div`,ft,[p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.fields.project`)),1),c(te,{modelValue:o.value,"onUpdate:modelValue":r[1]||=e=>o.value=e,"control-id":`project-agent-project`,options:ie.value,label:f(u)(`projectAgents.fields.project`),placeholder:f(u)(`projectAgents.dialog.projectPlaceholder`),disabled:L.value||M.value},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])]),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.fields.status`)),1),t(p(`select`,{"onUpdate:modelValue":r[2]||=e=>S.value=e,name:`project-agent-status`,disabled:M.value},[p(`option`,mt,b(f(u)(`projectAgents.status.active`)),1),p(`option`,ht,b(f(u)(`projectAgents.status.inactive`)),1),p(`option`,gt,b(f(u)(`projectAgents.status.archived`)),1)],8,pt),[[_,S.value]])]),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.fields.agentType`)),1),t(p(`select`,{"onUpdate:modelValue":r[3]||=e=>T.value=e,name:`project-agent-type`,disabled:M.value},[p(`option`,vt,b(f(u)(`projectAgents.agentType.durable`)),1),p(`option`,yt,b(f(u)(`projectAgents.agentType.hr`)),1),L.value&&T.value===`temporary`?(h(),E(`option`,bt,b(f(u)(`projectAgents.agentType.temporary`)),1)):w(``,!0),L.value&&T.value===`coordinator`?(h(),E(`option`,xt,b(f(u)(`projectAgents.agentType.coordinator`)),1)):w(``,!0)],8,_t),[[_,T.value]])]),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.fields.agentId`)),1),t(p(`input`,{"onUpdate:modelValue":r[4]||=e=>s.value=e,name:`project-agent-id`,maxlength:`128`,required:``,disabled:L.value||M.value,placeholder:f(u)(`projectAgents.dialog.agentIdPlaceholder`)},null,8,St),[[C,s.value]])]),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.fields.name`)),1),t(p(`input`,{"onUpdate:modelValue":r[5]||=e=>d.value=e,name:`project-agent-name`,maxlength:`160`,required:``,disabled:M.value,placeholder:f(u)(`projectAgents.dialog.namePlaceholder`)},null,8,$),[[C,d.value]])]),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.fields.occupationEmoji`)),1),t(p(`input`,{"onUpdate:modelValue":r[6]||=e=>g.value=e,name:`project-agent-occupation-emoji`,maxlength:`64`,autocomplete:`off`,disabled:M.value,placeholder:f(u)(`projectAgents.dialog.occupationEmojiPlaceholder`)},null,8,Ct),[[C,g.value]])]),L.value?(h(),E(`small`,wt,b(f(u)(`projectAgents.dialog.idLocked`)),1)):w(``,!0),p(`label`,Tt,[p(`span`,null,b(f(u)(`projectAgents.fields.responsibility`)),1),t(p(`textarea`,{"onUpdate:modelValue":r[7]||=e=>v.value=e,name:`project-agent-responsibility`,maxlength:`4096`,rows:`4`,required:``,disabled:M.value,placeholder:f(u)(`projectAgents.dialog.responsibilityPlaceholder`)},null,8,Et),[[C,v.value]])]),p(`label`,Dt,[p(`span`,null,b(f(u)(`projectAgents.fields.capabilities`)),1),t(p(`textarea`,{"onUpdate:modelValue":r[8]||=e=>y.value=e,name:`project-agent-capabilities`,maxlength:`8192`,rows:`4`,disabled:M.value,placeholder:f(u)(`projectAgents.dialog.capabilitiesPlaceholder`)},null,8,Ot),[[C,y.value]])]),p(`label`,kt,[p(`span`,null,b(f(u)(`projectAgents.fields.initialPreferences`)),1),t(p(`textarea`,{"onUpdate:modelValue":r[9]||=e=>x.value=e,name:`project-agent-preferences`,maxlength:`8192`,rows:`4`,disabled:M.value,placeholder:f(u)(`projectAgents.dialog.preferencesPlaceholder`)},null,8,At),[[C,x.value]])]),p(`fieldset`,jt,[p(`legend`,null,b(f(u)(`projectAgents.fields.defaultModelStrategy`)),1),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.fields.executorPolicy`)),1),t(p(`select`,{"onUpdate:modelValue":r[10]||=e=>k.value=e,name:`project-agent-selection-mode`,disabled:M.value},[p(`option`,Nt,b(f(u)(`projectAgents.strategy.flexible`)),1),p(`option`,Pt,b(f(u)(`projectAgents.strategy.locked`)),1)],8,Mt),[[_,k.value]])]),p(`label`,null,[p(`span`,null,b(f(u)(`projectAgents.fields.modelIntent`)),1),t(p(`select`,{"onUpdate:modelValue":r[11]||=e=>D.value=e,name:`project-agent-model-mode`,disabled:M.value},[...r[16]||=[p(`option`,{value:`adaptive`},`adaptive`,-1),p(`option`,{value:`fast`},`fast`,-1),p(`option`,{value:`balanced`},`balanced`,-1),p(`option`,{value:`deep`},`deep`,-1)]],8,Ft),[[_,D.value]])]),p(`label`,It,[p(`span`,null,b(f(u)(`projectAgents.fields.allowList`)),1),t(p(`textarea`,{"onUpdate:modelValue":r[12]||=e=>A.value=e,name:`project-agent-allow-list`,rows:`3`,disabled:M.value,placeholder:f(u)(`projectAgents.dialog.allowListPlaceholder`)},null,8,Lt),[[C,A.value]])]),p(`small`,null,b(k.value===`locked`?f(u)(`projectAgents.strategy.lockedUnavailable`):f(u)(`projectAgents.strategy.providerNeutral`)),1)])]),N.value?(h(),E(`p`,Rt,b(N.value),1)):w(``,!0),p(`footer`,zt,[p(`button`,{class:`quiet-button`,type:`button`,disabled:M.value,onClick:r[13]||=e=>a(`close`)},b(f(u)(`common.actions.cancel`)),9,Bt),p(`button`,{class:`project-agent-primary-action`,type:`submit`,disabled:M.value},b(L.value?f(u)(`projectAgents.dialog.saveEdit`):f(u)(`projectAgents.dialog.saveCreate`)),9,Vt)])],32)],544)):w(``,!0)}}),[[`__scopeId`,`data-v-83825f22`]]),Ut=[`aria-label`],Wt={class:`project-agents-header`},Gt={class:`project-agents-header-meta`},Kt=[`disabled`],qt={class:`project-agents-summary`,"aria-live":`polite`},Jt={class:`project-agents-toolbar`},Yt={class:`project-agents-search`},Xt={class:`sr-only`},Zt=[`placeholder`],Qt=[`aria-label`],$t=[`aria-pressed`,`onClick`],en={key:0,class:`project-agents-state`},tn={key:1,class:`project-agents-state is-error`,role:`alert`},nn={key:2,class:`project-agents-state`},rn=[`disabled`],an={key:3,class:`project-agents-state`},on={key:4,class:`project-agents-directory`},sn=[`aria-label`],cn=[`aria-current`,`onClick`],ln={class:`project-agent-row-heading`},un=[`aria-label`],dn={class:`project-agent-kind`},fn={class:`project-agent-row-id`},pn={class:`project-agent-row-projects`},mn={key:0},hn={class:`project-agent-row-responsibility`},gn={class:`project-agent-row-work`},_n={class:`project-agent-row-capabilities`},vn=[`aria-label`],yn={class:`project-agent-detail-heading`},bn=[`aria-label`],xn={key:0},Sn={key:0},Cn={class:`project-agent-detail-actions`},wn=[`disabled`],Tn=[`disabled`],En={key:0,class:`project-agent-detail-notice`,role:`status`},Dn={class:`project-agent-detail-meta`},On={key:0},kn={class:`project-agent-detail-source`,"data-detail-section":`recruitment`},An={class:`project-agent-detail-section`,"aria-labelledby":`project-agent-recruitment-heading`},jn={class:`project-agent-section-heading`},Mn={id:`project-agent-recruitment-heading`},Nn={key:0,class:`project-agent-recruitment-list`},Pn={class:`project-agent-card-actions`},Fn=[`disabled`,`onClick`],In=[`disabled`,`onClick`],Ln={class:`project-agent-compact-meta`},Rn={key:1,class:`project-agent-muted`},zn={class:`project-agent-detail-section is-responsibility`},Bn={key:0,class:`project-agent-tags`},Vn={class:`project-agent-detail-source`,"data-detail-section":`assignments`},Hn={class:`project-agent-detail-section`},Un={class:`project-agent-section-heading`},Wn={class:`project-agent-section-tools`},Gn={key:0,class:`project-agent-assignment-list`},Kn={class:`project-agent-card-actions`},qn=[`onClick`],Jn=[`onClick`],Yn={key:0},Xn={key:1,class:`project-agent-inline-list`},Zn={class:`project-agent-strategy-note`},Qn={key:0},$n={key:2,class:`project-agent-tags`},er={key:3},tr={key:1,class:`project-agent-muted`},nr={class:`project-agent-detail-source`,"data-detail-section":`executors`},rr={class:`project-agent-detail-section`},ir={class:`project-agent-section-heading`},ar={class:`project-agent-muted`},or={key:0,class:`project-agent-tags`},sr={key:1,class:`project-agent-blocked`},cr={key:2,class:`project-agent-muted`},lr={class:`project-agent-section-tools`},ur={key:3,class:`project-agent-executor-list`},dr=[`onClick`],fr=[`disabled`,`onClick`],pr=[`disabled`,`onClick`],mr={class:`project-agent-detail-source`,"data-detail-section":`tasks`},hr={class:`project-agent-detail-section`},gr={class:`project-agent-section-heading`},_r={key:0,class:`project-agent-task-list`},vr={key:0},yr={key:1,class:`project-agent-inline-list`},br=[`aria-label`],xr={class:`project-agent-section-heading`},Sr={key:0,class:`project-agent-execution-summary-list`},Cr=[`aria-label`],wr={key:1},Tr={class:`project-agent-execution-summary-meta`},Er={key:0},Dr={key:0},Or={key:0},kr={key:1},Ar={key:2},jr={key:1,class:`project-agent-muted`},Mr=[`aria-label`],Nr={class:`project-agent-section-heading`},Pr={class:`project-agent-execution-summary-list`},Fr=[`aria-label`],Ir={key:1},Lr={class:`project-agent-execution-summary-meta`},Rr={key:0},zr={key:0},Br={key:1},Vr={key:2},Hr={key:4},Ur={key:5,class:`project-agent-routing-decision`},Wr={class:`project-agent-section-heading`},Gr={key:0},Kr={key:1},qr={key:2},Jr={key:0},Yr={key:3},Xr={key:0},Zr={key:4},Qr={class:`project-agent-execution-line`},$r={key:0},ei={key:1},ti={key:2},ni={key:6},ri={key:7},ii={key:1,class:`project-agent-muted`},ai={class:`project-agent-detail-source`,"data-detail-section":`activity`},oi={class:`project-agent-detail-section`},si={class:`project-agent-section-heading`},ci={key:0},li={key:0,class:`project-agent-heatmap-wrap project-agent-heatmap-viewport`},ui=[`aria-label`],di=[`aria-label`,`aria-pressed`,`onClick`],fi={class:`sr-only`},pi={key:0,class:`project-agent-day-detail`},mi={key:0,class:`project-agent-muted`},hi={key:1},gi={key:1,class:`project-agent-muted`},_i={class:`project-agent-detail-source`,"data-detail-section":`clients`},vi={class:`project-agent-detail-section`},yi={class:`project-agent-section-heading`},bi={key:0,class:`project-agent-client-list`},xi={key:0},Si={key:1},Ci={key:2},wi={key:1,class:`project-agent-muted`},Ti={class:`project-agent-detail-source`,"data-detail-section":`routing`},Ei={class:`project-agent-detail-section`},Di={class:`project-agent-section-heading`},Oi={class:`project-agent-section-tools`},ki={key:0,class:`project-agent-rule-list`},Ai=[`disabled`,`onClick`],ji={key:1,class:`project-agent-muted`},Mi={class:`project-agent-note`},Ni={class:`project-agent-detail-source`,"data-detail-section":`learning`},Pi={class:`project-agent-detail-section`},Fi={class:`project-agent-section-heading`},Ii={key:0,class:`project-agent-learning-list`},Li={key:0},Ri={key:1,class:`project-agent-inline-list`},zi={key:0},Bi={key:2,class:`project-agent-evidence-list`},Vi=[`disabled`,`onClick`],Hi={key:3,class:`project-agent-learning-actions`},Ui=[`disabled`,`onClick`],Wi={key:1,class:`project-agent-muted`},Gi={class:`project-agent-note`},Ki={class:`project-agent-detail-section`},qi={key:1,class:`project-agent-detail-placeholder`},Ji=P(n({__name:`ProjectAgentsPage`,setup(n){let o=[`assignments`,`tasks`,`activity`,`recruitments`,`executors`,`routingRules`,`learning`],s=N(),g=l([]),_=l(!1),ee=l(``),x=l(`all`),j=l(`all`),P=l(``),F=l(``),ne=l(!1),I=l(null),re=l(!1),L=l(`assign`),ie=l(null),R=l(!1),z=l({}),B=l(``),V=l(``),H=l(``),U=l(``),ae=l(``),oe=l(!1),se=l(`executor`),ce=l(null),le=l(null),ue=0,de=0,fe=new Set([`awaiting_recruitment`,`queued`,`running`,`paused`,`awaiting_review`,`blocked`]);function pe(e){return`${e}:${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}let me=m(()=>s.state?.personalProjects??[]),W=m(()=>s.activePersonalSpace?.id??``),ge=m(()=>new Map(me.value.map(e=>[e.project_id,e]))),_e=m(()=>[{value:`all`,label:u(`projectAgents.allProjects`)},...me.value.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id}))]),ve=m(()=>[{value:`all`,label:u(`projectAgents.status.all`)},{value:`active`,label:u(`projectAgents.status.active`)},{value:`inactive`,label:u(`projectAgents.status.inactive`)},{value:`archived`,label:u(`projectAgents.status.archived`)}]),ye=m(()=>{let e=P.value.trim().toLocaleLowerCase(y());return g.value.filter(e=>x.value===`all`||Q(e).some(({personalProjectId:e})=>e===x.value)).filter(e=>j.value===`all`||e.profile.status===j.value).filter(t=>!e||it(t).toLocaleLowerCase(y()).includes(e)).sort(tt)}),G=m(()=>ye.value.find(e=>e.agentId===F.value)??null),be=m(()=>g.value.filter(({profile:e})=>e.status===`active`).length),xe=m(()=>g.value.reduce((e,t)=>e+Q(t).length,0)),Se=m(()=>new Set(g.value.flatMap(e=>Q(e).map(({personalProjectId:e})=>e))).size),Ce=m(()=>x.value===`all`?G.value?.assignments?.find(({status:e})=>e===`active`)?.personalProjectId??G.value?.personalProjectId??me.value[0]?.project_id??null:x.value),we=m(()=>G.value?.activity??null),Te=m(()=>we.value?.days.find(({date:e})=>e===V.value)??null),Ee=m(()=>Object.entries(G.value?.learningEvidence??{})),De=m(()=>G.value?.recruitments??[]);e(()=>{s.runtimeStatus===`idle`&&s.refresh()}),i(W,e=>{++de,z.value={},F.value=``,g.value=[],e?Oe(e):s.runtimeStatus!==`loading`&&(_.value=!1)},{immediate:!0}),i(ye,e=>{e.some(e=>e.agentId===F.value)||(F.value=e[0]?.agentId??``),e.some(e=>e.activity?.days.some(({date:e})=>e===V.value))||(V.value=``)},{immediate:!0}),i([F,W],([e,t])=>{V.value=``,e&&t&&K(e,t)},{immediate:!0});async function Oe(e=W.value){if(!e)return;let t=++ue;_.value=!0,ee.value=``;try{let n=new URLSearchParams({personalSpaceId:e}),[r,i]=await Promise.allSettled([M(`/api/project-agents?${n}`),M(`/api/project-agent-tasks?${n}`)]);if(r.status===`rejected`)throw r.reason;if(t===ue){let e=ha(Je(r.value)),t=i.status===`fulfilled`?ca(i.value).filter(e=>fe.has(e.status)):[];g.value=Yi(e,t)}}catch(e){t===ue&&(ee.value=e instanceof Error?e.message:u(`projectAgents.loadError`))}finally{t===ue&&(_.value=!1)}}async function K(e=F.value,t=W.value){let n=g.value.find(t=>t.agentId===e);if(!n||!t)return;let r=++de;R.value=!0,B.value=``,Ae(e,`loading`);let i=new URLSearchParams({personalSpaceId:t,agentId:e}),a=Xi(),s=new URLSearchParams({personalSpaceId:t,agentId:e,fromDate:a.fromDate,toDate:a.toDate}),c={assignments:M(`/api/project-agent-assignments?${i}`),tasks:M(`/api/project-agent-tasks?${i}`),activity:M(`/api/project-agent-activity?${s}`),recruitments:M(`/api/project-agent-recruitments?personalSpaceId=${encodeURIComponent(t)}`),executors:M(`/api/executors?personalSpaceId=${encodeURIComponent(t)}`),routingRules:M(`/api/executor-routing-rules?personalSpaceId=${encodeURIComponent(t)}`),learning:M(`/api/project-agent-routing-learning?${i}`)};await Promise.all(o.map(async i=>{try{let a=await c[i];if(!Me(r,e,t))return;Ne(n,i,a),je(e,i,{status:`ready`,error:``})}catch(n){if(!Me(r,e,t))return;je(e,i,{status:`error`,error:n instanceof Error?n.message:u(`projectAgents.detail.sectionUnavailable`)})}})),Me(r,e,t)&&(R.value=!1)}function ke(e=`idle`){return Object.fromEntries(o.map(t=>[t,{status:e,error:``}]))}function Ae(e,t){z.value={...z.value,[e]:ke(t)}}function je(e,t,n){z.value={...z.value,[e]:{...z.value[e]??ke(),[t]:n}}}function q(e){let t=(Array.isArray(e)?e:[e]).map(e=>z.value[F.value]?.[e]??{status:`idle`,error:``});return t.find(({status:e})=>e===`error`)??t.find(({status:e})=>e===`loading`)??t.find(({status:e})=>e===`idle`)??{status:`ready`,error:``}}function Me(e,t,n){return e===de&&t===F.value&&n===W.value}function Ne(e,t,n){let r;switch(t){case`assignments`:Pe(n,[`assignments`,`items`]),r={assignments:ra(n,e)};break;case`tasks`:Pe(n,[`tasks`,`items`]),r={tasks:ca(n)};break;case`activity`:{let e=Qi(n);if(!e)throw Error(u(`projectAgents.detail.sectionUnavailable`));r={activity:e};break}case`recruitments`:Pe(n,[`recruitments`,`items`]),r={recruitments:ua(n).filter(t=>da(t,e))};break;case`executors`:Pe(n,[`executors`,`items`]),r={executorDirectory:aa(n),clientEvidence:fa(n)};break;case`routingRules`:Pe(n,[`rules`,`items`]),r={routingRules:pa(n)};break;case`learning`:Pe(n,[`learningEvidence`,`learning_evidence`,`items`],!0),r={learningEvidence:ma(n)};break}g.value=g.value.map(t=>t.agentId===e.agentId?{...t,...r}:t)}function Pe(e,t,n=!1){if(Array.isArray(e))return;let r=J(e);if(!t.some(e=>Array.isArray(r[e])||n&&Fe(r[e])))throw Error(u(`projectAgents.detail.sectionUnavailable`))}function Fe(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function Ie(e,t,n){let r=t===`ignore`?n:e.learningKey??e.modelStrategyKey,i=G.value;if(!(!r||!i||!W.value||H.value)){if(t===`reset`&&(!e.personalProjectId||!e.workKind||!e.executor)){B.value=u(`projectAgents.learning.resetUnavailable`);return}H.value=r;try{await k(`/api/project-agent-learning/${encodeURIComponent(r)}`,{action:t,personalSpaceId:W.value,personalProjectId:e.personalProjectId,agentId:i.agentId,workKind:e.workKind,executorId:e.executor,modelStrategy:e.modelStrategy,modelStrategyKey:e.modelStrategyKey,resetAt:t===`reset`?new Date().toISOString():void 0,idempotencyKey:t===`ignore`?`console-learning:${r}:ignore`:pe(`console-learning:${r}:reset`),reason:`Console requested ${t} for explicit evidence`}),await K()}catch(e){B.value=e instanceof Error?e.message:u(`projectAgents.learning.updateFailed`)}finally{H.value=``}}}async function Le(e,t){if(!(!W.value||U.value)){U.value=e.recruitmentId;try{await O(`/api/project-agent-recruitments/decision`,{personalSpaceId:W.value,personalProjectId:e.personalProjectId,recruitmentId:e.recruitmentId,expectedRevision:e.revision??0,decision:t,reason:u(`projectAgents.recruitment.${t}Reason`)}),await K()}catch(e){B.value=e instanceof Error?e.message:u(`projectAgents.recruitment.decisionFailed`)}finally{U.value=``}}}async function Re(e,t){if(!(!W.value||ae.value)){ae.value=e.executorId;try{await O(`/api/executors/authorization`,{personalSpaceId:W.value,executorId:e.executorId,status:t,expectedRevision:e.permissionRevision??0,idempotencyKey:pe(`console-executor:${e.executorId}:${t}`),reason:u(`projectAgents.routing.${t===`authorized`?`authorizeReason`:`revokeReason`}`)}),await K()}catch(e){B.value=e instanceof Error?e.message:u(`projectAgents.routing.authorizationFailed`)}finally{ae.value=``}}}function ze(e=null){se.value=`executor`,ce.value=e,le.value=null,oe.value=!0}function Be(e=null){se.value=`rule`,le.value=e,ce.value=null,oe.value=!0}function Ve(){oe.value=!1,ce.value=null,le.value=null}function He(e){G.value&&(g.value=g.value.map(t=>t.agentId===G.value?.agentId?{...t,executorDirectory:ga([...t.executorDirectory??[],e],({executorId:e})=>e)}:t),Ve())}function We(e){G.value&&(g.value=g.value.map(t=>t.agentId===G.value?.agentId?{...t,routingRules:ga([...t.routingRules??[],e],({ruleId:e})=>e)}:t),Ve())}function Ge(e){se.value===`executor`?He(e):We(e)}async function Ke(e){if(!(!W.value||!e.ruleId||U.value)){U.value=`rule:${e.ruleId}`;try{await k(`/api/executor-routing-rules/${encodeURIComponent(e.ruleId)}`,{personalSpaceId:W.value,ruleId:e.ruleId,expectedRevision:e.revision??0,status:`disabled`,idempotencyKey:`console-rule:${e.ruleId}:disable`,reason:`Console disabled explicit routing rule`}),await K()}catch(e){B.value=e instanceof Error?e.message:u(`projectAgents.routing.updateFailed`)}finally{U.value=``}}}async function Xe(e){if(e.profile.cleanupEligible){R.value=!0;try{await A(`/api/project-agents/${encodeURIComponent(e.agentId)}?personalSpaceId=${encodeURIComponent(e.personalSpaceId)}&reason=archived%20test%20role`),await Oe()}catch(e){B.value=e instanceof Error?e.message:u(`projectAgents.source.cleanupFailed`)}finally{R.value=!1}}}function tt(e,t){let n={active:0,inactive:1,archived:2};return n[e.profile.status]-n[t.profile.status]||e.profile.name.localeCompare(t.profile.name,y())||e.agentId.localeCompare(t.agentId,y())}function nt(e){return e?ge.value.get(e)?.profile.name??e:u(`projectAgents.notReported`)}function Q(e){return e.assignments?.length?e.assignments:e.personalProjectId?[rt(e)]:[]}function rt(e){return{assignmentId:`legacy:${e.agentId}:${e.personalProjectId}`,personalSpaceId:e.personalSpaceId,personalProjectId:e.personalProjectId??``,agentId:e.agentId,responsibility:e.profile.responsibility,capabilities:e.profile.capabilities,status:e.profile.status===`active`?`active`:`ended`,assignedAt:e.createdAt,updatedAt:e.updatedAt,reason:null}}function it(e){return[e.agentId,e.profile.name,e.profile.occupationEmoji??``,e.profile.responsibility,...e.profile.capabilities??[],...e.profile.workKinds??[],...Q(e).flatMap(e=>[e.personalProjectId,e.responsibility,e.scope??``,...e.workKinds??[]]),...(e.tasks??[]).flatMap(e=>[e.taskId,e.title,e.workKind??``])].join(` `)}function lt(){I.value=null,ne.value=!0}function ut(e){I.value=e,ne.value=!0}function dt(){ne.value=!1,I.value=null}function ft(e,t=null,n=`assign`){I.value=e,ie.value=t,L.value=n,re.value=!0}function pt(){re.value=!1,ie.value=null,L.value=`assign`}function mt(e){I.value&&(g.value=g.value.map(t=>t.agentId===I.value?.agentId?{...t,assignments:ga([...t.assignments??[],e],({assignmentId:e})=>e)}:t),F.value=I.value.agentId,pt())}function ht(){pt(),K()}function gt(e){let t=ta(e),n=g.value.filter(e=>!(e.agentId===t.agentId&&t.personalProjectId&&e.personalProjectId===t.personalProjectId));g.value=ha([...n,t]),t.personalProjectId&&(x.value=t.personalProjectId),j.value=`all`,P.value=``,F.value=t.agentId,s.notify(u(`projectAgents.saved`))}function _t(e){if(!e)return u(`projectAgents.notReported`);let t=new Date(e);return Number.isNaN(t.valueOf())?u(`projectAgents.notReported`):new Intl.DateTimeFormat(y(),{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}).format(t)}function vt(e){if(!e)return u(`projectAgents.notReported`);let t=new Date(`${e}T00:00:00Z`);return Number.isNaN(t.valueOf())?e:new Intl.DateTimeFormat(y(),{month:`short`,day:`numeric`}).format(t)}function yt(e){return e?.mode??`adaptive`}function bt(e){return e?.mode??`flexible`}function xt(e){return e?.mode===`locked`}function St(e){return e?e.allowList?.length?e.allowList:((e.mode===`locked`?e.lockedExecutorIds:e.preferredExecutorIds)??[]).map(e=>({executorId:e})):[]}function $(e){if(e.actualExecution)return e.actualExecution;let t=[...e.events??[]].reverse().find(e=>e.actualExecution);return t?ct(t):null}function Ct(e){return e.workerLabel&&e.workerId&&e.workerLabel!==e.workerId?`${e.workerLabel} · ${e.workerId}`:e.workerLabel||e.workerId||u(`projectAgents.notReported`)}function wt(e){return e.workerOccupationEmoji||``}function Tt(e){return Ot(e.workerStatus||e.status)}function Et(e){return e.workerLabel||e.agentName||e.workerId||e.agentId||u(`projectAgents.notReported`)}function Dt(e){return e.workerOccupationEmoji||e.occupationEmoji||``}function Ot(e){return e?At(e):u(`projectAgents.notReported`)}function kt(e){return(e.tasks??[]).find(e=>fe.has(e.status))??null}function At(e){let t=`projectAgents.taskStatus.${e}`,n=u(t);return n===t?e:n}function jt(e){return u(`projectAgents.agentType.${e??`durable`}`)}function Mt(e){return u(e?`projectAgents.clients.${e}`:`projectAgents.notReported`)}function Nt(e){return _a([...e.profile.allowedClients??[],...e.observedClients??[],...(e.clientEvidence??[]).map(({client:e})=>e)])}function Pt(e,t){return e.clientEvidence?.find(e=>e.client===t)}function Ft(e,t){return Pt(e,t)?.actualUse?.count??0}function It(e){return e.neutral!==!1||e.sampleCount<=0}function Lt(e){return It(e)?u(`projectAgents.learning.neutral`):u(`projectAgents.learning.recorded`)}function Rt(e){return e.recentWeightedSamples??u(`projectAgents.notReported`)}function zt(e){return e.score??``}function Bt(e,t){let n=Math.max(...t.days.map(({total:e})=>e),0);return!n||!e.total?0:Math.min(4,Math.ceil(e.total/n*4))}function Vt(e){V.value=e.date}function Ji(e,t){return t.ownerAgentId===e.agentId||t.leadAgentId===e.agentId||t.coordinatorAgentId===e.agentId||t.participants.some(t=>t.agentId===e.agentId)}function Yi(e,t){return e.map(e=>{let n=t.filter(t=>Ji(e,t));return n.length?{...e,tasks:ga([...e.tasks??[],...n],({taskId:e})=>e)}:e})}function Xi(){let e=new Date,t=new Date(e);return t.setUTCFullYear(t.getUTCFullYear()-1),{fromDate:Zi(t),toDate:Zi(e)}}function Zi(e){return e.toISOString().slice(0,10)}function Qi(e){let t=J(e),n=Z(t.days);if(!n.length&&!(`days`in t))return null;let r=n.map(e=>{let t=J(e);return{date:X(t,`date`,`date`)??``,completed:typeof t.completed==`number`?t.completed:0,failed:typeof t.failed==`number`?t.failed:0,cancelled:typeof t.cancelled==`number`?t.cancelled:0,total:typeof t.total==`number`?t.total:0,tasks:Z(t.tasks).map(ea).filter(e=>!!e)}}).filter(({date:e})=>e),i=X(t,`fromDate`,`from_date`),a=X(t,`toDate`,`to_date`),o=r.some(({total:e,tasks:t})=>e>0||!!t?.length),s=i??(r.length?r.map(({date:e})=>e).sort()[0]:void 0),c=a??(r.length?r.map(({date:e})=>e).sort().at(-1):void 0),l=o&&s&&c?$i(r,s,c):[];return{agentId:X(t,`agentId`,`agent_id`)??F.value,personalSpaceId:X(t,`personalSpaceId`,`personal_space_id`)??W.value,fromDate:s,toDate:c,days:l}}function $i(e,t,n){let r=new Map(e.map(e=>[e.date,e])),i=new Date(`${t}T00:00:00Z`),a=new Date(`${n}T00:00:00Z`);if(Number.isNaN(i.valueOf())||Number.isNaN(a.valueOf())||i>a)return e;let o=[];for(let e=new Date(i);e<=a;e.setUTCDate(e.getUTCDate()+1)){let t=Zi(e);o.push(r.get(t)??{date:t,completed:0,failed:0,cancelled:0,total:0,tasks:[]})}return o.reverse()}function ea(e){let t=J(e),n=X(t,`taskId`,`task_id`);if(!n)return null;let r=Qe(Y(t,`actualExecution`,`actual_execution`))??Qe({executor:X(t,`actualExecutor`,`actual_executor`),provider:X(t,`actualModelProvider`,`actual_model_provider`),model:X(t,`actualModel`,`actual_model`),client:X(t,`sourceApplication`,`source_application`)});return{taskId:n,title:X(t,`title`,`title`)??n,status:X(t,`status`,`status`),summary:X(t,`summary`,`summary`)??``,occurredAt:X(t,`occurredAt`,`occurred_at`)??``,personalProjectId:X(t,`personalProjectId`,`personal_project_id`),assignmentId:X(t,`assignmentId`,`assignment_id`),collaborators:Z(t.collaborators).map(et),sourceApplication:X(t,`sourceApplication`,`source_application`),actualExecution:r,actualModelProvider:X(t,`actualModelProvider`,`actual_model_provider`),actualModel:X(t,`actualModel`,`actual_model`)}}function ta(e){let t=J(e),n=J(t.profile),r=X(t,`agentId`,`agent_id`)??``,i=X(t,`createdAt`,`created_at`)??``,a=X(t,`updatedAt`,`updated_at`)??i,o={name:X(n,`name`,`name`)??r,responsibility:X(n,`responsibility`,`responsibility`)??``,capabilities:Z(n.capabilities).filter(e=>typeof e==`string`),initialPreferences:Z(Y(n,`initialPreferences`,`initial_preferences`)).filter(e=>typeof e==`string`),status:X(n,`status`,`status`)??`active`,occupationEmoji:X(n,`occupationEmoji`,`occupation_emoji`),agentType:X(n,`agentType`,`agent_type`),workKinds:Z(Y(n,`workKinds`,`work_kinds`)).filter(e=>typeof e==`string`),defaultModelStrategy:Ye(Y(n,`defaultModelStrategy`,`default_model_strategy`)),executorPolicy:Ze(Y(n,`executorPolicy`,`executor_policy`)),allowedClients:Z(Y(n,`allowedClients`,`allowed_clients`)).filter(e=>typeof e==`string`),testSource:X(n,`testSource`,`test_source`),cleanupEligible:Y(n,`cleanupEligible`,`cleanup_eligible`)===!0},s={agentId:r,personalSpaceId:X(t,`personalSpaceId`,`personal_space_id`)??W.value,personalProjectId:X(t,`personalProjectId`,`personal_project_id`),profile:o,createdAt:i,updatedAt:a};return{...s,memoryScope:X(t,`memoryScope`,`memory_scope`)??void 0,assignments:Z(t.assignments).map(e=>$e(e,s)).filter(Boolean),recruitments:ua(t.recruitments??t.recruitmentHistory).filter(e=>da(e,s)),recruitmentId:X(t,`recruitmentId`,`recruitment_id`),temporaryTaskId:X(t,`temporaryTaskId`,`temporary_task_id`),workStatus:X(t,`workStatus`,`work_status`),openTaskCount:typeof t.openTaskCount==`number`?t.openTaskCount:typeof t.open_task_count==`number`?t.open_task_count:void 0,currentTaskId:X(t,`currentTaskId`,`current_task_id`),observedClients:Z(t.observedClients??t.observed_clients).filter(e=>typeof e==`string`),recruitedAt:X(t,`recruitedAt`,`recruited_at`),recruitmentReason:X(t,`recruitmentReason`,`recruitment_reason`),recruitmentSourceApplication:X(t,`recruitmentSourceApplication`,`recruitment_source_application`),isTestRole:!!o.testSource||o.cleanupEligible||t.isTestRole===!0||t.is_test_role===!0,tasks:Z(t.tasks??t.taskHistory).map(at).filter(Boolean),activity:Qi(t.activity),clientEvidence:fa(t.clientEvidence??t.client_evidence),routingRules:pa(t.routingRules??t.routing_rules),learningEvidence:sa(t.learningEvidence??t.learning_evidence)}}function na(e){let t=J(e),n=X(t,`client`,`client`);if(!n)return null;let r=J(Y(t,`actualUse`,`actual_use`));return{client:n,allowed:t.allowed===!0,integrationStatus:X(t,`integrationStatus`,`integration_status`)??void 0,actualUse:Object.keys(r).length?{count:typeof r.count==`number`?r.count:0,lastUsedAt:X(r,`lastUsedAt`,`last_used_at`)}:null}}function ra(e,t){let n=J(e);return Z(Array.isArray(e)?e:n.assignments??n.items).map(e=>$e(e,t)).filter(e=>!!e)}function ia(e){let t=J(e),n=X(t,`provider`,`provider`),r=X(t,`model`,`model`);return!n||!r?null:{provider:n,model:r,capabilities:Z(t.capabilities).filter(e=>typeof e==`string`),available:typeof t.available==`boolean`?t.available:void 0,strategyModes:Z(Y(t,`strategyModes`,`strategy_modes`)).filter(e=>typeof e==`string`),reasoningEfforts:Z(Y(t,`reasoningEfforts`,`reasoning_efforts`)).filter(e=>typeof e==`string`),observedAt:X(t,`observedAt`,`observed_at`),unavailableReason:X(t,`unavailableReason`,`unavailable_reason`)}}function aa(e){let t=J(e);return Z(Array.isArray(e)?e:t.executors??t.items).map(e=>{let t=J(e),n=X(t,`executorId`,`executor_id`);if(!n)return null;let r=J(Y(t,`actualUse`,`actual_use`));return{executorId:n,label:X(t,`label`,`label`),provider:X(t,`provider`,`provider`),model:X(t,`model`,`model`),client:X(t,`client`,`client`),availabilityStatus:X(t,`availabilityStatus`,`availability_status`),personalSpaceId:X(t,`personalSpaceId`,`personal_space_id`),displayName:X(t,`displayName`,`display_name`),executorKind:X(t,`executorKind`,`executor_kind`),capabilities:Z(Y(t,`capabilities`,`capabilities`)).filter(e=>typeof e==`string`),globalPriority:typeof Y(t,`globalPriority`,`global_priority`)==`number`?Y(t,`globalPriority`,`global_priority`):null,healthRequired:Y(t,`healthRequired`,`health_required`)===!0,registrationStatus:X(t,`registrationStatus`,`registration_status`),permissionStatus:X(t,`permissionStatus`,`permission_status`),preflightStatus:X(t,`preflightStatus`,`preflight_status`),healthStatus:X(t,`healthStatus`,`health_status`),workspacePermission:typeof Y(t,`workspacePermission`,`workspace_permission`)==`boolean`?Y(t,`workspacePermission`,`workspace_permission`):null,revision:typeof t.revision==`number`?t.revision:void 0,permissionRevision:typeof Y(t,`permissionRevision`,`permission_revision`)==`number`?Y(t,`permissionRevision`,`permission_revision`):void 0,registeredAt:X(t,`registeredAt`,`registered_at`),updatedAt:X(t,`updatedAt`,`updated_at`),testSource:X(t,`testSource`,`test_source`),cleanupEligible:Y(t,`cleanupEligible`,`cleanup_eligible`)===!0,advertisedModels:Z(Y(t,`advertisedModels`,`advertised_models`)).map(ia).filter(e=>e!==null),availableModels:Z(Y(t,`availableModels`,`available_models`)).map(ia).filter(e=>e!==null),actualUse:Object.keys(r).length?{count:typeof r.count==`number`?r.count:0,lastUsedAt:X(r,`lastUsedAt`,`last_used_at`)}:null}}).filter(e=>e!==null)}function oa(e){let t=J(e),n=X(t,`ruleId`,`rule_id`);if(!n)return null;let r=X(t,`status`,`status`);return{ruleId:n,scope:X(t,`scope`,`scope`)??`global`,priority:typeof t.priority==`number`?t.priority:0,personalProjectId:X(t,`personalProjectId`,`personal_project_id`),taskId:X(t,`taskId`,`task_id`),workKind:X(t,`workKind`,`work_kind`),agentId:X(t,`agentId`,`agent_id`),enabled:t.enabled!==!1&&(!r||r===`active`),executorIds:Z(Y(t,`executorIds`,`executor_ids`)).filter(e=>typeof e==`string`),requiredCapabilities:Z(Y(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),modelStrategy:Ye(Y(t,`modelStrategy`,`model_strategy`)),reason:X(t,`reason`,`reason`),revision:typeof t.revision==`number`?t.revision:void 0,status:r??void 0,createdAt:X(t,`createdAt`,`created_at`),updatedAt:X(t,`updatedAt`,`updated_at`)}}function sa(e){let t=J(e),n=Array.isArray(e)?e:t.learningEvidence??t.learning_evidence??t.items,r=(Array.isArray(n)?n:Object.values(J(n))).map((e,t)=>{let n=J(e),r=X(n,`personalProjectId`,`personal_project_id`),i=X(n,`workKind`,`work_kind`),a=X(n,`executorId`,`executor_id`)??X(n,`executor`,`executor`),o=Ye(Y(n,`modelStrategy`,`model_strategy`)),s=X(n,`modelStrategyKey`,`model_strategy_key`),c=s??[r,i,a,String(t)].filter(Boolean).join(`:`),l=Z(Y(n,`evidenceContributions`,`evidence_contributions`)).map(e=>{let t=J(e),n=X(t,`signal`,`signal`),r=X(t,`evidenceKind`,`evidence_kind`)??`evidence`,i=typeof Y(t,`decayWeight`,`decay_weight`)==`number`?Y(t,`decayWeight`,`decay_weight`):null;return{evidenceId:X(t,`evidenceId`,`evidence_id`)??void 0,kind:r,count:typeof t.value==`number`?t.value:void 0,summary:n?`${n}${i===null?``:` · ${i.toFixed(3)}`}`:null,occurredAt:X(t,`occurredAt`,`occurred_at`)}}),u=typeof Y(n,`weightedSuccess`,`weighted_success`)==`number`?Y(n,`weightedSuccess`,`weighted_success`):0,d=typeof Y(n,`weightedFailure`,`weighted_failure`)==`number`?Y(n,`weightedFailure`,`weighted_failure`):0,f=Y(n,`halfLife`,`decay_half_life_days`);return[c,{learningKey:c,personalProjectId:r,workKind:i,executor:a,modelStrategy:o,modelStrategyKey:s,sampleCount:typeof Y(n,`sampleCount`,`sample_count`)==`number`?Y(n,`sampleCount`,`sample_count`):0,recentWeightedSamples:typeof Y(n,`recentCount`,`recent_count`)==`number`?Y(n,`recentCount`,`recent_count`):null,decayBasis:typeof f==`number`?`half-life ${f}d`:null,updatedAt:X(n,`asOf`,`as_of`)??X(n,`updatedAt`,`updated_at`),outcomes:{success:typeof Y(n,`successCount`,`success_count`)==`number`?Y(n,`successCount`,`success_count`):void 0,rework:typeof Y(n,`reworkCount`,`rework_count`)==`number`?Y(n,`reworkCount`,`rework_count`):void 0,failure:typeof Y(n,`failureCount`,`failure_count`)==`number`?Y(n,`failureCount`,`failure_count`):void 0,scoreCount:typeof Y(n,`ratingCount`,`rating_count`)==`number`?Y(n,`ratingCount`,`rating_count`):void 0},evidence:l,score:u-d,neutral:Y(n,`neutralDueToInsufficientEvidence`,`neutral_due_to_insufficient_evidence`)===!0}]});return Object.fromEntries(r)}function ca(e){let t=J(e);return Z(Array.isArray(e)?e:t.tasks??t.items).map(at).filter(Boolean)}function la(e){let t=J(e),n=X(t,`recruitmentId`,`recruitment_id`);return n?{recruitmentId:n,personalSpaceId:X(t,`personalSpaceId`,`personal_space_id`)??W.value,personalProjectId:X(t,`personalProjectId`,`personal_project_id`)??``,taskId:X(t,`taskId`,`task_id`)??``,coordinatorAgentId:X(t,`coordinatorAgentId`,`coordinator_agent_id`)??``,hrAgentId:X(t,`hrAgentId`,`hr_agent_id`),positionKind:X(t,`positionKind`,`position_kind`)??`durable`,workKind:X(t,`workKind`,`work_kind`)??``,requiredCapabilities:Z(Y(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),reasonCode:X(t,`reasonCode`,`reason_code`)??``,reason:X(t,`reason`,`reason`)??``,status:X(t,`status`,`status`)??`unknown`,confirmationMode:X(t,`confirmationMode`,`confirmation_mode`),proposedAgentId:X(t,`proposedAgentId`,`proposed_agent_id`)??``,revision:typeof t.revision==`number`?t.revision:void 0,recruitedAgentId:X(t,`recruitedAgentId`,`recruited_agent_id`),triggerSourceApplication:X(t,`triggerSourceApplication`,`trigger_source_application`),triggerSourceSessionId:X(t,`triggerSourceSessionId`,`trigger_source_session_id`),testSource:X(t,`testSource`,`test_source`),cleanupEligible:Y(t,`cleanupEligible`,`cleanup_eligible`)===!0,createdAt:X(t,`createdAt`,`created_at`)??``,updatedAt:X(t,`updatedAt`,`updated_at`)??``,fulfilledAt:X(t,`fulfilledAt`,`fulfilled_at`)}:null}function ua(e){let t=J(e);return Z(Array.isArray(e)?e:t.recruitments??t.items).map(la).filter(e=>!!e)}function da(e,t){return e.recruitedAgentId===t.agentId||e.proposedAgentId===t.agentId||e.recruitmentId===t.recruitmentId}function fa(e){let t=J(e);return Z(Array.isArray(e)?e:t.clients??t.executors??t.items).map(na).filter(Boolean)}function pa(e){let t=J(e);return Z(Array.isArray(e)?e:t.rules??t.items).map(oa).filter(Boolean)}function ma(e){let t=J(e);return sa(t.learningEvidence??t.learning_evidence??e)}function ha(e){let t=new Map;return e.map(ta).forEach(e=>{let n=t.get(e.agentId);if(!n){t.set(e.agentId,e);return}let r=[...Q(n),...Q(e)],i=[...n.tasks??[],...e.tasks??[]];t.set(e.agentId,{...n,personalProjectId:n.personalProjectId??e.personalProjectId,profile:{...n.profile,occupationEmoji:n.profile.occupationEmoji??e.profile.occupationEmoji,capabilities:_a([...n.profile.capabilities,...e.profile.capabilities]),workKinds:_a([...n.profile.workKinds??[],...e.profile.workKinds??[]]),defaultModelStrategy:n.profile.defaultModelStrategy??e.profile.defaultModelStrategy,executorPolicy:n.profile.executorPolicy??e.profile.executorPolicy,allowedClients:_a([...n.profile.allowedClients??[],...e.profile.allowedClients??[]])},assignments:ga(r,({assignmentId:e})=>e),recruitments:ga([...n.recruitments??[],...e.recruitments??[]],({recruitmentId:e})=>e),tasks:ga(i,({taskId:e})=>e),activity:n.activity??e.activity,clientEvidence:n.clientEvidence?.length?n.clientEvidence:e.clientEvidence,routingRules:n.routingRules?.length?n.routingRules:e.routingRules,learningEvidence:{...e.learningEvidence??{},...n.learningEvidence??{}},observedClients:_a([...n.observedClients??[],...e.observedClients??[]]),openTaskCount:Math.max(n.openTaskCount??0,e.openTaskCount??0)||void 0,currentTaskId:n.currentTaskId??e.currentTaskId,workStatus:n.workStatus??e.workStatus})}),[...t.values()]}function ga(e,t){return[...new Map(e.map(e=>[t(e),e])).values()]}function _a(e){return[...new Set(e)]}return(e,n)=>(h(),E(`section`,{class:`view project-agents-view`,"aria-label":f(u)(`projectAgents.aria`)},[p(`header`,Wt,[p(`div`,null,[p(`h2`,null,b(f(u)(`projectAgents.title`)),1),p(`p`,Gt,b(f(u)(`projectAgents.stats.total`,{count:g.value.length}))+` · `+b(f(u)(`projectAgents.stats.assignments`,{count:xe.value}))+` · `+b(f(u)(`projectAgents.stats.projects`,{count:Se.value})),1)]),p(`button`,{class:`project-agent-add`,type:`button`,disabled:!W.value,onClick:lt},b(f(u)(`projectAgents.add`)),9,Kt)]),p(`div`,qt,[p(`span`,null,b(f(u)(`projectAgents.stats.active`,{count:be.value})),1),p(`span`,null,b(f(u)(`projectAgents.stats.noOnlineClaim`)),1)]),p(`div`,Jt,[c(te,{modelValue:x.value,"onUpdate:modelValue":n[0]||=e=>x.value=e,class:`project-agents-project-filter`,"control-id":`project-agent-filter`,options:_e.value,label:f(u)(`projectAgents.projectFilter`)},null,8,[`modelValue`,`options`,`label`]),p(`label`,Yt,[p(`span`,Xt,b(f(u)(`projectAgents.searchLabel`)),1),t(p(`input`,{"onUpdate:modelValue":n[1]||=e=>P.value=e,type:`search`,placeholder:f(u)(`projectAgents.searchPlaceholder`)},null,8,Zt),[[C,P.value]])]),p(`div`,{class:`project-agents-status-filter`,"aria-label":f(u)(`projectAgents.fields.status`)},[(h(!0),E(v,null,a(ve.value,e=>(h(),E(`button`,{key:e.value,type:`button`,"aria-pressed":j.value===e.value,onClick:t=>j.value=e.value},b(e.label),9,$t))),128))],8,Qt)]),_.value?(h(),E(`div`,en,b(f(u)(`projectAgents.loading`)),1)):ee.value?(h(),E(`div`,tn,[p(`p`,null,b(ee.value),1),p(`button`,{class:`quiet-button`,type:`button`,onClick:n[2]||=e=>Oe()},b(f(u)(`projectAgents.retry`)),1)])):g.value.length?ye.value.length?(h(),E(`div`,on,[p(`div`,{class:`project-agent-list`,role:`list`,"aria-label":f(u)(`projectAgents.listLabel`)},[(h(!0),E(v,null,a(ye.value,e=>(h(),E(`button`,{key:e.agentId,type:`button`,class:S([`project-agent-row`,{selected:F.value===e.agentId}]),"aria-current":F.value===e.agentId?`true`:void 0,onClick:t=>F.value=e.agentId},[p(`span`,ln,[e.profile.occupationEmoji?(h(),E(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${f(u)(`projectAgents.fields.occupationEmoji`)}: ${e.profile.occupationEmoji}`},b(e.profile.occupationEmoji),9,un)):w(``,!0),p(`strong`,null,b(e.profile.name),1),p(`i`,dn,b(jt(e.profile.agentType)),1),p(`i`,{class:S(`is-${e.profile.status}`)},b(f(u)(`projectAgents.status.${e.profile.status}`)),3)]),p(`span`,fn,b(e.agentId),1),p(`span`,pn,[(h(!0),E(v,null,a(Q(e),e=>(h(),E(`b`,{key:e.assignmentId},b(nt(e.personalProjectId)),1))),128)),Q(e).length?w(``,!0):(h(),E(`em`,mn,b(f(u)(`projectAgents.notReported`)),1))]),p(`span`,hn,b(e.profile.responsibility||f(u)(`projectAgents.notReported`)),1),p(`span`,gn,[kt(e)?(h(),E(v,{key:0},[p(`i`,{class:S([`project-agent-work-dot`,{"is-live":kt(e).status===`running`}]),"aria-hidden":`true`},null,2),T(b(At(kt(e).status))+` · `+b(kt(e).title),1)],64)):e.workStatus===`blocked`||e.workStatus===`queued`?(h(),E(v,{key:1},[T(b(At(e.workStatus))+` · `+b(f(u)(`projectAgents.detail.stateReported`)),1)],64)):(h(),E(v,{key:2},[T(b(f(u)(`projectAgents.detail.noRun`)),1)],64))]),p(`span`,_n,[(h(!0),E(v,null,a(e.profile.capabilities.slice(0,3),e=>(h(),E(`b`,{key:e},b(e),1))),128))])],10,cn))),128))],8,sn),G.value?(h(),E(`aside`,{key:0,class:`project-agent-detail`,"aria-label":G.value.profile.name},[p(`header`,null,[p(`div`,yn,[p(`h3`,null,[G.value.profile.occupationEmoji?(h(),E(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${f(u)(`projectAgents.fields.occupationEmoji`)}: ${G.value.profile.occupationEmoji}`},b(G.value.profile.occupationEmoji),9,bn)):w(``,!0),T(b(G.value.profile.name),1)]),p(`p`,null,[T(b(G.value.agentId)+` · `+b(jt(G.value.profile.agentType)),1),G.value.isTestRole?(h(),E(`span`,xn,[T(` · `+b(f(u)(`projectAgents.source.testRole`)),1),G.value.profile.testSource?(h(),E(`span`,Sn,` · `+b(G.value.profile.testSource),1)):w(``,!0)])):w(``,!0)])]),p(`div`,Cn,[p(`button`,{class:`quiet-button`,type:`button`,disabled:R.value,onClick:n[3]||=e=>K()},b(R.value?f(u)(`projectAgents.detail.refreshing`):f(u)(`projectAgents.detail.refresh`)),9,wn),p(`button`,{class:`quiet-button`,type:`button`,onClick:n[4]||=e=>ut(G.value)},b(f(u)(`projectAgents.edit`)),1),G.value.profile.cleanupEligible?(h(),E(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:R.value,onClick:n[5]||=e=>Xe(G.value)},b(f(u)(`projectAgents.source.cleanup`)),9,Tn)):w(``,!0)])]),B.value?(h(),E(`p`,En,b(B.value),1)):w(``,!0),p(`dl`,Dn,[p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.assignments`)),1),p(`dd`,null,b(Q(G.value).length),1)]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.memoryScope`)),1),p(`dd`,null,b(G.value.memoryScope??f(u)(`projectAgents.notReported`)),1)]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.status`)),1),p(`dd`,null,b(f(u)(`projectAgents.status.${G.value.profile.status}`)),1)]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.recruitment`)),1),p(`dd`,null,[T(b(Mt(G.value.recruitmentSourceApplication)),1),G.value.recruitmentReason?(h(),E(`small`,On,b(G.value.recruitmentReason),1)):w(``,!0)])]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.updatedAt`)),1),p(`dd`,null,b(_t(G.value.updatedAt)),1)])]),p(`div`,kn,[c(qe,r(q(`recruitments`),{onRetry:K}),{default:D(()=>[p(`section`,An,[p(`div`,jn,[p(`h4`,Mn,b(f(u)(`projectAgents.sections.recruitment`)),1),p(`span`,null,b(De.value.length),1)]),De.value.length?(h(),E(`div`,Nn,[(h(!0),E(v,null,a(De.value,e=>(h(),E(`article`,{key:e.recruitmentId,class:`project-agent-recruitment-card`},[p(`header`,null,[p(`strong`,null,b(e.positionKind)+` · `+b(e.workKind||f(u)(`projectAgents.notReported`)),1),p(`div`,Pn,[p(`i`,null,b(e.status),1),e.status===`awaiting_confirmation`?(h(),E(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!U.value,onClick:t=>Le(e,`approve`)},b(f(u)(`projectAgents.recruitment.approve`)),9,Fn)):w(``,!0),e.status===`awaiting_confirmation`?(h(),E(`button`,{key:1,class:`quiet-button`,type:`button`,disabled:!!U.value,onClick:t=>Le(e,`cancel`)},b(f(u)(`projectAgents.recruitment.cancel`)),9,In)):w(``,!0)])]),p(`dl`,Ln,[p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.recruitment.hr`)),1),p(`dd`,null,b(e.hrAgentId||f(u)(`projectAgents.notReported`)),1)]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.recruitment.trigger`)),1),p(`dd`,null,b(Mt(e.triggerSourceApplication)),1)]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.recruitment.reason`)),1),p(`dd`,null,b(e.reason||e.reasonCode||f(u)(`projectAgents.notReported`)),1)]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.recruitment.time`)),1),p(`dd`,null,b(_t(e.fulfilledAt||e.createdAt)),1)])]),p(`small`,null,b(f(u)(`projectAgents.recruitment.testSource`))+` · `+b(e.testSource||f(u)(`projectAgents.notReported`)),1)]))),128))])):(h(),E(`p`,Rn,b(f(u)(`projectAgents.recruitment.empty`)),1))])]),_:1},16)]),p(`section`,zn,[p(`h4`,null,b(f(u)(`projectAgents.fields.responsibility`)),1),p(`p`,null,b(G.value.profile.responsibility||f(u)(`projectAgents.notReported`)),1),G.value.profile.capabilities.length?(h(),E(`div`,Bn,[(h(!0),E(v,null,a(G.value.profile.capabilities,e=>(h(),E(`span`,{key:e},b(e),1))),128))])):w(``,!0)]),p(`div`,Vn,[c(qe,r(q(`assignments`),{onRetry:K}),{default:D(()=>[p(`section`,Hn,[p(`div`,Un,[p(`h4`,null,b(f(u)(`projectAgents.sections.assignments`)),1),p(`div`,Wn,[p(`span`,null,b(Q(G.value).length),1),p(`button`,{class:`quiet-button`,type:`button`,onClick:n[6]||=e=>ft(G.value)},b(f(u)(`projectAgents.assignmentDialog.assign`)),1)])]),Q(G.value).length?(h(),E(`div`,Gn,[(h(!0),E(v,null,a(Q(G.value),e=>(h(),E(`article`,{key:e.assignmentId,class:`project-agent-assignment-card`},[p(`header`,null,[p(`strong`,null,b(nt(e.personalProjectId)),1),p(`div`,Kn,[p(`i`,{class:S(`is-${e.status}`)},b(f(u)(`projectAgents.assignmentStatus.${e.status}`)),3),e.status===`active`?(h(),E(`button`,{key:0,class:`quiet-button`,type:`button`,onClick:t=>ft(G.value,e,`end`)},b(f(u)(`projectAgents.assignmentDialog.end`)),9,qn)):w(``,!0),e.status===`active`?(h(),E(`button`,{key:1,class:`quiet-button`,type:`button`,onClick:t=>ft(G.value,e,`replace`)},b(f(u)(`projectAgents.assignmentDialog.replace`)),9,Jn)):w(``,!0)])]),p(`p`,null,b(e.responsibility||f(u)(`projectAgents.notReported`)),1),e.scope?(h(),E(`small`,Yn,b(f(u)(`projectAgents.fields.scope`))+` · `+b(e.scope),1)):w(``,!0),p(`small`,null,b(_t(e.assignedAt))+` → `+b(e.endedAt?_t(e.endedAt):f(u)(`projectAgents.assignmentStatus.active`)),1),e.workKinds?.length?(h(),E(`div`,Xn,[(h(!0),E(v,null,a(e.workKinds,e=>(h(),E(`span`,{key:e},b(e),1))),128))])):w(``,!0),p(`div`,Zn,[p(`span`,null,b(f(u)(`projectAgents.fields.assignmentModel`)),1),p(`strong`,null,b(yt(e.modelStrategyOverride))+` · `+b(bt(e.executorPolicyOverride)),1),xt(e.executorPolicyOverride)&&!St(e.executorPolicyOverride).length?(h(),E(`small`,Qn,b(f(u)(`projectAgents.strategy.lockedUnavailable`)),1)):w(``,!0)]),St(e.executorPolicyOverride).length?(h(),E(`div`,$n,[(h(!0),E(v,null,a(St(e.executorPolicyOverride),e=>(h(),E(`span`,{key:e.executorId},b(e.label||e.executorId),1))),128))])):w(``,!0),e.reason?(h(),E(`small`,er,b(f(u)(`projectAgents.fields.reason`))+` · `+b(e.reason),1)):w(``,!0)]))),128))])):(h(),E(`p`,tr,b(f(u)(`projectAgents.detail.noAssignments`)),1))])]),_:1},16)]),p(`div`,nr,[c(qe,r(q(`executors`),{onRetry:K}),{default:D(()=>[p(`section`,rr,[p(`div`,ir,[p(`h4`,null,b(f(u)(`projectAgents.sections.strategy`)),1),p(`span`,null,b(yt(G.value.profile.defaultModelStrategy))+` · `+b(bt(G.value.profile.executorPolicy)),1)]),p(`p`,ar,b(f(u)(`projectAgents.strategy.providerNeutral`)),1),St(G.value.profile.executorPolicy).length?(h(),E(`div`,or,[(h(!0),E(v,null,a(St(G.value.profile.executorPolicy),e=>(h(),E(`span`,{key:e.executorId},b(e.label||e.executorId),1))),128))])):xt(G.value.profile.executorPolicy)?(h(),E(`p`,sr,b(f(u)(`projectAgents.strategy.lockedUnavailable`)),1)):(h(),E(`p`,cr,b(f(u)(`projectAgents.strategy.noAllowList`)),1)),p(`div`,lr,[p(`button`,{class:`quiet-button`,type:`button`,onClick:n[7]||=e=>ze()},b(f(u)(`projectAgents.routing.addExecutor`)),1)]),G.value.executorDirectory?.length?(h(),E(`div`,ur,[(h(!0),E(v,null,a(G.value.executorDirectory,e=>(h(),E(`div`,{key:e.executorId,class:`project-agent-executor-row`},[p(`strong`,null,b(e.displayName||e.label||e.executorId),1),p(`span`,null,b(e.provider||f(u)(`projectAgents.notReported`))+` / `+b(e.model||f(u)(`projectAgents.notReported`)),1),p(`span`,null,b(e.globalPriority??f(u)(`projectAgents.notReported`)),1),p(`small`,null,b(e.registrationStatus||f(u)(`projectAgents.notReported`))+` · `+b(e.permissionStatus||f(u)(`projectAgents.notReported`))+` · `+b(e.preflightStatus||f(u)(`projectAgents.strategy.availabilityUnreported`))+` · `+b(e.healthStatus||f(u)(`projectAgents.notReported`)),1),p(`button`,{class:`quiet-button`,type:`button`,onClick:t=>ze(e)},b(f(u)(`projectAgents.routing.editExecutor`)),9,dr),e.permissionStatus===`authorized`?(h(),E(`button`,{key:1,class:`quiet-button`,type:`button`,disabled:!!ae.value,onClick:t=>Re(e,`revoked`)},b(f(u)(`projectAgents.routing.revoke`)),9,pr)):(h(),E(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!ae.value,onClick:t=>Re(e,`authorized`)},b(f(u)(`projectAgents.routing.authorize`)),9,fr))]))),128))])):w(``,!0)])]),_:1},16)]),p(`div`,mr,[c(qe,r(q(`tasks`),{onRetry:K}),{default:D(()=>[p(`section`,hr,[p(`div`,gr,[p(`h4`,null,b(f(u)(`projectAgents.sections.tasks`)),1),p(`span`,null,b(G.value.tasks?.length??0),1)]),G.value.tasks?.length?(h(),E(`div`,_r,[(h(!0),E(v,null,a(G.value.tasks,e=>(h(),E(`article`,{key:e.taskId,class:`project-agent-task-card`},[p(`header`,null,[p(`div`,null,[p(`strong`,null,b(e.title),1),p(`small`,null,b(e.taskId)+` · `+b(nt(e.personalProjectId)),1)]),p(`i`,{class:S(`is-${e.status}`)},b(At(e.status)),3)]),e.resultSummary||e.failureReason?(h(),E(`p`,vr,b(e.resultSummary||e.failureReason),1)):w(``,!0),p(`small`,null,b(f(u)(`projectAgents.fields.collaborators`))+` · `+b(e.participants.length),1),e.participants.length?(h(),E(`div`,yr,[(h(!0),E(v,null,a(e.participants,t=>(h(),E(`span`,{key:`${e.taskId}:${t.agentId}`},b(t.agentId)+` · `+b(t.role),1))),128))])):w(``,!0),e.executionSummary===void 0?w(``,!0):(h(),E(`section`,{key:2,class:`project-agent-execution-summary`,"aria-label":f(u)(`projectAgents.fields.executionSummary`)},[p(`div`,xr,[p(`h5`,null,b(f(u)(`projectAgents.fields.executionSummary`)),1),p(`span`,null,b(e.executionSummary.length),1)]),e.executionSummary.length?(h(),E(`ul`,Sr,[(h(!0),E(v,null,a(e.executionSummary,(t,n)=>(h(),E(`li`,{key:`${e.taskId}:execution:${t.workerId||t.agentId||n}`,class:`project-agent-execution-summary-row`},[p(`header`,null,[p(`strong`,null,[Dt(t)?(h(),E(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${f(u)(`projectAgents.fields.occupationEmoji`)}: ${Dt(t)}`},b(Dt(t)),9,Cr)):w(``,!0),T(b(Et(t)),1),t.agentId||t.workerId?(h(),E(`small`,wr,b(t.workerId||t.agentId),1)):w(``,!0)]),t.status?(h(),E(`i`,{key:0,class:S(`is-${t.status}`)},b(Ot(t.status)),3)):w(``,!0)]),p(`dl`,Tr,[p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.executionEnvironment`)),1),p(`dd`,null,[T(b(t.executor||f(u)(`projectAgents.notReported`)),1),t.executorId&&t.executorId!==t.executor?(h(),E(`small`,Er,b(f(u)(`projectAgents.fields.executorId`))+` · `+b(t.executorId),1)):w(``,!0)])]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.participantRole`)),1),p(`dd`,null,b(t.participantRole||f(u)(`projectAgents.notReported`)),1)]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.sourceApplication`)),1),p(`dd`,null,b(Mt(t.sourceApplication)),1)]),t.actualModelProvider||t.actualModel?(h(),E(`div`,Dr,[p(`dt`,null,b(f(u)(`projectAgents.fields.actualModel`)),1),p(`dd`,null,[t.actualModelProvider?(h(),E(`span`,Or,b(t.actualModelProvider),1)):w(``,!0),t.actualModelProvider&&t.actualModel?(h(),E(`span`,kr,` · `)):w(``,!0),t.actualModel?(h(),E(`span`,Ar,b(t.actualModel),1)):w(``,!0)])])):w(``,!0),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.workSummary`)),1),p(`dd`,null,b(t.workSummary||f(u)(`projectAgents.notReported`)),1)]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.terminalStatus`)),1),p(`dd`,null,b(Ot(t.status)),1)])])]))),128))])):(h(),E(`p`,jr,b(f(u)(`projectAgents.detail.noExecutionSummary`)),1))],8,br)),f(ot)(e).length?(h(),E(`section`,{key:3,class:`project-agent-worker-event-evidence`,"aria-label":f(u)(`projectAgents.fields.workerEventEvidence`)},[p(`div`,Nr,[p(`h5`,null,b(f(u)(`projectAgents.fields.workerEventEvidence`)),1),p(`span`,null,b(f(ot)(e).length),1)]),p(`ul`,Pr,[(h(!0),E(v,null,a(f(ot)(e),t=>(h(),E(`li`,{key:`${e.taskId}:worker-event:${t.eventId}`,class:`project-agent-execution-summary-row`},[p(`header`,null,[p(`strong`,null,[wt(t)?(h(),E(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${f(u)(`projectAgents.fields.occupationEmoji`)}: ${wt(t)}`},b(wt(t)),9,Fr)):w(``,!0),T(b(Ct(t)),1),t.agentId?(h(),E(`small`,Ir,b(f(u)(`projectAgents.fields.agentId`))+` · `+b(t.agentId),1)):w(``,!0)]),p(`i`,{class:S(`is-${t.workerStatus||t.status}`)},b(Tt(t)),3)]),p(`dl`,Lr,[p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.workSummary`)),1),p(`dd`,null,b(t.summary||f(u)(`projectAgents.notReported`)),1)]),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.sourceApplication`)),1),p(`dd`,null,b(Mt(t.sourceApplication)),1)]),t.actualModelProvider||t.actualModel?(h(),E(`div`,Rr,[p(`dt`,null,b(f(u)(`projectAgents.fields.actualModel`)),1),p(`dd`,null,[t.actualModelProvider?(h(),E(`span`,zr,b(t.actualModelProvider),1)):w(``,!0),t.actualModelProvider&&t.actualModel?(h(),E(`span`,Br,` · `)):w(``,!0),t.actualModel?(h(),E(`span`,Vr,b(t.actualModel),1)):w(``,!0)])])):w(``,!0),p(`div`,null,[p(`dt`,null,b(f(u)(`projectAgents.fields.reportedAt`)),1),p(`dd`,null,b(_t(t.createdAt)),1)])])]))),128))])],8,Mr)):w(``,!0),e.effectiveModelStrategy?(h(),E(`small`,Hr,b(f(u)(`projectAgents.fields.strategySource`))+` · `+b(e.modelStrategySource||f(u)(`projectAgents.notReported`))+` · `+b(yt(e.effectiveModelStrategy))+` · `+b(bt(e.effectiveExecutorPolicy)),1)):w(``,!0),e.routingDecision?(h(),E(`div`,Ur,[p(`div`,Wr,[p(`span`,null,b(f(u)(`projectAgents.fields.reportedStaffingDecision`)),1),p(`strong`,null,b(e.routingDecision.outcome||f(u)(`projectAgents.notReported`)),1)]),e.routingDecision.coordinatorAgentId||e.coordinatorAgentId?(h(),E(`small`,Gr,b(f(u)(`projectAgents.fields.coordinator`))+` · `+b(e.routingDecision.coordinatorAgentId||e.coordinatorAgentId),1)):w(``,!0),p(`small`,null,b(f(u)(`projectAgents.fields.matchBasis`))+` · `+b(e.routingDecision.matchBasis?.join(` · `)||f(u)(`projectAgents.notReported`))+` · `+b(e.routingDecision.reason||f(u)(`projectAgents.notReported`)),1),e.routingDecision.candidateAgentIds?.length?(h(),E(`small`,Kr,b(f(u)(`projectAgents.fields.candidateAgents`))+` · `+b(e.routingDecision.candidateAgentIds.join(` · `)),1)):w(``,!0),e.routingDecision.complexity!==null&&e.routingDecision.complexity!==void 0?(h(),E(`small`,qr,[T(b(f(u)(`projectAgents.fields.complexity`))+` · `+b(e.routingDecision.complexity),1),e.routingDecision.complexityBasis?.length?(h(),E(`span`,Jr,` · `+b(e.routingDecision.complexityBasis.join(` · `)),1)):w(``,!0)])):w(``,!0),f(st)(e.routingDecision.parallelPlan)?(h(),E(`small`,Yr,[T(b(f(u)(`projectAgents.fields.parallelPlan`))+` · `+b(e.routingDecision.parallelPlan?.reason||f(u)(`projectAgents.notReported`)),1),e.routingDecision.parallelPlan?.workstreamBoundaries?.length?(h(),E(`span`,Xr,` · `+b(e.routingDecision.parallelPlan.workstreamBoundaries.join(` · `)),1)):w(``,!0)])):w(``,!0),e.routingDecision.ruleId||e.routingDecision.fallback?(h(),E(`small`,Zr,b(e.routingDecision.ruleId||f(u)(`projectAgents.notReported`))+` · `+b(e.routingDecision.fallback||f(u)(`projectAgents.notReported`)),1)):w(``,!0)])):w(``,!0),p(`div`,Qr,[p(`span`,null,b(f(u)(`projectAgents.fields.actualExecution`)),1),$(e)?(h(),E(`strong`,$r,b($(e)?.executor||$(e)?.provider||f(u)(`projectAgents.notReported`))+` / `+b($(e)?.model||f(u)(`projectAgents.notReported`))+` / `+b(Mt($(e)?.client)),1)):(h(),E(`span`,ei,b(f(u)(`projectAgents.detail.notReportedActualExecution`)),1)),$(e)?.rule||$(e)?.fallback?(h(),E(`small`,ti,b($(e)?.rule||f(u)(`projectAgents.notReported`))+` · `+b($(e)?.fallback||f(u)(`projectAgents.notReported`)),1)):w(``,!0)]),e.runId?(h(),E(`small`,ni,b(f(u)(`projectAgents.fields.run`))+` · `+b(e.runId),1)):(h(),E(`small`,ri,b(f(u)(`projectAgents.detail.noRun`)),1))]))),128))])):(h(),E(`p`,ii,b(f(u)(`projectAgents.detail.noTasks`)),1))])]),_:1},16)]),p(`div`,ai,[c(qe,r(q(`activity`),{onRetry:K}),{default:D(()=>[p(`section`,oi,[p(`div`,si,[p(`h4`,null,b(f(u)(`projectAgents.sections.activity`)),1),we.value?(h(),E(`span`,ci,b(we.value.days.length),1)):w(``,!0)]),we.value?.days.length?(h(),E(`div`,li,[p(`div`,{class:`project-agent-heatmap`,role:`list`,"aria-label":f(u)(`projectAgents.activity.aria`)},[(h(!0),E(v,null,a(we.value.days,e=>(h(),E(`button`,{key:e.date,type:`button`,role:`listitem`,class:S([`project-agent-heat-cell`,`intensity-${Bt(e,we.value)}`,{selected:V.value===e.date}]),"aria-label":`${vt(e.date)} · ${e.total}`,"aria-pressed":V.value===e.date,onClick:t=>Vt(e)},[p(`span`,fi,b(vt(e.date))+` · `+b(e.total),1)],10,di))),128))],8,ui),Te.value?(h(),E(`article`,pi,[p(`header`,null,[p(`strong`,null,b(vt(Te.value.date)),1),p(`span`,null,b(Te.value.total),1)]),Te.value.tasks?.length?(h(),E(`ul`,hi,[(h(!0),E(v,null,a(Te.value.tasks,e=>(h(),E(`li`,{key:e.taskId},[p(`strong`,null,b(e.title),1),p(`span`,null,b(At(e.status))+` · `+b(nt(e.personalProjectId)),1),p(`small`,null,b(e.summary||f(u)(`projectAgents.notReported`)),1)]))),128))])):(h(),E(`p`,mi,b(f(u)(`projectAgents.activity.noTasks`)),1))])):w(``,!0)])):(h(),E(`p`,gi,b(f(u)(`projectAgents.activity.empty`)),1))])]),_:1},16)]),p(`div`,_i,[c(qe,r(q(`executors`),{onRetry:K}),{default:D(()=>[p(`section`,vi,[p(`div`,yi,[p(`h4`,null,b(f(u)(`projectAgents.sections.clients`)),1),p(`span`,null,b(Nt(G.value).length),1)]),Nt(G.value).length?(h(),E(`div`,bi,[(h(!0),E(v,null,a(Nt(G.value),e=>(h(),E(`div`,{key:e,class:`project-agent-client-row`},[p(`strong`,null,b(Mt(e)),1),p(`span`,null,b(Pt(G.value,e)?.allowed||G.value.profile.allowedClients?.includes(e)?f(u)(`projectAgents.clients.allowed`):f(u)(`projectAgents.clients.notAllowed`)),1),Ft(G.value,e)?(h(),E(`span`,xi,b(f(u)(`projectAgents.clients.observed`,{count:Ft(G.value,e)})),1)):G.value.observedClients?.includes(e)?(h(),E(`span`,Si,b(f(u)(`projectAgents.clients.observedAny`)),1)):(h(),E(`span`,Ci,b(f(u)(`projectAgents.clients.unreported`)),1)),p(`small`,null,b(Pt(G.value,e)?.integrationStatus||f(u)(`projectAgents.clients.integrationUnreported`)),1)]))),128))])):(h(),E(`p`,wi,b(f(u)(`projectAgents.clients.empty`)),1))])]),_:1},16)]),p(`div`,Ti,[c(qe,r(q(`routingRules`),{onRetry:K}),{default:D(()=>[p(`section`,Ei,[p(`div`,Di,[p(`h4`,null,b(f(u)(`projectAgents.sections.routing`)),1),p(`div`,Oi,[p(`span`,null,b(G.value.routingRules?.length??0),1),p(`button`,{class:`quiet-button`,type:`button`,onClick:n[8]||=e=>Be()},b(f(u)(`projectAgents.routing.addRule`)),1)])]),G.value.routingRules?.length?(h(),E(`div`,ki,[(h(!0),E(v,null,a(G.value.routingRules,e=>(h(),E(`div`,{key:e.ruleId,class:`project-agent-rule-row`},[p(`strong`,null,b(e.scope)+` · `+b(e.priority),1),p(`span`,null,b(e.workKind||e.reason||f(u)(`projectAgents.notReported`))+` · `+b(e.executorIds?.join(`, `)||f(u)(`projectAgents.notReported`)),1),e.enabled?(h(),E(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!U.value,onClick:t=>Ke(e)},b(f(u)(`projectAgents.routing.disable`)),9,Ai)):w(``,!0)]))),128))])):(h(),E(`p`,ji,b(f(u)(`projectAgents.routing.empty`)),1)),p(`small`,Mi,b(f(u)(`projectAgents.routing.priorityNote`)),1)])]),_:1},16)]),p(`div`,Ni,[c(qe,r(q(`learning`),{onRetry:K}),{default:D(()=>[p(`section`,Pi,[p(`div`,Fi,[p(`h4`,null,b(f(u)(`projectAgents.sections.learning`)),1),p(`span`,null,b(Ee.value.length),1)]),Ee.value.length?(h(),E(`div`,Ii,[(h(!0),E(v,null,a(Ee.value,([e,n])=>(h(),E(`article`,{key:e,class:`project-agent-learning-card`},[p(`header`,null,[p(`strong`,null,b(e),1),p(`i`,null,b(Lt(n)),1)]),n.personalProjectId||n.workKind||n.executor||n.modelStrategy?(h(),E(`small`,Li,b(nt(n.personalProjectId))+` · `+b(n.workKind||f(u)(`projectAgents.notReported`))+` · `+b(n.executor||f(u)(`projectAgents.notReported`))+` / `+b(n.modelStrategy?yt(n.modelStrategy):f(u)(`projectAgents.notReported`)),1)):w(``,!0),p(`p`,null,b(f(u)(`projectAgents.learning.samples`,{count:n.sampleCount}))+` · `+b(f(u)(`projectAgents.learning.recent`,{count:Rt(n)})),1),p(`small`,null,b(n.decayBasis||f(u)(`projectAgents.learning.decayUnreported`))+` · `+b(_t(n.updatedAt)),1),n.outcomes?(h(),E(`div`,Ri,[(h(!0),E(v,null,a(n.outcomes,(e,n)=>t((h(),E(`span`,{key:n},b(n)+` · `+b(e??f(u)(`projectAgents.notReported`)),1)),[[d,e!==void 0]])),128)),n.score!==null&&n.score!==void 0?(h(),E(`span`,zi,b(f(u)(`projectAgents.learning.score`,{score:zt(n)})),1)):w(``,!0)])):w(``,!0),n.evidence?.length?(h(),E(`ul`,Bi,[(h(!0),E(v,null,a(n.evidence,e=>(h(),E(`li`,{key:`${e.evidenceId}:${e.kind}:${e.occurredAt}`},[p(`span`,null,b(e.kind)+` · `+b(e.count??0)+` · `+b(e.summary||f(u)(`projectAgents.notReported`)),1),e.evidenceId?(h(),E(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:H.value===e.evidenceId,onClick:t=>Ie(n,`ignore`,e.evidenceId)},b(f(u)(`projectAgents.learning.ignore`)),9,Vi)):w(``,!0)]))),128))])):w(``,!0),n.learningKey?(h(),E(`div`,Hi,[p(`button`,{class:`quiet-button`,type:`button`,disabled:H.value===n.learningKey||!n.personalProjectId||!n.workKind||!n.executor,onClick:e=>Ie(n,`reset`)},b(f(u)(`projectAgents.learning.reset`)),9,Ui)])):w(``,!0)]))),128))])):(h(),E(`p`,Wi,b(f(u)(`projectAgents.learning.empty`)),1)),p(`small`,Gi,b(f(u)(`projectAgents.learning.note`)),1)])]),_:1},16)]),p(`section`,Ki,[p(`h4`,null,b(f(u)(`projectAgents.sections.memory`)),1),p(`p`,null,b(G.value.memoryScope??f(u)(`projectAgents.notReported`)),1),p(`small`,null,b(f(u)(`projectAgents.detail.memoryNote`)),1)])],8,vn)):(h(),E(`div`,qi,b(f(u)(`projectAgents.detail.choose`)),1))])):(h(),E(`div`,an,[p(`strong`,null,b(f(u)(`projectAgents.noMatchTitle`)),1),p(`p`,null,b(f(u)(`projectAgents.noMatchCopy`)),1)])):(h(),E(`div`,nn,[p(`strong`,null,b(f(u)(`projectAgents.emptyTitle`)),1),p(`p`,null,b(f(u)(`projectAgents.emptyCopy`)),1),p(`button`,{class:`project-agent-add`,type:`button`,disabled:!W.value,onClick:lt},b(f(u)(`projectAgents.add`)),9,rn)])),c(Ht,{open:ne.value,agent:I.value,projects:me.value,"default-project-id":Ce.value,"personal-space-id":W.value,onClose:dt,onSaved:gt},null,8,[`open`,`agent`,`projects`,`default-project-id`,`personal-space-id`]),c(he,{open:re.value,agent:I.value,assignment:ie.value,action:L.value,projects:me.value,"available-agents":g.value,"default-project-id":Ce.value,onClose:pt,onSaved:mt,onChanged:ht},null,8,[`open`,`agent`,`assignment`,`action`,`projects`,`available-agents`,`default-project-id`]),c(Ue,{open:oe.value,mode:se.value,"personal-space-id":W.value,executor:ce.value,rule:le.value,projects:me.value,"available-executors":G.value?.executorDirectory??[],onClose:Ve,onSaved:Ge},null,8,[`open`,`mode`,`personal-space-id`,`executor`,`rule`,`projects`,`available-executors`])],8,Ut))}}),[[`__scopeId`,`data-v-7dd25330`]]);export{Ji as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as e,B as t,C as n,I as r,L as ee,N as i,O as a,Y as o,a as s,et as c,g as l,h as u,j as d,k as f,m as p,n as m,p as h,rt as g,tt as _,u as v,v as y,y as b}from"./i18n-Ci3heuiL.js";var x=[`data-select-id`],S=[`value`,`name`,`required`,`disabled`],C=[`value`,`disabled`],w=[`aria-expanded`,`aria-controls`,`aria-label`,`disabled`],T={class:`searchable-select-current`},E={class:`searchable-select-current-label`},D={key:0,class:`searchable-select-current-meta`},O=[`hidden`],k={key:0,class:`searchable-select-search`},te=[`placeholder`,`aria-label`],ne=[`id`],re=[`aria-selected`,`disabled`,`onClick`],ie={class:`searchable-select-option-copy`},ae={key:0},oe={key:1,class:`searchable-select-empty`},A=n({__name:`SearchableSelect`,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},name:{default:void 0}},emits:[`update:modelValue`,`change`],setup(n,{emit:A}){let j=n,M=A,N=o(null),P=o(null),F=o(null),I=o(null),L=o(!1),R=o(!1),z=o(``),B=r().replace(/[^A-Za-z0-9_-]/g,``),V=u(()=>j.label),H=u(()=>j.placeholder??s(`common.searchableSelect.placeholder`)),U=u(()=>j.searchPlaceholder??s(`common.searchableSelect.searchPlaceholder`)),W=u(()=>`${j.controlId||`searchable-select-${B}`}-options`),G=u(()=>j.options.find(({value:e})=>e===j.modelValue)??null),K=u(()=>j.searchable??j.options.length>5),q=u(()=>{let e=m(),t=z.value.trim().toLocaleLowerCase(e);return t?j.options.filter(n=>[n.label,n.value,n.meta,n.search].filter(Boolean).join(` `).toLocaleLowerCase(e).includes(t)):j.options});ee(()=>j.disabled,e=>{e&&Y()}),e(()=>{document.addEventListener(`pointerdown`,X)}),f(()=>{document.removeEventListener(`pointerdown`,X)});async function se(){L.value?Y():await J()}async function J(){j.disabled||(z.value=``,pe(),L.value=!0,await a(),K.value?F.value?.focus():fe()?.focus())}function Y({restoreFocus:e=!1}={}){L.value=!1,R.value=!1,z.value=``,e&&a(()=>P.value?.focus())}function ce(e){j.disabled||e.disabled||(M(`update:modelValue`,e.value),M(`change`,e.value),Y({restoreFocus:!0}))}function le(e){[`ArrowDown`,`Enter`,` `].includes(e.key)&&(e.preventDefault(),J())}function ue(e){if(e.key===`Escape`){e.preventDefault(),Y({restoreFocus:!0});return}if(e.key===`ArrowDown`){e.preventDefault(),$()?.focus();return}e.key===`Enter`&&(e.preventDefault(),$()?.click())}function de(e){if(e.key===`Escape`){e.preventDefault(),Y({restoreFocus:!0});return}if(![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key))return;e.preventDefault();let t=Q(),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 X(e){L.value&&!N.value?.contains(e.target)&&Y()}function Z(e){let t=e.relatedTarget;t&&N.value?.contains(t)||queueMicrotask(()=>{L.value&&!N.value?.contains(document.activeElement)&&Y()})}function Q(){return[...I.value?.querySelectorAll(`.searchable-select-option:not(:disabled)`)??[]]}function $(){return Q()[0]??null}function fe(){return Q().find(e=>e.getAttribute(`aria-selected`)===`true`)??$()}function pe(){let e=P.value?.getBoundingClientRect();R.value=!!(e&&window.innerHeight-e.bottom<270&&e.top>270)}return(e,r)=>(d(),b(`div`,{ref_key:`root`,ref:N,class:_([`searchable-select`,{open:L.value,"open-up":R.value,disabled:n.disabled}]),"data-select-id":n.controlId,onFocusout:Z},[l(`select`,{class:`searchable-select-native`,value:n.modelValue,name:n.name,required:n.required,disabled:n.disabled,tabindex:`-1`,"aria-hidden":`true`},[(d(!0),b(p,null,i(n.options,e=>(d(),b(`option`,{key:e.value,value:e.value,disabled:e.disabled},g(e.label),9,C))),128))],8,S),l(`button`,{ref_key:`trigger`,ref:P,type:`button`,class:`searchable-select-trigger`,role:`combobox`,"aria-haspopup":`listbox`,"aria-expanded":L.value,"aria-controls":W.value,"aria-label":V.value,disabled:n.disabled,onPointerdown:r[0]||=h(()=>{},[`stop`]),onClick:h(se,[`stop`]),onKeydown:le},[l(`span`,T,[l(`span`,E,g(G.value?.label||H.value),1),G.value?.meta?(d(),b(`small`,D,g(G.value.meta),1)):y(``,!0)]),r[3]||=l(`i`,{class:`searchable-select-arrow`,"aria-hidden":`true`},null,-1)],40,w),l(`div`,{class:`searchable-select-panel`,hidden:!L.value},[K.value?(d(),b(`div`,k,[t(l(`input`,{ref_key:`searchInput`,ref:F,"onUpdate:modelValue":r[1]||=e=>z.value=e,type:`search`,autocomplete:`off`,placeholder:U.value,"aria-label":c(s)(`common.searchableSelect.searchAria`,{label:V.value}),onKeydown:ue},null,40,te),[[v,z.value]])])):y(``,!0),l(`div`,{id:W.value,ref_key:`optionsList`,ref:I,class:`searchable-select-options`,role:`listbox`},[(d(!0),b(p,null,i(q.value,e=>(d(),b(`button`,{key:e.value,type:`button`,class:`searchable-select-option`,role:`option`,"aria-selected":e.value===n.modelValue,disabled:e.disabled,onMousedown:r[2]||=h(()=>{},[`prevent`]),onClick:t=>ce(e),onKeydown:de},[l(`span`,ie,[l(`strong`,null,g(e.label),1),e.meta?(d(),b(`small`,ae,g(e.meta),1)):y(``,!0)]),r[4]||=l(`i`,{class:`searchable-select-check`,"aria-hidden":`true`},null,-1)],40,re))),128))],8,ne),q.value.length===0?(d(),b(`p`,oe,g(c(s)(`common.searchableSelect.noMatches`)),1)):y(``,!0)],8,O)],42,x))}});export{A as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{J as e,Z as t,a as n}from"./i18n-Ci3heuiL.js";import{r}from"./console-BlAhujsH.js";var i=[`codex`,`claude_code`,`cursor`,`gemini_cli`,`kiro`,`other`],a={codex:`Codex`,claude_code:`Claude Code`,cursor:`Cursor`,gemini_cli:`Gemini CLI`,kiro:`Kiro`,other:`Other Agent`},o=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,s=/^[^\u0000-\u001f\u007f]{1,512}$/,c=new Set([`about`,`blob`,`data`,`file`,`javascript`]),l={codex:{enabled:!0,idFormat:`uuid`,appName:`Codex`,urlTemplate:`codex://threads/{id}`},claude_code:{enabled:!1,idFormat:`any`,appName:`Claude Code`,urlTemplate:``},cursor:{enabled:!1,idFormat:`any`,appName:`Cursor`,urlTemplate:``},gemini_cli:{enabled:!1,idFormat:`any`,appName:`Gemini CLI`,urlTemplate:``},kiro:{enabled:!1,idFormat:`any`,appName:`Kiro`,urlTemplate:``},other:{enabled:!1,idFormat:`any`,appName:`Other Agent`,urlTemplate:``}};function u(e={}){let t=e.source_application?.trim().toLocaleLowerCase().replaceAll(`-`,`_`).replaceAll(` `,`_`);if(t&&a[t])return t;let n=`${e.source_kind??``} ${e.source_description??``}`.toLocaleLowerCase();return n.includes(`claude`)?`claude_code`:n.includes(`cursor`)?`cursor`:n.includes(`gemini`)?`gemini_cli`:n.includes(`kiro`)?`kiro`:n.includes(`codex`)?`codex`:`other`}function d(e){let t=u(e);return t===`other`?n(`knowledge.domain.actors.otherAgent`):a[t]}function f(e){return a[e]}function p(e={},t=l){if(m(e,t)!==`available`)return null;let n=t[u(e)],r=e.session_id.trim();return n.urlTemplate.replace(`{id}`,encodeURIComponent(r))}function m(e={},t=l){let n=t[u(e)];return n?.enabled?_(e.session_id?.trim()??``,n.idFormat)?v(n.urlTemplate)?`available`:`invalid_template`:`invalid_id`:`disabled`}function h(e={},t=l){let n=t[u(e)];return n?.enabled&&n.appName.trim()?n.appName.trim():null}async function g(e={},t=globalThis.navigator?.clipboard){return!e.session_id||!t?.writeText?!1:(await t.writeText(e.session_id),!0)}function _(e,t){return s.test(e)?t===`any`||o.test(e):!1}function v(e){if(e.split(`{id}`).length!==2||/\s/.test(e))return!1;let t=/^([a-z][a-z0-9+.-]*):/i.exec(e)?.[1]?.toLocaleLowerCase();return!!t&&!c.has(t)}var y=t(w(l)),b=null;function x(){return C(),e(y)}function S(e){y.value=w(e)}function C({force:e=!1}={}){return!e&&b||(b=r(`/api/system/settings`).then(e=>{S(e.configured.conversationLaunchers)}).catch(()=>void 0)),b}function w(e){return Object.fromEntries(i.map(t=>[t,{...l[t],...e?.[t]??{}}]))}export{d as a,p as c,g as i,x as n,f as o,i as r,h as s,S as t};
|