@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.
@@ -9,7 +9,7 @@ const OWNERS = ["@examples.team-hub"];
9
9
  const PostAnnouncementContract = defineCommand({
10
10
  meta: {
11
11
  key: "team.announcement.post",
12
- version: 1,
12
+ version: "1.0.0",
13
13
  stability: "stable",
14
14
  owners: [...OWNERS],
15
15
  tags: [
@@ -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"],
@@ -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":";;;;AAGA,MAAM,oBAAoB,kBAAkB;CAC1C,MAAM;CACN,aAAa;CACb,QAAQ;EACN,SAAS;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACtE,OAAO;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACpE,SAAS;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACtE,WAAW;GAAE,MAAM,eAAe,UAAU;GAAE,YAAY;GAAO;EAClE;CACF,CAAC;AAEF,MAAM,mBAAmB,kBAAkB;CACzC,MAAM;CACN,aAAa;CACb,QAAQ;EACN,QAAQ;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACrE,SAAS;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACtE,QAAQ;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACrE,YAAY;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAM;EACxE,OAAO;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACpE,WAAW;GAAE,MAAM,eAAe,UAAU;GAAE,YAAY;GAAO;EAClE;CACF,CAAC;AAEF,MAAM,qBAAqB,kBAAkB;CAC3C,MAAM;CACN,aAAa;CACb,QAAQ;EACN,UAAU;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACvE,SAAS;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACtE,cAAc;GAAE,MAAM,eAAe,UAAU;GAAE,YAAY;GAAO;EACpE,QAAQ;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACrE,OAAO;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACrE;CACF,CAAC;AAEF,MAAM,sBAAsB,kBAAkB;CAC5C,MAAM;CACN,aAAa;CACb,QAAQ;EACN,gBAAgB;GACd,MAAM,eAAe,iBAAiB;GACtC,YAAY;GACb;EACD,SAAS;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAM;EACrE,UAAU;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACvE,OAAO;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACpE,WAAW;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACxE,WAAW;GAAE,MAAM,eAAe,UAAU;GAAE,YAAY;GAAO;EAClE;CACF,CAAC;AAEF,MAAa,oBAAoB,YAAY;CAC3C,MAAM;EACJ,KAAK;EACL,SAAS;EACT,aAAa;EACb,WAAW;EACX,QAAQ,CAAC,YAAY;EACrB,MAAM;GAAC;GAAQ;GAAS;GAAU;EACnC;CACD,SAAS;CACV,CAAC;AAEF,MAAa,mBAAmB,YAAY;CAC1C,MAAM;EACJ,KAAK;EACL,SAAS;EACT,aAAa;EACb,WAAW;EACX,QAAQ,CAAC,YAAY;EACrB,MAAM;GAAC;GAAQ;GAAQ;GAAU;EAClC;CACD,SAAS;CACV,CAAC;AAEF,MAAa,yBAAyB,YAAY;CAChD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,aAAa;EACb,WAAW;EACX,QAAQ,CAAC,YAAY;EACrB,MAAM;GAAC;GAAQ;GAAQ;GAAiB;EACzC;CACD,SAAS;CACV,CAAC;AAEF,MAAa,uBAAuB,YAAY;CAC9C,MAAM;EACJ,KAAK;EACL,SAAS;EACT,aAAa;EACb,WAAW;EACX,QAAQ,CAAC,YAAY;EACrB,MAAM;GAAC;GAAQ;GAAU;GAAY;EACtC;CACD,SAAS;CACV,CAAC;AAEF,MAAa,sBAAsB,YAAY;CAC7C,MAAM;EACJ,KAAK;EACL,SAAS;EACT,aAAa;EACb,WAAW;EACX,QAAQ,CAAC,YAAY;EACrB,MAAM;GAAC;GAAQ;GAAU;GAAW;EACrC;CACD,SAAS;CACV,CAAC;AAEF,MAAa,0BAA0B,YAAY;CACjD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,aAAa;EACb,WAAW;EACX,QAAQ,CAAC,YAAY;EACrB,MAAM;GAAC;GAAQ;GAAgB;GAAS;EACzC;CACD,SAAS;CACV,CAAC;AAEF,MAAa,gBAAgB;CAC3B;CACA;CACA;CACA;CACA;CACA;CACD"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"example.d.ts","names":[],"sources":["../src/example.ts"],"sourcesContent":[],"mappings":";cAAM;EAAA,SAAA,EA+BI,EAAA,UAAA"}
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
- id: "team-hub",
4
- title: "Team Hub",
5
- summary: "Internal collaboration hub with spaces, tasks, rituals, and announcements.",
6
- tags: [
7
- "tasks",
8
- "rituals",
9
- "announcements",
10
- "collaboration"
11
- ],
12
- kind: "template",
13
- visibility: "public",
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",
@@ -1 +1 @@
1
- {"version":3,"file":"example.js","names":[],"sources":["../src/example.ts"],"sourcesContent":["const example = {\n id: 'team-hub',\n title: 'Team Hub',\n summary:\n 'Internal collaboration hub with spaces, tasks, rituals, and announcements.',\n tags: ['tasks', 'rituals', 'announcements', 'collaboration'],\n kind: 'template',\n visibility: 'public',\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} as const;\n\nexport default example;\n"],"mappings":";AAAA,MAAM,UAAU;CACd,IAAI;CACJ,OAAO;CACP,SACE;CACF,MAAM;EAAC;EAAS;EAAW;EAAiB;EAAgB;CAC5D,MAAM;CACN,YAAY;CACZ,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"}
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"}
@@ -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"}
@@ -9,7 +9,7 @@ const OWNERS = ["@examples.team-hub"];
9
9
  const CreateSpaceContract = defineCommand({
10
10
  meta: {
11
11
  key: "team.space.create",
12
- version: 1,
12
+ version: "1.0.0",
13
13
  stability: "stable",
14
14
  owners: [...OWNERS],
15
15
  tags: [
@@ -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"}
@@ -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 { key: 'team-hub.dashboard', version: 1, targets: ['react', 'markdown'] },\n { key: 'team-hub.task.board', version: 1, targets: ['react'] },\n { key: 'team-hub.ritual.calendar', version: 1, targets: ['react'] },\n {\n key: 'team-hub.announcement.feed',\n version: 1,\n targets: ['react', 'markdown'],\n },\n ],\n capabilities: {\n requires: [\n { key: 'identity', version: 1 },\n { key: 'audit-trail', version: 1 },\n { key: 'notifications', version: 1 },\n { key: 'feature-flags', version: 1 },\n ],\n provides: [\n { key: 'tasks', version: 1 },\n { key: 'rituals', version: 1 },\n { key: 'announcements', version: 1 },\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;GAAG;EACxC;GAAE,KAAK;GAAoB,SAAS;GAAG;EACvC;GAAE,KAAK;GAA0B,SAAS;GAAG;EAC7C;GAAE,KAAK;GAAkB,SAAS;GAAG;EACrC;GAAE,KAAK;GAAwB,SAAS;GAAG;EAC3C;GAAE,KAAK;GAA6B,SAAS;GAAG;EAChD;GAAE,KAAK;GAA0B,SAAS;GAAG;EAC9C;CACD,QAAQ;EACN;GAAE,KAAK;GAAsB,SAAS;GAAG;EACzC;GAAE,KAAK;GAAqB,SAAS;GAAG;EACxC;GAAE,KAAK;GAA4B,SAAS;GAAG;EAC/C;GAAE,KAAK;GAAyB,SAAS;GAAG;EAC5C;GAAE,KAAK;GAAwB,SAAS;GAAG;EAC3C;GAAE,KAAK;GAA4B,SAAS;GAAG;EAChD;CACD,eAAe;EACb;GAAE,KAAK;GAAsB,SAAS;GAAG;EACzC;GAAE,KAAK;GAAuB,SAAS;GAAG;EAC1C;GAAE,KAAK;GAAuB,SAAS;GAAG;EAC1C;GAAE,KAAK;GAAwB,SAAS;GAAG;EAC3C;GAAE,KAAK;GAA4B,SAAS;GAAG;EAC/C;GAAE,KAAK;GAA8B,SAAS;GAAG;EAClD;CACD,sBAAsB;EACpB;GAAE,KAAK;GAAsB,SAAS;GAAG,SAAS,CAAC,SAAS,WAAW;GAAE;EACzE;GAAE,KAAK;GAAuB,SAAS;GAAG,SAAS,CAAC,QAAQ;GAAE;EAC9D;GAAE,KAAK;GAA4B,SAAS;GAAG,SAAS,CAAC,QAAQ;GAAE;EACnE;GACE,KAAK;GACL,SAAS;GACT,SAAS,CAAC,SAAS,WAAW;GAC/B;EACF;CACD,cAAc;EACZ,UAAU;GACR;IAAE,KAAK;IAAY,SAAS;IAAG;GAC/B;IAAE,KAAK;IAAe,SAAS;IAAG;GAClC;IAAE,KAAK;IAAiB,SAAS;IAAG;GACpC;IAAE,KAAK;IAAiB,SAAS;IAAG;GACrC;EACD,UAAU;GACR;IAAE,KAAK;IAAS,SAAS;IAAG;GAC5B;IAAE,KAAK;IAAW,SAAS;IAAG;GAC9B;IAAE,KAAK;IAAiB,SAAS;IAAG;GACrC;EACF;CACF"}
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.44.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.44.1",
22
- "@contractspec/lib.contracts": "1.44.1",
23
- "@contractspec/lib.bus": "1.44.1",
24
- "@contractspec/lib.identity-rbac": "1.44.1",
25
- "@contractspec/lib.jobs": "1.44.1",
26
- "@contractspec/module.audit-trail": "1.44.1",
27
- "@contractspec/module.notifications": "1.44.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.44.1",
32
- "@contractspec/tool.tsdown": "1.44.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": {