@openagt/dashboard 0.57.0 → 0.59.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dashboard/git-hosts.d.ts +2 -0
- package/dist/dashboard/git-hosts.d.ts.map +1 -1
- package/dist/dashboard/git-hosts.js +2 -1
- package/dist/dashboard/git-hosts.js.map +1 -1
- package/dist/dashboard/index.d.ts +1 -1
- package/dist/dashboard/index.d.ts.map +1 -1
- package/dist/dashboard/repos.d.ts +19 -7
- package/dist/dashboard/repos.d.ts.map +1 -1
- package/dist/dashboard/repos.js +28 -17
- package/dist/dashboard/repos.js.map +1 -1
- package/dist/dashboard/types.d.ts +0 -15
- package/dist/dashboard/types.d.ts.map +1 -1
- package/dist/dashboard-bundle/assets/host/module-Jq6JDNSB.js +1 -0
- package/dist/dashboard-bundle/assets/main-BIyFp6td.js +152 -0
- package/dist/dashboard-bundle/assets/main-C_ohUWaY.css +2 -0
- package/dist/dashboard-bundle/assets/module-Cqcyno9w.js +19 -0
- package/dist/dashboard-bundle/index.html +19 -4
- package/dist/dashboard-rpc/backup.d.ts +36 -0
- package/dist/dashboard-rpc/backup.d.ts.map +1 -0
- package/dist/dashboard-rpc/backup.js +62 -0
- package/dist/dashboard-rpc/backup.js.map +1 -0
- package/dist/dashboard-rpc/index.d.ts +1 -1
- package/dist/dashboard-rpc/index.d.ts.map +1 -1
- package/dist/dashboard-rpc/index.js +3 -2
- package/dist/dashboard-rpc/index.js.map +1 -1
- package/dist/dashboard-rpc/logins.d.ts +2 -0
- package/dist/dashboard-rpc/logins.d.ts.map +1 -1
- package/dist/dashboard-rpc/logins.js +5 -0
- package/dist/dashboard-rpc/logins.js.map +1 -1
- package/dist/dashboard-rpc/person.d.ts +2 -0
- package/dist/dashboard-rpc/person.d.ts.map +1 -1
- package/dist/dashboard-rpc/person.js +1 -1
- package/dist/dashboard-rpc/person.js.map +1 -1
- package/dist/dashboard-rpc/projects.d.ts +3 -6
- package/dist/dashboard-rpc/projects.d.ts.map +1 -1
- package/dist/dashboard-rpc/projects.js +3 -12
- package/dist/dashboard-rpc/projects.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/module-types/dashboard/components/ui/popup-placement.d.ts +5 -0
- package/dist/module-types/dashboard/module/index.d.ts +16 -1
- package/dist/module-types/src/dashboard/git-hosts.d.ts +2 -0
- package/dist/module-types/src/dashboard/repos.d.ts +19 -7
- package/dist/module-types/src/dashboard/types.d.ts +0 -15
- package/dist/module-types/src/dashboard-rpc/backup.d.ts +35 -0
- package/dist/module-types/src/dashboard-rpc/index.d.ts +1 -1
- package/dist/module-types/src/dashboard-rpc/logins.d.ts +2 -0
- package/dist/module-types/src/dashboard-rpc/person.d.ts +2 -0
- package/dist/module-types/src/dashboard-rpc/projects.d.ts +3 -6
- package/dist/module-types/src/index.d.ts +1 -1
- package/package.json +21 -21
- package/dist/dashboard-bundle/assets/host/module--PBDa8mk.js +0 -1
- package/dist/dashboard-bundle/assets/main-5Ke2be9l.js +0 -152
- package/dist/dashboard-bundle/assets/main-D9WdDo5V.css +0 -2
- package/dist/dashboard-bundle/assets/module-XkaUkYn0.js +0 -19
|
@@ -9,8 +9,10 @@ export interface FoundRepo {
|
|
|
9
9
|
}
|
|
10
10
|
/** How far into a folder the crawl goes: `~/Projects/org/repo` is 3 deep. */
|
|
11
11
|
export declare const CRAWL_DEPTH = 4;
|
|
12
|
-
/** The crawl
|
|
12
|
+
/** The strict limit of a crawl someone waits on: past it, what was found is the list. */
|
|
13
13
|
export declare const CRAWL_LIMIT_MS = 2000;
|
|
14
|
+
/** The limit of a crawl nobody waits on: behind a kept list. */
|
|
15
|
+
export declare const CRAWL_BEHIND_LIMIT_MS = 20000;
|
|
14
16
|
/** How old the kept list may be before a read crawls again, in the background. */
|
|
15
17
|
export declare const REPOS_MAX_AGE_MS = 60000;
|
|
16
18
|
/** The fs a crawl reads through, so a test can count and slow its reads. */
|
|
@@ -34,6 +36,11 @@ export interface CrawlOptions {
|
|
|
34
36
|
fs?: CrawlFs;
|
|
35
37
|
now?: () => number;
|
|
36
38
|
}
|
|
39
|
+
/** What a crawl found, and whether it looked everywhere or the time was up first. */
|
|
40
|
+
export interface Crawl {
|
|
41
|
+
repos: FoundRepo[];
|
|
42
|
+
whole: boolean;
|
|
43
|
+
}
|
|
37
44
|
/**
|
|
38
45
|
* The repositories under `roots`, each found once, by name. A root that is itself a
|
|
39
46
|
* repository is one, and is still looked through: a home folder can be a repository of its own
|
|
@@ -41,22 +48,27 @@ export interface CrawlOptions {
|
|
|
41
48
|
* crawl goes no further into it. The crawl reads a level of folders at once, and stops when the
|
|
42
49
|
* time is up, between reads: what it found until then is the answer.
|
|
43
50
|
*/
|
|
44
|
-
export declare function crawlRepos(roots: readonly string[], options?: CrawlOptions): Promise<
|
|
51
|
+
export declare function crawlRepos(roots: readonly string[], options?: CrawlOptions): Promise<Crawl>;
|
|
52
|
+
/** The repos as kept, and whether a crawl with more time is looking for the rest of them. */
|
|
53
|
+
export interface RepoRead {
|
|
54
|
+
repos: FoundRepo[];
|
|
55
|
+
looking: boolean;
|
|
56
|
+
}
|
|
45
57
|
/** The kept repo list and how it is read again. */
|
|
46
58
|
export interface RepoIndex {
|
|
47
|
-
/** The repos as last found: the first read waits on a crawl, a read of an old list crawls again in the background. */
|
|
48
|
-
read(): Promise<
|
|
59
|
+
/** The repos as last found: the first read waits on a crawl, a read of an old or cut-short list crawls again in the background. */
|
|
60
|
+
read(): Promise<RepoRead>;
|
|
49
61
|
/** Crawl now, and answer what this crawl found: after a folder is added. */
|
|
50
|
-
refresh(): Promise<
|
|
62
|
+
refresh(): Promise<RepoRead>;
|
|
51
63
|
}
|
|
52
64
|
/** A {@link RepoIndex} over the folders `roots` names when a crawl starts. */
|
|
53
65
|
export declare function repoIndex(roots: () => Promise<string[]>, options?: {
|
|
54
|
-
crawl?: (roots: string[]) => Promise<
|
|
66
|
+
crawl?: (roots: string[], limitMs: number) => Promise<Crawl>;
|
|
55
67
|
now?: () => number;
|
|
56
68
|
maxAgeMs?: number;
|
|
57
69
|
}): RepoIndex;
|
|
58
70
|
/**
|
|
59
|
-
* This computer's repos: one list for the daemon,
|
|
71
|
+
* This computer's repos: one list for the daemon, first crawled when a page asks. It looks in the home folder
|
|
60
72
|
* and in the folders the person added (`repoFolders` in the registry).
|
|
61
73
|
*/
|
|
62
74
|
export declare function thisComputersRepos(): RepoIndex;
|
|
@@ -67,21 +67,6 @@ export type RemoveProjectResult = {
|
|
|
67
67
|
ok: false;
|
|
68
68
|
error: string;
|
|
69
69
|
};
|
|
70
|
-
/**
|
|
71
|
-
* What the Onboarding checklist (#958) needs and no other read carries: the server's own
|
|
72
|
-
* working directory, offered as the one-click first project.
|
|
73
|
-
*
|
|
74
|
-
* Both fields are null where adding projects is not wired (the relay), so a public host
|
|
75
|
-
* never discloses its filesystem layout.
|
|
76
|
-
*/
|
|
77
|
-
export interface OnboardingSuggestion {
|
|
78
|
-
/** The server's working directory, or null when it cannot be offered: the home folder is where a service runs, not a project. */
|
|
79
|
-
cwd: string | null;
|
|
80
|
-
/** The project id for {@link cwd} when it is already registered, else null. */
|
|
81
|
-
cwdProjectId: string | null;
|
|
82
|
-
/** Whether this computer can show a window to pick a folder in: one with no screen, as a server, cannot. */
|
|
83
|
-
canPickFolder: boolean;
|
|
84
|
-
}
|
|
85
70
|
/**
|
|
86
71
|
* What a Start carries besides its prompt (#1774): the person's picks, handed to the project's
|
|
87
72
|
* `start` hook line as `DRIVER`, `MODEL`, `PUBLISH` and `BASE`. Absent leaves each to the tool the line names.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** Data that is not backed up. */
|
|
2
|
+
export interface BackupGap {
|
|
3
|
+
/** The person's own folder, or one shared project's data. */
|
|
4
|
+
kind: 'personal' | 'project';
|
|
5
|
+
/** The project, for a shared project's data. */
|
|
6
|
+
projectId?: string;
|
|
7
|
+
/** The project's name, for a shared project's data. */
|
|
8
|
+
project?: string;
|
|
9
|
+
/** The repository it syncs with, as shown: `github.com/me/agent`. */
|
|
10
|
+
address: string;
|
|
11
|
+
/** The repository's page, when it has one. */
|
|
12
|
+
url?: string;
|
|
13
|
+
/** The git host it is sent to. */
|
|
14
|
+
host: string;
|
|
15
|
+
/** Changes made here that wait, when they can be counted. */
|
|
16
|
+
waiting?: number;
|
|
17
|
+
}
|
|
18
|
+
export interface BackupView {
|
|
19
|
+
gaps: BackupGap[];
|
|
20
|
+
}
|
|
21
|
+
/** Everything not backed up now. OpenAgent's accounts that could back it up are the git hosts' own read (`onGitHosts`). */
|
|
22
|
+
export declare function onBackup(): Promise<BackupView>;
|
|
23
|
+
/**
|
|
24
|
+
* Back up `gap` as `login`, one of OpenAgent's accounts at its host, from now on: what waited is
|
|
25
|
+
* sent now. A send the repository refuses leaves it as it was, the reason said.
|
|
26
|
+
*/
|
|
27
|
+
export declare function sendBackUpAs(gap: {
|
|
28
|
+
kind: 'personal' | 'project';
|
|
29
|
+
projectId?: string;
|
|
30
|
+
}, login: string): Promise<{
|
|
31
|
+
ok: true;
|
|
32
|
+
} | {
|
|
33
|
+
ok: false;
|
|
34
|
+
error: string;
|
|
35
|
+
}>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { onAgents, onStartedName, onModuleAgents, onAgent, onAgentsDoing, onDocs, onQueue, onOverview, onRecentAgents, onInterventions, onActivity, onDashboard, onGitHostHome, onRepositoryOffer, onGitStatus, onProjectFiles, onRetainedWorktrees, onAgentWorktree, onAgentMainBranch, onAgentHandoff, onBridgeQuestion, onBridgeStatus, onBridgeToken, onBridgeEvents, onBridgeAnswer, onBridgeBrowser } from './reads.js';
|
|
2
2
|
export { sendStop, sendChoice, sendBridgeAnswer, sendBridgeAnswerCancel, sendBridgeBrowser, sendMessage, sendStart, sendOpenInApp, sendRemoveWorktree, sendDeleteAgent, sendOpenPullRequest, sendPush, sendMergeBranch, sendMerge, sendCreateRepository } from './control.js';
|
|
3
3
|
export { streamAgentEvents, type LiveFeedEvent, type PartialMessage, type StreamSync } from './events.js';
|
|
4
|
-
export { onProjects, sendAddProject, sendStartedAgain, onCloneTarget, sendAddProjectFromAddress, sendRemoveProject, sendShareRecords, sendPickProjectDirectory, onRepos, sendAddRepoFolder,
|
|
4
|
+
export { onProjects, sendAddProject, sendStartedAgain, onCloneTarget, sendAddProjectFromAddress, sendRemoveProject, sendShareRecords, sendPickProjectDirectory, onRepos, sendAddRepoFolder, onCommands, onStartBranches, onStartCheck, onCloneCheck, type ProjectLauncher } from './projects.js';
|
|
5
5
|
export { onPreferences, savePreferences, patchPreferences, onProjectPresets, saveProjectPresets, onEditors, type SavePreferencesResult, type PatchPreferencesResult, } from './preferences.js';
|
|
6
6
|
export { type EditorInfo } from '../dashboard/open-in-app.js';
|
|
7
7
|
export { onQuota } from './quota.js';
|
|
@@ -65,6 +65,8 @@ export declare function sendGitHostLogin(host: string): Promise<{
|
|
|
65
65
|
ok: false;
|
|
66
66
|
error: string;
|
|
67
67
|
}>;
|
|
68
|
+
/** Give up the login under way at `host`: its tool stops waiting, and the press to add an account is back. */
|
|
69
|
+
export declare function sendStopGitHostLogin(host: string): Promise<AccountResult>;
|
|
68
70
|
/** Install the tool `host`'s package works through, with the command it declared; the card follows it. */
|
|
69
71
|
export declare function sendGitHostInstall(host: string): Promise<AccountResult>;
|
|
70
72
|
/** How the coding agent's CLI is on this computer, and what a press does about what is missing. */
|
|
@@ -6,7 +6,7 @@ import { type FoundRepo } from '../dashboard/repos.js';
|
|
|
6
6
|
import { type PickDirectoryResult } from '../pick-directory.js';
|
|
7
7
|
import type { ProjectSummary } from '../dashboard/projects.js';
|
|
8
8
|
import type { OwnProject } from '../dashboard/elsewhere.js';
|
|
9
|
-
import type { AddProjectResult,
|
|
9
|
+
import type { AddProjectResult, RemoveProjectResult, StartedInResult } from '../dashboard/types.js';
|
|
10
10
|
export declare function onProjects(): Promise<ProjectSummary[]>;
|
|
11
11
|
/**
|
|
12
12
|
* This computer's own projects, for another computer of the person's that lists them beside its
|
|
@@ -81,6 +81,8 @@ export interface ReposRead {
|
|
|
81
81
|
repos: FoundRepo[];
|
|
82
82
|
/** The repositories OpenAgent's accounts and the owners the person named have at the hosts, none of them on this computer: picked, one is cloned. */
|
|
83
83
|
hosted: HostedRepo[];
|
|
84
|
+
/** The look through this computer was cut short, and one with more time is on its way: the picker asks again shortly. */
|
|
85
|
+
reposLoading: boolean;
|
|
84
86
|
/** The hosts are being asked: the picker asks again shortly. */
|
|
85
87
|
hostedLoading: boolean;
|
|
86
88
|
/** This computer can show a folder dialog, so the picker offers "Search another folder…". */
|
|
@@ -132,11 +134,6 @@ export declare function sendAddRepoFolder(): Promise<{
|
|
|
132
134
|
ok: false;
|
|
133
135
|
error: string;
|
|
134
136
|
}>;
|
|
135
|
-
/**
|
|
136
|
-
* The Onboarding checklist's one server-side fact (#958): the directory this server runs in,
|
|
137
|
-
* so the first step can offer "Add {cwd} as project" without the user typing a path.
|
|
138
|
-
*/
|
|
139
|
-
export declare function onOnboarding(): Promise<OnboardingSuggestion>;
|
|
140
137
|
/** What the launcher offers for a project: its commands, and whether a run can be started here at all. */
|
|
141
138
|
export interface ProjectLauncher {
|
|
142
139
|
commands: ProjectCommand[];
|
|
@@ -36,5 +36,5 @@ export type { ProjectError, ProjectErrorCode } from './project-errors.js';
|
|
|
36
36
|
export type { ProjectQueue } from './dashboard/queue.js';
|
|
37
37
|
export type { QuotaView } from './dashboard/quota.js';
|
|
38
38
|
export type { Ticket } from './store/tickets.js';
|
|
39
|
-
export type { AgentWorktree, CleanupReport
|
|
39
|
+
export type { AgentWorktree, CleanupReport } from './dashboard/types.js';
|
|
40
40
|
export type { CardPlace, CardWidth, OverviewLayouts } from './overview-layout.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openagt/dashboard",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.59.0",
|
|
4
4
|
"description": "OpenAgent: a local dashboard and daemon for coding agents. It starts an agent through the project's own start hook and shows every agent from the files it keeps; it runs no coding agent itself.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -66,42 +66,42 @@
|
|
|
66
66
|
"tiptap-markdown": "^0.8.10",
|
|
67
67
|
"uqr": "0.1.3",
|
|
68
68
|
"yaml": "^2.5.0",
|
|
69
|
-
"@openagt/agent-
|
|
70
|
-
"@openagt/agent-data": "0.0.14",
|
|
69
|
+
"@openagt/agent-data": "0.0.15",
|
|
71
70
|
"@openagt/agent-driver-codex": "0.0.16",
|
|
72
|
-
"@openagt/dashboard-devices": "0.2.13",
|
|
73
|
-
"@openagt/dashboard-files": "0.0.11",
|
|
74
71
|
"@openagt/dashboard-changes": "0.0.5",
|
|
72
|
+
"@openagt/dashboard-files": "0.0.11",
|
|
73
|
+
"@openagt/dashboard-devices": "0.2.14",
|
|
74
|
+
"@openagt/agent-driver-claude": "0.0.18",
|
|
75
75
|
"@openagt/skill-branches": "0.1.7",
|
|
76
|
-
"@openagt/skill-
|
|
77
|
-
"@openagt/skill-
|
|
78
|
-
"@openagt/skill-logs": "0.1.11",
|
|
76
|
+
"@openagt/skill-orchestration": "0.1.19",
|
|
77
|
+
"@openagt/skill-logs": "0.1.12",
|
|
79
78
|
"@openagt/skill-ask": "0.1.0",
|
|
80
|
-
"@openagt/skill-
|
|
81
|
-
"@openagt/skill-
|
|
79
|
+
"@openagt/skill-scheduler": "0.1.26",
|
|
80
|
+
"@openagt/skill-github": "0.1.12",
|
|
82
81
|
"@openagt/skill-discord": "0.1.1",
|
|
83
|
-
"@openagt/skill-
|
|
84
|
-
"@openagt/skill-
|
|
85
|
-
"@openagt/skill-
|
|
86
|
-
"@openagt/skill-market-research": "0.1.0",
|
|
82
|
+
"@openagt/skill-browser": "0.1.4",
|
|
83
|
+
"@openagt/skill-queue": "0.1.10",
|
|
84
|
+
"@openagt/skill-tickets": "0.1.11",
|
|
87
85
|
"@openagt/skill-maintainability": "0.1.0",
|
|
86
|
+
"@openagt/skill-maintenance": "0.1.0",
|
|
88
87
|
"@openagt/skill-plan": "0.1.0",
|
|
89
88
|
"@openagt/skill-plan-tickets": "0.1.0",
|
|
90
|
-
"@openagt/skill-readability": "0.1.0",
|
|
91
|
-
"@openagt/skill-post-merge-cleanup": "0.1.1",
|
|
92
89
|
"@openagt/skill-reply": "0.1.2",
|
|
90
|
+
"@openagt/skill-research": "0.1.0",
|
|
93
91
|
"@openagt/skill-security-audit": "0.1.0",
|
|
94
|
-
"@openagt/skill-triage": "0.1.0",
|
|
95
92
|
"@openagt/skill-suggest-new-tickets": "0.1.0",
|
|
93
|
+
"@openagt/skill-readability": "0.1.0",
|
|
94
|
+
"@openagt/skill-post-merge-cleanup": "0.1.1",
|
|
96
95
|
"@openagt/skill-suggest-new-features": "0.1.0",
|
|
97
|
-
"@openagt/skill-
|
|
96
|
+
"@openagt/skill-market-research": "0.1.0",
|
|
98
97
|
"@openagt/skill-ux": "0.1.0",
|
|
98
|
+
"@openagt/skill-suggest-tickets-to-work-on": "0.1.0",
|
|
99
99
|
"@openagt/skill-update-tickets": "0.1.1",
|
|
100
|
-
"@openagt/skill-research": "0.1.0",
|
|
101
100
|
"@openagt/skill-work-queue": "0.1.0",
|
|
102
101
|
"@openagt/agent-driver": "0.0.15",
|
|
103
|
-
"@openagt/skill-
|
|
104
|
-
"@openagt/agent-runner": "0.0.30"
|
|
102
|
+
"@openagt/skill-triage": "0.1.0",
|
|
103
|
+
"@openagt/agent-runner": "0.0.30",
|
|
104
|
+
"@openagt/skill-account-rotation": "0.1.3"
|
|
105
105
|
},
|
|
106
106
|
"devDependencies": {
|
|
107
107
|
"@tailwindcss/vite": "^4.0.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$ as e,$r as t,B as n,Bn as r,Bt as i,Ci as a,F as o,Gn as s,Gt as c,H as l,Ha as u,Hn as d,Ht as f,Ia as p,In as m,J as h,Jt as g,K as _,Kn as v,Kt as y,L as b,La as x,Ln as S,Lt as C,Mn as w,Nn as T,O as E,P as D,Pn as O,Qr as k,Qt as A,R as j,Ra as M,Rn as N,U as P,Ua as F,Un as I,Ut as L,V as R,Vt as z,W as B,Wa as V,Wn as H,Wt as U,Xr as W,Xt as G,Y as K,Yr as q,Yt as J,Zn as Y,Zt as X,_n as Z,a as Q,ai as $,bi as ee,bn as te,c as ne,ct as re,d as ie,dn as ae,dt as oe,ei as se,f as ce,fn as le,g as ue,gn as de,hn as fe,i as pe,ii as me,it as he,l as ge,ln as _e,lt as ve,m as ye,mn as be,mt as xe,n as Se,ni as Ce,nt as we,oi as Te,p as Ee,pn as De,qa as Oe,qr as ke,qt as Ae,r as je,ri as Me,s as Ne,t as Pe,tt as Fe,u as Ie,un as Le,vn as Re,xi as ze,xn as Be,y as Ve,yn as He,z as Ue,zt as We}from"../module-XkaUkYn0.js";export{w as Badge,p as Button,Ce as Card,Me as CardContent,me as CardHeader,$ as CardTitle,Te as CardTitleLink,Be as Checkbox,t as ClaudeLogo,se as CodexLogo,Q as ConfirmDialog,i as ContextMenu,z as ContextMenuTrigger,D as Dialog,f as DiffStat,m as DropdownMenu,S as DropdownMenuCheckboxItem,N as DropdownMenuContent,r as DropdownMenuItem,d as DropdownMenuSeparator,I as DropdownMenuSub,H as DropdownMenuSubContent,s as DropdownMenuSubTrigger,v as DropdownMenuTrigger,re as FileIcon,e as FileLinks,ve as FilterChips,T as GaugeFace,O as Input,le as Label,h as LinkActions,Oe as MAX_SPEND_OFFSET,_ as MachineMark,Fe as Markdown,Pe as ModuleHostContext,xe as Page,C as PaneActions,We as PaneTitle,P as PersonMark,we as Pieces,c as Popover,y as PopoverContent,Ae as PopoverTrigger,o as QrCode,_e as RadioGroup,Le as RadioGroupItem,ae as RadioGroupOption,U as RangeSlider,Y as ScrollArea,g as Select,J as SelectContent,G as SelectItem,X as SelectTrigger,A as SelectValue,L as Separator,j as SettingsRow,Ue as SettingsSection,n as SettingsSelectRow,k as Skeleton,K as StartAgentButton,oe as StatTile,te as Switch,De as Table,be as TableBody,fe as TableCell,de as TableHead,Z as TableHeader,Re as TableRow,He as Textarea,ee as Tooltip,ze as TooltipContent,a as TooltipTrigger,ie as Waiting,x as buttonVariants,M as cn,Se as defineModule,ke as forgetRemembered,Ee as formatAge,ye as formatDateTime,ue as formatDuration,Ve as formatRelative,u as machineKind,F as machineName,je as moduleHost,Ne as pathsIn,B as personName,R as personSaid,V as reachedByLine,Ie as useAction,E as useCodingAgents,ne as useFileNames,l as useGitHostPeople,he as useHighlighted,q as useLoaded,pe as useModuleHost,ce as useNarrow,W as usePolled,ge as useSchedule,b as useSettingsCrumb};
|