@stigmer/react 0.2.2 → 0.3.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/composer/ComposerToolbar.d.ts +5 -1
- package/composer/ComposerToolbar.d.ts.map +1 -1
- package/composer/ComposerToolbar.js +6 -3
- package/composer/ComposerToolbar.js.map +1 -1
- package/composer/SessionComposer.d.ts +17 -1
- package/composer/SessionComposer.d.ts.map +1 -1
- package/composer/SessionComposer.js +32 -35
- package/composer/SessionComposer.js.map +1 -1
- package/execution/MessageEntry.d.ts +3 -1
- package/execution/MessageEntry.d.ts.map +1 -1
- package/execution/MessageEntry.js +30 -1
- package/execution/MessageEntry.js.map +1 -1
- package/github/index.d.ts +1 -1
- package/github/index.d.ts.map +1 -1
- package/github/index.js.map +1 -1
- package/github/useGitHubConnection.d.ts +70 -1
- package/github/useGitHubConnection.d.ts.map +1 -1
- package/github/useGitHubConnection.js +99 -20
- package/github/useGitHubConnection.js.map +1 -1
- package/identity-provider/IdentityProviderWizard.d.ts.map +1 -1
- package/identity-provider/IdentityProviderWizard.js +19 -3
- package/identity-provider/IdentityProviderWizard.js.map +1 -1
- package/index.d.ts +4 -4
- package/index.d.ts.map +1 -1
- package/index.js +2 -2
- package/index.js.map +1 -1
- package/models/HarnessSelector.d.ts +41 -0
- package/models/HarnessSelector.d.ts.map +1 -0
- package/models/HarnessSelector.js +74 -0
- package/models/HarnessSelector.js.map +1 -0
- package/models/ModelSelector.d.ts +26 -16
- package/models/ModelSelector.d.ts.map +1 -1
- package/models/ModelSelector.js +128 -48
- package/models/ModelSelector.js.map +1 -1
- package/models/__tests__/HarnessSelector.test.d.ts +2 -0
- package/models/__tests__/HarnessSelector.test.d.ts.map +1 -0
- package/models/__tests__/HarnessSelector.test.js +160 -0
- package/models/__tests__/HarnessSelector.test.js.map +1 -0
- package/models/__tests__/harness.test.d.ts +2 -0
- package/models/__tests__/harness.test.d.ts.map +1 -0
- package/models/__tests__/harness.test.js +50 -0
- package/models/__tests__/harness.test.js.map +1 -0
- package/models/__tests__/useModelRegistry.test.d.ts +2 -0
- package/models/__tests__/useModelRegistry.test.d.ts.map +1 -0
- package/models/__tests__/useModelRegistry.test.js +148 -0
- package/models/__tests__/useModelRegistry.test.js.map +1 -0
- package/models/harness.d.ts +21 -0
- package/models/harness.d.ts.map +1 -0
- package/models/harness.js +34 -0
- package/models/harness.js.map +1 -0
- package/models/index.d.ts +7 -2
- package/models/index.d.ts.map +1 -1
- package/models/index.js +3 -1
- package/models/index.js.map +1 -1
- package/models/registry.d.ts +53 -13
- package/models/registry.d.ts.map +1 -1
- package/models/registry.js +51 -40
- package/models/registry.js.map +1 -1
- package/models/useModelRegistry.d.ts +39 -19
- package/models/useModelRegistry.d.ts.map +1 -1
- package/models/useModelRegistry.js +45 -23
- package/models/useModelRegistry.js.map +1 -1
- package/organization/OrgProfilePanel.d.ts.map +1 -1
- package/organization/OrgProfilePanel.js +23 -2
- package/organization/OrgProfilePanel.js.map +1 -1
- package/package.json +4 -4
- package/runner/RunnerFileBrowser.d.ts +11 -1
- package/runner/RunnerFileBrowser.d.ts.map +1 -1
- package/runner/RunnerFileBrowser.js +70 -7
- package/runner/RunnerFileBrowser.js.map +1 -1
- package/runner/RunnerListPanel.js +2 -1
- package/runner/RunnerListPanel.js.map +1 -1
- package/runner/WorkspaceRunnerSelector.d.ts +36 -0
- package/runner/WorkspaceRunnerSelector.d.ts.map +1 -0
- package/runner/WorkspaceRunnerSelector.js +63 -0
- package/runner/WorkspaceRunnerSelector.js.map +1 -0
- package/runner/__tests__/phase.test.js +6 -2
- package/runner/__tests__/phase.test.js.map +1 -1
- package/runner/index.d.ts +2 -0
- package/runner/index.d.ts.map +1 -1
- package/runner/index.js +1 -0
- package/runner/index.js.map +1 -1
- package/runner/phase.d.ts +9 -7
- package/runner/phase.d.ts.map +1 -1
- package/runner/phase.js +18 -12
- package/runner/phase.js.map +1 -1
- package/runner/useRunnerFileBrowser.d.ts.map +1 -1
- package/runner/useRunnerFileBrowser.js +26 -2
- package/runner/useRunnerFileBrowser.js.map +1 -1
- package/session/__tests__/useCreateSession.test.d.ts +2 -0
- package/session/__tests__/useCreateSession.test.d.ts.map +1 -0
- package/session/__tests__/useCreateSession.test.js +232 -0
- package/session/__tests__/useCreateSession.test.js.map +1 -0
- package/session/__tests__/useNewSessionFlow.test.d.ts +2 -0
- package/session/__tests__/useNewSessionFlow.test.d.ts.map +1 -0
- package/session/__tests__/useNewSessionFlow.test.js +199 -0
- package/session/__tests__/useNewSessionFlow.test.js.map +1 -0
- package/session/__tests__/useSessionConversation.test.js +37 -0
- package/session/__tests__/useSessionConversation.test.js.map +1 -1
- package/session/index.d.ts +1 -1
- package/session/index.d.ts.map +1 -1
- package/session/useCreateSession.d.ts +8 -0
- package/session/useCreateSession.d.ts.map +1 -1
- package/session/useCreateSession.js +2 -0
- package/session/useCreateSession.js.map +1 -1
- package/session/useNewSessionFlow.d.ts +6 -1
- package/session/useNewSessionFlow.d.ts.map +1 -1
- package/session/useNewSessionFlow.js +34 -8
- package/session/useNewSessionFlow.js.map +1 -1
- package/session/usePersistedModel.d.ts +16 -1
- package/session/usePersistedModel.d.ts.map +1 -1
- package/session/usePersistedModel.js +15 -6
- package/session/usePersistedModel.js.map +1 -1
- package/session/useSessionConversation.d.ts.map +1 -1
- package/session/useSessionConversation.js +6 -1
- package/session/useSessionConversation.js.map +1 -1
- package/session/useSessionPageFlow.d.ts +11 -0
- package/session/useSessionPageFlow.d.ts.map +1 -1
- package/session/useSessionPageFlow.js +11 -2
- package/session/useSessionPageFlow.js.map +1 -1
- package/settings/MembersSection.d.ts.map +1 -1
- package/settings/MembersSection.js +7 -2
- package/settings/MembersSection.js.map +1 -1
- package/src/composer/ComposerToolbar.tsx +24 -1
- package/src/composer/SessionComposer.tsx +81 -44
- package/src/execution/MessageEntry.tsx +134 -1
- package/src/github/index.ts +1 -0
- package/src/github/useGitHubConnection.ts +162 -22
- package/src/identity-provider/IdentityProviderWizard.tsx +112 -3
- package/src/index.ts +16 -1
- package/src/models/HarnessSelector.tsx +130 -0
- package/src/models/ModelSelector.tsx +285 -81
- package/src/models/__tests__/HarnessSelector.test.tsx +190 -0
- package/src/models/__tests__/harness.test.ts +66 -0
- package/src/models/__tests__/useModelRegistry.test.tsx +209 -0
- package/src/models/harness.ts +45 -0
- package/src/models/index.ts +7 -2
- package/src/models/registry.ts +122 -50
- package/src/models/useModelRegistry.ts +74 -24
- package/src/organization/OrgProfilePanel.tsx +98 -0
- package/src/runner/RunnerFileBrowser.tsx +227 -8
- package/src/runner/RunnerListPanel.tsx +13 -5
- package/src/runner/WorkspaceRunnerSelector.tsx +180 -0
- package/src/runner/__tests__/phase.test.ts +6 -2
- package/src/runner/index.ts +3 -0
- package/src/runner/phase.ts +18 -12
- package/src/runner/useRunnerFileBrowser.ts +39 -3
- package/src/session/__tests__/useCreateSession.test.tsx +296 -0
- package/src/session/__tests__/useNewSessionFlow.test.tsx +258 -0
- package/src/session/__tests__/useSessionConversation.test.tsx +53 -0
- package/src/session/index.ts +1 -1
- package/src/session/useCreateSession.ts +9 -0
- package/src/session/useNewSessionFlow.ts +46 -9
- package/src/session/usePersistedModel.ts +30 -6
- package/src/session/useSessionConversation.ts +6 -1
- package/src/session/useSessionPageFlow.ts +26 -2
- package/src/settings/MembersSection.tsx +23 -1
- package/src/workspace/WorkspaceEditor.tsx +176 -126
- package/src/workspace/index.ts +5 -0
- package/src/workspace/useRecentWorkspaces.ts +162 -0
- package/src/workspace/useWorkspaceEntries.ts +13 -0
- package/styles.css +1 -1
- package/workspace/WorkspaceEditor.d.ts +25 -22
- package/workspace/WorkspaceEditor.d.ts.map +1 -1
- package/workspace/WorkspaceEditor.js +64 -43
- package/workspace/WorkspaceEditor.js.map +1 -1
- package/workspace/index.d.ts +2 -0
- package/workspace/index.d.ts.map +1 -1
- package/workspace/index.js +1 -0
- package/workspace/index.js.map +1 -1
- package/workspace/useRecentWorkspaces.d.ts +31 -0
- package/workspace/useRecentWorkspaces.d.ts.map +1 -0
- package/workspace/useRecentWorkspaces.js +117 -0
- package/workspace/useRecentWorkspaces.js.map +1 -0
- package/workspace/useWorkspaceEntries.d.ts +8 -0
- package/workspace/useWorkspaceEntries.d.ts.map +1 -1
- package/workspace/useWorkspaceEntries.js +4 -0
- package/workspace/useWorkspaceEntries.js.map +1 -1
|
@@ -1,16 +1,42 @@
|
|
|
1
1
|
import { type ModelInfo, type Provider } from "./registry";
|
|
2
|
+
import type { HarnessOption } from "./harness";
|
|
3
|
+
/** Options for {@link useModelRegistry}. */
|
|
4
|
+
export interface UseModelRegistryOptions {
|
|
5
|
+
/**
|
|
6
|
+
* Restrict to a single harness.
|
|
7
|
+
*
|
|
8
|
+
* - `"cursor"` — only Cursor-harness models, default → {@link DEFAULT_CURSOR_MODEL_ID}
|
|
9
|
+
* - `"native"` — only native-harness models, filtered by {@link DISABLED_PROVIDERS}
|
|
10
|
+
* - omitted — **unified mode**: all enabled models from both harnesses
|
|
11
|
+
*/
|
|
12
|
+
readonly harness?: HarnessOption;
|
|
13
|
+
}
|
|
2
14
|
/** Return value of {@link useModelRegistry}. */
|
|
3
15
|
export interface UseModelRegistryReturn {
|
|
4
|
-
/** All enabled models
|
|
16
|
+
/** All enabled models for the selected mode. */
|
|
5
17
|
readonly models: readonly ModelInfo[];
|
|
6
18
|
/** Models grouped by provider for sectioned rendering. */
|
|
7
19
|
readonly byProvider: ReadonlyMap<Provider, readonly ModelInfo[]>;
|
|
8
|
-
/** The platform default model
|
|
20
|
+
/** The platform default model for the current mode. */
|
|
9
21
|
readonly defaultModel: ModelInfo;
|
|
10
|
-
/**
|
|
22
|
+
/**
|
|
23
|
+
* Look up a single model by its `modelId`.
|
|
24
|
+
*
|
|
25
|
+
* In unified mode the same modelId can exist under both harnesses
|
|
26
|
+
* (e.g. `claude-sonnet-4.5` on native and `claude-4.5-sonnet` on cursor).
|
|
27
|
+
* This returns the first match. Use {@link getByKey} with a compound key
|
|
28
|
+
* for an unambiguous lookup.
|
|
29
|
+
*/
|
|
11
30
|
readonly getModel: (modelId: string) => ModelInfo | undefined;
|
|
12
31
|
/** Ordered list of enabled provider identifiers. */
|
|
13
32
|
readonly providers: readonly Provider[];
|
|
33
|
+
/** Curated subset of models marked as `featured` in the registry. */
|
|
34
|
+
readonly featured: readonly ModelInfo[];
|
|
35
|
+
/**
|
|
36
|
+
* Look up a model by its compound key (`"native/claude-sonnet-4.6"`).
|
|
37
|
+
* Always unambiguous, even in unified mode.
|
|
38
|
+
*/
|
|
39
|
+
readonly getByKey: (key: string) => ModelInfo | undefined;
|
|
14
40
|
}
|
|
15
41
|
/**
|
|
16
42
|
* Data hook that exposes the platform model registry with grouping
|
|
@@ -20,25 +46,19 @@ export interface UseModelRegistryReturn {
|
|
|
20
46
|
* who want full control over rendering import this hook and build
|
|
21
47
|
* their own UI.
|
|
22
48
|
*
|
|
49
|
+
* **Modes:**
|
|
50
|
+
* - `options.harness === "cursor"` — Cursor-harness models only
|
|
51
|
+
* - `options.harness === "native"` — native models, excluding disabled providers
|
|
52
|
+
* - `options.harness` omitted — unified: both harnesses, excluding disabled providers
|
|
53
|
+
*
|
|
23
54
|
* @example
|
|
24
55
|
* ```tsx
|
|
25
|
-
*
|
|
26
|
-
*
|
|
56
|
+
* // Unified mode — flat picker with all models
|
|
57
|
+
* const { featured, models, getByKey } = useModelRegistry();
|
|
27
58
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* defaultValue={defaultModel.modelId}
|
|
31
|
-
* onChange={(e) => onSelect(e.target.value)}
|
|
32
|
-
* >
|
|
33
|
-
* {models.map((m) => (
|
|
34
|
-
* <option key={m.modelId} value={m.modelId}>
|
|
35
|
-
* {m.displayName} ({m.costTier})
|
|
36
|
-
* </option>
|
|
37
|
-
* ))}
|
|
38
|
-
* </select>
|
|
39
|
-
* );
|
|
40
|
-
* }
|
|
59
|
+
* // Legacy single-harness mode
|
|
60
|
+
* const { models, defaultModel } = useModelRegistry({ harness: "native" });
|
|
41
61
|
* ```
|
|
42
62
|
*/
|
|
43
|
-
export declare function useModelRegistry(): UseModelRegistryReturn;
|
|
63
|
+
export declare function useModelRegistry(options?: UseModelRegistryOptions): UseModelRegistryReturn;
|
|
44
64
|
//# sourceMappingURL=useModelRegistry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModelRegistry.d.ts","sourceRoot":"","sources":["../../src/models/useModelRegistry.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"useModelRegistry.d.ts","sourceRoot":"","sources":["../../src/models/useModelRegistry.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,SAAS,EACd,KAAK,QAAQ,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;CAClC;AAED,gDAAgD;AAChD,MAAM,WAAW,sBAAsB;IACrC,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC,CAAC;IACjE,uDAAuD;IACvD,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;IACjC;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,CAAC;IAC9D,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,CAAC;CAC3D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,sBAAsB,CA8D1F"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useMemo } from "react";
|
|
3
|
-
import { MODEL_REGISTRY, DEFAULT_MODEL_ID, DISABLED_PROVIDERS, } from "./registry";
|
|
3
|
+
import { MODEL_REGISTRY, DEFAULT_MODEL_ID, DEFAULT_CURSOR_MODEL_ID, DISABLED_PROVIDERS, modelKey, } from "./registry";
|
|
4
4
|
/**
|
|
5
5
|
* Data hook that exposes the platform model registry with grouping
|
|
6
6
|
* and lookup helpers.
|
|
@@ -9,37 +9,54 @@ import { MODEL_REGISTRY, DEFAULT_MODEL_ID, DISABLED_PROVIDERS, } from "./registr
|
|
|
9
9
|
* who want full control over rendering import this hook and build
|
|
10
10
|
* their own UI.
|
|
11
11
|
*
|
|
12
|
+
* **Modes:**
|
|
13
|
+
* - `options.harness === "cursor"` — Cursor-harness models only
|
|
14
|
+
* - `options.harness === "native"` — native models, excluding disabled providers
|
|
15
|
+
* - `options.harness` omitted — unified: both harnesses, excluding disabled providers
|
|
16
|
+
*
|
|
12
17
|
* @example
|
|
13
18
|
* ```tsx
|
|
14
|
-
*
|
|
15
|
-
*
|
|
19
|
+
* // Unified mode — flat picker with all models
|
|
20
|
+
* const { featured, models, getByKey } = useModelRegistry();
|
|
16
21
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* defaultValue={defaultModel.modelId}
|
|
20
|
-
* onChange={(e) => onSelect(e.target.value)}
|
|
21
|
-
* >
|
|
22
|
-
* {models.map((m) => (
|
|
23
|
-
* <option key={m.modelId} value={m.modelId}>
|
|
24
|
-
* {m.displayName} ({m.costTier})
|
|
25
|
-
* </option>
|
|
26
|
-
* ))}
|
|
27
|
-
* </select>
|
|
28
|
-
* );
|
|
29
|
-
* }
|
|
22
|
+
* // Legacy single-harness mode
|
|
23
|
+
* const { models, defaultModel } = useModelRegistry({ harness: "native" });
|
|
30
24
|
* ```
|
|
31
25
|
*/
|
|
32
|
-
export function useModelRegistry() {
|
|
26
|
+
export function useModelRegistry(options) {
|
|
27
|
+
const harness = options?.harness;
|
|
33
28
|
return useMemo(() => {
|
|
29
|
+
const isCursor = harness === "cursor";
|
|
30
|
+
const isNative = harness === "native";
|
|
31
|
+
const isUnified = harness === undefined;
|
|
32
|
+
const defaultId = isCursor ? DEFAULT_CURSOR_MODEL_ID : DEFAULT_MODEL_ID;
|
|
34
33
|
const byProvider = new Map();
|
|
35
34
|
const byId = new Map();
|
|
35
|
+
const byCompoundKey = new Map();
|
|
36
36
|
const enabledModels = [];
|
|
37
|
+
const featuredModels = [];
|
|
37
38
|
let defaultModel;
|
|
38
39
|
for (const model of MODEL_REGISTRY) {
|
|
39
|
-
if (
|
|
40
|
-
|
|
40
|
+
if (isCursor) {
|
|
41
|
+
if (model.harness !== "cursor")
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
else if (isNative) {
|
|
45
|
+
if (model.harness !== "native")
|
|
46
|
+
continue;
|
|
47
|
+
if (DISABLED_PROVIDERS.has(model.provider))
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
// Unified — include both harnesses, still respect DISABLED_PROVIDERS
|
|
52
|
+
if (DISABLED_PROVIDERS.has(model.provider))
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
41
55
|
enabledModels.push(model);
|
|
42
|
-
|
|
56
|
+
byCompoundKey.set(modelKey(model.harness, model.modelId), model);
|
|
57
|
+
if (!byId.has(model.modelId)) {
|
|
58
|
+
byId.set(model.modelId, model);
|
|
59
|
+
}
|
|
43
60
|
const group = byProvider.get(model.provider);
|
|
44
61
|
if (group) {
|
|
45
62
|
group.push(model);
|
|
@@ -47,8 +64,11 @@ export function useModelRegistry() {
|
|
|
47
64
|
else {
|
|
48
65
|
byProvider.set(model.provider, [model]);
|
|
49
66
|
}
|
|
50
|
-
if (model.modelId ===
|
|
51
|
-
defaultModel
|
|
67
|
+
if (model.modelId === defaultId) {
|
|
68
|
+
defaultModel ??= model;
|
|
69
|
+
}
|
|
70
|
+
if (model.featured) {
|
|
71
|
+
featuredModels.push(model);
|
|
52
72
|
}
|
|
53
73
|
}
|
|
54
74
|
const providers = Array.from(byProvider.keys());
|
|
@@ -58,7 +78,9 @@ export function useModelRegistry() {
|
|
|
58
78
|
defaultModel: defaultModel ?? enabledModels[0],
|
|
59
79
|
getModel: (modelId) => byId.get(modelId),
|
|
60
80
|
providers,
|
|
81
|
+
featured: featuredModels,
|
|
82
|
+
getByKey: (key) => byCompoundKey.get(key),
|
|
61
83
|
};
|
|
62
|
-
}, []);
|
|
84
|
+
}, [harness]);
|
|
63
85
|
}
|
|
64
86
|
//# sourceMappingURL=useModelRegistry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModelRegistry.js","sourceRoot":"","sources":["../../src/models/useModelRegistry.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"useModelRegistry.js","sourceRoot":"","sources":["../../src/models/useModelRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrgProfilePanel.d.ts","sourceRoot":"","sources":["../../src/organization/OrgProfilePanel.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2DAA2D,CAAC;
|
|
1
|
+
{"version":3,"file":"OrgProfilePanel.d.ts","sourceRoot":"","sources":["../../src/organization/OrgProfilePanel.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2DAA2D,CAAC;AAiB9F,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;IACjD,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,SAAS,EACT,SAAS,GACV,EAAE,oBAAoB,kDA8RtB"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { useCallback, useEffect, useMemo, useState, } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
5
|
import { getUserMessage } from "@stigmer/sdk";
|
|
6
6
|
import { useOrganization } from "./useOrganization";
|
|
7
7
|
import { useUpdateOrganization } from "./useUpdateOrganization";
|
|
8
|
+
import { useIdentityProviderList } from "../identity-provider/useIdentityProviderList";
|
|
9
|
+
import { useResourceAvailable, ApiResourceKind } from "../deployment-mode";
|
|
8
10
|
// ---------------------------------------------------------------------------
|
|
9
11
|
// Constants
|
|
10
12
|
// ---------------------------------------------------------------------------
|
|
@@ -109,7 +111,26 @@ export function OrgProfilePanel({ orgId, onUpdated, className, }) {
|
|
|
109
111
|
// -----------------------------------------------------------------------
|
|
110
112
|
// Render
|
|
111
113
|
// -----------------------------------------------------------------------
|
|
112
|
-
return (_jsxs("form", { onSubmit: handleSubmit, className: cn("space-y-6", className), children: [_jsxs("div", { className: "space-y-3", children: [_jsx(ReadOnlyField, { label: "Slug", value: serverSlug, mono: true }), _jsx(ReadOnlyField, { label: "Organization ID", value: serverOrgId }), isPersonal && (_jsx("div", { children: _jsx("span", { className: "bg-primary-subtle text-primary rounded-full px-2 py-0.5 text-[0.6rem] font-medium uppercase tracking-wider", children: "Personal" }) }))] }), _jsx("hr", { className: "border-border" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "space-y-1", children: [_jsx("label", { htmlFor: "stgm-org-profile-name", className: "text-xs font-medium text-foreground", children: "Name" }), _jsx("input", { id: "stgm-org-profile-name", type: "text", value: name, onChange: (e) => setName(e.target.value), disabled: isUpdating, required: true, className: cn("w-full rounded-md border border-input bg-background px-2.5 py-1.5 text-xs text-foreground", "placeholder:text-muted-foreground", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50") }), _jsx("p", { className: "text-[0.65rem] text-muted-foreground", children: "The display name shown in the sidebar and across the platform." })] }), _jsxs("div", { className: "space-y-1", children: [_jsx("label", { htmlFor: "stgm-org-profile-desc", className: "text-xs font-medium text-foreground", children: "Description" }), _jsx("textarea", { id: "stgm-org-profile-desc", value: description, onChange: (e) => setDescription(e.target.value), maxLength: DESCRIPTION_MAX_LEN, rows: 3, disabled: isUpdating, placeholder: "What is this organization for?", className: cn("w-full resize-y rounded-md border border-input bg-background px-2.5 py-1.5 text-xs text-foreground", "placeholder:text-muted-foreground", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50") }), _jsxs("p", { className: "text-[0.65rem] text-muted-foreground", children: [description.length, "/", DESCRIPTION_MAX_LEN, " characters"] })] }), _jsxs("div", { className: "space-y-1", children: [_jsx("label", { htmlFor: "stgm-org-profile-logo", className: "text-xs font-medium text-foreground", children: "Logo URL" }), _jsx("input", { id: "stgm-org-profile-logo", type: "url", value: logoUrl, onChange: (e) => setLogoUrl(e.target.value), maxLength: LOGO_URL_MAX_LEN, disabled: isUpdating, placeholder: "https://example.com/logo.png", className: cn("w-full rounded-md border border-input bg-background px-2.5 py-1.5 text-xs text-foreground", "placeholder:text-muted-foreground", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50") }), _jsx("p", { className: "text-[0.65rem] text-muted-foreground", children: "A public URL to your organization's logo image." }), _jsx(LogoPreview, { url: logoUrl.trim() })] })] }), updateError && (_jsx("p", { className: "text-destructive text-[0.65rem]", role: "alert", children: getUserMessage(updateError) })), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("button", { type: "submit", disabled: !canSubmit, className: cn("inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium", "bg-primary text-primary-foreground hover:bg-primary-hover", "disabled:pointer-events-none disabled:opacity-40"), children: [isUpdating && _jsx(SpinnerIcon, {}), "Save changes"] }), hasChanges && !isUpdating && (_jsx("button", { type: "button", onClick: handleDiscard, className: cn("rounded-md px-3 py-1.5 text-xs", "text-muted-foreground hover:text-foreground hover:bg-accent-hover"), children: "Discard" }))] })] }));
|
|
114
|
+
return (_jsxs("form", { onSubmit: handleSubmit, className: cn("space-y-6", className), children: [_jsxs("div", { className: "space-y-3", children: [_jsx(ReadOnlyField, { label: "Slug", value: serverSlug, mono: true }), _jsx(ReadOnlyField, { label: "Organization ID", value: serverOrgId }), isPersonal && (_jsx("div", { children: _jsx("span", { className: "bg-primary-subtle text-primary rounded-full px-2 py-0.5 text-[0.6rem] font-medium uppercase tracking-wider", children: "Personal" }) }))] }), _jsx("hr", { className: "border-border" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "space-y-1", children: [_jsx("label", { htmlFor: "stgm-org-profile-name", className: "text-xs font-medium text-foreground", children: "Name" }), _jsx("input", { id: "stgm-org-profile-name", type: "text", value: name, onChange: (e) => setName(e.target.value), disabled: isUpdating, required: true, className: cn("w-full rounded-md border border-input bg-background px-2.5 py-1.5 text-xs text-foreground", "placeholder:text-muted-foreground", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50") }), _jsx("p", { className: "text-[0.65rem] text-muted-foreground", children: "The display name shown in the sidebar and across the platform." })] }), _jsxs("div", { className: "space-y-1", children: [_jsx("label", { htmlFor: "stgm-org-profile-desc", className: "text-xs font-medium text-foreground", children: "Description" }), _jsx("textarea", { id: "stgm-org-profile-desc", value: description, onChange: (e) => setDescription(e.target.value), maxLength: DESCRIPTION_MAX_LEN, rows: 3, disabled: isUpdating, placeholder: "What is this organization for?", className: cn("w-full resize-y rounded-md border border-input bg-background px-2.5 py-1.5 text-xs text-foreground", "placeholder:text-muted-foreground", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50") }), _jsxs("p", { className: "text-[0.65rem] text-muted-foreground", children: [description.length, "/", DESCRIPTION_MAX_LEN, " characters"] })] }), _jsxs("div", { className: "space-y-1", children: [_jsx("label", { htmlFor: "stgm-org-profile-logo", className: "text-xs font-medium text-foreground", children: "Logo URL" }), _jsx("input", { id: "stgm-org-profile-logo", type: "url", value: logoUrl, onChange: (e) => setLogoUrl(e.target.value), maxLength: LOGO_URL_MAX_LEN, disabled: isUpdating, placeholder: "https://example.com/logo.png", className: cn("w-full rounded-md border border-input bg-background px-2.5 py-1.5 text-xs text-foreground", "placeholder:text-muted-foreground", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50") }), _jsx("p", { className: "text-[0.65rem] text-muted-foreground", children: "A public URL to your organization's logo image." }), _jsx(LogoPreview, { url: logoUrl.trim() })] })] }), updateError && (_jsx("p", { className: "text-destructive text-[0.65rem]", role: "alert", children: getUserMessage(updateError) })), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("button", { type: "submit", disabled: !canSubmit, className: cn("inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium", "bg-primary text-primary-foreground hover:bg-primary-hover", "disabled:pointer-events-none disabled:opacity-40"), children: [isUpdating && _jsx(SpinnerIcon, {}), "Save changes"] }), hasChanges && !isUpdating && (_jsx("button", { type: "button", onClick: handleDiscard, className: cn("rounded-md px-3 py-1.5 text-xs", "text-muted-foreground hover:text-foreground hover:bg-accent-hover"), children: "Discard" }))] }), _jsx(IdentityProvidersSummary, { orgSlug: serverSlug })] }));
|
|
115
|
+
}
|
|
116
|
+
// ---------------------------------------------------------------------------
|
|
117
|
+
// IdentityProvidersSummary — shows linked IDPs on the org profile
|
|
118
|
+
// ---------------------------------------------------------------------------
|
|
119
|
+
function IdentityProvidersSummary({ orgSlug }) {
|
|
120
|
+
const idpAvailable = useResourceAvailable(ApiResourceKind.identity_provider);
|
|
121
|
+
const { identityProviders, isLoading } = useIdentityProviderList(idpAvailable && orgSlug ? orgSlug : null);
|
|
122
|
+
if (!idpAvailable || !orgSlug)
|
|
123
|
+
return null;
|
|
124
|
+
return (_jsxs(_Fragment, { children: [_jsx("hr", { className: "border-border" }), _jsxs("div", { className: "space-y-2", children: [_jsx("p", { className: "text-[0.65rem] font-medium text-muted-foreground uppercase tracking-wider", children: "Identity Providers" }), isLoading ? (_jsx("div", { className: "bg-muted-subtle h-8 animate-pulse rounded" })) : identityProviders.length === 0 ? (_jsxs("p", { className: "text-xs text-muted-foreground", children: ["No identity providers configured.", " ", _jsx("a", { href: "/settings/identity-providers", className: "text-primary hover:text-primary-hover underline underline-offset-2", children: "Set up federated authentication" })] })) : (_jsxs("div", { className: "space-y-1.5", children: [identityProviders.map((idp) => {
|
|
125
|
+
const spec = idp.spec;
|
|
126
|
+
const displayName = spec?.displayName || idp.metadata?.name || "Unnamed";
|
|
127
|
+
const isSso = spec?.isSsoProvider;
|
|
128
|
+
const isJit = !isSso && spec?.autoProvisionAccounts;
|
|
129
|
+
return (_jsxs("div", { className: "flex items-center gap-2 text-xs", children: [_jsx(ShieldSmallIcon, {}), _jsx("span", { className: "text-foreground truncate", children: displayName }), isSso && (_jsx("span", { className: "rounded-full border border-primary/30 bg-primary-subtle px-1.5 py-px text-[0.6rem] font-medium text-primary", children: "SSO" })), isJit && (_jsx("span", { className: "rounded-full border border-primary/30 bg-primary-subtle px-1.5 py-px text-[0.6rem] font-medium text-primary", children: "JIT" }))] }, idp.metadata?.id));
|
|
130
|
+
}), _jsx("a", { href: "/settings/identity-providers", className: "inline-block text-[0.65rem] text-primary hover:text-primary-hover underline underline-offset-2", children: "Manage" })] }))] })] }));
|
|
131
|
+
}
|
|
132
|
+
function ShieldSmallIcon() {
|
|
133
|
+
return (_jsx("svg", { width: "12", height: "12", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", className: "shrink-0 text-muted-foreground", children: _jsx("path", { d: "M8 1.5L2 4v4c0 3.5 2.5 5.5 6 7 3.5-1.5 6-3.5 6-7V4L8 1.5z" }) }));
|
|
113
134
|
}
|
|
114
135
|
// ---------------------------------------------------------------------------
|
|
115
136
|
// ReadOnlyField — copiable label/value pair
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrgProfilePanel.js","sourceRoot":"","sources":["../../src/organization/OrgProfilePanel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,WAAW,EACX,SAAS,EACT,OAAO,EACP,QAAQ,GAET,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"OrgProfilePanel.js","sourceRoot":"","sources":["../../src/organization/OrgProfilePanel.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stigmer/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "React provider and client hook for the Stigmer platform SDK",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@stigmer/theme": "0.
|
|
38
|
+
"@stigmer/theme": "0.3.0",
|
|
39
39
|
"react-markdown": "^10.1.0",
|
|
40
40
|
"remark-gfm": "^4.0.1",
|
|
41
41
|
"yaml": "^2.8.2"
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"@base-ui/react": "^1.0.0",
|
|
45
45
|
"@bufbuild/protobuf": "^2.0.0",
|
|
46
|
-
"@stigmer/protos": "0.
|
|
47
|
-
"@stigmer/sdk": "0.
|
|
46
|
+
"@stigmer/protos": "0.3.0",
|
|
47
|
+
"@stigmer/sdk": "0.3.0",
|
|
48
48
|
"lucide-react": ">=0.400.0",
|
|
49
49
|
"react": "^19.0.0",
|
|
50
50
|
"react-dom": "^19.0.0"
|
|
@@ -8,6 +8,16 @@ export interface RunnerFileBrowserProps {
|
|
|
8
8
|
readonly onCancel: () => void;
|
|
9
9
|
/** Additional CSS class names for the root container. */
|
|
10
10
|
readonly className?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Display name of the runner (e.g. "dev-macbook").
|
|
13
|
+
* Shown in the context header so users know which machine they're browsing.
|
|
14
|
+
*/
|
|
15
|
+
readonly runnerName?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Hostname of the runner's machine (e.g. "Alice's MacBook Pro").
|
|
18
|
+
* Shown alongside the runner name in the context header.
|
|
19
|
+
*/
|
|
20
|
+
readonly runnerHostname?: string;
|
|
11
21
|
}
|
|
12
22
|
/**
|
|
13
23
|
* Styled component for browsing a runner's filesystem and selecting
|
|
@@ -29,5 +39,5 @@ export interface RunnerFileBrowserProps {
|
|
|
29
39
|
* />
|
|
30
40
|
* ```
|
|
31
41
|
*/
|
|
32
|
-
export declare function RunnerFileBrowser({ runnerId, onSelect, onCancel, className, }: RunnerFileBrowserProps): import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
export declare function RunnerFileBrowser({ runnerId, onSelect, onCancel, className, runnerName, runnerHostname, }: RunnerFileBrowserProps): import("react/jsx-runtime").JSX.Element;
|
|
33
43
|
//# sourceMappingURL=RunnerFileBrowser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunnerFileBrowser.d.ts","sourceRoot":"","sources":["../../src/runner/RunnerFileBrowser.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RunnerFileBrowser.d.ts","sourceRoot":"","sources":["../../src/runner/RunnerFileBrowser.tsx"],"names":[],"mappings":"AAOA,2CAA2C;AAC3C,MAAM,WAAW,sBAAsB;IACrC,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;IAC9B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,cAAc,GACf,EAAE,sBAAsB,2CA6RxB"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { useMemo } from "react";
|
|
3
|
+
import { useCallback, useMemo, useState, useRef } from "react";
|
|
4
4
|
import { getUserMessage } from "@stigmer/sdk";
|
|
5
5
|
import { useRunnerFileBrowser } from "./useRunnerFileBrowser";
|
|
6
|
+
import { useRecentWorkspaces } from "../workspace/useRecentWorkspaces";
|
|
6
7
|
/**
|
|
7
8
|
* Styled component for browsing a runner's filesystem and selecting
|
|
8
9
|
* a project directory as a workspace entry.
|
|
@@ -23,8 +24,41 @@ import { useRunnerFileBrowser } from "./useRunnerFileBrowser";
|
|
|
23
24
|
* />
|
|
24
25
|
* ```
|
|
25
26
|
*/
|
|
26
|
-
export function RunnerFileBrowser({ runnerId, onSelect, onCancel, className, }) {
|
|
27
|
+
export function RunnerFileBrowser({ runnerId, onSelect, onCancel, className, runnerName, runnerHostname, }) {
|
|
27
28
|
const browser = useRunnerFileBrowser(runnerId);
|
|
29
|
+
const recents = useRecentWorkspaces(runnerId);
|
|
30
|
+
const handleSelect = useCallback((path) => {
|
|
31
|
+
recents.recordSelection(path);
|
|
32
|
+
onSelect(path);
|
|
33
|
+
}, [recents, onSelect]);
|
|
34
|
+
const [isEditingPath, setIsEditingPath] = useState(false);
|
|
35
|
+
const [editPathValue, setEditPathValue] = useState("");
|
|
36
|
+
const pathInputRef = useRef(null);
|
|
37
|
+
const startEditingPath = useCallback(() => {
|
|
38
|
+
setEditPathValue(browser.currentPath);
|
|
39
|
+
setIsEditingPath(true);
|
|
40
|
+
requestAnimationFrame(() => pathInputRef.current?.select());
|
|
41
|
+
}, [browser.currentPath]);
|
|
42
|
+
const commitPath = useCallback(() => {
|
|
43
|
+
const trimmed = editPathValue.trim();
|
|
44
|
+
if (trimmed && trimmed !== browser.currentPath) {
|
|
45
|
+
browser.navigateToPath(trimmed);
|
|
46
|
+
}
|
|
47
|
+
setIsEditingPath(false);
|
|
48
|
+
}, [editPathValue, browser]);
|
|
49
|
+
const cancelEditing = useCallback(() => {
|
|
50
|
+
setIsEditingPath(false);
|
|
51
|
+
}, []);
|
|
52
|
+
const handlePathKeyDown = useCallback((e) => {
|
|
53
|
+
if (e.key === "Enter") {
|
|
54
|
+
e.preventDefault();
|
|
55
|
+
commitPath();
|
|
56
|
+
}
|
|
57
|
+
else if (e.key === "Escape") {
|
|
58
|
+
e.preventDefault();
|
|
59
|
+
cancelEditing();
|
|
60
|
+
}
|
|
61
|
+
}, [commitPath, cancelEditing]);
|
|
28
62
|
const visibleEntries = useMemo(() => browser.showHidden
|
|
29
63
|
? browser.entries
|
|
30
64
|
: browser.entries.filter((e) => !e.isHidden), [browser.entries, browser.showHidden]);
|
|
@@ -34,15 +68,18 @@ export function RunnerFileBrowser({ runnerId, onSelect, onCancel, className, })
|
|
|
34
68
|
if (browser.error && !browser.currentPath) {
|
|
35
69
|
return (_jsx("div", { className: ["space-y-3", className].filter(Boolean).join(" "), children: _jsx(ErrorDisplay, { error: browser.error, onRetry: browser.retry, onCancel: onCancel }) }));
|
|
36
70
|
}
|
|
37
|
-
return (_jsxs("div", { className: ["space-y-2", className].filter(Boolean).join(" "), children: [
|
|
71
|
+
return (_jsxs("div", { className: ["space-y-2", className].filter(Boolean).join(" "), children: [(runnerName || runnerHostname) && (_jsxs("div", { className: "flex items-center gap-1.5 text-[0.65rem] text-muted-foreground", children: [_jsx(ServerIcon, {}), _jsxs("span", { className: "truncate", children: [runnerName ?? runnerHostname, runnerName && runnerHostname && (_jsxs("span", { className: "text-border", children: [" \u00B7 ", runnerHostname] }))] })] })), recents.entries.length > 0 && (_jsx(RecentPathsList, { entries: recents.entries, onSelect: (path) => {
|
|
72
|
+
recents.recordSelection(path);
|
|
73
|
+
onSelect(path);
|
|
74
|
+
}, onTogglePin: recents.togglePin, onRemove: recents.remove, onNavigate: browser.navigateToPath })), _jsxs("div", { className: "space-y-1.5", children: [_jsxs("div", { className: "flex items-center gap-1", children: [_jsx(ShortcutButton, { label: "Home", icon: _jsx(HomeIcon, {}), onClick: browser.navigateHome, disabled: browser.isLoading }), browser.currentDirectory && (_jsx(ShortcutButton, { label: "CWD", icon: _jsx(TerminalIcon, {}), onClick: browser.navigateCwd, disabled: browser.isLoading })), !browser.isAtRoot && (_jsx(ShortcutButton, { label: "Up", icon: _jsx(ChevronUpIcon, {}), onClick: browser.navigateUp, disabled: browser.isLoading })), _jsx("div", { className: "ml-auto flex items-center gap-1", children: _jsx("button", { type: "button", onClick: browser.toggleHidden, className: [
|
|
38
75
|
"rounded px-1.5 py-0.5 text-[0.6rem] transition-colors",
|
|
39
76
|
browser.showHidden
|
|
40
77
|
? "bg-accent text-foreground"
|
|
41
78
|
: "text-muted-foreground hover:text-foreground hover:bg-accent-hover",
|
|
42
|
-
].join(" "), title: browser.showHidden ? "Hide hidden files" : "Show hidden files", children: browser.showHidden ? "Hide dotfiles" : "Show dotfiles" }) })] }), browser.segments.length > 0
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
79
|
+
].join(" "), title: browser.showHidden ? "Hide hidden files" : "Show hidden files", children: browser.showHidden ? "Hide dotfiles" : "Show dotfiles" }) })] }), isEditingPath ? (_jsx("input", { ref: pathInputRef, type: "text", value: editPathValue, onChange: (e) => setEditPathValue(e.target.value), onKeyDown: handlePathKeyDown, onBlur: commitPath, className: "w-full rounded-md border border-input bg-background px-2 py-1 text-[0.65rem] text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", placeholder: "/path/to/directory or ~/relative", autoFocus: true })) : browser.segments.length > 0 ? (_jsxs("div", { className: "flex items-center gap-0.5 overflow-x-auto text-[0.65rem] scrollbar-none", children: [browser.segments.map((seg, i) => {
|
|
80
|
+
const isLast = i === browser.segments.length - 1;
|
|
81
|
+
return (_jsxs("span", { className: "flex shrink-0 items-center gap-0.5", children: [i > 0 && _jsx(ChevronRightIcon, {}), isLast ? (_jsx("span", { className: "rounded px-1 py-0.5 font-medium text-foreground", children: seg.name })) : (_jsx("button", { type: "button", onClick: () => browser.navigateToPath(seg.path), disabled: browser.isLoading, className: "rounded px-1 py-0.5 text-muted-foreground hover:text-foreground hover:bg-accent-hover transition-colors disabled:pointer-events-none", children: seg.name }))] }, seg.path));
|
|
82
|
+
}), _jsx("button", { type: "button", onClick: startEditingPath, className: "ml-1 shrink-0 rounded p-0.5 text-muted-foreground hover:text-foreground hover:bg-accent-hover transition-colors", title: "Type a path directly", "aria-label": "Edit path", children: _jsx(EditIcon, {}) })] })) : null] }), browser.error && browser.currentPath && (_jsxs("div", { className: "flex items-center gap-2 rounded-md bg-destructive-subtle px-2.5 py-1.5 text-xs text-destructive", children: [_jsx("span", { className: "min-w-0 flex-1 truncate", children: getUserMessage(browser.error) }), _jsx("button", { type: "button", onClick: browser.retry, className: "shrink-0 text-[0.6rem] font-medium hover:underline", children: "Retry" })] })), _jsx("div", { className: "max-h-56 overflow-y-auto rounded-md border border-border", role: "listbox", "aria-label": "Directory contents", children: browser.isLoading ? (_jsx(LoadingSkeleton, {})) : visibleEntries.length === 0 ? (_jsx("div", { className: "py-6 text-center text-xs text-muted-foreground", children: "This directory is empty" })) : (_jsxs(_Fragment, { children: [directories.map((entry) => (_jsxs("button", { type: "button", onClick: () => browser.navigateTo(entry.name), className: "flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-xs text-foreground transition-colors hover:bg-accent-hover", role: "option", "aria-selected": false, children: [_jsx(FolderIcon, {}), _jsx("span", { className: "min-w-0 flex-1 truncate", children: entry.name })] }, entry.name))), files.map((entry) => (_jsxs("div", { className: "flex items-center gap-2 px-2.5 py-1.5 text-xs text-muted-foreground", children: [_jsx(FileIcon, {}), _jsx("span", { className: "min-w-0 flex-1 truncate", children: entry.name })] }, entry.name)))] })) }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "min-w-0 flex-1 truncate text-[0.6rem] text-muted-foreground [direction:rtl] text-left", title: browser.currentPath, children: _jsx("bdi", { children: browser.currentPath }) }), _jsxs("div", { className: "flex shrink-0 gap-2", children: [_jsx("button", { type: "button", onClick: onCancel, className: "rounded-md px-2.5 py-1 text-xs text-muted-foreground hover:text-foreground transition-colors", children: "Cancel" }), _jsx("button", { type: "button", onClick: () => handleSelect(browser.currentPath), disabled: !browser.currentPath || browser.isLoading, className: "rounded-md bg-primary px-2.5 py-1 text-xs text-primary-foreground hover:bg-primary-hover transition-colors disabled:opacity-40", children: "Select" })] })] })] }));
|
|
46
83
|
}
|
|
47
84
|
// ---------------------------------------------------------------------------
|
|
48
85
|
// Error display (initial load failure)
|
|
@@ -51,6 +88,20 @@ function ErrorDisplay({ error, onRetry, onCancel, }) {
|
|
|
51
88
|
return (_jsxs("div", { className: "space-y-3 py-2 text-center", children: [_jsxs("div", { className: "space-y-1", children: [_jsx("p", { className: "text-xs font-medium text-destructive", children: "Could not browse runner filesystem" }), _jsx("p", { className: "text-[0.65rem] text-muted-foreground", children: getUserMessage(error) })] }), _jsxs("div", { className: "flex justify-center gap-2", children: [_jsx("button", { type: "button", onClick: onCancel, className: "rounded-md px-2.5 py-1 text-xs text-muted-foreground hover:text-foreground transition-colors", children: "Cancel" }), _jsx("button", { type: "button", onClick: onRetry, className: "rounded-md bg-primary px-2.5 py-1 text-xs text-primary-foreground hover:bg-primary-hover transition-colors", children: "Retry" })] })] }));
|
|
52
89
|
}
|
|
53
90
|
// ---------------------------------------------------------------------------
|
|
91
|
+
// Recent paths list
|
|
92
|
+
// ---------------------------------------------------------------------------
|
|
93
|
+
function RecentPathsList({ entries, onSelect, onTogglePin, onRemove, onNavigate, }) {
|
|
94
|
+
return (_jsxs("div", { className: "space-y-1", children: [_jsx("span", { className: "text-[0.6rem] font-medium text-muted-foreground", children: "Recent" }), _jsx("div", { className: "max-h-24 overflow-y-auto rounded-md border border-border", children: entries.map((entry) => {
|
|
95
|
+
const dirName = entry.path.split("/").filter(Boolean).pop() ?? entry.path;
|
|
96
|
+
return (_jsxs("div", { className: "group flex items-center gap-1.5 px-2 py-1 text-xs transition-colors hover:bg-accent-hover", children: [_jsx("button", { type: "button", onClick: () => onTogglePin(entry.path), className: [
|
|
97
|
+
"shrink-0 transition-colors",
|
|
98
|
+
entry.pinned
|
|
99
|
+
? "text-foreground"
|
|
100
|
+
: "text-transparent group-hover:text-muted-foreground",
|
|
101
|
+
].join(" "), title: entry.pinned ? "Unpin" : "Pin", "aria-label": entry.pinned ? `Unpin ${dirName}` : `Pin ${dirName}`, children: _jsx(PinIcon, {}) }), _jsxs("button", { type: "button", onClick: () => onSelect(entry.path), className: "flex min-w-0 flex-1 items-center gap-1.5 text-left text-foreground", title: `Select ${entry.path}`, children: [_jsx(FolderIcon, {}), _jsx("span", { className: "truncate [direction:rtl] text-left", children: _jsx("bdi", { children: entry.path }) })] }), _jsx("button", { type: "button", onClick: () => onNavigate(entry.path), className: "shrink-0 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 hover:text-foreground", title: "Browse this directory", "aria-label": `Browse ${dirName}`, children: _jsx(ChevronRightIcon, {}) }), _jsx("button", { type: "button", onClick: () => onRemove(entry.path), className: "shrink-0 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 hover:text-destructive", title: "Remove from recent", "aria-label": `Remove ${dirName} from recent`, children: _jsx(XSmallIcon, {}) })] }, entry.path));
|
|
102
|
+
}) })] }));
|
|
103
|
+
}
|
|
104
|
+
// ---------------------------------------------------------------------------
|
|
54
105
|
// Shortcut button
|
|
55
106
|
// ---------------------------------------------------------------------------
|
|
56
107
|
function ShortcutButton({ label, icon, onClick, disabled, }) {
|
|
@@ -65,6 +116,18 @@ function LoadingSkeleton() {
|
|
|
65
116
|
// ---------------------------------------------------------------------------
|
|
66
117
|
// Icons (inline SVG, consistent with existing SDK icon patterns)
|
|
67
118
|
// ---------------------------------------------------------------------------
|
|
119
|
+
function EditIcon() {
|
|
120
|
+
return (_jsx("svg", { width: "10", height: "10", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("path", { d: "M8.5 1.5L10.5 3.5L4 10H2V8L8.5 1.5Z" }) }));
|
|
121
|
+
}
|
|
122
|
+
function PinIcon() {
|
|
123
|
+
return (_jsx("svg", { width: "10", height: "10", viewBox: "0 0 12 12", fill: "currentColor", stroke: "none", children: _jsx("path", { d: "M7.5 1.5L10.5 4.5L8 7L9 10L6 7L2 11L5 3L4.5 1.5L7.5 1.5Z" }) }));
|
|
124
|
+
}
|
|
125
|
+
function XSmallIcon() {
|
|
126
|
+
return (_jsx("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("path", { d: "M2.5 2.5L7.5 7.5M7.5 2.5L2.5 7.5" }) }));
|
|
127
|
+
}
|
|
128
|
+
function ServerIcon() {
|
|
129
|
+
return (_jsxs("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", className: "shrink-0", children: [_jsx("rect", { x: "1.5", y: "1.5", width: "9", height: "3.5", rx: "0.5" }), _jsx("rect", { x: "1.5", y: "7", width: "9", height: "3.5", rx: "0.5" }), _jsx("circle", { cx: "3.5", cy: "3.25", r: "0.5", fill: "currentColor", stroke: "none" }), _jsx("circle", { cx: "3.5", cy: "8.75", r: "0.5", fill: "currentColor", stroke: "none" })] }));
|
|
130
|
+
}
|
|
68
131
|
function HomeIcon() {
|
|
69
132
|
return (_jsx("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("path", { d: "M2 5.5L6 2L10 5.5V10a.5.5 0 01-.5.5h-2V8a.5.5 0 00-.5-.5H5a.5.5 0 00-.5.5v2.5h-2A.5.5 0 012 10V5.5z" }) }));
|
|
70
133
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunnerFileBrowser.js","sourceRoot":"","sources":["../../src/runner/RunnerFileBrowser.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RunnerFileBrowser.js","sourceRoot":"","sources":["../../src/runner/RunnerFileBrowser.tsx"],"names":[],"mappings":"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"}
|
|
@@ -201,7 +201,8 @@ function ActionMenu({ canStop, onStop, onDelete, runnerName, }) {
|
|
|
201
201
|
// PhaseBadge (internal)
|
|
202
202
|
// ---------------------------------------------------------------------------
|
|
203
203
|
function PhaseBadge({ phase }) {
|
|
204
|
-
|
|
204
|
+
const starting = phase === RunnerPhase.STARTING;
|
|
205
|
+
return (_jsxs("span", { className: "inline-flex shrink-0 items-center gap-1", children: [starting ? (_jsx("span", { className: "inline-block h-2.5 w-2.5 animate-spin rounded-full border border-primary border-t-transparent", "aria-hidden": "true" })) : (_jsx("span", { className: `inline-block h-1.5 w-1.5 rounded-full ${phaseDotColor(phase)}`, "aria-hidden": "true" })), _jsx("span", { className: cn("text-[0.65rem]", starting ? "text-primary" : "text-muted-foreground"), children: phaseLabel(phase) })] }));
|
|
205
206
|
}
|
|
206
207
|
// ---------------------------------------------------------------------------
|
|
207
208
|
// Utilities
|