@sparkelf/dsh-dataops-managed 0.3.14 → 0.3.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,5 @@
1
1
  import type { InjectFace } from '@deepseek-ai/dsh-client-ui-slots';
2
2
  import type { en } from './locales.ts';
3
- import { MODEL_SYNC_PATH } from './model-sync-client.ts';
4
3
  /** Values injected by the DSH Settings slot. */
5
4
  export interface ManagedDataOpsSectionInjected {
6
5
  /** Translate one managed DataOps Settings message key. */
@@ -9,10 +8,9 @@ export interface ManagedDataOpsSectionInjected {
9
8
  /** Props accepted by the managed DataOps Settings section. */
10
9
  export type ManagedDataOpsSectionProps = Partial<InjectFace<ManagedDataOpsSectionInjected>>;
11
10
  /**
12
- * Explain the DataOps-managed JWT and permission owner, and share model configuration.
11
+ * The DataOps settings this workspace owns: its connection state, its branding, its file ceilings,
12
+ * and the default configuration it publishes to other workspaces.
13
13
  * @param props - Settings slot injection values.
14
14
  * @returns The localized managed DataOps section, or nothing before injection.
15
15
  */
16
16
  export declare function ManagedDataOpsSection(props: ManagedDataOpsSectionProps): import("react").JSX.Element | null;
17
- /** Re-exported so the settings entry can be discovered from the section alone. */
18
- export { MODEL_SYNC_PATH };
@@ -2,27 +2,23 @@
2
2
  export declare const en: {
3
3
  readonly nav: "DataOps";
4
4
  readonly title: "DataOps";
5
- readonly managed: "Managed by this DataOps workspace";
6
- readonly description: "DSH uses your current DataOps session JWT. DataOps applies its role and resource permissions to every tool request.";
7
- readonly identityLabel: "Identity and permissions";
8
- readonly identityValue: "Current DataOps JWT";
9
- readonly toolsLabel: "DataOps tools";
10
- readonly toolsValue: "Authorized by DataOps on every request";
11
- readonly brandingTitle: "Apply Wanxiang branding";
12
- readonly brandingDescription: "Use the Wanxiang Data Platform identity in navigation, the New Session welcome view, browser title, and favicon.";
13
- readonly brandingToggle: "Apply Wanxiang branding";
14
- readonly modelsTitle: "Model configuration";
15
- readonly modelsDescription: "Share the models configured here with other users, and choose which of them they may use.";
16
- readonly modelsUnavailable: "Model configuration is unavailable until this workspace is connected to DataOps.";
5
+ readonly managed: "Connected to DataOps";
6
+ readonly unavailable: "DataOps is not connected.";
7
+ readonly loadFailed: "Loading failed. Try again.";
8
+ readonly brandingTitle: "Wanxiang branding";
9
+ readonly brandingToggle: "Wanxiang branding";
10
+ readonly limitsTitle: "File size limits";
11
+ readonly limitsFileReadLabel: "Largest file to read (MiB)";
12
+ readonly limitsUploadLabel: "Largest file to upload (MiB)";
13
+ readonly limitsInvalid: "Enter a size in MiB.";
14
+ readonly limitsSave: "Save";
15
+ readonly limitsSaving: "Saving…";
17
16
  readonly defaultsTitle: "Default configuration";
18
- readonly defaultsDescription: "Publish the configuration this workspace holds — models, permissions, and general settings — as the values other users start from. Their workspace takes that copy once and may then change anything, and a change they make is never overwritten.";
19
- readonly defaultsActionTitle: "Publish as the default";
20
- readonly defaultsNotAdmin: "Only an administrator may publish the default configuration.";
21
- readonly defaultsNeverPublished: "Not published yet.";
22
- readonly defaultsPublishedAt: "Last published:";
23
- readonly defaultsPublish: "Publish default configuration";
17
+ readonly defaultsPublish: "Publish";
24
18
  readonly defaultsPublishing: "Publishing…";
25
- readonly loadFailed: "The model configuration could not be loaded. Try again.";
19
+ readonly defaultsPublishedAt: "Last published";
20
+ readonly defaultsNeverPublished: "Not published yet";
21
+ readonly defaultsNotAdmin: "Administrators only";
26
22
  readonly plazaTitle: "Skill plaza";
27
23
  readonly plazaIntro: "Skills other users shared. Install one to use it in this workspace, or share a skill of your own.";
28
24
  readonly plazaSearch: "Search skills";
@@ -39,14 +35,6 @@ export declare const en: {
39
35
  readonly plazaActionFailed: "The action could not be completed. Try again.";
40
36
  readonly plazaRetry: "Try again";
41
37
  readonly plazaRefresh: "Refresh";
42
- readonly limitsTitle: "Workspace limits";
43
- readonly limitsDescription: "The largest files this workspace may read and upload. Set by an administrator in DataOps.";
44
- readonly limitsUnavailable: "Workspace limits are available once this workspace is connected to DataOps.";
45
- readonly limitsFileReadLabel: "Largest file to read";
46
- readonly limitsUploadLabel: "Largest file to upload";
47
- readonly limitsUnit: "Units are MiB.";
48
- readonly limitsSave: "Save limits";
49
- readonly limitsSaving: "Saving…";
50
38
  };
51
39
  /** Stable key set shared by every managed DataOps locale. */
52
40
  export type ManagedDataOpsKey = keyof typeof en;
@@ -14,6 +14,15 @@ export interface WorkspaceLimitsStatus {
14
14
  canWrite: boolean;
15
15
  readOnlyReason: string | null;
16
16
  }
17
+ /**
18
+ * A write DataOps refused, carrying the reason it gave.
19
+ *
20
+ * The message is written for the person who set the value, so the panel shows it as-is rather
21
+ * than replacing it with a generic failure notice.
22
+ */
23
+ export declare class WorkspaceLimitsRejection extends Error {
24
+ constructor(message: string);
25
+ }
17
26
  /**
18
27
  * Read the workspace limits the panel shows.
19
28
  * @returns The status, or null when the workspace is not connected to DataOps.
@@ -25,6 +25,18 @@ export declare function currentModelSync(): ModelSync | undefined;
25
25
  export { currentWorkspaceLimits };
26
26
  /** @returns The live instance, or undefined before this plugin activated. */
27
27
  export declare function currentSettingsSync(): SettingsSync | undefined;
28
+ /**
29
+ * A volatile config reference.
30
+ *
31
+ * A field marked volatile is not stored with the plugin's own configuration: the settings
32
+ * service keeps it in this workspace's document and hands the plugin a reference that it
33
+ * updates in place, so a value written through the Settings panel is visible without a
34
+ * restart. Reading the field directly therefore reads the reference, not the value.
35
+ */
36
+ interface VolatileRef<T> {
37
+ /** The current value behind the reference. */
38
+ get(): T;
39
+ }
28
40
  /** Configuration for the DataOps-managed MCP connection. */
29
41
  export interface Config {
30
42
  /** DataOps browser/API origin reachable from the DSH Host. */
@@ -33,23 +45,32 @@ export interface Config {
33
45
  serverName: string;
34
46
  /** DSH credential reference that stores the current DataOps access JWT. */
35
47
  credentialRef: string;
36
- /** Per-tool-call timeout forwarded to the MCP client. */
37
- toolCallTimeoutMs: number;
48
+ /**
49
+ * Per-tool-call timeout forwarded to the MCP client.
50
+ *
51
+ * Volatile, so the settings service stores the platform default in this workspace's document
52
+ * and the panel can raise it without a profile edit. The read goes through `volatileValue`.
53
+ */
54
+ toolCallTimeoutMs: number | VolatileRef<number>;
38
55
  /**
39
56
  * Model-sync state this workspace keeps.
40
57
  *
41
58
  * Volatile, so the settings service stores it in this workspace's own document. It belongs
42
59
  * to the workspace rather than to DataOps because it records whether the user here wrote
43
60
  * their own models, which is a fact about this workspace.
61
+ *
62
+ * Volatile, so the runtime supplies a reference and the read goes through `volatileValue`.
44
63
  */
45
- modelSync: ModelSyncState;
64
+ modelSync: ModelSyncState | VolatileRef<ModelSyncState>;
46
65
  /**
47
66
  * Settings-distribution state this workspace keeps.
48
67
  *
49
68
  * Volatile, like the model-sync state beside it, and for the same reason: it records whether
50
69
  * the user here wrote their own values, which is a fact about this workspace.
70
+ *
71
+ * Volatile, like the field above, so the read goes through `volatileValue`.
51
72
  */
52
- settingsSync: SectionSyncState;
73
+ settingsSync: SectionSyncState | VolatileRef<SectionSyncState>;
53
74
  /**
54
75
  * Settings namespaces this deployment distributes to other workspaces.
55
76
  *
@@ -67,6 +88,14 @@ export interface ModelSyncState {
67
88
  /** Model ids the administrator keeps private; every other model is offered by default. */
68
89
  privateModelIds: string[];
69
90
  }
91
+ /**
92
+ * Per-tool-call timeout a workspace starts with.
93
+ *
94
+ * Named rather than inlined so the schema default and the read fallback cannot drift: the field is
95
+ * volatile, so a workspace that never changed it reads no value at all and both places have to
96
+ * answer the same number.
97
+ */
98
+ export declare const DEFAULT_TOOL_CALL_TIMEOUT_MS = 300000;
70
99
  /** Schemastery parser for managed DataOps configuration. */
71
100
  export declare const Config: z<Config>;
72
101
  /**
@@ -23,6 +23,19 @@ export interface WorkspaceLimitsConfig {
23
23
  /** DSH credential reference holding the current DataOps access JWT. */
24
24
  credentialRef: string;
25
25
  }
26
+ /**
27
+ * A rejection DataOps answered with, carrying its status and message.
28
+ *
29
+ * Without this the caller can only tell that something failed, and a value DataOps refused —
30
+ * which the user can correct — is indistinguishable from a fault in the request path.
31
+ */
32
+ export declare class WorkspaceLimitsRejection extends Error {
33
+ /** HTTP status DataOps answered with. */
34
+ readonly status: number;
35
+ constructor(
36
+ /** HTTP status DataOps answered with. */
37
+ status: number, message: string);
38
+ }
26
39
  /**
27
40
  * The workspace limits an administrator sets in DataOps.
28
41
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sparkelf/dsh-dataops-managed",
3
- "version": "0.3.14",
3
+ "version": "0.3.15",
4
4
  "description": "DataOps JWT intake and credential-backed MCP tools for managed DeepSeek Harness workspaces.",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -73,7 +73,7 @@
73
73
  "@deepseek-ai/dsh-settings": ">=0.1.7-rc.2",
74
74
  "@deepseek-ai/dsh-skill": ">=0.2.0-rc.2",
75
75
  "@deepseek-ai/dsh-tools": ">=0.1.7-rc.2",
76
- "@deepseek-ai/schemastery": ">=3.18.1",
76
+ "@deepseek-ai/schemastery": ">=3.18.4",
77
77
  "@sparkelf/dsh-plugin-mcp-credentials": ">=0.1.0-rc.14",
78
78
  "react": ">=18.2.0 <20"
79
79
  },
@@ -91,7 +91,7 @@
91
91
  "@deepseek-ai/dsh-settings": "0.1.7-rc.2",
92
92
  "@deepseek-ai/dsh-skill": "0.2.0-rc.2",
93
93
  "@deepseek-ai/dsh-tools": "0.1.7-rc.2",
94
- "@deepseek-ai/schemastery": "3.18.2",
94
+ "@deepseek-ai/schemastery": "3.18.4",
95
95
  "@sparkelf/dsh-client-ui-skill-center": "0.2.0-rc.46",
96
96
  "@sparkelf/dsh-plugin-mcp-credentials": "0.1.0-rc.14",
97
97
  "@types/react": "~18.3.1",