@tiic-tech/openworkflow 0.1.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.
Files changed (145) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +37 -0
  3. package/dist/adapters/codex/src/doctorCodexAdapter.d.ts +6 -0
  4. package/dist/adapters/codex/src/doctorCodexAdapter.js +124 -0
  5. package/dist/adapters/codex/src/doctorCodexAdapter.js.map +1 -0
  6. package/dist/adapters/codex/src/generateAgents.d.ts +2 -0
  7. package/dist/adapters/codex/src/generateAgents.js +40 -0
  8. package/dist/adapters/codex/src/generateAgents.js.map +1 -0
  9. package/dist/adapters/codex/src/generateCodexAdapter.d.ts +9 -0
  10. package/dist/adapters/codex/src/generateCodexAdapter.js +59 -0
  11. package/dist/adapters/codex/src/generateCodexAdapter.js.map +1 -0
  12. package/dist/adapters/codex/src/generateCommands.d.ts +6 -0
  13. package/dist/adapters/codex/src/generateCommands.js +205 -0
  14. package/dist/adapters/codex/src/generateCommands.js.map +1 -0
  15. package/dist/adapters/codex/src/generateSkills.d.ts +7 -0
  16. package/dist/adapters/codex/src/generateSkills.js +60 -0
  17. package/dist/adapters/codex/src/generateSkills.js.map +1 -0
  18. package/dist/adapters/codex/src/generatedFiles.d.ts +4 -0
  19. package/dist/adapters/codex/src/generatedFiles.js +67 -0
  20. package/dist/adapters/codex/src/generatedFiles.js.map +1 -0
  21. package/dist/adapters/codex/src/manifest.d.ts +4 -0
  22. package/dist/adapters/codex/src/manifest.js +40 -0
  23. package/dist/adapters/codex/src/manifest.js.map +1 -0
  24. package/dist/adapters/codex/src/templates.d.ts +7 -0
  25. package/dist/adapters/codex/src/templates.js +6 -0
  26. package/dist/adapters/codex/src/templates.js.map +1 -0
  27. package/dist/cli/src/args.d.ts +8 -0
  28. package/dist/cli/src/args.js +34 -0
  29. package/dist/cli/src/args.js.map +1 -0
  30. package/dist/cli/src/commands/doctor.d.ts +1 -0
  31. package/dist/cli/src/commands/doctor.js +26 -0
  32. package/dist/cli/src/commands/doctor.js.map +1 -0
  33. package/dist/cli/src/commands/init.d.ts +1 -0
  34. package/dist/cli/src/commands/init.js +52 -0
  35. package/dist/cli/src/commands/init.js.map +1 -0
  36. package/dist/cli/src/commands/shared.d.ts +4 -0
  37. package/dist/cli/src/commands/shared.js +19 -0
  38. package/dist/cli/src/commands/shared.js.map +1 -0
  39. package/dist/cli/src/commands/sync.d.ts +1 -0
  40. package/dist/cli/src/commands/sync.js +27 -0
  41. package/dist/cli/src/commands/sync.js.map +1 -0
  42. package/dist/cli/src/commands/validate.d.ts +1 -0
  43. package/dist/cli/src/commands/validate.js +17 -0
  44. package/dist/cli/src/commands/validate.js.map +1 -0
  45. package/dist/cli/src/dev/validateRepositoryContractsCli.d.ts +2 -0
  46. package/dist/cli/src/dev/validateRepositoryContractsCli.js +37 -0
  47. package/dist/cli/src/dev/validateRepositoryContractsCli.js.map +1 -0
  48. package/dist/cli/src/dev/verifyRuntimeSurface.d.ts +2 -0
  49. package/dist/cli/src/dev/verifyRuntimeSurface.js +344 -0
  50. package/dist/cli/src/dev/verifyRuntimeSurface.js.map +1 -0
  51. package/dist/cli/src/dev/verifyWorkflowE2E.d.ts +2 -0
  52. package/dist/cli/src/dev/verifyWorkflowE2E.js +366 -0
  53. package/dist/cli/src/dev/verifyWorkflowE2E.js.map +1 -0
  54. package/dist/cli/src/index.d.ts +2 -0
  55. package/dist/cli/src/index.js +51 -0
  56. package/dist/cli/src/index.js.map +1 -0
  57. package/dist/core/src/artifacts/registry.d.ts +53 -0
  58. package/dist/core/src/artifacts/registry.js +483 -0
  59. package/dist/core/src/artifacts/registry.js.map +1 -0
  60. package/dist/core/src/commands/registry.d.ts +36 -0
  61. package/dist/core/src/commands/registry.js +539 -0
  62. package/dist/core/src/commands/registry.js.map +1 -0
  63. package/dist/core/src/contracts/index.d.ts +23 -0
  64. package/dist/core/src/contracts/index.js +16 -0
  65. package/dist/core/src/contracts/index.js.map +1 -0
  66. package/dist/core/src/contracts/yaml.d.ts +2 -0
  67. package/dist/core/src/contracts/yaml.js +12 -0
  68. package/dist/core/src/contracts/yaml.js.map +1 -0
  69. package/dist/core/src/contracts.d.ts +23 -0
  70. package/dist/core/src/contracts.js +15 -0
  71. package/dist/core/src/contracts.js.map +1 -0
  72. package/dist/core/src/fs/index.d.ts +4 -0
  73. package/dist/core/src/fs/index.js +28 -0
  74. package/dist/core/src/fs/index.js.map +1 -0
  75. package/dist/core/src/fs.d.ts +4 -0
  76. package/dist/core/src/fs.js +28 -0
  77. package/dist/core/src/fs.js.map +1 -0
  78. package/dist/core/src/initOpenWorkflow.d.ts +7 -0
  79. package/dist/core/src/initOpenWorkflow.js +220 -0
  80. package/dist/core/src/initOpenWorkflow.js.map +1 -0
  81. package/dist/core/src/validateOpenWorkflow.d.ts +5 -0
  82. package/dist/core/src/validateOpenWorkflow.js +145 -0
  83. package/dist/core/src/validateOpenWorkflow.js.map +1 -0
  84. package/dist/core/src/validators/validateOpenWorkflow.d.ts +5 -0
  85. package/dist/core/src/validators/validateOpenWorkflow.js +551 -0
  86. package/dist/core/src/validators/validateOpenWorkflow.js.map +1 -0
  87. package/dist/core/src/validators/validateRepositoryContracts.d.ts +2 -0
  88. package/dist/core/src/validators/validateRepositoryContracts.js +827 -0
  89. package/dist/core/src/validators/validateRepositoryContracts.js.map +1 -0
  90. package/dist/core/src/workflow/initOpenWorkflow.d.ts +7 -0
  91. package/dist/core/src/workflow/initOpenWorkflow.js +182 -0
  92. package/dist/core/src/workflow/initOpenWorkflow.js.map +1 -0
  93. package/dist/core/src/yaml.d.ts +2 -0
  94. package/dist/core/src/yaml.js +12 -0
  95. package/dist/core/src/yaml.js.map +1 -0
  96. package/package.json +55 -0
  97. package/references/artifact-authoring-templates.md +78 -0
  98. package/references/audit-first-discovery-loop.md +85 -0
  99. package/references/contract-graph.md +129 -0
  100. package/references/discovery-artifact-contracts.md +155 -0
  101. package/references/engineering-skill-reference-research.md +204 -0
  102. package/references/npm-cli-architecture.md +63 -0
  103. package/references/runtime-command-surface.md +169 -0
  104. package/schemas/artifact-contracts.schema.json +130 -0
  105. package/schemas/change.schema.json +71 -0
  106. package/schemas/contract-graph.schema.json +80 -0
  107. package/schemas/decision-record.schema.json +92 -0
  108. package/schemas/disclosure-levels.schema.json +66 -0
  109. package/schemas/openworkflow-contract.schema.json +88 -0
  110. package/schemas/product-design.schema.json +356 -0
  111. package/schemas/prototype-evidence.schema.json +325 -0
  112. package/schemas/prototype.schema.json +149 -0
  113. package/schemas/validation-target.schema.json +127 -0
  114. package/schemas/validation.schema.json +123 -0
  115. package/schemas/vision-session.schema.json +78 -0
  116. package/schemas/work-items.schema.json +87 -0
  117. package/schemas/workflow-index.schema.json +70 -0
  118. package/skills/build-prototype/SKILL.md +87 -0
  119. package/skills/build-prototype/agents/openai.yaml +4 -0
  120. package/skills/build-prototype/references/prototype-protocol.md +56 -0
  121. package/skills/build-prototype/scripts/init_prototype.py +260 -0
  122. package/skills/build-team/SKILL.md +292 -0
  123. package/skills/build-team/agents/openai.yaml +4 -0
  124. package/skills/build-team/references/runtime-schema.md +275 -0
  125. package/skills/build-team/references/team-protocol.md +244 -0
  126. package/skills/build-team/scripts/init_team_runtime.py +431 -0
  127. package/skills/build-validation/SKILL.md +81 -0
  128. package/skills/build-validation/agents/openai.yaml +4 -0
  129. package/skills/build-validation/references/validation-protocol.md +51 -0
  130. package/skills/build-validation/scripts/init_validation.py +194 -0
  131. package/skills/build-workflow/SKILL.md +65 -0
  132. package/skills/build-workflow/agents/openai.yaml +4 -0
  133. package/skills/build-workflow/references/workflow-layout.md +57 -0
  134. package/skills/build-workflow/scripts/init_workflow.py +423 -0
  135. package/skills/run-team/SKILL.md +93 -0
  136. package/skills/run-team/agents/openai.yaml +4 -0
  137. package/skills/run-team/references/delegation-and-agent-lifecycle.md +78 -0
  138. package/skills/run-team/references/run-loop.md +73 -0
  139. package/skills/run-team/references/runtime-audit.md +56 -0
  140. package/skills/run-team/references/scope-selection.md +64 -0
  141. package/skills/run-team/scripts/audit_team_runtime.py +173 -0
  142. package/skills/run-team/scripts/init_next_scope.py +304 -0
  143. package/templates/README.md +5 -0
  144. package/templates/codex/README.md +4 -0
  145. package/templates/openworkflow/README.md +4 -0
@@ -0,0 +1,149 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://openworkflow.local/schemas/prototype.schema.json",
4
+ "title": "OpenWorkflow Prototype Contract",
5
+ "type": "object",
6
+ "required": [
7
+ "schema_version",
8
+ "contract_id",
9
+ "contract_type",
10
+ "title",
11
+ "status",
12
+ "validation_contract",
13
+ "core_question",
14
+ "prototype_scope",
15
+ "todo",
16
+ "acceptance",
17
+ "artifact",
18
+ "decision_handoff"
19
+ ],
20
+ "properties": {
21
+ "schema_version": {
22
+ "type": "string"
23
+ },
24
+ "contract_id": {
25
+ "type": "string"
26
+ },
27
+ "contract_type": {
28
+ "const": "prototype"
29
+ },
30
+ "title": {
31
+ "type": "string"
32
+ },
33
+ "status": {
34
+ "type": "string",
35
+ "enum": [
36
+ "planned",
37
+ "in_progress",
38
+ "ready_for_review",
39
+ "accepted",
40
+ "rejected",
41
+ "archived"
42
+ ]
43
+ },
44
+ "validation_contract": {
45
+ "type": "string"
46
+ },
47
+ "core_question": {
48
+ "type": "string"
49
+ },
50
+ "prototype_scope": {
51
+ "type": "object",
52
+ "required": [
53
+ "include",
54
+ "exclude"
55
+ ],
56
+ "properties": {
57
+ "include": {
58
+ "type": "array",
59
+ "items": {
60
+ "type": "string"
61
+ }
62
+ },
63
+ "exclude": {
64
+ "type": "array",
65
+ "items": {
66
+ "type": "string"
67
+ }
68
+ }
69
+ },
70
+ "additionalProperties": true
71
+ },
72
+ "todo": {
73
+ "type": "array",
74
+ "items": {
75
+ "type": "object",
76
+ "required": [
77
+ "task_id",
78
+ "title",
79
+ "status",
80
+ "acceptance"
81
+ ],
82
+ "properties": {
83
+ "task_id": {
84
+ "type": "string"
85
+ },
86
+ "title": {
87
+ "type": "string"
88
+ },
89
+ "status": {
90
+ "type": "string",
91
+ "enum": [
92
+ "planned",
93
+ "in_progress",
94
+ "done",
95
+ "blocked"
96
+ ]
97
+ },
98
+ "acceptance": {
99
+ "type": "array",
100
+ "items": {
101
+ "type": "string"
102
+ }
103
+ }
104
+ },
105
+ "additionalProperties": true
106
+ }
107
+ },
108
+ "acceptance": {
109
+ "type": "array",
110
+ "items": {
111
+ "type": "string"
112
+ }
113
+ },
114
+ "artifact": {
115
+ "type": "object",
116
+ "required": [
117
+ "path",
118
+ "type"
119
+ ],
120
+ "properties": {
121
+ "path": {
122
+ "type": "string"
123
+ },
124
+ "type": {
125
+ "type": "string"
126
+ }
127
+ },
128
+ "additionalProperties": true
129
+ },
130
+ "decision_handoff": {
131
+ "type": "object",
132
+ "required": [
133
+ "target",
134
+ "requires_user_review"
135
+ ],
136
+ "properties": {
137
+ "target": {
138
+ "type": "string"
139
+ },
140
+ "requires_user_review": {
141
+ "type": "boolean"
142
+ }
143
+ },
144
+ "additionalProperties": true
145
+ }
146
+ },
147
+ "additionalProperties": true
148
+ }
149
+
@@ -0,0 +1,127 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://openworkflow.local/schemas/validation-target.schema.json",
4
+ "title": "OpenWorkflow Validation Target Artifact",
5
+ "type": "object",
6
+ "required": [
7
+ "schema_version",
8
+ "contract_id",
9
+ "contract_type",
10
+ "artifact_type",
11
+ "title",
12
+ "status",
13
+ "core_question",
14
+ "feature_classification",
15
+ "critical_assumptions",
16
+ "prototype_scope",
17
+ "acceptance",
18
+ "decision_options"
19
+ ],
20
+ "properties": {
21
+ "schema_version": {
22
+ "type": "string"
23
+ },
24
+ "contract_id": {
25
+ "type": "string"
26
+ },
27
+ "contract_type": {
28
+ "const": "validation"
29
+ },
30
+ "artifact_type": {
31
+ "const": "validation_target"
32
+ },
33
+ "title": {
34
+ "type": "string"
35
+ },
36
+ "status": {
37
+ "type": "string"
38
+ },
39
+ "core_question": {
40
+ "type": "string"
41
+ },
42
+ "feature_classification": {
43
+ "type": "object",
44
+ "required": [
45
+ "existential",
46
+ "supporting",
47
+ "later",
48
+ "out_of_scope"
49
+ ],
50
+ "properties": {
51
+ "existential": {
52
+ "type": "array",
53
+ "items": {
54
+ "type": "string"
55
+ }
56
+ },
57
+ "supporting": {
58
+ "type": "array",
59
+ "items": {
60
+ "type": "string"
61
+ }
62
+ },
63
+ "later": {
64
+ "type": "array",
65
+ "items": {
66
+ "type": "string"
67
+ }
68
+ },
69
+ "out_of_scope": {
70
+ "type": "array",
71
+ "items": {
72
+ "type": "string"
73
+ }
74
+ }
75
+ },
76
+ "additionalProperties": false
77
+ },
78
+ "critical_assumptions": {
79
+ "type": "array",
80
+ "items": {
81
+ "type": "string"
82
+ }
83
+ },
84
+ "prototype_scope": {
85
+ "type": "object",
86
+ "required": [
87
+ "include",
88
+ "exclude"
89
+ ],
90
+ "properties": {
91
+ "include": {
92
+ "type": "array",
93
+ "items": {
94
+ "type": "string"
95
+ }
96
+ },
97
+ "exclude": {
98
+ "type": "array",
99
+ "items": {
100
+ "type": "string"
101
+ }
102
+ }
103
+ },
104
+ "additionalProperties": true
105
+ },
106
+ "acceptance": {
107
+ "type": "array",
108
+ "items": {
109
+ "type": "string"
110
+ }
111
+ },
112
+ "decision_options": {
113
+ "type": "array",
114
+ "items": {
115
+ "type": "string",
116
+ "enum": [
117
+ "continue",
118
+ "revise",
119
+ "pivot",
120
+ "stop",
121
+ "needs_more_evidence"
122
+ ]
123
+ }
124
+ }
125
+ },
126
+ "additionalProperties": true
127
+ }
@@ -0,0 +1,123 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://openworkflow.local/schemas/validation.schema.json",
4
+ "title": "OpenWorkflow Validation Contract",
5
+ "type": "object",
6
+ "required": [
7
+ "schema_version",
8
+ "contract_id",
9
+ "contract_type",
10
+ "title",
11
+ "status",
12
+ "core_question",
13
+ "feature_classification",
14
+ "critical_assumptions",
15
+ "prototype_scope",
16
+ "acceptance",
17
+ "decision_options"
18
+ ],
19
+ "properties": {
20
+ "schema_version": {
21
+ "type": "string"
22
+ },
23
+ "contract_id": {
24
+ "type": "string"
25
+ },
26
+ "contract_type": {
27
+ "const": "validation"
28
+ },
29
+ "title": {
30
+ "type": "string"
31
+ },
32
+ "status": {
33
+ "type": "string"
34
+ },
35
+ "core_question": {
36
+ "type": "string"
37
+ },
38
+ "feature_classification": {
39
+ "type": "object",
40
+ "required": [
41
+ "existential",
42
+ "supporting",
43
+ "later",
44
+ "out_of_scope"
45
+ ],
46
+ "properties": {
47
+ "existential": {
48
+ "type": "array",
49
+ "items": {
50
+ "type": "string"
51
+ }
52
+ },
53
+ "supporting": {
54
+ "type": "array",
55
+ "items": {
56
+ "type": "string"
57
+ }
58
+ },
59
+ "later": {
60
+ "type": "array",
61
+ "items": {
62
+ "type": "string"
63
+ }
64
+ },
65
+ "out_of_scope": {
66
+ "type": "array",
67
+ "items": {
68
+ "type": "string"
69
+ }
70
+ }
71
+ },
72
+ "additionalProperties": false
73
+ },
74
+ "critical_assumptions": {
75
+ "type": "array",
76
+ "items": {
77
+ "type": "string"
78
+ }
79
+ },
80
+ "prototype_scope": {
81
+ "type": "object",
82
+ "required": [
83
+ "include",
84
+ "exclude"
85
+ ],
86
+ "properties": {
87
+ "include": {
88
+ "type": "array",
89
+ "items": {
90
+ "type": "string"
91
+ }
92
+ },
93
+ "exclude": {
94
+ "type": "array",
95
+ "items": {
96
+ "type": "string"
97
+ }
98
+ }
99
+ },
100
+ "additionalProperties": true
101
+ },
102
+ "acceptance": {
103
+ "type": "array",
104
+ "items": {
105
+ "type": "string"
106
+ }
107
+ },
108
+ "decision_options": {
109
+ "type": "array",
110
+ "items": {
111
+ "type": "string",
112
+ "enum": [
113
+ "continue",
114
+ "revise",
115
+ "pivot",
116
+ "stop",
117
+ "needs_more_evidence"
118
+ ]
119
+ }
120
+ }
121
+ },
122
+ "additionalProperties": true
123
+ }
@@ -0,0 +1,78 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://openworkflow.local/schemas/vision-session.schema.json",
4
+ "title": "OpenWorkflow Vision Session Artifact",
5
+ "type": "object",
6
+ "required": [
7
+ "schema_version",
8
+ "contract_id",
9
+ "contract_type",
10
+ "artifact_type",
11
+ "title",
12
+ "status",
13
+ "current_question",
14
+ "stable_answers",
15
+ "unresolved_questions",
16
+ "vision_delta",
17
+ "handoff"
18
+ ],
19
+ "properties": {
20
+ "schema_version": {
21
+ "type": "string"
22
+ },
23
+ "contract_id": {
24
+ "type": "string"
25
+ },
26
+ "contract_type": {
27
+ "const": "vision"
28
+ },
29
+ "artifact_type": {
30
+ "const": "vision_session"
31
+ },
32
+ "title": {
33
+ "type": "string"
34
+ },
35
+ "status": {
36
+ "type": "string"
37
+ },
38
+ "current_question": {
39
+ "type": "string"
40
+ },
41
+ "stable_answers": {
42
+ "type": "array",
43
+ "items": {
44
+ "type": "string"
45
+ }
46
+ },
47
+ "unresolved_questions": {
48
+ "type": "array",
49
+ "items": {
50
+ "type": "string"
51
+ }
52
+ },
53
+ "vision_delta": {
54
+ "type": "object",
55
+ "additionalProperties": true
56
+ },
57
+ "handoff": {
58
+ "type": "object",
59
+ "required": [
60
+ "ready",
61
+ "next_command"
62
+ ],
63
+ "properties": {
64
+ "ready": {
65
+ "type": "boolean"
66
+ },
67
+ "next_command": {
68
+ "type": [
69
+ "string",
70
+ "null"
71
+ ]
72
+ }
73
+ },
74
+ "additionalProperties": true
75
+ }
76
+ },
77
+ "additionalProperties": true
78
+ }
@@ -0,0 +1,87 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://openworkflow.local/schemas/work-items.schema.json",
4
+ "title": "OpenWorkflow Work Items",
5
+ "type": "object",
6
+ "required": [
7
+ "schema_version",
8
+ "contract_id",
9
+ "contract_type",
10
+ "title",
11
+ "status",
12
+ "change_contract",
13
+ "items"
14
+ ],
15
+ "properties": {
16
+ "schema_version": {
17
+ "type": "string"
18
+ },
19
+ "contract_id": {
20
+ "type": "string"
21
+ },
22
+ "contract_type": {
23
+ "const": "work_items"
24
+ },
25
+ "title": {
26
+ "type": "string"
27
+ },
28
+ "status": {
29
+ "type": "string"
30
+ },
31
+ "change_contract": {
32
+ "type": "string"
33
+ },
34
+ "items": {
35
+ "type": "array",
36
+ "items": {
37
+ "type": "object",
38
+ "required": [
39
+ "task_id",
40
+ "title",
41
+ "status",
42
+ "owned_paths",
43
+ "acceptance"
44
+ ],
45
+ "properties": {
46
+ "task_id": {
47
+ "type": "string"
48
+ },
49
+ "title": {
50
+ "type": "string"
51
+ },
52
+ "status": {
53
+ "type": "string",
54
+ "enum": [
55
+ "planned",
56
+ "in_progress",
57
+ "done",
58
+ "blocked",
59
+ "deferred"
60
+ ]
61
+ },
62
+ "depends_on": {
63
+ "type": "array",
64
+ "items": {
65
+ "type": "string"
66
+ }
67
+ },
68
+ "owned_paths": {
69
+ "type": "array",
70
+ "items": {
71
+ "type": "string"
72
+ }
73
+ },
74
+ "acceptance": {
75
+ "type": "array",
76
+ "items": {
77
+ "type": "string"
78
+ }
79
+ }
80
+ },
81
+ "additionalProperties": true
82
+ }
83
+ }
84
+ },
85
+ "additionalProperties": true
86
+ }
87
+
@@ -0,0 +1,70 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://openworkflow.local/schemas/workflow-index.schema.json",
4
+ "title": "OpenWorkflow Workflow Index",
5
+ "type": "object",
6
+ "required": [
7
+ "schema_version",
8
+ "contract_id",
9
+ "contract_type",
10
+ "title",
11
+ "status",
12
+ "workflow_root",
13
+ "contracts"
14
+ ],
15
+ "properties": {
16
+ "schema_version": {
17
+ "type": "string"
18
+ },
19
+ "contract_id": {
20
+ "type": "string"
21
+ },
22
+ "contract_type": {
23
+ "const": "workflow"
24
+ },
25
+ "title": {
26
+ "type": "string"
27
+ },
28
+ "status": {
29
+ "type": "string"
30
+ },
31
+ "workflow_root": {
32
+ "type": "string"
33
+ },
34
+ "active_change": {
35
+ "type": [
36
+ "string",
37
+ "null"
38
+ ]
39
+ },
40
+ "contracts": {
41
+ "type": "array",
42
+ "items": {
43
+ "type": "object",
44
+ "required": [
45
+ "contract_id",
46
+ "contract_type",
47
+ "path",
48
+ "status"
49
+ ],
50
+ "properties": {
51
+ "contract_id": {
52
+ "type": "string"
53
+ },
54
+ "contract_type": {
55
+ "type": "string"
56
+ },
57
+ "path": {
58
+ "type": "string"
59
+ },
60
+ "status": {
61
+ "type": "string"
62
+ }
63
+ },
64
+ "additionalProperties": true
65
+ }
66
+ }
67
+ },
68
+ "additionalProperties": true
69
+ }
70
+