dsh-plugin-subagent-director 0.3.0-beta.2 → 0.3.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"RoleCard.d.ts","sourceRoot":"","sources":["../../src/client/RoleCard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAc9D,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,4BAA4B;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,4CAA4C;IAC5C,SAAS,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACtC,gEAAgE;IAChE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,oBAAoB;IACpB,CAAC,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,MAAM,CAAC;IACxC,+EAA+E;IAC/E,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1D,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC5C,sFAAsF;IACtF,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACjD;AASD,wBAAgB,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CAsL9H"}
1
+ {"version":3,"file":"RoleCard.d.ts","sourceRoot":"","sources":["../../src/client/RoleCard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAe9D,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,4BAA4B;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,4CAA4C;IAC5C,SAAS,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACtC,gEAAgE;IAChE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,oBAAoB;IACpB,CAAC,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,MAAM,CAAC;IACxC,+EAA+E;IAC/E,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1D,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC5C,sFAAsF;IACtF,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACjD;AASD,wBAAgB,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CAiK9H"}
@@ -3,6 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  * Provider/model/effort selects cascade from the model catalog; writes go
4
4
  * through the controller as path ops, and failures return a localized message. */
5
5
  import { useState } from 'react';
6
+ import { ToolSetPicker } from './ToolSetPicker.js';
6
7
  import { cardStyle, dangerButtonStyle, fieldLabelStyle, ghostButtonStyle, primaryButtonStyle, rowStyle, selectStyle, textAreaStyle, textInputStyle, token, } from './ui.js';
7
8
  function effortsFor(groups, provider, model) {
8
9
  if (!provider || !model)
@@ -60,16 +61,9 @@ export function RoleCard({ id, role, isDefault, groups, tools, t, onSave, onDele
60
61
  const setField = (field, value) => {
61
62
  setDraft((d) => ({ ...d, [field]: value }));
62
63
  };
63
- const toggleTool = (name) => {
64
- setDraft((d) => {
65
- const allow = d.toolFilter?.allow ?? [];
66
- const next = allow.includes(name) ? allow.filter((n) => n !== name) : [...allow, name];
67
- return { ...d, toolFilter: { allow: next } };
68
- });
69
- };
70
64
  const allowList = draft.toolFilter?.allow ?? [];
71
65
  if (editing) {
72
- return (_jsxs("div", { style: cardStyle, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'baseline', gap: 8 }, children: [_jsx("strong", { style: { color: token.labelPrimary, fontSize: 14 }, children: t('roleDisplayName') }), isDefault ? _jsx("span", { style: { color: token.accent, fontSize: 12 }, children: t('defaultRoleBadge') }) : null] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('roleDisplayName') }), _jsx("input", { style: textInputStyle, value: draft.displayName, placeholder: t('displayNamePlaceholder'), onChange: (e) => setField('displayName', e.target.value) })] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('roleDescription') }), _jsx("textarea", { style: textAreaStyle, value: draft.description, placeholder: t('descriptionPlaceholder'), onChange: (e) => setField('description', e.target.value) })] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('rolePersona') }), _jsx("textarea", { style: textAreaStyle, value: draft.persona, placeholder: t('personaPlaceholder'), onChange: (e) => setField('persona', e.target.value) })] }), _jsxs("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(3, minmax(0, 1fr))', gap: 8 }, children: [_jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('provider') }), _jsxs("select", { style: selectStyle, value: draft.provider, disabled: groups.length === 0, onChange: (e) => setField('provider', e.target.value), children: [_jsx("option", { value: "", children: "\u2014" }), groups.map((g) => (_jsx("option", { value: g.id, children: g.name }, g.id)))] })] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('model') }), _jsxs("select", { style: selectStyle, value: draft.model, disabled: modelOptions.length === 0, onChange: (e) => setField('model', e.target.value), children: [_jsx("option", { value: "", children: "\u2014" }), modelOptions.map((m) => (_jsx("option", { value: m.id, children: m.name }, m.id)))] })] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('reasoningEffort') }), _jsxs("select", { style: selectStyle, value: draft.reasoningEffort, disabled: effortOptions.length === 0, onChange: (e) => setField('reasoningEffort', e.target.value), children: [_jsx("option", { value: "", children: "\u2014" }), effortOptions.map((e) => (_jsx("option", { value: e.id, children: e.name }, e.id)))] })] })] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('toolFilter') }), tools.length === 0 ? (_jsx("span", { style: { color: token.labelTertiary, fontSize: 12 }, children: t('toolFilterEmpty') })) : (_jsx("div", { style: { display: 'flex', flexWrap: 'wrap', gap: '4px 14px' }, children: tools.map((name) => (_jsxs("label", { style: { display: 'inline-flex', alignItems: 'center', gap: 4, fontSize: 12, color: token.labelSecondary, cursor: 'pointer' }, children: [_jsx("input", { type: "checkbox", checked: allowList.includes(name), onChange: () => toggleTool(name) }), name] }, name))) })), _jsx("span", { style: { color: token.labelTertiary, fontSize: 11, lineHeight: '15px' }, children: allowList.length === 0 ? t('toolFilterNone') : t('toolFilterHint') })] }), failure !== undefined ? _jsx("div", { style: { color: token.danger, fontSize: 12 }, children: failure }) : null, _jsxs("div", { style: { display: 'flex', gap: 8 }, children: [_jsx("button", { style: primaryButtonStyle, disabled: busy, onClick: save, children: t('save') }), _jsx("button", { style: ghostButtonStyle, disabled: busy, onClick: () => setEditing(false), children: t('cancel') })] })] }));
66
+ return (_jsxs("div", { style: cardStyle, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'baseline', gap: 8 }, children: [_jsx("strong", { style: { color: token.labelPrimary, fontSize: 14 }, children: t('roleDisplayName') }), isDefault ? _jsx("span", { style: { color: token.accent, fontSize: 12 }, children: t('defaultRoleBadge') }) : null] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('roleDisplayName') }), _jsx("input", { style: textInputStyle, value: draft.displayName, placeholder: t('displayNamePlaceholder'), onChange: (e) => setField('displayName', e.target.value) })] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('roleDescription') }), _jsx("textarea", { style: textAreaStyle, value: draft.description, placeholder: t('descriptionPlaceholder'), onChange: (e) => setField('description', e.target.value) })] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('rolePersona') }), _jsx("textarea", { style: textAreaStyle, value: draft.persona, placeholder: t('personaPlaceholder'), onChange: (e) => setField('persona', e.target.value) })] }), _jsxs("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(3, minmax(0, 1fr))', gap: 8 }, children: [_jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('provider') }), _jsxs("select", { style: selectStyle, value: draft.provider, disabled: groups.length === 0, onChange: (e) => setField('provider', e.target.value), children: [_jsx("option", { value: "", children: "\u2014" }), groups.map((g) => (_jsx("option", { value: g.id, children: g.name }, g.id)))] })] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('model') }), _jsxs("select", { style: selectStyle, value: draft.model, disabled: modelOptions.length === 0, onChange: (e) => setField('model', e.target.value), children: [_jsx("option", { value: "", children: "\u2014" }), modelOptions.map((m) => (_jsx("option", { value: m.id, children: m.name }, m.id)))] })] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('reasoningEffort') }), _jsxs("select", { style: selectStyle, value: draft.reasoningEffort, disabled: effortOptions.length === 0, onChange: (e) => setField('reasoningEffort', e.target.value), children: [_jsx("option", { value: "", children: "\u2014" }), effortOptions.map((e) => (_jsx("option", { value: e.id, children: e.name }, e.id)))] })] })] }), _jsx("div", { style: rowStyle, children: _jsx(ToolSetPicker, { tools: tools, selected: allowList, t: t, onChange: (allow) => setDraft((d) => ({ ...d, toolFilter: { allow } })) }) }), failure !== undefined ? _jsx("div", { style: { color: token.danger, fontSize: 12 }, children: failure }) : null, _jsxs("div", { style: { display: 'flex', gap: 8 }, children: [_jsx("button", { style: primaryButtonStyle, disabled: busy, onClick: save, children: t('save') }), _jsx("button", { style: ghostButtonStyle, disabled: busy, onClick: () => setEditing(false), children: t('cancel') })] })] }));
73
67
  }
74
68
  return (_jsxs("div", { style: cardStyle, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'baseline', justifyContent: 'space-between', gap: 8 }, children: [_jsx("strong", { style: { color: token.labelPrimary, fontSize: 14 }, children: role.displayName || id }), _jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 6 }, children: [_jsx("span", { style: { color: token.labelTertiary, fontSize: 12, fontVariantNumeric: 'tabular-nums' }, children: id }), isDefault ? _jsx("span", { style: { color: token.accent, fontSize: 12 }, children: t('defaultRoleBadge') }) : null] })] }), role.description ? (_jsx("p", { style: { margin: 0, color: token.labelSecondary, fontSize: 13, lineHeight: '18px' }, children: role.description })) : null, _jsxs("div", { style: { display: 'flex', flexWrap: 'wrap', gap: 8 }, children: [_jsx(Metadata, { label: t('provider'), value: role.provider }), _jsx(Metadata, { label: t('model'), value: role.model }), _jsx(Metadata, { label: t('reasoningEffort'), value: role.reasoningEffort }), role.persona ? _jsx(Metadata, { label: t('persona'), value: role.persona }) : null, role.toolFilter?.allow?.length ? (_jsx(Metadata, { label: t('toolFilter'), value: role.toolFilter.allow.join(', ') })) : null] }), failure !== undefined ? _jsx("div", { style: { color: token.danger, fontSize: 12 }, children: failure }) : null, _jsxs("div", { style: { display: 'flex', gap: 8 }, children: [_jsx("button", { style: ghostButtonStyle, disabled: busy, onClick: () => setEditing(true), children: t('edit') }), _jsx("button", { style: ghostButtonStyle, disabled: busy || isDefault, onClick: () => (void onSetDefault(), undefined), children: t('setDefaultRole') }), _jsx("button", { style: dangerButtonStyle, disabled: busy, onClick: remove, children: t('deleteRole') })] })] }));
75
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RoleCard.js","sourceRoot":"","sources":["../../src/client/RoleCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RoleCard.js","sourceRoot":"","sources":["../../src/client/RoleCard.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SubagentOptionsSection.d.ts","sourceRoot":"","sources":["../../src/client/SubagentOptionsSection.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAiB7E,+EAA+E;AAC/E,MAAM,WAAW,8BAA8B;IAC3C,2EAA2E;IAC3E,UAAU,EAAE,oBAAoB,CAAC;IACjC,iDAAiD;IACjD,WAAW,EAAE,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;IACxD,mFAAmF;IACnF,GAAG,EAAE,OAAO,CAAC;IACb,oBAAoB;IACpB,CAAC,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,MAAM,CAAC;CAC3C;AAED,uEAAuE;AACvE,MAAM,MAAM,2BAA2B,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAqBlF;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAI7F"}
1
+ {"version":3,"file":"SubagentOptionsSection.d.ts","sourceRoot":"","sources":["../../src/client/SubagentOptionsSection.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAkB7E,+EAA+E;AAC/E,MAAM,WAAW,8BAA8B;IAC3C,2EAA2E;IAC3E,UAAU,EAAE,oBAAoB,CAAC;IACjC,iDAAiD;IACjD,WAAW,EAAE,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;IACxD,mFAAmF;IACnF,GAAG,EAAE,OAAO,CAAC;IACb,oBAAoB;IACpB,CAAC,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,MAAM,CAAC;CAC3C;AAED,uEAAuE;AACvE,MAAM,MAAM,2BAA2B,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAqBlF;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAI7F"}
@@ -14,6 +14,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
14
  import { useEffect, useState } from 'react';
15
15
  import { roleIdFromName } from './store-logic.js';
16
16
  import { RoleCard } from './RoleCard.js';
17
+ import { ToolSetPicker } from './ToolSetPicker.js';
17
18
  import { cardStyle, fieldLabelStyle, ghostButtonStyle, primaryButtonStyle, rowStyle, sectionWidth, selectStyle, textAreaStyle, textInputStyle, token, } from './ui.js';
18
19
  /** Derive reasoning-effort options from the catalog for an exact provider+model. */
19
20
  function effortsFor(groups, provider, model) {
@@ -161,10 +162,6 @@ function RolesBlock({ controller, groups, tools, writable, roles, defaultRole, t
161
162
  setBusy(false);
162
163
  }
163
164
  };
164
- return (_jsxs("div", { style: cardStyle, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'baseline', justifyContent: 'space-between', gap: 8 }, children: [_jsx("strong", { style: { color: token.labelPrimary, fontSize: 14 }, children: t('rolesHeading') }), _jsx("button", { style: ghostButtonStyle, disabled: !writable || adding, onClick: beginAdd, children: t('addRole') })] }), _jsx("p", { style: { margin: 0, color: token.labelSecondary, fontSize: 13, lineHeight: '18px' }, children: t('rolesHint') }), adding ? (_jsxs("div", { style: { border: '1px dashed ' + token.border, borderRadius: 10, padding: 12, display: 'flex', flexDirection: 'column', gap: 10 }, children: [_jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('roleDisplayName') }), _jsx("input", { style: textInputStyle, value: draft.displayName, placeholder: t('displayNamePlaceholder'), onChange: (e) => setDraft((d) => ({ ...d, displayName: e.target.value })) })] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('roleDescription') }), _jsx("textarea", { style: textAreaStyle, value: draft.description, placeholder: t('descriptionPlaceholder'), onChange: (e) => setDraft((d) => ({ ...d, description: e.target.value })) })] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('toolFilter') }), tools.length === 0 ? (_jsx("span", { style: { color: token.labelTertiary, fontSize: 12 }, children: t('toolFilterEmpty') })) : (_jsx("div", { style: { display: 'flex', flexWrap: 'wrap', gap: '4px 14px' }, children: tools.map((name) => (_jsxs("label", { style: { display: 'inline-flex', alignItems: 'center', gap: 4, fontSize: 12, color: token.labelSecondary, cursor: 'pointer' }, children: [_jsx("input", { type: "checkbox", checked: (draft.toolFilter?.allow ?? []).includes(name), onChange: () => setDraft((d) => {
165
- const allow = d.toolFilter?.allow ?? [];
166
- const next = allow.includes(name) ? allow.filter((n) => n !== name) : [...allow, name];
167
- return { ...d, toolFilter: { allow: next } };
168
- }) }), name] }, name))) })), _jsx("span", { style: { color: token.labelTertiary, fontSize: 11, lineHeight: '15px' }, children: (draft.toolFilter?.allow?.length ?? 0) === 0 ? t('toolFilterNone') : t('toolFilterHint') })] }), failure !== undefined ? _jsx("div", { style: { color: token.danger, fontSize: 12 }, children: failure }) : null, _jsxs("div", { style: { display: 'flex', gap: 8 }, children: [_jsx("button", { style: primaryButtonStyle, disabled: !writable || busy, onClick: () => void saveAdd(), children: t('addRole') }), _jsx("button", { style: ghostButtonStyle, disabled: busy, onClick: () => setAdding(false), children: t('cancel') })] })] })) : null, roles.length === 0 && !adding ? (_jsx("p", { style: { margin: 0, color: token.labelSecondary, fontSize: 13 }, children: t('emptyRoles') })) : (roles.map(([id, role]) => (_jsx(RoleCard, { id: id, role: role, isDefault: defaultRole === id, groups: groups, tools: tools, t: t, onSave: (d) => controller.updateRole(id, role, d), onDelete: () => controller.removeRole(id), onSetDefault: () => controller.setDefaultRole(id) }, id))))] }));
165
+ return (_jsxs("div", { style: cardStyle, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'baseline', justifyContent: 'space-between', gap: 8 }, children: [_jsx("strong", { style: { color: token.labelPrimary, fontSize: 14 }, children: t('rolesHeading') }), _jsx("button", { style: ghostButtonStyle, disabled: !writable || adding, onClick: beginAdd, children: t('addRole') })] }), _jsx("p", { style: { margin: 0, color: token.labelSecondary, fontSize: 13, lineHeight: '18px' }, children: t('rolesHint') }), adding ? (_jsxs("div", { style: { border: '1px dashed ' + token.border, borderRadius: 10, padding: 12, display: 'flex', flexDirection: 'column', gap: 10 }, children: [_jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('roleDisplayName') }), _jsx("input", { style: textInputStyle, value: draft.displayName, placeholder: t('displayNamePlaceholder'), onChange: (e) => setDraft((d) => ({ ...d, displayName: e.target.value })) })] }), _jsxs("div", { style: rowStyle, children: [_jsx("label", { style: fieldLabelStyle, children: t('roleDescription') }), _jsx("textarea", { style: textAreaStyle, value: draft.description, placeholder: t('descriptionPlaceholder'), onChange: (e) => setDraft((d) => ({ ...d, description: e.target.value })) })] }), _jsx("div", { style: rowStyle, children: _jsx(ToolSetPicker, { tools: tools, selected: draft.toolFilter?.allow ?? [], t: t, onChange: (allow) => setDraft((d) => ({ ...d, toolFilter: { allow } })) }) }), failure !== undefined ? _jsx("div", { style: { color: token.danger, fontSize: 12 }, children: failure }) : null, _jsxs("div", { style: { display: 'flex', gap: 8 }, children: [_jsx("button", { style: primaryButtonStyle, disabled: !writable || busy, onClick: () => void saveAdd(), children: t('addRole') }), _jsx("button", { style: ghostButtonStyle, disabled: busy, onClick: () => setAdding(false), children: t('cancel') })] })] })) : null, roles.length === 0 && !adding ? (_jsx("p", { style: { margin: 0, color: token.labelSecondary, fontSize: 13 }, children: t('emptyRoles') })) : (roles.map(([id, role]) => (_jsx(RoleCard, { id: id, role: role, isDefault: defaultRole === id, groups: groups, tools: tools, t: t, onSave: (d) => controller.updateRole(id, role, d), onDelete: () => controller.removeRole(id), onSetDefault: () => controller.setDefaultRole(id) }, id))))] }));
169
166
  }
170
167
  //# sourceMappingURL=SubagentOptionsSection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SubagentOptionsSection.js","sourceRoot":"","sources":["../../src/client/SubagentOptionsSection.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SubagentOptionsSection.js","sourceRoot":"","sources":["../../src/client/SubagentOptionsSection.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Tool-set picker shared by the role editor and the add-role form.
3
+ *
4
+ * A compact row that expands into: a search box, select-all / deselect-all
5
+ * (scoped to the CURRENT filter — tools hidden by the search are never
6
+ * touched), a live "selected / total" count, and a checkbox grid of the
7
+ * filtered tools. Collapsed, it shows the label, the count, and a
8
+ * chevron toggle so a large catalog (hundreds of MCP tools) stays compact.
9
+ */
10
+ import type { SubagentDirectorKey } from './locales.js';
11
+ export interface ToolSetPickerProps {
12
+ /** All model-visible tool names (the catalog). */
13
+ tools: readonly string[];
14
+ /** Currently selected (allow-list) tool names. */
15
+ selected: readonly string[];
16
+ /** Commit the new allow list. */
17
+ onChange: (allow: string[]) => void;
18
+ /** Section copy; may accept interpolation params. */
19
+ t: (key: SubagentDirectorKey, params?: Record<string, string | number>) => string;
20
+ }
21
+ /** Render the searchable, select-all capable tool-set picker. */
22
+ export declare function ToolSetPicker({ tools, selected, onChange, t }: ToolSetPickerProps): React.JSX.Element;
23
+ //# sourceMappingURL=ToolSetPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolSetPicker.d.ts","sourceRoot":"","sources":["../../src/client/ToolSetPicker.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AASxD,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,kDAAkD;IAClD,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,iCAAiC;IACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,qDAAqD;IACrD,CAAC,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAAC;CACnF;AAiDD,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,kBAAkB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA6ErG"}
@@ -0,0 +1,72 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Tool-set picker shared by the role editor and the add-role form.
4
+ *
5
+ * A compact row that expands into: a search box, select-all / deselect-all
6
+ * (scoped to the CURRENT filter — tools hidden by the search are never
7
+ * touched), a live "selected / total" count, and a checkbox grid of the
8
+ * filtered tools. Collapsed, it shows the label, the count, and a
9
+ * chevron toggle so a large catalog (hundreds of MCP tools) stays compact.
10
+ */
11
+ import { useMemo, useState } from 'react';
12
+ import { addToolNames, filterToolNames, removeToolNames, toggleToolName, } from './toolset-logic.js';
13
+ import { fieldLabelStyle, ghostButtonStyle, textInputStyle, token } from './ui.js';
14
+ const style = {
15
+ root: {
16
+ display: 'flex',
17
+ flexDirection: 'column',
18
+ gap: 6,
19
+ },
20
+ head: {
21
+ display: 'flex',
22
+ alignItems: 'center',
23
+ gap: 8,
24
+ },
25
+ count: {
26
+ color: token.labelTertiary,
27
+ fontSize: 11,
28
+ lineHeight: '16px',
29
+ },
30
+ search: {
31
+ ...textInputStyle,
32
+ height: 26,
33
+ fontSize: 12,
34
+ },
35
+ grid: {
36
+ display: 'flex',
37
+ flexWrap: 'wrap',
38
+ gap: '4px 14px',
39
+ },
40
+ item: {
41
+ display: 'inline-flex',
42
+ alignItems: 'center',
43
+ gap: 4,
44
+ fontSize: 12,
45
+ color: token.labelSecondary,
46
+ cursor: 'pointer',
47
+ },
48
+ hint: {
49
+ color: token.labelTertiary,
50
+ fontSize: 11,
51
+ lineHeight: '15px',
52
+ },
53
+ toggle: {
54
+ ...ghostButtonStyle,
55
+ height: 24,
56
+ fontSize: 12,
57
+ padding: '0 8px',
58
+ },
59
+ };
60
+ /** Render the searchable, select-all capable tool-set picker. */
61
+ export function ToolSetPicker({ tools, selected, onChange, t }) {
62
+ const [query, setQuery] = useState('');
63
+ const [open, setOpen] = useState(true);
64
+ const filtered = useMemo(() => filterToolNames(tools, query), [tools, query]);
65
+ const filteredSet = useMemo(() => new Set(filtered), [filtered]);
66
+ const allFilteredSelected = filtered.length > 0 && filtered.every((name) => selected.includes(name));
67
+ if (tools.length === 0) {
68
+ return (_jsxs("div", { style: style.root, children: [_jsx("label", { style: fieldLabelStyle, children: t('toolFilter') }), _jsx("span", { style: style.hint, children: t('toolFilterEmpty') })] }));
69
+ }
70
+ return (_jsxs("div", { style: style.root, children: [_jsxs("div", { style: style.head, children: [_jsx("label", { style: fieldLabelStyle, children: t('toolFilter') }), _jsx("span", { style: style.count, children: t('toolFilterCount', { count: selected.length, total: tools.length }) }), _jsx("button", { type: "button", style: style.toggle, onClick: () => setOpen((o) => !o), children: open ? t('toolFilterCollapse') : t('toolFilterExpand') })] }), open ? (_jsxs(_Fragment, { children: [_jsx("input", { style: style.search, value: query, placeholder: t('toolFilterSearch'), onChange: (e) => setQuery(e.target.value) }), _jsxs("div", { style: { display: 'flex', gap: 8 }, children: [_jsx("button", { type: "button", style: ghostButtonStyle, disabled: filtered.length === 0 || allFilteredSelected, onClick: () => onChange(addToolNames(selected, filtered)), children: t('toolFilterSelectAll') }), _jsx("button", { type: "button", style: ghostButtonStyle, disabled: filtered.length === 0 || !filtered.some((name) => selected.includes(name)), onClick: () => onChange(removeToolNames(selected, filtered)), children: t('toolFilterDeselectAll') })] }), filtered.length === 0 ? (_jsx("span", { style: style.hint, children: t('toolFilterNoMatch') })) : (_jsx("div", { style: style.grid, children: filtered.map((name) => (_jsxs("label", { style: style.item, children: [_jsx("input", { type: "checkbox", checked: selected.includes(name), onChange: () => onChange(toggleToolName(selected, name)) }), name] }, name))) }))] })) : null, _jsx("span", { style: style.hint, children: selected.length === 0 ? t('toolFilterNone') : t('toolFilterHint') })] }));
71
+ }
72
+ //# sourceMappingURL=ToolSetPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolSetPicker.js","sourceRoot":"","sources":["../../src/client/ToolSetPicker.tsx"],"names":[],"mappings":"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"}
@@ -81,6 +81,13 @@ window.__ModuleLoader__.load({
81
81
  "toolFilterHint": "Restrict the subagent to these tools. Leave empty to inherit the parent's full tool set.",
82
82
  "toolFilterNone": "Inherit parent tools (no restriction)",
83
83
  "toolFilterEmpty": "No tools available",
84
+ "toolFilterSearch": "Search tools…",
85
+ "toolFilterSelectAll": "Select all",
86
+ "toolFilterDeselectAll": "Deselect all",
87
+ "toolFilterCount": "Selected {count} / {total}",
88
+ "toolFilterExpand": "Expand",
89
+ "toolFilterCollapse": "Collapse",
90
+ "toolFilterNoMatch": "No tools match the search.",
84
91
  "restoreDone": "Defaults restored",
85
92
  "invalidRoleId": "Role id must be kebab-case (lowercase letters, digits, single hyphens).",
86
93
  "bridgeUnavailable": "The Subagent Director settings bridge is not available on this server. Please update/restart the web application so it installs the /subagent-director channel.",
@@ -144,6 +151,13 @@ window.__ModuleLoader__.load({
144
151
  "toolFilterHint": "将子代理限制为这些工具。留空则继承父代理的完整工具集。",
145
152
  "toolFilterNone": "继承父代理工具(不限制)",
146
153
  "toolFilterEmpty": "无可用工具",
154
+ "toolFilterSearch": "搜索工具…",
155
+ "toolFilterSelectAll": "全选",
156
+ "toolFilterDeselectAll": "全不选",
157
+ "toolFilterCount": "已选 {count} / 共 {total}",
158
+ "toolFilterExpand": "展开",
159
+ "toolFilterCollapse": "收起",
160
+ "toolFilterNoMatch": "没有匹配搜索的工具。",
147
161
  "restoreDone": "已恢复默认",
148
162
  "invalidRoleId": "角色 id 必须为 kebab-case(小写字母、数字、单个连字符)。",
149
163
  "bridgeUnavailable": "此服务器尚未提供 Subagent Director 设置桥接通道(/subagent-director)。请重启 Web 应用以安装该通道后再试。",
@@ -568,6 +582,39 @@ window.__ModuleLoader__.load({
568
582
  }
569
583
  };
570
584
  //#endregion
585
+ //#region src/client/toolset-logic.ts
586
+ /**
587
+ * Pure tool-set picker logic for the role editor (search / select-all /
588
+ * deselect-all). Framework-free so the filtering and set algebra are
589
+ * unit-testable without React.
590
+ *
591
+ * The select-all / deselect-all semantics follow the "filtered scope" rule:
592
+ * they operate ONLY on the currently filtered tool names, never on tools the
593
+ * search has hidden, so a user searching for "web" cannot accidentally select
594
+ * every unrelated tool.
595
+ */
596
+ /** Case-insensitive substring filter over tool names; empty query keeps all. */
597
+ function filterToolNames(tools, query) {
598
+ const q = query.trim().toLowerCase();
599
+ if (q === "") return [...tools];
600
+ return tools.filter((tool) => tool.toLowerCase().includes(q));
601
+ }
602
+ /** Toggle one tool name in the allow list (order-preserving). */
603
+ function toggleToolName(current, name) {
604
+ return current.includes(name) ? current.filter((n) => n !== name) : [...current, name];
605
+ }
606
+ /** Add every candidate to the allow list (deduplicated, order-preserving). */
607
+ function addToolNames(current, candidates) {
608
+ const set = new Set(current);
609
+ for (const candidate of candidates) set.add(candidate);
610
+ return [...set];
611
+ }
612
+ /** Remove every candidate from the allow list. */
613
+ function removeToolNames(current, candidates) {
614
+ const drop = new Set(candidates);
615
+ return current.filter((name) => !drop.has(name));
616
+ }
617
+ //#endregion
571
618
  //#region src/client/ui.ts
572
619
  const token = {
573
620
  labelPrimary: "var(--dsw-alias-label-primary)",
@@ -671,6 +718,153 @@ window.__ModuleLoader__.load({
671
718
  color: token.labelPrimary
672
719
  };
673
720
  //#endregion
721
+ //#region src/client/ToolSetPicker.tsx
722
+ /**
723
+ * Tool-set picker shared by the role editor and the add-role form.
724
+ *
725
+ * A compact row that expands into: a search box, select-all / deselect-all
726
+ * (scoped to the CURRENT filter — tools hidden by the search are never
727
+ * touched), a live "selected / total" count, and a checkbox grid of the
728
+ * filtered tools. Collapsed, it shows the label, the count, and a
729
+ * chevron toggle so a large catalog (hundreds of MCP tools) stays compact.
730
+ */
731
+ const style$2 = {
732
+ root: {
733
+ display: "flex",
734
+ flexDirection: "column",
735
+ gap: 6
736
+ },
737
+ head: {
738
+ display: "flex",
739
+ alignItems: "center",
740
+ gap: 8
741
+ },
742
+ count: {
743
+ color: token.labelTertiary,
744
+ fontSize: 11,
745
+ lineHeight: "16px"
746
+ },
747
+ search: {
748
+ ...textInputStyle,
749
+ height: 26,
750
+ fontSize: 12
751
+ },
752
+ grid: {
753
+ display: "flex",
754
+ flexWrap: "wrap",
755
+ gap: "4px 14px"
756
+ },
757
+ item: {
758
+ display: "inline-flex",
759
+ alignItems: "center",
760
+ gap: 4,
761
+ fontSize: 12,
762
+ color: token.labelSecondary,
763
+ cursor: "pointer"
764
+ },
765
+ hint: {
766
+ color: token.labelTertiary,
767
+ fontSize: 11,
768
+ lineHeight: "15px"
769
+ },
770
+ toggle: {
771
+ ...ghostButtonStyle,
772
+ height: 24,
773
+ fontSize: 12,
774
+ padding: "0 8px"
775
+ }
776
+ };
777
+ /** Render the searchable, select-all capable tool-set picker. */
778
+ function ToolSetPicker({ tools, selected, onChange, t }) {
779
+ const [query, setQuery] = (0, react.useState)("");
780
+ const [open, setOpen] = (0, react.useState)(true);
781
+ const filtered = (0, react.useMemo)(() => filterToolNames(tools, query), [tools, query]);
782
+ (0, react.useMemo)(() => new Set(filtered), [filtered]);
783
+ const allFilteredSelected = filtered.length > 0 && filtered.every((name) => selected.includes(name));
784
+ if (tools.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
785
+ style: style$2.root,
786
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
787
+ style: fieldLabelStyle,
788
+ children: t("toolFilter")
789
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
790
+ style: style$2.hint,
791
+ children: t("toolFilterEmpty")
792
+ })]
793
+ });
794
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
795
+ style: style$2.root,
796
+ children: [
797
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
798
+ style: style$2.head,
799
+ children: [
800
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
801
+ style: fieldLabelStyle,
802
+ children: t("toolFilter")
803
+ }),
804
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
805
+ style: style$2.count,
806
+ children: t("toolFilterCount", {
807
+ count: selected.length,
808
+ total: tools.length
809
+ })
810
+ }),
811
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
812
+ type: "button",
813
+ style: style$2.toggle,
814
+ onClick: () => setOpen((o) => !o),
815
+ children: open ? t("toolFilterCollapse") : t("toolFilterExpand")
816
+ })
817
+ ]
818
+ }),
819
+ open ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
820
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
821
+ style: style$2.search,
822
+ value: query,
823
+ placeholder: t("toolFilterSearch"),
824
+ onChange: (e) => setQuery(e.target.value)
825
+ }),
826
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
827
+ style: {
828
+ display: "flex",
829
+ gap: 8
830
+ },
831
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
832
+ type: "button",
833
+ style: ghostButtonStyle,
834
+ disabled: filtered.length === 0 || allFilteredSelected,
835
+ onClick: () => onChange(addToolNames(selected, filtered)),
836
+ children: t("toolFilterSelectAll")
837
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
838
+ type: "button",
839
+ style: ghostButtonStyle,
840
+ disabled: filtered.length === 0 || !filtered.some((name) => selected.includes(name)),
841
+ onClick: () => onChange(removeToolNames(selected, filtered)),
842
+ children: t("toolFilterDeselectAll")
843
+ })]
844
+ }),
845
+ filtered.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
846
+ style: style$2.hint,
847
+ children: t("toolFilterNoMatch")
848
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
849
+ style: style$2.grid,
850
+ children: filtered.map((name) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
851
+ style: style$2.item,
852
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
853
+ type: "checkbox",
854
+ checked: selected.includes(name),
855
+ onChange: () => onChange(toggleToolName(selected, name))
856
+ }), name]
857
+ }, name))
858
+ })
859
+ ] }) : null,
860
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
861
+ style: style$2.hint,
862
+ children: selected.length === 0 ? t("toolFilterNone") : t("toolFilterHint")
863
+ })
864
+ ]
865
+ });
866
+ }
867
+ //#endregion
674
868
  //#region src/client/RoleCard.tsx
675
869
  /** One role template card: read-only summary plus an inline editor.
676
870
  * Provider/model/effort selects cascade from the model catalog; writes go
@@ -727,16 +921,6 @@ window.__ModuleLoader__.load({
727
921
  [field]: value
728
922
  }));
729
923
  };
730
- const toggleTool = (name) => {
731
- setDraft((d) => {
732
- const allow = d.toolFilter?.allow ?? [];
733
- const next = allow.includes(name) ? allow.filter((n) => n !== name) : [...allow, name];
734
- return {
735
- ...d,
736
- toolFilter: { allow: next }
737
- };
738
- });
739
- };
740
924
  const allowList = draft.toolFilter?.allow ?? [];
741
925
  if (editing) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
742
926
  style: cardStyle,
@@ -863,50 +1047,17 @@ window.__ModuleLoader__.load({
863
1047
  })
864
1048
  ]
865
1049
  }),
866
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1050
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
867
1051
  style: rowStyle,
868
- children: [
869
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
870
- style: fieldLabelStyle,
871
- children: t("toolFilter")
872
- }),
873
- tools.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
874
- style: {
875
- color: token.labelTertiary,
876
- fontSize: 12
877
- },
878
- children: t("toolFilterEmpty")
879
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
880
- style: {
881
- display: "flex",
882
- flexWrap: "wrap",
883
- gap: "4px 14px"
884
- },
885
- children: tools.map((name) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
886
- style: {
887
- display: "inline-flex",
888
- alignItems: "center",
889
- gap: 4,
890
- fontSize: 12,
891
- color: token.labelSecondary,
892
- cursor: "pointer"
893
- },
894
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
895
- type: "checkbox",
896
- checked: allowList.includes(name),
897
- onChange: () => toggleTool(name)
898
- }), name]
899
- }, name))
900
- }),
901
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
902
- style: {
903
- color: token.labelTertiary,
904
- fontSize: 11,
905
- lineHeight: "15px"
906
- },
907
- children: allowList.length === 0 ? t("toolFilterNone") : t("toolFilterHint")
908
- })
909
- ]
1052
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ToolSetPicker, {
1053
+ tools,
1054
+ selected: allowList,
1055
+ t,
1056
+ onChange: (allow) => setDraft((d) => ({
1057
+ ...d,
1058
+ toolFilter: { allow }
1059
+ }))
1060
+ })
910
1061
  }),
911
1062
  failure !== void 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
912
1063
  style: {
@@ -1482,57 +1633,17 @@ window.__ModuleLoader__.load({
1482
1633
  }))
1483
1634
  })]
1484
1635
  }),
1485
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1636
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1486
1637
  style: rowStyle,
1487
- children: [
1488
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
1489
- style: fieldLabelStyle,
1490
- children: t("toolFilter")
1491
- }),
1492
- tools.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1493
- style: {
1494
- color: token.labelTertiary,
1495
- fontSize: 12
1496
- },
1497
- children: t("toolFilterEmpty")
1498
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1499
- style: {
1500
- display: "flex",
1501
- flexWrap: "wrap",
1502
- gap: "4px 14px"
1503
- },
1504
- children: tools.map((name) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
1505
- style: {
1506
- display: "inline-flex",
1507
- alignItems: "center",
1508
- gap: 4,
1509
- fontSize: 12,
1510
- color: token.labelSecondary,
1511
- cursor: "pointer"
1512
- },
1513
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
1514
- type: "checkbox",
1515
- checked: (draft.toolFilter?.allow ?? []).includes(name),
1516
- onChange: () => setDraft((d) => {
1517
- const allow = d.toolFilter?.allow ?? [];
1518
- const next = allow.includes(name) ? allow.filter((n) => n !== name) : [...allow, name];
1519
- return {
1520
- ...d,
1521
- toolFilter: { allow: next }
1522
- };
1523
- })
1524
- }), name]
1525
- }, name))
1526
- }),
1527
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1528
- style: {
1529
- color: token.labelTertiary,
1530
- fontSize: 11,
1531
- lineHeight: "15px"
1532
- },
1533
- children: (draft.toolFilter?.allow?.length ?? 0) === 0 ? t("toolFilterNone") : t("toolFilterHint")
1534
- })
1535
- ]
1638
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ToolSetPicker, {
1639
+ tools,
1640
+ selected: draft.toolFilter?.allow ?? [],
1641
+ t,
1642
+ onChange: (allow) => setDraft((d) => ({
1643
+ ...d,
1644
+ toolFilter: { allow }
1645
+ }))
1646
+ })
1536
1647
  }),
1537
1648
  failure !== void 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1538
1649
  style: {
@@ -5,7 +5,7 @@
5
5
  * ever reaches the runtime's bilingual balance check.
6
6
  */
7
7
  /** Keys for the settings.subagentDirector namespace (bilingual, enforced). */
8
- export type SubagentDirectorKey = 'nav' | 'sectionIntro' | 'defaultsHeading' | 'defaultsHint' | 'defaultProvider' | 'defaultModel' | 'defaultReasoningEffort' | 'restoreDefaults' | 'provider' | 'model' | 'reasoningEffort' | 'persona' | 'rolesHeading' | 'rolesHint' | 'addRole' | 'emptyRoles' | 'roleId' | 'roleDisplayName' | 'roleDescription' | 'rolePersona' | 'setDefaultRole' | 'defaultRoleBadge' | 'deleteRole' | 'confirmDeleteRole' | 'removeRoleDone' | 'addedRole' | 'roleUpdated' | 'conflict' | 'rejected' | 'fatal' | 'loadError' | 'readonly' | 'save' | 'cancel' | 'edit' | 'retry' | 'fallbackOnInvalid' | 'roleIdPlaceholder' | 'displayNamePlaceholder' | 'descriptionPlaceholder' | 'personaPlaceholder' | 'modelOptional' | 'providerMissing' | 'toolFilter' | 'toolFilterHint' | 'toolFilterNone' | 'toolFilterEmpty' | 'restoreDone' | 'invalidRoleId' | 'bridgeUnavailable' | 'modelRanOn' | 'modelNotRecorded' | 'modelQueryFailed' | 'modelRanOnTitle' | 'closeContinuable' | 'closeContinuableTitle' | 'closingContinuable' | 'closedSubagent' | 'confirmCloseContinuable' | 'closeFailed';
8
+ export type SubagentDirectorKey = 'nav' | 'sectionIntro' | 'defaultsHeading' | 'defaultsHint' | 'defaultProvider' | 'defaultModel' | 'defaultReasoningEffort' | 'restoreDefaults' | 'provider' | 'model' | 'reasoningEffort' | 'persona' | 'rolesHeading' | 'rolesHint' | 'addRole' | 'emptyRoles' | 'roleId' | 'roleDisplayName' | 'roleDescription' | 'rolePersona' | 'setDefaultRole' | 'defaultRoleBadge' | 'deleteRole' | 'confirmDeleteRole' | 'removeRoleDone' | 'addedRole' | 'roleUpdated' | 'conflict' | 'rejected' | 'fatal' | 'loadError' | 'readonly' | 'save' | 'cancel' | 'edit' | 'retry' | 'fallbackOnInvalid' | 'roleIdPlaceholder' | 'displayNamePlaceholder' | 'descriptionPlaceholder' | 'personaPlaceholder' | 'modelOptional' | 'providerMissing' | 'toolFilter' | 'toolFilterHint' | 'toolFilterNone' | 'toolFilterEmpty' | 'toolFilterSearch' | 'toolFilterSelectAll' | 'toolFilterDeselectAll' | 'toolFilterCount' | 'toolFilterExpand' | 'toolFilterCollapse' | 'toolFilterNoMatch' | 'restoreDone' | 'invalidRoleId' | 'bridgeUnavailable' | 'modelRanOn' | 'modelNotRecorded' | 'modelQueryFailed' | 'modelRanOnTitle' | 'closeContinuable' | 'closeContinuableTitle' | 'closingContinuable' | 'closedSubagent' | 'confirmCloseContinuable' | 'closeFailed';
9
9
  /** English dictionary ($subagentDirector). */
10
10
  export declare const en: Record<SubagentDirectorKey, string>;
11
11
  /** Chinese dictionary. */
@@ -1 +1 @@
1
- {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../src/client/locales.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8EAA8E;AAC9E,MAAM,MAAM,mBAAmB,GAC3B,KAAK,GACL,cAAc,GACd,iBAAiB,GACjB,cAAc,GACd,iBAAiB,GACjB,cAAc,GACd,wBAAwB,GACxB,iBAAiB,GACjB,UAAU,GACV,OAAO,GACP,iBAAiB,GACjB,SAAS,GACT,cAAc,GACd,WAAW,GACX,SAAS,GACT,YAAY,GACZ,QAAQ,GACR,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,GACb,gBAAgB,GAChB,kBAAkB,GAClB,YAAY,GACZ,mBAAmB,GACnB,gBAAgB,GAChB,WAAW,GACX,aAAa,GACb,UAAU,GACV,UAAU,GACV,OAAO,GACP,WAAW,GACX,UAAU,GACV,MAAM,GACN,QAAQ,GACR,MAAM,GACN,OAAO,GACP,mBAAmB,GACnB,mBAAmB,GACnB,wBAAwB,GACxB,wBAAwB,GACxB,oBAAoB,GACpB,eAAe,GACf,iBAAiB,GACjB,YAAY,GACZ,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,aAAa,GACb,eAAe,GACf,mBAAmB,GACnB,YAAY,GACZ,kBAAkB,GAClB,kBAAkB,GAClB,iBAAiB,GACjB,kBAAkB,GAClB,uBAAuB,GACvB,oBAAoB,GACpB,gBAAgB,GAChB,yBAAyB,GACzB,aAAa,CAAC;AAElB,8CAA8C;AAC9C,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CA6DlD,CAAC;AAEF,0BAA0B;AAC1B,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CA6DlD,CAAC"}
1
+ {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../src/client/locales.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8EAA8E;AAC9E,MAAM,MAAM,mBAAmB,GAC3B,KAAK,GACL,cAAc,GACd,iBAAiB,GACjB,cAAc,GACd,iBAAiB,GACjB,cAAc,GACd,wBAAwB,GACxB,iBAAiB,GACjB,UAAU,GACV,OAAO,GACP,iBAAiB,GACjB,SAAS,GACT,cAAc,GACd,WAAW,GACX,SAAS,GACT,YAAY,GACZ,QAAQ,GACR,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,GACb,gBAAgB,GAChB,kBAAkB,GAClB,YAAY,GACZ,mBAAmB,GACnB,gBAAgB,GAChB,WAAW,GACX,aAAa,GACb,UAAU,GACV,UAAU,GACV,OAAO,GACP,WAAW,GACX,UAAU,GACV,MAAM,GACN,QAAQ,GACR,MAAM,GACN,OAAO,GACP,mBAAmB,GACnB,mBAAmB,GACnB,wBAAwB,GACxB,wBAAwB,GACxB,oBAAoB,GACpB,eAAe,GACf,iBAAiB,GACjB,YAAY,GACZ,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,kBAAkB,GAClB,qBAAqB,GACrB,uBAAuB,GACvB,iBAAiB,GACjB,kBAAkB,GAClB,oBAAoB,GACpB,mBAAmB,GACnB,aAAa,GACb,eAAe,GACf,mBAAmB,GACnB,YAAY,GACZ,kBAAkB,GAClB,kBAAkB,GAClB,iBAAiB,GACjB,kBAAkB,GAClB,uBAAuB,GACvB,oBAAoB,GACpB,gBAAgB,GAChB,yBAAyB,GACzB,aAAa,CAAC;AAElB,8CAA8C;AAC9C,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAoElD,CAAC;AAEF,0BAA0B;AAC1B,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAoElD,CAAC"}
@@ -53,6 +53,13 @@ export const en = {
53
53
  "toolFilterHint": "Restrict the subagent to these tools. Leave empty to inherit the parent's full tool set.",
54
54
  "toolFilterNone": "Inherit parent tools (no restriction)",
55
55
  "toolFilterEmpty": "No tools available",
56
+ "toolFilterSearch": "Search tools…",
57
+ "toolFilterSelectAll": "Select all",
58
+ "toolFilterDeselectAll": "Deselect all",
59
+ "toolFilterCount": "Selected {count} / {total}",
60
+ "toolFilterExpand": "Expand",
61
+ "toolFilterCollapse": "Collapse",
62
+ "toolFilterNoMatch": "No tools match the search.",
56
63
  "restoreDone": "Defaults restored",
57
64
  "invalidRoleId": "Role id must be kebab-case (lowercase letters, digits, single hyphens).",
58
65
  "bridgeUnavailable": "The Subagent Director settings bridge is not available on this server. Please update/restart the web application so it installs the /subagent-director channel.",
@@ -116,6 +123,13 @@ export const zh = {
116
123
  "toolFilterHint": "将子代理限制为这些工具。留空则继承父代理的完整工具集。",
117
124
  "toolFilterNone": "继承父代理工具(不限制)",
118
125
  "toolFilterEmpty": "无可用工具",
126
+ "toolFilterSearch": "搜索工具…",
127
+ "toolFilterSelectAll": "全选",
128
+ "toolFilterDeselectAll": "全不选",
129
+ "toolFilterCount": "已选 {count} / 共 {total}",
130
+ "toolFilterExpand": "展开",
131
+ "toolFilterCollapse": "收起",
132
+ "toolFilterNoMatch": "没有匹配搜索的工具。",
119
133
  "restoreDone": "已恢复默认",
120
134
  "invalidRoleId": "角色 id 必须为 kebab-case(小写字母、数字、单个连字符)。",
121
135
  "bridgeUnavailable": "此服务器尚未提供 Subagent Director 设置桥接通道(/subagent-director)。请重启 Web 应用以安装该通道后再试。",
@@ -1 +1 @@
1
- {"version":3,"file":"locales.js","sourceRoot":"","sources":["../../src/client/locales.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"locales.js","sourceRoot":"","sources":["../../src/client/locales.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Pure tool-set picker logic for the role editor (search / select-all /
3
+ * deselect-all). Framework-free so the filtering and set algebra are
4
+ * unit-testable without React.
5
+ *
6
+ * The select-all / deselect-all semantics follow the "filtered scope" rule:
7
+ * they operate ONLY on the currently filtered tool names, never on tools the
8
+ * search has hidden, so a user searching for "web" cannot accidentally select
9
+ * every unrelated tool.
10
+ */
11
+ /** Case-insensitive substring filter over tool names; empty query keeps all. */
12
+ export declare function filterToolNames(tools: readonly string[], query: string): string[];
13
+ /** Toggle one tool name in the allow list (order-preserving). */
14
+ export declare function toggleToolName(current: readonly string[], name: string): string[];
15
+ /** Add every candidate to the allow list (deduplicated, order-preserving). */
16
+ export declare function addToolNames(current: readonly string[], candidates: readonly string[]): string[];
17
+ /** Remove every candidate from the allow list. */
18
+ export declare function removeToolNames(current: readonly string[], candidates: readonly string[]): string[];
19
+ //# sourceMappingURL=toolset-logic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolset-logic.d.ts","sourceRoot":"","sources":["../../src/client/toolset-logic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAIjF;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEjF;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAIhG;AAED,kDAAkD;AAClD,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAGnG"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Pure tool-set picker logic for the role editor (search / select-all /
3
+ * deselect-all). Framework-free so the filtering and set algebra are
4
+ * unit-testable without React.
5
+ *
6
+ * The select-all / deselect-all semantics follow the "filtered scope" rule:
7
+ * they operate ONLY on the currently filtered tool names, never on tools the
8
+ * search has hidden, so a user searching for "web" cannot accidentally select
9
+ * every unrelated tool.
10
+ */
11
+ /** Case-insensitive substring filter over tool names; empty query keeps all. */
12
+ export function filterToolNames(tools, query) {
13
+ const q = query.trim().toLowerCase();
14
+ if (q === '')
15
+ return [...tools];
16
+ return tools.filter((tool) => tool.toLowerCase().includes(q));
17
+ }
18
+ /** Toggle one tool name in the allow list (order-preserving). */
19
+ export function toggleToolName(current, name) {
20
+ return current.includes(name) ? current.filter((n) => n !== name) : [...current, name];
21
+ }
22
+ /** Add every candidate to the allow list (deduplicated, order-preserving). */
23
+ export function addToolNames(current, candidates) {
24
+ const set = new Set(current);
25
+ for (const candidate of candidates)
26
+ set.add(candidate);
27
+ return [...set];
28
+ }
29
+ /** Remove every candidate from the allow list. */
30
+ export function removeToolNames(current, candidates) {
31
+ const drop = new Set(candidates);
32
+ return current.filter((name) => !drop.has(name));
33
+ }
34
+ //# sourceMappingURL=toolset-logic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolset-logic.js","sourceRoot":"","sources":["../../src/client/toolset-logic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,gFAAgF;AAChF,MAAM,UAAU,eAAe,CAAC,KAAwB,EAAE,KAAa;IACrE,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;IAChC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,cAAc,CAAC,OAA0B,EAAE,IAAY;IACrE,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;AACzF,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,YAAY,CAAC,OAA0B,EAAE,UAA6B;IACpF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,KAAK,MAAM,SAAS,IAAI,UAAU;QAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,eAAe,CAAC,OAA0B,EAAE,UAA6B;IACvF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IACjC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACnD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-plugin-subagent-director",
3
- "version": "0.3.0-beta.2",
3
+ "version": "0.3.0-beta.3",
4
4
  "description": "Subagent Director: choose an LLM provider/model for each subagent (call args > role binding > plugin default > inherit parent) and plan main-agent/subagent responsibilities with role templates, plus a settings UI.",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",