@ever-works/contracts 1.0.0 → 1.0.1

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.
@@ -14,7 +14,8 @@ var USER_SELECTABLE_WORK_KINDS = [
14
14
  "blog",
15
15
  "directory",
16
16
  "awesome-repo",
17
- "repo"
17
+ "repo",
18
+ "app"
18
19
  ];
19
20
  var WORK_KINDS = [...USER_SELECTABLE_WORK_KINDS, "company", "campaign", "default"];
20
21
  var WORK_KIND_SET = new Set(WORK_KINDS);
@@ -39,6 +40,9 @@ function isUserSelectableWorkKind(value) {
39
40
  function isRepositoryWorkKind(value) {
40
41
  return normalizeWorkKind(value) === "repo";
41
42
  }
43
+ function isAppWorkKind(value) {
44
+ return normalizeWorkKind(value) === "app";
45
+ }
42
46
 
43
47
  // src/domain/goal-kind.ts
44
48
  var GOAL_KINDS = ["metric", "delivery"];
@@ -194,6 +198,8 @@ var DIRECTORY_CAPABILITIES = {
194
198
  sourceValidation: true,
195
199
  deploy: true,
196
200
  kb: true,
201
+ builds: false,
202
+ appEnvironment: false,
197
203
  metrics: ["total-items", "categories", "comparisons", "generation-status", "days-active"],
198
204
  repos: { data: true, work: true, website: true }
199
205
  };
@@ -211,6 +217,8 @@ var WORK_KIND_CAPABILITIES = {
211
217
  sourceValidation: true,
212
218
  deploy: true,
213
219
  kb: true,
220
+ builds: false,
221
+ appEnvironment: false,
214
222
  metrics: ["total-items", "categories", "tags", "generation-status", "days-active"],
215
223
  repos: { data: true, work: true, website: true }
216
224
  },
@@ -223,6 +231,8 @@ var WORK_KIND_CAPABILITIES = {
223
231
  sourceValidation: false,
224
232
  deploy: true,
225
233
  kb: true,
234
+ builds: false,
235
+ appEnvironment: false,
226
236
  metrics: ["posts", "page-views", "registered-users", "deploy-status", "days-active"],
227
237
  repos: { data: true, work: true, website: true }
228
238
  },
@@ -235,6 +245,8 @@ var WORK_KIND_CAPABILITIES = {
235
245
  sourceValidation: false,
236
246
  deploy: true,
237
247
  kb: true,
248
+ builds: false,
249
+ appEnvironment: false,
238
250
  metrics: ["page-views", "registered-users", "sessions", "deploy-status", "generation-status"],
239
251
  repos: { data: true, work: true, website: true }
240
252
  },
@@ -247,6 +259,8 @@ var WORK_KIND_CAPABILITIES = {
247
259
  sourceValidation: false,
248
260
  deploy: true,
249
261
  kb: true,
262
+ builds: false,
263
+ appEnvironment: false,
250
264
  metrics: ["page-views", "conversions", "deploy-status", "days-active"],
251
265
  repos: { data: true, work: true, website: true }
252
266
  },
@@ -270,6 +284,8 @@ var WORK_KIND_CAPABILITIES = {
270
284
  sourceValidation: false,
271
285
  deploy: false,
272
286
  kb: true,
287
+ builds: false,
288
+ appEnvironment: false,
273
289
  metrics: ["agents", "open-tasks", "days-active"],
274
290
  repos: { data: true, work: false, website: false }
275
291
  },
@@ -284,6 +300,8 @@ var WORK_KIND_CAPABILITIES = {
284
300
  sourceValidation: false,
285
301
  deploy: false,
286
302
  kb: true,
303
+ builds: false,
304
+ appEnvironment: false,
287
305
  metrics: ["works-owned", "team-members", "agents", "open-tasks", "days-active"],
288
306
  repos: { data: true, work: true, website: false }
289
307
  },
@@ -303,8 +321,40 @@ var WORK_KIND_CAPABILITIES = {
303
321
  sourceValidation: false,
304
322
  deploy: false,
305
323
  kb: true,
324
+ builds: false,
325
+ appEnvironment: false,
306
326
  metrics: ["agents", "open-tasks", "conversions", "days-active"],
307
327
  repos: { data: true, work: true, website: false }
328
+ },
329
+ // An App Work wraps code the platform did not generate (README D1): the
330
+ // repository the member pasted, forked or copied IS its Work Repository,
331
+ // so the persisted `website` role is on and the `data` role — which holds
332
+ // a Work's generated data — is off. Nothing item-shaped applies: no
333
+ // items, taxonomy, comparisons, community-PR intake, import/export or
334
+ // source validation, and no generated site to render.
335
+ //
336
+ // `deploy` is ON where `repo` refuses it, which is the whole point of the
337
+ // kind: the second contract invariant this entry replaces is "a kind
338
+ // deploys only with a repository to deploy" — an App Work deploys the
339
+ // Work Repository without ever having generated one.
340
+ //
341
+ // `builds` and `appEnvironment` (Resolution R-7) are true HERE ONLY — the
342
+ // two flags exist so APW-05's Builds surface and APW-07's App env /
343
+ // dependencies surfaces can hang off the registry instead of off
344
+ // `kind === 'app'` inline tests, exactly as `deploy` does.
345
+ app: {
346
+ items: { enabled: false, labelKey: "items" },
347
+ taxonomy: false,
348
+ comparisons: false,
349
+ communityPr: false,
350
+ itemImportExport: false,
351
+ sourceValidation: false,
352
+ deploy: true,
353
+ kb: true,
354
+ builds: true,
355
+ appEnvironment: true,
356
+ metrics: ["agents", "open-tasks", "deploy-status", "days-active"],
357
+ repos: { data: false, work: false, website: true }
308
358
  }
309
359
  };
310
360
  function getWorkCapabilities(kind) {
@@ -314,4 +364,4 @@ function workKindHasItems(kind) {
314
364
  return getWorkCapabilities(kind).items.enabled;
315
365
  }
316
366
 
317
- export { DEFAULT_GOAL_KIND, DomainType, GOAL_KINDS, USER_SELECTABLE_WORK_KINDS, WORK_KINDS, WORK_KIND_CAPABILITIES, WORK_METRIC_DEFINITIONS, WORK_METRIC_IDS, getWorkCapabilities, getWorkMetricDefinition, isDeliveryGoalKind, isGoalKind, isRepositoryWorkKind, isUserSelectableWorkKind, normalizeGoalKind, normalizeWorkKind, workKindHasItems };
367
+ export { DEFAULT_GOAL_KIND, DomainType, GOAL_KINDS, USER_SELECTABLE_WORK_KINDS, WORK_KINDS, WORK_KIND_CAPABILITIES, WORK_METRIC_DEFINITIONS, WORK_METRIC_IDS, getWorkCapabilities, getWorkMetricDefinition, isAppWorkKind, isDeliveryGoalKind, isGoalKind, isRepositoryWorkKind, isUserSelectableWorkKind, normalizeGoalKind, normalizeWorkKind, workKindHasItems };