dsh-kingdom 3.2.0 → 3.3.0
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 +267 -246
- package/docs/CURRENT-USER-GUIDE.md +106 -0
- package/docs/DISPATCH-IDENTITY-PROBE.md +79 -0
- package/docs/V3.2-RELEASE-NOTES.md +108 -103
- package/docs/V3.2.1-RELEASE-NOTES.md +39 -0
- package/docs/V3.3-RELEASE-NOTES.md +46 -0
- package/lib/adapter/dsh-backend.js +189 -11
- package/lib/adapter/dsh-backend.js.map +1 -1
- package/lib/adapter/dsh-session-events.js +51 -7
- package/lib/adapter/dsh-session-events.js.map +1 -1
- package/lib/core/db.js +557 -546
- package/lib/core/db.js.map +1 -1
- package/lib/core/governed.js +20 -6
- package/lib/core/governed.js.map +1 -1
- package/lib/core/owner-binding-intent.js +168 -11
- package/lib/core/owner-binding-intent.js.map +1 -1
- package/lib/core/task-service.js +4 -1
- package/lib/core/task-service.js.map +1 -1
- package/lib/core/usage.js +10 -6
- package/lib/core/usage.js.map +1 -1
- package/lib/core/workspace-admission.js +31 -7
- package/lib/core/workspace-admission.js.map +1 -1
- package/lib/dispatch/service.js +141 -7
- package/lib/dispatch/service.js.map +1 -1
- package/lib/gui/console-app.js +34 -30
- package/lib/gui/console-app.js.map +1 -1
- package/lib/gui/local-control.js +59 -3
- package/lib/gui/local-control.js.map +1 -1
- package/lib/gui/owner-ui.js +71 -8
- package/lib/gui/owner-ui.js.map +1 -1
- package/lib/gui/server.js +1 -1
- package/lib/gui/server.js.map +1 -1
- package/lib/gui/workbench-ui.js +179 -10
- package/lib/gui/workbench-ui.js.map +1 -1
- package/lib/index.js +52 -13
- package/lib/index.js.map +1 -1
- package/lib/types/adapter/contract.d.ts +20 -0
- package/lib/types/adapter/dsh-backend.d.ts +5 -1
- package/lib/types/adapter/dsh-session-events.d.ts +10 -1
- package/lib/types/core/db.d.ts +2 -0
- package/lib/types/core/governed.d.ts +5 -0
- package/lib/types/core/owner-binding-intent.d.ts +26 -0
- package/lib/types/core/workspace-admission.d.ts +13 -1
- package/lib/types/dispatch/service.d.ts +18 -14
- package/lib/types/gui/console-app.d.ts +1 -1
- package/lib/types/gui/control-contract.d.ts +5 -3
- package/lib/types/gui/local-control.d.ts +14 -2
- package/lib/types/gui/owner-ui.d.ts +31 -0
- package/lib/worker/governed-executor.js +18 -0
- package/lib/worker/governed-executor.js.map +1 -1
- package/package.json +10 -4
package/lib/gui/owner-ui.js
CHANGED
|
@@ -2,7 +2,55 @@
|
|
|
2
2
|
export function renderOwnerApp(nonce) {
|
|
3
3
|
if (!/^[A-Za-z0-9_-]{20,100}$/u.test(nonce))
|
|
4
4
|
throw new Error('invalid owner page nonce');
|
|
5
|
-
return OWNER_APP_HTML.replaceAll('__OWNER_NONCE__', nonce);
|
|
5
|
+
return OWNER_APP_HTML.replace('__BINDING_PREFILL__', ownerBindingFormPrefill.toString()).replaceAll('__OWNER_NONCE__', nonce);
|
|
6
|
+
}
|
|
7
|
+
/** Pure form convenience only; preview/commit still recheck scope and current facts. */
|
|
8
|
+
export function ownerBindingFormPrefill(control) {
|
|
9
|
+
const decision = control?.decision, scope = decision?.scope, catalog = control?.catalog;
|
|
10
|
+
if (!scope || !catalog || decision.actions.length !== 1)
|
|
11
|
+
return null;
|
|
12
|
+
const action = decision.actions[0];
|
|
13
|
+
if (!['role.bind', 'role.session'].includes(action))
|
|
14
|
+
return null;
|
|
15
|
+
if (!['roleTypes', 'territoryIds', 'bindingIds', 'targetSessionIds', 'workspaceRoots']
|
|
16
|
+
.every(key => Array.isArray(scope[key])))
|
|
17
|
+
return null;
|
|
18
|
+
if (scope.kingdomWide || scope.workspaceRoots.length
|
|
19
|
+
|| scope.roleTypes.length !== 1 || scope.targetSessionIds.length !== 1)
|
|
20
|
+
return null;
|
|
21
|
+
const role = scope.roleTypes[0], sessionId = scope.targetSessionIds[0];
|
|
22
|
+
if (!['SUPERVISOR', 'CHANCELLOR'].includes(role))
|
|
23
|
+
return null;
|
|
24
|
+
const sessions = (catalog.runtimeSessions ?? []).filter(item => item.id === sessionId);
|
|
25
|
+
if (sessions.length !== 1)
|
|
26
|
+
return null;
|
|
27
|
+
let territory = null;
|
|
28
|
+
if (role === 'SUPERVISOR') {
|
|
29
|
+
if (!scope.territoryIds.length || new Set(scope.territoryIds).size !== scope.territoryIds.length
|
|
30
|
+
|| (action === 'role.bind' && scope.territoryIds.length !== 1))
|
|
31
|
+
return null;
|
|
32
|
+
for (const territoryId of scope.territoryIds) {
|
|
33
|
+
const territories = (catalog.territories ?? []).filter(item => item.id === territoryId);
|
|
34
|
+
if (territories.length !== 1)
|
|
35
|
+
return null;
|
|
36
|
+
if (action === 'role.bind')
|
|
37
|
+
territory = territories[0];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else if (scope.territoryIds.length)
|
|
41
|
+
return null;
|
|
42
|
+
if (action === 'role.bind') {
|
|
43
|
+
if (scope.bindingIds.length)
|
|
44
|
+
return null;
|
|
45
|
+
return { role_type: role, role_name: territory ? territory.name + '主管' : '宰相', session_id: sessionId,
|
|
46
|
+
...(territory ? { territory_id: territory.id } : {}) };
|
|
47
|
+
}
|
|
48
|
+
if (scope.bindingIds.length !== 1)
|
|
49
|
+
return null;
|
|
50
|
+
const bindings = (catalog.bindings ?? []).filter(item => item.id === scope.bindingIds[0] && item.roleType === role);
|
|
51
|
+
if (bindings.length !== 1)
|
|
52
|
+
return null;
|
|
53
|
+
return { binding_id: bindings[0].id, session_id: sessionId };
|
|
6
54
|
}
|
|
7
55
|
const OWNER_APP_HTML = String.raw `<!doctype html>
|
|
8
56
|
<html lang="zh-CN" data-theme="forest"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>王国管理 · dsh-Kingdom</title>
|
|
@@ -36,6 +84,7 @@ const OWNER_APP_HTML = String.raw `<!doctype html>
|
|
|
36
84
|
</main><script nonce="__OWNER_NONCE__">
|
|
37
85
|
(() => {
|
|
38
86
|
'use strict';
|
|
87
|
+
const ownerBindingFormPrefill = __BINDING_PREFILL__;
|
|
39
88
|
const el = id => document.getElementById(id);
|
|
40
89
|
const state = { control: null, decisionId: null, preview: null, busy: false, uncertain: false, ackTarget: null, ackHintInvalid: false, askTarget: null, askHintInvalid: false, askThread: null, changeTarget: null, changeHintInvalid: false, questionLimit: 50, questionSeq: 0 };
|
|
41
90
|
/**
|
|
@@ -189,6 +238,12 @@ const OWNER_APP_HTML = String.raw `<!doctype html>
|
|
|
189
238
|
const action = el('action').value; const catalog = state.control.catalog || {}; text('action-note', notes[action]);
|
|
190
239
|
const territories = (catalog.territories || []).map(item => ({id:item.id,label:item.name + ' · ' + item.id}));
|
|
191
240
|
const sessions = (catalog.runtimeSessions || []).map(item => ({id:item.id,label:item.label + ' · ' + item.id}));
|
|
241
|
+
const requireChoice = (values, label) => [{id:'',label}, ...values];
|
|
242
|
+
const applyBindingPrefill = () => {
|
|
243
|
+
const prefill = ownerBindingFormPrefill(state.control);
|
|
244
|
+
if (!prefill) return;
|
|
245
|
+
for (const [key, value] of Object.entries(prefill)) { const input=el('param-' + key); if(input) input.value=value; }
|
|
246
|
+
};
|
|
192
247
|
if (action === 'init') { field('kingdom_name','王国名称'); field('owner_name','所有者显示名'); }
|
|
193
248
|
if (action === 'territory.create') { field('name','领地名称'); field('workspace_path','已存在的工作目录'); field('summary','领地说明','textarea',undefined,false); const roots = make('p','允许的根目录:' + (catalog.workspaceRoots || []).join(';'),'muted'); roots.classList.add('wide'); el('fields').append(roots); }
|
|
194
249
|
if (action === 'territory.update') { field('territory_id','领地','select',territories); field('name','新名称(不改请留空)','text',undefined,false); field('summary','新说明(不改请留空)','textarea',undefined,false); }
|
|
@@ -211,13 +266,13 @@ const OWNER_APP_HTML = String.raw `<!doctype html>
|
|
|
211
266
|
release.addEventListener('change', update); update();
|
|
212
267
|
}
|
|
213
268
|
if (action === 'role.bind') {
|
|
214
|
-
const role = field('role_type','角色','select',(state.control.decision.scope.roleTypes || []).map(id=>({id,label:roleNames[id]}))); field('role_name','角色名称');
|
|
215
|
-
const session = field('session_id','运行会话','select',sessions);
|
|
269
|
+
const role = field('role_type','角色','select',requireChoice((state.control.decision.scope.roleTypes || []).map(id=>({id,label:roleNames[id]})), '请选择角色')); field('role_name','角色名称');
|
|
270
|
+
const session = field('session_id','运行会话','select',requireChoice(sessions, '请选择运行会话'));
|
|
216
271
|
// v3.2.0:主管必须同时隶属一个领地(席位与主理同一事务写入),因此这里强制选择领地;
|
|
217
272
|
// 其它角色不隶属领地,字段隐藏并禁用,不进入 payload。
|
|
218
|
-
const territory = field('territory_id','主理领地(主管必选)','select',territories);
|
|
273
|
+
const territory = field('territory_id','主理领地(主管必选)','select',requireChoice(territories, '请选择领地'));
|
|
219
274
|
const territoryHint = make('p', territories.length
|
|
220
|
-
? '
|
|
275
|
+
? '本次确认会让所选会话负责该领地。领地已有主管时,请回到要接任的会话说“把「准确领地名」主管换成当前会话”,由会话准备更换引导。'
|
|
221
276
|
: '本次授权范围内没有任何可用领地:无法任命主管。请先创建领地,或重新激活本包含目标领地的管理窗口。','muted');
|
|
222
277
|
territoryHint.classList.add('wide'); el('fields').append(territoryHint);
|
|
223
278
|
const update = () => {
|
|
@@ -227,9 +282,17 @@ const OWNER_APP_HTML = String.raw `<!doctype html>
|
|
|
227
282
|
territoryHint.hidden = !supervisor;
|
|
228
283
|
el('prepare').disabled = supervisor && !territories.length;
|
|
229
284
|
};
|
|
230
|
-
role.addEventListener('change',update); update();
|
|
285
|
+
applyBindingPrefill(); role.addEventListener('change',update); update();
|
|
286
|
+
}
|
|
287
|
+
if (action === 'role.session') {
|
|
288
|
+
field('binding_id','要接替的角色','select',requireChoice(allowedBindings(item=>['CHANCELLOR','SUPERVISOR'].includes(item.roleType)), '请选择要接替的角色'));
|
|
289
|
+
field('session_id','接任的运行会话','select',requireChoice(sessions, '请选择接任会话')); applyBindingPrefill();
|
|
290
|
+
if (ownerBindingFormPrefill(state.control) && state.control.decision.scope.roleTypes[0] === 'SUPERVISOR') {
|
|
291
|
+
const names = state.control.decision.scope.territoryIds.map(id => '「' + catalog.territories.find(item => item.id === id).name + '」').join('、');
|
|
292
|
+
const hint = make('p','本次更换同一主管席位的会话,会同时接替全部领地:' + names + '。若只想接替其中一个领地,请停止确认,不提交此变更。','evidence-weak field wide');
|
|
293
|
+
hint.id='supervisor-session-scope'; el('fields').append(hint);
|
|
294
|
+
}
|
|
231
295
|
}
|
|
232
|
-
if (action === 'role.session') { field('binding_id','要调整的角色','select',allowedBindings(item=>['CHANCELLOR','SUPERVISOR'].includes(item.roleType))); field('session_id','新的运行会话','select',sessions); }
|
|
233
296
|
if (action === 'execution-profile') {
|
|
234
297
|
field('binding_id','要配置的角色','select',allowedBindings(item=>['CHANCELLOR','SUPERVISOR','WORKER'].includes(item.roleType)));
|
|
235
298
|
field('provider','模型服务商(可选,留空使用现有配置默认值)','text',undefined,false); field('model','模型名称');
|
|
@@ -596,7 +659,7 @@ const OWNER_APP_HTML = String.raw `<!doctype html>
|
|
|
596
659
|
}
|
|
597
660
|
if(state.ackTarget) el('action').value='delivery.item.ack';
|
|
598
661
|
if(state.askTarget) el('action').value='delivery.item.question';
|
|
599
|
-
renderFields(); lock(false); status(openNotice || '管理窗口已就绪。填写变更后先查看预览。'); tick();
|
|
662
|
+
renderFields(); lock(false); status(openNotice || (ownerBindingFormPrefill(control) ? '本次唯一目标已填好。核对领地、角色和会话后查看变更预览。' : '管理窗口已就绪。填写变更后先查看预览。')); tick();
|
|
600
663
|
// 只读问答线程与历史入口在窗口就绪后单独渲染:它们不参与授权,也不写任何事实。
|
|
601
664
|
renderQuestionHistory();
|
|
602
665
|
void renderQuestions();
|
package/lib/gui/owner-ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owner-ui.js","sourceRoot":"","sources":["../../src/gui/owner-ui.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IACxF,OAAO,cAAc,CAAC,UAAU,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"owner-ui.js","sourceRoot":"","sources":["../../src/gui/owner-ui.ts"],"names":[],"mappings":"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"}
|
package/lib/gui/server.js
CHANGED
|
@@ -518,7 +518,7 @@ export function startGuiServer(handlers, options) {
|
|
|
518
518
|
sendError(res, 401, 'CONTROL_SESSION_REQUIRED', 'GUI/HTTP 本身没有 Authority;请先直接执行 /kingdom gui。');
|
|
519
519
|
return;
|
|
520
520
|
}
|
|
521
|
-
const admitted = options.control.authorize(controlCookie, typeof req.headers[CSRF_HEADER] === 'string' ? req.headers[CSRF_HEADER] : null, typeof req.headers[REQUEST_ID_HEADER] === 'string' ? req.headers[REQUEST_ID_HEADER] : null, meta);
|
|
521
|
+
const admitted = options.control.authorize(controlCookie, typeof req.headers[CSRF_HEADER] === 'string' ? req.headers[CSRF_HEADER] : null, typeof req.headers[REQUEST_ID_HEADER] === 'string' ? req.headers[REQUEST_ID_HEADER] : null, meta, command);
|
|
522
522
|
if (!admitted.ok) {
|
|
523
523
|
sendControlFailure(res, admitted);
|
|
524
524
|
return;
|
package/lib/gui/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/gui/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/gui/server.ts"],"names":[],"mappings":"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"}
|
package/lib/gui/workbench-ui.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/** Personal workbench presentation. No model calls or authority are created here. */
|
|
2
2
|
export const WORKBENCH_CSS = String.raw `
|
|
3
|
-
.workbench-page { grid-column: 1 / -1; min-width: 0; width: 100%; }
|
|
3
|
+
.workbench-page { grid-column: 1 / -1; min-width: 0; width: 100%; scroll-margin-top: 130px; }
|
|
4
|
+
.runtime-table-scroll-hint { display: none; color: var(--muted); font-size: .8rem; }
|
|
4
5
|
.workbench-heading { display: flex; justify-content: space-between; align-items: start; gap: 24px; margin: 18px 0 24px; }
|
|
5
6
|
.workbench-heading h2 { font-size: clamp(25px, 3vw, 36px); margin: 6px 0; }
|
|
6
7
|
.workbench-heading p, .workbench-block > p { color: var(--muted); }
|
|
@@ -21,6 +22,26 @@ export const WORKBENCH_CSS = String.raw `
|
|
|
21
22
|
.quick-task-form input { flex: 1; min-width: 0; min-height: 48px; }
|
|
22
23
|
.quick-task-form button { flex: 0 0 auto; }
|
|
23
24
|
.workbench-section-link { color: var(--gold); font-size: 13px; }
|
|
25
|
+
.runtime-overview { display: grid; gap: 18px; }
|
|
26
|
+
.runtime-table-scroll { overflow-x: auto; margin-top: 16px; }
|
|
27
|
+
.runtime-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 14px; }
|
|
28
|
+
.runtime-table caption { text-align: left; color: var(--muted); margin-bottom: 10px; }
|
|
29
|
+
.runtime-table th, .runtime-table td { padding: 13px 10px; border-bottom: 1px solid var(--line); vertical-align: top; overflow-wrap: anywhere; }
|
|
30
|
+
.runtime-table th { color: var(--muted); font-weight: 500; }
|
|
31
|
+
.runtime-table td:first-child { min-width: 150px; }
|
|
32
|
+
.runtime-table a { color: var(--bamboo); text-underline-offset: 3px; }
|
|
33
|
+
.runtime-table small { display: block; color: var(--muted); margin-top: 5px; }
|
|
34
|
+
.runtime-table .runtime-related-task { display: block; margin-bottom: 5px; }
|
|
35
|
+
.runtime-overview-note { margin: 8px 0 0; color: var(--muted); font-size: 13px; }
|
|
36
|
+
.workbench-advanced { margin-top: 18px; }
|
|
37
|
+
.workbench-advanced > summary, .settings-list > details > summary { cursor: pointer; font-weight: 600; }
|
|
38
|
+
.workbench-advanced[open] > .workbench-grid { margin-top: 18px; }
|
|
39
|
+
.dispatch-content { display: grid; gap: 18px; }
|
|
40
|
+
.dispatch-step { min-width: 0; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--patina); }
|
|
41
|
+
.dispatch-step h3 { margin-bottom: 12px; }
|
|
42
|
+
.dispatch-step > form { border: 0; padding: 0; box-shadow: none; }
|
|
43
|
+
.dispatch-content > .task-draft-panel { margin: 0; }
|
|
44
|
+
.supervisor-request { margin-top: 8px; min-height: 44px; }
|
|
24
45
|
.task-detail-section { padding: 20px 0; border-bottom: 1px solid var(--line); }
|
|
25
46
|
.task-detail-section h3 { margin-bottom: 12px; font-size: 18px; }
|
|
26
47
|
.task-detail-section p { white-space: pre-wrap; overflow-wrap: anywhere; }
|
|
@@ -135,9 +156,14 @@ export const WORKBENCH_CSS = String.raw `
|
|
|
135
156
|
}
|
|
136
157
|
@media (max-width: 1050px) { .role-workbench-layout:has(.role-inspector:not([hidden])) { grid-template-columns: minmax(0, 1fr); } .role-inspector { position: static; } }
|
|
137
158
|
@media (max-width: 700px) {
|
|
159
|
+
.runtime-table-scroll-hint { display: block; margin-bottom: 12px; }
|
|
160
|
+
.workbench-page { scroll-margin-top: 185px; }
|
|
138
161
|
.workbench-grid, .task-evidence-states { grid-template-columns: minmax(0, 1fr); }
|
|
139
162
|
.workbench-heading { flex-direction: column; gap: 12px; }
|
|
140
163
|
.workbench-block { padding: 16px; }
|
|
164
|
+
.dispatch-step { padding: 16px; }
|
|
165
|
+
.runtime-table { font-size: 13px; min-width: 640px; }
|
|
166
|
+
.runtime-table th, .runtime-table td { padding: 11px 8px; }
|
|
141
167
|
.quick-task-form { flex-direction: column; }
|
|
142
168
|
.usage-table { font-size: 12px; }
|
|
143
169
|
.usage-table th, .usage-table td { padding: 9px 4px; }
|
|
@@ -147,16 +173,26 @@ export const WORKBENCH_CSS = String.raw `
|
|
|
147
173
|
`;
|
|
148
174
|
export const WORKBENCH_HTML = String.raw `
|
|
149
175
|
<section id="today" data-console-section="today" data-console-page="today" class="workbench-page" aria-labelledby="today-title">
|
|
150
|
-
<header class="workbench-heading"><div><p class="section-kicker">个人工作台</p><h2 id="today-title"
|
|
151
|
-
<
|
|
152
|
-
|
|
176
|
+
<header class="workbench-heading"><div><p class="section-kicker">个人工作台</p><h2 id="today-title">运行总览</h2><p>查看任务在哪个领地推进,以及已登记会话的执行状态。</p></div><button id="workbench-refresh" class="refresh" type="button">重新读取</button></header>
|
|
177
|
+
<div class="runtime-overview">
|
|
178
|
+
<section class="workbench-block" aria-labelledby="runtime-tasks-title"><div class="delivery-head"><h3 id="runtime-tasks-title">任务</h3><a class="workbench-section-link" href="#dispatch">派发新任务 →</a></div><div id="runtime-tasks" class="runtime-table-scroll"></div></section>
|
|
179
|
+
<section class="workbench-block" aria-labelledby="runtime-sessions-title"><h3 id="runtime-sessions-title">会话</h3><p class="runtime-overview-note">展示王国已登记角色与 Worker 长期会话。任务在推进,不代表主管会话正在调用模型;未提供运行观测时显示未知。</p><div id="runtime-sessions" class="runtime-table-scroll"></div></section>
|
|
180
|
+
</div>
|
|
181
|
+
<details class="workbench-block workbench-advanced" id="today-advanced"><summary>待处理、异常与交付</summary><div class="workbench-grid">
|
|
153
182
|
<section class="workbench-block" data-priority="owner"><h3>待我处理</h3><p>仅列出已明确需要人类决定的事项。</p><div id="today-owner" class="workbench-list"></div><a class="workbench-section-link" href="#inbox">查看待我处理 →</a></section>
|
|
154
183
|
<section class="workbench-block"><h3>执行异常</h3><p>说明发生了什么、由谁继续处理。</p><div id="today-exceptions" class="workbench-list"></div></section>
|
|
155
184
|
<section class="workbench-block"><h3>正在推进</h3><div id="today-active" class="workbench-list"></div></section>
|
|
156
185
|
<section class="workbench-block"><h3>最近交付</h3><p>呈报、主管接受与人类验收分别展示。</p><div id="today-deliveries" class="workbench-list"></div></section>
|
|
157
186
|
</div>
|
|
158
187
|
<section class="workbench-block" style="margin-top:18px"><h3>团队内部处理</h3><p>主管审查与返工由团队继续推进,不计入你的待办。</p><div id="today-internal" class="workbench-list"></div></section>
|
|
159
|
-
|
|
188
|
+
</details>
|
|
189
|
+
<details class="workbench-block workbench-advanced" id="today-collaboration"><summary id="collaboration-title">协作计划与工作区占用</summary><p>单执行者仍是默认。需要协作时,由指定主执行者负责整合。</p><div id="collaboration-plans"></div><details data-read-key="collaboration:resources"><summary>当前工作区占用</summary><div id="collaboration-resources"></div></details></details>
|
|
190
|
+
</section>
|
|
191
|
+
<section id="dispatch-page" data-console-section="dispatch" data-console-page="dispatch" class="workbench-page" hidden aria-labelledby="dispatch-title">
|
|
192
|
+
<header class="workbench-heading"><div><p class="section-kicker">把事情交给团队</p><h2 id="dispatch-title">派发任务</h2><p>写清任务目标与所属领地,再由该领地主管指定执行者并启动。</p></div></header>
|
|
193
|
+
<form id="quick-task-form" class="quick-task-form"><label class="sr-only" for="quick-task-goal">任务目标</label><input id="quick-task-goal" autocomplete="off" placeholder="先写一句话目标" required><button class="primary" type="submit">填入任务草稿</button></form>
|
|
194
|
+
<div id="dispatch-content" class="dispatch-content"></div>
|
|
195
|
+
<p class="runtime-overview-note">按钮是否可用取决于打开本页的 DSH 会话身份。需要绑定或更换主管时,去<a class="workbench-section-link" href="#settings">主管设置</a>复制一句话请求,发给目标会话中的 AI。</p>
|
|
160
196
|
</section>
|
|
161
197
|
<section id="inbox" data-console-section="inbox" data-console-page="inbox" class="workbench-page" hidden aria-labelledby="inbox-title">
|
|
162
198
|
<header class="workbench-heading"><div><p class="section-kicker">你的决定</p><h2 id="inbox-title">待我处理</h2><p>当前版本的人类治理入口仍为直接 Slash;这里帮助你找到准确事项。</p></div></header>
|
|
@@ -169,8 +205,8 @@ export const WORKBENCH_HTML = String.raw `
|
|
|
169
205
|
<section class="workbench-block"><div id="usage-summary"></div><div id="usage-content"></div></section>
|
|
170
206
|
</section>
|
|
171
207
|
<section id="settings" data-console-section="settings" data-console-page="settings" class="workbench-page" hidden aria-labelledby="settings-title">
|
|
172
|
-
<header class="workbench-heading"><div><p class="section-kicker"
|
|
173
|
-
<div class="settings-list"><section class="workbench-block"><h3
|
|
208
|
+
<header class="workbench-heading"><div><p class="section-kicker">让会话负责领地</p><h2 id="settings-title">主管设置</h2><p>把下面的一句话发给目标 DSH 会话中的 AI,让它引导你确认绑定或更换主管。</p></div></header>
|
|
209
|
+
<div class="settings-list"><section class="workbench-block"><h3>各领地主管</h3><div id="settings-supervisors" class="runtime-table-scroll"></div><p class="hint">复制请求不会更改主管。到你希望担任主管的 DSH 会话发送请求,AI 会说明当前绑定并引导你确认;原生的人类确认仍需由你完成。</p></section><details class="workbench-block" id="settings-control"><summary>当前会话权限</summary><p>角色操作来自激活本页的合法会话,每次提交仍由宿主重新核验。</p><div id="settings-control-slot"></div><p class="hint">在已绑定角色的 DSH 会话输入 /kingdom gui,按宿主提供的链接重新打开本页。</p></details><details class="workbench-block" id="settings-owner"><summary>其他王国配置</summary><p>需要调整领地、权限或模型时,让当前 DSH 会话中的 AI 说明所需步骤并引导确认。</p><a class="workbench-section-link" href="/owner">打开人类管理窗口 →</a><div id="settings-owner-slot"></div></details><details class="workbench-block" id="settings-appearance"><summary>外观与动态效果</summary><p>顶部可选择羊皮纸、夜蓝、森林与酒红主题。人物动作沿用当前王国风格;减少动态效果跟随系统偏好。</p></details><details class="workbench-block" id="settings-advanced"><summary>高级记录与组织</summary><nav class="task-detail-jump"><a href="#map">王国地图</a><a href="#usage">用量</a><a href="#ledger">王国账本</a><a href="#organization">领地名册</a><a href="#executions">执行记录</a><a href="#activity">治理史册</a><a href="#tasks">任务详情</a></nav></details></div>
|
|
174
210
|
</section>
|
|
175
211
|
`;
|
|
176
212
|
/** Injected into the existing console closure; all Host text uses append/textContent. */
|
|
@@ -217,6 +253,132 @@ export const WORKBENCH_SCRIPT = String.raw `
|
|
|
217
253
|
if (String(task.status) === 'RUNNING' && !['STARTING', 'RUNNING', 'PAUSED'].includes(value)) return '任务处于处理中;当前没有正在运行的执行。返工决定不会自动启动下一次执行。';
|
|
218
254
|
return '任务治理:' + stateDisplay(task.status) + ' · 本次执行:' + stateDisplay(value);
|
|
219
255
|
};
|
|
256
|
+
const runtimeView = snapshot => {
|
|
257
|
+
const source = record(snapshot); const governance = record(source.governance);
|
|
258
|
+
const organization = record(record(record(source.projection).organization).data);
|
|
259
|
+
// Top-level bindings preserve retired history and do not expose status. The stage
|
|
260
|
+
// contains every exact ACTIVE binding; it must be used before listing current roles.
|
|
261
|
+
const activeIds = Array.isArray(source.stage) ? new Set(source.stage.map(actor => actor.bindingId).filter(Boolean)) : null;
|
|
262
|
+
const bindings = Array.isArray(source.bindings) ? source.bindings : [];
|
|
263
|
+
const territories = Array.isArray(source.territories) ? source.territories : [];
|
|
264
|
+
const seats = Array.isArray(organization.territories) ? organization.territories : [];
|
|
265
|
+
return { tasks: Array.isArray(source.tasks) ? source.tasks : [], bindings: activeIds ? bindings.filter(item => activeIds.has(item.bindingId)) : bindings,
|
|
266
|
+
territories, seats, roles: queueItems(workbenchData(source).roles),
|
|
267
|
+
seatCoverageComplete: Array.isArray(source.territories) && Array.isArray(organization.territories) && organization.territoriesTruncated !== true
|
|
268
|
+
&& territories.every(territory => seats.some(seat => typedEntityId(seat.territoryRef, 'territory') === territory.territoryId)),
|
|
269
|
+
affinities: Array.isArray(governance.workerSessions) ? governance.workerSessions.filter(item => item.isCurrent === true) : [],
|
|
270
|
+
executions: Array.isArray(source.liveExecutions) ? source.liveExecutions : [] };
|
|
271
|
+
};
|
|
272
|
+
const runtimeTerritoryName = (view, id) => {
|
|
273
|
+
const territory = view.territories.find(item => item.territoryId === id);
|
|
274
|
+
return territory ? friendly(territory.name, '领地名称未提供') : '领地未确认';
|
|
275
|
+
};
|
|
276
|
+
const runtimeSupervisorLookup = (view, id) => {
|
|
277
|
+
const seat = view.seats.find(item => typedEntityId(item.territoryRef, 'territory') === id);
|
|
278
|
+
if (seat) return { known: true, bindingId: typedEntityId(record(seat).supervisorBindingRef, 'binding') };
|
|
279
|
+
const roles = view.roles.filter(role => role.roleType === 'SUPERVISOR' && view.bindings.some(binding => binding.bindingId === role.bindingId && binding.roleType === 'SUPERVISOR')
|
|
280
|
+
&& Array.isArray(role.territories) && role.territories.some(territory => territory.territoryId === id));
|
|
281
|
+
return roles.length === 1 ? { known: true, bindingId: roles[0].bindingId } : { known: false, bindingId: null };
|
|
282
|
+
};
|
|
283
|
+
const runtimeSupervisorScope = (view, bindingId) => {
|
|
284
|
+
const role = view.roles.find(item => item.bindingId === bindingId && item.roleType === 'SUPERVISOR' && Array.isArray(item.territories));
|
|
285
|
+
if (role) return { known: true, territories: role.territories.map(territory => view.territories.find(item => item.territoryId === territory.territoryId) || territory) };
|
|
286
|
+
return { known: view.seatCoverageComplete, territories: view.territories.filter(territory => runtimeSupervisorLookup(view, territory.territoryId).bindingId === bindingId) };
|
|
287
|
+
};
|
|
288
|
+
const runtimeBindingName = (view, id) => {
|
|
289
|
+
const binding = view.bindings.find(item => item.bindingId === id);
|
|
290
|
+
return binding ? friendly(binding.roleName, '角色名称未提供') : '尚未指定或角色不可见';
|
|
291
|
+
};
|
|
292
|
+
const runtimeTable = (parent, columns, label) => {
|
|
293
|
+
append(parent, 'p', '左右滑动表格,可查看完整信息与操作按钮。', 'runtime-table-scroll-hint');
|
|
294
|
+
const table = document.createElement('table'); table.className = 'runtime-table';
|
|
295
|
+
if (label) append(table, 'caption', label);
|
|
296
|
+
const head = document.createElement('thead'); const row = document.createElement('tr');
|
|
297
|
+
columns.forEach(label => { const cell = append(row, 'th', label); cell.setAttribute('scope', 'col'); }); head.append(row); table.append(head);
|
|
298
|
+
const body = document.createElement('tbody'); table.append(body); parent.append(table); return body;
|
|
299
|
+
};
|
|
300
|
+
const runtimeLinkCell = row => { const cell = document.createElement('td'); row.append(cell); return cell; };
|
|
301
|
+
const addRuntimeTasks = (parent, tasks, key, scopeKnown = true) => {
|
|
302
|
+
if (!tasks.length) { append(parent, 'span', scopeKnown ? '暂无关联任务' : '关联任务未确认'); return; }
|
|
303
|
+
tasks.slice(0, 8).forEach(task => { const link = addTaskLink(parent, task.taskId, friendly(task.title, '未命名任务'), key + ':' + task.taskId); link.className = 'runtime-related-task'; });
|
|
304
|
+
if (tasks.length > 8) append(parent, 'small', '另有 ' + (tasks.length - 8) + ' 项,去任务详情查看。');
|
|
305
|
+
if (!scopeKnown) append(parent, 'small', '其他关联任务未确认;当前领地关系投影不完整。');
|
|
306
|
+
};
|
|
307
|
+
const renderRuntimeOverview = snapshot => {
|
|
308
|
+
const view = runtimeView(snapshot); const tasksParent = clear('runtime-tasks'); const sessionsParent = clear('runtime-sessions');
|
|
309
|
+
if (tasksParent) {
|
|
310
|
+
if (!view.tasks.length) addEmpty(tasksParent, '暂无任务。去“派发任务”填写目标并选择领地。');
|
|
311
|
+
else {
|
|
312
|
+
const body = runtimeTable(tasksParent, ['任务', '领地', '执行者', '任务状态', '本次执行'], '当前快照中的 ' + view.tasks.length + ' 个任务;点击名称查看详情。');
|
|
313
|
+
view.tasks.forEach(task => {
|
|
314
|
+
const row = document.createElement('tr'); row.setAttribute('data-runtime-task', task.taskId);
|
|
315
|
+
addTaskLink(runtimeLinkCell(row), task.taskId, friendly(task.title, '未命名任务'), 'runtime-task:' + task.taskId);
|
|
316
|
+
append(row, 'td', runtimeTerritoryName(view, task.territoryId)); append(row, 'td', runtimeBindingName(view, task.assignedBindingId));
|
|
317
|
+
append(row, 'td', stateDisplay(task.status)); const cell = append(row, 'td', task.latestExecution ? stateDisplay(record(task.latestExecution).state || 'UNKNOWN') : '尚无执行');
|
|
318
|
+
if (record(task.latestExecution).state === 'RECOVERING') append(cell, 'small', '等待主管核对,不会自动重发');
|
|
319
|
+
body.append(row);
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
if (!sessionsParent) return;
|
|
324
|
+
const rows = [];
|
|
325
|
+
view.bindings.forEach(binding => {
|
|
326
|
+
const affinities = binding.roleType === 'WORKER' ? view.affinities.filter(item => item.workerBindingId === binding.bindingId) : [];
|
|
327
|
+
if (affinities.length) affinities.forEach(affinity => rows.push({ binding, affinity }));
|
|
328
|
+
else rows.push({ binding, affinity: null });
|
|
329
|
+
});
|
|
330
|
+
view.affinities.filter(affinity => !view.bindings.some(binding => binding.bindingId === affinity.workerBindingId)).forEach(affinity => rows.push({ binding: { bindingId: affinity.workerBindingId, roleType: 'WORKER', roleName: '执行者(登记角色不可见)' }, affinity }));
|
|
331
|
+
if (!rows.length) { addEmpty(sessionsParent, '尚未登记角色或 Worker 长期会话。可在“主管设置”让会话引导配置。'); return; }
|
|
332
|
+
const body = runtimeTable(sessionsParent, ['角色名称', '绑定会话', '领地', '关联任务', '执行观察'], '仅含王国已登记角色与当前 Worker 长期会话,非平台全部会话。');
|
|
333
|
+
rows.forEach(({ binding, affinity }) => {
|
|
334
|
+
const row = document.createElement('tr'); row.setAttribute('data-runtime-binding', binding.bindingId);
|
|
335
|
+
if (affinity) row.setAttribute('data-runtime-affinity', affinity.affinityId);
|
|
336
|
+
const roleCell = append(row, 'td', friendly(binding.roleName, '角色名称未提供'));
|
|
337
|
+
append(roleCell, 'small', ({ CHANCELLOR: '宰相', SUPERVISOR: '领地主管', WORKER: '执行者', OWNER: '人类所有者' })[binding.roleType] || '登记角色');
|
|
338
|
+
const session = affinity ? affinity.sessionDisplay : binding.sessionDisplay;
|
|
339
|
+
const sessionCell = append(row, 'td', friendly(session, binding.sessionBound ? '已绑定(标识未提供)' : '尚未绑定'));
|
|
340
|
+
if (binding.roleType === 'WORKER') append(sessionCell, 'small', affinity ? '长期执行会话' : '登记会话;长期执行会话尚未建立');
|
|
341
|
+
const supervisorScope = binding.roleType === 'SUPERVISOR' ? runtimeSupervisorScope(view, binding.bindingId) : null;
|
|
342
|
+
const territories = affinity ? view.territories.filter(item => item.territoryId === affinity.territoryId)
|
|
343
|
+
: supervisorScope ? supervisorScope.territories
|
|
344
|
+
: binding.roleType === 'WORKER' ? view.territories.filter(item => view.tasks.some(task => task.territoryId === item.territoryId && task.assignedBindingId === binding.bindingId)) : [];
|
|
345
|
+
const territoryCell = append(row, 'td', territories.length ? territories.map(item => friendly(item.name, '领地名称未提供')).join('、') : affinity || supervisorScope && !supervisorScope.known ? '领地未确认' : binding.roleType === 'CHANCELLOR' || binding.roleType === 'OWNER' ? '王国范围' : '尚未隶属领地');
|
|
346
|
+
if (territories.length && supervisorScope && !supervisorScope.known) append(territoryCell, 'small', '其他领地未确认');
|
|
347
|
+
const tasks = view.tasks.filter(task => binding.roleType === 'WORKER' ? task.assignedBindingId === binding.bindingId && (!affinity || task.territoryId === affinity.territoryId)
|
|
348
|
+
: supervisorScope ? supervisorScope.territories.some(territory => territory.territoryId === task.territoryId) : binding.roleType === 'CHANCELLOR');
|
|
349
|
+
addRuntimeTasks(runtimeLinkCell(row), tasks, 'runtime-session-task:' + binding.bindingId + ':' + (affinity ? affinity.affinityId : 'binding'), !supervisorScope || supervisorScope.known);
|
|
350
|
+
// Supervisor responsibilities and task counts are not a model activity observation.
|
|
351
|
+
// Worker observations must identify this binding, its task and the projected session.
|
|
352
|
+
const executions = binding.roleType === 'WORKER' && session ? view.executions.filter(execution => execution.workerBindingId === binding.bindingId
|
|
353
|
+
&& execution.sessionId === session && tasks.some(task => task.taskId === execution.taskId)
|
|
354
|
+
&& ['STARTING', 'RUNNING', 'PAUSED', 'RECOVERING'].includes(execution.state)) : [];
|
|
355
|
+
const observed = append(row, 'td', executions.length ? '执行记录:' + Array.from(new Set(executions.map(item => stateDisplay(item.state)))).join('、') : '未知:未提供该会话的运行观测');
|
|
356
|
+
if (executions.length) append(observed, 'small', executions.length + ' 条关联执行;不表示模型持续生成中');
|
|
357
|
+
body.append(row);
|
|
358
|
+
});
|
|
359
|
+
};
|
|
360
|
+
const renderSupervisorSettings = snapshot => {
|
|
361
|
+
const parent = clear('settings-supervisors'); if (!parent) return; const view = runtimeView(snapshot);
|
|
362
|
+
if (!view.territories.length) { addEmpty(parent, '尚无领地。请在 DSH 会话中告诉 AI“帮我创建项目领地,并引导我设置主管”。'); return; }
|
|
363
|
+
const body = runtimeTable(parent, ['领地', '当前主管', '绑定会话', '交给会话处理'], null);
|
|
364
|
+
view.territories.forEach(territory => {
|
|
365
|
+
const lookup = runtimeSupervisorLookup(view, territory.territoryId); const seatKnown = lookup.known; const bindingId = lookup.bindingId;
|
|
366
|
+
const supervisor = view.bindings.find(item => item.bindingId === bindingId && item.roleType === 'SUPERVISOR');
|
|
367
|
+
const row = document.createElement('tr'); row.setAttribute('data-supervisor-territory', territory.territoryId);
|
|
368
|
+
append(row, 'td', friendly(territory.name, '未命名领地')); append(row, 'td', supervisor ? friendly(supervisor.roleName, '主管名称未提供') : seatKnown ? '尚未绑定可用主管' : '当前主管未确认');
|
|
369
|
+
append(row, 'td', supervisor ? friendly(supervisor.sessionDisplay, supervisor.sessionBound ? '已绑定(标识未提供)' : '尚未绑定会话') : seatKnown ? '尚未绑定' : '尚未确认');
|
|
370
|
+
const cell = runtimeLinkCell(row); const request = supervisor ? '把「' + territory.name + '」主管换成当前会话' : '让当前会话负责「' + territory.name + '」';
|
|
371
|
+
append(cell, 'p', request); const button = append(cell, 'button', supervisor ? '复制更换主管请求' : '复制绑定主管请求', 'refresh supervisor-request');
|
|
372
|
+
button.type = 'button'; button.setAttribute('data-focus-key', 'supervisor-request:' + territory.territoryId);
|
|
373
|
+
button.onclick = () => {
|
|
374
|
+
const clipboard = globalThis.navigator && globalThis.navigator.clipboard;
|
|
375
|
+
const succeeded = () => addCopyStatus(button, '已复制。到目标 DSH 会话发给 AI,让它引导确认。', true);
|
|
376
|
+
const failed = () => addCopyStatus(button, '未能复制。请选中上面的一句话,发给目标 DSH 会话中的 AI。', false);
|
|
377
|
+
try { if (!clipboard || typeof clipboard.writeText !== 'function') { failed(); return; } Promise.resolve(clipboard.writeText(request)).then(succeeded, failed); } catch (_) { failed(); }
|
|
378
|
+
};
|
|
379
|
+
body.append(row);
|
|
380
|
+
});
|
|
381
|
+
};
|
|
220
382
|
const claimSummaryPreview = value => {
|
|
221
383
|
let preview = friendly(value, '尚无呈报摘要');
|
|
222
384
|
if (typeof value === 'string' && value.length <= 32768) {
|
|
@@ -568,6 +730,7 @@ export const WORKBENCH_SCRIPT = String.raw `
|
|
|
568
730
|
};
|
|
569
731
|
const renderWorkbench = snapshot => {
|
|
570
732
|
const data = workbenchData(snapshot);
|
|
733
|
+
renderRuntimeOverview(snapshot); renderSupervisorSettings(snapshot);
|
|
571
734
|
renderWorkbenchQueue('today-owner', data.ownerActions, '当前没有明确需要你处理的事项。');
|
|
572
735
|
renderWorkbenchQueue('inbox-owner', data.ownerActions, '当前没有明确需要你处理的事项。主管审查与返工会在下方单独列出。');
|
|
573
736
|
renderWorkbenchQueue('today-exceptions', data.exceptions, '当前没有已投影的执行异常。');
|
|
@@ -701,7 +864,7 @@ export const WORKBENCH_SCRIPT = String.raw `
|
|
|
701
864
|
const trusted = detail && state.detailTaskId === state.selectedTaskId && record(detail.task).taskId === state.selectedTaskId ? detail : null;
|
|
702
865
|
const task = trusted ? trusted.task : selectedTask();
|
|
703
866
|
if (!task) { addEmpty(parent, state.selectedTaskId ? '所选任务暂不可用,请重新读取;不会改选其他任务。' : '尚无任务,先展开任务草稿,写清目标和验收。'); return; }
|
|
704
|
-
const id = task.taskId; const back = append(parent, 'a', '← 返回' + ({ today: '
|
|
867
|
+
const id = task.taskId; const back = append(parent, 'a', '← 返回' + ({ today: '运行总览', dispatch: '派发任务', settings: '主管设置', inbox: '待我处理', overview: '王国地图', map: '王国地图', usage: '用量' }[state.taskReturnSection] || '运行总览'), 'task-return'); back.href = '#' + (state.taskReturnSection || 'today'); back.setAttribute('data-focus-key', 'task-back');
|
|
705
868
|
const summary = document.createElement('article'); summary.className = 'task-summary-card'; summary.setAttribute('data-read-anchor', id + ':summary'); append(summary, 'h3', task.title); append(summary, 'p', executionExplanation(task)); parent.append(summary);
|
|
706
869
|
const nav = document.createElement('nav'); nav.className = 'task-detail-jump'; nav.setAttribute('aria-label', '任务内容'); ['目标与验收', '当前进展', '交付及验证', '参与者', '用量', '历史'].forEach((label, index) => { const button = append(nav, 'button', label, 'role-inspect-button'); button.type = 'button'; button.setAttribute('data-focus-key', 'detail-jump:' + index); button.onclick = () => { const target = byId('task-section-' + ['goal', 'progress', 'delivery', 'participants', 'usage', 'history'][index]); if (target) { target.tabIndex = -1; target.focus({ preventScroll: true }); target.scrollIntoView({ block: 'start' }); } }; }); parent.append(nav);
|
|
707
870
|
const goal = detailSection(parent, id, 'goal', '目标与验收'); addParagraph(goal, '目标', task.title, '尚未填写'); addParagraph(goal, '范围', task.description, '尚未填写范围'); addParagraph(goal, '验收条件', task.acceptanceCriteria, '尚未填写验收条件');
|
|
@@ -755,12 +918,18 @@ export const WORKBENCH_SCRIPT = String.raw `
|
|
|
755
918
|
const mountWorkbench = () => {
|
|
756
919
|
const tasks = byId('tasks'); const zones = document.querySelector('.zones'); if (tasks && zones) { tasks.setAttribute('data-console-page', 'tasks'); tasks.hidden = true; zones.append(tasks); }
|
|
757
920
|
const management = byId('management'); if (management) management.setAttribute('data-console-page', 'legacy-management');
|
|
758
|
-
const
|
|
921
|
+
const dispatch = byId('dispatch-content'); const composer = document.querySelector('.task-composer-card');
|
|
922
|
+
if (composer && dispatch) { const draft = document.createElement('details'); draft.id = 'task-draft-panel'; draft.className = 'task-draft-panel'; draft.open = true; append(draft, 'summary', '1. 写清任务与领地'); draft.append(composer); dispatch.append(draft); }
|
|
923
|
+
[['assign-form', '2. 指定执行者'], ['start-form', '3. 启动执行']].forEach(([id, title]) => {
|
|
924
|
+
const form = byId(id); if (!form || !dispatch) return; const oldWrapper = form.closest('details');
|
|
925
|
+
const section = document.createElement('section'); section.className = 'dispatch-step'; append(section, 'h3', title); section.append(form); dispatch.append(section);
|
|
926
|
+
if (oldWrapper) oldWrapper.remove();
|
|
927
|
+
});
|
|
759
928
|
const actionDock = byId('operation-forms'); const detailParent = byId('task-detail-content'); if (actionDock && detailParent) { actionDock.classList.add('task-actions-inline'); detailParent.parentElement.append(actionDock); }
|
|
760
929
|
const capability = document.querySelector('.capability-card'); if (capability) byId('settings-control-slot').append(capability);
|
|
761
930
|
const owner = document.querySelector('.owner-management'); if (owner) { owner.querySelectorAll('.owner-actions').forEach(node => node.remove()); byId('settings-owner-slot').append(owner); }
|
|
762
931
|
const overview = byId('overview'); const grid = overview && overview.querySelector('.council-grid'); if (grid) { grid.classList.add('role-workbench-layout'); const inspector = document.createElement('aside'); inspector.id = 'role-inspector'; inspector.className = 'role-inspector'; inspector.hidden = true; inspector.tabIndex = -1; inspector.setAttribute('aria-label', '角色职责与任务'); const close = append(inspector, 'button', '关闭角色侧栏', 'refresh'); close.type = 'button'; close.onclick = () => { const roleId = state.selectedRoleId; state.selectedRoleId = ''; inspector.hidden = true; const original = Array.from(document.querySelectorAll('[data-focus-key]')).find(node => node.getAttribute('data-focus-key') === 'role:' + roleId); if (original) original.focus(); }; const content = document.createElement('div'); content.id = 'role-inspector-content'; inspector.append(content); grid.append(inspector); }
|
|
763
|
-
const quick = byId('quick-task-form'); if (quick) quick.addEventListener('submit', event => { event.preventDefault(); const goal = String(byId('quick-task-goal').value || '').trim(); if (!goal) return; const title = byId('task-title'); if (!stageWorkbenchGoal(goal)) status('
|
|
932
|
+
const quick = byId('quick-task-form'); if (quick) quick.addEventListener('submit', event => { event.preventDefault(); const goal = String(byId('quick-task-goal').value || '').trim(); if (!goal) return; const title = byId('task-title'); if (!stageWorkbenchGoal(goal)) status('已有未提交草稿,请继续编辑。新目标保留在输入框中。', 'neutral'); else status('草稿尚未提交,请补充范围和验收条件。', 'neutral'); history.pushState(null, '', '#dispatch'); applyNavigationFromLocation(false); const draft = byId('task-draft-panel'); if (draft) { draft.open = true; readerDetails.set(draft.id, true); } if (title) { title.focus(); title.scrollIntoView({ block: 'center' }); } });
|
|
764
933
|
const refresh = byId('workbench-refresh'); if (refresh) refresh.onclick = () => { void load(false); };
|
|
765
934
|
const territory = byId('task-territory'); if (territory) territory.addEventListener('change', () => { state.selectedTerritoryId = territory.value; const chip = byId('task-territory-chip'); if (chip) chip.hidden = true; });
|
|
766
935
|
document.addEventListener('click', event => { const target = event.target && typeof event.target.closest === 'function' ? event.target.closest('a[href]') : null; if (target && String(target.getAttribute('href') || '').startsWith('#task=') && state.activeSection !== 'tasks') state.taskReturnSection = state.activeSection === 'overview' ? 'map' : state.activeSection; });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workbench-ui.js","sourceRoot":"","sources":["../../src/gui/workbench-ui.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"workbench-ui.js","sourceRoot":"","sources":["../../src/gui/workbench-ui.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2KtC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCvC,CAAC;AAEF,yFAAyF;AACzF,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAstBzC,CAAC"}
|