@stigmer/react 0.0.53 → 0.0.55

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 (118) hide show
  1. package/execution/ArtifactCard.d.ts +11 -1
  2. package/execution/ArtifactCard.d.ts.map +1 -1
  3. package/execution/ArtifactCard.js +22 -3
  4. package/execution/ArtifactCard.js.map +1 -1
  5. package/execution/ArtifactPreviewModal.d.ts.map +1 -1
  6. package/execution/ArtifactPreviewModal.js +1 -1
  7. package/execution/ArtifactPreviewModal.js.map +1 -1
  8. package/execution/ArtifactsWidget.d.ts +26 -19
  9. package/execution/ArtifactsWidget.d.ts.map +1 -1
  10. package/execution/ArtifactsWidget.js +32 -26
  11. package/execution/ArtifactsWidget.js.map +1 -1
  12. package/execution/MessageThread.d.ts +10 -1
  13. package/execution/MessageThread.d.ts.map +1 -1
  14. package/execution/MessageThread.js +21 -17
  15. package/execution/MessageThread.js.map +1 -1
  16. package/execution/SandboxContext.d.ts +32 -0
  17. package/execution/SandboxContext.d.ts.map +1 -0
  18. package/execution/SandboxContext.js +26 -0
  19. package/execution/SandboxContext.js.map +1 -0
  20. package/execution/SetupProgress.d.ts +23 -13
  21. package/execution/SetupProgress.d.ts.map +1 -1
  22. package/execution/SetupProgress.js +18 -12
  23. package/execution/SetupProgress.js.map +1 -1
  24. package/execution/ToolArgsView.d.ts.map +1 -1
  25. package/execution/ToolArgsView.js +3 -1
  26. package/execution/ToolArgsView.js.map +1 -1
  27. package/execution/ToolCallDetail.d.ts.map +1 -1
  28. package/execution/ToolCallDetail.js +3 -1
  29. package/execution/ToolCallDetail.js.map +1 -1
  30. package/execution/ToolCallItem.d.ts.map +1 -1
  31. package/execution/ToolCallItem.js +7 -1
  32. package/execution/ToolCallItem.js.map +1 -1
  33. package/execution/WriteBackCard.d.ts +34 -0
  34. package/execution/WriteBackCard.d.ts.map +1 -0
  35. package/execution/WriteBackCard.js +75 -0
  36. package/execution/WriteBackCard.js.map +1 -0
  37. package/execution/WriteBacksWidget.d.ts +49 -0
  38. package/execution/WriteBacksWidget.d.ts.map +1 -0
  39. package/execution/WriteBacksWidget.js +44 -0
  40. package/execution/WriteBacksWidget.js.map +1 -0
  41. package/execution/__tests__/file-path-resolver.test.d.ts +2 -0
  42. package/execution/__tests__/file-path-resolver.test.d.ts.map +1 -0
  43. package/execution/__tests__/file-path-resolver.test.js +180 -0
  44. package/execution/__tests__/file-path-resolver.test.js.map +1 -0
  45. package/execution/file-path-resolver.d.ts +3 -3
  46. package/execution/file-path-resolver.d.ts.map +1 -1
  47. package/execution/file-path-resolver.js +23 -12
  48. package/execution/file-path-resolver.js.map +1 -1
  49. package/execution/index.d.ts +9 -0
  50. package/execution/index.d.ts.map +1 -1
  51. package/execution/index.js +5 -0
  52. package/execution/index.js.map +1 -1
  53. package/execution/sandbox-path-normalizer.d.ts +46 -0
  54. package/execution/sandbox-path-normalizer.d.ts.map +1 -0
  55. package/execution/sandbox-path-normalizer.js +73 -0
  56. package/execution/sandbox-path-normalizer.js.map +1 -0
  57. package/execution/useArtifactContent.d.ts +5 -1
  58. package/execution/useArtifactContent.d.ts.map +1 -1
  59. package/execution/useArtifactContent.js +6 -2
  60. package/execution/useArtifactContent.js.map +1 -1
  61. package/execution/useWorkspaceWriteBacks.d.ts +40 -0
  62. package/execution/useWorkspaceWriteBacks.d.ts.map +1 -0
  63. package/execution/useWorkspaceWriteBacks.js +41 -0
  64. package/execution/useWorkspaceWriteBacks.js.map +1 -0
  65. package/github/GitHubRepoPicker.d.ts +5 -2
  66. package/github/GitHubRepoPicker.d.ts.map +1 -1
  67. package/github/GitHubRepoPicker.js +133 -36
  68. package/github/GitHubRepoPicker.js.map +1 -1
  69. package/github/index.d.ts +1 -0
  70. package/github/index.d.ts.map +1 -1
  71. package/github/index.js +1 -0
  72. package/github/index.js.map +1 -1
  73. package/github/useGitHubSearch.d.ts +20 -0
  74. package/github/useGitHubSearch.d.ts.map +1 -0
  75. package/github/useGitHubSearch.js +127 -0
  76. package/github/useGitHubSearch.js.map +1 -0
  77. package/index.d.ts +6 -6
  78. package/index.d.ts.map +1 -1
  79. package/index.js +3 -3
  80. package/index.js.map +1 -1
  81. package/package.json +4 -4
  82. package/session/index.d.ts +4 -0
  83. package/session/index.d.ts.map +1 -1
  84. package/session/index.js +2 -0
  85. package/session/index.js.map +1 -1
  86. package/session/useSessionArtifacts.d.ts +73 -0
  87. package/session/useSessionArtifacts.d.ts.map +1 -0
  88. package/session/useSessionArtifacts.js +95 -0
  89. package/session/useSessionArtifacts.js.map +1 -0
  90. package/session/useSessionWriteBacks.d.ts +56 -0
  91. package/session/useSessionWriteBacks.d.ts.map +1 -0
  92. package/session/useSessionWriteBacks.js +56 -0
  93. package/session/useSessionWriteBacks.js.map +1 -0
  94. package/src/execution/ArtifactCard.tsx +40 -0
  95. package/src/execution/ArtifactPreviewModal.tsx +2 -0
  96. package/src/execution/ArtifactsWidget.tsx +67 -43
  97. package/src/execution/MessageThread.tsx +23 -1
  98. package/src/execution/SandboxContext.ts +47 -0
  99. package/src/execution/SetupProgress.tsx +33 -14
  100. package/src/execution/ToolArgsView.tsx +3 -1
  101. package/src/execution/ToolCallDetail.tsx +3 -1
  102. package/src/execution/ToolCallItem.tsx +7 -1
  103. package/src/execution/WriteBackCard.tsx +210 -0
  104. package/src/execution/WriteBacksWidget.tsx +82 -0
  105. package/src/execution/__tests__/file-path-resolver.test.ts +295 -0
  106. package/src/execution/file-path-resolver.ts +24 -12
  107. package/src/execution/index.ts +13 -0
  108. package/src/execution/sandbox-path-normalizer.ts +80 -0
  109. package/src/execution/useArtifactContent.ts +6 -1
  110. package/src/execution/useWorkspaceWriteBacks.ts +56 -0
  111. package/src/github/GitHubRepoPicker.tsx +413 -108
  112. package/src/github/index.ts +5 -0
  113. package/src/github/useGitHubSearch.ts +162 -0
  114. package/src/index.ts +14 -0
  115. package/src/session/index.ts +12 -0
  116. package/src/session/useSessionArtifacts.ts +143 -0
  117. package/src/session/useSessionWriteBacks.ts +94 -0
  118. package/styles.css +1 -1
@@ -0,0 +1,41 @@
1
+ "use client";
2
+ import { useMemo } from "react";
3
+ /**
4
+ * Pure derivation hook that extracts workspace write-back data from an
5
+ * {@link AgentExecution} snapshot.
6
+ *
7
+ * Follows the same `useMemo`-based derivation pattern as
8
+ * {@link useExecutionArtifacts}: no side effects, no data fetching.
9
+ * The execution object (typically from {@link useExecutionStream}) is
10
+ * the single input.
11
+ *
12
+ * Returns an empty array when the execution is `null` or has no
13
+ * write-backs, eliminating null-checking at every consumer call site.
14
+ *
15
+ * Each `WorkspaceWriteBack` entry corresponds to a git-backed workspace
16
+ * entry where the platform detected file changes and ran the automatic
17
+ * branch/commit/push/PR workflow.
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * const { execution } = useExecutionStream(executionId);
22
+ * const { writeBacks, hasWriteBacks } = useWorkspaceWriteBacks(execution);
23
+ *
24
+ * if (hasWriteBacks) {
25
+ * writeBacks.forEach((wb) => console.log(wb.workspaceEntryName, wb.pullRequestUrl));
26
+ * }
27
+ * ```
28
+ *
29
+ * @see useExecutionArtifacts — similar derivation hook for artifacts
30
+ */
31
+ export function useWorkspaceWriteBacks(execution) {
32
+ return useMemo(() => {
33
+ const writeBacks = execution?.status?.workspaceWriteBacks ?? [];
34
+ return {
35
+ writeBacks,
36
+ hasWriteBacks: writeBacks.length > 0,
37
+ writeBackCount: writeBacks.length,
38
+ };
39
+ }, [execution]);
40
+ }
41
+ //# sourceMappingURL=useWorkspaceWriteBacks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWorkspaceWriteBacks.js","sourceRoot":"","sources":["../../src/execution/useWorkspaceWriteBacks.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAahC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,sBAAsB,CACpC,SAAgC;IAEhC,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,UAAU,GAAG,SAAS,EAAE,MAAM,EAAE,mBAAmB,IAAI,EAAE,CAAC;QAEhE,OAAO;YACL,UAAU;YACV,aAAa,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC;YACpC,cAAc,EAAE,UAAU,CAAC,MAAM;SAClC,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AAClB,CAAC"}
@@ -11,12 +11,15 @@ export interface GitHubRepoPickerProps {
11
11
  * Styled component for browsing and selecting a GitHub repository.
12
12
  *
13
13
  * Features:
14
- * - Owner-grouped sections (personal repos first, then orgs)
14
+ * - Two modes: "My Repos" (user's own repos) and "All GitHub" (public search)
15
+ * - Owner-grouped sections in My Repos mode
15
16
  * - Recently selected repos pinned at top
16
- * - Fixed 300px max-height with scroll shadow indicators
17
+ * - Fixed max-height with scroll shadow indicators
17
18
  * - Keyboard navigation (Arrow keys, Enter, Escape)
18
19
  * - Search with match highlighting
19
20
  * - Branch selector after repo selection
21
+ * - Manual URL entry for repos not discoverable via search
22
+ * - Link to manage GitHub App repository access
20
23
  *
21
24
  * All visual properties flow through `--stgm-*` tokens.
22
25
  */
@@ -1 +1 @@
1
- {"version":3,"file":"GitHubRepoPicker.d.ts","sourceRoot":"","sources":["../../src/github/GitHubRepoPicker.tsx"],"names":[],"mappings":"AAYA,MAAM,WAAW,qBAAqB;IACpC,yCAAyC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAuHD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,GACV,EAAE,qBAAqB,2CAoWvB"}
1
+ {"version":3,"file":"GitHubRepoPicker.d.ts","sourceRoot":"","sources":["../../src/github/GitHubRepoPicker.tsx"],"names":[],"mappings":"AAaA,MAAM,WAAW,qBAAqB;IACpC,yCAAyC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAwHD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,GACV,EAAE,qBAAqB,2CA0cvB"}
@@ -2,6 +2,7 @@
2
2
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useState, useCallback, useEffect, useRef, useMemo, } from "react";
4
4
  import { useGitHubRepos } from "./useGitHubRepos";
5
+ import { useGitHubSearch } from "./useGitHubSearch";
5
6
  const RECENT_REPOS_KEY = "stigmer:github:recent-repos";
6
7
  const MAX_RECENT = 3;
7
8
  function getRecentRepos() {
@@ -21,7 +22,6 @@ function addRecentRepo(repo) {
21
22
  function groupRepos(filteredRepos, recentEntries) {
22
23
  const groups = [];
23
24
  const repoLookup = new Map(filteredRepos.map((r) => [`${r.owner}/${r.name}`, r]));
24
- // Recent group — only include entries that exist in the filtered set
25
25
  const recentMatched = recentEntries
26
26
  .map((r) => repoLookup.get(`${r.owner}/${r.name}`))
27
27
  .filter((r) => r !== undefined);
@@ -33,7 +33,6 @@ function groupRepos(filteredRepos, recentEntries) {
33
33
  repos: recentMatched,
34
34
  });
35
35
  }
36
- // Owner groups — personal (User) repos first, then orgs by repo count
37
36
  const ownerMap = new Map();
38
37
  for (const repo of filteredRepos) {
39
38
  const existing = ownerMap.get(repo.owner);
@@ -69,26 +68,38 @@ function HighlightMatch({ text, query }) {
69
68
  // Main component
70
69
  // ---------------------------------------------------------------------------
71
70
  const LIST_ID = "stgm-repo-list";
71
+ const GITHUB_INSTALLATIONS_URL = "https://github.com/settings/installations";
72
72
  /**
73
73
  * Styled component for browsing and selecting a GitHub repository.
74
74
  *
75
75
  * Features:
76
- * - Owner-grouped sections (personal repos first, then orgs)
76
+ * - Two modes: "My Repos" (user's own repos) and "All GitHub" (public search)
77
+ * - Owner-grouped sections in My Repos mode
77
78
  * - Recently selected repos pinned at top
78
- * - Fixed 300px max-height with scroll shadow indicators
79
+ * - Fixed max-height with scroll shadow indicators
79
80
  * - Keyboard navigation (Arrow keys, Enter, Escape)
80
81
  * - Search with match highlighting
81
82
  * - Branch selector after repo selection
83
+ * - Manual URL entry for repos not discoverable via search
84
+ * - Link to manage GitHub App repository access
82
85
  *
83
86
  * All visual properties flow through `--stgm-*` tokens.
84
87
  */
85
88
  export function GitHubRepoPicker({ token, onSelect, onCancel, className, }) {
86
- const { repos, isLoading, isBackgroundLoading, error, search, setSearch, fetchBranches, } = useGitHubRepos(token);
87
- // Branch selection state
89
+ const [mode, setMode] = useState("my-repos");
90
+ const [showManualEntry, setShowManualEntry] = useState(false);
91
+ // My Repos data
92
+ const myRepos = useGitHubRepos(token);
93
+ // All GitHub search data
94
+ const githubSearch = useGitHubSearch(token);
95
+ // Branch selection state (shared across modes)
88
96
  const [selectedRepo, setSelectedRepo] = useState(null);
89
97
  const [branches, setBranches] = useState([]);
90
98
  const [selectedBranch, setSelectedBranch] = useState("");
91
99
  const [loadingBranches, setLoadingBranches] = useState(false);
100
+ // Manual URL state
101
+ const [manualUrl, setManualUrl] = useState("");
102
+ const [manualBranch, setManualBranch] = useState("");
92
103
  // Keyboard navigation
93
104
  const [focusIndex, setFocusIndex] = useState(-1);
94
105
  const listRef = useRef(null);
@@ -98,9 +109,18 @@ export function GitHubRepoPicker({ token, onSelect, onCancel, className, }) {
98
109
  const [canScrollDown, setCanScrollDown] = useState(false);
99
110
  // Recent repos
100
111
  const [recentRepos, setRecentRepos] = useState(getRecentRepos);
101
- // Group and flatten repos for rendering + keyboard nav
102
- const groups = useMemo(() => groupRepos(repos, recentRepos), [repos, recentRepos]);
112
+ // --- Mode-dependent derived state ---
113
+ const activeSearch = mode === "my-repos" ? myRepos.search : githubSearch.query;
114
+ const setActiveSearch = mode === "my-repos" ? myRepos.setSearch : githubSearch.setQuery;
115
+ const activeRepos = mode === "my-repos" ? myRepos.repos : githubSearch.results;
116
+ const activeError = mode === "my-repos" ? myRepos.error : githubSearch.error;
117
+ const activeIsLoading = mode === "my-repos" ? myRepos.isLoading : githubSearch.isSearching;
118
+ // Group repos only in "my-repos" mode
119
+ const groups = useMemo(() => (mode === "my-repos" ? groupRepos(activeRepos, recentRepos) : []), [mode, activeRepos, recentRepos]);
120
+ // Flat list for keyboard nav: grouped in my-repos, flat in all-github
103
121
  const flatItems = useMemo(() => {
122
+ if (mode === "all-github")
123
+ return [...activeRepos];
104
124
  const items = [];
105
125
  for (const group of groups) {
106
126
  for (const repo of group.repos) {
@@ -108,11 +128,11 @@ export function GitHubRepoPicker({ token, onSelect, onCancel, className, }) {
108
128
  }
109
129
  }
110
130
  return items;
111
- }, [groups]);
112
- // Reset focus index when search changes
131
+ }, [mode, activeRepos, groups]);
132
+ // Reset focus index when search or mode changes
113
133
  useEffect(() => {
114
134
  setFocusIndex(-1);
115
- }, [search]);
135
+ }, [activeSearch, mode]);
116
136
  // Scroll focused item into view
117
137
  useEffect(() => {
118
138
  if (focusIndex >= 0) {
@@ -136,10 +156,22 @@ export function GitHubRepoPicker({ token, onSelect, onCancel, className, }) {
136
156
  updateScrollShadows();
137
157
  return () => el.removeEventListener("scroll", updateScrollShadows);
138
158
  }, [updateScrollShadows]);
139
- // Re-check shadows when repo data changes
140
159
  useEffect(() => {
141
160
  updateScrollShadows();
142
- }, [repos, updateScrollShadows]);
161
+ }, [activeRepos, updateScrollShadows]);
162
+ const handleModeSwitch = useCallback((newMode) => {
163
+ if (newMode === mode)
164
+ return;
165
+ setMode(newMode);
166
+ setFocusIndex(-1);
167
+ if (newMode === "my-repos") {
168
+ githubSearch.setQuery("");
169
+ }
170
+ else {
171
+ myRepos.setSearch("");
172
+ }
173
+ setTimeout(() => searchRef.current?.focus(), 0);
174
+ }, [mode, githubSearch, myRepos]);
143
175
  const handleRepoClick = useCallback(async (repo) => {
144
176
  setSelectedRepo({
145
177
  owner: repo.owner,
@@ -149,10 +181,10 @@ export function GitHubRepoPicker({ token, onSelect, onCancel, className, }) {
149
181
  });
150
182
  setSelectedBranch(repo.defaultBranch);
151
183
  setLoadingBranches(true);
152
- const b = await fetchBranches(repo.owner, repo.name);
184
+ const b = await myRepos.fetchBranches(repo.owner, repo.name);
153
185
  setBranches(b);
154
186
  setLoadingBranches(false);
155
- }, [fetchBranches]);
187
+ }, [myRepos]);
156
188
  const handleAdd = useCallback(() => {
157
189
  if (selectedRepo && selectedBranch) {
158
190
  addRecentRepo({
@@ -168,8 +200,15 @@ export function GitHubRepoPicker({ token, onSelect, onCancel, className, }) {
168
200
  setSelectedBranch("");
169
201
  }
170
202
  }, [selectedRepo, selectedBranch, onSelect]);
171
- // Combobox keyboard handler all keyboard interaction goes through the
172
- // search input so focus never leaves it.
203
+ const handleManualAdd = useCallback(() => {
204
+ const url = manualUrl.trim();
205
+ if (!url)
206
+ return;
207
+ onSelect(url, manualBranch.trim() || "main");
208
+ setManualUrl("");
209
+ setManualBranch("");
210
+ setShowManualEntry(false);
211
+ }, [manualUrl, manualBranch, onSelect]);
173
212
  const handleSearchKeyDown = useCallback((e) => {
174
213
  if (e.key === "ArrowDown") {
175
214
  e.preventDefault();
@@ -186,30 +225,46 @@ export function GitHubRepoPicker({ token, onSelect, onCancel, className, }) {
186
225
  handleRepoClick(flatItems[focusIndex]);
187
226
  }
188
227
  else if (e.key === "Enter") {
189
- // Prevent form submission when no item is focused
190
228
  e.preventDefault();
191
229
  }
192
230
  else if (e.key === "Escape") {
193
231
  e.preventDefault();
194
- if (search) {
195
- setSearch("");
232
+ if (activeSearch) {
233
+ setActiveSearch("");
196
234
  setFocusIndex(-1);
197
235
  }
198
236
  else {
199
237
  onCancel?.();
200
238
  }
201
239
  }
202
- }, [flatItems, focusIndex, handleRepoClick, onCancel, search, setSearch]);
240
+ }, [flatItems, focusIndex, handleRepoClick, onCancel, activeSearch, setActiveSearch]);
241
+ const handleManualKeyDown = useCallback((e) => {
242
+ if (e.key === "Enter") {
243
+ e.preventDefault();
244
+ handleManualAdd();
245
+ }
246
+ else if (e.key === "Escape") {
247
+ e.preventDefault();
248
+ setShowManualEntry(false);
249
+ setTimeout(() => searchRef.current?.focus(), 0);
250
+ }
251
+ }, [handleManualAdd]);
203
252
  // --- Branch selection view ---
204
253
  if (selectedRepo) {
205
254
  return (_jsxs("div", { className: ["space-y-2", className].filter(Boolean).join(" "), children: [_jsxs("div", { className: "flex items-center gap-2 text-xs text-foreground", children: [_jsx("button", { type: "button", onClick: () => {
206
255
  setSelectedRepo(null);
207
256
  setBranches([]);
208
- // Restore focus to search
209
257
  setTimeout(() => searchRef.current?.focus(), 0);
210
258
  }, className: "text-muted-foreground hover:text-foreground transition-colors", "aria-label": "Back to repo list", children: _jsx(ChevronLeftIcon, {}) }), _jsxs("span", { className: "font-medium truncate", children: [selectedRepo.owner, "/", selectedRepo.name] })] }), _jsxs("div", { className: "space-y-1.5", children: [_jsx("label", { className: "text-[0.65rem] text-muted-foreground", children: "Branch" }), loadingBranches ? (_jsx("div", { className: "text-xs text-muted-foreground", children: "Loading branches..." })) : (_jsx("select", { value: selectedBranch, onChange: (e) => setSelectedBranch(e.target.value), className: "w-full rounded-md border border-input bg-background px-2.5 py-1.5 text-xs text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", children: branches.map((b) => (_jsx("option", { value: b.name, children: b.name }, b.name))) }))] }), _jsx("div", { className: "flex justify-end", children: _jsx("button", { type: "button", onClick: handleAdd, disabled: !selectedBranch, className: "rounded-md bg-primary px-2.5 py-1 text-xs text-primary-foreground hover:bg-primary/90 transition-colors disabled:opacity-40", children: "Add" }) })] }));
211
259
  }
212
- // --- Compute flat index offsets per group for rendering ---
260
+ // --- Manual URL entry view ---
261
+ if (showManualEntry) {
262
+ return (_jsxs("div", { className: ["space-y-2", className].filter(Boolean).join(" "), children: [_jsxs("div", { className: "flex items-center gap-2 text-xs text-foreground", children: [_jsx("button", { type: "button", onClick: () => {
263
+ setShowManualEntry(false);
264
+ setTimeout(() => searchRef.current?.focus(), 0);
265
+ }, className: "text-muted-foreground hover:text-foreground transition-colors", "aria-label": "Back to repo list", children: _jsx(ChevronLeftIcon, {}) }), _jsx("span", { className: "font-medium", children: "Paste a repository URL" })] }), _jsx("input", { type: "url", placeholder: "https://github.com/org/repo", value: manualUrl, onChange: (e) => setManualUrl(e.target.value), onKeyDown: handleManualKeyDown, className: "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-2 focus-visible:ring-ring", autoFocus: true }), _jsx("input", { type: "text", placeholder: "Branch (optional, defaults to main)", value: manualBranch, onChange: (e) => setManualBranch(e.target.value), onKeyDown: handleManualKeyDown, className: "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-2 focus-visible:ring-ring" }), _jsx("div", { className: "flex justify-end", children: _jsx("button", { type: "button", onClick: handleManualAdd, disabled: !manualUrl.trim(), className: "rounded-md bg-primary px-2.5 py-1 text-xs text-primary-foreground hover:bg-primary/90 transition-colors disabled:opacity-40", children: "Add" }) })] }));
266
+ }
267
+ // --- Compute flat index offsets per group for "my-repos" rendering ---
213
268
  let runningIndex = 0;
214
269
  const groupOffsets = groups.map((g) => {
215
270
  const offset = runningIndex;
@@ -217,21 +272,63 @@ export function GitHubRepoPicker({ token, onSelect, onCancel, className, }) {
217
272
  return offset;
218
273
  });
219
274
  // --- Main repo list view ---
220
- return (_jsxs("div", { className: ["space-y-1.5", className].filter(Boolean).join(" "), children: [_jsx("input", { ref: searchRef, type: "text", role: "combobox", "aria-expanded": true, "aria-controls": LIST_ID, "aria-activedescendant": focusIndex >= 0 ? `stgm-repo-${focusIndex}` : undefined, placeholder: "Search repositories...", value: search, onChange: (e) => setSearch(e.target.value), onKeyDown: handleSearchKeyDown, className: "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-2 focus-visible:ring-ring", autoFocus: true }), error && (_jsx("p", { className: "text-xs text-destructive", children: error })), _jsxs("div", { className: "relative", children: [canScrollUp && (_jsx("div", { className: "absolute inset-x-0 top-0 h-3 z-10 pointer-events-none", style: {
275
+ return (_jsxs("div", { className: ["space-y-1.5", className].filter(Boolean).join(" "), children: [_jsxs("div", { className: "flex rounded-md border border-border bg-muted/30 p-0.5", children: [_jsx("button", { type: "button", onClick: () => handleModeSwitch("my-repos"), className: [
276
+ "flex-1 rounded px-2 py-1 text-[0.65rem] font-medium transition-colors",
277
+ mode === "my-repos"
278
+ ? "bg-background text-foreground shadow-sm"
279
+ : "text-muted-foreground hover:text-foreground",
280
+ ].join(" "), children: "My Repos" }), _jsx("button", { type: "button", onClick: () => handleModeSwitch("all-github"), className: [
281
+ "flex-1 rounded px-2 py-1 text-[0.65rem] font-medium transition-colors",
282
+ mode === "all-github"
283
+ ? "bg-background text-foreground shadow-sm"
284
+ : "text-muted-foreground hover:text-foreground",
285
+ ].join(" "), children: "All GitHub" })] }), _jsx("input", { ref: searchRef, type: "text", role: "combobox", "aria-expanded": true, "aria-controls": LIST_ID, "aria-activedescendant": focusIndex >= 0 ? `stgm-repo-${focusIndex}` : undefined, placeholder: mode === "my-repos"
286
+ ? "Search repositories..."
287
+ : "Search all of GitHub...", value: activeSearch, onChange: (e) => setActiveSearch(e.target.value), onKeyDown: handleSearchKeyDown, className: "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-2 focus-visible:ring-ring", autoFocus: true }), activeError && (_jsx("p", { className: "text-xs text-destructive", children: activeError })), _jsxs("div", { className: "relative", children: [canScrollUp && (_jsx("div", { className: "absolute inset-x-0 top-0 h-3 z-10 pointer-events-none", style: {
221
288
  background: "linear-gradient(to bottom, var(--color-card, hsl(0 0% 9%)), transparent)",
222
- } })), _jsx("div", { ref: listRef, id: LIST_ID, role: "listbox", "aria-label": "Repositories", className: "max-h-64 overflow-y-auto", children: isLoading ? (_jsx(LoadingSkeleton, {})) : flatItems.length === 0 ? (_jsx("div", { className: "py-4 text-center text-xs text-muted-foreground", children: search
223
- ? "No repos match your search"
224
- : "No repositories found" })) : (_jsxs(_Fragment, { children: [groups.map((group, gi) => (_jsxs("div", { children: [_jsxs("div", { className: "sticky top-0 z-[1] bg-card/95 px-2 py-1 text-[0.65rem] font-medium text-muted-foreground backdrop-blur-sm", children: [group.label, !group.isRecent && (_jsxs("span", { className: "ml-1 opacity-50", children: ["(", group.repos.length, ")"] }))] }), group.repos.map((repo, ri) => {
225
- const flatIdx = groupOffsets[gi] + ri;
226
- return (_jsxs("button", { id: `stgm-repo-${flatIdx}`, type: "button", "data-idx": flatIdx, onClick: () => handleRepoClick(repo), className: [
227
- "flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-xs transition-colors",
228
- flatIdx === focusIndex
229
- ? "bg-accent text-foreground"
230
- : "text-foreground hover:bg-accent/50",
231
- ].join(" "), role: "option", "aria-selected": flatIdx === focusIndex, children: [_jsx("span", { className: "min-w-0 flex-1 truncate", children: group.isRecent ? (_jsx(HighlightMatch, { text: repo.fullName, query: search })) : (_jsx(HighlightMatch, { text: repo.name, query: search })) }), _jsx("span", { className: "shrink-0 rounded px-1 py-0.5 text-[0.6rem] bg-muted text-muted-foreground", children: repo.isPrivate ? "private" : "public" })] }, `${group.key}-${repo.id}`));
232
- })] }, group.key))), isBackgroundLoading && (_jsx("div", { className: "py-1 text-center text-[0.6rem] text-muted-foreground", children: "Loading more..." }))] })) }), canScrollDown && (_jsx("div", { className: "absolute inset-x-0 bottom-0 h-3 z-10 pointer-events-none", style: {
289
+ } })), _jsx("div", { ref: listRef, id: LIST_ID, role: "listbox", "aria-label": "Repositories", className: "max-h-64 overflow-y-auto", children: mode === "my-repos" ? (_jsx(MyReposList, { groups: groups, groupOffsets: groupOffsets, flatItems: flatItems, focusIndex: focusIndex, isLoading: myRepos.isLoading, isBackgroundLoading: myRepos.isBackgroundLoading, search: myRepos.search, onRepoClick: handleRepoClick })) : (_jsx(SearchResultsList, { results: githubSearch.results, focusIndex: focusIndex, isSearching: githubSearch.isSearching, query: githubSearch.query, totalCount: githubSearch.totalCount, hasMore: githubSearch.hasMore, onRepoClick: handleRepoClick, onLoadMore: githubSearch.loadMore })) }), canScrollDown && (_jsx("div", { className: "absolute inset-x-0 bottom-0 h-3 z-10 pointer-events-none", style: {
233
290
  background: "linear-gradient(to top, var(--color-card, hsl(0 0% 9%)), transparent)",
234
- } }))] })] }));
291
+ } }))] }), _jsxs("div", { className: "flex items-center gap-3 border-t border-border pt-1.5 text-[0.65rem] text-muted-foreground", children: [_jsx("button", { type: "button", onClick: () => setShowManualEntry(true), className: "hover:text-foreground transition-colors", children: "Paste a URL" }), _jsx("span", { className: "opacity-30", children: "\u00B7" }), _jsx("a", { href: GITHUB_INSTALLATIONS_URL, target: "_blank", rel: "noopener noreferrer", className: "hover:text-foreground transition-colors", children: "Manage access" })] })] }));
292
+ }
293
+ // ---------------------------------------------------------------------------
294
+ // My Repos list (grouped)
295
+ // ---------------------------------------------------------------------------
296
+ function MyReposList({ groups, groupOffsets, flatItems, focusIndex, isLoading, isBackgroundLoading, search, onRepoClick, }) {
297
+ if (isLoading)
298
+ return _jsx(LoadingSkeleton, {});
299
+ if (flatItems.length === 0) {
300
+ return (_jsx("div", { className: "py-4 text-center text-xs text-muted-foreground", children: search ? "No repos match your search" : "No repositories found" }));
301
+ }
302
+ return (_jsxs(_Fragment, { children: [groups.map((group, gi) => (_jsxs("div", { children: [_jsxs("div", { className: "sticky top-0 z-[1] bg-card/95 px-2 py-1 text-[0.65rem] font-medium text-muted-foreground backdrop-blur-sm", children: [group.label, !group.isRecent && (_jsxs("span", { className: "ml-1 opacity-50", children: ["(", group.repos.length, ")"] }))] }), group.repos.map((repo, ri) => {
303
+ const flatIdx = groupOffsets[gi] + ri;
304
+ return (_jsx(RepoRow, { repo: repo, flatIdx: flatIdx, focusIndex: focusIndex, displayName: group.isRecent ? repo.fullName : repo.name, query: search, onClick: onRepoClick }, `${group.key}-${repo.id}`));
305
+ })] }, group.key))), isBackgroundLoading && (_jsx("div", { className: "py-1 text-center text-[0.6rem] text-muted-foreground", children: "Loading more..." }))] }));
306
+ }
307
+ // ---------------------------------------------------------------------------
308
+ // All GitHub search results list (flat)
309
+ // ---------------------------------------------------------------------------
310
+ function SearchResultsList({ results, focusIndex, isSearching, query, totalCount, hasMore, onRepoClick, onLoadMore, }) {
311
+ if (!query) {
312
+ return (_jsx("div", { className: "py-6 text-center text-xs text-muted-foreground", children: "Type to search all of GitHub" }));
313
+ }
314
+ if (isSearching && results.length === 0) {
315
+ return _jsx(LoadingSkeleton, {});
316
+ }
317
+ if (results.length === 0) {
318
+ return (_jsx("div", { className: "py-4 text-center text-xs text-muted-foreground", children: "No repositories found" }));
319
+ }
320
+ return (_jsxs(_Fragment, { children: [totalCount > 0 && (_jsxs("div", { className: "px-2 py-1 text-[0.6rem] text-muted-foreground", children: [totalCount.toLocaleString(), " ", totalCount === 1 ? "result" : "results"] })), results.map((repo, i) => (_jsx(RepoRow, { repo: repo, flatIdx: i, focusIndex: focusIndex, displayName: repo.fullName, query: query, onClick: onRepoClick }, repo.id))), isSearching && (_jsx("div", { className: "py-1 text-center text-[0.6rem] text-muted-foreground", children: "Searching..." })), hasMore && !isSearching && (_jsx("button", { type: "button", onClick: onLoadMore, className: "w-full py-1.5 text-center text-[0.65rem] text-muted-foreground hover:text-foreground transition-colors", children: "Load more results" }))] }));
321
+ }
322
+ // ---------------------------------------------------------------------------
323
+ // Shared repo row
324
+ // ---------------------------------------------------------------------------
325
+ function RepoRow({ repo, flatIdx, focusIndex, displayName, query, onClick, }) {
326
+ return (_jsxs("button", { id: `stgm-repo-${flatIdx}`, type: "button", "data-idx": flatIdx, onClick: () => onClick(repo), className: [
327
+ "flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-xs transition-colors",
328
+ flatIdx === focusIndex
329
+ ? "bg-accent text-foreground"
330
+ : "text-foreground hover:bg-accent/50",
331
+ ].join(" "), role: "option", "aria-selected": flatIdx === focusIndex, children: [_jsx("span", { className: "min-w-0 flex-1 truncate", children: _jsx(HighlightMatch, { text: displayName, query: query }) }), _jsx("span", { className: "shrink-0 rounded px-1 py-0.5 text-[0.6rem] bg-muted text-muted-foreground", children: repo.isPrivate ? "private" : "public" })] }));
235
332
  }
236
333
  // ---------------------------------------------------------------------------
237
334
  // Loading skeleton
@@ -1 +1 @@
1
- {"version":3,"file":"GitHubRepoPicker.js","sourceRoot":"","sources":["../../src/github/GitHubRepoPicker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GitHubRepoPicker.js","sourceRoot":"","sources":["../../src/github/GitHubRepoPicker.tsx"],"names":[],"mappings":"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"}
package/github/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { useGitHubConnection, GITHUB_CALLBACK_MESSAGE_TYPE, type GitHubUser, type GitHubConnectOptions, type UseGitHubConnectionReturn, } from "./useGitHubConnection";
2
2
  export { useGitHubRepos, type GitHubRepo, type GitHubBranch, type UseGitHubReposReturn, } from "./useGitHubRepos";
3
+ export { useGitHubSearch, type UseGitHubSearchReturn, } from "./useGitHubSearch";
3
4
  export { GitHubRepoPicker, type GitHubRepoPickerProps, } from "./GitHubRepoPicker";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/github/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,GAC/B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,cAAc,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/github/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,GAC/B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,cAAc,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAC"}
package/github/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export { useGitHubConnection, GITHUB_CALLBACK_MESSAGE_TYPE, } from "./useGitHubConnection";
2
2
  export { useGitHubRepos, } from "./useGitHubRepos";
3
+ export { useGitHubSearch, } from "./useGitHubSearch";
3
4
  export { GitHubRepoPicker, } from "./GitHubRepoPicker";
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/github/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAI7B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,cAAc,GAIf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,gBAAgB,GAEjB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/github/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAI7B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,cAAc,GAIf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,GAEhB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,gBAAgB,GAEjB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { GitHubRepo } from "./useGitHubRepos";
2
+ export interface UseGitHubSearchReturn {
3
+ readonly results: readonly GitHubRepo[];
4
+ readonly isSearching: boolean;
5
+ readonly error: string | null;
6
+ readonly query: string;
7
+ readonly setQuery: (query: string) => void;
8
+ readonly totalCount: number;
9
+ readonly hasMore: boolean;
10
+ readonly loadMore: () => void;
11
+ }
12
+ /**
13
+ * Data hook that searches GitHub's public repository index.
14
+ *
15
+ * Uses the GitHub Search API (`/search/repositories`) with debounced input.
16
+ * Finds repositories across all of GitHub, not just the user's own repos.
17
+ * Works with or without an auth token (auth: 30 req/min; unauth: 10 req/min).
18
+ */
19
+ export declare function useGitHubSearch(token: string | null): UseGitHubSearchReturn;
20
+ //# sourceMappingURL=useGitHubSearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGitHubSearch.d.ts","sourceRoot":"","sources":["../../src/github/useGitHubSearch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMnD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;CAC/B;AA4DD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,qBAAqB,CA0EvB"}
@@ -0,0 +1,127 @@
1
+ "use client";
2
+ import { useCallback, useEffect, useRef, useState } from "react";
3
+ const GITHUB_SEARCH_API = "https://api.github.com/search/repositories";
4
+ const DEBOUNCE_MS = 350;
5
+ const PER_PAGE = 30;
6
+ function parseSearchItem(r) {
7
+ const ownerObj = r.owner;
8
+ return {
9
+ id: r.id,
10
+ fullName: r.full_name,
11
+ name: r.name,
12
+ owner: ownerObj.login,
13
+ ownerType: ownerObj.type === "Organization" ? "Organization" : "User",
14
+ htmlUrl: r.html_url,
15
+ cloneUrl: r.clone_url,
16
+ defaultBranch: r.default_branch,
17
+ isPrivate: r.private,
18
+ updatedAt: r.updated_at,
19
+ };
20
+ }
21
+ async function searchRepos(query, page, token) {
22
+ const params = new URLSearchParams({
23
+ q: query,
24
+ sort: "stars",
25
+ order: "desc",
26
+ per_page: String(PER_PAGE),
27
+ page: String(page),
28
+ });
29
+ const headers = {
30
+ Accept: "application/vnd.github+json",
31
+ };
32
+ if (token) {
33
+ headers.Authorization = `Bearer ${token}`;
34
+ }
35
+ const resp = await fetch(`${GITHUB_SEARCH_API}?${params}`, { headers });
36
+ if (!resp.ok) {
37
+ if (resp.status === 403) {
38
+ throw new Error("GitHub search rate limit exceeded. Try again shortly.");
39
+ }
40
+ throw new Error(`GitHub search error: ${resp.status}`);
41
+ }
42
+ const data = (await resp.json());
43
+ const repos = data.items.map(parseSearchItem);
44
+ const totalCount = data.total_count;
45
+ const hasMore = page * PER_PAGE < totalCount;
46
+ return { repos, totalCount, hasMore };
47
+ }
48
+ /**
49
+ * Data hook that searches GitHub's public repository index.
50
+ *
51
+ * Uses the GitHub Search API (`/search/repositories`) with debounced input.
52
+ * Finds repositories across all of GitHub, not just the user's own repos.
53
+ * Works with or without an auth token (auth: 30 req/min; unauth: 10 req/min).
54
+ */
55
+ export function useGitHubSearch(token) {
56
+ const [query, setQuery] = useState("");
57
+ const [debouncedQuery, setDebouncedQuery] = useState("");
58
+ const [results, setResults] = useState([]);
59
+ const [isSearching, setIsSearching] = useState(false);
60
+ const [error, setError] = useState(null);
61
+ const [totalCount, setTotalCount] = useState(0);
62
+ const [hasMore, setHasMore] = useState(false);
63
+ const [page, setPage] = useState(1);
64
+ const debounceTimer = useRef(undefined);
65
+ useEffect(() => {
66
+ clearTimeout(debounceTimer.current);
67
+ if (!query.trim()) {
68
+ setDebouncedQuery("");
69
+ setResults([]);
70
+ setTotalCount(0);
71
+ setHasMore(false);
72
+ setError(null);
73
+ return;
74
+ }
75
+ debounceTimer.current = setTimeout(() => {
76
+ setDebouncedQuery(query.trim());
77
+ setPage(1);
78
+ }, DEBOUNCE_MS);
79
+ return () => clearTimeout(debounceTimer.current);
80
+ }, [query]);
81
+ useEffect(() => {
82
+ if (!debouncedQuery)
83
+ return;
84
+ const cancelled = { current: false };
85
+ async function run() {
86
+ setIsSearching(true);
87
+ setError(null);
88
+ try {
89
+ const result = await searchRepos(debouncedQuery, page, token);
90
+ if (cancelled.current)
91
+ return;
92
+ setResults((prev) => page === 1 ? result.repos : [...prev, ...result.repos]);
93
+ setTotalCount(result.totalCount);
94
+ setHasMore(result.hasMore);
95
+ }
96
+ catch (e) {
97
+ if (cancelled.current)
98
+ return;
99
+ setError(e instanceof Error ? e.message : "Search failed");
100
+ }
101
+ finally {
102
+ if (!cancelled.current)
103
+ setIsSearching(false);
104
+ }
105
+ }
106
+ run();
107
+ return () => {
108
+ cancelled.current = true;
109
+ };
110
+ }, [debouncedQuery, page, token]);
111
+ const loadMore = useCallback(() => {
112
+ if (hasMore && !isSearching) {
113
+ setPage((prev) => prev + 1);
114
+ }
115
+ }, [hasMore, isSearching]);
116
+ return {
117
+ results,
118
+ isSearching,
119
+ error,
120
+ query,
121
+ setQuery,
122
+ totalCount,
123
+ hasMore,
124
+ loadMore,
125
+ };
126
+ }
127
+ //# sourceMappingURL=useGitHubSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGitHubSearch.js","sourceRoot":"","sources":["../../src/github/useGitHubSearch.ts"],"names":[],"mappings":"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"}