@skillcdn/console 0.1.14 → 0.1.15
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 +5 -4
- package/SKILLCDN.md +2 -0
- package/dist/agent-name.d.ts +3 -0
- package/dist/agent-name.d.ts.map +1 -0
- package/dist/agent-name.js +9 -0
- package/dist/agent-name.js.map +1 -0
- package/dist/api.d.ts +6 -4
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +6 -4
- package/dist/api.js.map +1 -1
- package/dist/cli/cli.d.ts +2 -0
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +215 -22
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/format.d.ts +14 -4
- package/dist/cli/format.d.ts.map +1 -1
- package/dist/cli/format.js +59 -10
- package/dist/cli/format.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +27 -11
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/main.js +5 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/client.d.ts +20 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +11 -2
- package/dist/client.js.map +1 -1
- package/dist/components/calendar.d.ts.map +1 -1
- package/dist/components/calendar.js +39 -29
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/connect.d.ts +4 -1
- package/dist/components/connect.d.ts.map +1 -1
- package/dist/components/connect.js +7 -3
- package/dist/components/connect.js.map +1 -1
- package/dist/components/decision-list.d.ts.map +1 -1
- package/dist/components/decision-list.js +2 -2
- package/dist/components/decision-list.js.map +1 -1
- package/dist/components/documents.d.ts +5 -0
- package/dist/components/documents.d.ts.map +1 -1
- package/dist/components/documents.js +3 -2
- package/dist/components/documents.js.map +1 -1
- package/dist/components/event-feed.d.ts +1 -1
- package/dist/components/event-feed.d.ts.map +1 -1
- package/dist/components/event-feed.js +10 -1
- package/dist/components/event-feed.js.map +1 -1
- package/dist/components/people.d.ts +24 -1
- package/dist/components/people.d.ts.map +1 -1
- package/dist/components/people.js +35 -3
- package/dist/components/people.js.map +1 -1
- package/dist/components/projects.d.ts +6 -0
- package/dist/components/projects.d.ts.map +1 -1
- package/dist/components/projects.js +3 -3
- package/dist/components/projects.js.map +1 -1
- package/dist/components/rules.d.ts +40 -0
- package/dist/components/rules.d.ts.map +1 -0
- package/dist/components/rules.js +46 -0
- package/dist/components/rules.js.map +1 -0
- package/dist/components/runs.d.ts +1 -1
- package/dist/components/runs.d.ts.map +1 -1
- package/dist/components/runs.js +2 -1
- package/dist/components/runs.js.map +1 -1
- package/dist/components/skills.d.ts.map +1 -1
- package/dist/components/skills.js +5 -1
- package/dist/components/skills.js.map +1 -1
- package/dist/components/tokens.d.ts.map +1 -1
- package/dist/components/tokens.js +2 -9
- package/dist/components/tokens.js.map +1 -1
- package/dist/components/ui.d.ts +7 -2
- package/dist/components/ui.d.ts.map +1 -1
- package/dist/components/ui.js +13 -0
- package/dist/components/ui.js.map +1 -1
- package/dist/components/work.d.ts +5 -1
- package/dist/components/work.d.ts.map +1 -1
- package/dist/components/work.js +1 -1
- package/dist/components/work.js.map +1 -1
- package/dist/console.css +219 -13
- package/dist/console.d.ts.map +1 -1
- package/dist/console.js +197 -43
- package/dist/console.js.map +1 -1
- package/dist/data.d.ts +19 -2
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +27 -1
- package/dist/data.js.map +1 -1
- package/dist/i18n/en.d.ts +83 -9
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +81 -11
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/ko.d.ts.map +1 -1
- package/dist/i18n/ko.js +81 -11
- package/dist/i18n/ko.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/limits.d.ts +4 -0
- package/dist/limits.d.ts.map +1 -1
- package/dist/limits.js +4 -0
- package/dist/limits.js.map +1 -1
- package/dist/router.d.ts +30 -2
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +50 -10
- package/dist/router.js.map +1 -1
- package/dist/routes.d.ts +14 -4
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +17 -2
- package/dist/routes.js.map +1 -1
- package/dist/rules.d.ts +28 -0
- package/dist/rules.d.ts.map +1 -0
- package/dist/rules.js +102 -0
- package/dist/rules.js.map +1 -0
- package/dist/schemas.d.ts +652 -4
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +96 -6
- package/dist/schemas.js.map +1 -1
- package/dist/vocabulary.d.ts +21 -1
- package/dist/vocabulary.d.ts.map +1 -1
- package/dist/vocabulary.js +21 -0
- package/dist/vocabulary.js.map +1 -1
- package/docs/specs/cli.md +13 -9
- package/docs/specs/rest.md +32 -8
- package/package.json +1 -1
- package/skills/building-a-console/SKILL.md +1 -1
- package/skills/deploying-a-console/SKILL.md +5 -5
- package/skills/deploying-a-console/assets/secrets.example.json +2 -1
- package/skills/deploying-a-console/references/access.md +10 -6
- package/skills/deploying-a-console/references/resources.md +10 -7
- package/skills/working-the-board/SKILL.md +10 -9
- package/skills/working-the-board/references/project-rules.md +36 -0
- package/src/agent-name.ts +9 -0
- package/src/api.ts +37 -0
- package/src/cli/cli.ts +253 -24
- package/src/cli/format.ts +74 -10
- package/src/cli/help.ts +30 -10
- package/src/cli/main.ts +5 -0
- package/src/client.ts +47 -1
- package/src/components/calendar.tsx +63 -50
- package/src/components/connect.tsx +12 -6
- package/src/components/decision-list.tsx +2 -1
- package/src/components/documents.tsx +7 -3
- package/src/components/event-feed.tsx +16 -3
- package/src/components/people.tsx +244 -35
- package/src/components/projects.tsx +31 -8
- package/src/components/rules.tsx +167 -0
- package/src/components/runs.tsx +4 -2
- package/src/components/skills.tsx +22 -10
- package/src/components/tokens.tsx +2 -14
- package/src/components/ui.tsx +25 -2
- package/src/components/work.tsx +34 -28
- package/src/console.tsx +523 -45
- package/src/data.ts +52 -2
- package/src/i18n/en.ts +91 -12
- package/src/i18n/ko.ts +87 -12
- package/src/index.ts +16 -1
- package/src/limits.ts +4 -0
- package/src/router.ts +67 -12
- package/src/routes.ts +23 -3
- package/src/rules.ts +109 -0
- package/src/schemas.ts +121 -4
- package/src/styles/console.css +219 -13
- package/src/vocabulary.ts +30 -0
package/src/styles/console.css
CHANGED
|
@@ -957,6 +957,12 @@ table {
|
|
|
957
957
|
line-height: 1;
|
|
958
958
|
}
|
|
959
959
|
|
|
960
|
+
.sc-avatar-xs {
|
|
961
|
+
width: 0.875rem;
|
|
962
|
+
height: 0.875rem;
|
|
963
|
+
font-size: 0.5rem;
|
|
964
|
+
}
|
|
965
|
+
|
|
960
966
|
.sc-avatar-sm {
|
|
961
967
|
width: 1.5rem;
|
|
962
968
|
height: 1.5rem;
|
|
@@ -1915,6 +1921,30 @@ table {
|
|
|
1915
1921
|
font-size: var(--sc-text-sm);
|
|
1916
1922
|
}
|
|
1917
1923
|
|
|
1924
|
+
/* What let a person in, when they were deactivated, when a login was let in: beside the name, smaller. */
|
|
1925
|
+
.sc-person-note {
|
|
1926
|
+
font-size: var(--sc-text-xs);
|
|
1927
|
+
}
|
|
1928
|
+
|
|
1929
|
+
/* Those let in and not signed in yet, and those deactivated: sections below everyone in. */
|
|
1930
|
+
.sc-people-section {
|
|
1931
|
+
margin-top: var(--sc-space-6);
|
|
1932
|
+
}
|
|
1933
|
+
|
|
1934
|
+
.sc-person-row-out .sc-person {
|
|
1935
|
+
opacity: 0.7;
|
|
1936
|
+
}
|
|
1937
|
+
|
|
1938
|
+
.sc-listing-form .sc-field-row {
|
|
1939
|
+
align-items: end;
|
|
1940
|
+
}
|
|
1941
|
+
|
|
1942
|
+
.sc-field-hint {
|
|
1943
|
+
margin-top: var(--sc-space-2);
|
|
1944
|
+
color: var(--sc-color-text-muted);
|
|
1945
|
+
font-size: var(--sc-text-sm);
|
|
1946
|
+
}
|
|
1947
|
+
|
|
1918
1948
|
/* Projects: what a person may see, each with what they are in it and what waits in it. */
|
|
1919
1949
|
|
|
1920
1950
|
.sc-projects {
|
|
@@ -2118,6 +2148,21 @@ table {
|
|
|
2118
2148
|
word-break: break-all;
|
|
2119
2149
|
}
|
|
2120
2150
|
|
|
2151
|
+
/* A text to copy as it is, with the way to copy it in its corner. */
|
|
2152
|
+
.sc-copyable {
|
|
2153
|
+
position: relative;
|
|
2154
|
+
}
|
|
2155
|
+
|
|
2156
|
+
.sc-copyable .sc-code {
|
|
2157
|
+
padding-right: 5rem;
|
|
2158
|
+
}
|
|
2159
|
+
|
|
2160
|
+
.sc-copyable .sc-button {
|
|
2161
|
+
position: absolute;
|
|
2162
|
+
top: var(--sc-space-2);
|
|
2163
|
+
right: var(--sc-space-2);
|
|
2164
|
+
}
|
|
2165
|
+
|
|
2121
2166
|
.sc-code-input {
|
|
2122
2167
|
max-width: 12rem;
|
|
2123
2168
|
font-family: var(--sc-font-mono);
|
|
@@ -2606,7 +2651,6 @@ table {
|
|
|
2606
2651
|
font-size: var(--sc-text-xs);
|
|
2607
2652
|
line-height: 1;
|
|
2608
2653
|
text-decoration: none;
|
|
2609
|
-
overflow: hidden;
|
|
2610
2654
|
white-space: nowrap;
|
|
2611
2655
|
}
|
|
2612
2656
|
|
|
@@ -2661,15 +2705,6 @@ table {
|
|
|
2661
2705
|
margin: 0;
|
|
2662
2706
|
}
|
|
2663
2707
|
|
|
2664
|
-
.sc-calendar-task-start {
|
|
2665
|
-
color: var(--sc-color-text-muted);
|
|
2666
|
-
}
|
|
2667
|
-
|
|
2668
|
-
.sc-calendar-task-start::before {
|
|
2669
|
-
content: "\203A";
|
|
2670
|
-
color: var(--sc-color-text-faint);
|
|
2671
|
-
}
|
|
2672
|
-
|
|
2673
2708
|
/* The button under a list shown a page at a time. */
|
|
2674
2709
|
.sc-show-more {
|
|
2675
2710
|
margin-top: var(--sc-space-3);
|
|
@@ -2974,6 +3009,56 @@ table {
|
|
|
2974
3009
|
flex: 1 1 10rem;
|
|
2975
3010
|
}
|
|
2976
3011
|
|
|
3012
|
+
/* A tip of the console's own: what an item says in full, shown the moment the pointer is on it,
|
|
3013
|
+
where its line cut the title short or shows none. The item carries the words in `data-tip`
|
|
3014
|
+
and is marked `data-clipped` when the tip applies. */
|
|
3015
|
+
.sc-tip {
|
|
3016
|
+
position: relative;
|
|
3017
|
+
}
|
|
3018
|
+
|
|
3019
|
+
.sc-tip::after {
|
|
3020
|
+
content: attr(data-tip);
|
|
3021
|
+
position: absolute;
|
|
3022
|
+
bottom: calc(100% + var(--sc-space-1));
|
|
3023
|
+
left: 0;
|
|
3024
|
+
z-index: 20;
|
|
3025
|
+
width: max-content;
|
|
3026
|
+
max-width: 18rem;
|
|
3027
|
+
padding: var(--sc-space-1) var(--sc-space-2);
|
|
3028
|
+
border: var(--sc-border);
|
|
3029
|
+
border-radius: var(--sc-radius-md);
|
|
3030
|
+
background: var(--sc-color-bg-inset);
|
|
3031
|
+
box-shadow: var(--sc-shadow-stage);
|
|
3032
|
+
color: var(--sc-color-text);
|
|
3033
|
+
font-size: var(--sc-text-xs);
|
|
3034
|
+
font-weight: var(--sc-weight-medium);
|
|
3035
|
+
line-height: 1.4;
|
|
3036
|
+
text-decoration: none;
|
|
3037
|
+
white-space: normal;
|
|
3038
|
+
overflow-wrap: anywhere;
|
|
3039
|
+
opacity: 0;
|
|
3040
|
+
visibility: hidden;
|
|
3041
|
+
pointer-events: none;
|
|
3042
|
+
}
|
|
3043
|
+
|
|
3044
|
+
/* The item under the pointer rises above its neighbours, which would otherwise paint over its tip. */
|
|
3045
|
+
.sc-tip[data-clipped]:hover,
|
|
3046
|
+
.sc-tip[data-clipped]:focus-visible {
|
|
3047
|
+
z-index: 20;
|
|
3048
|
+
}
|
|
3049
|
+
|
|
3050
|
+
.sc-tip[data-clipped]:hover::after,
|
|
3051
|
+
.sc-tip[data-clipped]:focus-visible::after {
|
|
3052
|
+
opacity: 1;
|
|
3053
|
+
visibility: visible;
|
|
3054
|
+
}
|
|
3055
|
+
|
|
3056
|
+
/* In the last columns the tip hangs from the item's right edge, so that it stays on the page. */
|
|
3057
|
+
.sc-calendar-cell:nth-last-child(-n + 2) .sc-tip::after {
|
|
3058
|
+
right: 0;
|
|
3059
|
+
left: auto;
|
|
3060
|
+
}
|
|
3061
|
+
|
|
2977
3062
|
/* One week on its own, the only row there is: its days are taller than a month's. */
|
|
2978
3063
|
.sc-week .sc-calendar-cell {
|
|
2979
3064
|
height: 9rem;
|
|
@@ -2990,6 +3075,11 @@ table {
|
|
|
2990
3075
|
margin-right: 0;
|
|
2991
3076
|
}
|
|
2992
3077
|
|
|
3078
|
+
/* Who has a task, before its title on a project's calendar; a bar has no gap of its own. */
|
|
3079
|
+
.sc-calendar-bar .sc-avatar {
|
|
3080
|
+
margin-right: var(--sc-space-1);
|
|
3081
|
+
}
|
|
3082
|
+
|
|
2993
3083
|
/* What is on a person's plate: the week across the page, the lists below it at reading width. */
|
|
2994
3084
|
.sc-work {
|
|
2995
3085
|
display: grid;
|
|
@@ -3077,8 +3167,7 @@ table {
|
|
|
3077
3167
|
padding: 0;
|
|
3078
3168
|
}
|
|
3079
3169
|
|
|
3080
|
-
.sc-calendar-task-title
|
|
3081
|
-
.sc-calendar-task-start {
|
|
3170
|
+
.sc-calendar-task-title {
|
|
3082
3171
|
display: none;
|
|
3083
3172
|
}
|
|
3084
3173
|
|
|
@@ -3094,7 +3183,9 @@ table {
|
|
|
3094
3183
|
}
|
|
3095
3184
|
|
|
3096
3185
|
/* A bar is a line here, too thin for a mark; a task on its day keeps its mark as its dot. */
|
|
3097
|
-
.sc-calendar-bar .sc-mark
|
|
3186
|
+
.sc-calendar-bar .sc-mark,
|
|
3187
|
+
.sc-calendar-bar .sc-avatar,
|
|
3188
|
+
.sc-calendar-task .sc-avatar {
|
|
3098
3189
|
display: none;
|
|
3099
3190
|
}
|
|
3100
3191
|
|
|
@@ -3102,6 +3193,27 @@ table {
|
|
|
3102
3193
|
margin: 0;
|
|
3103
3194
|
}
|
|
3104
3195
|
|
|
3196
|
+
/* No pointer rests on a phone's calendar; the lists below say the titles. */
|
|
3197
|
+
.sc-tip::after {
|
|
3198
|
+
display: none;
|
|
3199
|
+
}
|
|
3200
|
+
|
|
3201
|
+
/* A text to copy keeps the whole width here; the button that copies it sits below it. */
|
|
3202
|
+
.sc-copyable {
|
|
3203
|
+
display: grid;
|
|
3204
|
+
justify-items: end;
|
|
3205
|
+
gap: var(--sc-space-2);
|
|
3206
|
+
}
|
|
3207
|
+
|
|
3208
|
+
.sc-copyable .sc-code {
|
|
3209
|
+
width: 100%;
|
|
3210
|
+
padding-right: var(--sc-space-4);
|
|
3211
|
+
}
|
|
3212
|
+
|
|
3213
|
+
.sc-copyable .sc-button {
|
|
3214
|
+
position: static;
|
|
3215
|
+
}
|
|
3216
|
+
|
|
3105
3217
|
.sc-feed-item {
|
|
3106
3218
|
grid-template-columns: 1fr;
|
|
3107
3219
|
gap: var(--sc-space-1);
|
|
@@ -3122,3 +3234,97 @@ table {
|
|
|
3122
3234
|
border-radius: var(--sc-radius-lg);
|
|
3123
3235
|
}
|
|
3124
3236
|
}
|
|
3237
|
+
|
|
3238
|
+
/* An input with what stands before it: the deployment's origin before a skills address. */
|
|
3239
|
+
.sc-input-group {
|
|
3240
|
+
display: flex;
|
|
3241
|
+
align-items: stretch;
|
|
3242
|
+
}
|
|
3243
|
+
|
|
3244
|
+
.sc-input-prefix {
|
|
3245
|
+
display: inline-flex;
|
|
3246
|
+
align-items: center;
|
|
3247
|
+
padding: 0 var(--sc-space-3);
|
|
3248
|
+
border: 1px solid var(--sc-color-border-strong);
|
|
3249
|
+
border-right: 0;
|
|
3250
|
+
border-radius: var(--sc-radius-md) 0 0 var(--sc-radius-md);
|
|
3251
|
+
background: color-mix(in srgb, var(--sc-color-field) 60%, var(--sc-color-border));
|
|
3252
|
+
color: var(--sc-color-text-muted);
|
|
3253
|
+
font-size: var(--sc-text-sm);
|
|
3254
|
+
white-space: nowrap;
|
|
3255
|
+
}
|
|
3256
|
+
|
|
3257
|
+
.sc-input-group .sc-input-prefix + .sc-input {
|
|
3258
|
+
border-radius: 0 var(--sc-radius-md) var(--sc-radius-md) 0;
|
|
3259
|
+
}
|
|
3260
|
+
|
|
3261
|
+
/* The rules (ADR-0023): the facts of the page they are written on stand above the text. */
|
|
3262
|
+
.sc-rules-facts {
|
|
3263
|
+
display: flex;
|
|
3264
|
+
flex-wrap: wrap;
|
|
3265
|
+
align-items: center;
|
|
3266
|
+
gap: var(--sc-space-2);
|
|
3267
|
+
margin: 0 0 var(--sc-space-3);
|
|
3268
|
+
color: var(--sc-color-text-muted);
|
|
3269
|
+
font-size: var(--sc-text-sm);
|
|
3270
|
+
}
|
|
3271
|
+
|
|
3272
|
+
/* The categories on the settings, as chips, with the way to the page that keeps them. */
|
|
3273
|
+
.sc-category-chips {
|
|
3274
|
+
display: flex;
|
|
3275
|
+
flex-wrap: wrap;
|
|
3276
|
+
gap: var(--sc-space-2);
|
|
3277
|
+
margin: 0 0 var(--sc-space-4);
|
|
3278
|
+
}
|
|
3279
|
+
|
|
3280
|
+
/* The facts of a thing inside a panel: a list in the panel, not a pane of their own. */
|
|
3281
|
+
.sc-facts-plain {
|
|
3282
|
+
padding: 0;
|
|
3283
|
+
border: 0;
|
|
3284
|
+
border-radius: 0;
|
|
3285
|
+
background: none;
|
|
3286
|
+
backdrop-filter: none;
|
|
3287
|
+
box-shadow: none;
|
|
3288
|
+
}
|
|
3289
|
+
|
|
3290
|
+
.sc-facts-plain::before {
|
|
3291
|
+
content: none;
|
|
3292
|
+
}
|
|
3293
|
+
|
|
3294
|
+
/* A fact that needs the whole row: a description. */
|
|
3295
|
+
.sc-facts-wide {
|
|
3296
|
+
grid-column: 1 / -1;
|
|
3297
|
+
}
|
|
3298
|
+
|
|
3299
|
+
/* A section's title with what stands beside it: a way to where the thing is kept. */
|
|
3300
|
+
.sc-section-head {
|
|
3301
|
+
display: flex;
|
|
3302
|
+
flex-wrap: wrap;
|
|
3303
|
+
align-items: baseline;
|
|
3304
|
+
justify-content: space-between;
|
|
3305
|
+
gap: var(--sc-space-2) var(--sc-space-4);
|
|
3306
|
+
margin-bottom: var(--sc-space-3);
|
|
3307
|
+
}
|
|
3308
|
+
|
|
3309
|
+
.sc-section-head .sc-section-title {
|
|
3310
|
+
margin-bottom: 0;
|
|
3311
|
+
}
|
|
3312
|
+
|
|
3313
|
+
/* The ways to change the rules stand off the text, as a form's actions do. */
|
|
3314
|
+
.sc-rules-actions {
|
|
3315
|
+
display: flex;
|
|
3316
|
+
flex-wrap: wrap;
|
|
3317
|
+
gap: var(--sc-space-2);
|
|
3318
|
+
margin-top: var(--sc-space-4);
|
|
3319
|
+
}
|
|
3320
|
+
|
|
3321
|
+
/* The rules folded under where they come from, where the page is about something else. */
|
|
3322
|
+
.sc-rules-fold > summary {
|
|
3323
|
+
cursor: pointer;
|
|
3324
|
+
color: var(--sc-color-text-muted);
|
|
3325
|
+
font-size: var(--sc-text-sm);
|
|
3326
|
+
}
|
|
3327
|
+
|
|
3328
|
+
.sc-rules-fold[open] > summary {
|
|
3329
|
+
margin-bottom: var(--sc-space-3);
|
|
3330
|
+
}
|
package/src/vocabulary.ts
CHANGED
|
@@ -70,6 +70,23 @@ export const PERSON_ROLES = ["admin", "member"] as const;
|
|
|
70
70
|
|
|
71
71
|
export type PersonRole = (typeof PERSON_ROLES)[number];
|
|
72
72
|
|
|
73
|
+
/**
|
|
74
|
+
* Whether a person is in: `active`, or `deactivated`, which is kept rather than deleted so that
|
|
75
|
+
* what they did stays theirs (ADR-0022). A deactivated person is refused on every request.
|
|
76
|
+
*/
|
|
77
|
+
export const PERSON_STATUSES = ["active", "deactivated"] as const;
|
|
78
|
+
|
|
79
|
+
export type PersonStatus = (typeof PERSON_STATUSES)[number];
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* What let a person in (ADR-0022): the organization at the git host the deployment names,
|
|
83
|
+
* whose members come and go with it; the Workspace domain the deployment names; or an
|
|
84
|
+
* administrator, who listed their login on the People page.
|
|
85
|
+
*/
|
|
86
|
+
export const MEMBERSHIP_SOURCES = ["organization", "domain", "listed"] as const;
|
|
87
|
+
|
|
88
|
+
export type MembershipSource = (typeof MEMBERSHIP_SOURCES)[number];
|
|
89
|
+
|
|
73
90
|
/** What a person is within a project: an owner configures it, a member works on it. */
|
|
74
91
|
export const PROJECT_ROLES = ["owner", "member"] as const;
|
|
75
92
|
|
|
@@ -115,6 +132,15 @@ export const SKILLS_STATUSES = [
|
|
|
115
132
|
|
|
116
133
|
export type SkillsStatus = (typeof SKILLS_STATUSES)[number];
|
|
117
134
|
|
|
135
|
+
/**
|
|
136
|
+
* Where the rules that hold on a board come from (ADR-0023): the console's own, since the
|
|
137
|
+
* organization wrote none; a page the organization or the project wrote; or none, for a
|
|
138
|
+
* project that adds nothing to the workspace's.
|
|
139
|
+
*/
|
|
140
|
+
export const RULES_SOURCES = ["reference", "written", "none"] as const;
|
|
141
|
+
|
|
142
|
+
export type RulesSource = (typeof RULES_SOURCES)[number];
|
|
143
|
+
|
|
118
144
|
/**
|
|
119
145
|
* What can happen to the board. Every change of state is one of these, written down once with
|
|
120
146
|
* who did it: the live feed shows them as they happen, and the audit trail keeps them.
|
|
@@ -122,6 +148,10 @@ export type SkillsStatus = (typeof SKILLS_STATUSES)[number];
|
|
|
122
148
|
export const EVENT_KINDS = [
|
|
123
149
|
"person.joined",
|
|
124
150
|
"person.role_changed",
|
|
151
|
+
"person.listed",
|
|
152
|
+
"person.unlisted",
|
|
153
|
+
"person.deactivated",
|
|
154
|
+
"person.reactivated",
|
|
125
155
|
"category.created",
|
|
126
156
|
"category.updated",
|
|
127
157
|
"category.removed",
|