@ran-sh/dsh-crew 1.9.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +16 -16
- package/.claude-plugin/plugin.json +14 -14
- package/LICENSE +21 -21
- package/README.de.md +359 -359
- package/README.es.md +359 -359
- package/README.fr.md +359 -359
- package/README.hi.md +359 -359
- package/README.id.md +359 -359
- package/README.ja.md +359 -359
- package/README.ko.md +359 -359
- package/README.md +126 -126
- package/README.pt.md +359 -359
- package/README.ru.md +359 -359
- package/README.th.md +359 -359
- package/README.tr.md +359 -359
- package/README.vi.md +359 -359
- package/README.zh-TW.md +359 -359
- package/README.zh.md +116 -116
- package/agents/ds-flash.md +24 -24
- package/agents/ds-pro.md +24 -24
- package/agents/ds-reviewer.md +23 -23
- package/agents/ds-worker.md +23 -23
- package/bin/dsh-crew.mjs +16 -16
- package/codex/agents/ds-flash.toml +34 -34
- package/codex/agents/ds-pro.toml +34 -34
- package/codex/agents/ds-reviewer.toml +32 -32
- package/codex/agents/ds-worker.toml +32 -32
- package/codex/prompts/dsh-config.md +19 -19
- package/codex/prompts/dsh-status.md +5 -5
- package/commands/config.md +23 -23
- package/commands/off.md +5 -5
- package/commands/on.md +5 -5
- package/commands/status.md +9 -9
- package/cordis.patch.yml +4 -4
- package/docs/gpt-relay-extension.md +103 -103
- package/docs/installation.md +138 -138
- package/docs/job-contracts.md +103 -103
- package/docs/readiness-matrix.md +85 -85
- package/docs/ui-surfaces.md +107 -107
- package/official-web-bridge/cordis.patch.yml +4 -4
- package/official-web-bridge/entry.mjs +1 -1
- package/official-web-bridge/overlay-entry.mjs +59 -59
- package/official-web-bridge/package.json +25 -25
- package/package.json +3 -2
- package/scripts/build-client.mjs +49 -49
- package/scripts/live-crew-smoke.mjs +39 -39
- package/scripts/live-policy-matrix.mjs +177 -177
- package/scripts/policy-probe.mjs +101 -101
- package/scripts/remove-legacy-official-bridge.ps1 +89 -89
- package/scripts/setup.mjs +393 -393
- package/scripts/smoke-real.mjs +110 -110
- package/scripts/smoke.mjs +78 -78
- package/scripts/verify-crew-ui-polish.mjs +145 -145
- package/scripts/verify-history-ui.mjs +97 -97
- package/scripts/verify-installer-fix.mjs +26 -26
- package/scripts/verify-npm-install.mjs +311 -311
- package/scripts/verify-official-bridge-e2e.mjs +192 -192
- package/src/adaptive-routing.mjs +260 -260
- package/src/client/activation-summary.tsx +64 -64
- package/src/client/collapsible-sections.mjs +55 -55
- package/src/client/history-panel.tsx +108 -108
- package/src/client/host-readiness.mjs +71 -71
- package/src/client/index.tsx +1711 -1711
- package/src/client/model-callability-view.mjs +17 -17
- package/src/client/panel-chrome.tsx +40 -40
- package/src/client/quick-entry.tsx +10 -10
- package/src/client/quick-panel.tsx +275 -275
- package/src/client/readiness-envelope.mjs +34 -34
- package/src/client/surface-detection.mjs +43 -43
- package/src/config-readiness.mjs +226 -226
- package/src/credential-reference.mjs +38 -38
- package/src/delivery.mjs +205 -205
- package/src/dsh-cli-runtime.mjs +1021 -1021
- package/src/dsh-cohort.mjs +20 -20
- package/src/extension-contract.mjs +104 -104
- package/src/failure-classification.mjs +201 -201
- package/src/history/admission-gate.mjs +67 -67
- package/src/history/archive-store.mjs +272 -272
- package/src/history/cleanup-plan.mjs +89 -89
- package/src/history/http.mjs +32 -32
- package/src/history/operation.mjs +86 -86
- package/src/history/runner-detach.mjs +34 -34
- package/src/history/runner.mjs +52 -52
- package/src/history/runtime.mjs +36 -36
- package/src/history/service.mjs +177 -177
- package/src/history/state.mjs +27 -27
- package/src/hub/entry.mjs +104 -104
- package/src/hub/index.mjs +2694 -2694
- package/src/hub-client.mjs +154 -154
- package/src/hub-compatibility.mjs +42 -42
- package/src/i18n.mjs +19 -19
- package/src/information-flow.mjs +67 -67
- package/src/install/cli.mjs +28 -28
- package/src/install/install-legacy.mjs +711 -711
- package/src/install/install.mjs +483 -483
- package/src/install/npx-lifecycle.mjs +3456 -3456
- package/src/install/official-frontend-assets.mjs +78 -78
- package/src/install/official-web.mjs +95 -95
- package/src/install/payload-content.mjs +88 -88
- package/src/install/windows-startup.mjs +236 -236
- package/src/install/windows-supervisor-adapter.mjs +443 -443
- package/src/install/windows-supervisor-lifecycle.mjs +782 -782
- package/src/install/zcode.mjs +397 -397
- package/src/job-contracts.mjs +255 -255
- package/src/local-request-guard.mjs +60 -60
- package/src/mcp-runtime.mjs +340 -340
- package/src/model-callability-contract.mjs +79 -79
- package/src/model-catalog.mjs +180 -180
- package/src/model-routing.mjs +586 -586
- package/src/model-schedule.mjs +207 -207
- package/src/official-web-bridge.mjs +447 -447
- package/src/policy.mjs +235 -235
- package/src/provider-delete-adapters.mjs +1934 -1934
- package/src/provider-health.mjs +130 -130
- package/src/provider-inventory.mjs +182 -182
- package/src/provider-layer-migration-adapters.mjs +759 -759
- package/src/provider-layer-migration.mjs +198 -198
- package/src/provider-lifecycle-state.mjs +103 -103
- package/src/provider-lifecycle.mjs +252 -252
- package/src/provider-profile-store.mjs +390 -390
- package/src/provider-settings-store.mjs +633 -633
- package/src/provider-store-lock.mjs +67 -67
- package/src/readiness-matrix.mjs +181 -181
- package/src/removable-waiter.mjs +29 -29
- package/src/role-profiles.mjs +107 -107
- package/src/runtime-controls.mjs +84 -84
- package/src/runtime-identity-contract.mjs +34 -34
- package/src/runtime-identity.mjs +235 -235
- package/src/runtime-readiness-snapshot.mjs +285 -285
- package/src/server.mjs +581 -581
- package/src/session-origins.mjs +60 -60
- package/src/standalone-sdk.mjs +23 -23
- package/src/status-shard.mjs +63 -63
- package/src/structured-error-code.mjs +38 -38
- package/src/supervisor/restart-request.mjs +256 -256
- package/src/workflow-runtime.mjs +739 -739
- package/src/workflow.mjs +155 -155
- package/src/workspace-audit.mjs +231 -231
- package/src/workspace-context.mjs +146 -146
- package/src/workspace-isolation.mjs +463 -455
- package/src/workspace-readiness.mjs +32 -32
- package/statusline/statusline.sh +14 -14
- package/statusline/worker-segment.sh +35 -35
- package/windows/start-dsh-crew.cmd +57 -57
- package/windows/start-dsh-crew.ps1 +1302 -1302
- package/windows/supervisor-control.ps1 +467 -467
- package/worker.cordis.yml +67 -67
- package/zcode/agents/ds-reviewer.md +31 -31
- package/zcode/agents/ds-worker.md +31 -31
- package/zcode/commands/dsh-config.md +17 -17
- package/zcode/commands/dsh-status.md +5 -5
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
// Pure client projection for the server-owned model_callability contract.
|
|
2
|
-
// The client must never infer current callability from historical matrix rows.
|
|
3
|
-
|
|
4
|
-
import { READINESS_STATES } from './host-readiness.mjs';
|
|
5
|
-
import { validateModelCallabilityV2 } from '../model-callability-contract.mjs';
|
|
6
|
-
|
|
7
|
-
export function modelCallabilityState(projection, runtime = null, now = Date.now()) {
|
|
8
|
-
if (!projection || typeof projection !== 'object' || typeof projection.overall !== 'string') {
|
|
9
|
-
return READINESS_STATES.UNKNOWN;
|
|
10
|
-
}
|
|
11
|
-
const validation = validateModelCallabilityV2({ projection, runtime, now });
|
|
12
|
-
if (!validation.ok) return READINESS_STATES.UNKNOWN;
|
|
13
|
-
if (validation.state === 'CALLABLE') return READINESS_STATES.READY;
|
|
14
|
-
if (validation.state === 'NOT_CALLABLE') return READINESS_STATES.UNAVAILABLE;
|
|
15
|
-
if (validation.state === 'STALE') return READINESS_STATES.DEGRADED;
|
|
16
|
-
return READINESS_STATES.UNKNOWN;
|
|
17
|
-
}
|
|
1
|
+
// Pure client projection for the server-owned model_callability contract.
|
|
2
|
+
// The client must never infer current callability from historical matrix rows.
|
|
3
|
+
|
|
4
|
+
import { READINESS_STATES } from './host-readiness.mjs';
|
|
5
|
+
import { validateModelCallabilityV2 } from '../model-callability-contract.mjs';
|
|
6
|
+
|
|
7
|
+
export function modelCallabilityState(projection, runtime = null, now = Date.now()) {
|
|
8
|
+
if (!projection || typeof projection !== 'object' || typeof projection.overall !== 'string') {
|
|
9
|
+
return READINESS_STATES.UNKNOWN;
|
|
10
|
+
}
|
|
11
|
+
const validation = validateModelCallabilityV2({ projection, runtime, now });
|
|
12
|
+
if (!validation.ok) return READINESS_STATES.UNKNOWN;
|
|
13
|
+
if (validation.state === 'CALLABLE') return READINESS_STATES.READY;
|
|
14
|
+
if (validation.state === 'NOT_CALLABLE') return READINESS_STATES.UNAVAILABLE;
|
|
15
|
+
if (validation.state === 'STALE') return READINESS_STATES.DEGRADED;
|
|
16
|
+
return READINESS_STATES.UNKNOWN;
|
|
17
|
+
}
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import type { ReactNode } from 'react';
|
|
2
|
-
|
|
3
|
-
// Scoped to Crew panels: the official application's settings shell is untouched.
|
|
4
|
-
export function PanelStyles() {
|
|
5
|
-
return <style>{`
|
|
6
|
-
.dsh-crew-ui { --crew-line: rgba(128,128,128,.24); --crew-soft: rgba(128,128,128,.045); --crew-accent: #2563eb; font-size: 13px; line-height: 1.55; min-width: 0; }
|
|
7
|
-
.dsh-crew-ui *, .dsh-crew-ui *::before, .dsh-crew-ui *::after { box-sizing: border-box; }
|
|
8
|
-
.dsh-crew-ui .crew-panel-header { border: 1px solid var(--crew-line); border-radius: 12px; padding: 16px; background: var(--crew-soft); display: flex; flex-wrap: wrap; align-items: flex-start; gap: 12px 16px; }
|
|
9
|
-
.dsh-crew-ui .crew-panel-heading { flex: 1 1 260px; min-width: 0; }
|
|
10
|
-
.dsh-crew-ui .crew-eyebrow { font-size: 10.5px; letter-spacing: .055em; opacity: .65; margin-bottom: 4px; }
|
|
11
|
-
.dsh-crew-ui .crew-panel-title { margin: 0; font-size: 19px; font-weight: 680; line-height: 1.3; letter-spacing: -.025em; }
|
|
12
|
-
.dsh-crew-ui .crew-panel-description { margin: 5px 0 0; font-size: 12px; opacity: .72; overflow-wrap: anywhere; }
|
|
13
|
-
.dsh-crew-ui .crew-panel-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
|
|
14
|
-
.dsh-crew-ui .crew-nav-link { display: inline-flex; align-items: center; justify-content: center; color: var(--crew-accent); background: transparent; border: 1px solid var(--crew-line); border-radius: 8px; padding: 7px 10px; font-size: 12px; font-weight: 600; text-decoration: none; flex-shrink: 0; }
|
|
15
|
-
.dsh-crew-ui button:focus-visible, .dsh-crew-ui a:focus-visible, .dsh-crew-ui input:focus-visible, .dsh-crew-ui summary:focus-visible { outline: 2px solid var(--crew-accent); outline-offset: 3px; }
|
|
16
|
-
.dsh-crew-ui button:disabled { cursor: not-allowed; opacity: .4; }
|
|
17
|
-
.dsh-crew-ui .crew-nav-link:hover, .dsh-crew-ui .crew-section-trigger:hover, .dsh-crew-ui summary:hover { background: rgba(128,128,128,.09); }
|
|
18
|
-
.dsh-crew-ui .crew-section-heading { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
|
|
19
|
-
.dsh-crew-ui .crew-section-title { font-weight: 650; font-size: 13px; }
|
|
20
|
-
.dsh-crew-ui .crew-section-summary { font-size: 11.5px; opacity: .65; overflow-wrap: anywhere; }
|
|
21
|
-
.dsh-crew-ui .crew-config-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 6px 0 2px; }
|
|
22
|
-
@media (prefers-color-scheme: dark) { .dsh-crew-ui { --crew-accent: #8ab4ff; } }
|
|
23
|
-
@media (prefers-reduced-motion: reduce) { .dsh-crew-ui * { transition: none !important; } }
|
|
24
|
-
`}</style>;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export function PanelHeader({ title, eyebrow, description, href, linkText, children }: {
|
|
28
|
-
title: string; eyebrow: string; description: string; href: string;
|
|
29
|
-
linkText: string; children?: ReactNode;
|
|
30
|
-
}) {
|
|
31
|
-
return <header className="crew-panel-header">
|
|
32
|
-
<div className="crew-panel-heading">
|
|
33
|
-
<div className="crew-eyebrow">{eyebrow}</div>
|
|
34
|
-
<h2 className="crew-panel-title">{title}</h2>
|
|
35
|
-
<p className="crew-panel-description">{description}</p>
|
|
36
|
-
{children && <div className="crew-panel-badges">{children}</div>}
|
|
37
|
-
</div>
|
|
38
|
-
<a className="crew-nav-link" href={href} target="_blank" rel="noopener noreferrer">{linkText}</a>
|
|
39
|
-
</header>;
|
|
40
|
-
}
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
// Scoped to Crew panels: the official application's settings shell is untouched.
|
|
4
|
+
export function PanelStyles() {
|
|
5
|
+
return <style>{`
|
|
6
|
+
.dsh-crew-ui { --crew-line: rgba(128,128,128,.24); --crew-soft: rgba(128,128,128,.045); --crew-accent: #2563eb; font-size: 13px; line-height: 1.55; min-width: 0; }
|
|
7
|
+
.dsh-crew-ui *, .dsh-crew-ui *::before, .dsh-crew-ui *::after { box-sizing: border-box; }
|
|
8
|
+
.dsh-crew-ui .crew-panel-header { border: 1px solid var(--crew-line); border-radius: 12px; padding: 16px; background: var(--crew-soft); display: flex; flex-wrap: wrap; align-items: flex-start; gap: 12px 16px; }
|
|
9
|
+
.dsh-crew-ui .crew-panel-heading { flex: 1 1 260px; min-width: 0; }
|
|
10
|
+
.dsh-crew-ui .crew-eyebrow { font-size: 10.5px; letter-spacing: .055em; opacity: .65; margin-bottom: 4px; }
|
|
11
|
+
.dsh-crew-ui .crew-panel-title { margin: 0; font-size: 19px; font-weight: 680; line-height: 1.3; letter-spacing: -.025em; }
|
|
12
|
+
.dsh-crew-ui .crew-panel-description { margin: 5px 0 0; font-size: 12px; opacity: .72; overflow-wrap: anywhere; }
|
|
13
|
+
.dsh-crew-ui .crew-panel-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
|
|
14
|
+
.dsh-crew-ui .crew-nav-link { display: inline-flex; align-items: center; justify-content: center; color: var(--crew-accent); background: transparent; border: 1px solid var(--crew-line); border-radius: 8px; padding: 7px 10px; font-size: 12px; font-weight: 600; text-decoration: none; flex-shrink: 0; }
|
|
15
|
+
.dsh-crew-ui button:focus-visible, .dsh-crew-ui a:focus-visible, .dsh-crew-ui input:focus-visible, .dsh-crew-ui summary:focus-visible { outline: 2px solid var(--crew-accent); outline-offset: 3px; }
|
|
16
|
+
.dsh-crew-ui button:disabled { cursor: not-allowed; opacity: .4; }
|
|
17
|
+
.dsh-crew-ui .crew-nav-link:hover, .dsh-crew-ui .crew-section-trigger:hover, .dsh-crew-ui summary:hover { background: rgba(128,128,128,.09); }
|
|
18
|
+
.dsh-crew-ui .crew-section-heading { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
|
|
19
|
+
.dsh-crew-ui .crew-section-title { font-weight: 650; font-size: 13px; }
|
|
20
|
+
.dsh-crew-ui .crew-section-summary { font-size: 11.5px; opacity: .65; overflow-wrap: anywhere; }
|
|
21
|
+
.dsh-crew-ui .crew-config-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 6px 0 2px; }
|
|
22
|
+
@media (prefers-color-scheme: dark) { .dsh-crew-ui { --crew-accent: #8ab4ff; } }
|
|
23
|
+
@media (prefers-reduced-motion: reduce) { .dsh-crew-ui * { transition: none !important; } }
|
|
24
|
+
`}</style>;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function PanelHeader({ title, eyebrow, description, href, linkText, children }: {
|
|
28
|
+
title: string; eyebrow: string; description: string; href: string;
|
|
29
|
+
linkText: string; children?: ReactNode;
|
|
30
|
+
}) {
|
|
31
|
+
return <header className="crew-panel-header">
|
|
32
|
+
<div className="crew-panel-heading">
|
|
33
|
+
<div className="crew-eyebrow">{eyebrow}</div>
|
|
34
|
+
<h2 className="crew-panel-title">{title}</h2>
|
|
35
|
+
<p className="crew-panel-description">{description}</p>
|
|
36
|
+
{children && <div className="crew-panel-badges">{children}</div>}
|
|
37
|
+
</div>
|
|
38
|
+
<a className="crew-nav-link" href={href} target="_blank" rel="noopener noreferrer">{linkText}</a>
|
|
39
|
+
</header>;
|
|
40
|
+
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { applyQuick } from './quick-panel';
|
|
2
|
-
|
|
3
|
-
export const inject = ['slots', 'locale'];
|
|
4
|
-
|
|
5
|
-
// Quick-controls entry for the official 3080 surface: master switch,
|
|
6
|
-
// flash/pro model priority only. Never ships the
|
|
7
|
-
// full control-plane code.
|
|
8
|
-
export function apply(ctx: any): void {
|
|
9
|
-
applyQuick(ctx);
|
|
10
|
-
}
|
|
1
|
+
import { applyQuick } from './quick-panel';
|
|
2
|
+
|
|
3
|
+
export const inject = ['slots', 'locale'];
|
|
4
|
+
|
|
5
|
+
// Quick-controls entry for the official 3080 surface: master switch,
|
|
6
|
+
// flash/pro model priority only. Never ships the
|
|
7
|
+
// full control-plane code.
|
|
8
|
+
export function apply(ctx: any): void {
|
|
9
|
+
applyQuick(ctx);
|
|
10
|
+
}
|