mustflow 2.23.0 → 2.24.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 (75) hide show
  1. package/README.md +12 -2
  2. package/dist/cli/commands/adapters.js +11 -9
  3. package/dist/cli/commands/api.js +263 -113
  4. package/dist/cli/commands/check.js +11 -7
  5. package/dist/cli/commands/classify.js +16 -42
  6. package/dist/cli/commands/context.js +18 -31
  7. package/dist/cli/commands/contract-lint.js +12 -7
  8. package/dist/cli/commands/dashboard.js +65 -114
  9. package/dist/cli/commands/docs.js +43 -26
  10. package/dist/cli/commands/doctor.js +11 -7
  11. package/dist/cli/commands/evidence.js +642 -0
  12. package/dist/cli/commands/explain-verify.js +1 -59
  13. package/dist/cli/commands/explain.js +84 -36
  14. package/dist/cli/commands/handoff.js +13 -17
  15. package/dist/cli/commands/impact.js +14 -20
  16. package/dist/cli/commands/index.js +15 -9
  17. package/dist/cli/commands/init.js +56 -70
  18. package/dist/cli/commands/line-endings.js +15 -9
  19. package/dist/cli/commands/map.js +30 -42
  20. package/dist/cli/commands/next.js +300 -0
  21. package/dist/cli/commands/onboard.js +136 -0
  22. package/dist/cli/commands/run.js +47 -42
  23. package/dist/cli/commands/search.js +43 -69
  24. package/dist/cli/commands/status.js +9 -6
  25. package/dist/cli/commands/update.js +16 -10
  26. package/dist/cli/commands/upgrade.js +9 -6
  27. package/dist/cli/commands/verify/args.js +55 -249
  28. package/dist/cli/commands/verify.js +2 -1
  29. package/dist/cli/commands/version-sources.js +9 -6
  30. package/dist/cli/commands/version.js +9 -6
  31. package/dist/cli/commands/workspace.js +564 -0
  32. package/dist/cli/i18n/en.js +60 -1
  33. package/dist/cli/i18n/es.js +60 -1
  34. package/dist/cli/i18n/fr.js +60 -1
  35. package/dist/cli/i18n/hi.js +60 -1
  36. package/dist/cli/i18n/ko.js +60 -1
  37. package/dist/cli/i18n/zh.js +60 -1
  38. package/dist/cli/index.js +28 -25
  39. package/dist/cli/lib/agent-context.js +8 -9
  40. package/dist/cli/lib/command-registry.js +24 -0
  41. package/dist/cli/lib/dashboard-html/client-script.js +1 -1
  42. package/dist/cli/lib/local-index/database-path.js +5 -0
  43. package/dist/cli/lib/local-index/database-read.js +88 -0
  44. package/dist/cli/lib/local-index/effect-graph-read-model.js +112 -0
  45. package/dist/cli/lib/local-index/freshness.js +60 -0
  46. package/dist/cli/lib/local-index/index.js +12 -1866
  47. package/dist/cli/lib/local-index/path-surface-read-model.js +134 -0
  48. package/dist/cli/lib/local-index/populate.js +474 -0
  49. package/dist/cli/lib/local-index/schema.js +413 -0
  50. package/dist/cli/lib/local-index/search-read-model.js +533 -0
  51. package/dist/cli/lib/local-index/search-text.js +79 -0
  52. package/dist/cli/lib/option-parser.js +93 -0
  53. package/dist/cli/lib/repo-map.js +2 -2
  54. package/dist/cli/lib/run-plan.js +5 -22
  55. package/dist/core/change-verification.js +11 -5
  56. package/dist/core/command-effects.js +1 -3
  57. package/dist/core/command-intent-eligibility.js +14 -0
  58. package/dist/core/command-preconditions.js +8 -4
  59. package/dist/core/command-run-constraints.js +43 -0
  60. package/dist/core/public-json-contracts.js +57 -0
  61. package/dist/core/test-selection.js +8 -2
  62. package/dist/core/verification-plan.js +32 -4
  63. package/package.json +1 -1
  64. package/schemas/README.md +16 -0
  65. package/schemas/api-serve-response.schema.json +89 -0
  66. package/schemas/change-verification-report.schema.json +4 -1
  67. package/schemas/contract-lint-report.schema.json +1 -0
  68. package/schemas/evidence-report.schema.json +287 -0
  69. package/schemas/explain-report.schema.json +4 -0
  70. package/schemas/next-report.schema.json +121 -0
  71. package/schemas/onboard-commands-report.schema.json +100 -0
  72. package/schemas/workspace-command-catalog.schema.json +172 -0
  73. package/schemas/workspace-status.schema.json +141 -0
  74. package/schemas/workspace-verification-plan.schema.json +195 -0
  75. package/templates/default/manifest.toml +1 -1
@@ -0,0 +1,172 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://mustflow.github.io/schemas/workspace-command-catalog.schema.json",
4
+ "title": "mustflow workspace command catalog report",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema_version",
9
+ "command",
10
+ "mustflow_root",
11
+ "workspace",
12
+ "policy",
13
+ "repository_count",
14
+ "total_intent_count",
15
+ "runnable_intent_count",
16
+ "repositories",
17
+ "issues"
18
+ ],
19
+ "properties": {
20
+ "schema_version": { "const": "1" },
21
+ "command": { "const": "workspace command-catalog" },
22
+ "mustflow_root": { "type": "string" },
23
+ "workspace": { "$ref": "#/$defs/workspace" },
24
+ "policy": { "$ref": "#/$defs/policy" },
25
+ "repository_count": { "type": "integer", "minimum": 0 },
26
+ "total_intent_count": { "type": "integer", "minimum": 0 },
27
+ "runnable_intent_count": { "type": "integer", "minimum": 0 },
28
+ "repositories": {
29
+ "type": "array",
30
+ "items": { "$ref": "#/$defs/repository" }
31
+ },
32
+ "issues": { "$ref": "#/$defs/stringArray" }
33
+ },
34
+ "$defs": {
35
+ "stringArray": {
36
+ "type": "array",
37
+ "items": { "type": "string" }
38
+ },
39
+ "nullableString": {
40
+ "type": ["string", "null"]
41
+ },
42
+ "workspace": {
43
+ "type": "object",
44
+ "additionalProperties": false,
45
+ "required": [
46
+ "enabled",
47
+ "roots",
48
+ "max_depth",
49
+ "max_repositories",
50
+ "follow_symlinks",
51
+ "stop_at_repository_root"
52
+ ],
53
+ "properties": {
54
+ "enabled": { "type": "boolean" },
55
+ "roots": { "$ref": "#/$defs/stringArray" },
56
+ "max_depth": { "type": "integer", "minimum": 1 },
57
+ "max_repositories": { "type": "integer", "minimum": 1 },
58
+ "follow_symlinks": { "type": "boolean" },
59
+ "stop_at_repository_root": { "type": "boolean" }
60
+ }
61
+ },
62
+ "policy": {
63
+ "type": "object",
64
+ "additionalProperties": false,
65
+ "required": [
66
+ "mode",
67
+ "grants_command_authority",
68
+ "parent_root_grants_child_authority",
69
+ "command_authority_per_root",
70
+ "run_entrypoint_per_root",
71
+ "executes_commands",
72
+ "raw_commands_included"
73
+ ],
74
+ "properties": {
75
+ "mode": { "const": "read_only" },
76
+ "grants_command_authority": { "const": false },
77
+ "parent_root_grants_child_authority": { "const": false },
78
+ "command_authority_per_root": { "const": ".mustflow/config/commands.toml" },
79
+ "run_entrypoint_per_root": { "const": "mf run <intent>" },
80
+ "executes_commands": { "const": false },
81
+ "raw_commands_included": { "const": false }
82
+ }
83
+ },
84
+ "commandSurface": {
85
+ "type": "object",
86
+ "additionalProperties": false,
87
+ "required": [
88
+ "path",
89
+ "exists",
90
+ "parse_error",
91
+ "total_intents",
92
+ "runnable_count",
93
+ "runnable_intents",
94
+ "blocked_count"
95
+ ],
96
+ "properties": {
97
+ "path": { "$ref": "#/$defs/nullableString" },
98
+ "exists": { "type": "boolean" },
99
+ "parse_error": { "$ref": "#/$defs/nullableString" },
100
+ "total_intents": { "type": ["integer", "null"], "minimum": 0 },
101
+ "runnable_count": { "type": ["integer", "null"], "minimum": 0 },
102
+ "runnable_intents": { "$ref": "#/$defs/stringArray" },
103
+ "blocked_count": { "type": ["integer", "null"], "minimum": 0 }
104
+ }
105
+ },
106
+ "repository": {
107
+ "type": "object",
108
+ "additionalProperties": false,
109
+ "required": [
110
+ "relative_path",
111
+ "status",
112
+ "command_contract",
113
+ "intent_count",
114
+ "runnable_count",
115
+ "blocked_count",
116
+ "intents",
117
+ "issues"
118
+ ],
119
+ "properties": {
120
+ "relative_path": { "type": "string" },
121
+ "status": { "enum": ["available", "contract_missing", "contract_invalid"] },
122
+ "command_contract": { "$ref": "#/$defs/commandSurface" },
123
+ "intent_count": { "type": "integer", "minimum": 0 },
124
+ "runnable_count": { "type": "integer", "minimum": 0 },
125
+ "blocked_count": { "type": "integer", "minimum": 0 },
126
+ "intents": {
127
+ "type": "array",
128
+ "items": { "$ref": "#/$defs/intent" }
129
+ },
130
+ "issues": { "$ref": "#/$defs/stringArray" }
131
+ }
132
+ },
133
+ "intent": {
134
+ "type": "object",
135
+ "additionalProperties": false,
136
+ "required": [
137
+ "name",
138
+ "description",
139
+ "status",
140
+ "lifecycle",
141
+ "run_policy",
142
+ "runnable",
143
+ "reason_code",
144
+ "detail",
145
+ "run_command",
146
+ "run_from_repository",
147
+ "timeout_seconds",
148
+ "required_after",
149
+ "writes",
150
+ "network",
151
+ "destructive"
152
+ ],
153
+ "properties": {
154
+ "name": { "type": "string" },
155
+ "description": { "$ref": "#/$defs/nullableString" },
156
+ "status": { "$ref": "#/$defs/nullableString" },
157
+ "lifecycle": { "$ref": "#/$defs/nullableString" },
158
+ "run_policy": { "$ref": "#/$defs/nullableString" },
159
+ "runnable": { "type": "boolean" },
160
+ "reason_code": { "$ref": "#/$defs/nullableString" },
161
+ "detail": { "$ref": "#/$defs/nullableString" },
162
+ "run_command": { "$ref": "#/$defs/nullableString" },
163
+ "run_from_repository": { "type": "string" },
164
+ "timeout_seconds": { "type": ["integer", "null"], "minimum": 1 },
165
+ "required_after": { "$ref": "#/$defs/stringArray" },
166
+ "writes": { "$ref": "#/$defs/stringArray" },
167
+ "network": { "type": ["boolean", "null"] },
168
+ "destructive": { "type": ["boolean", "null"] }
169
+ }
170
+ }
171
+ }
172
+ }
@@ -0,0 +1,141 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://mustflow.github.io/schemas/workspace-status.schema.json",
4
+ "title": "mustflow workspace status report",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema_version",
9
+ "command",
10
+ "mustflow_root",
11
+ "workspace",
12
+ "policy",
13
+ "repository_count",
14
+ "repositories",
15
+ "issues"
16
+ ],
17
+ "properties": {
18
+ "schema_version": { "const": "1" },
19
+ "command": { "const": "workspace status" },
20
+ "mustflow_root": { "type": "string" },
21
+ "workspace": {
22
+ "type": "object",
23
+ "additionalProperties": false,
24
+ "required": [
25
+ "enabled",
26
+ "roots",
27
+ "max_depth",
28
+ "max_repositories",
29
+ "follow_symlinks",
30
+ "stop_at_repository_root"
31
+ ],
32
+ "properties": {
33
+ "enabled": { "type": "boolean" },
34
+ "roots": { "$ref": "#/$defs/stringArray" },
35
+ "max_depth": { "type": "integer", "minimum": 1 },
36
+ "max_repositories": { "type": "integer", "minimum": 1 },
37
+ "follow_symlinks": { "type": "boolean" },
38
+ "stop_at_repository_root": { "type": "boolean" }
39
+ }
40
+ },
41
+ "policy": {
42
+ "type": "object",
43
+ "additionalProperties": false,
44
+ "required": [
45
+ "mode",
46
+ "grants_command_authority",
47
+ "parent_root_grants_child_authority",
48
+ "command_authority_per_root",
49
+ "run_entrypoint_per_root",
50
+ "executes_commands",
51
+ "raw_commands_included"
52
+ ],
53
+ "properties": {
54
+ "mode": { "const": "read_only" },
55
+ "grants_command_authority": { "const": false },
56
+ "parent_root_grants_child_authority": { "const": false },
57
+ "command_authority_per_root": { "const": ".mustflow/config/commands.toml" },
58
+ "run_entrypoint_per_root": { "const": "mf run <intent>" },
59
+ "executes_commands": { "const": false },
60
+ "raw_commands_included": { "const": false }
61
+ }
62
+ },
63
+ "repository_count": { "type": "integer", "minimum": 0 },
64
+ "repositories": {
65
+ "type": "array",
66
+ "items": { "$ref": "#/$defs/repository" }
67
+ },
68
+ "issues": { "$ref": "#/$defs/stringArray" }
69
+ },
70
+ "$defs": {
71
+ "stringArray": {
72
+ "type": "array",
73
+ "items": { "type": "string" }
74
+ },
75
+ "nullableString": {
76
+ "type": ["string", "null"]
77
+ },
78
+ "commandSurface": {
79
+ "type": "object",
80
+ "additionalProperties": false,
81
+ "required": [
82
+ "path",
83
+ "exists",
84
+ "parse_error",
85
+ "total_intents",
86
+ "runnable_count",
87
+ "runnable_intents",
88
+ "blocked_count"
89
+ ],
90
+ "properties": {
91
+ "path": { "$ref": "#/$defs/nullableString" },
92
+ "exists": { "type": "boolean" },
93
+ "parse_error": { "$ref": "#/$defs/nullableString" },
94
+ "total_intents": { "type": ["integer", "null"], "minimum": 0 },
95
+ "runnable_count": { "type": ["integer", "null"], "minimum": 0 },
96
+ "runnable_intents": { "$ref": "#/$defs/stringArray" },
97
+ "blocked_count": { "type": ["integer", "null"], "minimum": 0 }
98
+ }
99
+ },
100
+ "repository": {
101
+ "type": "object",
102
+ "additionalProperties": false,
103
+ "required": [
104
+ "relative_path",
105
+ "status",
106
+ "git_repository",
107
+ "mustflow",
108
+ "agent_rules",
109
+ "repo_map",
110
+ "mustflow_config",
111
+ "command_contract",
112
+ "context_index",
113
+ "skill_index",
114
+ "root_document_count",
115
+ "machine_contract_count",
116
+ "manifest_count",
117
+ "command_adapter_count",
118
+ "editing_policy_count",
119
+ "issues"
120
+ ],
121
+ "properties": {
122
+ "relative_path": { "type": "string" },
123
+ "status": { "enum": ["mustflow_ready", "contract_missing", "contract_invalid"] },
124
+ "git_repository": { "const": true },
125
+ "mustflow": { "type": "boolean" },
126
+ "agent_rules": { "$ref": "#/$defs/nullableString" },
127
+ "repo_map": { "$ref": "#/$defs/nullableString" },
128
+ "mustflow_config": { "$ref": "#/$defs/nullableString" },
129
+ "command_contract": { "$ref": "#/$defs/commandSurface" },
130
+ "context_index": { "$ref": "#/$defs/nullableString" },
131
+ "skill_index": { "$ref": "#/$defs/nullableString" },
132
+ "root_document_count": { "type": "integer", "minimum": 0 },
133
+ "machine_contract_count": { "type": "integer", "minimum": 0 },
134
+ "manifest_count": { "type": "integer", "minimum": 0 },
135
+ "command_adapter_count": { "type": "integer", "minimum": 0 },
136
+ "editing_policy_count": { "type": "integer", "minimum": 0 },
137
+ "issues": { "$ref": "#/$defs/stringArray" }
138
+ }
139
+ }
140
+ }
141
+ }
@@ -0,0 +1,195 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://mustflow.github.io/schemas/workspace-verification-plan.schema.json",
4
+ "title": "mustflow workspace verification plan report",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema_version",
9
+ "command",
10
+ "mustflow_root",
11
+ "workspace",
12
+ "policy",
13
+ "repository_count",
14
+ "total_changed_file_count",
15
+ "total_requirement_count",
16
+ "total_selected_intent_count",
17
+ "total_gap_count",
18
+ "repositories",
19
+ "issues"
20
+ ],
21
+ "properties": {
22
+ "schema_version": { "const": "1" },
23
+ "command": { "const": "workspace verify" },
24
+ "mustflow_root": { "type": "string" },
25
+ "workspace": { "$ref": "#/$defs/workspace" },
26
+ "policy": { "$ref": "#/$defs/policy" },
27
+ "repository_count": { "type": "integer", "minimum": 0 },
28
+ "total_changed_file_count": { "type": "integer", "minimum": 0 },
29
+ "total_requirement_count": { "type": "integer", "minimum": 0 },
30
+ "total_selected_intent_count": { "type": "integer", "minimum": 0 },
31
+ "total_gap_count": { "type": "integer", "minimum": 0 },
32
+ "repositories": {
33
+ "type": "array",
34
+ "items": { "$ref": "#/$defs/repository" }
35
+ },
36
+ "issues": { "$ref": "#/$defs/stringArray" }
37
+ },
38
+ "$defs": {
39
+ "stringArray": {
40
+ "type": "array",
41
+ "items": { "type": "string" }
42
+ },
43
+ "nullableString": {
44
+ "type": ["string", "null"]
45
+ },
46
+ "workspace": {
47
+ "type": "object",
48
+ "additionalProperties": false,
49
+ "required": [
50
+ "enabled",
51
+ "roots",
52
+ "max_depth",
53
+ "max_repositories",
54
+ "follow_symlinks",
55
+ "stop_at_repository_root"
56
+ ],
57
+ "properties": {
58
+ "enabled": { "type": "boolean" },
59
+ "roots": { "$ref": "#/$defs/stringArray" },
60
+ "max_depth": { "type": "integer", "minimum": 1 },
61
+ "max_repositories": { "type": "integer", "minimum": 1 },
62
+ "follow_symlinks": { "type": "boolean" },
63
+ "stop_at_repository_root": { "type": "boolean" }
64
+ }
65
+ },
66
+ "policy": {
67
+ "type": "object",
68
+ "additionalProperties": false,
69
+ "required": [
70
+ "mode",
71
+ "grants_command_authority",
72
+ "parent_root_grants_child_authority",
73
+ "command_authority_per_root",
74
+ "run_entrypoint_per_root",
75
+ "executes_commands",
76
+ "raw_commands_included",
77
+ "plan_command_per_root",
78
+ "selected_intents_run_via"
79
+ ],
80
+ "properties": {
81
+ "mode": { "const": "read_only" },
82
+ "grants_command_authority": { "const": false },
83
+ "parent_root_grants_child_authority": { "const": false },
84
+ "command_authority_per_root": { "const": ".mustflow/config/commands.toml" },
85
+ "run_entrypoint_per_root": { "const": "mf run <intent>" },
86
+ "executes_commands": { "const": false },
87
+ "raw_commands_included": { "const": false },
88
+ "plan_command_per_root": { "const": "mf verify --changed --plan-only --json" },
89
+ "selected_intents_run_via": { "const": "mf run <intent>" }
90
+ }
91
+ },
92
+ "commandSurface": {
93
+ "type": "object",
94
+ "additionalProperties": false,
95
+ "required": [
96
+ "path",
97
+ "exists",
98
+ "parse_error",
99
+ "total_intents",
100
+ "runnable_count",
101
+ "runnable_intents",
102
+ "blocked_count"
103
+ ],
104
+ "properties": {
105
+ "path": { "$ref": "#/$defs/nullableString" },
106
+ "exists": { "type": "boolean" },
107
+ "parse_error": { "$ref": "#/$defs/nullableString" },
108
+ "total_intents": { "type": ["integer", "null"], "minimum": 0 },
109
+ "runnable_count": { "type": ["integer", "null"], "minimum": 0 },
110
+ "runnable_intents": { "$ref": "#/$defs/stringArray" },
111
+ "blocked_count": { "type": ["integer", "null"], "minimum": 0 }
112
+ }
113
+ },
114
+ "repository": {
115
+ "type": "object",
116
+ "additionalProperties": false,
117
+ "required": [
118
+ "relative_path",
119
+ "status",
120
+ "command_contract",
121
+ "changed_file_count",
122
+ "changed_files",
123
+ "verification_plan_id",
124
+ "requirement_count",
125
+ "candidate_count",
126
+ "selected_intent_count",
127
+ "gap_count",
128
+ "selected_intents",
129
+ "gaps",
130
+ "issues"
131
+ ],
132
+ "properties": {
133
+ "relative_path": { "type": "string" },
134
+ "status": {
135
+ "enum": [
136
+ "available",
137
+ "contract_missing",
138
+ "contract_invalid",
139
+ "git_unavailable",
140
+ "plan_unavailable"
141
+ ]
142
+ },
143
+ "command_contract": { "$ref": "#/$defs/commandSurface" },
144
+ "changed_file_count": { "type": ["integer", "null"], "minimum": 0 },
145
+ "changed_files": { "$ref": "#/$defs/stringArray" },
146
+ "verification_plan_id": {
147
+ "type": ["string", "null"],
148
+ "pattern": "^sha256:[0-9a-f]{64}$"
149
+ },
150
+ "requirement_count": { "type": "integer", "minimum": 0 },
151
+ "candidate_count": { "type": "integer", "minimum": 0 },
152
+ "selected_intent_count": { "type": "integer", "minimum": 0 },
153
+ "gap_count": { "type": "integer", "minimum": 0 },
154
+ "selected_intents": {
155
+ "type": "array",
156
+ "items": { "$ref": "#/$defs/selectedIntent" }
157
+ },
158
+ "gaps": {
159
+ "type": "array",
160
+ "items": { "$ref": "#/$defs/gap" }
161
+ },
162
+ "issues": { "$ref": "#/$defs/stringArray" }
163
+ }
164
+ },
165
+ "selectedIntent": {
166
+ "type": "object",
167
+ "additionalProperties": false,
168
+ "required": [
169
+ "intent",
170
+ "run_command",
171
+ "run_from_repository",
172
+ "locks",
173
+ "conflict_count"
174
+ ],
175
+ "properties": {
176
+ "intent": { "type": "string" },
177
+ "run_command": { "$ref": "#/$defs/nullableString" },
178
+ "run_from_repository": { "type": "string" },
179
+ "locks": { "$ref": "#/$defs/stringArray" },
180
+ "conflict_count": { "type": "integer", "minimum": 0 }
181
+ }
182
+ },
183
+ "gap": {
184
+ "type": "object",
185
+ "additionalProperties": false,
186
+ "required": ["reason", "files", "surfaces", "detail"],
187
+ "properties": {
188
+ "reason": { "type": "string" },
189
+ "files": { "$ref": "#/$defs/stringArray" },
190
+ "surfaces": { "$ref": "#/$defs/stringArray" },
191
+ "detail": { "type": "string" }
192
+ }
193
+ }
194
+ }
195
+ }
@@ -1,6 +1,6 @@
1
1
  id = "default"
2
2
  name = "default"
3
- version = "2.23.0"
3
+ version = "2.24.2"
4
4
  description = "Minimal workflow for LLM agents to read, edit, and verify their work in a repository."
5
5
  common_root = "common"
6
6
  locales_root = "locales"