@contractspec/example.kb-update-pipeline 3.7.5 → 3.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/AGENTS.md +50 -29
  3. package/CHANGELOG.md +9 -0
  4. package/README.md +59 -12
  5. package/dist/browser/entities/index.js +2 -2
  6. package/dist/browser/entities/models.js +2 -2
  7. package/dist/browser/events.js +1 -1
  8. package/dist/browser/index.js +70 -70
  9. package/dist/browser/operations/index.js +3 -3
  10. package/dist/browser/operations/pipeline.js +3 -3
  11. package/dist/browser/presentations.js +2 -2
  12. package/dist/entities/index.js +2 -2
  13. package/dist/entities/models.js +2 -2
  14. package/dist/events.js +1 -1
  15. package/dist/index.d.ts +2 -2
  16. package/dist/index.js +70 -70
  17. package/dist/node/entities/index.js +2 -2
  18. package/dist/node/entities/models.js +2 -2
  19. package/dist/node/events.js +1 -1
  20. package/dist/node/index.js +70 -70
  21. package/dist/node/operations/index.js +3 -3
  22. package/dist/node/operations/pipeline.js +3 -3
  23. package/dist/node/presentations.js +2 -2
  24. package/dist/operations/index.js +3 -3
  25. package/dist/operations/pipeline.js +3 -3
  26. package/dist/presentations.js +2 -2
  27. package/package.json +7 -7
  28. package/src/docs/kb-update-pipeline.docblock.ts +22 -22
  29. package/src/entities/models.ts +36 -36
  30. package/src/events.ts +99 -99
  31. package/src/example.ts +28 -28
  32. package/src/handlers/memory.handlers.test.ts +64 -64
  33. package/src/handlers/memory.handlers.ts +158 -158
  34. package/src/index.ts +2 -2
  35. package/src/kb-update-pipeline.feature.ts +62 -62
  36. package/src/operations/pipeline.ts +125 -125
  37. package/src/presentations.ts +59 -59
  38. package/src/tests/operations.test-spec.ts +72 -72
  39. package/tsconfig.json +7 -17
  40. package/tsdown.config.js +7 -13
package/dist/index.js CHANGED
@@ -44,9 +44,9 @@ var docBlocks = [
44
44
  registerDocBlocks(docBlocks);
45
45
  // src/entities/models.ts
46
46
  import {
47
- ScalarTypeEnum,
48
47
  defineEnum,
49
- defineSchemaModel
48
+ defineSchemaModel,
49
+ ScalarTypeEnum
50
50
  } from "@contractspec/lib.schema";
51
51
  var ChangeRiskLevelEnum = defineEnum("ChangeRiskLevel", [
52
52
  "low",
@@ -93,7 +93,7 @@ var ReviewTaskModel = defineSchemaModel({
93
93
  });
94
94
  // src/events.ts
95
95
  import { defineEvent, StabilityEnum } from "@contractspec/lib.contracts-spec";
96
- import { ScalarTypeEnum as ScalarTypeEnum2, defineSchemaModel as defineSchemaModel2 } from "@contractspec/lib.schema";
96
+ import { defineSchemaModel as defineSchemaModel2, ScalarTypeEnum as ScalarTypeEnum2 } from "@contractspec/lib.schema";
97
97
  var KbChangeDetectedPayload = defineSchemaModel2({
98
98
  name: "KbChangeDetectedPayload",
99
99
  description: "Emitted when a source change is detected.",
@@ -351,9 +351,75 @@ function createPipelineMemoryHandlers(store) {
351
351
  publishIfReady
352
352
  };
353
353
  }
354
+ // src/kb-update-pipeline.feature.ts
355
+ import { defineFeature } from "@contractspec/lib.contracts-spec";
356
+ var KbUpdatePipelineFeature = defineFeature({
357
+ meta: {
358
+ key: "kb-update-pipeline",
359
+ version: "1.0.0",
360
+ title: "KB Update Pipeline (HITL)",
361
+ description: "Automation proposes KB patches; humans verify; publishing is blocked until approvals are complete.",
362
+ domain: "knowledge",
363
+ owners: ["@examples"],
364
+ tags: ["knowledge", "pipeline", "hitl", "audit", "notifications"],
365
+ stability: "experimental"
366
+ },
367
+ operations: [
368
+ { key: "kbPipeline.runWatch", version: "1.0.0" },
369
+ { key: "kbPipeline.createReviewTask", version: "1.0.0" },
370
+ { key: "kbPipeline.submitDecision", version: "1.0.0" },
371
+ { key: "kbPipeline.publishIfReady", version: "1.0.0" }
372
+ ],
373
+ events: [
374
+ { key: "kb.change.detected", version: "1.0.0" },
375
+ { key: "kb.change.summarized", version: "1.0.0" },
376
+ { key: "kb.patch.proposed", version: "1.0.0" },
377
+ { key: "kb.review.requested", version: "1.0.0" },
378
+ { key: "kb.review.decided", version: "1.0.0" }
379
+ ],
380
+ presentations: [
381
+ { key: "kb.dashboard", version: "1.0.0" },
382
+ { key: "kb.review.list", version: "1.0.0" },
383
+ { key: "kb.review.form", version: "1.0.0" }
384
+ ],
385
+ opToPresentation: [
386
+ {
387
+ op: { key: "kbPipeline.runWatch", version: "1.0.0" },
388
+ pres: { key: "kb.dashboard", version: "1.0.0" }
389
+ },
390
+ {
391
+ op: { key: "kbPipeline.createReviewTask", version: "1.0.0" },
392
+ pres: { key: "kb.review.list", version: "1.0.0" }
393
+ },
394
+ {
395
+ op: { key: "kbPipeline.submitDecision", version: "1.0.0" },
396
+ pres: { key: "kb.review.form", version: "1.0.0" }
397
+ }
398
+ ],
399
+ presentationsTargets: [
400
+ { key: "kb.dashboard", version: "1.0.0", targets: ["react", "markdown"] },
401
+ { key: "kb.review.list", version: "1.0.0", targets: ["react", "markdown"] },
402
+ { key: "kb.review.form", version: "1.0.0", targets: ["react"] }
403
+ ],
404
+ capabilities: {
405
+ requires: [
406
+ { key: "identity", version: "1.0.0" },
407
+ { key: "notifications", version: "1.0.0" },
408
+ { key: "audit-trail", version: "1.0.0" }
409
+ ]
410
+ },
411
+ knowledge: [{ key: "kb.knowledge.rules", version: "1.0.0" }],
412
+ telemetry: [{ key: "kb-pipeline.telemetry", version: "1.0.0" }],
413
+ jobs: [{ key: "kb-pipeline.job.watch", version: "1.0.0" }],
414
+ docs: [
415
+ "docs.examples.kb-update-pipeline.goal",
416
+ "docs.examples.kb-update-pipeline.reference"
417
+ ]
418
+ });
419
+
354
420
  // src/operations/pipeline.ts
355
421
  import { defineCommand } from "@contractspec/lib.contracts-spec";
356
- import { ScalarTypeEnum as ScalarTypeEnum3, defineSchemaModel as defineSchemaModel3 } from "@contractspec/lib.schema";
422
+ import { defineSchemaModel as defineSchemaModel3, ScalarTypeEnum as ScalarTypeEnum3 } from "@contractspec/lib.schema";
357
423
  var RunWatchInput = defineSchemaModel3({
358
424
  name: "KbPipelineRunWatchInput",
359
425
  description: "Trigger a watch cycle for KB sources (demo).",
@@ -494,72 +560,6 @@ var KbPipelinePublishIfReadyContract = defineCommand({
494
560
  },
495
561
  policy: { auth: "user" }
496
562
  });
497
- // src/kb-update-pipeline.feature.ts
498
- import { defineFeature } from "@contractspec/lib.contracts-spec";
499
- var KbUpdatePipelineFeature = defineFeature({
500
- meta: {
501
- key: "kb-update-pipeline",
502
- version: "1.0.0",
503
- title: "KB Update Pipeline (HITL)",
504
- description: "Automation proposes KB patches; humans verify; publishing is blocked until approvals are complete.",
505
- domain: "knowledge",
506
- owners: ["@examples"],
507
- tags: ["knowledge", "pipeline", "hitl", "audit", "notifications"],
508
- stability: "experimental"
509
- },
510
- operations: [
511
- { key: "kbPipeline.runWatch", version: "1.0.0" },
512
- { key: "kbPipeline.createReviewTask", version: "1.0.0" },
513
- { key: "kbPipeline.submitDecision", version: "1.0.0" },
514
- { key: "kbPipeline.publishIfReady", version: "1.0.0" }
515
- ],
516
- events: [
517
- { key: "kb.change.detected", version: "1.0.0" },
518
- { key: "kb.change.summarized", version: "1.0.0" },
519
- { key: "kb.patch.proposed", version: "1.0.0" },
520
- { key: "kb.review.requested", version: "1.0.0" },
521
- { key: "kb.review.decided", version: "1.0.0" }
522
- ],
523
- presentations: [
524
- { key: "kb.dashboard", version: "1.0.0" },
525
- { key: "kb.review.list", version: "1.0.0" },
526
- { key: "kb.review.form", version: "1.0.0" }
527
- ],
528
- opToPresentation: [
529
- {
530
- op: { key: "kbPipeline.runWatch", version: "1.0.0" },
531
- pres: { key: "kb.dashboard", version: "1.0.0" }
532
- },
533
- {
534
- op: { key: "kbPipeline.createReviewTask", version: "1.0.0" },
535
- pres: { key: "kb.review.list", version: "1.0.0" }
536
- },
537
- {
538
- op: { key: "kbPipeline.submitDecision", version: "1.0.0" },
539
- pres: { key: "kb.review.form", version: "1.0.0" }
540
- }
541
- ],
542
- presentationsTargets: [
543
- { key: "kb.dashboard", version: "1.0.0", targets: ["react", "markdown"] },
544
- { key: "kb.review.list", version: "1.0.0", targets: ["react", "markdown"] },
545
- { key: "kb.review.form", version: "1.0.0", targets: ["react"] }
546
- ],
547
- capabilities: {
548
- requires: [
549
- { key: "identity", version: "1.0.0" },
550
- { key: "notifications", version: "1.0.0" },
551
- { key: "audit-trail", version: "1.0.0" }
552
- ]
553
- },
554
- knowledge: [{ key: "kb.knowledge.rules", version: "1.0.0" }],
555
- telemetry: [{ key: "kb-pipeline.telemetry", version: "1.0.0" }],
556
- jobs: [{ key: "kb-pipeline.job.watch", version: "1.0.0" }],
557
- docs: [
558
- "docs.examples.kb-update-pipeline.goal",
559
- "docs.examples.kb-update-pipeline.reference"
560
- ]
561
- });
562
-
563
563
  // src/presentations.ts
564
564
  import {
565
565
  definePresentation,
@@ -1,8 +1,8 @@
1
1
  // src/entities/models.ts
2
2
  import {
3
- ScalarTypeEnum,
4
3
  defineEnum,
5
- defineSchemaModel
4
+ defineSchemaModel,
5
+ ScalarTypeEnum
6
6
  } from "@contractspec/lib.schema";
7
7
  var ChangeRiskLevelEnum = defineEnum("ChangeRiskLevel", [
8
8
  "low",
@@ -1,8 +1,8 @@
1
1
  // src/entities/models.ts
2
2
  import {
3
- ScalarTypeEnum,
4
3
  defineEnum,
5
- defineSchemaModel
4
+ defineSchemaModel,
5
+ ScalarTypeEnum
6
6
  } from "@contractspec/lib.schema";
7
7
  var ChangeRiskLevelEnum = defineEnum("ChangeRiskLevel", [
8
8
  "low",
@@ -1,6 +1,6 @@
1
1
  // src/events.ts
2
2
  import { defineEvent, StabilityEnum } from "@contractspec/lib.contracts-spec";
3
- import { ScalarTypeEnum, defineSchemaModel } from "@contractspec/lib.schema";
3
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
4
4
  var KbChangeDetectedPayload = defineSchemaModel({
5
5
  name: "KbChangeDetectedPayload",
6
6
  description: "Emitted when a source change is detected.",
@@ -43,9 +43,9 @@ var docBlocks = [
43
43
  registerDocBlocks(docBlocks);
44
44
  // src/entities/models.ts
45
45
  import {
46
- ScalarTypeEnum,
47
46
  defineEnum,
48
- defineSchemaModel
47
+ defineSchemaModel,
48
+ ScalarTypeEnum
49
49
  } from "@contractspec/lib.schema";
50
50
  var ChangeRiskLevelEnum = defineEnum("ChangeRiskLevel", [
51
51
  "low",
@@ -92,7 +92,7 @@ var ReviewTaskModel = defineSchemaModel({
92
92
  });
93
93
  // src/events.ts
94
94
  import { defineEvent, StabilityEnum } from "@contractspec/lib.contracts-spec";
95
- import { ScalarTypeEnum as ScalarTypeEnum2, defineSchemaModel as defineSchemaModel2 } from "@contractspec/lib.schema";
95
+ import { defineSchemaModel as defineSchemaModel2, ScalarTypeEnum as ScalarTypeEnum2 } from "@contractspec/lib.schema";
96
96
  var KbChangeDetectedPayload = defineSchemaModel2({
97
97
  name: "KbChangeDetectedPayload",
98
98
  description: "Emitted when a source change is detected.",
@@ -350,9 +350,75 @@ function createPipelineMemoryHandlers(store) {
350
350
  publishIfReady
351
351
  };
352
352
  }
353
+ // src/kb-update-pipeline.feature.ts
354
+ import { defineFeature } from "@contractspec/lib.contracts-spec";
355
+ var KbUpdatePipelineFeature = defineFeature({
356
+ meta: {
357
+ key: "kb-update-pipeline",
358
+ version: "1.0.0",
359
+ title: "KB Update Pipeline (HITL)",
360
+ description: "Automation proposes KB patches; humans verify; publishing is blocked until approvals are complete.",
361
+ domain: "knowledge",
362
+ owners: ["@examples"],
363
+ tags: ["knowledge", "pipeline", "hitl", "audit", "notifications"],
364
+ stability: "experimental"
365
+ },
366
+ operations: [
367
+ { key: "kbPipeline.runWatch", version: "1.0.0" },
368
+ { key: "kbPipeline.createReviewTask", version: "1.0.0" },
369
+ { key: "kbPipeline.submitDecision", version: "1.0.0" },
370
+ { key: "kbPipeline.publishIfReady", version: "1.0.0" }
371
+ ],
372
+ events: [
373
+ { key: "kb.change.detected", version: "1.0.0" },
374
+ { key: "kb.change.summarized", version: "1.0.0" },
375
+ { key: "kb.patch.proposed", version: "1.0.0" },
376
+ { key: "kb.review.requested", version: "1.0.0" },
377
+ { key: "kb.review.decided", version: "1.0.0" }
378
+ ],
379
+ presentations: [
380
+ { key: "kb.dashboard", version: "1.0.0" },
381
+ { key: "kb.review.list", version: "1.0.0" },
382
+ { key: "kb.review.form", version: "1.0.0" }
383
+ ],
384
+ opToPresentation: [
385
+ {
386
+ op: { key: "kbPipeline.runWatch", version: "1.0.0" },
387
+ pres: { key: "kb.dashboard", version: "1.0.0" }
388
+ },
389
+ {
390
+ op: { key: "kbPipeline.createReviewTask", version: "1.0.0" },
391
+ pres: { key: "kb.review.list", version: "1.0.0" }
392
+ },
393
+ {
394
+ op: { key: "kbPipeline.submitDecision", version: "1.0.0" },
395
+ pres: { key: "kb.review.form", version: "1.0.0" }
396
+ }
397
+ ],
398
+ presentationsTargets: [
399
+ { key: "kb.dashboard", version: "1.0.0", targets: ["react", "markdown"] },
400
+ { key: "kb.review.list", version: "1.0.0", targets: ["react", "markdown"] },
401
+ { key: "kb.review.form", version: "1.0.0", targets: ["react"] }
402
+ ],
403
+ capabilities: {
404
+ requires: [
405
+ { key: "identity", version: "1.0.0" },
406
+ { key: "notifications", version: "1.0.0" },
407
+ { key: "audit-trail", version: "1.0.0" }
408
+ ]
409
+ },
410
+ knowledge: [{ key: "kb.knowledge.rules", version: "1.0.0" }],
411
+ telemetry: [{ key: "kb-pipeline.telemetry", version: "1.0.0" }],
412
+ jobs: [{ key: "kb-pipeline.job.watch", version: "1.0.0" }],
413
+ docs: [
414
+ "docs.examples.kb-update-pipeline.goal",
415
+ "docs.examples.kb-update-pipeline.reference"
416
+ ]
417
+ });
418
+
353
419
  // src/operations/pipeline.ts
354
420
  import { defineCommand } from "@contractspec/lib.contracts-spec";
355
- import { ScalarTypeEnum as ScalarTypeEnum3, defineSchemaModel as defineSchemaModel3 } from "@contractspec/lib.schema";
421
+ import { defineSchemaModel as defineSchemaModel3, ScalarTypeEnum as ScalarTypeEnum3 } from "@contractspec/lib.schema";
356
422
  var RunWatchInput = defineSchemaModel3({
357
423
  name: "KbPipelineRunWatchInput",
358
424
  description: "Trigger a watch cycle for KB sources (demo).",
@@ -493,72 +559,6 @@ var KbPipelinePublishIfReadyContract = defineCommand({
493
559
  },
494
560
  policy: { auth: "user" }
495
561
  });
496
- // src/kb-update-pipeline.feature.ts
497
- import { defineFeature } from "@contractspec/lib.contracts-spec";
498
- var KbUpdatePipelineFeature = defineFeature({
499
- meta: {
500
- key: "kb-update-pipeline",
501
- version: "1.0.0",
502
- title: "KB Update Pipeline (HITL)",
503
- description: "Automation proposes KB patches; humans verify; publishing is blocked until approvals are complete.",
504
- domain: "knowledge",
505
- owners: ["@examples"],
506
- tags: ["knowledge", "pipeline", "hitl", "audit", "notifications"],
507
- stability: "experimental"
508
- },
509
- operations: [
510
- { key: "kbPipeline.runWatch", version: "1.0.0" },
511
- { key: "kbPipeline.createReviewTask", version: "1.0.0" },
512
- { key: "kbPipeline.submitDecision", version: "1.0.0" },
513
- { key: "kbPipeline.publishIfReady", version: "1.0.0" }
514
- ],
515
- events: [
516
- { key: "kb.change.detected", version: "1.0.0" },
517
- { key: "kb.change.summarized", version: "1.0.0" },
518
- { key: "kb.patch.proposed", version: "1.0.0" },
519
- { key: "kb.review.requested", version: "1.0.0" },
520
- { key: "kb.review.decided", version: "1.0.0" }
521
- ],
522
- presentations: [
523
- { key: "kb.dashboard", version: "1.0.0" },
524
- { key: "kb.review.list", version: "1.0.0" },
525
- { key: "kb.review.form", version: "1.0.0" }
526
- ],
527
- opToPresentation: [
528
- {
529
- op: { key: "kbPipeline.runWatch", version: "1.0.0" },
530
- pres: { key: "kb.dashboard", version: "1.0.0" }
531
- },
532
- {
533
- op: { key: "kbPipeline.createReviewTask", version: "1.0.0" },
534
- pres: { key: "kb.review.list", version: "1.0.0" }
535
- },
536
- {
537
- op: { key: "kbPipeline.submitDecision", version: "1.0.0" },
538
- pres: { key: "kb.review.form", version: "1.0.0" }
539
- }
540
- ],
541
- presentationsTargets: [
542
- { key: "kb.dashboard", version: "1.0.0", targets: ["react", "markdown"] },
543
- { key: "kb.review.list", version: "1.0.0", targets: ["react", "markdown"] },
544
- { key: "kb.review.form", version: "1.0.0", targets: ["react"] }
545
- ],
546
- capabilities: {
547
- requires: [
548
- { key: "identity", version: "1.0.0" },
549
- { key: "notifications", version: "1.0.0" },
550
- { key: "audit-trail", version: "1.0.0" }
551
- ]
552
- },
553
- knowledge: [{ key: "kb.knowledge.rules", version: "1.0.0" }],
554
- telemetry: [{ key: "kb-pipeline.telemetry", version: "1.0.0" }],
555
- jobs: [{ key: "kb-pipeline.job.watch", version: "1.0.0" }],
556
- docs: [
557
- "docs.examples.kb-update-pipeline.goal",
558
- "docs.examples.kb-update-pipeline.reference"
559
- ]
560
- });
561
-
562
562
  // src/presentations.ts
563
563
  import {
564
564
  definePresentation,
@@ -1,8 +1,8 @@
1
1
  // src/entities/models.ts
2
2
  import {
3
- ScalarTypeEnum,
4
3
  defineEnum,
5
- defineSchemaModel
4
+ defineSchemaModel,
5
+ ScalarTypeEnum
6
6
  } from "@contractspec/lib.schema";
7
7
  var ChangeRiskLevelEnum = defineEnum("ChangeRiskLevel", [
8
8
  "low",
@@ -50,7 +50,7 @@ var ReviewTaskModel = defineSchemaModel({
50
50
 
51
51
  // src/operations/pipeline.ts
52
52
  import { defineCommand } from "@contractspec/lib.contracts-spec";
53
- import { ScalarTypeEnum as ScalarTypeEnum2, defineSchemaModel as defineSchemaModel2 } from "@contractspec/lib.schema";
53
+ import { defineSchemaModel as defineSchemaModel2, ScalarTypeEnum as ScalarTypeEnum2 } from "@contractspec/lib.schema";
54
54
  var RunWatchInput = defineSchemaModel2({
55
55
  name: "KbPipelineRunWatchInput",
56
56
  description: "Trigger a watch cycle for KB sources (demo).",
@@ -1,8 +1,8 @@
1
1
  // src/entities/models.ts
2
2
  import {
3
- ScalarTypeEnum,
4
3
  defineEnum,
5
- defineSchemaModel
4
+ defineSchemaModel,
5
+ ScalarTypeEnum
6
6
  } from "@contractspec/lib.schema";
7
7
  var ChangeRiskLevelEnum = defineEnum("ChangeRiskLevel", [
8
8
  "low",
@@ -50,7 +50,7 @@ var ReviewTaskModel = defineSchemaModel({
50
50
 
51
51
  // src/operations/pipeline.ts
52
52
  import { defineCommand } from "@contractspec/lib.contracts-spec";
53
- import { ScalarTypeEnum as ScalarTypeEnum2, defineSchemaModel as defineSchemaModel2 } from "@contractspec/lib.schema";
53
+ import { defineSchemaModel as defineSchemaModel2, ScalarTypeEnum as ScalarTypeEnum2 } from "@contractspec/lib.schema";
54
54
  var RunWatchInput = defineSchemaModel2({
55
55
  name: "KbPipelineRunWatchInput",
56
56
  description: "Trigger a watch cycle for KB sources (demo).",
@@ -1,8 +1,8 @@
1
1
  // src/entities/models.ts
2
2
  import {
3
- ScalarTypeEnum,
4
3
  defineEnum,
5
- defineSchemaModel
4
+ defineSchemaModel,
5
+ ScalarTypeEnum
6
6
  } from "@contractspec/lib.schema";
7
7
  var ChangeRiskLevelEnum = defineEnum("ChangeRiskLevel", [
8
8
  "low",
@@ -1,9 +1,9 @@
1
1
  // @bun
2
2
  // src/entities/models.ts
3
3
  import {
4
- ScalarTypeEnum,
5
4
  defineEnum,
6
- defineSchemaModel
5
+ defineSchemaModel,
6
+ ScalarTypeEnum
7
7
  } from "@contractspec/lib.schema";
8
8
  var ChangeRiskLevelEnum = defineEnum("ChangeRiskLevel", [
9
9
  "low",
@@ -51,7 +51,7 @@ var ReviewTaskModel = defineSchemaModel({
51
51
 
52
52
  // src/operations/pipeline.ts
53
53
  import { defineCommand } from "@contractspec/lib.contracts-spec";
54
- import { ScalarTypeEnum as ScalarTypeEnum2, defineSchemaModel as defineSchemaModel2 } from "@contractspec/lib.schema";
54
+ import { defineSchemaModel as defineSchemaModel2, ScalarTypeEnum as ScalarTypeEnum2 } from "@contractspec/lib.schema";
55
55
  var RunWatchInput = defineSchemaModel2({
56
56
  name: "KbPipelineRunWatchInput",
57
57
  description: "Trigger a watch cycle for KB sources (demo).",
@@ -1,9 +1,9 @@
1
1
  // @bun
2
2
  // src/entities/models.ts
3
3
  import {
4
- ScalarTypeEnum,
5
4
  defineEnum,
6
- defineSchemaModel
5
+ defineSchemaModel,
6
+ ScalarTypeEnum
7
7
  } from "@contractspec/lib.schema";
8
8
  var ChangeRiskLevelEnum = defineEnum("ChangeRiskLevel", [
9
9
  "low",
@@ -51,7 +51,7 @@ var ReviewTaskModel = defineSchemaModel({
51
51
 
52
52
  // src/operations/pipeline.ts
53
53
  import { defineCommand } from "@contractspec/lib.contracts-spec";
54
- import { ScalarTypeEnum as ScalarTypeEnum2, defineSchemaModel as defineSchemaModel2 } from "@contractspec/lib.schema";
54
+ import { defineSchemaModel as defineSchemaModel2, ScalarTypeEnum as ScalarTypeEnum2 } from "@contractspec/lib.schema";
55
55
  var RunWatchInput = defineSchemaModel2({
56
56
  name: "KbPipelineRunWatchInput",
57
57
  description: "Trigger a watch cycle for KB sources (demo).",
@@ -1,9 +1,9 @@
1
1
  // @bun
2
2
  // src/entities/models.ts
3
3
  import {
4
- ScalarTypeEnum,
5
4
  defineEnum,
6
- defineSchemaModel
5
+ defineSchemaModel,
6
+ ScalarTypeEnum
7
7
  } from "@contractspec/lib.schema";
8
8
  var ChangeRiskLevelEnum = defineEnum("ChangeRiskLevel", [
9
9
  "low",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contractspec/example.kb-update-pipeline",
3
- "version": "3.7.5",
3
+ "version": "3.7.7",
4
4
  "description": "Example: KB update automation pipeline with HITL review and auditability.",
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
@@ -113,20 +113,20 @@
113
113
  "dev": "contractspec-bun-build dev",
114
114
  "clean": "rimraf dist .turbo",
115
115
  "lint": "bun lint:fix",
116
- "lint:fix": "eslint src --fix",
117
- "lint:check": "eslint src",
116
+ "lint:fix": "biome check --write --unsafe --only=nursery/useSortedClasses . && biome check --write .",
117
+ "lint:check": "biome check .",
118
118
  "test": "bun test",
119
119
  "prebuild": "contractspec-bun-build prebuild",
120
120
  "typecheck": "tsc --noEmit"
121
121
  },
122
122
  "dependencies": {
123
- "@contractspec/lib.contracts-spec": "3.7.5",
124
- "@contractspec/lib.schema": "3.7.5"
123
+ "@contractspec/lib.contracts-spec": "4.0.0",
124
+ "@contractspec/lib.schema": "3.7.6"
125
125
  },
126
126
  "devDependencies": {
127
- "@contractspec/tool.typescript": "3.7.5",
127
+ "@contractspec/tool.typescript": "3.7.6",
128
128
  "typescript": "^5.9.3",
129
- "@contractspec/tool.bun": "3.7.5"
129
+ "@contractspec/tool.bun": "3.7.6"
130
130
  },
131
131
  "publishConfig": {
132
132
  "access": "public",
@@ -2,29 +2,29 @@ import type { DocBlock } from '@contractspec/lib.contracts-spec/docs';
2
2
  import { registerDocBlocks } from '@contractspec/lib.contracts-spec/docs';
3
3
 
4
4
  const docBlocks: DocBlock[] = [
5
- {
6
- id: 'docs.examples.kb-update-pipeline.goal',
7
- title: 'KB Update Pipeline — Goal',
8
- summary:
9
- 'Automation proposes KB patches; humans verify; publishing is blocked until approvals are complete.',
10
- kind: 'goal',
11
- visibility: 'public',
12
- route: '/docs/examples/kb-update-pipeline/goal',
13
- tags: ['knowledge', 'pipeline', 'hitl', 'audit'],
14
- body: `## Why it matters
5
+ {
6
+ id: 'docs.examples.kb-update-pipeline.goal',
7
+ title: 'KB Update Pipeline — Goal',
8
+ summary:
9
+ 'Automation proposes KB patches; humans verify; publishing is blocked until approvals are complete.',
10
+ kind: 'goal',
11
+ visibility: 'public',
12
+ route: '/docs/examples/kb-update-pipeline/goal',
13
+ tags: ['knowledge', 'pipeline', 'hitl', 'audit'],
14
+ body: `## Why it matters
15
15
  - Keeps humans as the verifiers (HITL) while automation does the busywork.\n- Produces an auditable chain: source change -> diff -> proposal -> review -> publish.\n\n## Guardrails\n- High-risk changes require expert approval.\n- Publishing fails if any included rule versions are not approved.\n- Review requests emit notifications/events.`,
16
- },
17
- {
18
- id: 'docs.examples.kb-update-pipeline.reference',
19
- title: 'KB Update Pipeline — Reference',
20
- summary:
21
- 'Entities, contracts, and events for the KB update pipeline example.',
22
- kind: 'reference',
23
- visibility: 'public',
24
- route: '/docs/examples/kb-update-pipeline',
25
- tags: ['knowledge', 'reference'],
26
- body: `## Contracts\n- kbPipeline.runWatch\n- kbPipeline.createReviewTask\n- kbPipeline.submitDecision\n- kbPipeline.publishIfReady\n\n## Events\n- kb.change.detected\n- kb.change.summarized\n- kb.patch.proposed\n- kb.review.requested\n- kb.review.decided`,
27
- },
16
+ },
17
+ {
18
+ id: 'docs.examples.kb-update-pipeline.reference',
19
+ title: 'KB Update Pipeline — Reference',
20
+ summary:
21
+ 'Entities, contracts, and events for the KB update pipeline example.',
22
+ kind: 'reference',
23
+ visibility: 'public',
24
+ route: '/docs/examples/kb-update-pipeline',
25
+ tags: ['knowledge', 'reference'],
26
+ body: `## Contracts\n- kbPipeline.runWatch\n- kbPipeline.createReviewTask\n- kbPipeline.submitDecision\n- kbPipeline.publishIfReady\n\n## Events\n- kb.change.detected\n- kb.change.summarized\n- kb.patch.proposed\n- kb.review.requested\n- kb.review.decided`,
27
+ },
28
28
  ];
29
29
 
30
30
  registerDocBlocks(docBlocks);
@@ -1,53 +1,53 @@
1
1
  import {
2
- ScalarTypeEnum,
3
- defineEnum,
4
- defineSchemaModel,
2
+ defineEnum,
3
+ defineSchemaModel,
4
+ ScalarTypeEnum,
5
5
  } from '@contractspec/lib.schema';
6
6
 
7
7
  export const ChangeRiskLevelEnum = defineEnum('ChangeRiskLevel', [
8
- 'low',
9
- 'medium',
10
- 'high',
8
+ 'low',
9
+ 'medium',
10
+ 'high',
11
11
  ]);
12
12
 
13
13
  export const ReviewAssignedRoleEnum = defineEnum('ReviewAssignedRole', [
14
- 'curator',
15
- 'expert',
14
+ 'curator',
15
+ 'expert',
16
16
  ]);
17
17
 
18
18
  export const ReviewDecisionEnum = defineEnum('ReviewDecision', [
19
- 'approve',
20
- 'reject',
19
+ 'approve',
20
+ 'reject',
21
21
  ]);
22
22
 
23
23
  export const ChangeCandidateModel = defineSchemaModel({
24
- name: 'ChangeCandidate',
25
- description: 'Candidate change detected in a source document.',
26
- fields: {
27
- id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
28
- sourceDocumentId: {
29
- type: ScalarTypeEnum.String_unsecure(),
30
- isOptional: false,
31
- },
32
- detectedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },
33
- diffSummary: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
34
- riskLevel: { type: ChangeRiskLevelEnum, isOptional: false },
35
- },
24
+ name: 'ChangeCandidate',
25
+ description: 'Candidate change detected in a source document.',
26
+ fields: {
27
+ id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
28
+ sourceDocumentId: {
29
+ type: ScalarTypeEnum.String_unsecure(),
30
+ isOptional: false,
31
+ },
32
+ detectedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },
33
+ diffSummary: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
34
+ riskLevel: { type: ChangeRiskLevelEnum, isOptional: false },
35
+ },
36
36
  });
37
37
 
38
38
  export const ReviewTaskModel = defineSchemaModel({
39
- name: 'ReviewTask',
40
- description: 'Human verification task for a change candidate.',
41
- fields: {
42
- id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
43
- changeCandidateId: {
44
- type: ScalarTypeEnum.String_unsecure(),
45
- isOptional: false,
46
- },
47
- status: { type: ScalarTypeEnum.String_unsecure(), isOptional: false }, // open|decided
48
- assignedRole: { type: ReviewAssignedRoleEnum, isOptional: false },
49
- decision: { type: ReviewDecisionEnum, isOptional: true },
50
- decidedAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },
51
- decidedBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
52
- },
39
+ name: 'ReviewTask',
40
+ description: 'Human verification task for a change candidate.',
41
+ fields: {
42
+ id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
43
+ changeCandidateId: {
44
+ type: ScalarTypeEnum.String_unsecure(),
45
+ isOptional: false,
46
+ },
47
+ status: { type: ScalarTypeEnum.String_unsecure(), isOptional: false }, // open|decided
48
+ assignedRole: { type: ReviewAssignedRoleEnum, isOptional: false },
49
+ decision: { type: ReviewDecisionEnum, isOptional: true },
50
+ decidedAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },
51
+ decidedBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
52
+ },
53
53
  });