@lmctl-ai/lmctl 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 (29) hide show
  1. package/LICENSE +36 -0
  2. package/README.md +36 -0
  3. package/bin/lmctl +4 -0
  4. package/dist/cli/index.js +2180 -0
  5. package/dist/cli/schema.sql +660 -0
  6. package/dist/cli/side_effect_classifier.json +19 -0
  7. package/dist/config/ai_test_templates/example-test.md.template +50 -0
  8. package/dist/config/ai_test_templates/index.md.template +27 -0
  9. package/dist/config/durable_memory_templates/index.md.template +29 -0
  10. package/dist/config/durable_memory_templates/skills_general.md.template +42 -0
  11. package/dist/config/durable_memory_templates/skills_lmdebug.md.template +31 -0
  12. package/dist/config/durable_memory_templates/skills_lmprobe.md.template +31 -0
  13. package/package.json +42 -0
  14. package/workflows/bugfix-extended-v2.compound.json +1018 -0
  15. package/workflows/bugfix-v2.compound.json +856 -0
  16. package/workflows/claim-check-spike-v2.compound.json +136 -0
  17. package/workflows/document-creation.compound.json +200 -0
  18. package/workflows/durable-memory-consolidation-v2.compound.json +185 -0
  19. package/workflows/example-v2.compound.json +200 -0
  20. package/workflows/image-qa.compound.json +128 -0
  21. package/workflows/index.jsonl +15 -0
  22. package/workflows/info-qa.compound.json +120 -0
  23. package/workflows/newspaper.compound.json +129 -0
  24. package/workflows/pr-fix.compound.json +183 -0
  25. package/workflows/pr-followup-v2.compound.json +969 -0
  26. package/workflows/provider-probe.compound.json +107 -0
  27. package/workflows/qa-suite.compound.json +186 -0
  28. package/workflows/spec-driven-task.compound.json +460 -0
  29. package/workflows/triage-v2.compound.json +721 -0
@@ -0,0 +1,856 @@
1
+ {
2
+ "schema_version": "lmctl/v3",
3
+ "definition_schema_version": 3,
4
+ "name": "bugfix-v2",
5
+ "version": 1,
6
+ "description": "Takes a bug description, asks an agent to diagnose and fix it in the project, then verifies and reports the outcome.",
7
+ "estimated_duration_ms": 300000,
8
+ "steps": [
9
+ {
10
+ "id": "s-claim-check-0862",
11
+ "name": "claim_check",
12
+ "type": "lmctl/review",
13
+ "typeVersion": 1,
14
+ "parameters": {
15
+ "max_loops": 5
16
+ },
17
+ "members": {
18
+ "coder": {
19
+ "team": "default",
20
+ "alias": "Coder"
21
+ }
22
+ }
23
+ },
24
+ {
25
+ "id": "s-dedup-check-62e6",
26
+ "name": "dedup_check",
27
+ "type": "lmctl/shell-step",
28
+ "typeVersion": 1,
29
+ "parameters": {
30
+ "command": "lmdedup --json",
31
+ "outcomes_from_exit": {
32
+ "0": "@terminal:exit_0",
33
+ "default": "@terminal:exit_default"
34
+ }
35
+ }
36
+ },
37
+ {
38
+ "id": "s-feasibility-dab8",
39
+ "name": "feasibility",
40
+ "type": "lmctl/review",
41
+ "typeVersion": 1,
42
+ "parameters": {
43
+ "max_loops": 5
44
+ },
45
+ "members": {
46
+ "coder": {
47
+ "team": "default",
48
+ "alias": "Coder"
49
+ }
50
+ }
51
+ },
52
+ {
53
+ "id": "s-reproduce-ad6a",
54
+ "name": "reproduce",
55
+ "type": "lmctl/review",
56
+ "typeVersion": 1,
57
+ "parameters": {
58
+ "writes_to_project_path": true,
59
+ "max_loops": 2
60
+ },
61
+ "members": {
62
+ "coder": {
63
+ "team": "default",
64
+ "alias": "Coder"
65
+ },
66
+ "reviewers": [
67
+ {
68
+ "team": "default",
69
+ "alias": "Reviewer1"
70
+ }
71
+ ]
72
+ }
73
+ },
74
+ {
75
+ "id": "s-root-cause-864d",
76
+ "name": "root_cause",
77
+ "type": "lmctl/review",
78
+ "typeVersion": 1,
79
+ "parameters": {
80
+ "max_loops": 5
81
+ },
82
+ "members": {
83
+ "coder": {
84
+ "team": "default",
85
+ "alias": "Coder"
86
+ }
87
+ }
88
+ },
89
+ {
90
+ "id": "s-fix-10e0",
91
+ "name": "fix",
92
+ "type": "lmctl/review",
93
+ "typeVersion": 1,
94
+ "parameters": {
95
+ "writes_to_project_path": true,
96
+ "max_loops": 5
97
+ },
98
+ "members": {
99
+ "coder": {
100
+ "team": "default",
101
+ "alias": "Coder"
102
+ }
103
+ }
104
+ },
105
+ {
106
+ "id": "s-focused-test-2f91",
107
+ "name": "focused_test",
108
+ "type": "lmctl/shell-step",
109
+ "typeVersion": 1,
110
+ "parameters": {
111
+ "command": "{{project.test_command}}",
112
+ "outcomes_from_exit": {
113
+ "0": "@terminal:exit_0",
114
+ "default": "@terminal:exit_default"
115
+ }
116
+ }
117
+ },
118
+ {
119
+ "id": "s-code-review-432b",
120
+ "name": "code_review",
121
+ "type": "lmctl/review",
122
+ "typeVersion": 1,
123
+ "parameters": {
124
+ "writes_to_project_path": true,
125
+ "max_loops": 3
126
+ },
127
+ "members": {
128
+ "coder": {
129
+ "team": "default",
130
+ "alias": "Coder"
131
+ },
132
+ "reviewers": [
133
+ {
134
+ "team": "default",
135
+ "alias": "Reviewer1"
136
+ }
137
+ ]
138
+ }
139
+ },
140
+ {
141
+ "id": "s-pr-quality-review-c646",
142
+ "name": "pr_quality_review",
143
+ "type": "lmctl/review",
144
+ "typeVersion": 1,
145
+ "parameters": {
146
+ "writes_to_project_path": true,
147
+ "max_loops": 3
148
+ },
149
+ "members": {
150
+ "coder": {
151
+ "team": "default",
152
+ "alias": "Coder"
153
+ },
154
+ "reviewers": [
155
+ {
156
+ "team": "default",
157
+ "alias": "Reviewer1"
158
+ }
159
+ ]
160
+ }
161
+ },
162
+ {
163
+ "id": "s-internal-pr-artifact-7055",
164
+ "name": "internal_pr_artifact",
165
+ "type": "lmctl/review",
166
+ "typeVersion": 1,
167
+ "parameters": {
168
+ "max_loops": 5
169
+ },
170
+ "members": {
171
+ "coder": {
172
+ "team": "default",
173
+ "alias": "Coder"
174
+ }
175
+ }
176
+ },
177
+ {
178
+ "id": "s-polish-236f",
179
+ "name": "polish",
180
+ "type": "lmctl/review",
181
+ "typeVersion": 1,
182
+ "parameters": {
183
+ "max_loops": 5
184
+ },
185
+ "members": {
186
+ "coder": {
187
+ "team": "default",
188
+ "alias": "Polisher"
189
+ }
190
+ }
191
+ },
192
+ {
193
+ "id": "s-template-detect-40a7",
194
+ "name": "template_detect",
195
+ "type": "lmctl/shell-step",
196
+ "typeVersion": 1,
197
+ "parameters": {
198
+ "command": "detect_pr_template.pl",
199
+ "outcomes_from_exit": {
200
+ "0": "@terminal:exit_0",
201
+ "2": "@terminal:exit_2",
202
+ "default": "@terminal:exit_default"
203
+ }
204
+ }
205
+ },
206
+ {
207
+ "id": "s-conform-48a4",
208
+ "name": "conform",
209
+ "type": "lmctl/review",
210
+ "typeVersion": 1,
211
+ "parameters": {
212
+ "max_loops": 5
213
+ },
214
+ "members": {
215
+ "coder": {
216
+ "team": "default",
217
+ "alias": "Conformer"
218
+ }
219
+ }
220
+ },
221
+ {
222
+ "id": "s-final-review-624a",
223
+ "name": "final_review",
224
+ "type": "lmctl/review",
225
+ "typeVersion": 1,
226
+ "parameters": {
227
+ "max_loops": 2
228
+ },
229
+ "members": {
230
+ "coder": {
231
+ "team": "default",
232
+ "alias": "Polisher"
233
+ },
234
+ "reviewers": [
235
+ {
236
+ "team": "default",
237
+ "alias": "FinalReviewer"
238
+ }
239
+ ]
240
+ }
241
+ },
242
+ {
243
+ "id": "s-pr-request-compose-ec01",
244
+ "name": "pr_request_compose",
245
+ "type": "lmctl/shell-step",
246
+ "typeVersion": 1,
247
+ "parameters": {
248
+ "command": "compose_pr_request.pl",
249
+ "outcomes_from_exit": {
250
+ "0": "@terminal:exit_0",
251
+ "default": "@terminal:exit_default"
252
+ }
253
+ }
254
+ },
255
+ {
256
+ "id": "s-pr-lint-c269",
257
+ "name": "pr_lint",
258
+ "type": "lmctl/shell-step",
259
+ "typeVersion": 1,
260
+ "parameters": {
261
+ "command": "pr_lint.pl",
262
+ "outcomes_from_exit": {
263
+ "0": "@terminal:exit_0",
264
+ "default": "@terminal:exit_default"
265
+ }
266
+ }
267
+ },
268
+ {
269
+ "id": "s-pr-submit-dry-run-3226",
270
+ "name": "pr_submit_dry_run",
271
+ "type": "lmctl/shell-step",
272
+ "typeVersion": 1,
273
+ "parameters": {
274
+ "command": "submit_pr_from_request.pl --dry-run",
275
+ "outcomes_from_exit": {
276
+ "0": "@terminal:exit_0",
277
+ "default": "@terminal:exit_default"
278
+ }
279
+ }
280
+ },
281
+ {
282
+ "id": "s-terminal-aborted-2379",
283
+ "name": "terminal:aborted",
284
+ "type": "lmctl/terminal",
285
+ "typeVersion": 1,
286
+ "parameters": {
287
+ "name": "aborted",
288
+ "kind": "failure"
289
+ }
290
+ },
291
+ {
292
+ "id": "s-terminal-claimed-86ed",
293
+ "name": "terminal:claimed",
294
+ "type": "lmctl/terminal",
295
+ "typeVersion": 1,
296
+ "parameters": {
297
+ "name": "claimed",
298
+ "kind": "neutral"
299
+ }
300
+ },
301
+ {
302
+ "id": "s-terminal-dup-pr-active-f6f0",
303
+ "name": "terminal:dup_pr_active",
304
+ "type": "lmctl/terminal",
305
+ "typeVersion": 1,
306
+ "parameters": {
307
+ "name": "dup_pr_active",
308
+ "kind": "neutral"
309
+ }
310
+ },
311
+ {
312
+ "id": "s-terminal-clarification-pr-6a6a",
313
+ "name": "terminal:clarification_pr",
314
+ "type": "lmctl/terminal",
315
+ "typeVersion": 1,
316
+ "parameters": {
317
+ "name": "clarification_pr",
318
+ "kind": "neutral"
319
+ }
320
+ },
321
+ {
322
+ "id": "s-terminal-not-reproducible-b178",
323
+ "name": "terminal:not_reproducible",
324
+ "type": "lmctl/terminal",
325
+ "typeVersion": 1,
326
+ "parameters": {
327
+ "name": "not_reproducible",
328
+ "kind": "neutral"
329
+ }
330
+ },
331
+ {
332
+ "id": "s-terminal-pr-ready-043f",
333
+ "name": "terminal:pr_ready",
334
+ "type": "lmctl/terminal",
335
+ "typeVersion": 1,
336
+ "parameters": {
337
+ "name": "pr_ready",
338
+ "kind": "success"
339
+ }
340
+ }
341
+ ],
342
+ "connections": {
343
+ "s-claim-check-0862": {
344
+ "approve": [
345
+ [
346
+ {
347
+ "step_id": "s-terminal-aborted-2379",
348
+ "type": "main",
349
+ "index": 0
350
+ }
351
+ ]
352
+ ],
353
+ "open": [
354
+ [
355
+ {
356
+ "step_id": "s-dedup-check-62e6",
357
+ "type": "main",
358
+ "index": 0
359
+ }
360
+ ]
361
+ ],
362
+ "claimed": [
363
+ [
364
+ {
365
+ "step_id": "s-terminal-claimed-86ed",
366
+ "type": "main",
367
+ "index": 0
368
+ }
369
+ ]
370
+ ],
371
+ "dup_pr_active": [
372
+ [
373
+ {
374
+ "step_id": "s-terminal-dup-pr-active-f6f0",
375
+ "type": "main",
376
+ "index": 0
377
+ }
378
+ ]
379
+ ],
380
+ "closed": [
381
+ [
382
+ {
383
+ "step_id": "s-terminal-aborted-2379",
384
+ "type": "main",
385
+ "index": 0
386
+ }
387
+ ]
388
+ ],
389
+ "failed": [
390
+ [
391
+ {
392
+ "step_id": "s-terminal-aborted-2379",
393
+ "type": "main",
394
+ "index": 0
395
+ }
396
+ ]
397
+ ]
398
+ },
399
+ "s-dedup-check-62e6": {
400
+ "exit_0": [
401
+ [
402
+ {
403
+ "step_id": "s-feasibility-dab8",
404
+ "type": "main",
405
+ "index": 0
406
+ }
407
+ ]
408
+ ],
409
+ "exit_default": [
410
+ [
411
+ {
412
+ "step_id": "s-terminal-aborted-2379",
413
+ "type": "main",
414
+ "index": 0
415
+ }
416
+ ]
417
+ ]
418
+ },
419
+ "s-feasibility-dab8": {
420
+ "approve": [
421
+ [
422
+ {
423
+ "step_id": "s-terminal-aborted-2379",
424
+ "type": "main",
425
+ "index": 0
426
+ }
427
+ ]
428
+ ],
429
+ "tractable": [
430
+ [
431
+ {
432
+ "step_id": "s-reproduce-ad6a",
433
+ "type": "main",
434
+ "index": 0
435
+ }
436
+ ]
437
+ ],
438
+ "blocked_setup": [
439
+ [
440
+ {
441
+ "step_id": "s-terminal-aborted-2379",
442
+ "type": "main",
443
+ "index": 0
444
+ }
445
+ ]
446
+ ],
447
+ "requires_clarification": [
448
+ [
449
+ {
450
+ "step_id": "s-terminal-clarification-pr-6a6a",
451
+ "type": "main",
452
+ "index": 0
453
+ }
454
+ ]
455
+ ],
456
+ "failed": [
457
+ [
458
+ {
459
+ "step_id": "s-terminal-aborted-2379",
460
+ "type": "main",
461
+ "index": 0
462
+ }
463
+ ]
464
+ ]
465
+ },
466
+ "s-reproduce-ad6a": {
467
+ "approve": [
468
+ [
469
+ {
470
+ "step_id": "s-root-cause-864d",
471
+ "type": "main",
472
+ "index": 0
473
+ }
474
+ ]
475
+ ],
476
+ "request_changes": [
477
+ [
478
+ {
479
+ "step_id": "s-reproduce-ad6a",
480
+ "type": "main",
481
+ "index": 0
482
+ }
483
+ ]
484
+ ],
485
+ "max_loops_exceeded": [
486
+ [
487
+ {
488
+ "step_id": "s-terminal-not-reproducible-b178",
489
+ "type": "main",
490
+ "index": 0
491
+ }
492
+ ]
493
+ ]
494
+ },
495
+ "s-root-cause-864d": {
496
+ "approve": [
497
+ [
498
+ {
499
+ "step_id": "s-terminal-aborted-2379",
500
+ "type": "main",
501
+ "index": 0
502
+ }
503
+ ]
504
+ ],
505
+ "found": [
506
+ [
507
+ {
508
+ "step_id": "s-fix-10e0",
509
+ "type": "main",
510
+ "index": 0
511
+ }
512
+ ]
513
+ ],
514
+ "hypothesized": [
515
+ [
516
+ {
517
+ "step_id": "s-fix-10e0",
518
+ "type": "main",
519
+ "index": 0
520
+ }
521
+ ]
522
+ ],
523
+ "none": [
524
+ [
525
+ {
526
+ "step_id": "s-terminal-aborted-2379",
527
+ "type": "main",
528
+ "index": 0
529
+ }
530
+ ]
531
+ ],
532
+ "failed": [
533
+ [
534
+ {
535
+ "step_id": "s-terminal-aborted-2379",
536
+ "type": "main",
537
+ "index": 0
538
+ }
539
+ ]
540
+ ]
541
+ },
542
+ "s-fix-10e0": {
543
+ "approve": [
544
+ [
545
+ {
546
+ "step_id": "s-terminal-aborted-2379",
547
+ "type": "main",
548
+ "index": 0
549
+ }
550
+ ]
551
+ ],
552
+ "applied": [
553
+ [
554
+ {
555
+ "step_id": "s-focused-test-2f91",
556
+ "type": "main",
557
+ "index": 0
558
+ }
559
+ ]
560
+ ],
561
+ "failed": [
562
+ [
563
+ {
564
+ "step_id": "s-terminal-aborted-2379",
565
+ "type": "main",
566
+ "index": 0
567
+ }
568
+ ]
569
+ ]
570
+ },
571
+ "s-focused-test-2f91": {
572
+ "exit_0": [
573
+ [
574
+ {
575
+ "step_id": "s-code-review-432b",
576
+ "type": "main",
577
+ "index": 0
578
+ }
579
+ ]
580
+ ],
581
+ "exit_default": [
582
+ [
583
+ {
584
+ "step_id": "s-fix-10e0",
585
+ "type": "main",
586
+ "index": 0
587
+ }
588
+ ]
589
+ ]
590
+ },
591
+ "s-code-review-432b": {
592
+ "approve": [
593
+ [
594
+ {
595
+ "step_id": "s-pr-quality-review-c646",
596
+ "type": "main",
597
+ "index": 0
598
+ }
599
+ ]
600
+ ],
601
+ "request_changes": [
602
+ [
603
+ {
604
+ "step_id": "s-code-review-432b",
605
+ "type": "main",
606
+ "index": 0
607
+ }
608
+ ]
609
+ ],
610
+ "max_loops_exceeded": [
611
+ [
612
+ {
613
+ "step_id": "s-terminal-aborted-2379",
614
+ "type": "main",
615
+ "index": 0
616
+ }
617
+ ]
618
+ ]
619
+ },
620
+ "s-pr-quality-review-c646": {
621
+ "approve": [
622
+ [
623
+ {
624
+ "step_id": "s-internal-pr-artifact-7055",
625
+ "type": "main",
626
+ "index": 0
627
+ }
628
+ ]
629
+ ],
630
+ "request_changes": [
631
+ [
632
+ {
633
+ "step_id": "s-pr-quality-review-c646",
634
+ "type": "main",
635
+ "index": 0
636
+ }
637
+ ]
638
+ ],
639
+ "max_loops_exceeded": [
640
+ [
641
+ {
642
+ "step_id": "s-terminal-aborted-2379",
643
+ "type": "main",
644
+ "index": 0
645
+ }
646
+ ]
647
+ ]
648
+ },
649
+ "s-internal-pr-artifact-7055": {
650
+ "approve": [
651
+ [
652
+ {
653
+ "step_id": "s-terminal-aborted-2379",
654
+ "type": "main",
655
+ "index": 0
656
+ }
657
+ ]
658
+ ],
659
+ "built": [
660
+ [
661
+ {
662
+ "step_id": "s-polish-236f",
663
+ "type": "main",
664
+ "index": 0
665
+ }
666
+ ]
667
+ ],
668
+ "failed": [
669
+ [
670
+ {
671
+ "step_id": "s-terminal-aborted-2379",
672
+ "type": "main",
673
+ "index": 0
674
+ }
675
+ ]
676
+ ]
677
+ },
678
+ "s-polish-236f": {
679
+ "approve": [
680
+ [
681
+ {
682
+ "step_id": "s-terminal-aborted-2379",
683
+ "type": "main",
684
+ "index": 0
685
+ }
686
+ ]
687
+ ],
688
+ "rewrote": [
689
+ [
690
+ {
691
+ "step_id": "s-template-detect-40a7",
692
+ "type": "main",
693
+ "index": 0
694
+ }
695
+ ]
696
+ ],
697
+ "failed": [
698
+ [
699
+ {
700
+ "step_id": "s-terminal-aborted-2379",
701
+ "type": "main",
702
+ "index": 0
703
+ }
704
+ ]
705
+ ]
706
+ },
707
+ "s-template-detect-40a7": {
708
+ "exit_0": [
709
+ [
710
+ {
711
+ "step_id": "s-conform-48a4",
712
+ "type": "main",
713
+ "index": 0
714
+ }
715
+ ]
716
+ ],
717
+ "exit_2": [
718
+ [
719
+ {
720
+ "step_id": "s-final-review-624a",
721
+ "type": "main",
722
+ "index": 0
723
+ }
724
+ ]
725
+ ],
726
+ "exit_default": [
727
+ [
728
+ {
729
+ "step_id": "s-terminal-aborted-2379",
730
+ "type": "main",
731
+ "index": 0
732
+ }
733
+ ]
734
+ ]
735
+ },
736
+ "s-conform-48a4": {
737
+ "approve": [
738
+ [
739
+ {
740
+ "step_id": "s-terminal-aborted-2379",
741
+ "type": "main",
742
+ "index": 0
743
+ }
744
+ ]
745
+ ],
746
+ "conformed": [
747
+ [
748
+ {
749
+ "step_id": "s-final-review-624a",
750
+ "type": "main",
751
+ "index": 0
752
+ }
753
+ ]
754
+ ],
755
+ "failed": [
756
+ [
757
+ {
758
+ "step_id": "s-terminal-aborted-2379",
759
+ "type": "main",
760
+ "index": 0
761
+ }
762
+ ]
763
+ ]
764
+ },
765
+ "s-final-review-624a": {
766
+ "approve": [
767
+ [
768
+ {
769
+ "step_id": "s-pr-request-compose-ec01",
770
+ "type": "main",
771
+ "index": 0
772
+ }
773
+ ]
774
+ ],
775
+ "request_changes": [
776
+ [
777
+ {
778
+ "step_id": "s-final-review-624a",
779
+ "type": "main",
780
+ "index": 0
781
+ }
782
+ ]
783
+ ],
784
+ "max_loops_exceeded": [
785
+ [
786
+ {
787
+ "step_id": "s-terminal-aborted-2379",
788
+ "type": "main",
789
+ "index": 0
790
+ }
791
+ ]
792
+ ]
793
+ },
794
+ "s-pr-request-compose-ec01": {
795
+ "exit_0": [
796
+ [
797
+ {
798
+ "step_id": "s-pr-lint-c269",
799
+ "type": "main",
800
+ "index": 0
801
+ }
802
+ ]
803
+ ],
804
+ "exit_default": [
805
+ [
806
+ {
807
+ "step_id": "s-terminal-aborted-2379",
808
+ "type": "main",
809
+ "index": 0
810
+ }
811
+ ]
812
+ ]
813
+ },
814
+ "s-pr-lint-c269": {
815
+ "exit_0": [
816
+ [
817
+ {
818
+ "step_id": "s-pr-submit-dry-run-3226",
819
+ "type": "main",
820
+ "index": 0
821
+ }
822
+ ]
823
+ ],
824
+ "exit_default": [
825
+ [
826
+ {
827
+ "step_id": "s-terminal-aborted-2379",
828
+ "type": "main",
829
+ "index": 0
830
+ }
831
+ ]
832
+ ]
833
+ },
834
+ "s-pr-submit-dry-run-3226": {
835
+ "exit_0": [
836
+ [
837
+ {
838
+ "step_id": "s-terminal-pr-ready-043f",
839
+ "type": "main",
840
+ "index": 0
841
+ }
842
+ ]
843
+ ],
844
+ "exit_default": [
845
+ [
846
+ {
847
+ "step_id": "s-terminal-aborted-2379",
848
+ "type": "main",
849
+ "index": 0
850
+ }
851
+ ]
852
+ ]
853
+ }
854
+ },
855
+ "entry_step_id": "s-claim-check-0862"
856
+ }