@eddyskywalker/dsh-chatgpt-subscription 0.3.5 → 0.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +10 -7
- package/lib/client.js +13 -2
- package/lib/client.js.map +1 -1
- package/lib/index.js +156 -5
- package/lib/types/client/CodexComposerQuota.d.ts +1 -1
- package/lib/types/client/CodexComposerQuota.d.ts.map +1 -1
- package/lib/types/client/antigravity/AntigravityComposerQuota.d.ts +1 -1
- package/lib/types/client/antigravity/AntigravityComposerQuota.d.ts.map +1 -1
- package/lib/types/client/command-code/CommandCodeComposerQuota.d.ts +1 -1
- package/lib/types/client/command-code/CommandCodeComposerQuota.d.ts.map +1 -1
- package/lib/types/client/index.d.ts +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/kimi-code/KimiCodeComposerQuota.d.ts +1 -1
- package/lib/types/client/kimi-code/KimiCodeComposerQuota.d.ts.map +1 -1
- package/lib/types/client/store.d.ts +19 -0
- package/lib/types/client/store.d.ts.map +1 -0
- package/lib/types/host/preset-sync.d.ts +41 -2
- package/lib/types/host/preset-sync.d.ts.map +1 -1
- package/lib/types/index.d.ts.map +1 -1
- package/package.json +29 -30
- package/presets/dispatch/agent.cordis.yml +13 -6
package/lib/index.js
CHANGED
|
@@ -14780,12 +14780,128 @@ function validateAuthorizationScope(scope) {
|
|
|
14780
14780
|
* Windows it can abort the process with STATUS_STACK_BUFFER_OVERRUN when the
|
|
14781
14781
|
* source path contains non-ASCII characters (nodejs/node#54476). The copy is
|
|
14782
14782
|
* per-entry instead, which also lets source mtimes ride along.
|
|
14783
|
+
*
|
|
14784
|
+
* A preset row names the package it mounts, so a name the running installation
|
|
14785
|
+
* does not ship makes the whole preset unresolvable. Text naming a package the
|
|
14786
|
+
* harness renamed is therefore reconciled with the installation before it is
|
|
14787
|
+
* compared or written.
|
|
14783
14788
|
* @module dsh-chatgpt-subscription/preset-sync
|
|
14784
14789
|
*/
|
|
14785
14790
|
/** The preset directory this package ships. */
|
|
14786
14791
|
const BUNDLED_PRESET_IDS = ["dispatch"];
|
|
14787
14792
|
/** Clock tolerance for the mtime fast path before falling through to a byte compare. */
|
|
14788
14793
|
const MTIME_TOLERANCE_MS = 1e3;
|
|
14794
|
+
/** Extensions whose text may name a package. */
|
|
14795
|
+
const REWRITABLE_EXTENSIONS = [".yml", ".yaml"];
|
|
14796
|
+
/**
|
|
14797
|
+
* Package names the harness renamed, mapped to the name that replaced each.
|
|
14798
|
+
*
|
|
14799
|
+
* Harness 0.1.6 renamed `workflow-worker-thread` to `workflow-ptc`; every
|
|
14800
|
+
* earlier release ships only the former. The bundled preset carries the
|
|
14801
|
+
* earlier spelling, which the sync replaces when the installation ships the
|
|
14802
|
+
* later one.
|
|
14803
|
+
*/
|
|
14804
|
+
const RENAMED_PACKAGES = /* @__PURE__ */ new Map([["@deepseek-ai/dsh-workflow-worker-thread", "@deepseek-ai/dsh-workflow-ptc"]]);
|
|
14805
|
+
/**
|
|
14806
|
+
* Packages whose row some supported harness generation does not ship at all.
|
|
14807
|
+
*
|
|
14808
|
+
* An enabled row naming a package the installation cannot resolve makes the
|
|
14809
|
+
* whole preset unresolvable — the roster reports it broken, which is worse than
|
|
14810
|
+
* a missing row because a broken preset can be neither selected nor copied. The
|
|
14811
|
+
* roster skips a `disabled` row in that check, so the sync disables a row whose
|
|
14812
|
+
* package is absent, and the next boot that ships the package re-enables it.
|
|
14813
|
+
*
|
|
14814
|
+
* The set is deliberately explicit rather than "every row that fails to
|
|
14815
|
+
* resolve": a resolver that fails on a working installation would then strip
|
|
14816
|
+
* the preset down to nothing, a quieter failure than the one it fixes.
|
|
14817
|
+
*/
|
|
14818
|
+
const OPTIONALLY_ABSENT_PACKAGES = ["@deepseek-ai/dsh-tool-present"];
|
|
14819
|
+
/**
|
|
14820
|
+
* Whether a bare specifier resolves from this module in the running
|
|
14821
|
+
* installation. A harness whose Node build exposes no `import.meta.resolve`
|
|
14822
|
+
* answers `false` for everything, which leaves every bundled spelling in place.
|
|
14823
|
+
* @param specifier - bare package specifier.
|
|
14824
|
+
* @returns whether the specifier resolves.
|
|
14825
|
+
*/
|
|
14826
|
+
function resolvesFromHere(specifier) {
|
|
14827
|
+
const resolve = import.meta.resolve;
|
|
14828
|
+
if (resolve === void 0) return false;
|
|
14829
|
+
try {
|
|
14830
|
+
resolve(specifier);
|
|
14831
|
+
return true;
|
|
14832
|
+
} catch {
|
|
14833
|
+
return false;
|
|
14834
|
+
}
|
|
14835
|
+
}
|
|
14836
|
+
/**
|
|
14837
|
+
* Point every renamed package name at the spelling this installation ships.
|
|
14838
|
+
*
|
|
14839
|
+
* A name that still resolves is left alone, and so is a rename whose
|
|
14840
|
+
* replacement does not resolve: with neither spelling present the preset is
|
|
14841
|
+
* unresolvable either way, and rewriting would only hide which name was tried.
|
|
14842
|
+
* @param content - bundled preset file text.
|
|
14843
|
+
* @param resolves - whether a bare specifier resolves in this installation.
|
|
14844
|
+
* @returns the text to write, equal to `content` when no rename applies.
|
|
14845
|
+
*/
|
|
14846
|
+
function reconcilePackageNames(content, resolves) {
|
|
14847
|
+
let out = content;
|
|
14848
|
+
for (const [renamed, current] of RENAMED_PACKAGES) {
|
|
14849
|
+
if (!out.includes(renamed)) continue;
|
|
14850
|
+
if (resolves(renamed) || !resolves(current)) continue;
|
|
14851
|
+
out = out.split(renamed).join(current);
|
|
14852
|
+
}
|
|
14853
|
+
return out;
|
|
14854
|
+
}
|
|
14855
|
+
/** Leading spaces of one line — the indentation its YAML keys share. */
|
|
14856
|
+
function indentationOf(line) {
|
|
14857
|
+
return line.length - line.trimStart().length;
|
|
14858
|
+
}
|
|
14859
|
+
/** The package a row line mounts, when the line is a row's `name:` key. */
|
|
14860
|
+
function rowPackageName(line) {
|
|
14861
|
+
return /^\s*name:\s*'([^']+)'\s*$/.exec(line)?.[1];
|
|
14862
|
+
}
|
|
14863
|
+
/** Whether the row whose `name:` key sits at `index` already declares `disabled`. */
|
|
14864
|
+
function rowDeclaresDisabled(lines, index) {
|
|
14865
|
+
const indent = indentationOf(lines[index] ?? "");
|
|
14866
|
+
for (const line of lines.slice(index + 1)) {
|
|
14867
|
+
if (line.trim() === "") continue;
|
|
14868
|
+
const own = indentationOf(line);
|
|
14869
|
+
if (own < indent) return false;
|
|
14870
|
+
if (own === indent && line.trimStart().startsWith("disabled:")) return true;
|
|
14871
|
+
}
|
|
14872
|
+
return false;
|
|
14873
|
+
}
|
|
14874
|
+
/**
|
|
14875
|
+
* Disable every row whose package this installation does not ship.
|
|
14876
|
+
* @param content - preset file text.
|
|
14877
|
+
* @param resolves - whether a bare specifier resolves in this installation.
|
|
14878
|
+
* @returns the text to write, equal to `content` when no row is affected.
|
|
14879
|
+
*/
|
|
14880
|
+
function disableRowsForAbsentPackages(content, resolves) {
|
|
14881
|
+
const lines = content.split("\n");
|
|
14882
|
+
const out = [];
|
|
14883
|
+
for (const [index, line] of lines.entries()) {
|
|
14884
|
+
out.push(line);
|
|
14885
|
+
const specifier = rowPackageName(line);
|
|
14886
|
+
if (specifier === void 0 || !OPTIONALLY_ABSENT_PACKAGES.includes(specifier)) continue;
|
|
14887
|
+
if (resolves(specifier) || rowDeclaresDisabled(lines, index)) continue;
|
|
14888
|
+
out.push(`${" ".repeat(indentationOf(line))}disabled: true`);
|
|
14889
|
+
}
|
|
14890
|
+
return out.join("\n");
|
|
14891
|
+
}
|
|
14892
|
+
/**
|
|
14893
|
+
* Reconcile one bundled preset file with the packages this installation ships:
|
|
14894
|
+
* a renamed package takes the spelling it carries, and a row it cannot mount is
|
|
14895
|
+
* disabled rather than left to mark the whole preset unresolvable.
|
|
14896
|
+
* @param content - bundled preset file text.
|
|
14897
|
+
* @param resolves - whether a bare specifier resolves in this installation.
|
|
14898
|
+
* @returns the text to write.
|
|
14899
|
+
*/
|
|
14900
|
+
function reconcilePreset(content, resolves) {
|
|
14901
|
+
return disableRowsForAbsentPackages(reconcilePackageNames(content, resolves), resolves);
|
|
14902
|
+
}
|
|
14903
|
+
/** Rewrite bundled preset text for the packages this installation ships. */
|
|
14904
|
+
const rewritePresetFile = (_relativePath, content) => reconcilePreset(content, resolvesFromHere);
|
|
14789
14905
|
/**
|
|
14790
14906
|
* The package root, found by walking up from this module to the nearest
|
|
14791
14907
|
* `package.json`.
|
|
@@ -14873,12 +14989,34 @@ function copyTreeSync(sourceDir, targetDir) {
|
|
|
14873
14989
|
}
|
|
14874
14990
|
}
|
|
14875
14991
|
/**
|
|
14992
|
+
* Text files below `sourceDir` whose content `rewrite` changes, keyed by path
|
|
14993
|
+
* relative to `sourceDir`.
|
|
14994
|
+
* @param sourceDir - bundled preset directory.
|
|
14995
|
+
* @param rewrite - text rewrite for the running installation.
|
|
14996
|
+
* @returns replacement text per changed file.
|
|
14997
|
+
*/
|
|
14998
|
+
function collectRewrites(sourceDir, rewrite) {
|
|
14999
|
+
const rewrites = /* @__PURE__ */ new Map();
|
|
15000
|
+
for (const file of filesUnder(sourceDir)) {
|
|
15001
|
+
if (!REWRITABLE_EXTENSIONS.some((extension) => file.endsWith(extension))) continue;
|
|
15002
|
+
const content = readFileSync(file, "utf8");
|
|
15003
|
+
const rewritten = rewrite(relative(sourceDir, file), content);
|
|
15004
|
+
if (rewritten !== content) rewrites.set(relative(sourceDir, file), rewritten);
|
|
15005
|
+
}
|
|
15006
|
+
return rewrites;
|
|
15007
|
+
}
|
|
15008
|
+
/** Write the replacement text of every rewritten file below `targetDir`. */
|
|
15009
|
+
function writeRewrites(targetDir, rewrites) {
|
|
15010
|
+
for (const [rel, content] of rewrites) writeFileSync(join(targetDir, rel), content);
|
|
15011
|
+
}
|
|
15012
|
+
/**
|
|
14876
15013
|
* Copy `sourceDir` into `targetDir` idempotently.
|
|
14877
15014
|
* @param sourceDir - bundled preset directory.
|
|
14878
15015
|
* @param targetDir - discovery-root directory for the same preset id.
|
|
15016
|
+
* @param rewrites - replacement text by path relative to `sourceDir`; a rewritten file is compared by content, since its target carries no source mtime.
|
|
14879
15017
|
* @returns whether anything was written.
|
|
14880
15018
|
*/
|
|
14881
|
-
function syncOnePreset(sourceDir, targetDir) {
|
|
15019
|
+
function syncOnePreset(sourceDir, targetDir, rewrites = /* @__PURE__ */ new Map()) {
|
|
14882
15020
|
const sourceFiles = filesUnder(sourceDir);
|
|
14883
15021
|
const sourceSet = new Set(sourceFiles.map((file) => relative(sourceDir, file)));
|
|
14884
15022
|
if (existsSync(targetDir) && !statSync(targetDir).isDirectory()) rmSync(targetDir, {
|
|
@@ -14887,12 +15025,22 @@ function syncOnePreset(sourceDir, targetDir) {
|
|
|
14887
15025
|
});
|
|
14888
15026
|
if (!existsSync(targetDir)) {
|
|
14889
15027
|
copyTreeSync(sourceDir, targetDir);
|
|
15028
|
+
writeRewrites(targetDir, rewrites);
|
|
14890
15029
|
pruneExtras(targetDir, sourceSet);
|
|
14891
15030
|
return "synced";
|
|
14892
15031
|
}
|
|
14893
15032
|
let dirty = false;
|
|
14894
15033
|
for (const file of sourceFiles) {
|
|
14895
|
-
const
|
|
15034
|
+
const rel = relative(sourceDir, file);
|
|
15035
|
+
const dest = join(targetDir, rel);
|
|
15036
|
+
const replacement = rewrites.get(rel);
|
|
15037
|
+
if (replacement !== void 0) {
|
|
15038
|
+
if (!existsSync(dest) || readFileSync(dest, "utf8") !== replacement) {
|
|
15039
|
+
dirty = true;
|
|
15040
|
+
break;
|
|
15041
|
+
}
|
|
15042
|
+
continue;
|
|
15043
|
+
}
|
|
14896
15044
|
if (!existsSync(dest) || !sameFile(file, dest)) {
|
|
14897
15045
|
dirty = true;
|
|
14898
15046
|
break;
|
|
@@ -14907,6 +15055,7 @@ function syncOnePreset(sourceDir, targetDir) {
|
|
|
14907
15055
|
if (!dirty) return "current";
|
|
14908
15056
|
pruneExtras(targetDir, sourceSet);
|
|
14909
15057
|
copyTreeSync(sourceDir, targetDir);
|
|
15058
|
+
writeRewrites(targetDir, rewrites);
|
|
14910
15059
|
pruneExtras(targetDir, sourceSet);
|
|
14911
15060
|
return "synced";
|
|
14912
15061
|
}
|
|
@@ -14917,9 +15066,10 @@ function syncOnePreset(sourceDir, targetDir) {
|
|
|
14917
15066
|
* @param sourceRoot - this package's bundled `presets/` directory.
|
|
14918
15067
|
* @param targetRoot - harness-home agent-presets discovery root.
|
|
14919
15068
|
* @param retire - previously bundled preset ids to remove when absent from the source.
|
|
15069
|
+
* @param rewrite - rewrites preset text for the running installation; omission copies the bundle verbatim.
|
|
14920
15070
|
* @returns the grouped outcome of the run.
|
|
14921
15071
|
*/
|
|
14922
|
-
function syncPresetTrees(sourceRoot, targetRoot, retire = []) {
|
|
15072
|
+
function syncPresetTrees(sourceRoot, targetRoot, retire = [], rewrite) {
|
|
14923
15073
|
const result = {
|
|
14924
15074
|
synced: [],
|
|
14925
15075
|
current: [],
|
|
@@ -14935,7 +15085,8 @@ function syncPresetTrees(sourceRoot, targetRoot, retire = []) {
|
|
|
14935
15085
|
const id = basename(source);
|
|
14936
15086
|
shipped.add(id);
|
|
14937
15087
|
try {
|
|
14938
|
-
|
|
15088
|
+
const rewrites = rewrite === void 0 ? /* @__PURE__ */ new Map() : collectRewrites(source, rewrite);
|
|
15089
|
+
if (syncOnePreset(source, join(targetRoot, id), rewrites) === "synced") result.synced.push(id);
|
|
14939
15090
|
else result.current.push(id);
|
|
14940
15091
|
} catch (error) {
|
|
14941
15092
|
result.failed.push({
|
|
@@ -15568,7 +15719,7 @@ function apply(ctx, pluginConfig = {}) {
|
|
|
15568
15719
|
if (pluginConfig.syncAgentPresets !== false) ctx.effect(() => {
|
|
15569
15720
|
try {
|
|
15570
15721
|
const target = presetTargetRoot(dshHomeDir());
|
|
15571
|
-
const result = syncPresetTrees(bundledPresetsRoot(), target, [...BUNDLED_PRESET_IDS]);
|
|
15722
|
+
const result = syncPresetTrees(bundledPresetsRoot(), target, [...BUNDLED_PRESET_IDS], rewritePresetFile);
|
|
15572
15723
|
for (const { id, error } of result.failed) ctx.logger.warn(`[dsh-chatgpt-subscription] agent preset "${id}" sync failed: ${error}`);
|
|
15573
15724
|
if (result.synced.length > 0) ctx.logger.info(`[dsh-chatgpt-subscription] agent presets synced into ${target}: ${result.synced.join(", ")}`);
|
|
15574
15725
|
} catch (error) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { SnapshotStore } from '@deepseek-ai/dsh-client-runtime/client';
|
|
2
1
|
import type { ModelDirectoryState } from '@deepseek-ai/dsh-client-ui-model-selection/client';
|
|
3
2
|
import type { PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
|
|
4
3
|
import { SubscriptionApi } from './api.ts';
|
|
5
4
|
import { NS } from './locales.ts';
|
|
5
|
+
import type { SnapshotStore } from './store.ts';
|
|
6
6
|
type Props = PropsRuntime<'conversation.input.right'> & PropsLocale<typeof NS> & {
|
|
7
7
|
api: SubscriptionApi;
|
|
8
8
|
directory: SnapshotStore<ModelDirectoryState>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodexComposerQuota.d.ts","sourceRoot":"","sources":["../../../src/client/CodexComposerQuota.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"CodexComposerQuota.d.ts","sourceRoot":"","sources":["../../../src/client/CodexComposerQuota.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAA;AAC5F,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAGjF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AAEjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,KAAK,KAAK,GAAG,YAAY,CAAC,0BAA0B,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,GAAG;IAC/E,GAAG,EAAE,eAAe,CAAA;IACpB,SAAS,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAA;IAC7C,kBAAkB,EAAE,MAAM,IAAI,CAAA;CAC/B,CAAA;AAED,wBAAgB,kBAAkB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAwD7G"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { SnapshotStore } from '@deepseek-ai/dsh-client-runtime/client';
|
|
2
1
|
import type { ModelDirectoryState } from '@deepseek-ai/dsh-client-ui-model-selection/client';
|
|
3
2
|
import type { PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
|
|
3
|
+
import type { SnapshotStore } from '../store.ts';
|
|
4
4
|
import { NS_ANTIGRAVITY } from './locales.ts';
|
|
5
5
|
type Props = PropsRuntime<'conversation.input.right'> & PropsLocale<typeof NS_ANTIGRAVITY> & {
|
|
6
6
|
directory: SnapshotStore<ModelDirectoryState>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AntigravityComposerQuota.d.ts","sourceRoot":"","sources":["../../../../src/client/antigravity/AntigravityComposerQuota.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"AntigravityComposerQuota.d.ts","sourceRoot":"","sources":["../../../../src/client/antigravity/AntigravityComposerQuota.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAA;AAC5F,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAEjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAmB7C,KAAK,KAAK,GAAG,YAAY,CAAC,0BAA0B,CAAC,GACnD,WAAW,CAAC,OAAO,cAAc,CAAC,GAAG;IACnC,SAAS,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAA;IAC7C,kBAAkB,EAAE,MAAM,IAAI,CAAA;CAC/B,CAAA;AAqCH,wBAAgB,wBAAwB,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAkF3G"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { SnapshotStore } from '@deepseek-ai/dsh-client-runtime/client';
|
|
2
1
|
import type { ModelDirectoryState } from '@deepseek-ai/dsh-client-ui-model-selection/client';
|
|
3
2
|
import type { PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
|
|
4
3
|
import type { CommandCodeWebStatus } from '../../shared/command-code-contracts.ts';
|
|
4
|
+
import type { SnapshotStore } from '../store.ts';
|
|
5
5
|
import { NS_COMMAND_CODE } from './locales.ts';
|
|
6
6
|
type Props = PropsRuntime<'conversation.input.right'> & PropsLocale<typeof NS_COMMAND_CODE> & {
|
|
7
7
|
directory: SnapshotStore<ModelDirectoryState>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandCodeComposerQuota.d.ts","sourceRoot":"","sources":["../../../../src/client/command-code/CommandCodeComposerQuota.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"CommandCodeComposerQuota.d.ts","sourceRoot":"","sources":["../../../../src/client/command-code/CommandCodeComposerQuota.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAA;AAC5F,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAClF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAmB9C,KAAK,KAAK,GAAG,YAAY,CAAC,0BAA0B,CAAC,GACnD,WAAW,CAAC,OAAO,eAAe,CAAC,GAAG;IACpC,SAAS,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAA;IAC7C,kBAAkB,EAAE,MAAM,IAAI,CAAA;CAC/B,CAAA;AAEH,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAA;CACvC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,CAiCvF;AAED,wBAAgB,wBAAwB,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAgE3G"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ClientContext } from '@deepseek-ai/
|
|
1
|
+
import type { Context as ClientContext } from '@deepseek-ai/cordis';
|
|
2
2
|
import { type LocaleKey } from './locales.ts';
|
|
3
3
|
declare module '@deepseek-ai/dsh-client-ui-slots' {
|
|
4
4
|
interface LocaleNamespaceMap {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAenE,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAY/D,OAAO,QAAQ,kCAAkC,CAAC;IAChD,UAAU,kBAAkB;QAC1B,0BAA0B,EAAE,SAAS,CAAA;QACrC,iBAAiB,EAAE,GAAG,CAAA;QACtB,kBAAkB,EAAE,GAAG,CAAA;QACvB,eAAe,EAAE,GAAG,CAAA;KACrB;CACF;AAED,eAAO,MAAM,MAAM,UAA0D,CAAA;AAE7E,wBAAgB,KAAK,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAoH9C"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { SnapshotStore } from '@deepseek-ai/dsh-client-runtime/client';
|
|
2
1
|
import type { ModelDirectoryState } from '@deepseek-ai/dsh-client-ui-model-selection/client';
|
|
3
2
|
import type { PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
|
|
4
3
|
import type { KimiCodeWebStatus } from '../../shared/kimi-code-contracts.ts';
|
|
4
|
+
import type { SnapshotStore } from '../store.ts';
|
|
5
5
|
import { NS_KIMI_CODE } from './locales.ts';
|
|
6
6
|
type Props = PropsRuntime<'conversation.input.right'> & PropsLocale<typeof NS_KIMI_CODE> & {
|
|
7
7
|
directory: SnapshotStore<ModelDirectoryState>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KimiCodeComposerQuota.d.ts","sourceRoot":"","sources":["../../../../src/client/kimi-code/KimiCodeComposerQuota.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"KimiCodeComposerQuota.d.ts","sourceRoot":"","sources":["../../../../src/client/kimi-code/KimiCodeComposerQuota.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAA;AAC5F,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAmB3C,KAAK,KAAK,GAAG,YAAY,CAAC,0BAA0B,CAAC,GACnD,WAAW,CAAC,OAAO,YAAY,CAAC,GAAG;IACjC,SAAS,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAA;IAC7C,kBAAkB,EAAE,MAAM,IAAI,CAAA;CAC/B,CAAA;AAEH,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAA;CACvC;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,CA+BpF;AAED,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAgExG"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The observable a model-directory store exposes to a composer badge.
|
|
3
|
+
*
|
|
4
|
+
* Harness 0.1.1 and earlier declared this shape in
|
|
5
|
+
* `@deepseek-ai/dsh-client-runtime`; 0.1.2 replaced that package with
|
|
6
|
+
* `@deepseek-ai/dsh-client-store`. A badge reads only the observable members,
|
|
7
|
+
* so the two it needs are declared here instead of imported from either home.
|
|
8
|
+
*/
|
|
9
|
+
export interface SnapshotStore<T> {
|
|
10
|
+
/** Read the cached snapshot reference. */
|
|
11
|
+
getSnapshot(): T;
|
|
12
|
+
/**
|
|
13
|
+
* Subscribe to snapshot invalidation.
|
|
14
|
+
* @param listener - invalidation callback.
|
|
15
|
+
* @returns unsubscribe function.
|
|
16
|
+
*/
|
|
17
|
+
subscribe(listener: () => void): () => void;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/client/store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,0CAA0C;IAC1C,WAAW,IAAI,CAAC,CAAA;IAChB;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAA;CAC5C"}
|
|
@@ -18,10 +18,47 @@
|
|
|
18
18
|
* Windows it can abort the process with STATUS_STACK_BUFFER_OVERRUN when the
|
|
19
19
|
* source path contains non-ASCII characters (nodejs/node#54476). The copy is
|
|
20
20
|
* per-entry instead, which also lets source mtimes ride along.
|
|
21
|
+
*
|
|
22
|
+
* A preset row names the package it mounts, so a name the running installation
|
|
23
|
+
* does not ship makes the whole preset unresolvable. Text naming a package the
|
|
24
|
+
* harness renamed is therefore reconciled with the installation before it is
|
|
25
|
+
* compared or written.
|
|
21
26
|
* @module dsh-chatgpt-subscription/preset-sync
|
|
22
27
|
*/
|
|
23
28
|
/** The preset directory this package ships. */
|
|
24
29
|
export declare const BUNDLED_PRESET_IDS: readonly string[];
|
|
30
|
+
/**
|
|
31
|
+
* Whether a bare specifier resolves from this module in the running
|
|
32
|
+
* installation. A harness whose Node build exposes no `import.meta.resolve`
|
|
33
|
+
* answers `false` for everything, which leaves every bundled spelling in place.
|
|
34
|
+
* @param specifier - bare package specifier.
|
|
35
|
+
* @returns whether the specifier resolves.
|
|
36
|
+
*/
|
|
37
|
+
export declare function resolvesFromHere(specifier: string): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Point every renamed package name at the spelling this installation ships.
|
|
40
|
+
*
|
|
41
|
+
* A name that still resolves is left alone, and so is a rename whose
|
|
42
|
+
* replacement does not resolve: with neither spelling present the preset is
|
|
43
|
+
* unresolvable either way, and rewriting would only hide which name was tried.
|
|
44
|
+
* @param content - bundled preset file text.
|
|
45
|
+
* @param resolves - whether a bare specifier resolves in this installation.
|
|
46
|
+
* @returns the text to write, equal to `content` when no rename applies.
|
|
47
|
+
*/
|
|
48
|
+
export declare function reconcilePackageNames(content: string, resolves: (specifier: string) => boolean): string;
|
|
49
|
+
/**
|
|
50
|
+
* Reconcile one bundled preset file with the packages this installation ships:
|
|
51
|
+
* a renamed package takes the spelling it carries, and a row it cannot mount is
|
|
52
|
+
* disabled rather than left to mark the whole preset unresolvable.
|
|
53
|
+
* @param content - bundled preset file text.
|
|
54
|
+
* @param resolves - whether a bare specifier resolves in this installation.
|
|
55
|
+
* @returns the text to write.
|
|
56
|
+
*/
|
|
57
|
+
export declare function reconcilePreset(content: string, resolves: (specifier: string) => boolean): string;
|
|
58
|
+
/** One preset file's text, rewritten for the running installation. */
|
|
59
|
+
export type PresetFileRewrite = (relativePath: string, content: string) => string;
|
|
60
|
+
/** Rewrite bundled preset text for the packages this installation ships. */
|
|
61
|
+
export declare const rewritePresetFile: PresetFileRewrite;
|
|
25
62
|
/** One sync run's outcome, grouped for diagnostics. */
|
|
26
63
|
export interface PresetSyncResult {
|
|
27
64
|
/** Preset ids whose tree was (re)written this run. */
|
|
@@ -57,9 +94,10 @@ export declare function presetTargetRoot(home: string): string;
|
|
|
57
94
|
* Copy `sourceDir` into `targetDir` idempotently.
|
|
58
95
|
* @param sourceDir - bundled preset directory.
|
|
59
96
|
* @param targetDir - discovery-root directory for the same preset id.
|
|
97
|
+
* @param rewrites - replacement text by path relative to `sourceDir`; a rewritten file is compared by content, since its target carries no source mtime.
|
|
60
98
|
* @returns whether anything was written.
|
|
61
99
|
*/
|
|
62
|
-
export declare function syncOnePreset(sourceDir: string, targetDir: string): 'synced' | 'current';
|
|
100
|
+
export declare function syncOnePreset(sourceDir: string, targetDir: string, rewrites?: ReadonlyMap<string, string>): 'synced' | 'current';
|
|
63
101
|
/**
|
|
64
102
|
* Sync every bundled preset into `targetRoot`, then remove ids named in
|
|
65
103
|
* `retire` that the bundle no longer ships. Only those exact ids are removed;
|
|
@@ -67,7 +105,8 @@ export declare function syncOnePreset(sourceDir: string, targetDir: string): 'sy
|
|
|
67
105
|
* @param sourceRoot - this package's bundled `presets/` directory.
|
|
68
106
|
* @param targetRoot - harness-home agent-presets discovery root.
|
|
69
107
|
* @param retire - previously bundled preset ids to remove when absent from the source.
|
|
108
|
+
* @param rewrite - rewrites preset text for the running installation; omission copies the bundle verbatim.
|
|
70
109
|
* @returns the grouped outcome of the run.
|
|
71
110
|
*/
|
|
72
|
-
export declare function syncPresetTrees(sourceRoot: string, targetRoot: string, retire?: readonly string[]): PresetSyncResult;
|
|
111
|
+
export declare function syncPresetTrees(sourceRoot: string, targetRoot: string, retire?: readonly string[], rewrite?: PresetFileRewrite): PresetSyncResult;
|
|
73
112
|
//# sourceMappingURL=preset-sync.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preset-sync.d.ts","sourceRoot":"","sources":["../../../src/host/preset-sync.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"preset-sync.d.ts","sourceRoot":"","sources":["../../../src/host/preset-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAMH,+CAA+C;AAC/C,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAAiB,CAAA;AAuCjE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAS3D;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAQvG;AA6CD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAEjG;AAED,sEAAsE;AACtE,MAAM,MAAM,iBAAiB,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAA;AAEjF,4EAA4E;AAC5E,eAAO,MAAM,iBAAiB,EAAE,iBACY,CAAA;AAE5C,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,mDAAmD;IACnD,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,iEAAiE;IACjE,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACvC,2EAA2E;IAC3E,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAQpC;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AA0FD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa,GAChD,QAAQ,GAAG,SAAS,CA+CtB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,SAAS,MAAM,EAAO,EAC9B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,gBAAgB,CAiClB"}
|
package/lib/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,CAAC,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eddyskywalker/dsh-chatgpt-subscription",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.7",
|
|
4
4
|
"description": "DSH provider plugin for Codex access through a ChatGPT subscription.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "eddyskywalker",
|
|
@@ -48,7 +48,6 @@
|
|
|
48
48
|
},
|
|
49
49
|
"client": {
|
|
50
50
|
"inject": [
|
|
51
|
-
"@deepseek-ai/dsh-client-runtime",
|
|
52
51
|
"@deepseek-ai/dsh-client-locale",
|
|
53
52
|
"@deepseek-ai/dsh-client-ui-slots",
|
|
54
53
|
"@deepseek-ai/dsh-client-ui-settings",
|
|
@@ -62,40 +61,40 @@
|
|
|
62
61
|
"peerDependencies": {
|
|
63
62
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
64
63
|
"@deepseek-ai/cordis-plugin-loader": "^1.0.3",
|
|
65
|
-
"@deepseek-ai/dsh-attachment": "^0.1.
|
|
66
|
-
"@deepseek-ai/dsh-client-connection": "^0.1.
|
|
67
|
-
"@deepseek-ai/dsh-client-locale": "^0.1.
|
|
68
|
-
"@deepseek-ai/dsh-client-
|
|
69
|
-
"@deepseek-ai/dsh-client-ui-
|
|
70
|
-
"@deepseek-ai/dsh-client-ui-
|
|
71
|
-
"@deepseek-ai/dsh-client-ui-settings": "^0.1.
|
|
72
|
-
"@deepseek-ai/dsh-client-ui-slots": "^0.1.
|
|
73
|
-
"@deepseek-ai/dsh-client-ui-tool": "^0.1.
|
|
74
|
-
"@deepseek-ai/dsh-host-webserver": "^0.1.
|
|
75
|
-
"@deepseek-ai/dsh-llm": "^0.1.
|
|
76
|
-
"@deepseek-ai/dsh-settings": "^0.1.
|
|
77
|
-
"@deepseek-ai/dsh-tools": "^0.1.
|
|
78
|
-
"@deepseek-ai/dsh-web": "^0.1.
|
|
64
|
+
"@deepseek-ai/dsh-attachment": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1",
|
|
65
|
+
"@deepseek-ai/dsh-client-connection": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1",
|
|
66
|
+
"@deepseek-ai/dsh-client-locale": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1",
|
|
67
|
+
"@deepseek-ai/dsh-client-ui-conversation": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1",
|
|
68
|
+
"@deepseek-ai/dsh-client-ui-model-selection": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1",
|
|
69
|
+
"@deepseek-ai/dsh-client-ui-renderer": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1",
|
|
70
|
+
"@deepseek-ai/dsh-client-ui-settings": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1",
|
|
71
|
+
"@deepseek-ai/dsh-client-ui-slots": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1",
|
|
72
|
+
"@deepseek-ai/dsh-client-ui-tool": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1",
|
|
73
|
+
"@deepseek-ai/dsh-host-webserver": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1",
|
|
74
|
+
"@deepseek-ai/dsh-llm": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1",
|
|
75
|
+
"@deepseek-ai/dsh-settings": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1",
|
|
76
|
+
"@deepseek-ai/dsh-tools": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1",
|
|
77
|
+
"@deepseek-ai/dsh-web": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1 || ^0.1.6-alpha.1",
|
|
79
78
|
"@deepseek-ai/schemastery": "^3.18.2",
|
|
80
79
|
"react": "^18.2.0"
|
|
81
80
|
},
|
|
82
81
|
"devDependencies": {
|
|
83
82
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
84
83
|
"@deepseek-ai/cordis-plugin-loader": "^1.0.3",
|
|
85
|
-
"@deepseek-ai/dsh-attachment": "^0.1.
|
|
86
|
-
"@deepseek-ai/dsh-client-connection": "^0.1.
|
|
87
|
-
"@deepseek-ai/dsh-client-locale": "^0.1.
|
|
88
|
-
"@deepseek-ai/dsh-client-
|
|
89
|
-
"@deepseek-ai/dsh-client-ui-
|
|
90
|
-
"@deepseek-ai/dsh-client-ui-
|
|
91
|
-
"@deepseek-ai/dsh-client-ui-settings": "^0.1.
|
|
92
|
-
"@deepseek-ai/dsh-client-ui-slots": "^0.1.
|
|
93
|
-
"@deepseek-ai/dsh-client-ui-tool": "^0.1.
|
|
94
|
-
"@deepseek-ai/dsh-host-webserver": "^0.1.
|
|
95
|
-
"@deepseek-ai/dsh-llm": "^0.1.
|
|
96
|
-
"@deepseek-ai/dsh-settings": "^0.1.
|
|
97
|
-
"@deepseek-ai/dsh-tools": "^0.1.
|
|
98
|
-
"@deepseek-ai/dsh-web": "^0.1.
|
|
84
|
+
"@deepseek-ai/dsh-attachment": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1",
|
|
85
|
+
"@deepseek-ai/dsh-client-connection": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1",
|
|
86
|
+
"@deepseek-ai/dsh-client-locale": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1",
|
|
87
|
+
"@deepseek-ai/dsh-client-ui-conversation": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1",
|
|
88
|
+
"@deepseek-ai/dsh-client-ui-model-selection": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1",
|
|
89
|
+
"@deepseek-ai/dsh-client-ui-renderer": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1",
|
|
90
|
+
"@deepseek-ai/dsh-client-ui-settings": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1",
|
|
91
|
+
"@deepseek-ai/dsh-client-ui-slots": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1",
|
|
92
|
+
"@deepseek-ai/dsh-client-ui-tool": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1",
|
|
93
|
+
"@deepseek-ai/dsh-host-webserver": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1",
|
|
94
|
+
"@deepseek-ai/dsh-llm": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1",
|
|
95
|
+
"@deepseek-ai/dsh-settings": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1",
|
|
96
|
+
"@deepseek-ai/dsh-tools": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1",
|
|
97
|
+
"@deepseek-ai/dsh-web": "^0.1.2-alpha.5 || ^0.1.2-rc.1 || ^0.1.2 || ^0.1.3 || ^0.1.4 || ^0.1.5-rc.1",
|
|
99
98
|
"@deepseek-ai/schemastery": "^3.18.2",
|
|
100
99
|
"@types/node": "^22.20.0",
|
|
101
100
|
"@types/react": "~18.3.1",
|
|
@@ -310,8 +310,11 @@
|
|
|
310
310
|
backgroundMode: one-shot
|
|
311
311
|
maxDepth: provider-managed
|
|
312
312
|
|
|
313
|
-
|
|
314
|
-
|
|
313
|
+
# `workflow-worker-thread` is this row's name up to harness 0.1.5; 0.1.6
|
|
314
|
+
# renamed the package to `workflow-ptc`. The plugin rewrites this line to
|
|
315
|
+
# whichever spelling the running installation ships (src/host/preset-sync.ts).
|
|
316
|
+
- id: workflow-ptc
|
|
317
|
+
name: '@deepseek-ai/dsh-workflow-ptc'
|
|
315
318
|
config:
|
|
316
319
|
provider: spawn
|
|
317
320
|
|
|
@@ -347,13 +350,17 @@
|
|
|
347
350
|
|
|
348
351
|
# ── presentation ────────────────────────────────────────────────────────────
|
|
349
352
|
|
|
350
|
-
# PTC mode for this agent alone. The row waits for the host's
|
|
351
|
-
#
|
|
352
|
-
#
|
|
353
|
+
# PTC mode for this agent alone. The row waits for the host's script runtime
|
|
354
|
+
# (`codeRuntime` up to harness 0.1.5, `ptcRuntime` from 0.1.6) rather than
|
|
355
|
+
# assuming it: a deployment that composes no TypeScript runtime fails this
|
|
356
|
+
# preset at mount, naming this id, instead of at the first request.
|
|
353
357
|
- id: tool-presentation
|
|
354
358
|
name: '@deepseek-ai/dsh-agent-tool-presentation'
|
|
355
359
|
config:
|
|
356
360
|
mode: ptc
|
|
357
361
|
|
|
362
|
+
# `present` ships from harness 0.1.5-alpha.2. On an earlier installation the
|
|
363
|
+
# sync disables this row rather than leave the whole preset unresolvable, and
|
|
364
|
+
# re-enables it once the harness ships the package (src/host/preset-sync.ts).
|
|
358
365
|
- id: present
|
|
359
|
-
name: '@deepseek-ai/dsh-tool-present'
|
|
366
|
+
name: '@deepseek-ai/dsh-tool-present'
|