@contractspec/example.team-hub 1.44.1 → 1.45.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.
- package/dist/announcement/announcement.operations.js +1 -1
- package/dist/announcement/announcement.operations.js.map +1 -1
- package/dist/events.js +6 -6
- package/dist/events.js.map +1 -1
- package/dist/example.d.ts +3 -36
- package/dist/example.d.ts.map +1 -1
- package/dist/example.js +16 -11
- package/dist/example.js.map +1 -1
- package/dist/presentations.js +6 -6
- package/dist/presentations.js.map +1 -1
- package/dist/ritual/ritual.operations.js +2 -2
- package/dist/ritual/ritual.operations.js.map +1 -1
- package/dist/space/space.operations.js +1 -1
- package/dist/space/space.operations.js.map +1 -1
- package/dist/task/task.operations.js +3 -3
- package/dist/task/task.operations.js.map +1 -1
- package/dist/team-hub.feature.js +31 -31
- package/dist/team-hub.feature.js.map +1 -1
- package/package.json +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"announcement.operations.js","names":[],"sources":["../../src/announcement/announcement.operations.ts"],"sourcesContent":["import { defineCommand } from '@contractspec/lib.contracts';\nimport {\n AnnouncementModel,\n PostAnnouncementInputModel,\n} from './announcement.schema';\n\nconst OWNERS = ['@examples.team-hub'] as const;\n\n/**\n * Post an announcement.\n */\nexport const PostAnnouncementContract = defineCommand({\n meta: {\n key: 'team.announcement.post',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['team-hub', 'announcement', 'post'],\n description: 'Post an announcement.',\n goal: 'Communicate with team.',\n context: 'Communication.',\n },\n io: {\n input: PostAnnouncementInputModel,\n output: AnnouncementModel,\n },\n policy: { auth: 'user' },\n acceptance: {\n scenarios: [\n {\n key: 'post-announcement-happy-path',\n given: ['User is authenticated'],\n when: ['User posts an announcement'],\n then: ['Announcement is posted and distributed'],\n },\n ],\n examples: [\n {\n key: 'post-general',\n input: {\n spaceId: 'space-123',\n title: 'New Policy',\n content: 'Please read...',\n },\n output: { id: 'ann-456', status: 'posted' },\n },\n ],\n },\n});\n"],"mappings":";;;;AAMA,MAAM,SAAS,CAAC,qBAAqB;;;;AAKrC,MAAa,2BAA2B,cAAc;CACpD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAgB;GAAO;EAC1C,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,YAAY;EACV,WAAW,CACT;GACE,KAAK;GACL,OAAO,CAAC,wBAAwB;GAChC,MAAM,CAAC,6BAA6B;GACpC,MAAM,CAAC,yCAAyC;GACjD,CACF;EACD,UAAU,CACR;GACE,KAAK;GACL,OAAO;IACL,SAAS;IACT,OAAO;IACP,SAAS;IACV;GACD,QAAQ;IAAE,IAAI;IAAW,QAAQ;IAAU;GAC5C,CACF;EACF;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"announcement.operations.js","names":[],"sources":["../../src/announcement/announcement.operations.ts"],"sourcesContent":["import { defineCommand } from '@contractspec/lib.contracts';\nimport {\n AnnouncementModel,\n PostAnnouncementInputModel,\n} from './announcement.schema';\n\nconst OWNERS = ['@examples.team-hub'] as const;\n\n/**\n * Post an announcement.\n */\nexport const PostAnnouncementContract = defineCommand({\n meta: {\n key: 'team.announcement.post',\n version: '1.0.0',\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['team-hub', 'announcement', 'post'],\n description: 'Post an announcement.',\n goal: 'Communicate with team.',\n context: 'Communication.',\n },\n io: {\n input: PostAnnouncementInputModel,\n output: AnnouncementModel,\n },\n policy: { auth: 'user' },\n acceptance: {\n scenarios: [\n {\n key: 'post-announcement-happy-path',\n given: ['User is authenticated'],\n when: ['User posts an announcement'],\n then: ['Announcement is posted and distributed'],\n },\n ],\n examples: [\n {\n key: 'post-general',\n input: {\n spaceId: 'space-123',\n title: 'New Policy',\n content: 'Please read...',\n },\n output: { id: 'ann-456', status: 'posted' },\n },\n ],\n },\n});\n"],"mappings":";;;;AAMA,MAAM,SAAS,CAAC,qBAAqB;;;;AAKrC,MAAa,2BAA2B,cAAc;CACpD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAgB;GAAO;EAC1C,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,YAAY;EACV,WAAW,CACT;GACE,KAAK;GACL,OAAO,CAAC,wBAAwB;GAChC,MAAM,CAAC,6BAA6B;GACpC,MAAM,CAAC,yCAAyC;GACjD,CACF;EACD,UAAU,CACR;GACE,KAAK;GACL,OAAO;IACL,SAAS;IACT,OAAO;IACP,SAAS;IACV;GACD,QAAQ;IAAE,IAAI;IAAW,QAAQ;IAAU;GAC5C,CACF;EACF;CACF,CAAC"}
|
package/dist/events.js
CHANGED
|
@@ -113,7 +113,7 @@ const AnnouncementPayload = defineSchemaModel({
|
|
|
113
113
|
const SpaceCreatedEvent = defineEvent({
|
|
114
114
|
meta: {
|
|
115
115
|
key: "team.space.created",
|
|
116
|
-
version: 1,
|
|
116
|
+
version: "1.0.0",
|
|
117
117
|
description: "A space was created.",
|
|
118
118
|
stability: "stable",
|
|
119
119
|
owners: ["@team-hub"],
|
|
@@ -128,7 +128,7 @@ const SpaceCreatedEvent = defineEvent({
|
|
|
128
128
|
const TaskCreatedEvent = defineEvent({
|
|
129
129
|
meta: {
|
|
130
130
|
key: "team.task.created",
|
|
131
|
-
version: 1,
|
|
131
|
+
version: "1.0.0",
|
|
132
132
|
description: "A task was created.",
|
|
133
133
|
stability: "stable",
|
|
134
134
|
owners: ["@team-hub"],
|
|
@@ -143,7 +143,7 @@ const TaskCreatedEvent = defineEvent({
|
|
|
143
143
|
const TaskStatusChangedEvent = defineEvent({
|
|
144
144
|
meta: {
|
|
145
145
|
key: "team.task.status_changed",
|
|
146
|
-
version: 1,
|
|
146
|
+
version: "1.0.0",
|
|
147
147
|
description: "A task status changed.",
|
|
148
148
|
stability: "stable",
|
|
149
149
|
owners: ["@team-hub"],
|
|
@@ -158,7 +158,7 @@ const TaskStatusChangedEvent = defineEvent({
|
|
|
158
158
|
const RitualScheduledEvent = defineEvent({
|
|
159
159
|
meta: {
|
|
160
160
|
key: "team.ritual.scheduled",
|
|
161
|
-
version: 1,
|
|
161
|
+
version: "1.0.0",
|
|
162
162
|
description: "A ritual was scheduled.",
|
|
163
163
|
stability: "stable",
|
|
164
164
|
owners: ["@team-hub"],
|
|
@@ -173,7 +173,7 @@ const RitualScheduledEvent = defineEvent({
|
|
|
173
173
|
const RitualOccurredEvent = defineEvent({
|
|
174
174
|
meta: {
|
|
175
175
|
key: "team.ritual.occurred",
|
|
176
|
-
version: 1,
|
|
176
|
+
version: "1.0.0",
|
|
177
177
|
description: "A ritual occurrence was logged.",
|
|
178
178
|
stability: "stable",
|
|
179
179
|
owners: ["@team-hub"],
|
|
@@ -188,7 +188,7 @@ const RitualOccurredEvent = defineEvent({
|
|
|
188
188
|
const AnnouncementPostedEvent = defineEvent({
|
|
189
189
|
meta: {
|
|
190
190
|
key: "team.announcement.posted",
|
|
191
|
-
version: 1,
|
|
191
|
+
version: "1.0.0",
|
|
192
192
|
description: "An announcement was posted.",
|
|
193
193
|
stability: "stable",
|
|
194
194
|
owners: ["@team-hub"],
|
package/dist/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","names":[],"sources":["../src/events.ts"],"sourcesContent":["import { ScalarTypeEnum, defineSchemaModel } from '@contractspec/lib.schema';\nimport { defineEvent } from '@contractspec/lib.contracts';\n\nconst SpaceEventPayload = defineSchemaModel({\n name: 'SpaceEventPayload',\n description: 'Payload for space events',\n fields: {\n spaceId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n orgId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n ownerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n timestamp: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nconst TaskEventPayload = defineSchemaModel({\n name: 'TaskEventPayload',\n description: 'Payload for task events',\n fields: {\n taskId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n spaceId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n status: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n assigneeId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n orgId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n timestamp: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nconst RitualEventPayload = defineSchemaModel({\n name: 'RitualEventPayload',\n description: 'Payload for ritual events',\n fields: {\n ritualId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n spaceId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n scheduledFor: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n status: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n orgId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n },\n});\n\nconst AnnouncementPayload = defineSchemaModel({\n name: 'AnnouncementPayload',\n description: 'Payload for announcements',\n fields: {\n announcementId: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n spaceId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n audience: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n orgId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n createdBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nexport const SpaceCreatedEvent = defineEvent({\n meta: {\n key: 'team.space.created',\n version: 1,\n description: 'A space was created.',\n stability: 'stable',\n owners: ['@team-hub'],\n tags: ['team', 'space', 'created'],\n },\n payload: SpaceEventPayload,\n});\n\nexport const TaskCreatedEvent = defineEvent({\n meta: {\n key: 'team.task.created',\n version: 1,\n description: 'A task was created.',\n stability: 'stable',\n owners: ['@team-hub'],\n tags: ['team', 'task', 'created'],\n },\n payload: TaskEventPayload,\n});\n\nexport const TaskStatusChangedEvent = defineEvent({\n meta: {\n key: 'team.task.status_changed',\n version: 1,\n description: 'A task status changed.',\n stability: 'stable',\n owners: ['@team-hub'],\n tags: ['team', 'task', 'status_changed'],\n },\n payload: TaskEventPayload,\n});\n\nexport const RitualScheduledEvent = defineEvent({\n meta: {\n key: 'team.ritual.scheduled',\n version: 1,\n description: 'A ritual was scheduled.',\n stability: 'stable',\n owners: ['@team-hub'],\n tags: ['team', 'ritual', 'scheduled'],\n },\n payload: RitualEventPayload,\n});\n\nexport const RitualOccurredEvent = defineEvent({\n meta: {\n key: 'team.ritual.occurred',\n version: 1,\n description: 'A ritual occurrence was logged.',\n stability: 'stable',\n owners: ['@team-hub'],\n tags: ['team', 'ritual', 'occurred'],\n },\n payload: RitualEventPayload,\n});\n\nexport const AnnouncementPostedEvent = defineEvent({\n meta: {\n key: 'team.announcement.posted',\n version: 1,\n description: 'An announcement was posted.',\n stability: 'stable',\n owners: ['@team-hub'],\n tags: ['team', 'announcement', 'posted'],\n },\n payload: AnnouncementPayload,\n});\n\nexport const TeamHubEvents = {\n SpaceCreatedEvent,\n TaskCreatedEvent,\n TaskStatusChangedEvent,\n RitualScheduledEvent,\n RitualOccurredEvent,\n AnnouncementPostedEvent,\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"events.js","names":[],"sources":["../src/events.ts"],"sourcesContent":["import { ScalarTypeEnum, defineSchemaModel } from '@contractspec/lib.schema';\nimport { defineEvent } from '@contractspec/lib.contracts';\n\nconst SpaceEventPayload = defineSchemaModel({\n name: 'SpaceEventPayload',\n description: 'Payload for space events',\n fields: {\n spaceId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n orgId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n ownerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n timestamp: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nconst TaskEventPayload = defineSchemaModel({\n name: 'TaskEventPayload',\n description: 'Payload for task events',\n fields: {\n taskId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n spaceId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n status: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n assigneeId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n orgId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n timestamp: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nconst RitualEventPayload = defineSchemaModel({\n name: 'RitualEventPayload',\n description: 'Payload for ritual events',\n fields: {\n ritualId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n spaceId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n scheduledFor: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n status: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n orgId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n },\n});\n\nconst AnnouncementPayload = defineSchemaModel({\n name: 'AnnouncementPayload',\n description: 'Payload for announcements',\n fields: {\n announcementId: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n spaceId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n audience: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n orgId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n createdBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nexport const SpaceCreatedEvent = defineEvent({\n meta: {\n key: 'team.space.created',\n version: '1.0.0',\n description: 'A space was created.',\n stability: 'stable',\n owners: ['@team-hub'],\n tags: ['team', 'space', 'created'],\n },\n payload: SpaceEventPayload,\n});\n\nexport const TaskCreatedEvent = defineEvent({\n meta: {\n key: 'team.task.created',\n version: '1.0.0',\n description: 'A task was created.',\n stability: 'stable',\n owners: ['@team-hub'],\n tags: ['team', 'task', 'created'],\n },\n payload: TaskEventPayload,\n});\n\nexport const TaskStatusChangedEvent = defineEvent({\n meta: {\n key: 'team.task.status_changed',\n version: '1.0.0',\n description: 'A task status changed.',\n stability: 'stable',\n owners: ['@team-hub'],\n tags: ['team', 'task', 'status_changed'],\n },\n payload: TaskEventPayload,\n});\n\nexport const RitualScheduledEvent = defineEvent({\n meta: {\n key: 'team.ritual.scheduled',\n version: '1.0.0',\n description: 'A ritual was scheduled.',\n stability: 'stable',\n owners: ['@team-hub'],\n tags: ['team', 'ritual', 'scheduled'],\n },\n payload: RitualEventPayload,\n});\n\nexport const RitualOccurredEvent = defineEvent({\n meta: {\n key: 'team.ritual.occurred',\n version: '1.0.0',\n description: 'A ritual occurrence was logged.',\n stability: 'stable',\n owners: ['@team-hub'],\n tags: ['team', 'ritual', 'occurred'],\n },\n payload: RitualEventPayload,\n});\n\nexport const AnnouncementPostedEvent = defineEvent({\n meta: {\n key: 'team.announcement.posted',\n version: '1.0.0',\n description: 'An announcement was posted.',\n stability: 'stable',\n owners: ['@team-hub'],\n tags: ['team', 'announcement', 'posted'],\n },\n payload: AnnouncementPayload,\n});\n\nexport const TeamHubEvents = {\n SpaceCreatedEvent,\n TaskCreatedEvent,\n TaskStatusChangedEvent,\n RitualScheduledEvent,\n RitualOccurredEvent,\n AnnouncementPostedEvent,\n};\n"],"mappings":"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"}
|
package/dist/example.d.ts
CHANGED
|
@@ -1,40 +1,7 @@
|
|
|
1
|
+
import { ExampleSpec } from "@contractspec/lib.contracts";
|
|
2
|
+
|
|
1
3
|
//#region src/example.d.ts
|
|
2
|
-
declare const example:
|
|
3
|
-
readonly id: "team-hub";
|
|
4
|
-
readonly title: "Team Hub";
|
|
5
|
-
readonly summary: "Internal collaboration hub with spaces, tasks, rituals, and announcements.";
|
|
6
|
-
readonly tags: readonly ["tasks", "rituals", "announcements", "collaboration"];
|
|
7
|
-
readonly kind: "template";
|
|
8
|
-
readonly visibility: "public";
|
|
9
|
-
readonly docs: {
|
|
10
|
-
readonly rootDocId: "docs.examples.team-hub";
|
|
11
|
-
readonly goalDocId: "docs.examples.team-hub.goal";
|
|
12
|
-
readonly usageDocId: "docs.examples.team-hub.usage";
|
|
13
|
-
readonly constraintsDocId: "docs.examples.team-hub.constraints";
|
|
14
|
-
};
|
|
15
|
-
readonly entrypoints: {
|
|
16
|
-
readonly packageName: "@contractspec/example.team-hub";
|
|
17
|
-
readonly feature: "./feature";
|
|
18
|
-
readonly contracts: "./contracts";
|
|
19
|
-
readonly presentations: "./presentations";
|
|
20
|
-
readonly handlers: "./handlers";
|
|
21
|
-
readonly docs: "./docs";
|
|
22
|
-
};
|
|
23
|
-
readonly surfaces: {
|
|
24
|
-
readonly templates: true;
|
|
25
|
-
readonly sandbox: {
|
|
26
|
-
readonly enabled: true;
|
|
27
|
-
readonly modes: readonly ["playground", "specs", "builder", "markdown", "evolution"];
|
|
28
|
-
};
|
|
29
|
-
readonly studio: {
|
|
30
|
-
readonly enabled: true;
|
|
31
|
-
readonly installable: true;
|
|
32
|
-
};
|
|
33
|
-
readonly mcp: {
|
|
34
|
-
readonly enabled: true;
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
};
|
|
4
|
+
declare const example: ExampleSpec;
|
|
38
5
|
//#endregion
|
|
39
6
|
export { example as default };
|
|
40
7
|
//# sourceMappingURL=example.d.ts.map
|
package/dist/example.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example.d.ts","names":[],"sources":["../src/example.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"example.d.ts","names":[],"sources":["../src/example.ts"],"sourcesContent":[],"mappings":";;;cAEM,SAAS"}
|
package/dist/example.js
CHANGED
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
//#region src/example.ts
|
|
2
2
|
const example = {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
"tasks",
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
3
|
+
meta: {
|
|
4
|
+
key: "team-hub",
|
|
5
|
+
version: "1.0.0",
|
|
6
|
+
title: "Team Hub",
|
|
7
|
+
description: "Internal collaboration hub with spaces, tasks, rituals, and announcements.",
|
|
8
|
+
kind: "template",
|
|
9
|
+
visibility: "public",
|
|
10
|
+
stability: "experimental",
|
|
11
|
+
owners: ["@platform.core"],
|
|
12
|
+
tags: [
|
|
13
|
+
"tasks",
|
|
14
|
+
"rituals",
|
|
15
|
+
"announcements",
|
|
16
|
+
"collaboration"
|
|
17
|
+
]
|
|
18
|
+
},
|
|
14
19
|
docs: {
|
|
15
20
|
rootDocId: "docs.examples.team-hub",
|
|
16
21
|
goalDocId: "docs.examples.team-hub.goal",
|
package/dist/example.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example.js","names":[],"sources":["../src/example.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"example.js","names":["example: ExampleSpec"],"sources":["../src/example.ts"],"sourcesContent":["import type { ExampleSpec } from '@contractspec/lib.contracts';\n\nconst example: ExampleSpec = {\n meta: {\n key: 'team-hub',\n version: '1.0.0',\n title: 'Team Hub',\n description:\n 'Internal collaboration hub with spaces, tasks, rituals, and announcements.',\n kind: 'template',\n visibility: 'public',\n stability: 'experimental',\n owners: ['@platform.core'],\n tags: ['tasks', 'rituals', 'announcements', 'collaboration'],\n },\n docs: {\n rootDocId: 'docs.examples.team-hub',\n goalDocId: 'docs.examples.team-hub.goal',\n usageDocId: 'docs.examples.team-hub.usage',\n constraintsDocId: 'docs.examples.team-hub.constraints',\n },\n entrypoints: {\n packageName: '@contractspec/example.team-hub',\n feature: './feature',\n contracts: './contracts',\n presentations: './presentations',\n handlers: './handlers',\n docs: './docs',\n },\n surfaces: {\n templates: true,\n sandbox: {\n enabled: true,\n modes: ['playground', 'specs', 'builder', 'markdown', 'evolution'],\n },\n studio: { enabled: true, installable: true },\n mcp: { enabled: true },\n },\n};\n\nexport default example;\n"],"mappings":";AAEA,MAAMA,UAAuB;CAC3B,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aACE;EACF,MAAM;EACN,YAAY;EACZ,WAAW;EACX,QAAQ,CAAC,iBAAiB;EAC1B,MAAM;GAAC;GAAS;GAAW;GAAiB;GAAgB;EAC7D;CACD,MAAM;EACJ,WAAW;EACX,WAAW;EACX,YAAY;EACZ,kBAAkB;EACnB;CACD,aAAa;EACX,aAAa;EACb,SAAS;EACT,WAAW;EACX,eAAe;EACf,UAAU;EACV,MAAM;EACP;CACD,UAAU;EACR,WAAW;EACX,SAAS;GACP,SAAS;GACT,OAAO;IAAC;IAAc;IAAS;IAAW;IAAY;IAAY;GACnE;EACD,QAAQ;GAAE,SAAS;GAAM,aAAa;GAAM;EAC5C,KAAK,EAAE,SAAS,MAAM;EACvB;CACF;AAED,sBAAe"}
|
package/dist/presentations.js
CHANGED
|
@@ -4,7 +4,7 @@ import { StabilityEnum } from "@contractspec/lib.contracts";
|
|
|
4
4
|
const TeamDashboardPresentation = {
|
|
5
5
|
meta: {
|
|
6
6
|
key: "team-hub.dashboard",
|
|
7
|
-
version: 1,
|
|
7
|
+
version: "1.0.0",
|
|
8
8
|
title: "Team Dashboard",
|
|
9
9
|
description: "Team hub dashboard with activity overview",
|
|
10
10
|
domain: "collaboration",
|
|
@@ -25,7 +25,7 @@ const TeamDashboardPresentation = {
|
|
|
25
25
|
const SpaceListPresentation = {
|
|
26
26
|
meta: {
|
|
27
27
|
key: "team-hub.space.list",
|
|
28
|
-
version: 1,
|
|
28
|
+
version: "1.0.0",
|
|
29
29
|
title: "Space List",
|
|
30
30
|
description: "List of team spaces",
|
|
31
31
|
domain: "collaboration",
|
|
@@ -50,7 +50,7 @@ const SpaceListPresentation = {
|
|
|
50
50
|
const TaskBoardPresentation = {
|
|
51
51
|
meta: {
|
|
52
52
|
key: "team-hub.task.board",
|
|
53
|
-
version: 1,
|
|
53
|
+
version: "1.0.0",
|
|
54
54
|
title: "Task Board",
|
|
55
55
|
description: "Task board with kanban view",
|
|
56
56
|
domain: "collaboration",
|
|
@@ -76,7 +76,7 @@ const TaskBoardPresentation = {
|
|
|
76
76
|
const TaskDetailPresentation = {
|
|
77
77
|
meta: {
|
|
78
78
|
key: "team-hub.task.detail",
|
|
79
|
-
version: 1,
|
|
79
|
+
version: "1.0.0",
|
|
80
80
|
title: "Task Details",
|
|
81
81
|
description: "Task detail with comments and history",
|
|
82
82
|
domain: "collaboration",
|
|
@@ -101,7 +101,7 @@ const TaskDetailPresentation = {
|
|
|
101
101
|
const RitualCalendarPresentation = {
|
|
102
102
|
meta: {
|
|
103
103
|
key: "team-hub.ritual.calendar",
|
|
104
|
-
version: 1,
|
|
104
|
+
version: "1.0.0",
|
|
105
105
|
title: "Ritual Calendar",
|
|
106
106
|
description: "Calendar view of team rituals",
|
|
107
107
|
domain: "collaboration",
|
|
@@ -126,7 +126,7 @@ const RitualCalendarPresentation = {
|
|
|
126
126
|
const AnnouncementFeedPresentation = {
|
|
127
127
|
meta: {
|
|
128
128
|
key: "team-hub.announcement.feed",
|
|
129
|
-
version: 1,
|
|
129
|
+
version: "1.0.0",
|
|
130
130
|
title: "Announcement Feed",
|
|
131
131
|
description: "Feed of team announcements",
|
|
132
132
|
domain: "collaboration",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentations.js","names":["TeamDashboardPresentation: PresentationSpec","SpaceListPresentation: PresentationSpec","TaskBoardPresentation: PresentationSpec","TaskDetailPresentation: PresentationSpec","RitualCalendarPresentation: PresentationSpec","AnnouncementFeedPresentation: PresentationSpec"],"sources":["../src/presentations.ts"],"sourcesContent":["import type { PresentationSpec } from '@contractspec/lib.contracts';\nimport { StabilityEnum } from '@contractspec/lib.contracts';\n\nexport const TeamDashboardPresentation: PresentationSpec = {\n meta: {\n key: 'team-hub.dashboard',\n version: 1,\n title: 'Team Dashboard',\n description: 'Team hub dashboard with activity overview',\n domain: 'collaboration',\n owners: ['@team-hub'],\n tags: ['team', 'dashboard'],\n stability: StabilityEnum.Experimental,\n goal: 'High-level overview of team activity',\n context: 'Team home page',\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'TeamDashboard',\n },\n targets: ['react', 'markdown'],\n policy: {\n flags: ['team.dashboard.enabled'],\n },\n};\n\nexport const SpaceListPresentation: PresentationSpec = {\n meta: {\n key: 'team-hub.space.list',\n version: 1,\n title: 'Space List',\n description: 'List of team spaces',\n domain: 'collaboration',\n owners: ['@team-hub'],\n tags: ['team', 'spaces', 'list'],\n stability: StabilityEnum.Experimental,\n goal: 'Browse and manage team spaces',\n context: 'Team navigation',\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'SpaceList',\n },\n targets: ['react', 'markdown'],\n policy: {\n flags: ['team.spaces.enabled'],\n },\n};\n\nexport const TaskBoardPresentation: PresentationSpec = {\n meta: {\n key: 'team-hub.task.board',\n version: 1,\n title: 'Task Board',\n description: 'Task board with kanban view',\n domain: 'collaboration',\n owners: ['@team-hub'],\n tags: ['team', 'tasks', 'board', 'kanban'],\n stability: StabilityEnum.Experimental,\n goal: 'Visual task management',\n context: 'Team task workflows',\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'TaskBoard',\n },\n targets: ['react'],\n policy: {\n flags: ['team.tasks.enabled'],\n },\n};\n\nexport const TaskDetailPresentation: PresentationSpec = {\n meta: {\n key: 'team-hub.task.detail',\n version: 1,\n title: 'Task Details',\n description: 'Task detail with comments and history',\n domain: 'collaboration',\n owners: ['@team-hub'],\n tags: ['team', 'task', 'detail'],\n stability: StabilityEnum.Experimental,\n goal: 'Detailed task view with collaboration',\n context: 'Task inspection and updates',\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'TaskDetail',\n },\n targets: ['react', 'markdown'],\n policy: {\n flags: ['team.tasks.enabled'],\n },\n};\n\nexport const RitualCalendarPresentation: PresentationSpec = {\n meta: {\n key: 'team-hub.ritual.calendar',\n version: 1,\n title: 'Ritual Calendar',\n description: 'Calendar view of team rituals',\n domain: 'collaboration',\n owners: ['@team-hub'],\n tags: ['team', 'rituals', 'calendar'],\n stability: StabilityEnum.Experimental,\n goal: 'Plan and view recurring team rituals',\n context: 'Team scheduling',\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'RitualCalendar',\n },\n targets: ['react'],\n policy: {\n flags: ['team.rituals.enabled'],\n },\n};\n\nexport const AnnouncementFeedPresentation: PresentationSpec = {\n meta: {\n key: 'team-hub.announcement.feed',\n version: 1,\n title: 'Announcement Feed',\n description: 'Feed of team announcements',\n domain: 'collaboration',\n owners: ['@team-hub'],\n tags: ['team', 'announcements', 'feed'],\n stability: StabilityEnum.Experimental,\n goal: 'Communicate updates to the team',\n context: 'Team communication',\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'AnnouncementFeed',\n },\n targets: ['react', 'markdown'],\n policy: {\n flags: ['team.announcements.enabled'],\n },\n};\n"],"mappings":";;;AAGA,MAAaA,4BAA8C;CACzD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,YAAY;EACrB,MAAM,CAAC,QAAQ,YAAY;EAC3B,WAAW,cAAc;EACzB,MAAM;EACN,SAAS;EACV;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACf;CACD,SAAS,CAAC,SAAS,WAAW;CAC9B,QAAQ,EACN,OAAO,CAAC,yBAAyB,EAClC;CACF;AAED,MAAaC,wBAA0C;CACrD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,YAAY;EACrB,MAAM;GAAC;GAAQ;GAAU;GAAO;EAChC,WAAW,cAAc;EACzB,MAAM;EACN,SAAS;EACV;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACf;CACD,SAAS,CAAC,SAAS,WAAW;CAC9B,QAAQ,EACN,OAAO,CAAC,sBAAsB,EAC/B;CACF;AAED,MAAaC,wBAA0C;CACrD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,YAAY;EACrB,MAAM;GAAC;GAAQ;GAAS;GAAS;GAAS;EAC1C,WAAW,cAAc;EACzB,MAAM;EACN,SAAS;EACV;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACf;CACD,SAAS,CAAC,QAAQ;CAClB,QAAQ,EACN,OAAO,CAAC,qBAAqB,EAC9B;CACF;AAED,MAAaC,yBAA2C;CACtD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,YAAY;EACrB,MAAM;GAAC;GAAQ;GAAQ;GAAS;EAChC,WAAW,cAAc;EACzB,MAAM;EACN,SAAS;EACV;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACf;CACD,SAAS,CAAC,SAAS,WAAW;CAC9B,QAAQ,EACN,OAAO,CAAC,qBAAqB,EAC9B;CACF;AAED,MAAaC,6BAA+C;CAC1D,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,YAAY;EACrB,MAAM;GAAC;GAAQ;GAAW;GAAW;EACrC,WAAW,cAAc;EACzB,MAAM;EACN,SAAS;EACV;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACf;CACD,SAAS,CAAC,QAAQ;CAClB,QAAQ,EACN,OAAO,CAAC,uBAAuB,EAChC;CACF;AAED,MAAaC,+BAAiD;CAC5D,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,YAAY;EACrB,MAAM;GAAC;GAAQ;GAAiB;GAAO;EACvC,WAAW,cAAc;EACzB,MAAM;EACN,SAAS;EACV;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACf;CACD,SAAS,CAAC,SAAS,WAAW;CAC9B,QAAQ,EACN,OAAO,CAAC,6BAA6B,EACtC;CACF"}
|
|
1
|
+
{"version":3,"file":"presentations.js","names":["TeamDashboardPresentation: PresentationSpec","SpaceListPresentation: PresentationSpec","TaskBoardPresentation: PresentationSpec","TaskDetailPresentation: PresentationSpec","RitualCalendarPresentation: PresentationSpec","AnnouncementFeedPresentation: PresentationSpec"],"sources":["../src/presentations.ts"],"sourcesContent":["import type { PresentationSpec } from '@contractspec/lib.contracts';\nimport { StabilityEnum } from '@contractspec/lib.contracts';\n\nexport const TeamDashboardPresentation: PresentationSpec = {\n meta: {\n key: 'team-hub.dashboard',\n version: '1.0.0',\n title: 'Team Dashboard',\n description: 'Team hub dashboard with activity overview',\n domain: 'collaboration',\n owners: ['@team-hub'],\n tags: ['team', 'dashboard'],\n stability: StabilityEnum.Experimental,\n goal: 'High-level overview of team activity',\n context: 'Team home page',\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'TeamDashboard',\n },\n targets: ['react', 'markdown'],\n policy: {\n flags: ['team.dashboard.enabled'],\n },\n};\n\nexport const SpaceListPresentation: PresentationSpec = {\n meta: {\n key: 'team-hub.space.list',\n version: '1.0.0',\n title: 'Space List',\n description: 'List of team spaces',\n domain: 'collaboration',\n owners: ['@team-hub'],\n tags: ['team', 'spaces', 'list'],\n stability: StabilityEnum.Experimental,\n goal: 'Browse and manage team spaces',\n context: 'Team navigation',\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'SpaceList',\n },\n targets: ['react', 'markdown'],\n policy: {\n flags: ['team.spaces.enabled'],\n },\n};\n\nexport const TaskBoardPresentation: PresentationSpec = {\n meta: {\n key: 'team-hub.task.board',\n version: '1.0.0',\n title: 'Task Board',\n description: 'Task board with kanban view',\n domain: 'collaboration',\n owners: ['@team-hub'],\n tags: ['team', 'tasks', 'board', 'kanban'],\n stability: StabilityEnum.Experimental,\n goal: 'Visual task management',\n context: 'Team task workflows',\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'TaskBoard',\n },\n targets: ['react'],\n policy: {\n flags: ['team.tasks.enabled'],\n },\n};\n\nexport const TaskDetailPresentation: PresentationSpec = {\n meta: {\n key: 'team-hub.task.detail',\n version: '1.0.0',\n title: 'Task Details',\n description: 'Task detail with comments and history',\n domain: 'collaboration',\n owners: ['@team-hub'],\n tags: ['team', 'task', 'detail'],\n stability: StabilityEnum.Experimental,\n goal: 'Detailed task view with collaboration',\n context: 'Task inspection and updates',\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'TaskDetail',\n },\n targets: ['react', 'markdown'],\n policy: {\n flags: ['team.tasks.enabled'],\n },\n};\n\nexport const RitualCalendarPresentation: PresentationSpec = {\n meta: {\n key: 'team-hub.ritual.calendar',\n version: '1.0.0',\n title: 'Ritual Calendar',\n description: 'Calendar view of team rituals',\n domain: 'collaboration',\n owners: ['@team-hub'],\n tags: ['team', 'rituals', 'calendar'],\n stability: StabilityEnum.Experimental,\n goal: 'Plan and view recurring team rituals',\n context: 'Team scheduling',\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'RitualCalendar',\n },\n targets: ['react'],\n policy: {\n flags: ['team.rituals.enabled'],\n },\n};\n\nexport const AnnouncementFeedPresentation: PresentationSpec = {\n meta: {\n key: 'team-hub.announcement.feed',\n version: '1.0.0',\n title: 'Announcement Feed',\n description: 'Feed of team announcements',\n domain: 'collaboration',\n owners: ['@team-hub'],\n tags: ['team', 'announcements', 'feed'],\n stability: StabilityEnum.Experimental,\n goal: 'Communicate updates to the team',\n context: 'Team communication',\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'AnnouncementFeed',\n },\n targets: ['react', 'markdown'],\n policy: {\n flags: ['team.announcements.enabled'],\n },\n};\n"],"mappings":";;;AAGA,MAAaA,4BAA8C;CACzD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,YAAY;EACrB,MAAM,CAAC,QAAQ,YAAY;EAC3B,WAAW,cAAc;EACzB,MAAM;EACN,SAAS;EACV;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACf;CACD,SAAS,CAAC,SAAS,WAAW;CAC9B,QAAQ,EACN,OAAO,CAAC,yBAAyB,EAClC;CACF;AAED,MAAaC,wBAA0C;CACrD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,YAAY;EACrB,MAAM;GAAC;GAAQ;GAAU;GAAO;EAChC,WAAW,cAAc;EACzB,MAAM;EACN,SAAS;EACV;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACf;CACD,SAAS,CAAC,SAAS,WAAW;CAC9B,QAAQ,EACN,OAAO,CAAC,sBAAsB,EAC/B;CACF;AAED,MAAaC,wBAA0C;CACrD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,YAAY;EACrB,MAAM;GAAC;GAAQ;GAAS;GAAS;GAAS;EAC1C,WAAW,cAAc;EACzB,MAAM;EACN,SAAS;EACV;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACf;CACD,SAAS,CAAC,QAAQ;CAClB,QAAQ,EACN,OAAO,CAAC,qBAAqB,EAC9B;CACF;AAED,MAAaC,yBAA2C;CACtD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,YAAY;EACrB,MAAM;GAAC;GAAQ;GAAQ;GAAS;EAChC,WAAW,cAAc;EACzB,MAAM;EACN,SAAS;EACV;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACf;CACD,SAAS,CAAC,SAAS,WAAW;CAC9B,QAAQ,EACN,OAAO,CAAC,qBAAqB,EAC9B;CACF;AAED,MAAaC,6BAA+C;CAC1D,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,YAAY;EACrB,MAAM;GAAC;GAAQ;GAAW;GAAW;EACrC,WAAW,cAAc;EACzB,MAAM;EACN,SAAS;EACV;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACf;CACD,SAAS,CAAC,QAAQ;CAClB,QAAQ,EACN,OAAO,CAAC,uBAAuB,EAChC;CACF;AAED,MAAaC,+BAAiD;CAC5D,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,YAAY;EACrB,MAAM;GAAC;GAAQ;GAAiB;GAAO;EACvC,WAAW,cAAc;EACzB,MAAM;EACN,SAAS;EACV;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACf;CACD,SAAS,CAAC,SAAS,WAAW;CAC9B,QAAQ,EACN,OAAO,CAAC,6BAA6B,EACtC;CACF"}
|
|
@@ -9,7 +9,7 @@ const OWNERS = ["@examples.team-hub"];
|
|
|
9
9
|
const ScheduleRitualContract = defineCommand({
|
|
10
10
|
meta: {
|
|
11
11
|
key: "team.ritual.schedule",
|
|
12
|
-
version: 1,
|
|
12
|
+
version: "1.0.0",
|
|
13
13
|
stability: "stable",
|
|
14
14
|
owners: [...OWNERS],
|
|
15
15
|
tags: [
|
|
@@ -54,7 +54,7 @@ const ScheduleRitualContract = defineCommand({
|
|
|
54
54
|
const LogRitualOccurrenceContract = defineCommand({
|
|
55
55
|
meta: {
|
|
56
56
|
key: "team.ritual.logOccurrence",
|
|
57
|
-
version: 1,
|
|
57
|
+
version: "1.0.0",
|
|
58
58
|
stability: "stable",
|
|
59
59
|
owners: [...OWNERS],
|
|
60
60
|
tags: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ritual.operations.js","names":[],"sources":["../../src/ritual/ritual.operations.ts"],"sourcesContent":["import { defineCommand } from '@contractspec/lib.contracts';\nimport {\n LogRitualOccurrenceInputModel,\n RitualModel,\n ScheduleRitualInputModel,\n} from './ritual.schema';\n\nconst OWNERS = ['@examples.team-hub'] as const;\n\n/**\n * Schedule a ritual.\n */\nexport const ScheduleRitualContract = defineCommand({\n meta: {\n key: 'team.ritual.schedule',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['team-hub', 'ritual', 'schedule'],\n description: 'Schedule a recurring ritual.',\n goal: 'Team ceremonies.',\n context: 'Ritual management.',\n },\n io: {\n input: ScheduleRitualInputModel,\n output: RitualModel,\n },\n policy: { auth: 'user' },\n acceptance: {\n scenarios: [\n {\n key: 'schedule-ritual-happy-path',\n given: ['Space exists'],\n when: ['User schedules ritual'],\n then: ['Ritual is scheduled'],\n },\n ],\n examples: [\n {\n key: 'schedule-standup',\n input: {\n spaceId: 'space-123',\n name: 'Daily Standup',\n interval: 'daily',\n time: '10:00',\n },\n output: { id: 'rit-123', status: 'active' },\n },\n ],\n },\n});\n\n/**\n * Log ritual occurrence.\n */\nexport const LogRitualOccurrenceContract = defineCommand({\n meta: {\n key: 'team.ritual.logOccurrence',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['team-hub', 'ritual', 'log'],\n description: 'Log a ritual occurrence.',\n goal: 'Record ritual history.',\n context: 'Ritual management.',\n },\n io: {\n input: LogRitualOccurrenceInputModel,\n output: RitualModel,\n },\n policy: { auth: 'user' },\n acceptance: {\n scenarios: [\n {\n key: 'log-occurrence-happy-path',\n given: ['Ritual is scheduled'],\n when: ['User logs occurrence'],\n then: ['Occurrence is recorded'],\n },\n ],\n examples: [\n {\n key: 'log-standup',\n input: {\n ritualId: 'rit-123',\n date: '2025-01-20',\n attendees: ['user-1', 'user-2'],\n },\n output: { id: 'rit-123', lastOccurrence: '2025-01-20' },\n },\n ],\n },\n});\n"],"mappings":";;;;AAOA,MAAM,SAAS,CAAC,qBAAqB;;;;AAKrC,MAAa,yBAAyB,cAAc;CAClD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAU;GAAW;EACxC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,YAAY;EACV,WAAW,CACT;GACE,KAAK;GACL,OAAO,CAAC,eAAe;GACvB,MAAM,CAAC,wBAAwB;GAC/B,MAAM,CAAC,sBAAsB;GAC9B,CACF;EACD,UAAU,CACR;GACE,KAAK;GACL,OAAO;IACL,SAAS;IACT,MAAM;IACN,UAAU;IACV,MAAM;IACP;GACD,QAAQ;IAAE,IAAI;IAAW,QAAQ;IAAU;GAC5C,CACF;EACF;CACF,CAAC;;;;AAKF,MAAa,8BAA8B,cAAc;CACvD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAU;GAAM;EACnC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,YAAY;EACV,WAAW,CACT;GACE,KAAK;GACL,OAAO,CAAC,sBAAsB;GAC9B,MAAM,CAAC,uBAAuB;GAC9B,MAAM,CAAC,yBAAyB;GACjC,CACF;EACD,UAAU,CACR;GACE,KAAK;GACL,OAAO;IACL,UAAU;IACV,MAAM;IACN,WAAW,CAAC,UAAU,SAAS;IAChC;GACD,QAAQ;IAAE,IAAI;IAAW,gBAAgB;IAAc;GACxD,CACF;EACF;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"ritual.operations.js","names":[],"sources":["../../src/ritual/ritual.operations.ts"],"sourcesContent":["import { defineCommand } from '@contractspec/lib.contracts';\nimport {\n LogRitualOccurrenceInputModel,\n RitualModel,\n ScheduleRitualInputModel,\n} from './ritual.schema';\n\nconst OWNERS = ['@examples.team-hub'] as const;\n\n/**\n * Schedule a ritual.\n */\nexport const ScheduleRitualContract = defineCommand({\n meta: {\n key: 'team.ritual.schedule',\n version: '1.0.0',\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['team-hub', 'ritual', 'schedule'],\n description: 'Schedule a recurring ritual.',\n goal: 'Team ceremonies.',\n context: 'Ritual management.',\n },\n io: {\n input: ScheduleRitualInputModel,\n output: RitualModel,\n },\n policy: { auth: 'user' },\n acceptance: {\n scenarios: [\n {\n key: 'schedule-ritual-happy-path',\n given: ['Space exists'],\n when: ['User schedules ritual'],\n then: ['Ritual is scheduled'],\n },\n ],\n examples: [\n {\n key: 'schedule-standup',\n input: {\n spaceId: 'space-123',\n name: 'Daily Standup',\n interval: 'daily',\n time: '10:00',\n },\n output: { id: 'rit-123', status: 'active' },\n },\n ],\n },\n});\n\n/**\n * Log ritual occurrence.\n */\nexport const LogRitualOccurrenceContract = defineCommand({\n meta: {\n key: 'team.ritual.logOccurrence',\n version: '1.0.0',\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['team-hub', 'ritual', 'log'],\n description: 'Log a ritual occurrence.',\n goal: 'Record ritual history.',\n context: 'Ritual management.',\n },\n io: {\n input: LogRitualOccurrenceInputModel,\n output: RitualModel,\n },\n policy: { auth: 'user' },\n acceptance: {\n scenarios: [\n {\n key: 'log-occurrence-happy-path',\n given: ['Ritual is scheduled'],\n when: ['User logs occurrence'],\n then: ['Occurrence is recorded'],\n },\n ],\n examples: [\n {\n key: 'log-standup',\n input: {\n ritualId: 'rit-123',\n date: '2025-01-20',\n attendees: ['user-1', 'user-2'],\n },\n output: { id: 'rit-123', lastOccurrence: '2025-01-20' },\n },\n ],\n },\n});\n"],"mappings":";;;;AAOA,MAAM,SAAS,CAAC,qBAAqB;;;;AAKrC,MAAa,yBAAyB,cAAc;CAClD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAU;GAAW;EACxC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,YAAY;EACV,WAAW,CACT;GACE,KAAK;GACL,OAAO,CAAC,eAAe;GACvB,MAAM,CAAC,wBAAwB;GAC/B,MAAM,CAAC,sBAAsB;GAC9B,CACF;EACD,UAAU,CACR;GACE,KAAK;GACL,OAAO;IACL,SAAS;IACT,MAAM;IACN,UAAU;IACV,MAAM;IACP;GACD,QAAQ;IAAE,IAAI;IAAW,QAAQ;IAAU;GAC5C,CACF;EACF;CACF,CAAC;;;;AAKF,MAAa,8BAA8B,cAAc;CACvD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAU;GAAM;EACnC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,YAAY;EACV,WAAW,CACT;GACE,KAAK;GACL,OAAO,CAAC,sBAAsB;GAC9B,MAAM,CAAC,uBAAuB;GAC9B,MAAM,CAAC,yBAAyB;GACjC,CACF;EACD,UAAU,CACR;GACE,KAAK;GACL,OAAO;IACL,UAAU;IACV,MAAM;IACN,WAAW,CAAC,UAAU,SAAS;IAChC;GACD,QAAQ;IAAE,IAAI;IAAW,gBAAgB;IAAc;GACxD,CACF;EACF;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"space.operations.js","names":[],"sources":["../../src/space/space.operations.ts"],"sourcesContent":["import { defineCommand } from '@contractspec/lib.contracts';\nimport { CreateSpaceInputModel, SpaceModel } from './space.schema';\n\nconst OWNERS = ['@examples.team-hub'] as const;\n\n/**\n * Create a new team space.\n */\nexport const CreateSpaceContract = defineCommand({\n meta: {\n key: 'team.space.create',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['team-hub', 'space', 'create'],\n description: 'Create a new team space.',\n goal: 'Organize teams/projects.',\n context: 'Workspace creation.',\n },\n io: {\n input: CreateSpaceInputModel,\n output: SpaceModel,\n },\n policy: { auth: 'user' },\n acceptance: {\n scenarios: [\n {\n key: 'create-space-happy-path',\n given: ['User is authenticated'],\n when: ['User creates a new space'],\n then: ['Space is created'],\n },\n ],\n examples: [\n {\n key: 'create-engineering',\n input: { name: 'Engineering', description: 'Engineering team space' },\n output: { id: 'space-123', name: 'Engineering' },\n },\n ],\n },\n});\n"],"mappings":";;;;AAGA,MAAM,SAAS,CAAC,qBAAqB;;;;AAKrC,MAAa,sBAAsB,cAAc;CAC/C,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAS;GAAS;EACrC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,YAAY;EACV,WAAW,CACT;GACE,KAAK;GACL,OAAO,CAAC,wBAAwB;GAChC,MAAM,CAAC,2BAA2B;GAClC,MAAM,CAAC,mBAAmB;GAC3B,CACF;EACD,UAAU,CACR;GACE,KAAK;GACL,OAAO;IAAE,MAAM;IAAe,aAAa;IAA0B;GACrE,QAAQ;IAAE,IAAI;IAAa,MAAM;IAAe;GACjD,CACF;EACF;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"space.operations.js","names":[],"sources":["../../src/space/space.operations.ts"],"sourcesContent":["import { defineCommand } from '@contractspec/lib.contracts';\nimport { CreateSpaceInputModel, SpaceModel } from './space.schema';\n\nconst OWNERS = ['@examples.team-hub'] as const;\n\n/**\n * Create a new team space.\n */\nexport const CreateSpaceContract = defineCommand({\n meta: {\n key: 'team.space.create',\n version: '1.0.0',\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['team-hub', 'space', 'create'],\n description: 'Create a new team space.',\n goal: 'Organize teams/projects.',\n context: 'Workspace creation.',\n },\n io: {\n input: CreateSpaceInputModel,\n output: SpaceModel,\n },\n policy: { auth: 'user' },\n acceptance: {\n scenarios: [\n {\n key: 'create-space-happy-path',\n given: ['User is authenticated'],\n when: ['User creates a new space'],\n then: ['Space is created'],\n },\n ],\n examples: [\n {\n key: 'create-engineering',\n input: { name: 'Engineering', description: 'Engineering team space' },\n output: { id: 'space-123', name: 'Engineering' },\n },\n ],\n },\n});\n"],"mappings":";;;;AAGA,MAAM,SAAS,CAAC,qBAAqB;;;;AAKrC,MAAa,sBAAsB,cAAc;CAC/C,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAS;GAAS;EACrC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,YAAY;EACV,WAAW,CACT;GACE,KAAK;GACL,OAAO,CAAC,wBAAwB;GAChC,MAAM,CAAC,2BAA2B;GAClC,MAAM,CAAC,mBAAmB;GAC3B,CACF;EACD,UAAU,CACR;GACE,KAAK;GACL,OAAO;IAAE,MAAM;IAAe,aAAa;IAA0B;GACrE,QAAQ;IAAE,IAAI;IAAa,MAAM;IAAe;GACjD,CACF;EACF;CACF,CAAC"}
|
|
@@ -48,7 +48,7 @@ const ListTasksOutputModel = defineSchemaModel({
|
|
|
48
48
|
const ListTasksOperation = defineQuery({
|
|
49
49
|
meta: {
|
|
50
50
|
key: "team.task.list",
|
|
51
|
-
version: 1,
|
|
51
|
+
version: "1.0.0",
|
|
52
52
|
stability: "stable",
|
|
53
53
|
owners: [...OWNERS],
|
|
54
54
|
tags: [
|
|
@@ -93,7 +93,7 @@ const ListTasksOperation = defineQuery({
|
|
|
93
93
|
const CreateTaskContract = defineCommand({
|
|
94
94
|
meta: {
|
|
95
95
|
key: "team.task.create",
|
|
96
|
-
version: 1,
|
|
96
|
+
version: "1.0.0",
|
|
97
97
|
stability: "stable",
|
|
98
98
|
owners: [...OWNERS],
|
|
99
99
|
tags: [
|
|
@@ -137,7 +137,7 @@ const CreateTaskContract = defineCommand({
|
|
|
137
137
|
const UpdateTaskStatusContract = defineCommand({
|
|
138
138
|
meta: {
|
|
139
139
|
key: "team.task.updateStatus",
|
|
140
|
-
version: 1,
|
|
140
|
+
version: "1.0.0",
|
|
141
141
|
stability: "stable",
|
|
142
142
|
owners: [...OWNERS],
|
|
143
143
|
tags: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.operations.js","names":[],"sources":["../../src/task/task.operations.ts"],"sourcesContent":["import { defineCommand, defineQuery } from '@contractspec/lib.contracts';\nimport { defineSchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';\nimport {\n CreateTaskInputModel,\n TaskModel,\n UpdateTaskStatusInputModel,\n} from './task.schema';\n\nconst OWNERS = ['@examples.team-hub'] as const;\n\n// ============ List Tasks Query ============\n\nexport const ListTasksInputModel = defineSchemaModel({\n name: 'ListTasksInput',\n description: 'Input for listing tasks',\n fields: {\n spaceId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n status: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n assigneeId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n limit: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n offset: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n },\n});\n\nexport const ListTasksOutputModel = defineSchemaModel({\n name: 'ListTasksOutput',\n description: 'Output for listing tasks',\n fields: {\n tasks: { type: TaskModel, isOptional: false, isList: true },\n total: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n },\n});\n\nexport const ListTasksOperation = defineQuery({\n meta: {\n key: 'team.task.list',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['team-hub', 'task', 'list', 'query'],\n description: 'List all tasks with filtering',\n goal: 'Retrieve list of tasks',\n context: 'Task management',\n },\n io: {\n input: ListTasksInputModel,\n output: ListTasksOutputModel,\n },\n policy: { auth: 'user' },\n acceptance: {\n scenarios: [\n {\n key: 'list-tasks-happy-path',\n given: ['Tasks exist'],\n when: ['User lists tasks'],\n then: ['List of tasks is returned'],\n },\n ],\n examples: [\n {\n key: 'list-my-tasks',\n input: { assigneeId: 'user-123', status: 'open', limit: 10 },\n output: { tasks: [], total: 3 },\n },\n ],\n },\n});\n\n// ============ Task Commands ============\n\n/**\n * Create a task.\n */\nexport const CreateTaskContract = defineCommand({\n meta: {\n key: 'team.task.create',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['team-hub', 'task', 'create'],\n description: 'Create a task.',\n goal: 'Track work.',\n context: 'Task management.',\n },\n io: {\n input: CreateTaskInputModel,\n output: TaskModel,\n },\n policy: { auth: 'user' },\n acceptance: {\n scenarios: [\n {\n key: 'create-task-happy-path',\n given: ['Space exists'],\n when: ['User creates task'],\n then: ['Task is created'],\n },\n ],\n examples: [\n {\n key: 'create-bug',\n input: { spaceId: 'space-123', title: 'Fix login bug', type: 'bug' },\n output: { id: 'task-456', status: 'todo' },\n },\n ],\n },\n});\n\n/**\n * Update task status.\n */\nexport const UpdateTaskStatusContract = defineCommand({\n meta: {\n key: 'team.task.updateStatus',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['team-hub', 'task', 'status'],\n description: 'Update task status.',\n goal: 'Track progress.',\n context: 'Task management.',\n },\n io: {\n input: UpdateTaskStatusInputModel,\n output: TaskModel,\n },\n policy: { auth: 'user' },\n acceptance: {\n scenarios: [\n {\n key: 'update-status-happy-path',\n given: ['Task exists'],\n when: ['User updates status'],\n then: ['Status is updated'],\n },\n ],\n examples: [\n {\n key: 'markup-done',\n input: { taskId: 'task-456', status: 'done' },\n output: { id: 'task-456', status: 'done' },\n },\n ],\n },\n});\n"],"mappings":";;;;;AAQA,MAAM,SAAS,CAAC,qBAAqB;AAIrC,MAAa,sBAAsB,kBAAkB;CACnD,MAAM;CACN,aAAa;CACb,QAAQ;EACN,SAAS;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAM;EACrE,QAAQ;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAM;EACpE,YAAY;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAM;EACxE,OAAO;GAAE,MAAM,eAAe,cAAc;GAAE,YAAY;GAAM;EAChE,QAAQ;GAAE,MAAM,eAAe,cAAc;GAAE,YAAY;GAAM;EAClE;CACF,CAAC;AAEF,MAAa,uBAAuB,kBAAkB;CACpD,MAAM;CACN,aAAa;CACb,QAAQ;EACN,OAAO;GAAE,MAAM;GAAW,YAAY;GAAO,QAAQ;GAAM;EAC3D,OAAO;GAAE,MAAM,eAAe,cAAc;GAAE,YAAY;GAAO;EAClE;CACF,CAAC;AAEF,MAAa,qBAAqB,YAAY;CAC5C,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAQ;GAAQ;GAAQ;EAC3C,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,YAAY;EACV,WAAW,CACT;GACE,KAAK;GACL,OAAO,CAAC,cAAc;GACtB,MAAM,CAAC,mBAAmB;GAC1B,MAAM,CAAC,4BAA4B;GACpC,CACF;EACD,UAAU,CACR;GACE,KAAK;GACL,OAAO;IAAE,YAAY;IAAY,QAAQ;IAAQ,OAAO;IAAI;GAC5D,QAAQ;IAAE,OAAO,EAAE;IAAE,OAAO;IAAG;GAChC,CACF;EACF;CACF,CAAC;;;;AAOF,MAAa,qBAAqB,cAAc;CAC9C,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAQ;GAAS;EACpC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,YAAY;EACV,WAAW,CACT;GACE,KAAK;GACL,OAAO,CAAC,eAAe;GACvB,MAAM,CAAC,oBAAoB;GAC3B,MAAM,CAAC,kBAAkB;GAC1B,CACF;EACD,UAAU,CACR;GACE,KAAK;GACL,OAAO;IAAE,SAAS;IAAa,OAAO;IAAiB,MAAM;IAAO;GACpE,QAAQ;IAAE,IAAI;IAAY,QAAQ;IAAQ;GAC3C,CACF;EACF;CACF,CAAC;;;;AAKF,MAAa,2BAA2B,cAAc;CACpD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAQ;GAAS;EACpC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,YAAY;EACV,WAAW,CACT;GACE,KAAK;GACL,OAAO,CAAC,cAAc;GACtB,MAAM,CAAC,sBAAsB;GAC7B,MAAM,CAAC,oBAAoB;GAC5B,CACF;EACD,UAAU,CACR;GACE,KAAK;GACL,OAAO;IAAE,QAAQ;IAAY,QAAQ;IAAQ;GAC7C,QAAQ;IAAE,IAAI;IAAY,QAAQ;IAAQ;GAC3C,CACF;EACF;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"task.operations.js","names":[],"sources":["../../src/task/task.operations.ts"],"sourcesContent":["import { defineCommand, defineQuery } from '@contractspec/lib.contracts';\nimport { defineSchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';\nimport {\n CreateTaskInputModel,\n TaskModel,\n UpdateTaskStatusInputModel,\n} from './task.schema';\n\nconst OWNERS = ['@examples.team-hub'] as const;\n\n// ============ List Tasks Query ============\n\nexport const ListTasksInputModel = defineSchemaModel({\n name: 'ListTasksInput',\n description: 'Input for listing tasks',\n fields: {\n spaceId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n status: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n assigneeId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n limit: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n offset: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n },\n});\n\nexport const ListTasksOutputModel = defineSchemaModel({\n name: 'ListTasksOutput',\n description: 'Output for listing tasks',\n fields: {\n tasks: { type: TaskModel, isOptional: false, isList: true },\n total: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n },\n});\n\nexport const ListTasksOperation = defineQuery({\n meta: {\n key: 'team.task.list',\n version: '1.0.0',\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['team-hub', 'task', 'list', 'query'],\n description: 'List all tasks with filtering',\n goal: 'Retrieve list of tasks',\n context: 'Task management',\n },\n io: {\n input: ListTasksInputModel,\n output: ListTasksOutputModel,\n },\n policy: { auth: 'user' },\n acceptance: {\n scenarios: [\n {\n key: 'list-tasks-happy-path',\n given: ['Tasks exist'],\n when: ['User lists tasks'],\n then: ['List of tasks is returned'],\n },\n ],\n examples: [\n {\n key: 'list-my-tasks',\n input: { assigneeId: 'user-123', status: 'open', limit: 10 },\n output: { tasks: [], total: 3 },\n },\n ],\n },\n});\n\n// ============ Task Commands ============\n\n/**\n * Create a task.\n */\nexport const CreateTaskContract = defineCommand({\n meta: {\n key: 'team.task.create',\n version: '1.0.0',\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['team-hub', 'task', 'create'],\n description: 'Create a task.',\n goal: 'Track work.',\n context: 'Task management.',\n },\n io: {\n input: CreateTaskInputModel,\n output: TaskModel,\n },\n policy: { auth: 'user' },\n acceptance: {\n scenarios: [\n {\n key: 'create-task-happy-path',\n given: ['Space exists'],\n when: ['User creates task'],\n then: ['Task is created'],\n },\n ],\n examples: [\n {\n key: 'create-bug',\n input: { spaceId: 'space-123', title: 'Fix login bug', type: 'bug' },\n output: { id: 'task-456', status: 'todo' },\n },\n ],\n },\n});\n\n/**\n * Update task status.\n */\nexport const UpdateTaskStatusContract = defineCommand({\n meta: {\n key: 'team.task.updateStatus',\n version: '1.0.0',\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['team-hub', 'task', 'status'],\n description: 'Update task status.',\n goal: 'Track progress.',\n context: 'Task management.',\n },\n io: {\n input: UpdateTaskStatusInputModel,\n output: TaskModel,\n },\n policy: { auth: 'user' },\n acceptance: {\n scenarios: [\n {\n key: 'update-status-happy-path',\n given: ['Task exists'],\n when: ['User updates status'],\n then: ['Status is updated'],\n },\n ],\n examples: [\n {\n key: 'markup-done',\n input: { taskId: 'task-456', status: 'done' },\n output: { id: 'task-456', status: 'done' },\n },\n ],\n },\n});\n"],"mappings":";;;;;AAQA,MAAM,SAAS,CAAC,qBAAqB;AAIrC,MAAa,sBAAsB,kBAAkB;CACnD,MAAM;CACN,aAAa;CACb,QAAQ;EACN,SAAS;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAM;EACrE,QAAQ;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAM;EACpE,YAAY;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAM;EACxE,OAAO;GAAE,MAAM,eAAe,cAAc;GAAE,YAAY;GAAM;EAChE,QAAQ;GAAE,MAAM,eAAe,cAAc;GAAE,YAAY;GAAM;EAClE;CACF,CAAC;AAEF,MAAa,uBAAuB,kBAAkB;CACpD,MAAM;CACN,aAAa;CACb,QAAQ;EACN,OAAO;GAAE,MAAM;GAAW,YAAY;GAAO,QAAQ;GAAM;EAC3D,OAAO;GAAE,MAAM,eAAe,cAAc;GAAE,YAAY;GAAO;EAClE;CACF,CAAC;AAEF,MAAa,qBAAqB,YAAY;CAC5C,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAQ;GAAQ;GAAQ;EAC3C,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,YAAY;EACV,WAAW,CACT;GACE,KAAK;GACL,OAAO,CAAC,cAAc;GACtB,MAAM,CAAC,mBAAmB;GAC1B,MAAM,CAAC,4BAA4B;GACpC,CACF;EACD,UAAU,CACR;GACE,KAAK;GACL,OAAO;IAAE,YAAY;IAAY,QAAQ;IAAQ,OAAO;IAAI;GAC5D,QAAQ;IAAE,OAAO,EAAE;IAAE,OAAO;IAAG;GAChC,CACF;EACF;CACF,CAAC;;;;AAOF,MAAa,qBAAqB,cAAc;CAC9C,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAQ;GAAS;EACpC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,YAAY;EACV,WAAW,CACT;GACE,KAAK;GACL,OAAO,CAAC,eAAe;GACvB,MAAM,CAAC,oBAAoB;GAC3B,MAAM,CAAC,kBAAkB;GAC1B,CACF;EACD,UAAU,CACR;GACE,KAAK;GACL,OAAO;IAAE,SAAS;IAAa,OAAO;IAAiB,MAAM;IAAO;GACpE,QAAQ;IAAE,IAAI;IAAY,QAAQ;IAAQ;GAC3C,CACF;EACF;CACF,CAAC;;;;AAKF,MAAa,2BAA2B,cAAc;CACpD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAQ;GAAS;EACpC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,YAAY;EACV,WAAW,CACT;GACE,KAAK;GACL,OAAO,CAAC,cAAc;GACtB,MAAM,CAAC,sBAAsB;GAC7B,MAAM,CAAC,oBAAoB;GAC5B,CACF;EACD,UAAU,CACR;GACE,KAAK;GACL,OAAO;IAAE,QAAQ;IAAY,QAAQ;IAAQ;GAC7C,QAAQ;IAAE,IAAI;IAAY,QAAQ;IAAQ;GAC3C,CACF;EACF;CACF,CAAC"}
|
package/dist/team-hub.feature.js
CHANGED
|
@@ -12,109 +12,109 @@ const TeamHubFeature = {
|
|
|
12
12
|
"announcements"
|
|
13
13
|
],
|
|
14
14
|
stability: "experimental",
|
|
15
|
-
version: 1
|
|
15
|
+
version: "1.0.0"
|
|
16
16
|
},
|
|
17
17
|
operations: [
|
|
18
18
|
{
|
|
19
19
|
key: "team.space.create",
|
|
20
|
-
version: 1
|
|
20
|
+
version: "1.0.0"
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
key: "team.task.create",
|
|
24
|
-
version: 1
|
|
24
|
+
version: "1.0.0"
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
27
|
key: "team.task.updateStatus",
|
|
28
|
-
version: 1
|
|
28
|
+
version: "1.0.0"
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
key: "team.task.list",
|
|
32
|
-
version: 1
|
|
32
|
+
version: "1.0.0"
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
key: "team.ritual.schedule",
|
|
36
|
-
version: 1
|
|
36
|
+
version: "1.0.0"
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
key: "team.ritual.logOccurrence",
|
|
40
|
-
version: 1
|
|
40
|
+
version: "1.0.0"
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
key: "team.announcement.post",
|
|
44
|
-
version: 1
|
|
44
|
+
version: "1.0.0"
|
|
45
45
|
}
|
|
46
46
|
],
|
|
47
47
|
events: [
|
|
48
48
|
{
|
|
49
49
|
key: "team.space.created",
|
|
50
|
-
version: 1
|
|
50
|
+
version: "1.0.0"
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
key: "team.task.created",
|
|
54
|
-
version: 1
|
|
54
|
+
version: "1.0.0"
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
key: "team.task.status_changed",
|
|
58
|
-
version: 1
|
|
58
|
+
version: "1.0.0"
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
key: "team.ritual.scheduled",
|
|
62
|
-
version: 1
|
|
62
|
+
version: "1.0.0"
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
65
|
key: "team.ritual.occurred",
|
|
66
|
-
version: 1
|
|
66
|
+
version: "1.0.0"
|
|
67
67
|
},
|
|
68
68
|
{
|
|
69
69
|
key: "team.announcement.posted",
|
|
70
|
-
version: 1
|
|
70
|
+
version: "1.0.0"
|
|
71
71
|
}
|
|
72
72
|
],
|
|
73
73
|
presentations: [
|
|
74
74
|
{
|
|
75
75
|
key: "team-hub.dashboard",
|
|
76
|
-
version: 1
|
|
76
|
+
version: "1.0.0"
|
|
77
77
|
},
|
|
78
78
|
{
|
|
79
79
|
key: "team-hub.space.list",
|
|
80
|
-
version: 1
|
|
80
|
+
version: "1.0.0"
|
|
81
81
|
},
|
|
82
82
|
{
|
|
83
83
|
key: "team-hub.task.board",
|
|
84
|
-
version: 1
|
|
84
|
+
version: "1.0.0"
|
|
85
85
|
},
|
|
86
86
|
{
|
|
87
87
|
key: "team-hub.task.detail",
|
|
88
|
-
version: 1
|
|
88
|
+
version: "1.0.0"
|
|
89
89
|
},
|
|
90
90
|
{
|
|
91
91
|
key: "team-hub.ritual.calendar",
|
|
92
|
-
version: 1
|
|
92
|
+
version: "1.0.0"
|
|
93
93
|
},
|
|
94
94
|
{
|
|
95
95
|
key: "team-hub.announcement.feed",
|
|
96
|
-
version: 1
|
|
96
|
+
version: "1.0.0"
|
|
97
97
|
}
|
|
98
98
|
],
|
|
99
99
|
presentationsTargets: [
|
|
100
100
|
{
|
|
101
101
|
key: "team-hub.dashboard",
|
|
102
|
-
version: 1,
|
|
102
|
+
version: "1.0.0",
|
|
103
103
|
targets: ["react", "markdown"]
|
|
104
104
|
},
|
|
105
105
|
{
|
|
106
106
|
key: "team-hub.task.board",
|
|
107
|
-
version: 1,
|
|
107
|
+
version: "1.0.0",
|
|
108
108
|
targets: ["react"]
|
|
109
109
|
},
|
|
110
110
|
{
|
|
111
111
|
key: "team-hub.ritual.calendar",
|
|
112
|
-
version: 1,
|
|
112
|
+
version: "1.0.0",
|
|
113
113
|
targets: ["react"]
|
|
114
114
|
},
|
|
115
115
|
{
|
|
116
116
|
key: "team-hub.announcement.feed",
|
|
117
|
-
version: 1,
|
|
117
|
+
version: "1.0.0",
|
|
118
118
|
targets: ["react", "markdown"]
|
|
119
119
|
}
|
|
120
120
|
],
|
|
@@ -122,33 +122,33 @@ const TeamHubFeature = {
|
|
|
122
122
|
requires: [
|
|
123
123
|
{
|
|
124
124
|
key: "identity",
|
|
125
|
-
version: 1
|
|
125
|
+
version: "1.0.0"
|
|
126
126
|
},
|
|
127
127
|
{
|
|
128
128
|
key: "audit-trail",
|
|
129
|
-
version: 1
|
|
129
|
+
version: "1.0.0"
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
132
|
key: "notifications",
|
|
133
|
-
version: 1
|
|
133
|
+
version: "1.0.0"
|
|
134
134
|
},
|
|
135
135
|
{
|
|
136
136
|
key: "feature-flags",
|
|
137
|
-
version: 1
|
|
137
|
+
version: "1.0.0"
|
|
138
138
|
}
|
|
139
139
|
],
|
|
140
140
|
provides: [
|
|
141
141
|
{
|
|
142
142
|
key: "tasks",
|
|
143
|
-
version: 1
|
|
143
|
+
version: "1.0.0"
|
|
144
144
|
},
|
|
145
145
|
{
|
|
146
146
|
key: "rituals",
|
|
147
|
-
version: 1
|
|
147
|
+
version: "1.0.0"
|
|
148
148
|
},
|
|
149
149
|
{
|
|
150
150
|
key: "announcements",
|
|
151
|
-
version: 1
|
|
151
|
+
version: "1.0.0"
|
|
152
152
|
}
|
|
153
153
|
]
|
|
154
154
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-hub.feature.js","names":["TeamHubFeature: FeatureModuleSpec"],"sources":["../src/team-hub.feature.ts"],"sourcesContent":["import type { FeatureModuleSpec } from '@contractspec/lib.contracts';\n\nexport const TeamHubFeature: FeatureModuleSpec = {\n meta: {\n key: 'team-hub',\n title: 'Team Hub',\n description:\n 'Tasks, rituals, and announcements for internal teams with ceremonies.',\n domain: 'collaboration',\n owners: ['@team-hub'],\n tags: ['tasks', 'rituals', 'announcements'],\n stability: 'experimental',\n version: 1,\n },\n operations: [\n { key: 'team.space.create', version: 1 },\n { key: 'team.task.create', version: 1 },\n { key: 'team.task.updateStatus', version: 1 },\n { key: 'team.task.list', version: 1 },\n { key: 'team.ritual.schedule', version: 1 },\n { key: 'team.ritual.logOccurrence', version: 1 },\n { key: 'team.announcement.post', version: 1 },\n ],\n events: [\n { key: 'team.space.created', version: 1 },\n { key: 'team.task.created', version: 1 },\n { key: 'team.task.status_changed', version: 1 },\n { key: 'team.ritual.scheduled', version: 1 },\n { key: 'team.ritual.occurred', version: 1 },\n { key: 'team.announcement.posted', version: 1 },\n ],\n presentations: [\n { key: 'team-hub.dashboard', version: 1 },\n { key: 'team-hub.space.list', version: 1 },\n { key: 'team-hub.task.board', version: 1 },\n { key: 'team-hub.task.detail', version: 1 },\n { key: 'team-hub.ritual.calendar', version: 1 },\n { key: 'team-hub.announcement.feed', version: 1 },\n ],\n presentationsTargets: [\n {
|
|
1
|
+
{"version":3,"file":"team-hub.feature.js","names":["TeamHubFeature: FeatureModuleSpec"],"sources":["../src/team-hub.feature.ts"],"sourcesContent":["import type { FeatureModuleSpec } from '@contractspec/lib.contracts';\n\nexport const TeamHubFeature: FeatureModuleSpec = {\n meta: {\n key: 'team-hub',\n title: 'Team Hub',\n description:\n 'Tasks, rituals, and announcements for internal teams with ceremonies.',\n domain: 'collaboration',\n owners: ['@team-hub'],\n tags: ['tasks', 'rituals', 'announcements'],\n stability: 'experimental',\n version: '1.0.0',\n },\n operations: [\n { key: 'team.space.create', version: '1.0.0' },\n { key: 'team.task.create', version: '1.0.0' },\n { key: 'team.task.updateStatus', version: '1.0.0' },\n { key: 'team.task.list', version: '1.0.0' },\n { key: 'team.ritual.schedule', version: '1.0.0' },\n { key: 'team.ritual.logOccurrence', version: '1.0.0' },\n { key: 'team.announcement.post', version: '1.0.0' },\n ],\n events: [\n { key: 'team.space.created', version: '1.0.0' },\n { key: 'team.task.created', version: '1.0.0' },\n { key: 'team.task.status_changed', version: '1.0.0' },\n { key: 'team.ritual.scheduled', version: '1.0.0' },\n { key: 'team.ritual.occurred', version: '1.0.0' },\n { key: 'team.announcement.posted', version: '1.0.0' },\n ],\n presentations: [\n { key: 'team-hub.dashboard', version: '1.0.0' },\n { key: 'team-hub.space.list', version: '1.0.0' },\n { key: 'team-hub.task.board', version: '1.0.0' },\n { key: 'team-hub.task.detail', version: '1.0.0' },\n { key: 'team-hub.ritual.calendar', version: '1.0.0' },\n { key: 'team-hub.announcement.feed', version: '1.0.0' },\n ],\n presentationsTargets: [\n {\n key: 'team-hub.dashboard',\n version: '1.0.0',\n targets: ['react', 'markdown'],\n },\n { key: 'team-hub.task.board', version: '1.0.0', targets: ['react'] },\n { key: 'team-hub.ritual.calendar', version: '1.0.0', targets: ['react'] },\n {\n key: 'team-hub.announcement.feed',\n version: '1.0.0',\n targets: ['react', 'markdown'],\n },\n ],\n capabilities: {\n requires: [\n { key: 'identity', version: '1.0.0' },\n { key: 'audit-trail', version: '1.0.0' },\n { key: 'notifications', version: '1.0.0' },\n { key: 'feature-flags', version: '1.0.0' },\n ],\n provides: [\n { key: 'tasks', version: '1.0.0' },\n { key: 'rituals', version: '1.0.0' },\n { key: 'announcements', version: '1.0.0' },\n ],\n },\n};\n"],"mappings":";AAEA,MAAaA,iBAAoC;CAC/C,MAAM;EACJ,KAAK;EACL,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,YAAY;EACrB,MAAM;GAAC;GAAS;GAAW;GAAgB;EAC3C,WAAW;EACX,SAAS;EACV;CACD,YAAY;EACV;GAAE,KAAK;GAAqB,SAAS;GAAS;EAC9C;GAAE,KAAK;GAAoB,SAAS;GAAS;EAC7C;GAAE,KAAK;GAA0B,SAAS;GAAS;EACnD;GAAE,KAAK;GAAkB,SAAS;GAAS;EAC3C;GAAE,KAAK;GAAwB,SAAS;GAAS;EACjD;GAAE,KAAK;GAA6B,SAAS;GAAS;EACtD;GAAE,KAAK;GAA0B,SAAS;GAAS;EACpD;CACD,QAAQ;EACN;GAAE,KAAK;GAAsB,SAAS;GAAS;EAC/C;GAAE,KAAK;GAAqB,SAAS;GAAS;EAC9C;GAAE,KAAK;GAA4B,SAAS;GAAS;EACrD;GAAE,KAAK;GAAyB,SAAS;GAAS;EAClD;GAAE,KAAK;GAAwB,SAAS;GAAS;EACjD;GAAE,KAAK;GAA4B,SAAS;GAAS;EACtD;CACD,eAAe;EACb;GAAE,KAAK;GAAsB,SAAS;GAAS;EAC/C;GAAE,KAAK;GAAuB,SAAS;GAAS;EAChD;GAAE,KAAK;GAAuB,SAAS;GAAS;EAChD;GAAE,KAAK;GAAwB,SAAS;GAAS;EACjD;GAAE,KAAK;GAA4B,SAAS;GAAS;EACrD;GAAE,KAAK;GAA8B,SAAS;GAAS;EACxD;CACD,sBAAsB;EACpB;GACE,KAAK;GACL,SAAS;GACT,SAAS,CAAC,SAAS,WAAW;GAC/B;EACD;GAAE,KAAK;GAAuB,SAAS;GAAS,SAAS,CAAC,QAAQ;GAAE;EACpE;GAAE,KAAK;GAA4B,SAAS;GAAS,SAAS,CAAC,QAAQ;GAAE;EACzE;GACE,KAAK;GACL,SAAS;GACT,SAAS,CAAC,SAAS,WAAW;GAC/B;EACF;CACD,cAAc;EACZ,UAAU;GACR;IAAE,KAAK;IAAY,SAAS;IAAS;GACrC;IAAE,KAAK;IAAe,SAAS;IAAS;GACxC;IAAE,KAAK;IAAiB,SAAS;IAAS;GAC1C;IAAE,KAAK;IAAiB,SAAS;IAAS;GAC3C;EACD,UAAU;GACR;IAAE,KAAK;IAAS,SAAS;IAAS;GAClC;IAAE,KAAK;IAAW,SAAS;IAAS;GACpC;IAAE,KAAK;IAAiB,SAAS;IAAS;GAC3C;EACF;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contractspec/example.team-hub",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.45.1",
|
|
4
4
|
"description": "Team Hub example with spaces, tasks, rituals, and announcements",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -18,18 +18,18 @@
|
|
|
18
18
|
"lint:check": "eslint src"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@contractspec/lib.schema": "1.
|
|
22
|
-
"@contractspec/lib.contracts": "1.
|
|
23
|
-
"@contractspec/lib.bus": "1.
|
|
24
|
-
"@contractspec/lib.identity-rbac": "1.
|
|
25
|
-
"@contractspec/lib.jobs": "1.
|
|
26
|
-
"@contractspec/module.audit-trail": "1.
|
|
27
|
-
"@contractspec/module.notifications": "1.
|
|
21
|
+
"@contractspec/lib.schema": "1.45.1",
|
|
22
|
+
"@contractspec/lib.contracts": "1.45.1",
|
|
23
|
+
"@contractspec/lib.bus": "1.45.1",
|
|
24
|
+
"@contractspec/lib.identity-rbac": "1.45.1",
|
|
25
|
+
"@contractspec/lib.jobs": "1.45.1",
|
|
26
|
+
"@contractspec/module.audit-trail": "1.45.1",
|
|
27
|
+
"@contractspec/module.notifications": "1.45.1",
|
|
28
28
|
"zod": "^4.1.13"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@contractspec/tool.typescript": "1.
|
|
32
|
-
"@contractspec/tool.tsdown": "1.
|
|
31
|
+
"@contractspec/tool.typescript": "1.45.1",
|
|
32
|
+
"@contractspec/tool.tsdown": "1.45.1",
|
|
33
33
|
"typescript": "^5.9.3"
|
|
34
34
|
},
|
|
35
35
|
"exports": {
|