@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.
- package/.turbo/turbo-build.log +3 -3
- package/AGENTS.md +50 -29
- package/CHANGELOG.md +9 -0
- package/README.md +59 -12
- package/dist/browser/entities/index.js +2 -2
- package/dist/browser/entities/models.js +2 -2
- package/dist/browser/events.js +1 -1
- package/dist/browser/index.js +70 -70
- package/dist/browser/operations/index.js +3 -3
- package/dist/browser/operations/pipeline.js +3 -3
- package/dist/browser/presentations.js +2 -2
- package/dist/entities/index.js +2 -2
- package/dist/entities/models.js +2 -2
- package/dist/events.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +70 -70
- package/dist/node/entities/index.js +2 -2
- package/dist/node/entities/models.js +2 -2
- package/dist/node/events.js +1 -1
- package/dist/node/index.js +70 -70
- package/dist/node/operations/index.js +3 -3
- package/dist/node/operations/pipeline.js +3 -3
- package/dist/node/presentations.js +2 -2
- package/dist/operations/index.js +3 -3
- package/dist/operations/pipeline.js +3 -3
- package/dist/presentations.js +2 -2
- package/package.json +7 -7
- package/src/docs/kb-update-pipeline.docblock.ts +22 -22
- package/src/entities/models.ts +36 -36
- package/src/events.ts +99 -99
- package/src/example.ts +28 -28
- package/src/handlers/memory.handlers.test.ts +64 -64
- package/src/handlers/memory.handlers.ts +158 -158
- package/src/index.ts +2 -2
- package/src/kb-update-pipeline.feature.ts +62 -62
- package/src/operations/pipeline.ts +125 -125
- package/src/presentations.ts +59 -59
- package/src/tests/operations.test-spec.ts +72 -72
- package/tsconfig.json +7 -17
- 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 {
|
|
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 {
|
|
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,
|
package/dist/node/events.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// src/events.ts
|
|
2
2
|
import { defineEvent, StabilityEnum } from "@contractspec/lib.contracts-spec";
|
|
3
|
-
import {
|
|
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.",
|
package/dist/node/index.js
CHANGED
|
@@ -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 {
|
|
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 {
|
|
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 {
|
|
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 {
|
|
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).",
|
package/dist/operations/index.js
CHANGED
|
@@ -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 {
|
|
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 {
|
|
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).",
|
package/dist/presentations.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contractspec/example.kb-update-pipeline",
|
|
3
|
-
"version": "3.7.
|
|
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": "
|
|
117
|
-
"lint:check": "
|
|
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": "
|
|
124
|
-
"@contractspec/lib.schema": "3.7.
|
|
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.
|
|
127
|
+
"@contractspec/tool.typescript": "3.7.6",
|
|
128
128
|
"typescript": "^5.9.3",
|
|
129
|
-
"@contractspec/tool.bun": "3.7.
|
|
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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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);
|
package/src/entities/models.ts
CHANGED
|
@@ -1,53 +1,53 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
defineEnum,
|
|
3
|
+
defineSchemaModel,
|
|
4
|
+
ScalarTypeEnum,
|
|
5
5
|
} from '@contractspec/lib.schema';
|
|
6
6
|
|
|
7
7
|
export const ChangeRiskLevelEnum = defineEnum('ChangeRiskLevel', [
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
'low',
|
|
9
|
+
'medium',
|
|
10
|
+
'high',
|
|
11
11
|
]);
|
|
12
12
|
|
|
13
13
|
export const ReviewAssignedRoleEnum = defineEnum('ReviewAssignedRole', [
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
'curator',
|
|
15
|
+
'expert',
|
|
16
16
|
]);
|
|
17
17
|
|
|
18
18
|
export const ReviewDecisionEnum = defineEnum('ReviewDecision', [
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
'approve',
|
|
20
|
+
'reject',
|
|
21
21
|
]);
|
|
22
22
|
|
|
23
23
|
export const ChangeCandidateModel = defineSchemaModel({
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
});
|