perttool 0.5.1 → 0.5.2

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 (32) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/README.md +40 -25
  3. package/dist/cli.js +18 -1
  4. package/dist/cli.js.map +1 -1
  5. package/dist/command/actuals-discovery.d.ts.map +1 -1
  6. package/dist/command/actuals-discovery.js +25 -3
  7. package/dist/command/actuals-discovery.js.map +1 -1
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/schema/registry.d.ts +19 -2
  12. package/dist/schema/registry.d.ts.map +1 -1
  13. package/dist/schema/registry.js +194 -4
  14. package/dist/schema/registry.js.map +1 -1
  15. package/dist/version.d.ts +1 -1
  16. package/dist/version.js +1 -1
  17. package/package.json +1 -1
  18. package/schemas/Perttool.AgentGuidanceResult.v1.schema.json +461 -6
  19. package/schemas/Perttool.AnalysisResult.v4.schema.json +685 -19
  20. package/schemas/Perttool.CheckResult.v3.schema.json +46 -2
  21. package/schemas/Perttool.CliError.v1.schema.json +40 -4
  22. package/schemas/Perttool.CommandHelpResult.v1.schema.json +218 -6
  23. package/schemas/Perttool.Common.v1.schema.json +1460 -75
  24. package/schemas/Perttool.GuideResult.v1.schema.json +36 -2
  25. package/schemas/Perttool.MutationResult.v3.schema.json +57 -6
  26. package/schemas/Perttool.NextResult.v5.schema.json +1137 -12
  27. package/schemas/Perttool.OverrideDecision.v1.schema.json +236 -4
  28. package/schemas/Perttool.ProjectHistoryResult.v1.schema.json +204 -60
  29. package/schemas/Perttool.ProjectResult.v3.schema.json +74 -1
  30. package/schemas/Perttool.SchemaResult.v1.schema.json +56 -3
  31. package/schemas/Perttool.UnitMigrationResult.v3.schema.json +152 -14
  32. package/schemas/Perttool.VelocityObservationResult.v1.schema.json +201 -2
@@ -2,6 +2,238 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://github.com/mako10k/perttool/schemas/Perttool.OverrideDecision.v1.schema.json",
4
4
  "title": "Perttool.OverrideDecision.v1",
5
+ "$defs": {
6
+ "triggerCode": {
7
+ "enum": [
8
+ "allowed_replaces_recommended",
9
+ "deferred_selected",
10
+ "discouraged_selected"
11
+ ]
12
+ },
13
+ "triggerCodes": {
14
+ "type": "array",
15
+ "items": {
16
+ "$ref": "#/$defs/triggerCode"
17
+ }
18
+ },
19
+ "reason": {
20
+ "type": "object",
21
+ "required": [
22
+ "code",
23
+ "text",
24
+ "evidence_references"
25
+ ],
26
+ "properties": {
27
+ "code": {
28
+ "enum": [
29
+ "human_priority_decision",
30
+ "external_commitment",
31
+ "incident_response",
32
+ "plan_correction_pending",
33
+ "resource_reallocation_pending",
34
+ "risk_acceptance",
35
+ "experiment",
36
+ "other_explicit_reason"
37
+ ]
38
+ },
39
+ "text": {
40
+ "type": "string"
41
+ },
42
+ "evidence_references": {
43
+ "type": "array",
44
+ "items": {
45
+ "type": "object",
46
+ "required": [
47
+ "kind",
48
+ "value"
49
+ ],
50
+ "properties": {
51
+ "kind": {
52
+ "enum": [
53
+ "issue",
54
+ "commit",
55
+ "document",
56
+ "url",
57
+ "other"
58
+ ]
59
+ },
60
+ "value": {
61
+ "type": "string"
62
+ }
63
+ },
64
+ "additionalProperties": false
65
+ }
66
+ }
67
+ },
68
+ "additionalProperties": false
69
+ },
70
+ "selection": {
71
+ "type": "object",
72
+ "required": [
73
+ "selected_task_ids",
74
+ "retained_recommended_task_ids",
75
+ "displaced_recommended_task_ids",
76
+ "selected_nonrecommended_task_ids",
77
+ "trigger_codes"
78
+ ],
79
+ "properties": {
80
+ "selected_task_ids": {
81
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
82
+ },
83
+ "retained_recommended_task_ids": {
84
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
85
+ },
86
+ "displaced_recommended_task_ids": {
87
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
88
+ },
89
+ "selected_nonrecommended_task_ids": {
90
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
91
+ },
92
+ "trigger_codes": {
93
+ "$ref": "#/$defs/triggerCodes"
94
+ }
95
+ },
96
+ "additionalProperties": false
97
+ },
98
+ "taskDecision": {
99
+ "type": "object",
100
+ "required": [
101
+ "task_id",
102
+ "normal_decision_id",
103
+ "normal_tier",
104
+ "normal_decisive_step_id",
105
+ "normal_reason_occurrence_ids",
106
+ "normal_comparison_ids",
107
+ "override_selected",
108
+ "trigger_codes",
109
+ "acknowledged_negative_fact_reason_ids"
110
+ ],
111
+ "properties": {
112
+ "task_id": {
113
+ "type": "string"
114
+ },
115
+ "normal_decision_id": {
116
+ "type": "string"
117
+ },
118
+ "normal_tier": {
119
+ "enum": [
120
+ "recommended",
121
+ "allowed",
122
+ "deferred",
123
+ "discouraged"
124
+ ]
125
+ },
126
+ "normal_decisive_step_id": {
127
+ "type": "string"
128
+ },
129
+ "normal_reason_occurrence_ids": {
130
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
131
+ },
132
+ "normal_comparison_ids": {
133
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
134
+ },
135
+ "override_selected": {
136
+ "const": true
137
+ },
138
+ "trigger_codes": {
139
+ "$ref": "#/$defs/triggerCodes"
140
+ },
141
+ "acknowledged_negative_fact_reason_ids": {
142
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
143
+ }
144
+ },
145
+ "additionalProperties": false
146
+ },
147
+ "feasibility": {
148
+ "type": "object",
149
+ "required": [
150
+ "selected_set_reference",
151
+ "start_feasible",
152
+ "active_task_ids",
153
+ "resource_witnesses",
154
+ "expression"
155
+ ],
156
+ "properties": {
157
+ "selected_set_reference": {
158
+ "type": "object",
159
+ "required": [
160
+ "kind",
161
+ "id"
162
+ ],
163
+ "properties": {
164
+ "kind": {
165
+ "const": "derived_set"
166
+ },
167
+ "id": {
168
+ "const": "O"
169
+ }
170
+ },
171
+ "additionalProperties": false
172
+ },
173
+ "start_feasible": {
174
+ "const": true
175
+ },
176
+ "active_task_ids": {
177
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
178
+ },
179
+ "resource_witnesses": {
180
+ "type": "array",
181
+ "items": {
182
+ "type": "object",
183
+ "required": [
184
+ "resource_id",
185
+ "capacity",
186
+ "active_usage",
187
+ "selected_usage",
188
+ "used",
189
+ "available_after_selection",
190
+ "selected_task_ids"
191
+ ],
192
+ "properties": {
193
+ "resource_id": {
194
+ "type": "string"
195
+ },
196
+ "capacity": {
197
+ "type": "integer",
198
+ "minimum": 1
199
+ },
200
+ "active_usage": {
201
+ "type": "integer",
202
+ "minimum": 0
203
+ },
204
+ "selected_usage": {
205
+ "type": "integer",
206
+ "minimum": 0
207
+ },
208
+ "used": {
209
+ "type": "integer",
210
+ "minimum": 0
211
+ },
212
+ "available_after_selection": {
213
+ "type": "integer",
214
+ "minimum": 0
215
+ },
216
+ "selected_task_ids": {
217
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
218
+ }
219
+ },
220
+ "additionalProperties": false
221
+ }
222
+ },
223
+ "expression": {
224
+ "oneOf": [
225
+ {
226
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/recommendationExpression"
227
+ },
228
+ {
229
+ "type": "null"
230
+ }
231
+ ]
232
+ }
233
+ },
234
+ "additionalProperties": false
235
+ }
236
+ },
5
237
  "type": "object",
6
238
  "required": [
7
239
  "schema_version",
@@ -140,19 +372,19 @@
140
372
  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
141
373
  },
142
374
  "reason": {
143
- "type": "object"
375
+ "$ref": "#/$defs/reason"
144
376
  },
145
377
  "selection": {
146
- "type": "object"
378
+ "$ref": "#/$defs/selection"
147
379
  },
148
380
  "task_decisions": {
149
381
  "type": "array",
150
382
  "items": {
151
- "type": "object"
383
+ "$ref": "#/$defs/taskDecision"
152
384
  }
153
385
  },
154
386
  "feasibility": {
155
- "type": "object"
387
+ "$ref": "#/$defs/feasibility"
156
388
  },
157
389
  "single_use": {
158
390
  "const": true
@@ -2,6 +2,206 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://github.com/mako10k/perttool/schemas/Perttool.ProjectHistoryResult.v1.schema.json",
4
4
  "title": "Perttool.ProjectHistoryResult.v1",
5
+ "$defs": {
6
+ "eventHistory": {
7
+ "type": "object",
8
+ "required": [
9
+ "event",
10
+ "evidence_class",
11
+ "first_seen_commit_id",
12
+ "last_seen_commit_id",
13
+ "removal_commit_id",
14
+ "payload_digest"
15
+ ],
16
+ "properties": {
17
+ "event": {
18
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/workEvent"
19
+ },
20
+ "evidence_class": {
21
+ "const": "declared_actual"
22
+ },
23
+ "first_seen_commit_id": {
24
+ "type": "string"
25
+ },
26
+ "last_seen_commit_id": {
27
+ "type": "string"
28
+ },
29
+ "removal_commit_id": {
30
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
31
+ },
32
+ "payload_digest": {
33
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/digest"
34
+ }
35
+ },
36
+ "additionalProperties": false
37
+ },
38
+ "gitRecordedTransition": {
39
+ "type": "object",
40
+ "required": [
41
+ "task_id",
42
+ "from_state",
43
+ "to_state",
44
+ "commit_id",
45
+ "recorded_at",
46
+ "source_digest",
47
+ "evidence_class"
48
+ ],
49
+ "properties": {
50
+ "task_id": {
51
+ "type": "string"
52
+ },
53
+ "from_state": {
54
+ "$ref": "#/$defs/recordedTaskState"
55
+ },
56
+ "to_state": {
57
+ "$ref": "#/$defs/recordedTaskState"
58
+ },
59
+ "commit_id": {
60
+ "type": "string"
61
+ },
62
+ "recorded_at": {
63
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableCalendarValue"
64
+ },
65
+ "source_digest": {
66
+ "type": "string"
67
+ },
68
+ "evidence_class": {
69
+ "const": "git_recorded_transition"
70
+ }
71
+ },
72
+ "additionalProperties": false
73
+ },
74
+ "recordedTaskState": {
75
+ "enum": [
76
+ "absent",
77
+ "planned",
78
+ "active",
79
+ "blocked",
80
+ "suspended",
81
+ "done"
82
+ ]
83
+ },
84
+ "suspensionInterval": {
85
+ "type": "object",
86
+ "required": [
87
+ "suspend_event_id",
88
+ "resume_event_id",
89
+ "start",
90
+ "finish",
91
+ "duration"
92
+ ],
93
+ "properties": {
94
+ "suspend_event_id": {
95
+ "type": "string"
96
+ },
97
+ "resume_event_id": {
98
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
99
+ },
100
+ "start": {
101
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/calendarValue"
102
+ },
103
+ "finish": {
104
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableCalendarValue"
105
+ },
106
+ "duration": {
107
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableQuantity"
108
+ }
109
+ },
110
+ "additionalProperties": false
111
+ },
112
+ "task": {
113
+ "type": "object",
114
+ "required": [
115
+ "task_id",
116
+ "coverage",
117
+ "event_ids",
118
+ "first_start",
119
+ "last_finish",
120
+ "suspension_intervals",
121
+ "cycle_time",
122
+ "derived_active_time",
123
+ "explicit_active_time",
124
+ "effort",
125
+ "planned_value",
126
+ "baseline_source",
127
+ "baseline_event_id",
128
+ "baseline_commit_id",
129
+ "qualifiers",
130
+ "unavailable_causes"
131
+ ],
132
+ "properties": {
133
+ "task_id": {
134
+ "type": "string"
135
+ },
136
+ "coverage": {
137
+ "enum": [
138
+ "open",
139
+ "finish_only",
140
+ "complete",
141
+ "unrecorded",
142
+ "unavailable"
143
+ ]
144
+ },
145
+ "event_ids": {
146
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
147
+ },
148
+ "first_start": {
149
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableCalendarValue"
150
+ },
151
+ "last_finish": {
152
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableCalendarValue"
153
+ },
154
+ "suspension_intervals": {
155
+ "type": "array",
156
+ "items": {
157
+ "$ref": "#/$defs/suspensionInterval"
158
+ }
159
+ },
160
+ "cycle_time": {
161
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableQuantity"
162
+ },
163
+ "derived_active_time": {
164
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableQuantity"
165
+ },
166
+ "explicit_active_time": {
167
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableQuantity"
168
+ },
169
+ "effort": {
170
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableQuantity"
171
+ },
172
+ "planned_value": {
173
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableQuantity"
174
+ },
175
+ "baseline_source": {
176
+ "type": [
177
+ "string",
178
+ "null"
179
+ ],
180
+ "enum": [
181
+ "start_baseline",
182
+ "finish_snapshot",
183
+ null
184
+ ]
185
+ },
186
+ "baseline_event_id": {
187
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
188
+ },
189
+ "baseline_commit_id": {
190
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
191
+ },
192
+ "qualifiers": {
193
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
194
+ },
195
+ "unavailable_causes": {
196
+ "type": "array",
197
+ "items": {
198
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/actualsCause"
199
+ }
200
+ }
201
+ },
202
+ "additionalProperties": false
203
+ }
204
+ },
5
205
  "type": "object",
6
206
  "required": [
7
207
  "schema_version",
@@ -58,80 +258,24 @@
58
258
  ]
59
259
  },
60
260
  "history": {
61
- "type": "object",
62
- "required": [
63
- "id",
64
- "version",
65
- "status",
66
- "traversal",
67
- "repository_snapshot_id",
68
- "repository_relative_path",
69
- "requested_revision",
70
- "resolved_revision",
71
- "source_digest",
72
- "inspected_commit_ids",
73
- "unavailable_causes"
74
- ],
75
- "properties": {
76
- "id": {
77
- "const": "perttool.project-history"
78
- },
79
- "version": {
80
- "const": 1
81
- },
82
- "status": {
83
- "enum": [
84
- "complete",
85
- "incomplete",
86
- "unavailable"
87
- ]
88
- },
89
- "traversal": {
90
- "const": "first_parent"
91
- },
92
- "repository_snapshot_id": {
93
- "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
94
- },
95
- "repository_relative_path": {
96
- "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
97
- },
98
- "requested_revision": {
99
- "type": "string"
100
- },
101
- "resolved_revision": {
102
- "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
103
- },
104
- "source_digest": {
105
- "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableDigest"
106
- },
107
- "inspected_commit_ids": {
108
- "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
109
- },
110
- "unavailable_causes": {
111
- "type": "array",
112
- "items": {
113
- "type": "object"
114
- }
115
- }
116
- },
117
- "additionalProperties": false
261
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/historyMetadata"
118
262
  },
119
263
  "events": {
120
264
  "type": "array",
121
265
  "items": {
122
- "type": "object"
266
+ "$ref": "#/$defs/eventHistory"
123
267
  }
124
268
  },
125
269
  "git_recorded_transitions": {
126
270
  "type": "array",
127
271
  "items": {
128
- "type": "object"
272
+ "$ref": "#/$defs/gitRecordedTransition"
129
273
  }
130
274
  },
131
275
  "tasks": {
132
276
  "type": "array",
133
277
  "items": {
134
- "type": "object"
278
+ "$ref": "#/$defs/task"
135
279
  }
136
280
  }
137
281
  },
@@ -123,7 +123,80 @@
123
123
  ]
124
124
  },
125
125
  "governance": {
126
- "type": "object"
126
+ "type": "object",
127
+ "required": [
128
+ "source_contract_version",
129
+ "declared",
130
+ "effective"
131
+ ],
132
+ "properties": {
133
+ "source_contract_version": {
134
+ "const": 1
135
+ },
136
+ "declared": {
137
+ "type": "object",
138
+ "required": [
139
+ "goal_owner",
140
+ "goal_delegates",
141
+ "dag_owner",
142
+ "dag_delegates"
143
+ ],
144
+ "properties": {
145
+ "goal_owner": {
146
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
147
+ },
148
+ "goal_delegates": {
149
+ "oneOf": [
150
+ {
151
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
152
+ },
153
+ {
154
+ "type": "null"
155
+ }
156
+ ]
157
+ },
158
+ "dag_owner": {
159
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
160
+ },
161
+ "dag_delegates": {
162
+ "oneOf": [
163
+ {
164
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
165
+ },
166
+ {
167
+ "type": "null"
168
+ }
169
+ ]
170
+ }
171
+ },
172
+ "additionalProperties": false
173
+ },
174
+ "effective": {
175
+ "type": "object",
176
+ "required": [
177
+ "goal_owner",
178
+ "goal_delegates",
179
+ "dag_owner",
180
+ "dag_delegates"
181
+ ],
182
+ "properties": {
183
+ "goal_owner": {
184
+ "type": "string"
185
+ },
186
+ "goal_delegates": {
187
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
188
+ },
189
+ "dag_owner": {
190
+ "type": "string"
191
+ },
192
+ "dag_delegates": {
193
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
194
+ }
195
+ },
196
+ "additionalProperties": false
197
+ }
198
+ },
199
+ "additionalProperties": false
127
200
  },
128
201
  "critical_epsilon": {
129
202
  "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"