dsh-plugin-subagent-director 0.1.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/CHANGELOG.md +25 -0
- package/LICENSE +21 -0
- package/README.md +135 -0
- package/lib/bridge-contract.d.ts +41 -0
- package/lib/bridge-contract.d.ts.map +1 -0
- package/lib/bridge-contract.js +7 -0
- package/lib/bridge-contract.js.map +1 -0
- package/lib/bridge-entry.d.ts +29 -0
- package/lib/bridge-entry.d.ts.map +1 -0
- package/lib/bridge-entry.js +10 -0
- package/lib/bridge-entry.js.map +1 -0
- package/lib/client/RoleCard.d.ts +23 -0
- package/lib/client/RoleCard.d.ts.map +1 -0
- package/lib/client/RoleCard.js +72 -0
- package/lib/client/RoleCard.js.map +1 -0
- package/lib/client/SubagentModelDock.d.ts +29 -0
- package/lib/client/SubagentModelDock.d.ts.map +1 -0
- package/lib/client/SubagentModelDock.js +32 -0
- package/lib/client/SubagentModelDock.js.map +1 -0
- package/lib/client/SubagentOptionsSection.d.ts +23 -0
- package/lib/client/SubagentOptionsSection.d.ts.map +1 -0
- package/lib/client/SubagentOptionsSection.js +164 -0
- package/lib/client/SubagentOptionsSection.js.map +1 -0
- package/lib/client/index.d.ts +44 -0
- package/lib/client/index.d.ts.map +1 -0
- package/lib/client/index.js +1541 -0
- package/lib/client/index.js.map +1 -0
- package/lib/client/locales.d.ts +13 -0
- package/lib/client/locales.d.ts.map +1 -0
- package/lib/client/locales.js +107 -0
- package/lib/client/locales.js.map +1 -0
- package/lib/client/store-logic.d.ts +105 -0
- package/lib/client/store-logic.d.ts.map +1 -0
- package/lib/client/store-logic.js +143 -0
- package/lib/client/store-logic.js.map +1 -0
- package/lib/client/store.d.ts +104 -0
- package/lib/client/store.d.ts.map +1 -0
- package/lib/client/store.js +223 -0
- package/lib/client/store.js.map +1 -0
- package/lib/client/subagent-model.d.ts +47 -0
- package/lib/client/subagent-model.d.ts.map +1 -0
- package/lib/client/subagent-model.js +81 -0
- package/lib/client/subagent-model.js.map +1 -0
- package/lib/client/ui.d.ts +26 -0
- package/lib/client/ui.d.ts.map +1 -0
- package/lib/client/ui.js +102 -0
- package/lib/client/ui.js.map +1 -0
- package/lib/config.d.ts +63 -0
- package/lib/config.d.ts.map +1 -0
- package/lib/config.js +26 -0
- package/lib/config.js.map +1 -0
- package/lib/delegation-tool.d.ts +169 -0
- package/lib/delegation-tool.d.ts.map +1 -0
- package/lib/delegation-tool.js +404 -0
- package/lib/delegation-tool.js.map +1 -0
- package/lib/envelope.d.ts +97 -0
- package/lib/envelope.d.ts.map +1 -0
- package/lib/envelope.js +136 -0
- package/lib/envelope.js.map +1 -0
- package/lib/guidance.d.ts +37 -0
- package/lib/guidance.d.ts.map +1 -0
- package/lib/guidance.js +46 -0
- package/lib/guidance.js.map +1 -0
- package/lib/index.d.ts +29 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +63 -0
- package/lib/index.js.map +1 -0
- package/lib/remote.d.ts +102 -0
- package/lib/remote.d.ts.map +1 -0
- package/lib/remote.js +254 -0
- package/lib/remote.js.map +1 -0
- package/lib/route-resolver.d.ts +118 -0
- package/lib/route-resolver.d.ts.map +1 -0
- package/lib/route-resolver.js +71 -0
- package/lib/route-resolver.js.map +1 -0
- package/lib/settings.d.ts +157 -0
- package/lib/settings.d.ts.map +1 -0
- package/lib/settings.js +118 -0
- package/lib/settings.js.map +1 -0
- package/package.json +110 -0
package/lib/settings.js
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings namespace, schema, and write-time validation for Subagent Director
|
|
3
|
+
* (design section 5.2).
|
|
4
|
+
*
|
|
5
|
+
* This module owns the "subagent-director" settings namespace. It re-exports
|
|
6
|
+
* the role/settings types from ./route-resolver (single source of truth) and
|
|
7
|
+
* registers them with the canonical optional-settings consumer wiring so a
|
|
8
|
+
* deployment without a settings provider keeps working off its composition
|
|
9
|
+
* config (zero intrusion).
|
|
10
|
+
*
|
|
11
|
+
* Layering (design 5.2): the schemastery schema stays coercive/permissive
|
|
12
|
+
* (all fields optional, roles a string-keyed dict) so an absent section
|
|
13
|
+
* resolves cleanly; cross-field / semantic constraints that the schema cannot
|
|
14
|
+
* express are enforced at WRITE time by validate(), which throws to refuse the
|
|
15
|
+
* write exactly as SettingsRegisterOptions.validate / SettingsSectionHooks.validate
|
|
16
|
+
* demand (dsh-settings/lib/types/index.d.ts:24-48, 307-341).
|
|
17
|
+
*/
|
|
18
|
+
import { Context } from '@deepseek-ai/cordis';
|
|
19
|
+
import z from '@deepseek-ai/schemastery';
|
|
20
|
+
import { installSettingsSection, settingsNamespace, } from '@deepseek-ai/dsh-settings';
|
|
21
|
+
/** Settings namespace for Subagent Director (design section 0 naming resolution). */
|
|
22
|
+
export const SUBAGENT_DIRECTOR_SETTINGS_NAMESPACE = settingsNamespace('subagent-director');
|
|
23
|
+
/** Kebab-case: lowercase alphanumeric segments separated by single hyphens. */
|
|
24
|
+
const KEBAB_CASE = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
25
|
+
/** Schemastery schema for one role template. All fields optional so a partial /
|
|
26
|
+
* absent role resolves; semantic requirements are enforced by validate(). */
|
|
27
|
+
export const RoleTemplateSchema = z.object({
|
|
28
|
+
displayName: z.string(),
|
|
29
|
+
description: z.string(),
|
|
30
|
+
persona: z.string(),
|
|
31
|
+
provider: z.string(),
|
|
32
|
+
model: z.string(),
|
|
33
|
+
reasoningEffort: z.string(),
|
|
34
|
+
toolFilter: z.object({
|
|
35
|
+
allow: z.array(z.string()),
|
|
36
|
+
deny: z.array(z.string()),
|
|
37
|
+
}),
|
|
38
|
+
});
|
|
39
|
+
/**
|
|
40
|
+
* Schemastery schema for the Subagent Director settings section. Every field is
|
|
41
|
+
* optional (schemastery object fields are optional by default); roles is a
|
|
42
|
+
* string-keyed dict of RoleTemplateSchema.
|
|
43
|
+
*/
|
|
44
|
+
export const SettingsSchema = z.object({
|
|
45
|
+
defaultProvider: z.string(),
|
|
46
|
+
defaultModel: z.string(),
|
|
47
|
+
defaultReasoningEffort: z.string(),
|
|
48
|
+
defaultRole: z.string(),
|
|
49
|
+
fallbackOnInvalid: z.boolean().default(true),
|
|
50
|
+
roles: z.dict(RoleTemplateSchema),
|
|
51
|
+
});
|
|
52
|
+
function isEmpty(value) {
|
|
53
|
+
return value === undefined || value === null || value.trim().length === 0;
|
|
54
|
+
}
|
|
55
|
+
/** True when the value is a string made only of whitespace. */
|
|
56
|
+
function isBlankString(value) {
|
|
57
|
+
return typeof value === 'string' && value.trim().length === 0;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Write-time validator for a resolved settings section (design 5.2).
|
|
61
|
+
*
|
|
62
|
+
* Throws to refuse the write that produced value, as the settings seam
|
|
63
|
+
* contract requires. Checks:
|
|
64
|
+
* - every role key is kebab-case;
|
|
65
|
+
* - every role's displayName and description are present and non-empty;
|
|
66
|
+
* - defaultRole, when set, references an existing role key;
|
|
67
|
+
* - every explicitly-set provider is a non-empty string.
|
|
68
|
+
*
|
|
69
|
+
* @param value - the resolved section, schema-valid by construction.
|
|
70
|
+
*/
|
|
71
|
+
export function validateDirectorSettings(value) {
|
|
72
|
+
const roles = value.roles ?? {};
|
|
73
|
+
for (const [id, role] of Object.entries(roles)) {
|
|
74
|
+
if (!KEBAB_CASE.test(id)) {
|
|
75
|
+
throw new Error('subagent-director: role id "' + id + '" is not kebab-case (lowercase letters, digits and single hyphens)');
|
|
76
|
+
}
|
|
77
|
+
if (isEmpty(role?.displayName)) {
|
|
78
|
+
throw new Error('subagent-director: role "' + id + '" must have a non-empty displayName');
|
|
79
|
+
}
|
|
80
|
+
if (isEmpty(role?.description)) {
|
|
81
|
+
throw new Error('subagent-director: role "' + id + '" must have a non-empty description');
|
|
82
|
+
}
|
|
83
|
+
if (isBlankString(role?.provider)) {
|
|
84
|
+
throw new Error('subagent-director: role "' + id + '" provider must be a non-empty string when set');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (!isEmpty(value.defaultRole) && roles[value.defaultRole] === undefined) {
|
|
88
|
+
throw new Error('subagent-director: defaultRole "' + value.defaultRole + '" does not reference a defined role');
|
|
89
|
+
}
|
|
90
|
+
if (isBlankString(value.defaultProvider)) {
|
|
91
|
+
throw new Error('subagent-director: defaultProvider must be a non-empty string when set');
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Install the Subagent Director settings section through the canonical
|
|
96
|
+
* optional-settings consumer wiring.
|
|
97
|
+
*
|
|
98
|
+
* Mirrors dsh-agent-default-model/lib/index.js's optional pattern: the
|
|
99
|
+
* registration rides the scoped fiber, so a deployment with no settings
|
|
100
|
+
* service simply never mounts it. This helper guards that explicitly for
|
|
101
|
+
* readability and logs a debug line when the service is absent so the gradual
|
|
102
|
+
* fall-back to the composition config is observable.
|
|
103
|
+
*
|
|
104
|
+
* @param ctx - consumer plugin context owning the wiring.
|
|
105
|
+
* @param entry - the consumer's composition-layer config, used as the settings
|
|
106
|
+
* base while a provider is absent.
|
|
107
|
+
* @param hooks - source sink and change notification (plus optional validate).
|
|
108
|
+
*/
|
|
109
|
+
export function installDirectorSettings(ctx, entry, hooks) {
|
|
110
|
+
if (ctx.get('settings') === undefined) {
|
|
111
|
+
ctx.logger.debug('[subagent-director] no settings service mounted; using composition config and skipping settings section registration');
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
installSettingsSection(ctx, SUBAGENT_DIRECTOR_SETTINGS_NAMESPACE, SettingsSchema, entry, hooks);
|
|
115
|
+
}
|
|
116
|
+
/** Convenience exported alias used by tests. */
|
|
117
|
+
export { SettingsSchema as SubagentDirectorSettingsSchema };
|
|
118
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dsh-plugin-subagent-director",
|
|
3
|
+
"version": "0.1.0",
|
|
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
|
+
"type": "module",
|
|
6
|
+
"main": "lib/index.js",
|
|
7
|
+
"types": "lib/index.d.ts",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/SeverusZh/dsh-plugin-subagent-director.git"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/SeverusZh/dsh-plugin-subagent-director",
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/SeverusZh/dsh-plugin-subagent-director/issues"
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"lib",
|
|
18
|
+
"CHANGELOG.md"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "tsc -p tsconfig.json && node scripts/build-client.mjs",
|
|
22
|
+
"build:client": "node scripts/build-client.mjs",
|
|
23
|
+
"test": "vitest run",
|
|
24
|
+
"typecheck": "tsc --noEmit"
|
|
25
|
+
},
|
|
26
|
+
"exports": {
|
|
27
|
+
".": {
|
|
28
|
+
"types": "./lib/index.d.ts",
|
|
29
|
+
"default": "./lib/index.js"
|
|
30
|
+
},
|
|
31
|
+
"./client": {
|
|
32
|
+
"types": "./lib/client/index.d.ts",
|
|
33
|
+
"default": "./lib/client/index.js"
|
|
34
|
+
},
|
|
35
|
+
"./package.json": "./package.json",
|
|
36
|
+
"./bridge": {
|
|
37
|
+
"types": "./lib/bridge-entry.d.ts",
|
|
38
|
+
"default": "./lib/bridge-entry.js"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"dsh": {
|
|
42
|
+
"client": {
|
|
43
|
+
"inject": [
|
|
44
|
+
"slots",
|
|
45
|
+
"locale",
|
|
46
|
+
"connection",
|
|
47
|
+
"remote"
|
|
48
|
+
],
|
|
49
|
+
"platform": "web"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"keywords": [
|
|
53
|
+
"dsh",
|
|
54
|
+
"deepseek-harness",
|
|
55
|
+
"cordis",
|
|
56
|
+
"plugin",
|
|
57
|
+
"subagent",
|
|
58
|
+
"subagent-director",
|
|
59
|
+
"llm",
|
|
60
|
+
"provider",
|
|
61
|
+
"model",
|
|
62
|
+
"role-template"
|
|
63
|
+
],
|
|
64
|
+
"license": "MIT",
|
|
65
|
+
"peerDependencies": {
|
|
66
|
+
"react": "^18.2.0",
|
|
67
|
+
"@deepseek-ai/cordis": "^4.0.1",
|
|
68
|
+
"@deepseek-ai/dsh-agent": "^0.1.0-rc.6",
|
|
69
|
+
"@deepseek-ai/dsh-llm": "^0.1.0-rc.6",
|
|
70
|
+
"@deepseek-ai/dsh-settings": "^0.1.0-rc.6",
|
|
71
|
+
"@deepseek-ai/dsh-subagent": "^0.1.0-rc.6",
|
|
72
|
+
"@deepseek-ai/dsh-system-prompt": "^0.1.0-rc.6",
|
|
73
|
+
"@deepseek-ai/dsh-tools": "^0.1.0-rc.6",
|
|
74
|
+
"@deepseek-ai/dsh-client-runtime": "^0.1.0-rc.6",
|
|
75
|
+
"@deepseek-ai/dsh-client-connection": "^0.1.0-rc.6",
|
|
76
|
+
"@deepseek-ai/dsh-client-ui-slots": "^0.1.0-rc.6",
|
|
77
|
+
"@deepseek-ai/dsh-client-web-react": "^0.1.0-rc.6",
|
|
78
|
+
"@deepseek-ai/dsh-client-ui-settings": "^0.1.0-rc.6",
|
|
79
|
+
"@deepseek-ai/dsh-client-schema-form": "^0.1.0-rc.6",
|
|
80
|
+
"@deepseek-ai/dsh-client-locale": "^0.1.0-rc.6",
|
|
81
|
+
"@deepseek-ai/dsh-host-apiproxy": "^0.1.0-rc.6"
|
|
82
|
+
},
|
|
83
|
+
"devDependencies": {
|
|
84
|
+
"react": "file:../../../DeepSeekHarness/node_modules/react",
|
|
85
|
+
"react-dom": "file:../../../DeepSeekHarness/node_modules/react-dom",
|
|
86
|
+
"use-sync-external-store": "file:../../../DeepSeekHarness/node_modules/use-sync-external-store",
|
|
87
|
+
"@types/react": "^18.3.1",
|
|
88
|
+
"@types/react-dom": "^18.3.1",
|
|
89
|
+
"@deepseek-ai/cordis": "file:../../../DeepSeekHarness/node_modules/@deepseek-ai/cordis",
|
|
90
|
+
"@deepseek-ai/dsh-agent": "file:../../../DeepSeekHarness/node_modules/@deepseek-ai/dsh-agent",
|
|
91
|
+
"@deepseek-ai/dsh-llm": "file:../../../DeepSeekHarness/node_modules/@deepseek-ai/dsh-llm",
|
|
92
|
+
"@deepseek-ai/dsh-settings": "file:../../../DeepSeekHarness/node_modules/@deepseek-ai/dsh-settings",
|
|
93
|
+
"@deepseek-ai/dsh-subagent": "file:../../../DeepSeekHarness/node_modules/@deepseek-ai/dsh-subagent",
|
|
94
|
+
"@deepseek-ai/dsh-system-prompt": "file:../../../DeepSeekHarness/node_modules/@deepseek-ai/dsh-system-prompt",
|
|
95
|
+
"@deepseek-ai/dsh-tools": "file:../../../DeepSeekHarness/node_modules/@deepseek-ai/dsh-tools",
|
|
96
|
+
"@deepseek-ai/schemastery": "file:../../../DeepSeekHarness/node_modules/@deepseek-ai/schemastery",
|
|
97
|
+
"@deepseek-ai/dsh-client-runtime": "file:../../../DeepSeekHarness/node_modules/@deepseek-ai/dsh-client-runtime",
|
|
98
|
+
"@deepseek-ai/dsh-client-connection": "file:../../../DeepSeekHarness/node_modules/@deepseek-ai/dsh-client-connection",
|
|
99
|
+
"@deepseek-ai/dsh-client-ui-slots": "file:../../../DeepSeekHarness/node_modules/@deepseek-ai/dsh-client-ui-slots",
|
|
100
|
+
"@deepseek-ai/dsh-client-web-react": "file:../../../DeepSeekHarness/node_modules/@deepseek-ai/dsh-client-web-react",
|
|
101
|
+
"@deepseek-ai/dsh-client-ui-settings": "file:../../../DeepSeekHarness/node_modules/@deepseek-ai/dsh-client-ui-settings",
|
|
102
|
+
"@deepseek-ai/dsh-client-schema-form": "file:../../../DeepSeekHarness/node_modules/@deepseek-ai/dsh-client-schema-form",
|
|
103
|
+
"@deepseek-ai/dsh-client-locale": "file:../../../DeepSeekHarness/node_modules/@deepseek-ai/dsh-client-locale",
|
|
104
|
+
"@deepseek-ai/dsh-client-ui-primitives": "file:../../../DeepSeekHarness/node_modules/@deepseek-ai/dsh-client-ui-primitives",
|
|
105
|
+
"@deepseek-ai/dsh-host-apiproxy": "file:../../../DeepSeekHarness/node_modules/@deepseek-ai/dsh-host-apiproxy",
|
|
106
|
+
"@types/node": "^26.2.0",
|
|
107
|
+
"typescript": "^7.0.2",
|
|
108
|
+
"vitest": "^4.1.10"
|
|
109
|
+
}
|
|
110
|
+
}
|