@sparkelf/dsh-plugin-dataops 0.1.0-rc.9 → 0.2.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.i18n.yaml +2 -2
- package/README.md +3 -2
- package/README.zh.md +3 -2
- package/lib/client.js +29 -21
- package/lib/index.js +7 -1
- package/lib/types/client/index.d.ts +3 -3
- package/package.json +61 -65
- package/lib/invariant.js +0 -16
- package/lib/types/invariant.d.ts +0 -13
package/README.i18n.yaml
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
|
3
3
|
# after editing either side, bring the other along and re-record with:
|
|
4
4
|
# pnpm run verify-translation-pairing --write packages/plus/dataops/README.md
|
|
5
|
-
README.md:
|
|
6
|
-
README.zh.md:
|
|
5
|
+
README.md: 204f52df89c185f63099a532a57f6717ee188dc2
|
|
6
|
+
README.zh.md: b7a00c943b5551cef44150fcd1672e11e362f744
|
package/README.md
CHANGED
|
@@ -23,7 +23,7 @@ This complete Host and Client plugin owns one DataOps target identity, browser A
|
|
|
23
23
|
<a id="use-this-package"></a>
|
|
24
24
|
## Use this package
|
|
25
25
|
|
|
26
|
-
Set `DSH_DATAOPS_BASE_URL` to the DataOps Web origin that serves both `/auth/dsh/authorize` and proxied `/api`; `DSH_DATAOPS_CALLBACK_ORIGIN` optionally names a non-loopback DSH browser origin. The package stores the delegated access token and stable target identity under `dataops_access_token` and `dataops_target_ref`; DataOps ties the token lifetime to its authenticated browser session. When the current grant expires or its browser session is revoked, the DataOps Client contribution raises a DSH shell modal with **Later** and **Sign in again**; the latter opens the real OAuth popup from the user gesture. Settings also distinguishes the rejected stored grant from a never-connected state and keeps the same recovery action available. An authentication-rejected MCP call remains an error result inside the agent turn; it does not terminate the task, and Plus does not automatically replay an unconfirmed tool operation. Disconnect revokes account tokens but retains target identity. OAuth callback failures expose only a fixed, actionable stage in Settings; authorization codes, state, tokens, upstream bodies, and arbitrary error text remain outside the browser message.
|
|
26
|
+
Set `DSH_DATAOPS_BASE_URL` to the DataOps Web origin that serves both `/auth/dsh/authorize` and proxied `/api`; `DSH_DATAOPS_CALLBACK_ORIGIN` optionally names a non-loopback DSH browser origin. The browser contribution registers only when Host plugin inventory reports the matching `plus-dataops` entry effectively enabled, so an installed package whose environment condition disables the Host stays inert instead of requesting absent routes. The package stores the delegated access token and stable target identity under `dataops_access_token` and `dataops_target_ref`; DataOps ties the token lifetime to its authenticated browser session. When the current grant expires or its browser session is revoked, the DataOps Client contribution raises a DSH shell modal with **Later** and **Sign in again**; the latter opens the real OAuth popup from the user gesture. Settings also distinguishes the rejected stored grant from a never-connected state and keeps the same recovery action available. An authentication-rejected MCP call remains an error result inside the agent turn; it does not terminate the task, and Plus does not automatically replay an unconfirmed tool operation. Disconnect revokes account tokens but retains target identity. OAuth callback failures expose only a fixed, actionable stage in Settings; authorization codes, state, tokens, upstream bodies, and arbitrary error text remain outside the browser message.
|
|
27
27
|
|
|
28
28
|
-----
|
|
29
29
|
|
|
@@ -58,6 +58,7 @@ Connecting, disconnecting, or MCP discovery changes can alter the tool-schema pr
|
|
|
58
58
|
|
|
59
59
|
This Dev Note is working context for maintainers; shipped behavior, limits, and rationale live in the sections above, the package code, and the linked Agent Note.
|
|
60
60
|
|
|
61
|
-
- `src/index.ts` owns authorization, credentials, access expiry, and MCP child lifecycle. `src/client/store.ts` and `src/client/controller.ts` own shared browser status and OAuth lifecycle; `src/client/DataOpsExpiryModal.tsx` contributes the shell prompt and `src/client/DataOpsSection.tsx` contributes Settings. The [distribution Agent Note](../../../.agents/notes/
|
|
61
|
+
- `src/index.ts` owns authorization, credentials, access expiry, and MCP child lifecycle. `src/client/store.ts` and `src/client/controller.ts` own shared browser status and OAuth lifecycle; `src/client/DataOpsExpiryModal.tsx` contributes the shell prompt and `src/client/DataOpsSection.tsx` contributes Settings. The [distribution Agent Note](../../../.agents/notes/implemented/architecture/2026-08-29-ranged-plus-patchset-distribution.md) records the package boundary.
|
|
62
|
+
- No runtime invariant companion is published because authorization and MCP child lifecycle are observed by their owning services; DataOps keeps no independent projection of those relationships.
|
|
62
63
|
|
|
63
64
|
</details>
|
package/README.zh.md
CHANGED
|
@@ -23,7 +23,7 @@ kind: "package-reference"
|
|
|
23
23
|
<a id="use-this-package"></a>
|
|
24
24
|
## 使用此软件包
|
|
25
25
|
|
|
26
|
-
把`DSH_DATAOPS_BASE_URL`设为同时提供`/auth/dsh/authorize`及proxied `/api`的DataOps Web origin;`DSH_DATAOPS_CALLBACK_ORIGIN`可选指定non-loopback DSH browser origin。该package把delegated access token及stable target identity存入`dataops_access_token`与`dataops_target_ref`;DataOps把token lifetime绑定到authenticated browser session。Current grant过期或其browser session被revoke时,DataOps Client contribution会弹出带**稍后**与**重新登录**的DSH shell modal;后者从用户手势打开real OAuth popup。Settings也会把rejected stored grant与never-connected state区分,并保留同一个恢复动作。Authentication-rejected MCP call仍是agent turn内的error result,不会终止task;Plus不会自动重放结果未知的tool operation。Disconnect会revoke account tokens但保留target identity。OAuth callback failure只在Settings暴露固定、可操作的failure stage;authorization code、state、token、upstream body及任意error text不会进入browser message。
|
|
26
|
+
把`DSH_DATAOPS_BASE_URL`设为同时提供`/auth/dsh/authorize`及proxied `/api`的DataOps Web origin;`DSH_DATAOPS_CALLBACK_ORIGIN`可选指定non-loopback DSH browser origin。Browser contribution仅在Host plugin inventory报告对应`plus-dataops` entry有效启用时注册;若环境条件禁用Host,已安装package保持inert,不请求不存在的route。该package把delegated access token及stable target identity存入`dataops_access_token`与`dataops_target_ref`;DataOps把token lifetime绑定到authenticated browser session。Current grant过期或其browser session被revoke时,DataOps Client contribution会弹出带**稍后**与**重新登录**的DSH shell modal;后者从用户手势打开real OAuth popup。Settings也会把rejected stored grant与never-connected state区分,并保留同一个恢复动作。Authentication-rejected MCP call仍是agent turn内的error result,不会终止task;Plus不会自动重放结果未知的tool operation。Disconnect会revoke account tokens但保留target identity。OAuth callback failure只在Settings暴露固定、可操作的failure stage;authorization code、state、token、upstream body及任意error text不会进入browser message。
|
|
27
27
|
|
|
28
28
|
-----
|
|
29
29
|
|
|
@@ -58,6 +58,7 @@ Connecting、disconnecting或MCP discovery change可能改变tool-schema prefix
|
|
|
58
58
|
|
|
59
59
|
该开发备注是maintainer working context;shipped behavior、limits及rationale以以上sections、package code及linked Agent Note为准。
|
|
60
60
|
|
|
61
|
-
- `src/index.ts`持有authorization、credentials、access expiry及MCP child lifecycle。`src/client/store.ts`与`src/client/controller.ts`持有shared browser status及OAuth lifecycle;`src/client/DataOpsExpiryModal.tsx`贡献shell prompt,`src/client/DataOpsSection.tsx`贡献Settings。[Distribution Agent Note](../../../.agents/notes/
|
|
61
|
+
- `src/index.ts`持有authorization、credentials、access expiry及MCP child lifecycle。`src/client/store.ts`与`src/client/controller.ts`持有shared browser status及OAuth lifecycle;`src/client/DataOpsExpiryModal.tsx`贡献shell prompt,`src/client/DataOpsSection.tsx`贡献Settings。[Distribution Agent Note](../../../.agents/notes/implemented/architecture/2026-08-29-ranged-plus-patchset-distribution.zh.md)记录package boundary。
|
|
62
|
+
- 该package不发布`./invariant` companion,因为authorization与MCP child lifecycle由各自owner service观测;DataOps不保留这些relation的independent projection。
|
|
62
63
|
|
|
63
64
|
</details>
|
package/lib/client.js
CHANGED
|
@@ -195,8 +195,8 @@ window.__ModuleLoader__.load({
|
|
|
195
195
|
});
|
|
196
196
|
}
|
|
197
197
|
//#endregion
|
|
198
|
-
//#region \0dsh-css:/
|
|
199
|
-
const css = "
|
|
198
|
+
//#region \0dsh-css:/root/projects/deepseek-harness-plus/packages/plus/dataops/src/client/DataOpsSection.module.css.mjs
|
|
199
|
+
const css = ".bkdB6a_section{max-width:720px;color:var(--dsw-alias-label-primary);flex-direction:column;gap:12px;display:flex}.bkdB6a_title{margin:0;font-size:16px;font-weight:500;line-height:24px}.bkdB6a_body{flex-direction:column;gap:14px;display:flex}.bkdB6a_confirmCopy{color:var(--dsw-alias-label-tertiary);margin:0;font-size:14px;line-height:22px}.bkdB6a_statusRow,.bkdB6a_accountRow,.bkdB6a_actions,.bkdB6a_confirmActions{align-items:center;display:flex}.bkdB6a_statusRow{gap:8px;min-height:24px}.bkdB6a_statusLabel{min-width:0;font-size:14px;font-weight:500;line-height:22px}.bkdB6a_accountRow{background:var(--dsw-alias-interactive-bg-hover);border-radius:8px;gap:12px;padding:12px}.bkdB6a_avatar{corner-shape:round;background:var(--dsw-alias-interactive-bg-hover-solid);width:40px;height:40px;color:var(--dsw-alias-label-primary);border-radius:50%;flex:0 0 40px;place-items:center;font-size:14px;font-weight:600;display:grid}.bkdB6a_accountCopy{flex-direction:column;gap:1px;min-width:0;display:flex}.bkdB6a_accountCopy strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;line-height:22px;overflow:hidden}.bkdB6a_accountCopy span{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.bkdB6a_actions,.bkdB6a_confirmActions{flex-wrap:wrap;gap:8px}.bkdB6a_confirmBox{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-interactive-bg-hover);border-radius:8px;flex-direction:column;gap:10px;padding:12px;display:flex}.bkdB6a_confirmTitle{margin:0;font-size:14px;font-weight:500;line-height:22px}.bkdB6a_hint{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:18px}.bkdB6a_error{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px;line-height:18px}@media (width<=560px){.bkdB6a_actions>button,.bkdB6a_confirmActions>button{flex:auto}}";
|
|
200
200
|
const tagId = "@sparkelf/dsh-plugin-dataops/DataOpsSection.module.css";
|
|
201
201
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
|
|
202
202
|
const tag = document.createElement("style");
|
|
@@ -206,21 +206,21 @@ window.__ModuleLoader__.load({
|
|
|
206
206
|
document.head.appendChild(tag);
|
|
207
207
|
}
|
|
208
208
|
var DataOpsSection_module_css_default = {
|
|
209
|
-
"accountCopy": "
|
|
210
|
-
"accountRow": "
|
|
211
|
-
"actions": "
|
|
212
|
-
"avatar": "
|
|
213
|
-
"body": "
|
|
214
|
-
"confirmActions": "
|
|
215
|
-
"confirmBox": "
|
|
216
|
-
"confirmCopy": "
|
|
217
|
-
"confirmTitle": "
|
|
218
|
-
"error": "
|
|
219
|
-
"hint": "
|
|
220
|
-
"section": "
|
|
221
|
-
"statusLabel": "
|
|
222
|
-
"statusRow": "
|
|
223
|
-
"title": "
|
|
209
|
+
"accountCopy": "bkdB6a_accountCopy",
|
|
210
|
+
"accountRow": "bkdB6a_accountRow",
|
|
211
|
+
"actions": "bkdB6a_actions",
|
|
212
|
+
"avatar": "bkdB6a_avatar",
|
|
213
|
+
"body": "bkdB6a_body",
|
|
214
|
+
"confirmActions": "bkdB6a_confirmActions",
|
|
215
|
+
"confirmBox": "bkdB6a_confirmBox",
|
|
216
|
+
"confirmCopy": "bkdB6a_confirmCopy",
|
|
217
|
+
"confirmTitle": "bkdB6a_confirmTitle",
|
|
218
|
+
"error": "bkdB6a_error",
|
|
219
|
+
"hint": "bkdB6a_hint",
|
|
220
|
+
"section": "bkdB6a_section",
|
|
221
|
+
"statusLabel": "bkdB6a_statusLabel",
|
|
222
|
+
"statusRow": "bkdB6a_statusRow",
|
|
223
|
+
"title": "bkdB6a_title"
|
|
224
224
|
};
|
|
225
225
|
//#endregion
|
|
226
226
|
//#region lib/types/client/DataOpsExpiryModal.js
|
|
@@ -489,10 +489,18 @@ window.__ModuleLoader__.load({
|
|
|
489
489
|
//#endregion
|
|
490
490
|
//#region lib/types/client/index.js
|
|
491
491
|
const NS = "settings.dataops";
|
|
492
|
-
/** Client services required for
|
|
493
|
-
const inject = [
|
|
494
|
-
|
|
495
|
-
|
|
492
|
+
/** Client services required for Host activation discovery, Settings, and frame overlays. */
|
|
493
|
+
const inject = [
|
|
494
|
+
"slots",
|
|
495
|
+
"locale",
|
|
496
|
+
"remote",
|
|
497
|
+
"remote.pluginInventory"
|
|
498
|
+
];
|
|
499
|
+
/** 仅在Host inventory确认对应plugin有效启用时注册browser contributions。 */
|
|
500
|
+
async function apply(ctx) {
|
|
501
|
+
const result = await ctx.remote.pluginInventory.list();
|
|
502
|
+
if (!result.ok) throw new Error(`pluginInventory.list failed: ${result.error.code}: ${result.error.message}`);
|
|
503
|
+
if (!result.value.entries.some((entry) => entry.moduleName === "@sparkelf/dsh-plugin-dataops" && entry.enabled)) return;
|
|
496
504
|
ctx.effect(() => ctx.locale.register(NS, {
|
|
497
505
|
zh,
|
|
498
506
|
en
|
package/lib/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { createHash, randomBytes } from "node:crypto";
|
|
|
2
2
|
import { MAX_TIMER_DELAY_MS } from "@deepseek-ai/dsh-timeout";
|
|
3
3
|
import z from "@deepseek-ai/schemastery";
|
|
4
4
|
import { credentialRef } from "@deepseek-ai/dsh-credentials";
|
|
5
|
-
import
|
|
5
|
+
import { Config as Config$1, apply as apply$1, inject as inject$1, name as name$1 } from "@sparkelf/dsh-plugin-mcp-credentials";
|
|
6
6
|
//#region lib/types/index.js
|
|
7
7
|
/**
|
|
8
8
|
* Standalone DataOps MCP integration. It owns one persistent DSH target
|
|
@@ -10,6 +10,12 @@ import * as McpClient from "@sparkelf/dsh-plugin-mcp-credentials";
|
|
|
10
10
|
* authenticated MCP client for the target's immutable principal.
|
|
11
11
|
* @module @sparkelf/dsh-plugin-dataops
|
|
12
12
|
*/
|
|
13
|
+
const McpClient = {
|
|
14
|
+
name: name$1,
|
|
15
|
+
inject: inject$1,
|
|
16
|
+
Config: Config$1,
|
|
17
|
+
apply: apply$1
|
|
18
|
+
};
|
|
13
19
|
/** Cordis plugin name for the standalone DataOps integration. */
|
|
14
20
|
const name = "mcp-dataops";
|
|
15
21
|
/** Services required by the standalone authorization and MCP composition. */
|
|
@@ -5,8 +5,8 @@ declare module '@deepseek-ai/dsh-client-ui-slots' {
|
|
|
5
5
|
'settings.dataops': DataOpsKey;
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
/** Client services required for
|
|
8
|
+
/** Client services required for Host activation discovery, Settings, and frame overlays. */
|
|
9
9
|
export declare const inject: string[];
|
|
10
|
-
/**
|
|
11
|
-
export declare function apply(ctx: Context): void
|
|
10
|
+
/** 仅在Host inventory确认对应plugin有效启用时注册browser contributions。 */
|
|
11
|
+
export declare function apply(ctx: Context): Promise<void>;
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,92 +1,88 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
|
|
4
|
-
"version": "0.1.0-rc.9",
|
|
5
|
-
"publishConfig": {
|
|
6
|
-
"access": "public"
|
|
7
|
-
},
|
|
8
|
-
"repository": {
|
|
9
|
-
"type": "git",
|
|
10
|
-
"url": "git+https://github.com/SparkElf/deepseek-harness-plus.git",
|
|
11
|
-
"directory": "packages/plus/dataops"
|
|
2
|
+
"dependencies": {
|
|
3
|
+
"@deepseek-ai/schemastery": ">=3.18.1"
|
|
12
4
|
},
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"
|
|
5
|
+
"description": "Standalone DataOps MCP integration with delegated browser authorization and Settings UI",
|
|
6
|
+
"devDependencies": {
|
|
7
|
+
"@deepseek-ai/cordis": "^4.0.2",
|
|
8
|
+
"@deepseek-ai/dsh-api-remotes": "^0.1.6-alpha.1",
|
|
9
|
+
"@deepseek-ai/dsh-brand": "^0.1.6-alpha.1",
|
|
10
|
+
"@deepseek-ai/dsh-client-connection": "^0.1.6-alpha.1",
|
|
11
|
+
"@deepseek-ai/dsh-client-locale": "^0.1.6-alpha.1",
|
|
12
|
+
"@deepseek-ai/dsh-client-store": "^0.1.6-alpha.1",
|
|
13
|
+
"@deepseek-ai/dsh-client-ui-layout": "^0.1.6-alpha.1",
|
|
14
|
+
"@deepseek-ai/dsh-client-ui-primitives": "^0.1.6-alpha.1",
|
|
15
|
+
"@deepseek-ai/dsh-client-ui-renderer": "^0.1.6-alpha.1",
|
|
16
|
+
"@deepseek-ai/dsh-client-ui-settings": "^0.1.6-alpha.1",
|
|
17
|
+
"@deepseek-ai/dsh-client-ui-slots": "^0.1.6-alpha.1",
|
|
18
|
+
"@deepseek-ai/dsh-credentials": "^0.1.6-alpha.1",
|
|
19
|
+
"@deepseek-ai/dsh-host-webserver": "^0.1.6-alpha.1",
|
|
20
|
+
"@deepseek-ai/dsh-timeout": "^0.1.6-alpha.1",
|
|
21
|
+
"@deepseek-ai/dsh-tools": "^0.1.6-alpha.1",
|
|
22
|
+
"@sparkelf/dsh-plugin-mcp-credentials": "^0.2.0-rc.10",
|
|
23
|
+
"@types/react": "~18.3.1",
|
|
24
|
+
"react": "^18.2.0"
|
|
30
25
|
},
|
|
31
26
|
"dsh": {
|
|
32
27
|
"client": {
|
|
33
|
-
"platform": "web",
|
|
34
28
|
"inject": [
|
|
29
|
+
"@deepseek-ai/dsh-api-remotes",
|
|
35
30
|
"@deepseek-ai/dsh-client-connection",
|
|
36
31
|
"@deepseek-ai/dsh-client-locale",
|
|
37
32
|
"@deepseek-ai/dsh-client-ui-layout",
|
|
38
33
|
"@deepseek-ai/dsh-client-ui-settings",
|
|
39
34
|
"@deepseek-ai/dsh-client-ui-renderer"
|
|
40
|
-
]
|
|
35
|
+
],
|
|
36
|
+
"platform": "web"
|
|
41
37
|
}
|
|
42
38
|
},
|
|
39
|
+
"exports": {
|
|
40
|
+
".": {
|
|
41
|
+
"default": "./lib/index.js",
|
|
42
|
+
"types": "./lib/types/index.d.ts"
|
|
43
|
+
},
|
|
44
|
+
"./client": {
|
|
45
|
+
"default": "./lib/client.js",
|
|
46
|
+
"types": "./lib/types/client/index.d.ts"
|
|
47
|
+
},
|
|
48
|
+
"./package.json": "./package.json"
|
|
49
|
+
},
|
|
43
50
|
"files": [
|
|
44
51
|
"lib/index.js",
|
|
45
|
-
"lib/invariant.js",
|
|
46
52
|
"lib/client.js",
|
|
47
53
|
"lib/types/**/*.d.ts"
|
|
48
54
|
],
|
|
49
55
|
"license": "MIT",
|
|
56
|
+
"main": "lib/index.js",
|
|
57
|
+
"name": "@sparkelf/dsh-plugin-dataops",
|
|
50
58
|
"peerDependencies": {
|
|
51
59
|
"@deepseek-ai/cordis": ">=4.0.1",
|
|
52
|
-
"@deepseek-ai/dsh-
|
|
53
|
-
"@deepseek-ai/dsh-
|
|
54
|
-
"@deepseek-ai/dsh-client-
|
|
55
|
-
"@deepseek-ai/dsh-client-
|
|
56
|
-
"@deepseek-ai/dsh-client-ui-
|
|
57
|
-
"@deepseek-ai/dsh-client-ui-
|
|
58
|
-
"@deepseek-ai/dsh-
|
|
59
|
-
"@deepseek-ai/dsh-
|
|
60
|
-
"@deepseek-ai/dsh-
|
|
61
|
-
"@deepseek-ai/dsh-timeout": "
|
|
62
|
-
"@deepseek-ai/dsh-tools": "
|
|
63
|
-
"@sparkelf/dsh-plugin-mcp-credentials": "
|
|
60
|
+
"@deepseek-ai/dsh-api-remotes": "^0.1.6-alpha.1",
|
|
61
|
+
"@deepseek-ai/dsh-brand": "^0.1.6-alpha.1",
|
|
62
|
+
"@deepseek-ai/dsh-client-connection": "^0.1.6-alpha.1",
|
|
63
|
+
"@deepseek-ai/dsh-client-locale": "^0.1.6-alpha.1",
|
|
64
|
+
"@deepseek-ai/dsh-client-ui-layout": "^0.1.6-alpha.1",
|
|
65
|
+
"@deepseek-ai/dsh-client-ui-renderer": "^0.1.6-alpha.1",
|
|
66
|
+
"@deepseek-ai/dsh-client-ui-settings": "^0.1.6-alpha.1",
|
|
67
|
+
"@deepseek-ai/dsh-credentials": "^0.1.6-alpha.1",
|
|
68
|
+
"@deepseek-ai/dsh-host-webserver": "^0.1.6-alpha.1",
|
|
69
|
+
"@deepseek-ai/dsh-timeout": "^0.1.6-alpha.1",
|
|
70
|
+
"@deepseek-ai/dsh-tools": "^0.1.6-alpha.1",
|
|
71
|
+
"@sparkelf/dsh-plugin-mcp-credentials": "^0.2.0-rc.10"
|
|
64
72
|
},
|
|
65
|
-
"
|
|
66
|
-
"
|
|
73
|
+
"publishConfig": {
|
|
74
|
+
"access": "public"
|
|
67
75
|
},
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"@deepseek-ai/dsh-brand": "^0.1.2-alpha.1",
|
|
73
|
-
"@deepseek-ai/dsh-client-connection": "^0.1.2-alpha.1",
|
|
74
|
-
"@deepseek-ai/dsh-client-locale": "^0.1.2-alpha.1",
|
|
75
|
-
"@deepseek-ai/dsh-client-store": "^0.1.2-alpha.1",
|
|
76
|
-
"@deepseek-ai/dsh-client-ui-layout": "^0.1.2-alpha.1",
|
|
77
|
-
"@deepseek-ai/dsh-client-ui-primitives": "^0.1.2-alpha.1",
|
|
78
|
-
"@deepseek-ai/dsh-client-ui-renderer": "^0.1.2-alpha.1",
|
|
79
|
-
"@deepseek-ai/dsh-client-ui-settings": "^0.1.2-alpha.1",
|
|
80
|
-
"@deepseek-ai/dsh-client-ui-slots": "^0.1.2-alpha.1",
|
|
81
|
-
"@deepseek-ai/dsh-credentials": "^0.1.2-alpha.1",
|
|
82
|
-
"@deepseek-ai/dsh-host-webserver": "^0.1.2-alpha.1",
|
|
83
|
-
"@deepseek-ai/dsh-invariants": "^0.1.2-alpha.1",
|
|
84
|
-
"@deepseek-ai/dsh-timeout": "^0.1.2-alpha.1",
|
|
85
|
-
"@deepseek-ai/dsh-tools": "^0.1.2-alpha.1",
|
|
86
|
-
"@sparkelf/dsh-plugin-mcp-credentials": "^0.1.0-rc.9"
|
|
76
|
+
"repository": {
|
|
77
|
+
"directory": "packages/plus/dataops",
|
|
78
|
+
"type": "git",
|
|
79
|
+
"url": "git+https://github.com/deepseek-ai/deepseek-harness.git"
|
|
87
80
|
},
|
|
88
81
|
"scripts": {
|
|
89
82
|
"bundle": "tsdown",
|
|
90
83
|
"watch": "tsdown --watch"
|
|
91
|
-
}
|
|
92
|
-
|
|
84
|
+
},
|
|
85
|
+
"type": "module",
|
|
86
|
+
"types": "lib/types/index.d.ts",
|
|
87
|
+
"version": "0.2.0-rc.10"
|
|
88
|
+
}
|
package/lib/invariant.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
//#region lib/types/invariant.js
|
|
2
|
-
const PACKAGE_NAME = "@sparkelf/dsh-plugin-dataops";
|
|
3
|
-
/** Cordis plugin name for the DataOps invariant companion. */
|
|
4
|
-
const name = "mcp-dataops-invariant";
|
|
5
|
-
/** Services required to register the package invariant installer. */
|
|
6
|
-
const inject = ["invariants"];
|
|
7
|
-
/** No runtime invariant: the package owns browser OAuth handoff and a child mcp-client fiber, not a separate durable projection. */
|
|
8
|
-
const install = () => {};
|
|
9
|
-
/**
|
|
10
|
-
* Register the package's explained empty invariant installer.
|
|
11
|
-
* @param ctx - Cordis context with the invariant registry.
|
|
12
|
-
* @returns The registration disposer.
|
|
13
|
-
*/
|
|
14
|
-
const apply = (ctx) => Promise.resolve(ctx.invariants.register(PACKAGE_NAME, install));
|
|
15
|
-
//#endregion
|
|
16
|
-
export { apply, inject, name };
|
package/lib/types/invariant.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/** Package-owned invariant companion for `@sparkelf/dsh-plugin-dataops`. */
|
|
2
|
-
import type { Context } from '@deepseek-ai/cordis';
|
|
3
|
-
/** Cordis plugin name for the DataOps invariant companion. */
|
|
4
|
-
export declare const name = "mcp-dataops-invariant";
|
|
5
|
-
/** Services required to register the package invariant installer. */
|
|
6
|
-
export declare const inject: string[];
|
|
7
|
-
/**
|
|
8
|
-
* Register the package's explained empty invariant installer.
|
|
9
|
-
* @param ctx - Cordis context with the invariant registry.
|
|
10
|
-
* @returns The registration disposer.
|
|
11
|
-
*/
|
|
12
|
-
export declare const apply: (ctx: Context) => Promise<() => void>;
|
|
13
|
-
//# sourceMappingURL=invariant.d.ts.map
|