@skillcdn/console 0.1.0 → 0.1.2
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/README.md +12 -10
- package/dist/api.d.ts +5 -5
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +4 -4
- package/dist/api.js.map +1 -1
- package/dist/cli/cli.d.ts +5 -0
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +100 -43
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/directory.d.ts +14 -0
- package/dist/cli/directory.d.ts.map +1 -0
- package/dist/cli/directory.js +46 -0
- package/dist/cli/directory.js.map +1 -0
- package/dist/cli/format.d.ts +6 -3
- package/dist/cli/format.d.ts.map +1 -1
- package/dist/cli/format.js +17 -6
- package/dist/cli/format.js.map +1 -1
- package/dist/cli/help.d.ts +2 -2
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +25 -11
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/main.js +9 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/client.d.ts +39 -10
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +54 -33
- package/dist/client.js.map +1 -1
- package/dist/components/event-feed.d.ts.map +1 -1
- package/dist/components/event-feed.js +34 -14
- package/dist/components/event-feed.js.map +1 -1
- package/dist/components/projects.d.ts +41 -0
- package/dist/components/projects.d.ts.map +1 -0
- package/dist/components/projects.js +81 -0
- package/dist/components/projects.js.map +1 -0
- package/dist/components/runs.d.ts +2 -2
- package/dist/components/runs.d.ts.map +1 -1
- package/dist/components/runs.js +2 -2
- package/dist/components/runs.js.map +1 -1
- package/dist/components/shell.d.ts +5 -0
- package/dist/components/shell.d.ts.map +1 -1
- package/dist/components/shell.js +1 -1
- package/dist/components/shell.js.map +1 -1
- package/dist/components/task-view.d.ts +5 -1
- package/dist/components/task-view.d.ts.map +1 -1
- package/dist/components/task-view.js +2 -1
- package/dist/components/task-view.js.map +1 -1
- package/dist/console.css +91 -1
- package/dist/console.d.ts +3 -0
- package/dist/console.d.ts.map +1 -1
- package/dist/console.js +148 -39
- package/dist/console.js.map +1 -1
- package/dist/data.d.ts +33 -10
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +202 -81
- package/dist/data.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/limits.d.ts +7 -0
- package/dist/limits.d.ts.map +1 -1
- package/dist/limits.js +7 -0
- package/dist/limits.js.map +1 -1
- package/dist/router.d.ts +22 -7
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +36 -22
- package/dist/router.js.map +1 -1
- package/dist/routes.d.ts +14 -12
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +28 -11
- package/dist/routes.js.map +1 -1
- package/dist/schemas.d.ts +163 -28
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +99 -27
- package/dist/schemas.js.map +1 -1
- package/dist/vocabulary.d.ts +7 -1
- package/dist/vocabulary.d.ts.map +1 -1
- package/dist/vocabulary.js +9 -0
- package/dist/vocabulary.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@ import { useState } from "react";
|
|
|
3
3
|
import { TASK_STATES } from "../vocabulary.js";
|
|
4
4
|
import { DecisionForm } from "./decision-form.js";
|
|
5
5
|
import { DecisionCard } from "./decision-list.js";
|
|
6
|
+
import { EventFeed } from "./event-feed.js";
|
|
6
7
|
import { Markdown } from "./markdown.js";
|
|
7
8
|
import { RunList } from "./runs.js";
|
|
8
9
|
import { TaskForm } from "./task-form.js";
|
|
@@ -27,6 +28,6 @@ export function TaskView(props) {
|
|
|
27
28
|
return (_jsxs("div", { className: "sc-task", children: [_jsxs("header", { className: "sc-task-header", children: [parent !== undefined && (_jsxs("p", { className: "sc-task-parent", children: ["Part of", " ", _jsxs("a", { href: props.taskHref(parent), children: ["#", parent.number, " ", parent.title] })] })), _jsxs("h1", { className: "sc-task-title", children: [_jsxs("span", { className: "sc-card-number", children: ["#", task.number] }), " ", task.title] }), _jsxs("div", { className: "sc-task-badges", children: [_jsx(StateBadge, { state: task.state }), _jsx(PriorityBadge, { priority: task.priority })] })] }), _jsxs("dl", { className: "sc-facts", children: [_jsxs("div", { children: [_jsx("dt", { children: "Owner" }), _jsx("dd", { children: _jsx(PersonChip, { person: task.owner }) })] }), _jsxs("div", { children: [_jsx("dt", { children: "Assignee" }), _jsx("dd", { children: task.assignee === null ? (_jsx("span", { className: "sc-muted", children: "Nobody" })) : (_jsx(PersonChip, { person: task.assignee })) })] }), _jsxs("div", { children: [_jsx("dt", { children: "Written" }), _jsx("dd", { children: _jsx(Time, { iso: task.createdAt }) })] }), _jsxs("div", { children: [_jsx("dt", { children: "Changed" }), _jsx("dd", { children: _jsx(Time, { iso: task.updatedAt }) })] })] }), _jsxs("div", { className: "sc-task-actions", children: [_jsxs("label", { className: "sc-field sc-field-inline", children: [_jsx("span", { className: "sc-field-label", children: "State" }), _jsx("select", { className: "sc-input", value: task.state, disabled: props.busy === true, onChange: (event) => props.onMove(task, event.target.value), children: TASK_STATES.map((state) => (_jsx("option", { value: state, children: STATE_LABELS[state] }, state))) })] }), _jsx(Button, { onClick: () => setEditing(true), children: "Edit" }), _jsx(Button, { onClick: () => setAsking(true), disabled: asking, children: "Raise a decision" })] }), props.error !== undefined && (_jsx("p", { className: "sc-form-error", role: "alert", children: props.error })), task.body.length > 0 ? (_jsx(Markdown, { source: task.body })) : (_jsx("p", { className: "sc-muted", children: "Nothing more was written about it." })), task.links.length > 0 && (_jsxs("section", { className: "sc-task-section", "aria-label": "Links", children: [_jsx("h2", { className: "sc-section-title", children: "Links" }), _jsx("ul", { className: "sc-link-list", children: task.links.map((link) => (_jsx("li", { children: _jsx("a", { href: link.url, target: "_blank", rel: "noopener noreferrer nofollow", children: link.label ?? link.url }) }, link.url))) })] })), asking && (_jsxs("section", { className: "sc-task-section", "aria-label": "Raise a decision", children: [_jsx("h2", { className: "sc-section-title", children: "Raise a decision" }), _jsx(DecisionForm, { tasks: props.tasks, taskId: task.id, busy: props.busy, onSubmit: (input) => {
|
|
28
29
|
props.onRaiseDecision(input);
|
|
29
30
|
setAsking(false);
|
|
30
|
-
}, onCancel: () => setAsking(false) })] })), runs.length > 0 && (_jsxs("section", { className: "sc-task-section", "aria-label": "Runs", children: [_jsx("h2", { className: "sc-section-title", children: "Agents at work" }), _jsx(RunList, { runs: runs, decisionHref: props.decisionHref, onAbandon: props.onAbandonRun, busy: props.busy })] })), about.length > 0 && (_jsxs("section", { className: "sc-task-section", "aria-label": "Decisions", children: [_jsx("h2", { className: "sc-section-title", children: "Decisions" }), about.map((decision) => (_jsx(DecisionCard, { decision: decision, task: decision.taskId === null ? undefined : tasksById.get(decision.taskId), onAnswer: props.onAnswer, busy: props.busy }, decision.id)))] })), subtasks.length > 0 && (_jsxs("section", { className: "sc-task-section", "aria-label": "Subtasks", children: [_jsx("h2", { className: "sc-section-title", children: "Part of it" }), _jsx("ul", { className: "sc-subtasks", children: subtasks.map((subtask) => (_jsxs("li", { children: [_jsxs("a", { href: props.taskHref(subtask), children: [_jsxs("span", { className: "sc-card-number", children: ["#", subtask.number] }), " ", subtask.title] }), " ", _jsx(StateBadge, { state: subtask.state })] }, subtask.id))) })] }))] }));
|
|
31
|
+
}, onCancel: () => setAsking(false) })] })), runs.length > 0 && (_jsxs("section", { className: "sc-task-section", "aria-label": "Runs", children: [_jsx("h2", { className: "sc-section-title", children: "Agents at work" }), _jsx(RunList, { runs: runs, decisionHref: props.decisionHref, fileHref: props.fileHref, onAbandon: props.onAbandonRun, busy: props.busy })] })), about.length > 0 && (_jsxs("section", { className: "sc-task-section", "aria-label": "Decisions", children: [_jsx("h2", { className: "sc-section-title", children: "Decisions" }), about.map((decision) => (_jsx(DecisionCard, { decision: decision, task: decision.taskId === null ? undefined : tasksById.get(decision.taskId), onAnswer: props.onAnswer, busy: props.busy }, decision.id)))] })), props.history !== undefined && props.history.length > 0 && (_jsxs("section", { className: "sc-task-section", "aria-label": "History", children: [_jsx("h2", { className: "sc-section-title", children: "What happened" }), _jsx(EventFeed, { events: props.history })] })), subtasks.length > 0 && (_jsxs("section", { className: "sc-task-section", "aria-label": "Subtasks", children: [_jsx("h2", { className: "sc-section-title", children: "Part of it" }), _jsx("ul", { className: "sc-subtasks", children: subtasks.map((subtask) => (_jsxs("li", { children: [_jsxs("a", { href: props.taskHref(subtask), children: [_jsxs("span", { className: "sc-card-number", children: ["#", subtask.number] }), " ", subtask.title] }), " ", _jsx(StateBadge, { state: subtask.state })] }, subtask.id))) })] }))] }));
|
|
31
32
|
}
|
|
32
33
|
//# sourceMappingURL=task-view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-view.js","sourceRoot":"","sources":["../../src/components/task-view.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"task-view.js","sourceRoot":"","sources":["../../src/components/task-view.tsx"],"names":[],"mappings":"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"}
|
package/dist/console.css
CHANGED
|
@@ -244,8 +244,30 @@ svg {
|
|
|
244
244
|
white-space: nowrap;
|
|
245
245
|
}
|
|
246
246
|
|
|
247
|
+
.sc-crumb {
|
|
248
|
+
display: inline-flex;
|
|
249
|
+
align-items: center;
|
|
250
|
+
gap: var(--sc-space-2);
|
|
251
|
+
min-width: 0;
|
|
252
|
+
white-space: nowrap;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
.sc-crumb-separator {
|
|
256
|
+
color: var(--sc-color-text-faint);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
.sc-crumb-link {
|
|
260
|
+
overflow: hidden;
|
|
261
|
+
max-width: 14rem;
|
|
262
|
+
color: var(--sc-color-text);
|
|
263
|
+
font-weight: var(--sc-weight-medium);
|
|
264
|
+
text-decoration: none;
|
|
265
|
+
text-overflow: ellipsis;
|
|
266
|
+
}
|
|
267
|
+
|
|
247
268
|
.sc-nav {
|
|
248
269
|
display: flex;
|
|
270
|
+
flex-wrap: wrap;
|
|
249
271
|
gap: var(--sc-space-1);
|
|
250
272
|
}
|
|
251
273
|
|
|
@@ -1259,7 +1281,75 @@ svg {
|
|
|
1259
1281
|
font-size: var(--sc-text-sm);
|
|
1260
1282
|
}
|
|
1261
1283
|
|
|
1262
|
-
/*
|
|
1284
|
+
/* Projects: what a person may see, each with what they are in it and what waits in it. */
|
|
1285
|
+
|
|
1286
|
+
.sc-projects {
|
|
1287
|
+
display: grid;
|
|
1288
|
+
gap: var(--sc-space-3);
|
|
1289
|
+
}
|
|
1290
|
+
|
|
1291
|
+
.sc-project {
|
|
1292
|
+
padding: var(--sc-space-4);
|
|
1293
|
+
border: var(--sc-border);
|
|
1294
|
+
border-radius: var(--sc-radius-md);
|
|
1295
|
+
background: var(--sc-color-bg-subtle);
|
|
1296
|
+
}
|
|
1297
|
+
|
|
1298
|
+
.sc-project-head {
|
|
1299
|
+
display: flex;
|
|
1300
|
+
flex-wrap: wrap;
|
|
1301
|
+
align-items: center;
|
|
1302
|
+
gap: var(--sc-space-3);
|
|
1303
|
+
}
|
|
1304
|
+
|
|
1305
|
+
.sc-project-name {
|
|
1306
|
+
color: var(--sc-color-text);
|
|
1307
|
+
font-size: var(--sc-text-lg);
|
|
1308
|
+
font-weight: var(--sc-weight-bold);
|
|
1309
|
+
text-decoration: none;
|
|
1310
|
+
}
|
|
1311
|
+
|
|
1312
|
+
.sc-project-name:hover {
|
|
1313
|
+
text-decoration: underline;
|
|
1314
|
+
}
|
|
1315
|
+
|
|
1316
|
+
.sc-project-key {
|
|
1317
|
+
color: var(--sc-color-text-muted);
|
|
1318
|
+
font-size: var(--sc-text-sm);
|
|
1319
|
+
}
|
|
1320
|
+
|
|
1321
|
+
.sc-project-description {
|
|
1322
|
+
margin: var(--sc-space-2) 0 0;
|
|
1323
|
+
color: var(--sc-color-text-muted);
|
|
1324
|
+
}
|
|
1325
|
+
|
|
1326
|
+
.sc-project-meta {
|
|
1327
|
+
display: flex;
|
|
1328
|
+
flex-wrap: wrap;
|
|
1329
|
+
gap: var(--sc-space-2);
|
|
1330
|
+
margin: var(--sc-space-2) 0 0;
|
|
1331
|
+
}
|
|
1332
|
+
|
|
1333
|
+
.sc-project-meta:empty {
|
|
1334
|
+
display: none;
|
|
1335
|
+
}
|
|
1336
|
+
|
|
1337
|
+
.sc-members {
|
|
1338
|
+
display: grid;
|
|
1339
|
+
gap: var(--sc-space-4);
|
|
1340
|
+
}
|
|
1341
|
+
|
|
1342
|
+
.sc-member-form .sc-field-row {
|
|
1343
|
+
align-items: end;
|
|
1344
|
+
}
|
|
1345
|
+
|
|
1346
|
+
.sc-feed-agent {
|
|
1347
|
+
margin-left: var(--sc-space-2);
|
|
1348
|
+
color: var(--sc-color-text-muted);
|
|
1349
|
+
font-size: var(--sc-text-sm);
|
|
1350
|
+
}
|
|
1351
|
+
|
|
1352
|
+
/* Skills: the project's, or the organization's, as SkillCDN serves them at the address. */
|
|
1263
1353
|
|
|
1264
1354
|
.sc-skills {
|
|
1265
1355
|
display: grid;
|
package/dist/console.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { type BoardProps } from "./components/board.js";
|
|
|
4
4
|
import { type DecisionListProps } from "./components/decision-list.js";
|
|
5
5
|
import { type EventFeedProps } from "./components/event-feed.js";
|
|
6
6
|
import { type PeopleListProps } from "./components/people.js";
|
|
7
|
+
import { type MemberListProps, type ProjectListProps } from "./components/projects.js";
|
|
7
8
|
import { type ShellProps } from "./components/shell.js";
|
|
8
9
|
import { type SignInProps } from "./components/sign-in.js";
|
|
9
10
|
import { type SkillListProps } from "./components/skills.js";
|
|
@@ -20,6 +21,8 @@ export interface ConsoleComponents {
|
|
|
20
21
|
readonly TokenList: ComponentType<TokenListProps>;
|
|
21
22
|
readonly PeopleList: ComponentType<PeopleListProps>;
|
|
22
23
|
readonly SkillList: ComponentType<SkillListProps>;
|
|
24
|
+
readonly ProjectList: ComponentType<ProjectListProps>;
|
|
25
|
+
readonly MemberList: ComponentType<MemberListProps>;
|
|
23
26
|
}
|
|
24
27
|
export declare const DEFAULT_COMPONENTS: ConsoleComponents;
|
|
25
28
|
export interface ConsoleConfig {
|
package/dist/console.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../src/console.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAyD,MAAM,OAAO,CAAC;AAElG,OAAO,EAEL,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../src/console.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAyD,MAAM,OAAO,CAAC;AAElG,OAAO,EAEL,KAAK,aAAa,EAanB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAEL,KAAK,eAAe,EAGpB,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAkC,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAkB7F,8FAA8F;AAC9F,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACxD,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAClD,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;CACrD;AAED,eAAO,MAAM,kBAAkB,EAAE,iBAYhC,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,+FAA+F;IAC/F,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IAC7D,2FAA2F;IAC3F,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC7C;AAED,MAAM,WAAW,UAAU;IACzB,sEAAsE;IACtE,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;IAC3E,mFAAmF;IACnF,KAAK,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,IAAI,CAAC;CACvC;AA2fD,wBAAgB,aAAa,CAAC,MAAM,GAAE,aAAkB,GAAG,UAAU,CA+JpE"}
|
package/dist/console.js
CHANGED
|
@@ -7,6 +7,7 @@ import { DecisionForm } from "./components/decision-form.js";
|
|
|
7
7
|
import { DecisionList } from "./components/decision-list.js";
|
|
8
8
|
import { EventFeed } from "./components/event-feed.js";
|
|
9
9
|
import { PeopleList } from "./components/people.js";
|
|
10
|
+
import { MemberList, ProjectForm, ProjectList, } from "./components/projects.js";
|
|
10
11
|
import { Shell } from "./components/shell.js";
|
|
11
12
|
import { SignIn } from "./components/sign-in.js";
|
|
12
13
|
import { SkillList } from "./components/skills.js";
|
|
@@ -15,7 +16,8 @@ import { TaskView } from "./components/task-view.js";
|
|
|
15
16
|
import { NewToken, TokenForm, TokenList } from "./components/tokens.js";
|
|
16
17
|
import { Button, Callout, EmptyState, Spinner } from "./components/ui.js";
|
|
17
18
|
import { useConsoleData } from "./data.js";
|
|
18
|
-
import { matchRoute, PATHS, signInFailureOf, taskHref, withoutSignInParam, } from "./router.js";
|
|
19
|
+
import { matchRoute, PATHS, projectHref, signInFailureOf, taskHref, withoutSignInParam, } from "./router.js";
|
|
20
|
+
import { projectPath } from "./routes.js";
|
|
19
21
|
export const DEFAULT_COMPONENTS = {
|
|
20
22
|
Shell,
|
|
21
23
|
Board,
|
|
@@ -26,6 +28,8 @@ export const DEFAULT_COMPONENTS = {
|
|
|
26
28
|
TokenList,
|
|
27
29
|
PeopleList,
|
|
28
30
|
SkillList,
|
|
31
|
+
ProjectList,
|
|
32
|
+
MemberList,
|
|
29
33
|
};
|
|
30
34
|
/** The browser's location, as the app reads it; a given path while rendering elsewhere. */
|
|
31
35
|
function useLocation(initialPath) {
|
|
@@ -59,17 +63,10 @@ function errorWords(error) {
|
|
|
59
63
|
}
|
|
60
64
|
return "Something went wrong. Try again.";
|
|
61
65
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
const [writing, setWriting] = useState(false);
|
|
65
|
-
const [asking, setAsking] = useState(false);
|
|
66
|
-
const [making, setMaking] = useState(false);
|
|
67
|
-
const [fresh, setFresh] = useState(undefined);
|
|
66
|
+
/** Runs a change, keeps what went wrong for the page, and says when it is busy. */
|
|
67
|
+
function useAction() {
|
|
68
68
|
const [busy, setBusy] = useState(false);
|
|
69
69
|
const [error, setError] = useState(undefined);
|
|
70
|
-
const tasksById = useMemo(() => new Map(data.tasks.map((task) => [task.id, task])), [data.tasks]);
|
|
71
|
-
const href = (task) => taskHref(task.id);
|
|
72
|
-
/** Runs a change, shows what went wrong, and refreshes what it touched. */
|
|
73
70
|
const act = async (work) => {
|
|
74
71
|
setBusy(true);
|
|
75
72
|
setError(undefined);
|
|
@@ -83,12 +80,53 @@ function Page(props) {
|
|
|
83
80
|
setBusy(false);
|
|
84
81
|
}
|
|
85
82
|
};
|
|
83
|
+
return { busy, error, act };
|
|
84
|
+
}
|
|
85
|
+
/** The key of the project a route is on, or nothing. */
|
|
86
|
+
const projectOf = (route) => "project" in route ? route.project : undefined;
|
|
87
|
+
function ProjectsPage(props) {
|
|
88
|
+
const { data, components, navigate } = props;
|
|
89
|
+
const [making, setMaking] = useState(false);
|
|
90
|
+
const { busy, error, act } = useAction();
|
|
91
|
+
const href = (project) => projectHref(project.key);
|
|
92
|
+
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "sc-page-head", children: [_jsx("h1", { className: "sc-page-title", children: "Projects" }), _jsx(Button, { variant: "primary", onClick: () => setMaking(true), disabled: making, children: "New project" })] }), _jsx("p", { className: "sc-lead", children: "A project holds its board, its skills and its people. What you may see and change is decided per project: an owner configures it, a member works on it." }), error !== undefined && _jsx(Callout, { tone: "danger", children: error }), making && (_jsx("section", { className: "sc-panel", "aria-label": "New project", children: _jsx(ProjectForm, { busy: busy, onSubmit: (input) => void act(async () => {
|
|
93
|
+
const made = await data.actions.createProject(input);
|
|
94
|
+
setMaking(false);
|
|
95
|
+
navigate(projectHref(made.key));
|
|
96
|
+
}), onCancel: () => setMaking(false) }) })), _jsx(components.ProjectList, { projects: data.projects, projectHref: href, onOpen: (project) => navigate(href(project)), empty: _jsx(EmptyState, { title: "No projects yet", body: "Make the first one: what it is for, and who is in it. Or ask an owner to add you to theirs.", action: _jsx(Button, { onClick: () => setMaking(true), children: "New project" }) }) })] }));
|
|
97
|
+
}
|
|
98
|
+
function TaskPage(props) {
|
|
99
|
+
const { project, task, data, components, busy, error, act } = props;
|
|
100
|
+
const [history, setHistory] = useState(undefined);
|
|
101
|
+
const { taskHistory } = data.actions;
|
|
102
|
+
// Everything that happened to the task, asked for again whenever the project's feed grows.
|
|
103
|
+
const feedLength = data.events.length;
|
|
104
|
+
// biome-ignore lint/correctness/useExhaustiveDependencies: the feed's length is the trigger
|
|
105
|
+
useEffect(() => {
|
|
106
|
+
const controller = new AbortController();
|
|
107
|
+
taskHistory(task.id, controller.signal)
|
|
108
|
+
.then((events) => {
|
|
109
|
+
if (!controller.signal.aborted) {
|
|
110
|
+
setHistory(events);
|
|
111
|
+
}
|
|
112
|
+
})
|
|
113
|
+
.catch(() => undefined);
|
|
114
|
+
return () => controller.abort();
|
|
115
|
+
}, [task.id, taskHistory, feedLength]);
|
|
116
|
+
return (_jsx(components.TaskView, { task: task, people: data.people, tasks: data.tasks, decisions: data.decisions, runs: data.runs, history: history, taskHref: (candidate) => taskHref(project.key, candidate.id), decisionHref: () => projectHref(project.key, "decisions"), fileHref: (artifact) => projectPath(project.key, "files", artifact.id), busy: busy, error: error, onChange: (target, patch) => void act(() => data.actions.updateTask(target.id, patch)), onMove: (target, state) => void act(() => data.actions.updateTask(target.id, { state })), onRaiseDecision: (input) => void act(() => data.actions.raiseDecision(input)), onAnswer: (decision, input) => void act(() => data.actions.answerDecision(decision.id, input)), onAbandonRun: (run) => void act(() => data.actions.abandonRun(run.id)) }));
|
|
117
|
+
}
|
|
118
|
+
function ProjectPage(props) {
|
|
119
|
+
const { route, project, data, components, navigate } = props;
|
|
120
|
+
const [writing, setWriting] = useState(false);
|
|
121
|
+
const [asking, setAsking] = useState(false);
|
|
122
|
+
const { busy, error, act } = useAction();
|
|
123
|
+
const tasksById = useMemo(() => new Map(data.tasks.map((task) => [task.id, task])), [data.tasks]);
|
|
124
|
+
const href = (task) => taskHref(project.key, task.id);
|
|
125
|
+
const owner = project.role === "owner";
|
|
86
126
|
const onMove = (task, state) => void act(() => data.actions.updateTask(task.id, { state }));
|
|
87
|
-
const onChange = (task, patch) => void act(() => data.actions.updateTask(task.id, patch));
|
|
88
127
|
const onAnswer = (decision, input) => void act(() => data.actions.answerDecision(decision.id, input));
|
|
89
|
-
const onRaise = (input) => void act(() => data.actions.raiseDecision(input));
|
|
90
128
|
if (route.name === "board") {
|
|
91
|
-
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "sc-page-head", children: [_jsx("h1", { className: "sc-page-title", children:
|
|
129
|
+
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "sc-page-head", children: [_jsx("h1", { className: "sc-page-title", children: project.name }), _jsx(Button, { variant: "primary", onClick: () => setWriting(true), disabled: writing, children: "Write a task" })] }), project.description.length > 0 && _jsx("p", { className: "sc-lead", children: project.description }), error !== undefined && _jsx(Callout, { tone: "danger", children: error }), writing && (_jsx("section", { className: "sc-panel", "aria-label": "Write a task", children: _jsx(TaskForm, { people: data.people, parents: data.tasks, busy: busy, onSubmit: (input) => void act(async () => {
|
|
92
130
|
await data.actions.createTask(input);
|
|
93
131
|
setWriting(false);
|
|
94
132
|
}), onCancel: () => setWriting(false) }) })), _jsx(components.Board, { tasks: data.tasks, taskHref: href, onOpen: (task) => navigate(href(task)), onMove: onMove, empty: data.tasks.length === 0 ? (_jsx(EmptyState, { title: "Nothing on the board yet", body: "Write the first task: what is to be done, and for whom.", action: _jsx(Button, { onClick: () => setWriting(true), children: "Write a task" }) })) : undefined })] }));
|
|
@@ -96,9 +134,9 @@ function Page(props) {
|
|
|
96
134
|
if (route.name === "task") {
|
|
97
135
|
const task = tasksById.get(route.id);
|
|
98
136
|
if (task === undefined) {
|
|
99
|
-
return (_jsx(EmptyState, { title: "No such task", body: "It may
|
|
137
|
+
return (_jsx(EmptyState, { title: "No such task", body: "It may belong to another project, or the link is wrong." }));
|
|
100
138
|
}
|
|
101
|
-
return (_jsx(
|
|
139
|
+
return (_jsx(TaskPage, { project: project, task: task, data: data, components: components, busy: busy, error: error, act: act }));
|
|
102
140
|
}
|
|
103
141
|
if (route.name === "decisions") {
|
|
104
142
|
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "sc-page-head", children: [_jsx("h1", { className: "sc-page-title", children: "Decisions" }), _jsx(Button, { variant: "primary", onClick: () => setAsking(true), disabled: asking, children: "Raise a decision" })] }), error !== undefined && _jsx(Callout, { tone: "danger", children: error }), asking && (_jsx("section", { className: "sc-panel", "aria-label": "Raise a decision", children: _jsx(DecisionForm, { tasks: data.tasks, busy: busy, onSubmit: (input) => void act(async () => {
|
|
@@ -107,15 +145,40 @@ function Page(props) {
|
|
|
107
145
|
}), onCancel: () => setAsking(false) }) })), _jsx(components.DecisionList, { decisions: data.decisions, tasks: tasksById, taskHref: href, onAnswer: onAnswer, busy: busy, empty: _jsx(EmptyState, { title: "Nothing waits for a person", body: "A decision raised from a task, or from here, shows up on this page." }) })] }));
|
|
108
146
|
}
|
|
109
147
|
if (route.name === "feed") {
|
|
110
|
-
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "sc-page-head", children: _jsx("h1", { className: "sc-page-title", children: "What happened" }) }), _jsx(components.EventFeed, { events: data.events, href: (event) =>
|
|
148
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "sc-page-head", children: _jsx("h1", { className: "sc-page-title", children: "What happened" }) }), _jsx(components.EventFeed, { events: data.events, href: (event) => event.taskId === null ? undefined : taskHref(project.key, event.taskId), empty: _jsx(EmptyState, { title: "Nothing happened yet" }) })] }));
|
|
111
149
|
}
|
|
112
150
|
if (route.name === "skills") {
|
|
113
151
|
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "sc-page-head", children: _jsx("h1", { className: "sc-page-title", children: "Skills" }) }), _jsx(components.SkillList, { skills: data.skills })] }));
|
|
114
152
|
}
|
|
153
|
+
if (route.name === "members") {
|
|
154
|
+
const me = data.me?.person ?? undefined;
|
|
155
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "sc-page-head", children: _jsx("h1", { className: "sc-page-title", children: "Members" }) }), _jsxs("p", { className: "sc-lead", children: [project.visibility === "workspace"
|
|
156
|
+
? "Everyone of the workspace is a member of this project; those listed here are its owners and the people named besides. "
|
|
157
|
+
: "Only those listed here are in this project. ", "An owner configures the project; a member works on it. A workspace administrator is an owner of every project."] }), error !== undefined && _jsx(Callout, { tone: "danger", children: error }), _jsx(components.MemberList, { members: data.members, people: data.people, me: me, busy: busy, onAdd: owner ? (input) => void act(() => data.actions.addMember(input)) : undefined, onChangeRole: owner
|
|
158
|
+
? (member, role) => void act(() => data.actions.updateMember(member.person.id, { role }))
|
|
159
|
+
: undefined, onRemove: owner
|
|
160
|
+
? (member) => void act(() => data.actions.removeMember(member.person.id))
|
|
161
|
+
: undefined, empty: _jsx(EmptyState, { title: "Nobody is listed", body: project.visibility === "workspace"
|
|
162
|
+
? "Everyone of the workspace is in; the administrators own it."
|
|
163
|
+
: "The administrators own it until an owner is listed." }) })] }));
|
|
164
|
+
}
|
|
165
|
+
if (route.name === "settings") {
|
|
166
|
+
if (!owner) {
|
|
167
|
+
return (_jsx(EmptyState, { title: "Only an owner may change the project", body: "Ask one of its owners, or a workspace administrator." }));
|
|
168
|
+
}
|
|
169
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "sc-page-head", children: _jsx("h1", { className: "sc-page-title", children: "Settings" }) }), _jsxs("p", { className: "sc-lead", children: ["The key, ", _jsx("code", { children: project.key }), ", is what paths and the command say, and does not change. The skills address names a repository served by SkillCDN; empty, the organization's skills are shown."] }), error !== undefined && _jsx(Callout, { tone: "danger", children: error }), _jsx("section", { className: "sc-panel", "aria-label": "Project settings", children: _jsx(ProjectForm, { project: project, busy: busy, onSubmit: (input) => void act(() => data.actions.updateProject(input)) }) })] }));
|
|
170
|
+
}
|
|
171
|
+
return _jsx(EmptyState, { title: "There is nothing at this address" });
|
|
172
|
+
}
|
|
173
|
+
function WorkspacePage(props) {
|
|
174
|
+
const { route, data, components } = props;
|
|
175
|
+
const [making, setMaking] = useState(false);
|
|
176
|
+
const [fresh, setFresh] = useState(undefined);
|
|
177
|
+
const { busy, error, act } = useAction();
|
|
115
178
|
if (route.name === "people") {
|
|
116
179
|
const me = data.me?.person ?? undefined;
|
|
117
180
|
const administrator = me?.role === "admin";
|
|
118
|
-
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "sc-page-head", children: _jsx("h1", { className: "sc-page-title", children: "People" }) }), _jsx("p", { className: "sc-lead", children: "Everyone who has signed in. An administrator configures the
|
|
181
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "sc-page-head", children: _jsx("h1", { className: "sc-page-title", children: "People" }) }), _jsx("p", { className: "sc-lead", children: "Everyone who has signed in. An administrator configures the workspace and says what each person is; a member works in the projects they are in. What a person may do, their agents may do." }), error !== undefined && _jsx(Callout, { tone: "danger", children: error }), _jsx(components.PeopleList, { people: data.people, me: me, busy: busy, onChangeRole: administrator
|
|
119
182
|
? (person, role) => void act(() => data.actions.updatePerson(person.id, { role }))
|
|
120
183
|
: undefined })] }));
|
|
121
184
|
}
|
|
@@ -124,7 +187,7 @@ function Page(props) {
|
|
|
124
187
|
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "sc-page-head", children: [_jsx("h1", { className: "sc-page-title", children: "Tokens" }), _jsx(Button, { variant: "primary", onClick: () => setMaking(true), disabled: making, children: "Make a token" })] }), _jsx("p", { className: "sc-lead", children: "A token lets an agent, a script or a console of your own act as you on this board: what you may do, it may do. Make one per agent, name it after where it runs, and remove it when that is over." }), error !== undefined && _jsx(Callout, { tone: "danger", children: error }), fresh !== undefined && (_jsx(NewToken, { token: fresh.token, secret: fresh.secret, onDone: () => setFresh(undefined) })), making && (_jsx("section", { className: "sc-panel", "aria-label": "Make a token", children: _jsx(TokenForm, { busy: busy, onSubmit: (input) => void act(async () => {
|
|
125
188
|
setFresh(await data.actions.createToken(input));
|
|
126
189
|
setMaking(false);
|
|
127
|
-
}), onCancel: () => setMaking(false) }) })), _jsx(components.TokenList, { tokens: data.tokens, busy: busy, onRevoke: (token) => void act(() => data.actions.revokeToken(token.id)), empty: _jsx(EmptyState, { title: "No tokens yet", body: "Make one for your agent, and it can work on this board as you." }) }), _jsxs("section", { className: "sc-panel sc-connect", "aria-label": "Connecting an agent", children: [_jsx("h2", { className: "sc-section-title", children: "Connecting an agent" }), _jsxs("p", { children: ["An agent works this board with the ", _jsx("code", { children: "console" }), " command, which comes with the", " ", _jsx("code", { children: "@skillcdn/console" }), " package. Install the package where the agent runs,
|
|
190
|
+
}), onCancel: () => setMaking(false) }) })), _jsx(components.TokenList, { tokens: data.tokens, busy: busy, onRevoke: (token) => void act(() => data.actions.revokeToken(token.id)), empty: _jsx(EmptyState, { title: "No tokens yet", body: "Make one for your agent, and it can work on this board as you." }) }), _jsxs("section", { className: "sc-panel sc-connect", "aria-label": "Connecting an agent", children: [_jsx("h2", { className: "sc-section-title", children: "Connecting an agent" }), _jsxs("p", { children: ["An agent works this board with the ", _jsx("code", { children: "console" }), " command, which comes with the", " ", _jsx("code", { children: "@skillcdn/console" }), " package. Install the package where the agent runs, sign the command in with a token made here, and say which project the directory works in:"] }), _jsxs("pre", { className: "sc-code", children: ["npm install -g @skillcdn/console", "\n", "console login --url ", origin, "\n", "console use ", "<project key>"] }), _jsxs("p", { children: ["It asks for the token and keeps it in your home directory, and your agent is you from then on: ", _jsx("code", { children: "console take" }), " starts work on a task, ", _jsx("code", { children: "console report" }), ",", " ", _jsx("code", { children: "console hand-in" }), " and ", _jsx("code", { children: "console ask" }), " say how it goes, and", " ", _jsx("code", { children: "console finish" }), " ends the run. ", _jsx("code", { children: "console help" }), " says the rest."] })] })] }));
|
|
128
191
|
}
|
|
129
192
|
return _jsx(EmptyState, { title: "There is nothing at this address" });
|
|
130
193
|
}
|
|
@@ -134,40 +197,86 @@ export function createConsole(config = {}) {
|
|
|
134
197
|
const fallbackTitle = config.title ?? "Console";
|
|
135
198
|
function App(props) {
|
|
136
199
|
const { location, navigate } = useLocation(props.initialPath);
|
|
137
|
-
const data = useConsoleData(client);
|
|
138
200
|
const route = useMemo(() => matchRoute(location.pathname), [location.pathname]);
|
|
201
|
+
const projectKey = projectOf(route);
|
|
202
|
+
const data = useConsoleData(client, projectKey);
|
|
139
203
|
const failure = signInFailureOf(location.search);
|
|
140
204
|
const title = data.me?.workspace.name ?? fallbackTitle;
|
|
141
205
|
useEffect(() => {
|
|
142
206
|
if (typeof document !== "undefined") {
|
|
143
|
-
document.title = title
|
|
207
|
+
document.title = data.project === undefined ? title : `${data.project.name} · ${title}`;
|
|
144
208
|
}
|
|
145
|
-
}, [title]);
|
|
209
|
+
}, [title, data.project]);
|
|
146
210
|
if (data.me === undefined) {
|
|
147
211
|
return (_jsx("div", { className: "sc-loading", children: data.error === undefined ? (_jsx(Spinner, { label: "Loading" })) : (_jsx(Callout, { tone: "danger", title: "The console could not be reached", action: _jsx(Button, { onClick: data.reload, children: "Try again" }), children: data.error })) }));
|
|
148
212
|
}
|
|
149
213
|
if (data.me.person === null) {
|
|
150
214
|
return (_jsx(components.SignIn, { title: title, providers: data.me.signIn, returnTo: withoutSignInParam(location.pathname, location.search), failure: failure }));
|
|
151
215
|
}
|
|
216
|
+
const project = data.project;
|
|
152
217
|
const waiting = data.decisions.filter((decision) => decision.answer === null).length;
|
|
153
|
-
const nav =
|
|
154
|
-
{
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
218
|
+
const nav = projectKey === undefined
|
|
219
|
+
? [{ href: PATHS.projects, label: "Projects", current: route.name === "projects" }]
|
|
220
|
+
: [
|
|
221
|
+
{
|
|
222
|
+
href: projectHref(projectKey),
|
|
223
|
+
label: "Board",
|
|
224
|
+
current: route.name === "board" || route.name === "task",
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
href: projectHref(projectKey, "decisions"),
|
|
228
|
+
label: "Decisions",
|
|
229
|
+
current: route.name === "decisions",
|
|
230
|
+
count: waiting,
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
href: projectHref(projectKey, "feed"),
|
|
234
|
+
label: "Feed",
|
|
235
|
+
current: route.name === "feed",
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
href: projectHref(projectKey, "skills"),
|
|
239
|
+
label: "Skills",
|
|
240
|
+
current: route.name === "skills",
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
href: projectHref(projectKey, "members"),
|
|
244
|
+
label: "Members",
|
|
245
|
+
current: route.name === "members",
|
|
246
|
+
},
|
|
247
|
+
...(project?.role === "owner"
|
|
248
|
+
? [
|
|
249
|
+
{
|
|
250
|
+
href: projectHref(projectKey, "settings"),
|
|
251
|
+
label: "Settings",
|
|
252
|
+
current: route.name === "settings",
|
|
253
|
+
},
|
|
254
|
+
]
|
|
255
|
+
: []),
|
|
256
|
+
];
|
|
257
|
+
nav.push({ href: PATHS.people, label: "People", current: route.name === "people" }, { href: PATHS.tokens, label: "Tokens", current: route.name === "tokens" });
|
|
258
|
+
let page;
|
|
259
|
+
if (!data.loaded) {
|
|
260
|
+
page = (_jsx("div", { className: "sc-loading", children: _jsx(Spinner, { label: "Loading the workspace" }) }));
|
|
261
|
+
}
|
|
262
|
+
else if (route.name === "projects") {
|
|
263
|
+
page = _jsx(ProjectsPage, { data: data, components: components, navigate: navigate });
|
|
264
|
+
}
|
|
265
|
+
else if (projectKey === undefined) {
|
|
266
|
+
page = _jsx(WorkspacePage, { route: route, data: data, components: components });
|
|
267
|
+
}
|
|
268
|
+
else if (data.projectError !== undefined) {
|
|
269
|
+
page = (_jsx(EmptyState, { title: "No such project", body: "It may not exist, or it is not yours to see. The projects you may work in are on the front page.", action: _jsx(Button, { onClick: () => navigate(PATHS.projects), children: "Projects" }) }));
|
|
270
|
+
}
|
|
271
|
+
else if (!data.projectLoaded || project === undefined) {
|
|
272
|
+
page = (_jsx("div", { className: "sc-loading", children: _jsx(Spinner, { label: "Loading the project" }) }));
|
|
273
|
+
}
|
|
274
|
+
else {
|
|
275
|
+
page = (_jsx(ProjectPage, { route: route, project: project, data: data, components: components, navigate: navigate }));
|
|
276
|
+
}
|
|
277
|
+
return (_jsx(components.Shell, { title: title, project: projectKey === undefined
|
|
278
|
+
? undefined
|
|
279
|
+
: { name: project?.name ?? projectKey, href: projectHref(projectKey) }, nav: nav, person: data.me.person, live: projectKey === undefined ? undefined : data.live, onNavigate: (href) => navigate(href), onSignOut: () => void data.actions.signOut(), children: page }));
|
|
171
280
|
}
|
|
172
281
|
return {
|
|
173
282
|
App,
|
package/dist/console.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.js","sourceRoot":"","sources":["../src/console.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"console.js","sourceRoot":"","sources":["../src/console.tsx"],"names":[],"mappings":"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"}
|