sysprom 1.20.0 → 1.21.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.
Files changed (74) hide show
  1. package/dist/schema.json +4 -44
  2. package/dist/src/cli/commands/add.js +6 -2
  3. package/dist/src/cli/commands/query.js +5 -3
  4. package/dist/src/cli/commands/speckit.js +2 -2
  5. package/dist/src/cli/commands/update.js +6 -4
  6. package/dist/src/endpoint-types.d.ts +4 -0
  7. package/dist/src/endpoint-types.js +22 -121
  8. package/dist/src/json-to-md.js +2 -16
  9. package/dist/src/lifecycle-state.d.ts +9 -0
  10. package/dist/src/lifecycle-state.js +22 -0
  11. package/dist/src/mcp/server.js +3 -6
  12. package/dist/src/md-to-json.js +1 -19
  13. package/dist/src/operations/add-node.d.ts +21 -135
  14. package/dist/src/operations/add-plan-task.d.ts +14 -90
  15. package/dist/src/operations/add-relationship.d.ts +16 -105
  16. package/dist/src/operations/check.d.ts +7 -45
  17. package/dist/src/operations/graph-decision.d.ts +7 -45
  18. package/dist/src/operations/graph-decision.js +0 -1
  19. package/dist/src/operations/graph-dependency.d.ts +7 -45
  20. package/dist/src/operations/graph-dependency.js +3 -23
  21. package/dist/src/operations/graph-refinement.d.ts +7 -45
  22. package/dist/src/operations/graph-shared.js +1 -3
  23. package/dist/src/operations/graph.d.ts +7 -45
  24. package/dist/src/operations/infer-completeness.d.ts +10 -54
  25. package/dist/src/operations/infer-derived.d.ts +7 -45
  26. package/dist/src/operations/infer-derived.js +28 -4
  27. package/dist/src/operations/infer-impact.d.ts +49 -315
  28. package/dist/src/operations/infer-impact.js +22 -3
  29. package/dist/src/operations/infer-lifecycle.d.ts +8 -106
  30. package/dist/src/operations/infer-lifecycle.js +4 -10
  31. package/dist/src/operations/init-document.d.ts +7 -45
  32. package/dist/src/operations/json-to-markdown.d.ts +7 -45
  33. package/dist/src/operations/mark-task-done.d.ts +14 -90
  34. package/dist/src/operations/mark-task-undone.d.ts +14 -90
  35. package/dist/src/operations/markdown-to-json.d.ts +7 -45
  36. package/dist/src/operations/next-id.d.ts +8 -48
  37. package/dist/src/operations/node-history.d.ts +7 -45
  38. package/dist/src/operations/plan-add-task.d.ts +14 -90
  39. package/dist/src/operations/plan-gate.d.ts +7 -45
  40. package/dist/src/operations/plan-init.d.ts +7 -45
  41. package/dist/src/operations/plan-progress.d.ts +7 -45
  42. package/dist/src/operations/plan-status.d.ts +7 -45
  43. package/dist/src/operations/query-node.d.ts +29 -195
  44. package/dist/src/operations/query-nodes.d.ts +15 -91
  45. package/dist/src/operations/query-nodes.js +6 -4
  46. package/dist/src/operations/query-relationships.d.ts +9 -60
  47. package/dist/src/operations/remove-node.d.ts +21 -135
  48. package/dist/src/operations/remove-node.js +11 -1
  49. package/dist/src/operations/remove-relationship.d.ts +15 -104
  50. package/dist/src/operations/rename.d.ts +14 -90
  51. package/dist/src/operations/search.d.ts +14 -90
  52. package/dist/src/operations/speckit-diff.d.ts +7 -45
  53. package/dist/src/operations/speckit-export.d.ts +7 -45
  54. package/dist/src/operations/speckit-import.d.ts +7 -45
  55. package/dist/src/operations/speckit-sync.d.ts +22 -136
  56. package/dist/src/operations/speckit-sync.js +3 -3
  57. package/dist/src/operations/state-at.d.ts +7 -45
  58. package/dist/src/operations/stats.d.ts +7 -45
  59. package/dist/src/operations/sync.d.ts +21 -135
  60. package/dist/src/operations/task-list.d.ts +7 -45
  61. package/dist/src/operations/timeline.d.ts +7 -45
  62. package/dist/src/operations/trace-from-node.d.ts +21 -135
  63. package/dist/src/operations/update-metadata.d.ts +14 -90
  64. package/dist/src/operations/update-node.d.ts +20 -155
  65. package/dist/src/operations/update-plan-task.d.ts +14 -90
  66. package/dist/src/operations/validate.d.ts +7 -45
  67. package/dist/src/operations/validate.js +8 -6
  68. package/dist/src/schema.d.ts +22 -164
  69. package/dist/src/schema.js +4 -27
  70. package/dist/src/speckit/generate.js +10 -7
  71. package/dist/src/speckit/parse.js +6 -3
  72. package/dist/src/speckit/plan.js +1 -1
  73. package/package.json +13 -2
  74. package/schema.json +4 -44
@@ -39,39 +39,18 @@ export declare const updatePlanTaskOp: import("./define-operation.js").DefinedOp
39
39
  gate: "gate";
40
40
  mode: "mode";
41
41
  artefact: "artefact";
42
- artefact_flow: "artefact_flow";
43
42
  decision: "decision";
44
43
  change: "change";
45
44
  view: "view";
46
45
  milestone: "milestone";
47
- version: "version";
48
46
  }> & {
49
- is(value: unknown): value is "intent" | "concept" | "capability" | "element" | "realisation" | "invariant" | "principle" | "policy" | "protocol" | "stage" | "role" | "gate" | "mode" | "artefact" | "artefact_flow" | "decision" | "change" | "view" | "milestone" | "version";
47
+ is(value: unknown): value is "intent" | "concept" | "capability" | "element" | "realisation" | "invariant" | "principle" | "policy" | "protocol" | "stage" | "role" | "gate" | "mode" | "artefact" | "decision" | "change" | "view" | "milestone";
50
48
  };
51
49
  name: z.ZodString;
52
50
  description: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]> & {
53
51
  is(value: unknown): value is string | string[];
54
52
  }>;
55
- status: z.ZodOptional<z.ZodEnum<{
56
- deprecated: "deprecated";
57
- proposed: "proposed";
58
- accepted: "accepted";
59
- active: "active";
60
- implemented: "implemented";
61
- adopted: "adopted";
62
- defined: "defined";
63
- introduced: "introduced";
64
- in_progress: "in_progress";
65
- complete: "complete";
66
- consolidated: "consolidated";
67
- experimental: "experimental";
68
- retired: "retired";
69
- superseded: "superseded";
70
- abandoned: "abandoned";
71
- deferred: "deferred";
72
- }> & {
73
- is(value: unknown): value is "deprecated" | "proposed" | "accepted" | "active" | "implemented" | "adopted" | "defined" | "introduced" | "in_progress" | "complete" | "consolidated" | "experimental" | "retired" | "superseded" | "abandoned" | "deferred";
74
- }>;
53
+ status: z.ZodOptional<z.ZodNever>;
75
54
  lifecycle: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>>;
76
55
  context: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]> & {
77
56
  is(value: unknown): value is string | string[];
@@ -126,8 +105,6 @@ export declare const updatePlanTaskOp: import("./define-operation.js").DefinedOp
126
105
  }>>;
127
106
  propagation: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
128
107
  includes: z.ZodOptional<z.ZodArray<z.ZodString>>;
129
- input: z.ZodOptional<z.ZodString>;
130
- output: z.ZodOptional<z.ZodString>;
131
108
  external_references: z.ZodOptional<z.ZodArray<z.ZodObject<{
132
109
  role: z.ZodEnum<{
133
110
  output: "output";
@@ -171,27 +148,14 @@ export declare const updatePlanTaskOp: import("./define-operation.js").DefinedOp
171
148
  affects: "affects";
172
149
  supersedes: "supersedes";
173
150
  must_preserve: "must_preserve";
174
- performs: "performs";
175
151
  part_of: "part_of";
176
152
  precedes: "precedes";
177
153
  must_follow: "must_follow";
178
- blocks: "blocks";
179
- routes_to: "routes_to";
180
- orchestrates: "orchestrates";
181
154
  governed_by: "governed_by";
182
155
  modifies: "modifies";
183
- triggered_by: "triggered_by";
184
- applies_to: "applies_to";
185
156
  produces: "produces";
186
- consumes: "consumes";
187
- transforms_into: "transforms_into";
188
- selects: "selects";
189
- requires: "requires";
190
- disables: "disables";
191
- influence: "influence";
192
- justifies: "justifies";
193
157
  }> & {
194
- is(value: unknown): value is "refines" | "realises" | "implements" | "depends_on" | "constrained_by" | "affects" | "supersedes" | "must_preserve" | "performs" | "part_of" | "precedes" | "must_follow" | "blocks" | "routes_to" | "orchestrates" | "governed_by" | "modifies" | "triggered_by" | "applies_to" | "produces" | "consumes" | "transforms_into" | "selects" | "requires" | "disables" | "influence" | "justifies";
158
+ is(value: unknown): value is "refines" | "realises" | "implements" | "depends_on" | "constrained_by" | "affects" | "supersedes" | "must_preserve" | "part_of" | "precedes" | "must_follow" | "governed_by" | "modifies" | "produces";
195
159
  };
196
160
  description: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]> & {
197
161
  is(value: unknown): value is string | string[];
@@ -210,7 +174,7 @@ export declare const updatePlanTaskOp: import("./define-operation.js").DefinedOp
210
174
  [x: string]: unknown;
211
175
  from: string;
212
176
  to: string;
213
- type: "refines" | "realises" | "implements" | "depends_on" | "constrained_by" | "affects" | "supersedes" | "must_preserve" | "performs" | "part_of" | "precedes" | "must_follow" | "blocks" | "routes_to" | "orchestrates" | "governed_by" | "modifies" | "triggered_by" | "applies_to" | "produces" | "consumes" | "transforms_into" | "selects" | "requires" | "disables" | "influence" | "justifies";
177
+ type: "refines" | "realises" | "implements" | "depends_on" | "constrained_by" | "affects" | "supersedes" | "must_preserve" | "part_of" | "precedes" | "must_follow" | "governed_by" | "modifies" | "produces";
214
178
  description?: string | string[] | undefined;
215
179
  polarity?: "positive" | "negative" | "neutral" | "uncertain" | undefined;
216
180
  strength?: number | undefined;
@@ -250,10 +214,10 @@ export declare const updatePlanTaskOp: import("./define-operation.js").DefinedOp
250
214
  nodes: {
251
215
  [x: string]: unknown;
252
216
  id: string;
253
- type: "intent" | "concept" | "capability" | "element" | "realisation" | "invariant" | "principle" | "policy" | "protocol" | "stage" | "role" | "gate" | "mode" | "artefact" | "artefact_flow" | "decision" | "change" | "view" | "milestone" | "version";
217
+ type: "intent" | "concept" | "capability" | "element" | "realisation" | "invariant" | "principle" | "policy" | "protocol" | "stage" | "role" | "gate" | "mode" | "artefact" | "decision" | "change" | "view" | "milestone";
254
218
  name: string;
255
219
  description?: string | string[] | undefined;
256
- status?: "deprecated" | "proposed" | "accepted" | "active" | "implemented" | "adopted" | "defined" | "introduced" | "in_progress" | "complete" | "consolidated" | "experimental" | "retired" | "superseded" | "abandoned" | "deferred" | undefined;
220
+ status?: undefined;
257
221
  lifecycle?: Record<string, string | boolean> | undefined;
258
222
  context?: string | string[] | undefined;
259
223
  options?: {
@@ -277,8 +241,6 @@ export declare const updatePlanTaskOp: import("./define-operation.js").DefinedOp
277
241
  }[] | undefined;
278
242
  propagation?: Record<string, boolean> | undefined;
279
243
  includes?: string[] | undefined;
280
- input?: string | undefined;
281
- output?: string | undefined;
282
244
  external_references?: {
283
245
  role: "output" | "input" | "context" | "evidence" | "source" | "standard" | "prior_art";
284
246
  identifier: string;
@@ -301,7 +263,7 @@ export declare const updatePlanTaskOp: import("./define-operation.js").DefinedOp
301
263
  [x: string]: unknown;
302
264
  from: string;
303
265
  to: string;
304
- type: "refines" | "realises" | "implements" | "depends_on" | "constrained_by" | "affects" | "supersedes" | "must_preserve" | "performs" | "part_of" | "precedes" | "must_follow" | "blocks" | "routes_to" | "orchestrates" | "governed_by" | "modifies" | "triggered_by" | "applies_to" | "produces" | "consumes" | "transforms_into" | "selects" | "requires" | "disables" | "influence" | "justifies";
266
+ type: "refines" | "realises" | "implements" | "depends_on" | "constrained_by" | "affects" | "supersedes" | "must_preserve" | "part_of" | "precedes" | "must_follow" | "governed_by" | "modifies" | "produces";
305
267
  description?: string | string[] | undefined;
306
268
  polarity?: "positive" | "negative" | "neutral" | "uncertain" | undefined;
307
269
  strength?: number | undefined;
@@ -353,39 +315,18 @@ export declare const updatePlanTaskOp: import("./define-operation.js").DefinedOp
353
315
  gate: "gate";
354
316
  mode: "mode";
355
317
  artefact: "artefact";
356
- artefact_flow: "artefact_flow";
357
318
  decision: "decision";
358
319
  change: "change";
359
320
  view: "view";
360
321
  milestone: "milestone";
361
- version: "version";
362
322
  }> & {
363
- is(value: unknown): value is "intent" | "concept" | "capability" | "element" | "realisation" | "invariant" | "principle" | "policy" | "protocol" | "stage" | "role" | "gate" | "mode" | "artefact" | "artefact_flow" | "decision" | "change" | "view" | "milestone" | "version";
323
+ is(value: unknown): value is "intent" | "concept" | "capability" | "element" | "realisation" | "invariant" | "principle" | "policy" | "protocol" | "stage" | "role" | "gate" | "mode" | "artefact" | "decision" | "change" | "view" | "milestone";
364
324
  };
365
325
  name: z.ZodString;
366
326
  description: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]> & {
367
327
  is(value: unknown): value is string | string[];
368
328
  }>;
369
- status: z.ZodOptional<z.ZodEnum<{
370
- deprecated: "deprecated";
371
- proposed: "proposed";
372
- accepted: "accepted";
373
- active: "active";
374
- implemented: "implemented";
375
- adopted: "adopted";
376
- defined: "defined";
377
- introduced: "introduced";
378
- in_progress: "in_progress";
379
- complete: "complete";
380
- consolidated: "consolidated";
381
- experimental: "experimental";
382
- retired: "retired";
383
- superseded: "superseded";
384
- abandoned: "abandoned";
385
- deferred: "deferred";
386
- }> & {
387
- is(value: unknown): value is "deprecated" | "proposed" | "accepted" | "active" | "implemented" | "adopted" | "defined" | "introduced" | "in_progress" | "complete" | "consolidated" | "experimental" | "retired" | "superseded" | "abandoned" | "deferred";
388
- }>;
329
+ status: z.ZodOptional<z.ZodNever>;
389
330
  lifecycle: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>>;
390
331
  context: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]> & {
391
332
  is(value: unknown): value is string | string[];
@@ -440,8 +381,6 @@ export declare const updatePlanTaskOp: import("./define-operation.js").DefinedOp
440
381
  }>>;
441
382
  propagation: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
442
383
  includes: z.ZodOptional<z.ZodArray<z.ZodString>>;
443
- input: z.ZodOptional<z.ZodString>;
444
- output: z.ZodOptional<z.ZodString>;
445
384
  external_references: z.ZodOptional<z.ZodArray<z.ZodObject<{
446
385
  role: z.ZodEnum<{
447
386
  output: "output";
@@ -485,27 +424,14 @@ export declare const updatePlanTaskOp: import("./define-operation.js").DefinedOp
485
424
  affects: "affects";
486
425
  supersedes: "supersedes";
487
426
  must_preserve: "must_preserve";
488
- performs: "performs";
489
427
  part_of: "part_of";
490
428
  precedes: "precedes";
491
429
  must_follow: "must_follow";
492
- blocks: "blocks";
493
- routes_to: "routes_to";
494
- orchestrates: "orchestrates";
495
430
  governed_by: "governed_by";
496
431
  modifies: "modifies";
497
- triggered_by: "triggered_by";
498
- applies_to: "applies_to";
499
432
  produces: "produces";
500
- consumes: "consumes";
501
- transforms_into: "transforms_into";
502
- selects: "selects";
503
- requires: "requires";
504
- disables: "disables";
505
- influence: "influence";
506
- justifies: "justifies";
507
433
  }> & {
508
- is(value: unknown): value is "refines" | "realises" | "implements" | "depends_on" | "constrained_by" | "affects" | "supersedes" | "must_preserve" | "performs" | "part_of" | "precedes" | "must_follow" | "blocks" | "routes_to" | "orchestrates" | "governed_by" | "modifies" | "triggered_by" | "applies_to" | "produces" | "consumes" | "transforms_into" | "selects" | "requires" | "disables" | "influence" | "justifies";
434
+ is(value: unknown): value is "refines" | "realises" | "implements" | "depends_on" | "constrained_by" | "affects" | "supersedes" | "must_preserve" | "part_of" | "precedes" | "must_follow" | "governed_by" | "modifies" | "produces";
509
435
  };
510
436
  description: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]> & {
511
437
  is(value: unknown): value is string | string[];
@@ -524,7 +450,7 @@ export declare const updatePlanTaskOp: import("./define-operation.js").DefinedOp
524
450
  [x: string]: unknown;
525
451
  from: string;
526
452
  to: string;
527
- type: "refines" | "realises" | "implements" | "depends_on" | "constrained_by" | "affects" | "supersedes" | "must_preserve" | "performs" | "part_of" | "precedes" | "must_follow" | "blocks" | "routes_to" | "orchestrates" | "governed_by" | "modifies" | "triggered_by" | "applies_to" | "produces" | "consumes" | "transforms_into" | "selects" | "requires" | "disables" | "influence" | "justifies";
453
+ type: "refines" | "realises" | "implements" | "depends_on" | "constrained_by" | "affects" | "supersedes" | "must_preserve" | "part_of" | "precedes" | "must_follow" | "governed_by" | "modifies" | "produces";
528
454
  description?: string | string[] | undefined;
529
455
  polarity?: "positive" | "negative" | "neutral" | "uncertain" | undefined;
530
456
  strength?: number | undefined;
@@ -564,10 +490,10 @@ export declare const updatePlanTaskOp: import("./define-operation.js").DefinedOp
564
490
  nodes: {
565
491
  [x: string]: unknown;
566
492
  id: string;
567
- type: "intent" | "concept" | "capability" | "element" | "realisation" | "invariant" | "principle" | "policy" | "protocol" | "stage" | "role" | "gate" | "mode" | "artefact" | "artefact_flow" | "decision" | "change" | "view" | "milestone" | "version";
493
+ type: "intent" | "concept" | "capability" | "element" | "realisation" | "invariant" | "principle" | "policy" | "protocol" | "stage" | "role" | "gate" | "mode" | "artefact" | "decision" | "change" | "view" | "milestone";
568
494
  name: string;
569
495
  description?: string | string[] | undefined;
570
- status?: "deprecated" | "proposed" | "accepted" | "active" | "implemented" | "adopted" | "defined" | "introduced" | "in_progress" | "complete" | "consolidated" | "experimental" | "retired" | "superseded" | "abandoned" | "deferred" | undefined;
496
+ status?: undefined;
571
497
  lifecycle?: Record<string, string | boolean> | undefined;
572
498
  context?: string | string[] | undefined;
573
499
  options?: {
@@ -591,8 +517,6 @@ export declare const updatePlanTaskOp: import("./define-operation.js").DefinedOp
591
517
  }[] | undefined;
592
518
  propagation?: Record<string, boolean> | undefined;
593
519
  includes?: string[] | undefined;
594
- input?: string | undefined;
595
- output?: string | undefined;
596
520
  external_references?: {
597
521
  role: "output" | "input" | "context" | "evidence" | "source" | "standard" | "prior_art";
598
522
  identifier: string;
@@ -615,7 +539,7 @@ export declare const updatePlanTaskOp: import("./define-operation.js").DefinedOp
615
539
  [x: string]: unknown;
616
540
  from: string;
617
541
  to: string;
618
- type: "refines" | "realises" | "implements" | "depends_on" | "constrained_by" | "affects" | "supersedes" | "must_preserve" | "performs" | "part_of" | "precedes" | "must_follow" | "blocks" | "routes_to" | "orchestrates" | "governed_by" | "modifies" | "triggered_by" | "applies_to" | "produces" | "consumes" | "transforms_into" | "selects" | "requires" | "disables" | "influence" | "justifies";
542
+ type: "refines" | "realises" | "implements" | "depends_on" | "constrained_by" | "affects" | "supersedes" | "must_preserve" | "part_of" | "precedes" | "must_follow" | "governed_by" | "modifies" | "produces";
619
543
  description?: string | string[] | undefined;
620
544
  polarity?: "positive" | "negative" | "neutral" | "uncertain" | undefined;
621
545
  strength?: number | undefined;
@@ -52,39 +52,18 @@ export declare const validateOp: import("./define-operation.js").DefinedOperatio
52
52
  gate: "gate";
53
53
  mode: "mode";
54
54
  artefact: "artefact";
55
- artefact_flow: "artefact_flow";
56
55
  decision: "decision";
57
56
  change: "change";
58
57
  view: "view";
59
58
  milestone: "milestone";
60
- version: "version";
61
59
  }> & {
62
- is(value: unknown): value is "intent" | "concept" | "capability" | "element" | "realisation" | "invariant" | "principle" | "policy" | "protocol" | "stage" | "role" | "gate" | "mode" | "artefact" | "artefact_flow" | "decision" | "change" | "view" | "milestone" | "version";
60
+ is(value: unknown): value is "intent" | "concept" | "capability" | "element" | "realisation" | "invariant" | "principle" | "policy" | "protocol" | "stage" | "role" | "gate" | "mode" | "artefact" | "decision" | "change" | "view" | "milestone";
63
61
  };
64
62
  name: z.ZodString;
65
63
  description: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]> & {
66
64
  is(value: unknown): value is string | string[];
67
65
  }>;
68
- status: z.ZodOptional<z.ZodEnum<{
69
- deprecated: "deprecated";
70
- proposed: "proposed";
71
- accepted: "accepted";
72
- active: "active";
73
- implemented: "implemented";
74
- adopted: "adopted";
75
- defined: "defined";
76
- introduced: "introduced";
77
- in_progress: "in_progress";
78
- complete: "complete";
79
- consolidated: "consolidated";
80
- experimental: "experimental";
81
- retired: "retired";
82
- superseded: "superseded";
83
- abandoned: "abandoned";
84
- deferred: "deferred";
85
- }> & {
86
- is(value: unknown): value is "deprecated" | "proposed" | "accepted" | "active" | "implemented" | "adopted" | "defined" | "introduced" | "in_progress" | "complete" | "consolidated" | "experimental" | "retired" | "superseded" | "abandoned" | "deferred";
87
- }>;
66
+ status: z.ZodOptional<z.ZodNever>;
88
67
  lifecycle: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>>;
89
68
  context: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]> & {
90
69
  is(value: unknown): value is string | string[];
@@ -139,8 +118,6 @@ export declare const validateOp: import("./define-operation.js").DefinedOperatio
139
118
  }>>;
140
119
  propagation: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
141
120
  includes: z.ZodOptional<z.ZodArray<z.ZodString>>;
142
- input: z.ZodOptional<z.ZodString>;
143
- output: z.ZodOptional<z.ZodString>;
144
121
  external_references: z.ZodOptional<z.ZodArray<z.ZodObject<{
145
122
  role: z.ZodEnum<{
146
123
  output: "output";
@@ -184,27 +161,14 @@ export declare const validateOp: import("./define-operation.js").DefinedOperatio
184
161
  affects: "affects";
185
162
  supersedes: "supersedes";
186
163
  must_preserve: "must_preserve";
187
- performs: "performs";
188
164
  part_of: "part_of";
189
165
  precedes: "precedes";
190
166
  must_follow: "must_follow";
191
- blocks: "blocks";
192
- routes_to: "routes_to";
193
- orchestrates: "orchestrates";
194
167
  governed_by: "governed_by";
195
168
  modifies: "modifies";
196
- triggered_by: "triggered_by";
197
- applies_to: "applies_to";
198
169
  produces: "produces";
199
- consumes: "consumes";
200
- transforms_into: "transforms_into";
201
- selects: "selects";
202
- requires: "requires";
203
- disables: "disables";
204
- influence: "influence";
205
- justifies: "justifies";
206
170
  }> & {
207
- is(value: unknown): value is "refines" | "realises" | "implements" | "depends_on" | "constrained_by" | "affects" | "supersedes" | "must_preserve" | "performs" | "part_of" | "precedes" | "must_follow" | "blocks" | "routes_to" | "orchestrates" | "governed_by" | "modifies" | "triggered_by" | "applies_to" | "produces" | "consumes" | "transforms_into" | "selects" | "requires" | "disables" | "influence" | "justifies";
171
+ is(value: unknown): value is "refines" | "realises" | "implements" | "depends_on" | "constrained_by" | "affects" | "supersedes" | "must_preserve" | "part_of" | "precedes" | "must_follow" | "governed_by" | "modifies" | "produces";
208
172
  };
209
173
  description: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]> & {
210
174
  is(value: unknown): value is string | string[];
@@ -223,7 +187,7 @@ export declare const validateOp: import("./define-operation.js").DefinedOperatio
223
187
  [x: string]: unknown;
224
188
  from: string;
225
189
  to: string;
226
- type: "refines" | "realises" | "implements" | "depends_on" | "constrained_by" | "affects" | "supersedes" | "must_preserve" | "performs" | "part_of" | "precedes" | "must_follow" | "blocks" | "routes_to" | "orchestrates" | "governed_by" | "modifies" | "triggered_by" | "applies_to" | "produces" | "consumes" | "transforms_into" | "selects" | "requires" | "disables" | "influence" | "justifies";
190
+ type: "refines" | "realises" | "implements" | "depends_on" | "constrained_by" | "affects" | "supersedes" | "must_preserve" | "part_of" | "precedes" | "must_follow" | "governed_by" | "modifies" | "produces";
227
191
  description?: string | string[] | undefined;
228
192
  polarity?: "positive" | "negative" | "neutral" | "uncertain" | undefined;
229
193
  strength?: number | undefined;
@@ -263,10 +227,10 @@ export declare const validateOp: import("./define-operation.js").DefinedOperatio
263
227
  nodes: {
264
228
  [x: string]: unknown;
265
229
  id: string;
266
- type: "intent" | "concept" | "capability" | "element" | "realisation" | "invariant" | "principle" | "policy" | "protocol" | "stage" | "role" | "gate" | "mode" | "artefact" | "artefact_flow" | "decision" | "change" | "view" | "milestone" | "version";
230
+ type: "intent" | "concept" | "capability" | "element" | "realisation" | "invariant" | "principle" | "policy" | "protocol" | "stage" | "role" | "gate" | "mode" | "artefact" | "decision" | "change" | "view" | "milestone";
267
231
  name: string;
268
232
  description?: string | string[] | undefined;
269
- status?: "deprecated" | "proposed" | "accepted" | "active" | "implemented" | "adopted" | "defined" | "introduced" | "in_progress" | "complete" | "consolidated" | "experimental" | "retired" | "superseded" | "abandoned" | "deferred" | undefined;
233
+ status?: undefined;
270
234
  lifecycle?: Record<string, string | boolean> | undefined;
271
235
  context?: string | string[] | undefined;
272
236
  options?: {
@@ -290,8 +254,6 @@ export declare const validateOp: import("./define-operation.js").DefinedOperatio
290
254
  }[] | undefined;
291
255
  propagation?: Record<string, boolean> | undefined;
292
256
  includes?: string[] | undefined;
293
- input?: string | undefined;
294
- output?: string | undefined;
295
257
  external_references?: {
296
258
  role: "output" | "input" | "context" | "evidence" | "source" | "standard" | "prior_art";
297
259
  identifier: string;
@@ -314,7 +276,7 @@ export declare const validateOp: import("./define-operation.js").DefinedOperatio
314
276
  [x: string]: unknown;
315
277
  from: string;
316
278
  to: string;
317
- type: "refines" | "realises" | "implements" | "depends_on" | "constrained_by" | "affects" | "supersedes" | "must_preserve" | "performs" | "part_of" | "precedes" | "must_follow" | "blocks" | "routes_to" | "orchestrates" | "governed_by" | "modifies" | "triggered_by" | "applies_to" | "produces" | "consumes" | "transforms_into" | "selects" | "requires" | "disables" | "influence" | "justifies";
279
+ type: "refines" | "realises" | "implements" | "depends_on" | "constrained_by" | "affects" | "supersedes" | "must_preserve" | "part_of" | "precedes" | "must_follow" | "governed_by" | "modifies" | "produces";
318
280
  description?: string | string[] | undefined;
319
281
  polarity?: "positive" | "negative" | "neutral" | "uncertain" | undefined;
320
282
  strength?: number | undefined;
@@ -1,7 +1,8 @@
1
1
  import * as z from "zod";
2
2
  import { defineOperation } from "./define-operation.js";
3
3
  import { SysProMDocument } from "../schema.js";
4
- import { isValidEndpointPair, RELATIONSHIP_ENDPOINT_TYPES, } from "../endpoint-types.js";
4
+ import { isValidEndpointPair, isViewReadModelDependsOnRelationship, RELATIONSHIP_ENDPOINT_TYPES, } from "../endpoint-types.js";
5
+ import { hasLifecycleState } from "../lifecycle-state.js";
5
6
  /** Zod schema for the result of validating a SysProM document. */
6
7
  export const ValidationResult = z.object({
7
8
  valid: z.boolean(),
@@ -75,21 +76,22 @@ export const validateOp = defineOperation({
75
76
  const OPERATIONAL_REL_TYPES = new Set([
76
77
  "depends_on",
77
78
  "constrained_by",
78
- "requires",
79
79
  "affects",
80
80
  "must_preserve",
81
- "performs",
82
81
  "must_follow",
83
82
  "part_of",
84
83
  "governed_by",
85
84
  "modifies",
86
- "applies_to",
87
85
  "produces",
88
- "consumes",
89
86
  ]);
90
87
  for (const r of input.doc.relationships ?? []) {
88
+ const fromNode = nodeMap.get(r.from);
91
89
  const toNode = nodeMap.get(r.to);
92
- if (toNode?.status === "retired" && OPERATIONAL_REL_TYPES.has(r.type)) {
90
+ if (fromNode &&
91
+ toNode &&
92
+ hasLifecycleState(toNode, "retired") &&
93
+ OPERATIONAL_REL_TYPES.has(r.type) &&
94
+ !isViewReadModelDependsOnRelationship(r.type, fromNode.type, toNode.type)) {
93
95
  issues.push(`Operational relationship ${r.type} targets retired node ${r.to}`);
94
96
  }
95
97
  }