@skillcdn/console 0.1.1 → 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.
Files changed (79) hide show
  1. package/README.md +11 -9
  2. package/dist/api.d.ts +5 -5
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +4 -4
  5. package/dist/api.js.map +1 -1
  6. package/dist/cli/cli.d.ts +3 -0
  7. package/dist/cli/cli.d.ts.map +1 -1
  8. package/dist/cli/cli.js +95 -42
  9. package/dist/cli/cli.js.map +1 -1
  10. package/dist/cli/directory.d.ts +14 -0
  11. package/dist/cli/directory.d.ts.map +1 -0
  12. package/dist/cli/directory.js +46 -0
  13. package/dist/cli/directory.js.map +1 -0
  14. package/dist/cli/format.d.ts +6 -3
  15. package/dist/cli/format.d.ts.map +1 -1
  16. package/dist/cli/format.js +17 -6
  17. package/dist/cli/format.js.map +1 -1
  18. package/dist/cli/help.d.ts.map +1 -1
  19. package/dist/cli/help.js +19 -6
  20. package/dist/cli/help.js.map +1 -1
  21. package/dist/cli/main.js +2 -0
  22. package/dist/cli/main.js.map +1 -1
  23. package/dist/client.d.ts +39 -10
  24. package/dist/client.d.ts.map +1 -1
  25. package/dist/client.js +54 -33
  26. package/dist/client.js.map +1 -1
  27. package/dist/components/event-feed.d.ts.map +1 -1
  28. package/dist/components/event-feed.js +34 -14
  29. package/dist/components/event-feed.js.map +1 -1
  30. package/dist/components/projects.d.ts +41 -0
  31. package/dist/components/projects.d.ts.map +1 -0
  32. package/dist/components/projects.js +81 -0
  33. package/dist/components/projects.js.map +1 -0
  34. package/dist/components/runs.d.ts +2 -2
  35. package/dist/components/runs.d.ts.map +1 -1
  36. package/dist/components/runs.js +2 -2
  37. package/dist/components/runs.js.map +1 -1
  38. package/dist/components/shell.d.ts +5 -0
  39. package/dist/components/shell.d.ts.map +1 -1
  40. package/dist/components/shell.js +1 -1
  41. package/dist/components/shell.js.map +1 -1
  42. package/dist/components/task-view.d.ts +5 -1
  43. package/dist/components/task-view.d.ts.map +1 -1
  44. package/dist/components/task-view.js +2 -1
  45. package/dist/components/task-view.js.map +1 -1
  46. package/dist/console.css +91 -1
  47. package/dist/console.d.ts +3 -0
  48. package/dist/console.d.ts.map +1 -1
  49. package/dist/console.js +148 -39
  50. package/dist/console.js.map +1 -1
  51. package/dist/data.d.ts +33 -10
  52. package/dist/data.d.ts.map +1 -1
  53. package/dist/data.js +202 -81
  54. package/dist/data.js.map +1 -1
  55. package/dist/index.d.ts +2 -1
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +2 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/limits.d.ts +7 -0
  60. package/dist/limits.d.ts.map +1 -1
  61. package/dist/limits.js +7 -0
  62. package/dist/limits.js.map +1 -1
  63. package/dist/router.d.ts +22 -7
  64. package/dist/router.d.ts.map +1 -1
  65. package/dist/router.js +36 -22
  66. package/dist/router.js.map +1 -1
  67. package/dist/routes.d.ts +14 -12
  68. package/dist/routes.d.ts.map +1 -1
  69. package/dist/routes.js +28 -11
  70. package/dist/routes.js.map +1 -1
  71. package/dist/schemas.d.ts +163 -28
  72. package/dist/schemas.d.ts.map +1 -1
  73. package/dist/schemas.js +99 -27
  74. package/dist/schemas.js.map +1 -1
  75. package/dist/vocabulary.d.ts +7 -1
  76. package/dist/vocabulary.d.ts.map +1 -1
  77. package/dist/vocabulary.js +9 -0
  78. package/dist/vocabulary.js.map +1 -1
  79. 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":"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"}
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
- /* Skills: the organization's, as SkillCDN serves them at the console's address. */
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 {
@@ -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,EASnB,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,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;AAe7F,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;CACnD;AAED,eAAO,MAAM,kBAAkB,EAAE,iBAUhC,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;AAqTD,wBAAgB,aAAa,CAAC,MAAM,GAAE,aAAkB,GAAG,UAAU,CA+FpE"}
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
- function Page(props) {
63
- const { route, data, components, navigate } = props;
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: "Board" }), _jsx(Button, { variant: "primary", onClick: () => setWriting(true), disabled: writing, children: "Write a task" })] }), 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 () => {
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 have been written on another board, or the link is wrong." }));
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(components.TaskView, { task: task, people: data.people, tasks: data.tasks, decisions: data.decisions, runs: data.runs, taskHref: href, decisionHref: () => PATHS.decisions, busy: busy, error: error, onChange: onChange, onMove: onMove, onRaiseDecision: onRaise, onAnswer: onAnswer, onAbandonRun: (run) => void act(() => data.actions.abandonRun(run.id)) }));
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) => (event.taskId === null ? undefined : taskHref(event.taskId)), empty: _jsx(EmptyState, { title: "Nothing happened yet" }) })] }));
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 board and says what each person is; a member works on it. 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
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, then sign the command in with a token made here:"] }), _jsxs("pre", { className: "sc-code", children: ["npm install -g @skillcdn/console", "\n", "console login --url ", origin] }), _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."] })] })] }));
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
- href: PATHS.board,
156
- label: "Board",
157
- current: route.name === "board" || route.name === "task",
158
- },
159
- {
160
- href: PATHS.decisions,
161
- label: "Decisions",
162
- current: route.name === "decisions",
163
- count: waiting,
164
- },
165
- { href: PATHS.feed, label: "Feed", current: route.name === "feed" },
166
- { href: PATHS.skills, label: "Skills", current: route.name === "skills" },
167
- { href: PATHS.people, label: "People", current: route.name === "people" },
168
- { href: PATHS.tokens, label: "Tokens", current: route.name === "tokens" },
169
- ];
170
- return (_jsx(components.Shell, { title: title, nav: nav, person: data.me.person, live: data.live, onNavigate: (href) => navigate(href), onSignOut: () => void data.actions.signOut(), children: data.loaded ? (_jsx(Page, { route: route, data: data, components: components, navigate: navigate })) : (_jsx("div", { className: "sc-loading", children: _jsx(Spinner, { label: "Loading the board" }) })) }));
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,
@@ -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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"}