@intentius/chant 0.84.0 → 0.86.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/mcp/resource-handlers.d.ts +2 -1
- package/dist/cli/mcp/resource-handlers.d.ts.map +1 -1
- package/dist/cli/mcp/server.d.ts +1 -0
- package/dist/cli/mcp/server.d.ts.map +1 -1
- package/dist/cli/mcp/tools/composites.d.ts +44 -0
- package/dist/cli/mcp/tools/composites.d.ts.map +1 -0
- package/dist/cli/mcp/tools/search.d.ts.map +1 -1
- package/dist/cli/registry.d.ts +13 -1
- package/dist/cli/registry.d.ts.map +1 -1
- package/dist/components/cli-support.d.ts +4 -0
- package/dist/components/cli-support.d.ts.map +1 -1
- package/dist/composite.d.ts +6 -0
- package/dist/composite.d.ts.map +1 -1
- package/dist/lexicon.d.ts +44 -0
- package/dist/lexicon.d.ts.map +1 -1
- package/dist/lifecycle/gate-ledger.d.ts +13 -0
- package/dist/lifecycle/gate-ledger.d.ts.map +1 -1
- package/dist/workspace/__fixtures__/contract-repo.d.ts +7 -0
- package/dist/workspace/__fixtures__/contract-repo.d.ts.map +1 -1
- package/dist/workspace/__fixtures__/sessions.d.ts +23 -0
- package/dist/workspace/__fixtures__/sessions.d.ts.map +1 -0
- package/dist/workspace/checks/records.d.ts +1 -0
- package/dist/workspace/checks/records.d.ts.map +1 -1
- package/dist/workspace/checks.d.ts +4 -0
- package/dist/workspace/checks.d.ts.map +1 -1
- package/dist/workspace/composites.d.ts +152 -0
- package/dist/workspace/composites.d.ts.map +1 -0
- package/dist/workspace/conformance/index.d.ts +211 -0
- package/dist/workspace/conformance/index.d.ts.map +1 -0
- package/dist/workspace/conformance/vitest.d.ts +11 -0
- package/dist/workspace/conformance/vitest.d.ts.map +1 -0
- package/dist/workspace/declaration.d.ts +28 -0
- package/dist/workspace/declaration.d.ts.map +1 -1
- package/dist/workspace/declaration.schema.json +40 -0
- package/dist/workspace/declared-kinds.d.ts +43 -0
- package/dist/workspace/declared-kinds.d.ts.map +1 -0
- package/dist/workspace/graph-cli.d.ts +24 -2
- package/dist/workspace/graph-cli.d.ts.map +1 -1
- package/dist/workspace/intent-cli.d.ts +6 -1
- package/dist/workspace/intent-cli.d.ts.map +1 -1
- package/dist/workspace/intent-joins.d.ts +74 -9
- package/dist/workspace/intent-joins.d.ts.map +1 -1
- package/dist/workspace/intent.d.ts +90 -6
- package/dist/workspace/intent.d.ts.map +1 -1
- package/dist/workspace/ls.d.ts +31 -1
- package/dist/workspace/ls.d.ts.map +1 -1
- package/dist/workspace/member-commands.d.ts +7 -2
- package/dist/workspace/member-commands.d.ts.map +1 -1
- package/dist/workspace/reason-codes.d.ts +52 -2
- package/dist/workspace/reason-codes.d.ts.map +1 -1
- package/dist/workspace/record-sessions.d.ts +51 -0
- package/dist/workspace/record-sessions.d.ts.map +1 -0
- package/dist/workspace/record-source.d.ts +2 -0
- package/dist/workspace/record-source.d.ts.map +1 -1
- package/dist/workspace/records-cli.d.ts +65 -4
- package/dist/workspace/records-cli.d.ts.map +1 -1
- package/dist/workspace/records-since.d.ts +90 -0
- package/dist/workspace/records-since.d.ts.map +1 -0
- package/dist/workspace/records-write.d.ts +164 -0
- package/dist/workspace/records-write.d.ts.map +1 -0
- package/dist/workspace/records.d.ts +202 -15
- package/dist/workspace/records.d.ts.map +1 -1
- package/dist/workspace/runtimes.d.ts +60 -0
- package/dist/workspace/runtimes.d.ts.map +1 -0
- package/dist/workspace/status-gates.d.ts +90 -0
- package/dist/workspace/status-gates.d.ts.map +1 -0
- package/dist/workspace/status.d.ts +17 -0
- package/dist/workspace/status.d.ts.map +1 -1
- package/dist/workspace/work.d.ts +56 -0
- package/dist/workspace/work.d.ts.map +1 -0
- package/package.json +19 -1
- package/src/cli/handlers/graph.ts +4 -0
- package/src/cli/main.test.ts +9 -0
- package/src/cli/main.ts +56 -3
- package/src/cli/mcp/resource-handlers.ts +17 -0
- package/src/cli/mcp/server.test.ts +140 -4
- package/src/cli/mcp/server.ts +5 -1
- package/src/cli/mcp/tools/composites.ts +98 -0
- package/src/cli/mcp/tools/search.ts +47 -5
- package/src/cli/registry.ts +13 -1
- package/src/components/cli-support.test.ts +16 -0
- package/src/components/cli-support.ts +8 -2
- package/src/composite.ts +9 -0
- package/src/lexicon.ts +47 -0
- package/src/lifecycle/gate-ledger.ts +14 -0
- package/src/workspace/__fixtures__/contract-repo.ts +17 -0
- package/src/workspace/__fixtures__/sessions.ts +66 -0
- package/src/workspace/checks/records.ts +19 -0
- package/src/workspace/checks.test.ts +2 -0
- package/src/workspace/checks.ts +7 -1
- package/src/workspace/composites.schema.json +533 -0
- package/src/workspace/composites.test.ts +334 -0
- package/src/workspace/composites.ts +316 -0
- package/src/workspace/conformance/__fixture__/app/package.json +7 -0
- package/src/workspace/conformance/__fixture__/app/src/server.mjs +29 -0
- package/src/workspace/conformance/__fixture__/decisions/decision.kind.mjs +32 -0
- package/src/workspace/conformance/__fixture__/decisions/decision.schema.json +364 -0
- package/src/workspace/conformance/__fixture__/decisions/fix-001-how-the-app-is-deployed.md +40 -0
- package/src/workspace/conformance/__fixture__/delivery/chant.config.ts +7 -0
- package/src/workspace/conformance/__fixture__/delivery/lexicon/index.ts +26 -0
- package/src/workspace/conformance/__fixture__/delivery/package.json +7 -0
- package/src/workspace/conformance/__fixture__/delivery/src/app.component.ts +14 -0
- package/src/workspace/conformance/__fixture__/delivery/src/app.ts +4 -0
- package/src/workspace/conformance/conformance.test.ts +149 -0
- package/src/workspace/conformance/index.mjs +31 -0
- package/src/workspace/conformance/index.ts +453 -0
- package/src/workspace/conformance/vitest.ts +62 -0
- package/src/workspace/declaration.schema.json +40 -0
- package/src/workspace/declaration.ts +62 -0
- package/src/workspace/declared-kinds.test.ts +321 -0
- package/src/workspace/declared-kinds.ts +76 -0
- package/src/workspace/graph-cli.ts +40 -4
- package/src/workspace/intent-cli.ts +54 -7
- package/src/workspace/intent-joins.test.ts +60 -0
- package/src/workspace/intent-joins.ts +117 -20
- package/src/workspace/intent.schema.json +357 -19
- package/src/workspace/intent.test.ts +235 -20
- package/src/workspace/intent.ts +396 -51
- package/src/workspace/ls.schema.json +34 -0
- package/src/workspace/ls.ts +69 -4
- package/src/workspace/member-commands.ts +11 -5
- package/src/workspace/read-contract.test.ts +52 -3
- package/src/workspace/reason-codes.test.ts +48 -4
- package/src/workspace/reason-codes.ts +67 -2
- package/src/workspace/record-assets.test.ts +3 -1
- package/src/workspace/record-sessions.ts +105 -0
- package/src/workspace/record-source.ts +14 -5
- package/src/workspace/records-amend.schema.json +167 -0
- package/src/workspace/records-cli.ts +246 -19
- package/src/workspace/records-contract.test.ts +77 -2
- package/src/workspace/records-formats.test.ts +640 -0
- package/src/workspace/records-new.schema.json +158 -0
- package/src/workspace/records-quorum.test.ts +196 -0
- package/src/workspace/records-review.schema.json +202 -0
- package/src/workspace/records-sessions.test.ts +108 -0
- package/src/workspace/records-since.schema.json +193 -0
- package/src/workspace/records-since.test.ts +174 -0
- package/src/workspace/records-since.ts +259 -0
- package/src/workspace/records-write-contract.test.ts +125 -0
- package/src/workspace/records-write.test.ts +373 -0
- package/src/workspace/records-write.ts +736 -0
- package/src/workspace/records.schema.json +187 -9
- package/src/workspace/records.test.ts +93 -0
- package/src/workspace/records.ts +683 -49
- package/src/workspace/runtimes.ts +107 -0
- package/src/workspace/status-contract.test.ts +163 -0
- package/src/workspace/status-gates.ts +215 -0
- package/src/workspace/status.schema.json +69 -3
- package/src/workspace/status.ts +35 -2
- package/src/workspace/work.test.ts +388 -0
- package/src/workspace/work.ts +163 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://intentius.io/chant/schemas/workspace/intent/v1/intent.schema.json",
|
|
4
4
|
"title": "chant workspace graph --intent output",
|
|
5
|
-
"description": "What `chant workspace graph --intent <region> --json` prints: the intent graph over one region of a workspace (#2651, #2650 section C1, #2524 D8 and D15). The region, the commits that touched it, the decisions whose constrains cover it and their supersession chains, the artifacts those decisions pin, the units, contracts and evidence a plugin joins to the commits, the member links of the region's member, and findings as nodes with closed codes. chant emits it and a reader such as hud draws it. Readers ignore fields and node or edge kinds they do not know; a field is only ever added within a version. The finding, reason and error codes are closed lists. Contract version 1 is written by chant 0.81.0 and newer, and this document was added to it by #2651; a chant without --intent refuses the flag. Every code is in the one closed list of `reason-codes.ts`.",
|
|
5
|
+
"description": "What `chant workspace graph --intent <region> --json` prints: the intent graph over one region of a workspace (#2651, #2650 section C1, #2524 D8 and D15). The region, the commits that touched it, the decisions whose constrains cover it and their supersession chains, the work items whose constrains cover it (#2683), the artifacts those decisions pin, the units, contracts and evidence a plugin joins to the commits, the member links of the region's member, and findings as nodes with closed codes. chant emits it and a reader such as hud draws it. Readers ignore fields and node or edge kinds they do not know; a field is only ever added within a version. The finding, reason and error codes are closed lists. Contract version 1 is written by chant 0.81.0 and newer, and this document was added to it by #2651; a chant without --intent refuses the flag. Every code is in the one closed list of `reason-codes.ts`.",
|
|
6
6
|
"oneOf": [
|
|
7
7
|
{
|
|
8
8
|
"$ref": "#/$defs/result"
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
"error": false,
|
|
102
102
|
"kinds": {
|
|
103
103
|
"type": "array",
|
|
104
|
-
"description": "Each --kind file, in order: the record kind it reads, if any, and the form of its commitJoins export, if any.",
|
|
104
|
+
"description": "Each --kind file, in order: its name, the record kind it reads, if any, and the form of its commitJoins export, if any.",
|
|
105
105
|
"items": {
|
|
106
106
|
"type": "object",
|
|
107
107
|
"required": [
|
|
@@ -114,6 +114,10 @@
|
|
|
114
114
|
"type": "string",
|
|
115
115
|
"description": "From the repository root."
|
|
116
116
|
},
|
|
117
|
+
"name": {
|
|
118
|
+
"type": "string",
|
|
119
|
+
"description": "The kind's name: the file's commitJoinsName export when it has one (#2663), else the record kind's name, or the file's name without .kind.mjs for a plugin with no records. A plugin's findings use it as their namespace, plugin:<name>:<code> (#2656). Added within version 1, so an older document may lack it."
|
|
120
|
+
},
|
|
117
121
|
"records": {
|
|
118
122
|
"type": [
|
|
119
123
|
"string",
|
|
@@ -122,6 +126,7 @@
|
|
|
122
126
|
"description": "The record kind's name, or null for a plugin with no records."
|
|
123
127
|
},
|
|
124
128
|
"joins": {
|
|
129
|
+
"description": "The form of the file's commitJoins export: a function commitJoins(commit, context), whose context has read(path) for a file and list(dir) for a directory's entries, both from the workspace root in the tree read (#2663); data, naming the trailers and record paths core reads, with every value of the evidence trailer read; or null when it has none.",
|
|
125
130
|
"enum": [
|
|
126
131
|
"function",
|
|
127
132
|
"data",
|
|
@@ -200,6 +205,9 @@
|
|
|
200
205
|
{
|
|
201
206
|
"$ref": "#/$defs/decision"
|
|
202
207
|
},
|
|
208
|
+
{
|
|
209
|
+
"$ref": "#/$defs/work"
|
|
210
|
+
},
|
|
203
211
|
{
|
|
204
212
|
"$ref": "#/$defs/artifact"
|
|
205
213
|
},
|
|
@@ -364,7 +372,7 @@
|
|
|
364
372
|
}
|
|
365
373
|
},
|
|
366
374
|
"commit": {
|
|
367
|
-
"description": "A commit that touched the region. Linked from the region by a touched-by edge.",
|
|
375
|
+
"description": "A commit that touched the region. Linked from the region by a touched-by edge, and to each decision whose path window it falls in by a within edge.",
|
|
368
376
|
"type": "object",
|
|
369
377
|
"required": [
|
|
370
378
|
"id",
|
|
@@ -466,6 +474,15 @@
|
|
|
466
474
|
}
|
|
467
475
|
],
|
|
468
476
|
"description": "For a line-range region, the ranges the commit changed within it, numbered in the commit's own version of the file. Null otherwise."
|
|
477
|
+
},
|
|
478
|
+
"state": {
|
|
479
|
+
"enum": [
|
|
480
|
+
"decided",
|
|
481
|
+
"decided-by-window",
|
|
482
|
+
"undecided",
|
|
483
|
+
null
|
|
484
|
+
],
|
|
485
|
+
"description": "How the decisions constraining the region by path relate to the commit (#2656). decided: it falls inside a decision's window and that decision's own unit made it. decided-by-window: it falls inside a window, and it is not the decision's own work, so the person judges it. undecided: outside every window, with the finding intent-commit-undecided. null: no record kind was read. Added within version 1, so an older document may lack it."
|
|
469
486
|
}
|
|
470
487
|
}
|
|
471
488
|
},
|
|
@@ -700,6 +717,240 @@
|
|
|
700
717
|
}
|
|
701
718
|
}
|
|
702
719
|
},
|
|
720
|
+
"work": {
|
|
721
|
+
"description": "A work item (#2683), a record of a kind with a work block: in the graph when its constrains cover the region as a decision's would, or when a work item there implements, needs or addresses it. Read only when a work kind is passed with --kind.",
|
|
722
|
+
"type": "object",
|
|
723
|
+
"required": [
|
|
724
|
+
"id",
|
|
725
|
+
"kind",
|
|
726
|
+
"recordKind",
|
|
727
|
+
"record",
|
|
728
|
+
"path",
|
|
729
|
+
"title",
|
|
730
|
+
"state",
|
|
731
|
+
"closed",
|
|
732
|
+
"valid",
|
|
733
|
+
"reasons",
|
|
734
|
+
"provenance",
|
|
735
|
+
"owner",
|
|
736
|
+
"ready",
|
|
737
|
+
"blockedBy",
|
|
738
|
+
"implements",
|
|
739
|
+
"needs",
|
|
740
|
+
"source",
|
|
741
|
+
"supersededBy",
|
|
742
|
+
"constrains",
|
|
743
|
+
"warnings"
|
|
744
|
+
],
|
|
745
|
+
"properties": {
|
|
746
|
+
"id": {
|
|
747
|
+
"type": "string",
|
|
748
|
+
"pattern": "^record:"
|
|
749
|
+
},
|
|
750
|
+
"kind": {
|
|
751
|
+
"const": "work"
|
|
752
|
+
},
|
|
753
|
+
"recordKind": {
|
|
754
|
+
"type": "string"
|
|
755
|
+
},
|
|
756
|
+
"record": {
|
|
757
|
+
"type": "string"
|
|
758
|
+
},
|
|
759
|
+
"path": {
|
|
760
|
+
"type": "string",
|
|
761
|
+
"description": "The record file, from the repository root."
|
|
762
|
+
},
|
|
763
|
+
"title": {
|
|
764
|
+
"type": [
|
|
765
|
+
"string",
|
|
766
|
+
"null"
|
|
767
|
+
]
|
|
768
|
+
},
|
|
769
|
+
"state": {
|
|
770
|
+
"type": [
|
|
771
|
+
"string",
|
|
772
|
+
"null"
|
|
773
|
+
]
|
|
774
|
+
},
|
|
775
|
+
"closed": {
|
|
776
|
+
"type": "boolean",
|
|
777
|
+
"description": "Whether the kind counts the state as closed, such as done or dropped."
|
|
778
|
+
},
|
|
779
|
+
"valid": {
|
|
780
|
+
"type": "boolean"
|
|
781
|
+
},
|
|
782
|
+
"reasons": {
|
|
783
|
+
"type": "array",
|
|
784
|
+
"items": {
|
|
785
|
+
"type": "object",
|
|
786
|
+
"required": [
|
|
787
|
+
"code",
|
|
788
|
+
"message"
|
|
789
|
+
],
|
|
790
|
+
"properties": {
|
|
791
|
+
"code": {
|
|
792
|
+
"enum": [
|
|
793
|
+
"record-unparseable",
|
|
794
|
+
"record-schema-invalid",
|
|
795
|
+
"record-id-duplicate",
|
|
796
|
+
"record-supersedes-unknown",
|
|
797
|
+
"record-supersedes-conflict"
|
|
798
|
+
]
|
|
799
|
+
},
|
|
800
|
+
"message": {
|
|
801
|
+
"type": "string"
|
|
802
|
+
}
|
|
803
|
+
}
|
|
804
|
+
}
|
|
805
|
+
},
|
|
806
|
+
"provenance": {
|
|
807
|
+
"type": "object",
|
|
808
|
+
"required": [
|
|
809
|
+
"level",
|
|
810
|
+
"commit",
|
|
811
|
+
"reason"
|
|
812
|
+
],
|
|
813
|
+
"properties": {
|
|
814
|
+
"level": {
|
|
815
|
+
"enum": [
|
|
816
|
+
"attested",
|
|
817
|
+
"attested-unverifiable-here",
|
|
818
|
+
"adopted",
|
|
819
|
+
"unattested"
|
|
820
|
+
]
|
|
821
|
+
},
|
|
822
|
+
"commit": {
|
|
823
|
+
"type": [
|
|
824
|
+
"string",
|
|
825
|
+
"null"
|
|
826
|
+
],
|
|
827
|
+
"pattern": "^[0-9a-f]{40,64}$"
|
|
828
|
+
},
|
|
829
|
+
"reason": {
|
|
830
|
+
"type": "string"
|
|
831
|
+
}
|
|
832
|
+
}
|
|
833
|
+
},
|
|
834
|
+
"owner": {
|
|
835
|
+
"type": [
|
|
836
|
+
"string",
|
|
837
|
+
"null"
|
|
838
|
+
],
|
|
839
|
+
"description": "The principal the record names as its owner, or null."
|
|
840
|
+
},
|
|
841
|
+
"ready": {
|
|
842
|
+
"type": "boolean",
|
|
843
|
+
"description": "As records reports it: valid, not superseded, in the kind's open state, and every need done."
|
|
844
|
+
},
|
|
845
|
+
"blockedBy": {
|
|
846
|
+
"type": "array",
|
|
847
|
+
"items": {
|
|
848
|
+
"$ref": "#/$defs/workLink"
|
|
849
|
+
},
|
|
850
|
+
"description": "Each need that is not done, with its state."
|
|
851
|
+
},
|
|
852
|
+
"implements": {
|
|
853
|
+
"type": "array",
|
|
854
|
+
"items": {
|
|
855
|
+
"$ref": "#/$defs/workLink"
|
|
856
|
+
},
|
|
857
|
+
"description": "Each decision the item implements, with its state."
|
|
858
|
+
},
|
|
859
|
+
"needs": {
|
|
860
|
+
"type": "array",
|
|
861
|
+
"items": {
|
|
862
|
+
"type": "string"
|
|
863
|
+
},
|
|
864
|
+
"description": "The work ids the item's needs list names."
|
|
865
|
+
},
|
|
866
|
+
"source": {
|
|
867
|
+
"description": "The gap the item came from, when its source names one: a finding code, the region it fired on, and optionally the decision and artifact it concerned. Null for an item whose source is an issue or the workspace.",
|
|
868
|
+
"oneOf": [
|
|
869
|
+
{
|
|
870
|
+
"type": "null"
|
|
871
|
+
},
|
|
872
|
+
{
|
|
873
|
+
"type": "object",
|
|
874
|
+
"required": [
|
|
875
|
+
"finding",
|
|
876
|
+
"region"
|
|
877
|
+
],
|
|
878
|
+
"properties": {
|
|
879
|
+
"finding": {
|
|
880
|
+
"type": "string"
|
|
881
|
+
},
|
|
882
|
+
"region": {
|
|
883
|
+
"type": "string"
|
|
884
|
+
},
|
|
885
|
+
"decision": {
|
|
886
|
+
"type": "string"
|
|
887
|
+
},
|
|
888
|
+
"artifact": {
|
|
889
|
+
"type": "string"
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
}
|
|
893
|
+
]
|
|
894
|
+
},
|
|
895
|
+
"supersededBy": {
|
|
896
|
+
"type": [
|
|
897
|
+
"string",
|
|
898
|
+
"null"
|
|
899
|
+
]
|
|
900
|
+
},
|
|
901
|
+
"constrains": {
|
|
902
|
+
"type": "array",
|
|
903
|
+
"description": "The entries that cover the region, with their granularity, matched as a decision's are. Empty for an item in the graph only through a link.",
|
|
904
|
+
"items": {
|
|
905
|
+
"type": "object",
|
|
906
|
+
"required": [
|
|
907
|
+
"entry",
|
|
908
|
+
"granularity"
|
|
909
|
+
],
|
|
910
|
+
"properties": {
|
|
911
|
+
"entry": {
|
|
912
|
+
"type": "string"
|
|
913
|
+
},
|
|
914
|
+
"granularity": {
|
|
915
|
+
"enum": [
|
|
916
|
+
"path",
|
|
917
|
+
"member",
|
|
918
|
+
"contract",
|
|
919
|
+
"issue"
|
|
920
|
+
]
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
}
|
|
924
|
+
},
|
|
925
|
+
"warnings": {
|
|
926
|
+
"type": "array",
|
|
927
|
+
"description": "The item's work warnings as records reports them, and work-done-gap-open, which only this walk raises: the item is done and the finding in its source still fires on its region.",
|
|
928
|
+
"items": {
|
|
929
|
+
"type": "object",
|
|
930
|
+
"required": [
|
|
931
|
+
"code",
|
|
932
|
+
"message"
|
|
933
|
+
],
|
|
934
|
+
"properties": {
|
|
935
|
+
"code": {
|
|
936
|
+
"enum": [
|
|
937
|
+
"work-needs-unknown",
|
|
938
|
+
"work-implements-unknown",
|
|
939
|
+
"work-needs-cycle",
|
|
940
|
+
"work-implements-undecided",
|
|
941
|
+
"work-done-unpinned",
|
|
942
|
+
"work-closed-without-date",
|
|
943
|
+
"work-done-gap-open"
|
|
944
|
+
]
|
|
945
|
+
},
|
|
946
|
+
"message": {
|
|
947
|
+
"type": "string"
|
|
948
|
+
}
|
|
949
|
+
}
|
|
950
|
+
}
|
|
951
|
+
}
|
|
952
|
+
}
|
|
953
|
+
},
|
|
703
954
|
"artifact": {
|
|
704
955
|
"description": "A workspace file a decision in the graph pins. Artifacts reach the region only through decisions (#2549).",
|
|
705
956
|
"type": "object",
|
|
@@ -812,7 +1063,7 @@
|
|
|
812
1063
|
}
|
|
813
1064
|
},
|
|
814
1065
|
"finding": {
|
|
815
|
-
"description": "A gap the walk found. Findings are nodes so a reader can draw them and a test can assert them; the tool asks, and never answers.",
|
|
1066
|
+
"description": "A gap the walk found. Findings are nodes so a reader can draw them and a test can assert them; the tool asks, and never answers. A plugin's commitJoins may add findings of its own, with a code in its namespace (#2656).",
|
|
816
1067
|
"type": "object",
|
|
817
1068
|
"required": [
|
|
818
1069
|
"id",
|
|
@@ -830,19 +1081,31 @@
|
|
|
830
1081
|
"const": "finding"
|
|
831
1082
|
},
|
|
832
1083
|
"code": {
|
|
833
|
-
"
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
1084
|
+
"anyOf": [
|
|
1085
|
+
{
|
|
1086
|
+
"enum": [
|
|
1087
|
+
"intent-commit-undecided",
|
|
1088
|
+
"intent-commit-bare",
|
|
1089
|
+
"intent-pin-drifted",
|
|
1090
|
+
"intent-pin-missing",
|
|
1091
|
+
"intent-artifact-unpinned",
|
|
1092
|
+
"intent-decision-superseded-live",
|
|
1093
|
+
"intent-decision-provisional",
|
|
1094
|
+
"intent-constraint-coarse",
|
|
1095
|
+
"intent-constraint-lost",
|
|
1096
|
+
"intent-evidence-unpinned",
|
|
1097
|
+
"intent-trailer-unverified",
|
|
1098
|
+
"intent-region-unconstrained",
|
|
1099
|
+
"intent-decision-unimplemented",
|
|
1100
|
+
"intent-work-blocked",
|
|
1101
|
+
"intent-work-open-decided-code"
|
|
1102
|
+
]
|
|
1103
|
+
},
|
|
1104
|
+
{
|
|
1105
|
+
"type": "string",
|
|
1106
|
+
"pattern": "^plugin:[^:\\s]+:[a-z0-9]+(-[a-z0-9]+)*$",
|
|
1107
|
+
"description": "A plugin's own code, plugin:<name>:<code>, where <name> is the kind's name in kinds. Outside the closed list: the plugin owns its namespace."
|
|
1108
|
+
}
|
|
846
1109
|
]
|
|
847
1110
|
},
|
|
848
1111
|
"message": {
|
|
@@ -854,11 +1117,33 @@
|
|
|
854
1117
|
"type": "string"
|
|
855
1118
|
},
|
|
856
1119
|
"description": "The ids of the nodes the finding is about."
|
|
1120
|
+
},
|
|
1121
|
+
"plugin": {
|
|
1122
|
+
"type": "string",
|
|
1123
|
+
"description": "For a plugin's finding: the kind file that returned it, as in kinds."
|
|
1124
|
+
},
|
|
1125
|
+
"refs": {
|
|
1126
|
+
"type": "array",
|
|
1127
|
+
"items": {
|
|
1128
|
+
"type": "string"
|
|
1129
|
+
},
|
|
1130
|
+
"description": "For a plugin's finding: the refs as the plugin gave them. Those that name a node in the graph are resolved to its id in concerns, after the commit the finding was returned for."
|
|
1131
|
+
},
|
|
1132
|
+
"addressed": {
|
|
1133
|
+
"type": "boolean",
|
|
1134
|
+
"description": "Added by #2683, present when a work kind was read: whether a work item addresses the finding, because the item's source names this finding code on a region that contains or is contained by this one, or because the item implements a decision the finding concerns. A finding with addressed false is work nobody has taken yet."
|
|
1135
|
+
},
|
|
1136
|
+
"addressedBy": {
|
|
1137
|
+
"type": "array",
|
|
1138
|
+
"items": {
|
|
1139
|
+
"$ref": "#/$defs/workLink"
|
|
1140
|
+
},
|
|
1141
|
+
"description": "Added by #2683, present when a work kind was read: the work items addressing the finding, each with its state. Each has an addressed-by edge from the finding."
|
|
857
1142
|
}
|
|
858
1143
|
}
|
|
859
1144
|
},
|
|
860
1145
|
"edge": {
|
|
861
|
-
"description": "constrains: decision to region, file or contract. pins: decision to artifact. touched-by: region to commit. produced-by: commit to unit. serves: unit to contract. supersedes: the newer decision to the one it replaces. cites-evidence: unit, contract or decision to evidence. links: consumer member to producer member.",
|
|
1146
|
+
"description": "constrains: decision or work item to region, file or contract. pins: decision to artifact. touched-by: region to commit. produced-by: commit to unit. serves: unit to contract. supersedes: the newer decision to the one it replaces. cites-evidence: unit, contract or decision to evidence. links: consumer member to producer member. within: commit to a decision whose path window it falls in, or to a work item whose window it falls in. implements: work item to the decision it carries out. needs: work item to a work item it waits on. addressed-by: finding to a work item that addresses it.",
|
|
862
1147
|
"oneOf": [
|
|
863
1148
|
{
|
|
864
1149
|
"$ref": "#/$defs/constrainsEdge"
|
|
@@ -869,6 +1154,9 @@
|
|
|
869
1154
|
{
|
|
870
1155
|
"$ref": "#/$defs/touchedEdge"
|
|
871
1156
|
},
|
|
1157
|
+
{
|
|
1158
|
+
"$ref": "#/$defs/withinEdge"
|
|
1159
|
+
},
|
|
872
1160
|
{
|
|
873
1161
|
"$ref": "#/$defs/plainEdge"
|
|
874
1162
|
}
|
|
@@ -1069,10 +1357,60 @@
|
|
|
1069
1357
|
"serves",
|
|
1070
1358
|
"supersedes",
|
|
1071
1359
|
"cites-evidence",
|
|
1072
|
-
"links"
|
|
1360
|
+
"links",
|
|
1361
|
+
"implements",
|
|
1362
|
+
"needs",
|
|
1363
|
+
"addressed-by"
|
|
1364
|
+
]
|
|
1365
|
+
}
|
|
1366
|
+
}
|
|
1367
|
+
},
|
|
1368
|
+
"withinEdge": {
|
|
1369
|
+
"description": "A commit made inside a decision's window, from the commit that added the decision's record until the one that added its successor (#2656). state is decided when the decision's own unit made the commit, and decided-by-window otherwise. Added by #2683: a commit made inside a work item's window, from the commit that added the record to the commit that closed it, that commit included, or to the revision read while it is open, has state worked. A worked edge leaves the commit's own state as the decisions set it.",
|
|
1370
|
+
"type": "object",
|
|
1371
|
+
"required": [
|
|
1372
|
+
"kind",
|
|
1373
|
+
"from",
|
|
1374
|
+
"to",
|
|
1375
|
+
"state"
|
|
1376
|
+
],
|
|
1377
|
+
"properties": {
|
|
1378
|
+
"from": {
|
|
1379
|
+
"type": "string"
|
|
1380
|
+
},
|
|
1381
|
+
"to": {
|
|
1382
|
+
"type": "string"
|
|
1383
|
+
},
|
|
1384
|
+
"kind": {
|
|
1385
|
+
"const": "within"
|
|
1386
|
+
},
|
|
1387
|
+
"state": {
|
|
1388
|
+
"enum": [
|
|
1389
|
+
"decided",
|
|
1390
|
+
"decided-by-window",
|
|
1391
|
+
"worked"
|
|
1073
1392
|
]
|
|
1074
1393
|
}
|
|
1075
1394
|
}
|
|
1395
|
+
},
|
|
1396
|
+
"workLink": {
|
|
1397
|
+
"type": "object",
|
|
1398
|
+
"required": [
|
|
1399
|
+
"id",
|
|
1400
|
+
"state"
|
|
1401
|
+
],
|
|
1402
|
+
"properties": {
|
|
1403
|
+
"id": {
|
|
1404
|
+
"type": "string"
|
|
1405
|
+
},
|
|
1406
|
+
"state": {
|
|
1407
|
+
"type": [
|
|
1408
|
+
"string",
|
|
1409
|
+
"null"
|
|
1410
|
+
],
|
|
1411
|
+
"description": "The linked record's state, or null when no record has the id."
|
|
1412
|
+
}
|
|
1413
|
+
}
|
|
1076
1414
|
}
|
|
1077
1415
|
}
|
|
1078
1416
|
}
|