@dsh-plugin/dsh-loader 1.1.0-dev.32278873528 → 1.2.0-dev.32741629392
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/LICENSE +160 -0
- package/README.md +1 -1
- package/README.zh_CN.md +1 -1
- package/dist/adapters/dsh-1-x.js +4 -0
- package/dist/adapters/dsh-1-x.js.map +1 -1
- package/dist/api.d.ts +2 -0
- package/dist/api.js +18 -2
- package/dist/api.js.map +1 -1
- package/dist/client.d.ts +0 -1
- package/dist/client.js +13 -3
- package/dist/client.js.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/patch.d.ts +112 -0
- package/dist/patch.js +179 -0
- package/dist/patch.js.map +1 -0
- package/dist/services/dsh-symbols.d.ts +70 -0
- package/dist/services/dsh-symbols.js +82 -0
- package/dist/services/dsh-symbols.js.map +1 -0
- package/dist/services/llm.d.ts +30 -0
- package/dist/services/llm.js +35 -0
- package/dist/services/llm.js.map +1 -0
- package/dist/services/registry.d.ts +144 -0
- package/dist/services/registry.js +209 -0
- package/dist/services/registry.js.map +1 -0
- package/dist/services/settings.d.ts +6 -0
- package/dist/services/settings.js +29 -1
- package/dist/services/settings.js.map +1 -1
- package/dist/services/web.js +20 -4
- package/dist/services/web.js.map +1 -1
- package/dist/setup.js +17 -1
- package/dist/setup.js.map +1 -1
- package/dist/types.d.ts +55 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/lib/client.js +2775 -4
- package/lib/client.js.map +1 -1
- package/lib/types/adapters/dsh-1-x.d.ts +23 -0
- package/lib/types/adapters/index.d.ts +22 -0
- package/lib/types/client-ui.d.ts +40 -0
- package/lib/types/client.d.ts +156 -0
- package/lib/types/patch.d.ts +112 -0
- package/lib/types/registry.d.ts +35 -0
- package/lib/types/services/dsh-symbols.d.ts +70 -0
- package/lib/types/services/llm.d.ts +30 -0
- package/lib/types/services/registry.d.ts +144 -0
- package/lib/types/services/settings.d.ts +47 -0
- package/lib/types/types.d.ts +166 -0
- package/lib/types/ui/anchors.d.ts +56 -0
- package/lib/types/ui/components.d.ts +159 -0
- package/lib/types/ui/icons.d.ts +142 -0
- package/lib/types/ui/index.d.ts +30 -0
- package/lib/types/ui/menu.d.ts +104 -0
- package/lib/types/ui/slots.d.ts +152 -0
- package/lib/types/ui/style.d.ts +97 -0
- package/lib/types/version.d.ts +2 -0
- package/package.json +45 -11
- package/src/stable/compaction-basic.d.ts +1 -0
- package/src/stable/compaction-basic.js +5 -0
- package/src/stable/credentials.d.ts +1 -0
- package/src/stable/credentials.js +5 -0
- package/src/stable/subagent.d.ts +1 -0
- package/src/stable/subagent.js +5 -0
- package/src/stable/timeout.d.ts +1 -0
- package/src/stable/timeout.js +5 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The dshloader REGISTRY facade (`ctx.dshLoader.registry`).
|
|
3
|
+
*
|
|
4
|
+
* dsh exposes no public API for three things plugins legitimately need, so
|
|
5
|
+
* today they reach into internals directly:
|
|
6
|
+
*
|
|
7
|
+
* - replacing / augmenting an ALREADY REGISTERED tool definition
|
|
8
|
+
* (`ctx.tools.layers.global.tools` — TS-private `ToolRuntime.layers` /
|
|
9
|
+
* `ScopedLayers.global` / `ToolLayer.tools`),
|
|
10
|
+
* - advertising a new sandbox escalation mode
|
|
11
|
+
* (`push` onto the readonly `ESCALATION_TARGETS` export),
|
|
12
|
+
* - registering a permission preset
|
|
13
|
+
* (writing straight into the `permissionPresets` live table).
|
|
14
|
+
*
|
|
15
|
+
* Absorbing them here means the private shapes are named in ONE place: when dsh
|
|
16
|
+
* moves them, only this file and the adapter change. Every accessor degrades to
|
|
17
|
+
* a documented no-op / empty result instead of throwing, so a layout change
|
|
18
|
+
* costs the feature, never the boot.
|
|
19
|
+
*
|
|
20
|
+
* The optional dsh modules (`dsh-sandbox`, `dsh-permission-presets`) are loaded
|
|
21
|
+
* through {@link preloadRegistryModules} during the adapter's `apply()`, which
|
|
22
|
+
* keeps every facade method synchronous for callers.
|
|
23
|
+
*
|
|
24
|
+
* @module @dsh-plugin/dsh-loader/registry-facade
|
|
25
|
+
*/
|
|
26
|
+
import { LOG_PREFIX } from '../version.js';
|
|
27
|
+
/**
|
|
28
|
+
* Load the optional dsh modules the facades proxy.
|
|
29
|
+
*
|
|
30
|
+
* The specifiers are held in variables so TypeScript does not try to resolve
|
|
31
|
+
* them at build time: dshloader declares no `@deepseek-ai/*` dependency, and
|
|
32
|
+
* these packages only exist in the dsh runtime that loads the profile.
|
|
33
|
+
*
|
|
34
|
+
* @returns whatever resolved; a missing module simply stays `undefined`.
|
|
35
|
+
*/
|
|
36
|
+
export async function preloadRegistryModules() {
|
|
37
|
+
const load = async (specifier) => {
|
|
38
|
+
try {
|
|
39
|
+
return (await import(specifier));
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
const [sandbox, permissionPresets, settings, llm, tools, timeout, credentials, subagent, compaction] = await Promise.all([
|
|
46
|
+
load('@deepseek-ai/dsh-sandbox'),
|
|
47
|
+
load('@deepseek-ai/dsh-permission-presets'),
|
|
48
|
+
load('@deepseek-ai/dsh-settings'),
|
|
49
|
+
load('@deepseek-ai/dsh-llm'),
|
|
50
|
+
load('@deepseek-ai/dsh-tools'),
|
|
51
|
+
load('@deepseek-ai/dsh-timeout'),
|
|
52
|
+
load('@deepseek-ai/dsh-credentials'),
|
|
53
|
+
load('@deepseek-ai/dsh-subagent'),
|
|
54
|
+
load('@deepseek-ai/dsh-compaction-basic'),
|
|
55
|
+
]);
|
|
56
|
+
return {
|
|
57
|
+
sandbox: sandbox,
|
|
58
|
+
permissionPresets: permissionPresets,
|
|
59
|
+
settings: settings,
|
|
60
|
+
llm: llm,
|
|
61
|
+
tools: tools,
|
|
62
|
+
timeout: timeout,
|
|
63
|
+
credentials: credentials,
|
|
64
|
+
subagent: subagent,
|
|
65
|
+
compaction: compaction,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/** Marker recording which patch ids already ran against one tool definition. */
|
|
69
|
+
const PATCHED_BY = Symbol.for('dshloader.registry.tools.patchedBy.v1');
|
|
70
|
+
/** The set of patch ids already applied to a definition (created on demand). */
|
|
71
|
+
function patchedBy(def) {
|
|
72
|
+
const holder = def;
|
|
73
|
+
let marks = holder[PATCHED_BY];
|
|
74
|
+
if (marks === undefined) {
|
|
75
|
+
marks = new Set();
|
|
76
|
+
try {
|
|
77
|
+
Object.defineProperty(def, PATCHED_BY, {
|
|
78
|
+
value: marks,
|
|
79
|
+
enumerable: false,
|
|
80
|
+
configurable: true,
|
|
81
|
+
writable: false,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// Frozen definition: fall back to "always patch", which the caller's own
|
|
86
|
+
// guard must then make idempotent. Better than refusing to patch at all.
|
|
87
|
+
return new Set();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return marks;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Build the `ctx.dshLoader.registry` facade.
|
|
94
|
+
*
|
|
95
|
+
* @param opts.ctx - the cordis context (services are read lazily, never cached,
|
|
96
|
+
* so a service arriving later is still picked up).
|
|
97
|
+
* @param opts.modules - optional dsh modules from {@link preloadRegistryModules}.
|
|
98
|
+
*/
|
|
99
|
+
export function createRegistryAPI(opts) {
|
|
100
|
+
const { ctx, modules = {} } = opts;
|
|
101
|
+
/** The private tool table, or undefined when the layout moved. */
|
|
102
|
+
const toolTable = () => {
|
|
103
|
+
const tools = ctx.get('tools');
|
|
104
|
+
return tools?.layers?.global?.tools;
|
|
105
|
+
};
|
|
106
|
+
const tools = {
|
|
107
|
+
list() {
|
|
108
|
+
const table = toolTable();
|
|
109
|
+
return table === undefined ? [] : [...table.values()];
|
|
110
|
+
},
|
|
111
|
+
get(name) {
|
|
112
|
+
return toolTable()?.get(name);
|
|
113
|
+
},
|
|
114
|
+
patchAll(patcher, options) {
|
|
115
|
+
const id = options.id;
|
|
116
|
+
if (typeof id !== 'string' || id.length === 0) {
|
|
117
|
+
throw new TypeError('dshloader.registry.tools.patchAll: options.id is required');
|
|
118
|
+
}
|
|
119
|
+
let warned = false;
|
|
120
|
+
const run = () => {
|
|
121
|
+
const table = toolTable();
|
|
122
|
+
if (table === undefined) {
|
|
123
|
+
if (!warned) {
|
|
124
|
+
warned = true;
|
|
125
|
+
ctx.logger?.warn?.(`${LOG_PREFIX}:registry.tools.patchAll("${id}") — the tool registry layout is unreachable; skipping (feature lost, boot intact)`);
|
|
126
|
+
}
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
for (const def of table.values()) {
|
|
130
|
+
if (def === null || typeof def !== 'object')
|
|
131
|
+
continue;
|
|
132
|
+
const marks = patchedBy(def);
|
|
133
|
+
if (marks.has(id))
|
|
134
|
+
continue;
|
|
135
|
+
try {
|
|
136
|
+
patcher(def);
|
|
137
|
+
marks.add(id);
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
ctx.logger?.warn?.(`${LOG_PREFIX}:registry.tools.patchAll("${id}") failed on "${String(def.name)}": ${error instanceof Error ? error.message : String(error)}`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
run();
|
|
145
|
+
// Replay so tools registered after this plugin are patched too.
|
|
146
|
+
const off = ctx.on?.('tools/change', () => run(), { prepend: true });
|
|
147
|
+
return () => {
|
|
148
|
+
if (typeof off === 'function')
|
|
149
|
+
off();
|
|
150
|
+
};
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
const sandbox = {
|
|
154
|
+
escalationTargets() {
|
|
155
|
+
return modules.sandbox?.ESCALATION_TARGETS ?? [];
|
|
156
|
+
},
|
|
157
|
+
addEscalationTarget(mode) {
|
|
158
|
+
const targets = modules.sandbox?.ESCALATION_TARGETS;
|
|
159
|
+
if (targets === undefined) {
|
|
160
|
+
ctx.logger?.warn?.(`${LOG_PREFIX}:registry.sandbox.addEscalationTarget("${mode}") — @deepseek-ai/dsh-sandbox is unavailable; skipping`);
|
|
161
|
+
return () => { };
|
|
162
|
+
}
|
|
163
|
+
// ESCALATION_TARGETS ships readonly; appending at runtime is exactly what
|
|
164
|
+
// the escalation tools read when they build their parameter enum.
|
|
165
|
+
const list = targets;
|
|
166
|
+
if (list.includes(mode))
|
|
167
|
+
return () => { };
|
|
168
|
+
list.push(mode);
|
|
169
|
+
return () => {
|
|
170
|
+
const at = list.indexOf(mode);
|
|
171
|
+
if (at >= 0)
|
|
172
|
+
list.splice(at, 1);
|
|
173
|
+
};
|
|
174
|
+
},
|
|
175
|
+
};
|
|
176
|
+
const permissionPresets = {
|
|
177
|
+
table() {
|
|
178
|
+
const service = ctx.get('permissionPresets');
|
|
179
|
+
return service?.presets;
|
|
180
|
+
},
|
|
181
|
+
define(key, preset) {
|
|
182
|
+
const table = this.table();
|
|
183
|
+
if (table === undefined) {
|
|
184
|
+
ctx.logger?.warn?.(`${LOG_PREFIX}:registry.permissionPresets.define("${key}") — the permissionPresets service is absent; skipping`);
|
|
185
|
+
return () => { };
|
|
186
|
+
}
|
|
187
|
+
if (Object.hasOwn(table, key))
|
|
188
|
+
return () => { };
|
|
189
|
+
table[key] = preset;
|
|
190
|
+
return () => {
|
|
191
|
+
if (table[key] === preset)
|
|
192
|
+
delete table[key];
|
|
193
|
+
};
|
|
194
|
+
},
|
|
195
|
+
effective(events) {
|
|
196
|
+
const fold = modules.permissionPresets?.effectivePermissionPreset;
|
|
197
|
+
if (typeof fold !== 'function')
|
|
198
|
+
return undefined;
|
|
199
|
+
try {
|
|
200
|
+
return fold(events);
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
return undefined;
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
};
|
|
207
|
+
return { tools, sandbox, permissionPresets };
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/services/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,5 +37,11 @@ export declare function createSettingsAPI(opts: {
|
|
|
37
37
|
ctx: CordisContext;
|
|
38
38
|
exposeAllNamespaces: boolean;
|
|
39
39
|
whitelist?: Set<string>;
|
|
40
|
+
/** The real `@deepseek-ai/dsh-settings` module, when it resolved at boot. */
|
|
41
|
+
module?: {
|
|
42
|
+
installSettingsSection?: (ctx: unknown, ns: unknown, schema: unknown, entry: unknown, hooks: unknown) => void;
|
|
43
|
+
settingsNamespace?: (id: string) => unknown;
|
|
44
|
+
SettingsConflictError?: new (...args: never[]) => Error;
|
|
45
|
+
};
|
|
40
46
|
}): SettingsAPI;
|
|
41
47
|
export {};
|
|
@@ -75,7 +75,7 @@ export function settingsErrorToResult(error, ns, method) {
|
|
|
75
75
|
* Build the `ctx.dshLoader.settings` stable API.
|
|
76
76
|
*/
|
|
77
77
|
export function createSettingsAPI(opts) {
|
|
78
|
-
const { ctx, exposeAllNamespaces, whitelist } = opts;
|
|
78
|
+
const { ctx, exposeAllNamespaces, whitelist, module } = opts;
|
|
79
79
|
const allowed = whitelist ?? DEFAULT_WEB_SETTINGS_NAMESPACES;
|
|
80
80
|
function getSettings() {
|
|
81
81
|
return ctx.get('settings');
|
|
@@ -155,6 +155,34 @@ export function createSettingsAPI(opts) {
|
|
|
155
155
|
mutate(ns, ops, expectedRevision) {
|
|
156
156
|
return api._write('mutate', ns, ops, expectedRevision);
|
|
157
157
|
},
|
|
158
|
+
namespace(id) {
|
|
159
|
+
const make = module?.settingsNamespace;
|
|
160
|
+
if (typeof make !== 'function') {
|
|
161
|
+
// No dsh-settings: hand back the raw id. Callers only pass it straight
|
|
162
|
+
// back into this facade, so an opaque handle and a string behave alike.
|
|
163
|
+
return id;
|
|
164
|
+
}
|
|
165
|
+
return make(id);
|
|
166
|
+
},
|
|
167
|
+
installSection(consumerCtx, ns, schema, entry, hooks) {
|
|
168
|
+
const install = module?.installSettingsSection;
|
|
169
|
+
if (typeof install !== 'function') {
|
|
170
|
+
console.warn(`${LOG_PREFIX}:settings.installSection — @deepseek-ai/dsh-settings is unavailable; ` +
|
|
171
|
+
'the consumer keeps its composition entry (no user-settings layer)');
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
install(consumerCtx, ns, schema, entry, hooks);
|
|
175
|
+
return true;
|
|
176
|
+
},
|
|
177
|
+
isConflictError(error) {
|
|
178
|
+
const Ctor = module?.SettingsConflictError;
|
|
179
|
+
if (typeof Ctor === 'function' && error instanceof Ctor)
|
|
180
|
+
return true;
|
|
181
|
+
// Structural fallback: dsh marks conflicts with expected/actual revisions.
|
|
182
|
+
return (error !== null &&
|
|
183
|
+
typeof error === 'object' &&
|
|
184
|
+
('expected' in error || 'actual' in error));
|
|
185
|
+
},
|
|
158
186
|
};
|
|
159
187
|
return api;
|
|
160
188
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/services/settings.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,2CAA2C;AAC3C,8EAA8E;AAC9E,yEAAyE;AACzE,yEAAyE;AACzE,2EAA2E;AAC3E,EAAE;AACF,2EAA2E;AAC3E,4EAA4E;AAC5E,6EAA6E;AAC7E,wEAAwE;AACxE,sEAAsE;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,IAAI,GAAG,CAAC;IACrD,YAAY;IACZ,OAAO;IACP,QAAQ;IACR,YAAY;IACZ,iBAAiB;IACjB,UAAU;IACV,qBAAqB;CACtB,CAAC,CAAC;AAcH;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,UAA8B;IAC5D,MAAM,IAAI,GAAkB;QAC1B,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QACzB,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;QACnE,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;QACnE,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,OAAO,EAAE,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACnF,QAAQ,EAAE,UAAU,CAAC,QAAQ;KAC9B,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAc,EAAE,EAAU,EAAE,MAAc;IAC9E,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;IAC7D,MAAM,UAAU,GAAG,QAAQ,IAAI,CAAC,UAAU,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC,CAAC;IAC1E,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,KAA2D,CAAC;QACxE,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;YACrC,OAAO,EAAE;gBACP,EAAE;gBACF,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjE,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;aAC5D;SACF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/D,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;KACxB,CAAC;AACJ,CAAC;AAeD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/services/settings.ts"],"names":[],"mappings":"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"}
|
package/dist/services/web.js
CHANGED
|
@@ -28,18 +28,34 @@ export function createWebAPI(opts) {
|
|
|
28
28
|
}
|
|
29
29
|
return web;
|
|
30
30
|
}
|
|
31
|
+
/** One `kind: 'route'` registration for a single HTTP method. */
|
|
32
|
+
function route(method, path, handler) {
|
|
33
|
+
const web = server();
|
|
34
|
+
return web.register({ kind: 'route', method, path, handler }) ?? (() => { });
|
|
35
|
+
}
|
|
31
36
|
return {
|
|
32
37
|
register(prefix, handler) {
|
|
33
38
|
const web = server();
|
|
34
39
|
return web.register({ kind: 'prefix', path: prefix, handler }) ?? (() => { });
|
|
35
40
|
},
|
|
36
|
-
|
|
41
|
+
exact(path, handler) {
|
|
37
42
|
const web = server();
|
|
38
|
-
return web.register({ kind: '
|
|
43
|
+
return web.register({ kind: 'exact', path, handler }) ?? (() => { });
|
|
44
|
+
},
|
|
45
|
+
get(path, handler) {
|
|
46
|
+
return route('GET', path, handler);
|
|
39
47
|
},
|
|
40
48
|
post(path, handler) {
|
|
41
|
-
|
|
42
|
-
|
|
49
|
+
return route('POST', path, handler);
|
|
50
|
+
},
|
|
51
|
+
put(path, handler) {
|
|
52
|
+
return route('PUT', path, handler);
|
|
53
|
+
},
|
|
54
|
+
patch(path, handler) {
|
|
55
|
+
return route('PATCH', path, handler);
|
|
56
|
+
},
|
|
57
|
+
del(path, handler) {
|
|
58
|
+
return route('DELETE', path, handler);
|
|
43
59
|
},
|
|
44
60
|
use(middleware) {
|
|
45
61
|
const web = server();
|
package/dist/services/web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/services/web.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,EAAE;AACF,0EAA0E;AAC1E,yEAAyE;AACzE,0EAA0E;AAC1E,qEAAqE;AACrE,uBAAuB;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,0FAA0F;AAC1F,SAAS,gBAAgB,CAAC,GAAkB;IAC1C,OAAO,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAA4B;IACvD,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAErB,SAAS,MAAM;QACb,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC5D,MAAM,IAAI,iBAAiB,CAAC,GAAG,UAAU,oCAAoC,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO;QACL,QAAQ,CAAC,MAAM,EAAE,OAAO;YACtB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC/E,CAAC;QACD,
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/services/web.ts"],"names":[],"mappings":"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"}
|
package/dist/setup.js
CHANGED
|
@@ -63,7 +63,23 @@ export function injectPatch(patchPath) {
|
|
|
63
63
|
return { added: false, text };
|
|
64
64
|
}
|
|
65
65
|
const insertion = `- insert:\n ${PATCH_ENTRY}\n`;
|
|
66
|
-
|
|
66
|
+
let next;
|
|
67
|
+
if (text.trim().length === 0) {
|
|
68
|
+
next = insertion;
|
|
69
|
+
}
|
|
70
|
+
else if (/^[ \t]*\[\][ \t]*$/m.test(text.replace(/\r\n/g, '\n').trimEnd())) {
|
|
71
|
+
// The scaffold patch file is a single empty-list document. Appending a
|
|
72
|
+
// second YAML document after it without a separator is a parse error
|
|
73
|
+
// ("end of the stream or a document separator is expected"), so replace
|
|
74
|
+
// the empty list with the real entries instead of appending after it.
|
|
75
|
+
next = text.replace(/\[\][ \t]*(\r?\n)?$/, insertion);
|
|
76
|
+
}
|
|
77
|
+
else if (text.endsWith('\n') || text.endsWith('\r\n')) {
|
|
78
|
+
next = text + '---\n' + insertion;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
next = text + '\n---\n' + insertion;
|
|
82
|
+
}
|
|
67
83
|
writeFileSync(patchPath, next);
|
|
68
84
|
return { added: true, text: next };
|
|
69
85
|
}
|
package/dist/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,EAAE;AACF,+BAA+B;AAC/B,6EAA6E;AAC7E,oBAAoB;AACpB,6EAA6E;AAC7E,4EAA4E;AAC5E,6EAA6E;AAC7E,+BAA+B;AAC/B,EAAE;AACF,sEAAsE;AACtE,sEAAsE;AACtE,EAAE;AACF,8EAA8E;AAC9E,qEAAqE;AACrE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAA8B,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAC5C,MAAM,WAAW,GAAG,kCAAkC,UAAU,GAAG,CAAC;AAEpE,MAAM,UAAU,OAAO;IACrB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzC,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,MAAM,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,WAAmB;IAC5C,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,IAAa;IAC5C,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACjE,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IACrE,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC;IACpD,IAAI,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;QACpD,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,cAAc,CAAC;QACzD,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACpC,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,GAAG,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAChC,CAAC;IACD,MAAM,SAAS,GAAG,kBAAkB,WAAW,IAAI,CAAC;IACpD,IAAI,IAAY,CAAC;IACjB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,IAAI,GAAG,SAAS,CAAC;IACnB,CAAC;SAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC7E,uEAAuE;QACvE,qEAAqE;QACrE,wEAAwE;QACxE,sEAAsE;QACtE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC;IACtC,CAAC;IACD,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC/B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,WAAmB;IAK9C,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,iCAAiC,GAAG,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,UAAU,WAAW,gBAAgB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,WAAW,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAChK,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,iHAAiH,CAAC,CAAC;IAC5I,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;AAClF,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,UAAU,CAAC,WAAmB;IAC5C,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,iCAAiC,GAAG,EAAE,EAAE,CAAC;IACpF,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,eAAe,CAAC,EAAE;QAC3E,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC7D,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAC7C,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,IAAI,CAAC,WAAoB;IACvC,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,YAAY,cAAc,EAAE,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,0BAA0B,UAAU,IAAI,WAAW,EAAE,CAAC,CAAC;IAChF,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,oBAAoB,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;YACxD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,sBAAsB,OAAO,CAAC,IAAI,cAAc,OAAO,CAAC,QAAQ,UAAU,IAAI,GAAG,CAAC,CAAC;QAC9G,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,uBAAuB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5G,CAAC;IACH,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACvD,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -15,6 +15,14 @@ export interface CordisContext {
|
|
|
15
15
|
provide(name: string, value: any): void;
|
|
16
16
|
};
|
|
17
17
|
effect(fn: () => void | (() => void) | Promise<void | (() => void)>, label?: string): void;
|
|
18
|
+
/** Event registration; optional so a reduced context (tests) still type-checks. */
|
|
19
|
+
on?(event: string, listener: (...args: any[]) => any, options?: Record<string, unknown>): (() => void) | void;
|
|
20
|
+
/** Cordis logger; optional for the same reason. */
|
|
21
|
+
logger?: {
|
|
22
|
+
info?(...args: unknown[]): void;
|
|
23
|
+
warn?(...args: unknown[]): void;
|
|
24
|
+
error?(...args: unknown[]): void;
|
|
25
|
+
};
|
|
18
26
|
}
|
|
19
27
|
/** dshloader host adapter factory. */
|
|
20
28
|
export interface AdapterFactory {
|
|
@@ -32,6 +40,8 @@ export interface HostAdapter {
|
|
|
32
40
|
settings?: any;
|
|
33
41
|
web?: any;
|
|
34
42
|
services?: any;
|
|
43
|
+
/** Optional override for the registry facade (it names private dsh shapes). */
|
|
44
|
+
registry?: any;
|
|
35
45
|
}
|
|
36
46
|
/** Config passed to an adapter's create(). */
|
|
37
47
|
export interface HostAdapterConfig {
|
|
@@ -51,6 +61,14 @@ export interface HostAPI {
|
|
|
51
61
|
settings: SettingsAPI;
|
|
52
62
|
web: WebAPI;
|
|
53
63
|
services: ServicesAPI;
|
|
64
|
+
/** Monkey-patch protocol: RAW original, identity-checked restore, re-apply safe. */
|
|
65
|
+
patch: import('./patch.js').PatchAPI;
|
|
66
|
+
/** Stable facade over dsh registry internals (tools / sandbox / permission presets). */
|
|
67
|
+
registry: import('./services/registry.js').RegistryAPI;
|
|
68
|
+
/** Module-level LLM helpers that `services.get('llm')` cannot reach. */
|
|
69
|
+
llm: import('./services/llm.js').LlmAPI;
|
|
70
|
+
/** Module-level dsh symbols (defineTool, deadline, BasicCompactionEngine, ...). */
|
|
71
|
+
dsh: import('./services/dsh-symbols.js').DshSymbolsAPI;
|
|
54
72
|
registerPackageAlias(oldName: string, newName: string): void;
|
|
55
73
|
}
|
|
56
74
|
/** Settings stable API. */
|
|
@@ -63,6 +81,31 @@ export interface SettingsAPI {
|
|
|
63
81
|
update(ns: string, section?: any, expectedRevision?: number): Promise<SettingsResult>;
|
|
64
82
|
replace(ns: string, section?: any, expectedRevision?: number): Promise<SettingsResult>;
|
|
65
83
|
mutate(ns: string, ops?: any, expectedRevision?: number): Promise<SettingsResult>;
|
|
84
|
+
/**
|
|
85
|
+
* Build a settings namespace handle (delegates to dsh's `settingsNamespace`).
|
|
86
|
+
* @param id - namespace id; dsh accepts only `[a-z0-9-]`.
|
|
87
|
+
* @returns the namespace handle, or the raw id when the module is unavailable.
|
|
88
|
+
*/
|
|
89
|
+
namespace(id: string): any;
|
|
90
|
+
/**
|
|
91
|
+
* Install the canonical optional-settings consumer wiring (delegates to dsh's
|
|
92
|
+
* `installSettingsSection`): register `ns` with `entry` as the `base` layer,
|
|
93
|
+
* point the hooks' source thunk at the resolved scope while a settings service
|
|
94
|
+
* exists, and fall back to `entry` when it goes away.
|
|
95
|
+
*
|
|
96
|
+
* Delegated rather than reimplemented — the fallback and fiber semantics are
|
|
97
|
+
* real upstream behaviour, not something a shim should copy.
|
|
98
|
+
*
|
|
99
|
+
* @returns `true` when the wiring was installed, `false` when dsh-settings is
|
|
100
|
+
* unavailable (the caller then keeps using its composition entry).
|
|
101
|
+
*/
|
|
102
|
+
installSection<T>(ctx: any, ns: any, schema: any, entry: T, hooks: {
|
|
103
|
+
setSource(current: () => T): void;
|
|
104
|
+
onChange(): void;
|
|
105
|
+
validate(value: T): void;
|
|
106
|
+
}): boolean;
|
|
107
|
+
/** Whether `error` is dsh's optimistic-concurrency `SettingsConflictError`. */
|
|
108
|
+
isConflictError(error: unknown): boolean;
|
|
66
109
|
}
|
|
67
110
|
/** Settings write result shape. */
|
|
68
111
|
export interface SettingsResult {
|
|
@@ -88,9 +131,21 @@ export interface NamespaceView {
|
|
|
88
131
|
}
|
|
89
132
|
/** Web stable API. */
|
|
90
133
|
export interface WebAPI {
|
|
134
|
+
/** Mount a handler on a path PREFIX (`kind: 'prefix'`), any method. */
|
|
91
135
|
register(prefix: string, handler: any): () => void;
|
|
136
|
+
/**
|
|
137
|
+
* Mount a handler on an EXACT path, any method (`kind: 'exact'`).
|
|
138
|
+
*
|
|
139
|
+
* Use this when one handler dispatches several methods itself — the shape
|
|
140
|
+
* dsh-network-settings' `/_dsh/.../settings` and `/_dsh/.../probe` routes use.
|
|
141
|
+
*/
|
|
142
|
+
exact(path: string, handler: any): () => void;
|
|
92
143
|
get(path: string, handler: any): () => void;
|
|
93
144
|
post(path: string, handler: any): () => void;
|
|
145
|
+
put(path: string, handler: any): () => void;
|
|
146
|
+
patch(path: string, handler: any): () => void;
|
|
147
|
+
/** `DELETE` route. Named `del` because `delete` is awkward on a facade. */
|
|
148
|
+
del(path: string, handler: any): () => void;
|
|
94
149
|
use(middleware: any): () => void;
|
|
95
150
|
registerUpgrade(route: {
|
|
96
151
|
path: string;
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const LOADER_VERSION = "1.
|
|
1
|
+
export declare const LOADER_VERSION = "1.2.0";
|
|
2
2
|
export declare const LOG_PREFIX = "[dshloader]";
|
package/dist/version.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// dshloader version — keep in sync with package.json.
|
|
2
|
-
export const LOADER_VERSION = '1.
|
|
2
|
+
export const LOADER_VERSION = '1.2.0';
|
|
3
3
|
// Prefix used in every console log / error so users can grep dshloader output.
|
|
4
4
|
export const LOG_PREFIX = '[dshloader]';
|
|
5
5
|
//# sourceMappingURL=version.js.map
|