@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.
Files changed (178) hide show
  1. package/composer/ComposerToolbar.d.ts +5 -1
  2. package/composer/ComposerToolbar.d.ts.map +1 -1
  3. package/composer/ComposerToolbar.js +6 -3
  4. package/composer/ComposerToolbar.js.map +1 -1
  5. package/composer/SessionComposer.d.ts +17 -1
  6. package/composer/SessionComposer.d.ts.map +1 -1
  7. package/composer/SessionComposer.js +32 -35
  8. package/composer/SessionComposer.js.map +1 -1
  9. package/execution/MessageEntry.d.ts +3 -1
  10. package/execution/MessageEntry.d.ts.map +1 -1
  11. package/execution/MessageEntry.js +30 -1
  12. package/execution/MessageEntry.js.map +1 -1
  13. package/github/index.d.ts +1 -1
  14. package/github/index.d.ts.map +1 -1
  15. package/github/index.js.map +1 -1
  16. package/github/useGitHubConnection.d.ts +70 -1
  17. package/github/useGitHubConnection.d.ts.map +1 -1
  18. package/github/useGitHubConnection.js +99 -20
  19. package/github/useGitHubConnection.js.map +1 -1
  20. package/identity-provider/IdentityProviderWizard.d.ts.map +1 -1
  21. package/identity-provider/IdentityProviderWizard.js +19 -3
  22. package/identity-provider/IdentityProviderWizard.js.map +1 -1
  23. package/index.d.ts +4 -4
  24. package/index.d.ts.map +1 -1
  25. package/index.js +2 -2
  26. package/index.js.map +1 -1
  27. package/models/HarnessSelector.d.ts +41 -0
  28. package/models/HarnessSelector.d.ts.map +1 -0
  29. package/models/HarnessSelector.js +74 -0
  30. package/models/HarnessSelector.js.map +1 -0
  31. package/models/ModelSelector.d.ts +26 -16
  32. package/models/ModelSelector.d.ts.map +1 -1
  33. package/models/ModelSelector.js +128 -48
  34. package/models/ModelSelector.js.map +1 -1
  35. package/models/__tests__/HarnessSelector.test.d.ts +2 -0
  36. package/models/__tests__/HarnessSelector.test.d.ts.map +1 -0
  37. package/models/__tests__/HarnessSelector.test.js +160 -0
  38. package/models/__tests__/HarnessSelector.test.js.map +1 -0
  39. package/models/__tests__/harness.test.d.ts +2 -0
  40. package/models/__tests__/harness.test.d.ts.map +1 -0
  41. package/models/__tests__/harness.test.js +50 -0
  42. package/models/__tests__/harness.test.js.map +1 -0
  43. package/models/__tests__/useModelRegistry.test.d.ts +2 -0
  44. package/models/__tests__/useModelRegistry.test.d.ts.map +1 -0
  45. package/models/__tests__/useModelRegistry.test.js +148 -0
  46. package/models/__tests__/useModelRegistry.test.js.map +1 -0
  47. package/models/harness.d.ts +21 -0
  48. package/models/harness.d.ts.map +1 -0
  49. package/models/harness.js +34 -0
  50. package/models/harness.js.map +1 -0
  51. package/models/index.d.ts +7 -2
  52. package/models/index.d.ts.map +1 -1
  53. package/models/index.js +3 -1
  54. package/models/index.js.map +1 -1
  55. package/models/registry.d.ts +53 -13
  56. package/models/registry.d.ts.map +1 -1
  57. package/models/registry.js +51 -40
  58. package/models/registry.js.map +1 -1
  59. package/models/useModelRegistry.d.ts +39 -19
  60. package/models/useModelRegistry.d.ts.map +1 -1
  61. package/models/useModelRegistry.js +45 -23
  62. package/models/useModelRegistry.js.map +1 -1
  63. package/organization/OrgProfilePanel.d.ts.map +1 -1
  64. package/organization/OrgProfilePanel.js +23 -2
  65. package/organization/OrgProfilePanel.js.map +1 -1
  66. package/package.json +4 -4
  67. package/runner/RunnerFileBrowser.d.ts +11 -1
  68. package/runner/RunnerFileBrowser.d.ts.map +1 -1
  69. package/runner/RunnerFileBrowser.js +70 -7
  70. package/runner/RunnerFileBrowser.js.map +1 -1
  71. package/runner/RunnerListPanel.js +2 -1
  72. package/runner/RunnerListPanel.js.map +1 -1
  73. package/runner/WorkspaceRunnerSelector.d.ts +36 -0
  74. package/runner/WorkspaceRunnerSelector.d.ts.map +1 -0
  75. package/runner/WorkspaceRunnerSelector.js +63 -0
  76. package/runner/WorkspaceRunnerSelector.js.map +1 -0
  77. package/runner/__tests__/phase.test.js +6 -2
  78. package/runner/__tests__/phase.test.js.map +1 -1
  79. package/runner/index.d.ts +2 -0
  80. package/runner/index.d.ts.map +1 -1
  81. package/runner/index.js +1 -0
  82. package/runner/index.js.map +1 -1
  83. package/runner/phase.d.ts +9 -7
  84. package/runner/phase.d.ts.map +1 -1
  85. package/runner/phase.js +18 -12
  86. package/runner/phase.js.map +1 -1
  87. package/runner/useRunnerFileBrowser.d.ts.map +1 -1
  88. package/runner/useRunnerFileBrowser.js +26 -2
  89. package/runner/useRunnerFileBrowser.js.map +1 -1
  90. package/session/__tests__/useCreateSession.test.d.ts +2 -0
  91. package/session/__tests__/useCreateSession.test.d.ts.map +1 -0
  92. package/session/__tests__/useCreateSession.test.js +232 -0
  93. package/session/__tests__/useCreateSession.test.js.map +1 -0
  94. package/session/__tests__/useNewSessionFlow.test.d.ts +2 -0
  95. package/session/__tests__/useNewSessionFlow.test.d.ts.map +1 -0
  96. package/session/__tests__/useNewSessionFlow.test.js +199 -0
  97. package/session/__tests__/useNewSessionFlow.test.js.map +1 -0
  98. package/session/__tests__/useSessionConversation.test.js +37 -0
  99. package/session/__tests__/useSessionConversation.test.js.map +1 -1
  100. package/session/index.d.ts +1 -1
  101. package/session/index.d.ts.map +1 -1
  102. package/session/useCreateSession.d.ts +8 -0
  103. package/session/useCreateSession.d.ts.map +1 -1
  104. package/session/useCreateSession.js +2 -0
  105. package/session/useCreateSession.js.map +1 -1
  106. package/session/useNewSessionFlow.d.ts +6 -1
  107. package/session/useNewSessionFlow.d.ts.map +1 -1
  108. package/session/useNewSessionFlow.js +34 -8
  109. package/session/useNewSessionFlow.js.map +1 -1
  110. package/session/usePersistedModel.d.ts +16 -1
  111. package/session/usePersistedModel.d.ts.map +1 -1
  112. package/session/usePersistedModel.js +15 -6
  113. package/session/usePersistedModel.js.map +1 -1
  114. package/session/useSessionConversation.d.ts.map +1 -1
  115. package/session/useSessionConversation.js +6 -1
  116. package/session/useSessionConversation.js.map +1 -1
  117. package/session/useSessionPageFlow.d.ts +11 -0
  118. package/session/useSessionPageFlow.d.ts.map +1 -1
  119. package/session/useSessionPageFlow.js +11 -2
  120. package/session/useSessionPageFlow.js.map +1 -1
  121. package/settings/MembersSection.d.ts.map +1 -1
  122. package/settings/MembersSection.js +7 -2
  123. package/settings/MembersSection.js.map +1 -1
  124. package/src/composer/ComposerToolbar.tsx +24 -1
  125. package/src/composer/SessionComposer.tsx +81 -44
  126. package/src/execution/MessageEntry.tsx +134 -1
  127. package/src/github/index.ts +1 -0
  128. package/src/github/useGitHubConnection.ts +162 -22
  129. package/src/identity-provider/IdentityProviderWizard.tsx +112 -3
  130. package/src/index.ts +16 -1
  131. package/src/models/HarnessSelector.tsx +130 -0
  132. package/src/models/ModelSelector.tsx +285 -81
  133. package/src/models/__tests__/HarnessSelector.test.tsx +190 -0
  134. package/src/models/__tests__/harness.test.ts +66 -0
  135. package/src/models/__tests__/useModelRegistry.test.tsx +209 -0
  136. package/src/models/harness.ts +45 -0
  137. package/src/models/index.ts +7 -2
  138. package/src/models/registry.ts +122 -50
  139. package/src/models/useModelRegistry.ts +74 -24
  140. package/src/organization/OrgProfilePanel.tsx +98 -0
  141. package/src/runner/RunnerFileBrowser.tsx +227 -8
  142. package/src/runner/RunnerListPanel.tsx +13 -5
  143. package/src/runner/WorkspaceRunnerSelector.tsx +180 -0
  144. package/src/runner/__tests__/phase.test.ts +6 -2
  145. package/src/runner/index.ts +3 -0
  146. package/src/runner/phase.ts +18 -12
  147. package/src/runner/useRunnerFileBrowser.ts +39 -3
  148. package/src/session/__tests__/useCreateSession.test.tsx +296 -0
  149. package/src/session/__tests__/useNewSessionFlow.test.tsx +258 -0
  150. package/src/session/__tests__/useSessionConversation.test.tsx +53 -0
  151. package/src/session/index.ts +1 -1
  152. package/src/session/useCreateSession.ts +9 -0
  153. package/src/session/useNewSessionFlow.ts +46 -9
  154. package/src/session/usePersistedModel.ts +30 -6
  155. package/src/session/useSessionConversation.ts +6 -1
  156. package/src/session/useSessionPageFlow.ts +26 -2
  157. package/src/settings/MembersSection.tsx +23 -1
  158. package/src/workspace/WorkspaceEditor.tsx +176 -126
  159. package/src/workspace/index.ts +5 -0
  160. package/src/workspace/useRecentWorkspaces.ts +162 -0
  161. package/src/workspace/useWorkspaceEntries.ts +13 -0
  162. package/styles.css +1 -1
  163. package/workspace/WorkspaceEditor.d.ts +25 -22
  164. package/workspace/WorkspaceEditor.d.ts.map +1 -1
  165. package/workspace/WorkspaceEditor.js +64 -43
  166. package/workspace/WorkspaceEditor.js.map +1 -1
  167. package/workspace/index.d.ts +2 -0
  168. package/workspace/index.d.ts.map +1 -1
  169. package/workspace/index.js +1 -0
  170. package/workspace/index.js.map +1 -1
  171. package/workspace/useRecentWorkspaces.d.ts +31 -0
  172. package/workspace/useRecentWorkspaces.d.ts.map +1 -0
  173. package/workspace/useRecentWorkspaces.js +117 -0
  174. package/workspace/useRecentWorkspaces.js.map +1 -0
  175. package/workspace/useWorkspaceEntries.d.ts +8 -0
  176. package/workspace/useWorkspaceEntries.d.ts.map +1 -1
  177. package/workspace/useWorkspaceEntries.js +4 -0
  178. 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, filtered to exclude {@link DISABLED_PROVIDERS}. */
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, resolved from {@link DEFAULT_MODEL_ID}. */
20
+ /** The platform default model for the current mode. */
9
21
  readonly defaultModel: ModelInfo;
10
- /** Look up a single model by its `modelId`. Returns `undefined` for unknown or disabled models. */
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
- * function CustomModelPicker({ onSelect }: { onSelect: (id: string) => void }) {
26
- * const { models, byProvider, defaultModel, getModel } = useModelRegistry();
56
+ * // Unified mode flat picker with all models
57
+ * const { featured, models, getByKey } = useModelRegistry();
27
58
  *
28
- * return (
29
- * <select
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,EAIL,KAAK,SAAS,EACd,KAAK,QAAQ,EACd,MAAM,YAAY,CAAC;AAEpB,gDAAgD;AAChD,MAAM,WAAW,sBAAsB;IACrC,0EAA0E;IAC1E,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,0EAA0E;IAC1E,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;IACjC,mGAAmG;IACnG,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,CAAC;IAC9D,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;CACzC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,gBAAgB,IAAI,sBAAsB,CAmCzD"}
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
- * function CustomModelPicker({ onSelect }: { onSelect: (id: string) => void }) {
15
- * const { models, byProvider, defaultModel, getModel } = useModelRegistry();
19
+ * // Unified mode flat picker with all models
20
+ * const { featured, models, getByKey } = useModelRegistry();
16
21
  *
17
- * return (
18
- * <select
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 (DISABLED_PROVIDERS.has(model.provider))
40
- continue;
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
- byId.set(model.modelId, model);
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 === DEFAULT_MODEL_ID) {
51
- defaultModel = model;
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,GAGnB,MAAM,YAAY,CAAC;AAgBpB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAyB,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAC;QAC1C,MAAM,aAAa,GAAgB,EAAE,CAAC;QACtC,IAAI,YAAmC,CAAC;QAExC,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,IAAI,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAErD,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAE/B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1C,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,KAAK,gBAAgB,EAAE,CAAC;gBACvC,YAAY,GAAG,KAAK,CAAC;YACvB,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QAEhD,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,UAAU,EAAE,UAAyD;YACrE,YAAY,EAAE,YAAY,IAAI,aAAa,CAAC,CAAC,CAAC;YAC9C,QAAQ,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAChD,SAAS;SACV,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
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;AAe9F,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,kDA2RtB"}
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":"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"}
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.2.2",
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.2.2",
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.2.2",
47
- "@stigmer/sdk": "0.2.2",
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":"AAMA,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;CAC7B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,GACV,EAAE,sBAAsB,2CAmMxB"}
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: [_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: [
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 && (_jsx("div", { className: "flex items-center gap-0.5 overflow-x-auto text-[0.65rem] scrollbar-none", children: browser.segments.map((seg, i) => {
43
- const isLast = i === browser.segments.length - 1;
44
- 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));
45
- }) }))] }), 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: () => onSelect(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" })] })] })] }));
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
- return (_jsxs("span", { className: "inline-flex shrink-0 items-center gap-1", children: [_jsx("span", { className: `inline-block h-1.5 w-1.5 rounded-full ${phaseDotColor(phase)}`, "aria-hidden": "true" }), _jsx("span", { className: "text-[0.65rem] text-muted-foreground", children: phaseLabel(phase) })] }));
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