@qelos/aidev 0.1.14 → 0.1.15
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/CONTRIBUTING.md +1 -1
- package/aidev.log +450 -0
- package/dist/__tests__/ai-runners.test.d.ts +2 -0
- package/dist/__tests__/ai-runners.test.d.ts.map +1 -0
- package/dist/__tests__/ai-runners.test.js +167 -0
- package/dist/__tests__/ai-runners.test.js.map +1 -0
- package/dist/__tests__/schedule.test.js +96 -0
- package/dist/__tests__/schedule.test.js.map +1 -1
- package/dist/ai/claude.d.ts.map +1 -1
- package/dist/ai/claude.js +5 -0
- package/dist/ai/claude.js.map +1 -1
- package/dist/ai/cursor.d.ts.map +1 -1
- package/dist/ai/cursor.js +4 -1
- package/dist/ai/cursor.js.map +1 -1
- package/dist/ai/windsurf.d.ts.map +1 -1
- package/dist/ai/windsurf.js +4 -1
- package/dist/ai/windsurf.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +10 -2
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/schedule.d.ts +14 -0
- package/dist/commands/schedule.d.ts.map +1 -1
- package/dist/commands/schedule.js +246 -6
- package/dist/commands/schedule.js.map +1 -1
- package/dist/diagnostics.d.ts +14 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +89 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/platform.d.ts +7 -0
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +36 -0
- package/dist/platform.js.map +1 -1
- package/package.json +3 -3
package/CONTRIBUTING.md
CHANGED
package/aidev.log
CHANGED
|
@@ -1591,3 +1591,453 @@ hint: or --ff-only on the command line to override the configured default per
|
|
|
1591
1591
|
hint: invocation.
|
|
1592
1592
|
fatal: Need to specify how to reconcile divergent branches.
|
|
1593
1593
|
|
|
1594
|
+
|
|
1595
|
+
────────────────────────────────────────────────────────────
|
|
1596
|
+
2026-03-08T08:15:01.824Z [run] started
|
|
1597
|
+
────────────────────────────────────────────────────────────
|
|
1598
|
+
2026-03-08T08:15:01.913Z [info] Fetching tasks (filter: all)...
|
|
1599
|
+
2026-03-08T08:15:02.249Z [info] Found 0 tagged task(s)
|
|
1600
|
+
2026-03-08T08:15:02.250Z [success] Done. Processed: 0, Skipped: 0
|
|
1601
|
+
2026-03-08T08:20:41.687Z [warn] cursor clarification check failed — trying next runner
|
|
1602
|
+
2026-03-08T08:20:41.689Z [warn] cursor clarification check failed — trying next runner
|
|
1603
|
+
2026-03-08T08:20:41.689Z [warn] windsurf clarification check failed — trying next runner
|
|
1604
|
+
2026-03-08T08:20:41.689Z [warn] Clarification check failed for all runners — proceeding without clarification
|
|
1605
|
+
2026-03-08T08:20:41.689Z [warn] No AI runner available — skipping clarification check
|
|
1606
|
+
2026-03-08T08:20:41.871Z [error] Cannot create branch "task123/fix-bug": expected to be on "main" but currently on "some-other-branch"
|
|
1607
|
+
2026-03-08T08:20:42.028Z [error] Refusing to commit: expected branch "task123/fix-bug" but currently on "wrong-branch"
|
|
1608
|
+
2026-03-08T08:20:42.072Z [error] Refusing to commit directly to protected branch "main"
|
|
1609
|
+
2026-03-08T08:20:42.204Z [error] Refusing to push directly to protected branch "main"
|
|
1610
|
+
2026-03-08T08:20:42.299Z [error] Refusing to push: current branch "task123/fix-bug" does not match target branch "task456/other-task"
|
|
1611
|
+
2026-03-08T08:20:43.711Z [error] git pull failed: From /var/folders/88/xzz9sxx15s13cmqq5_1k0t480000gn/T/aidev-bare-0qT1RF
|
|
1612
|
+
* branch main -> FETCH_HEAD
|
|
1613
|
+
hint: You have divergent branches and need to specify how to reconcile them.
|
|
1614
|
+
hint: You can do so by running one of the following commands sometime before
|
|
1615
|
+
hint: your next pull:
|
|
1616
|
+
hint:
|
|
1617
|
+
hint: git config pull.rebase false # merge
|
|
1618
|
+
hint: git config pull.rebase true # rebase
|
|
1619
|
+
hint: git config pull.ff only # fast-forward only
|
|
1620
|
+
hint:
|
|
1621
|
+
hint: You can replace "git config" with "git config --global" to set a default
|
|
1622
|
+
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
|
|
1623
|
+
hint: or --ff-only on the command line to override the configured default per
|
|
1624
|
+
hint: invocation.
|
|
1625
|
+
fatal: Need to specify how to reconcile divergent branches.
|
|
1626
|
+
|
|
1627
|
+
|
|
1628
|
+
────────────────────────────────────────────────────────────
|
|
1629
|
+
2026-03-08T08:30:01.682Z [run] started
|
|
1630
|
+
────────────────────────────────────────────────────────────
|
|
1631
|
+
2026-03-08T08:30:01.786Z [info] Fetching tasks (filter: all)...
|
|
1632
|
+
2026-03-08T08:30:02.202Z [info] Found 0 tagged task(s)
|
|
1633
|
+
2026-03-08T08:30:02.203Z [success] Done. Processed: 0, Skipped: 0
|
|
1634
|
+
|
|
1635
|
+
────────────────────────────────────────────────────────────
|
|
1636
|
+
2026-03-08T08:45:01.604Z [run] started
|
|
1637
|
+
────────────────────────────────────────────────────────────
|
|
1638
|
+
2026-03-08T08:45:01.713Z [info] Fetching tasks (filter: all)...
|
|
1639
|
+
2026-03-08T08:45:02.173Z [info] Found 1 tagged task(s)
|
|
1640
|
+
2026-03-08T08:45:02.174Z [task] [86c8p6933] "on failed tasks, log also a terminal report" (status: open)
|
|
1641
|
+
2026-03-08T08:45:03.901Z [info] Running Cursor Agent...
|
|
1642
|
+
2026-03-08T08:45:05.866Z [warn] Cursor Agent exited with status 1
|
|
1643
|
+
2026-03-08T08:45:05.866Z [warn] cursor clarification check failed — trying next runner
|
|
1644
|
+
2026-03-08T08:45:05.867Z [info] Running Claude CLI...
|
|
1645
|
+
2026-03-08T08:45:07.327Z [warn] Claude exited with status 1
|
|
1646
|
+
2026-03-08T08:45:07.327Z [warn] claude clarification check failed — trying next runner
|
|
1647
|
+
2026-03-08T08:45:07.328Z [warn] Clarification check failed for all runners — proceeding without clarification
|
|
1648
|
+
2026-03-08T08:45:07.328Z [info] Implementing task: on failed tasks, log also a terminal report
|
|
1649
|
+
2026-03-08T08:45:12.336Z [info] Running cursor...
|
|
1650
|
+
2026-03-08T08:45:12.336Z [info] Running Cursor Agent...
|
|
1651
|
+
2026-03-08T08:45:13.999Z [warn] Cursor Agent exited with status 1
|
|
1652
|
+
2026-03-08T08:45:14.000Z [warn] cursor failed — trying next runner
|
|
1653
|
+
2026-03-08T08:45:14.000Z [info] Running claude...
|
|
1654
|
+
2026-03-08T08:45:14.000Z [info] Running Claude CLI...
|
|
1655
|
+
2026-03-08T08:45:15.296Z [warn] Claude exited with status 1
|
|
1656
|
+
2026-03-08T08:45:15.297Z [warn] claude failed — trying next runner
|
|
1657
|
+
2026-03-08T08:45:15.297Z [error] All AI runners failed or produced no changes
|
|
1658
|
+
2026-03-08T08:45:15.815Z [success] Done. Processed: 1, Skipped: 0
|
|
1659
|
+
|
|
1660
|
+
────────────────────────────────────────────────────────────
|
|
1661
|
+
2026-03-08T09:00:02.472Z [run] started
|
|
1662
|
+
────────────────────────────────────────────────────────────
|
|
1663
|
+
2026-03-08T09:00:02.568Z [info] Fetching tasks (filter: all)...
|
|
1664
|
+
2026-03-08T09:00:03.339Z [info] Found 1 tagged task(s)
|
|
1665
|
+
2026-03-08T09:00:03.340Z [task] [86c8p6933] "on failed tasks, log also a terminal report" (status: in progress)
|
|
1666
|
+
2026-03-08T09:00:05.053Z [info] Running Cursor Agent...
|
|
1667
|
+
2026-03-08T09:00:07.196Z [warn] Cursor Agent exited with status 1
|
|
1668
|
+
2026-03-08T09:00:07.197Z [warn] cursor clarification check failed — trying next runner
|
|
1669
|
+
2026-03-08T09:00:07.198Z [info] Running Claude CLI...
|
|
1670
|
+
2026-03-08T09:00:08.667Z [warn] Claude exited with status 1
|
|
1671
|
+
2026-03-08T09:00:08.668Z [warn] claude clarification check failed — trying next runner
|
|
1672
|
+
2026-03-08T09:00:08.669Z [warn] Clarification check failed for all runners — proceeding without clarification
|
|
1673
|
+
2026-03-08T09:00:08.669Z [info] Implementing task: on failed tasks, log also a terminal report
|
|
1674
|
+
2026-03-08T09:00:13.552Z [info] Running cursor...
|
|
1675
|
+
2026-03-08T09:00:13.553Z [info] Running Cursor Agent...
|
|
1676
|
+
2026-03-08T09:00:15.536Z [warn] Cursor Agent exited with status 1
|
|
1677
|
+
2026-03-08T09:00:15.537Z [warn] cursor failed — trying next runner
|
|
1678
|
+
2026-03-08T09:00:15.537Z [info] Running claude...
|
|
1679
|
+
2026-03-08T09:00:15.537Z [info] Running Claude CLI...
|
|
1680
|
+
2026-03-08T09:00:16.491Z [warn] Claude exited with status 1
|
|
1681
|
+
2026-03-08T09:00:16.492Z [warn] claude failed — trying next runner
|
|
1682
|
+
2026-03-08T09:00:16.492Z [error] All AI runners failed or produced no changes
|
|
1683
|
+
2026-03-08T09:00:16.831Z [success] Done. Processed: 1, Skipped: 0
|
|
1684
|
+
|
|
1685
|
+
────────────────────────────────────────────────────────────
|
|
1686
|
+
2026-03-08T09:12:06.466Z [run] started
|
|
1687
|
+
────────────────────────────────────────────────────────────
|
|
1688
|
+
2026-03-08T09:12:06.504Z [info] Fetching tasks (filter: all)...
|
|
1689
|
+
2026-03-08T09:12:07.064Z [info] Found 1 tagged task(s)
|
|
1690
|
+
2026-03-08T09:12:07.065Z [task] [86c8p6933] "on failed tasks, log also a terminal report" (status: open)
|
|
1691
|
+
2026-03-08T09:12:08.774Z [info] Running Cursor Agent...
|
|
1692
|
+
2026-03-08T09:12:25.727Z [info] Implementing task: on failed tasks, log also a terminal report
|
|
1693
|
+
2026-03-08T09:12:30.503Z [info] Running cursor...
|
|
1694
|
+
2026-03-08T09:12:30.504Z [info] Running Cursor Agent...
|
|
1695
|
+
2026-03-08T09:13:49.493Z [info] PR created: https://github.com/qelos-io/aidev/pull/10
|
|
1696
|
+
2026-03-08T09:13:50.376Z [success] Task implemented: branch 86c8p6933/on-failed-tasks-log-also-a-terminal-report pushed
|
|
1697
|
+
2026-03-08T09:13:50.377Z [success] Done. Processed: 1, Skipped: 0
|
|
1698
|
+
|
|
1699
|
+
────────────────────────────────────────────────────────────
|
|
1700
|
+
2026-03-08T09:15:02.080Z [run] started
|
|
1701
|
+
────────────────────────────────────────────────────────────
|
|
1702
|
+
2026-03-08T09:15:02.186Z [info] Fetching tasks (filter: all)...
|
|
1703
|
+
2026-03-08T09:15:02.577Z [info] Found 1 tagged task(s)
|
|
1704
|
+
2026-03-08T09:15:02.578Z [task] [86c8p6933] "on failed tasks, log also a terminal report" (status: review)
|
|
1705
|
+
2026-03-08T09:15:04.548Z [info] [86c8p6933] "on failed tasks, log also a terminal report" skipped — branch already exists (86c8p6933/on-failed-tasks-log-also-a-terminal-report) and no trigger word found
|
|
1706
|
+
2026-03-08T09:15:04.549Z [success] Done. Processed: 0, Skipped: 1
|
|
1707
|
+
|
|
1708
|
+
────────────────────────────────────────────────────────────
|
|
1709
|
+
2026-03-08T09:30:02.285Z [run] started
|
|
1710
|
+
────────────────────────────────────────────────────────────
|
|
1711
|
+
2026-03-08T09:30:02.389Z [info] Fetching tasks (filter: all)...
|
|
1712
|
+
2026-03-08T09:30:03.061Z [info] Found 1 tagged task(s)
|
|
1713
|
+
2026-03-08T09:30:03.061Z [task] [86c8p6933] "on failed tasks, log also a terminal report" (status: review)
|
|
1714
|
+
2026-03-08T09:30:05.002Z [info] [86c8p6933] "on failed tasks, log also a terminal report" skipped — branch already exists (86c8p6933/on-failed-tasks-log-also-a-terminal-report) and no trigger word found
|
|
1715
|
+
2026-03-08T09:30:05.003Z [success] Done. Processed: 0, Skipped: 1
|
|
1716
|
+
2026-03-08T09:38:29.669Z [warn] cursor clarification check failed — trying next runner
|
|
1717
|
+
2026-03-08T09:38:29.670Z [warn] cursor clarification check failed — trying next runner
|
|
1718
|
+
2026-03-08T09:38:29.670Z [warn] windsurf clarification check failed — trying next runner
|
|
1719
|
+
2026-03-08T09:38:29.670Z [warn] Clarification check failed for all runners — proceeding without clarification
|
|
1720
|
+
2026-03-08T09:38:29.671Z [warn] No AI runner available — skipping clarification check
|
|
1721
|
+
2026-03-08T09:38:29.855Z [error] Cannot create branch "task123/fix-bug": expected to be on "main" but currently on "some-other-branch"
|
|
1722
|
+
2026-03-08T09:38:30.029Z [error] Refusing to commit: expected branch "task123/fix-bug" but currently on "wrong-branch"
|
|
1723
|
+
2026-03-08T09:38:30.074Z [error] Refusing to commit directly to protected branch "main"
|
|
1724
|
+
2026-03-08T09:38:30.226Z [error] Refusing to push directly to protected branch "main"
|
|
1725
|
+
2026-03-08T09:38:30.325Z [error] Refusing to push: current branch "task123/fix-bug" does not match target branch "task456/other-task"
|
|
1726
|
+
2026-03-08T09:38:31.935Z [error] git pull failed: From /var/folders/88/xzz9sxx15s13cmqq5_1k0t480000gn/T/aidev-bare-W8gzRl
|
|
1727
|
+
* branch main -> FETCH_HEAD
|
|
1728
|
+
hint: You have divergent branches and need to specify how to reconcile them.
|
|
1729
|
+
hint: You can do so by running one of the following commands sometime before
|
|
1730
|
+
hint: your next pull:
|
|
1731
|
+
hint:
|
|
1732
|
+
hint: git config pull.rebase false # merge
|
|
1733
|
+
hint: git config pull.rebase true # rebase
|
|
1734
|
+
hint: git config pull.ff only # fast-forward only
|
|
1735
|
+
hint:
|
|
1736
|
+
hint: You can replace "git config" with "git config --global" to set a default
|
|
1737
|
+
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
|
|
1738
|
+
hint: or --ff-only on the command line to override the configured default per
|
|
1739
|
+
hint: invocation.
|
|
1740
|
+
fatal: Need to specify how to reconcile divergent branches.
|
|
1741
|
+
|
|
1742
|
+
|
|
1743
|
+
────────────────────────────────────────────────────────────
|
|
1744
|
+
2026-03-08T09:41:10.508Z [run] started
|
|
1745
|
+
────────────────────────────────────────────────────────────
|
|
1746
|
+
2026-03-08T09:41:10.546Z [info] Fetching tasks (filter: all)...
|
|
1747
|
+
2026-03-08T09:41:10.972Z [info] Found 1 tagged task(s)
|
|
1748
|
+
2026-03-08T09:41:10.973Z [task] [86c8p6933] "on failed tasks, log also a terminal report" (status: review)
|
|
1749
|
+
2026-03-08T09:41:13.142Z [info] [86c8p6933] "on failed tasks, log also a terminal report" skipped — branch already exists (86c8p6933/on-failed-tasks-log-also-a-terminal-report) and no trigger word found
|
|
1750
|
+
2026-03-08T09:41:13.142Z [success] Done. Processed: 0, Skipped: 1
|
|
1751
|
+
2026-03-08T09:42:11.170Z [warn] cursor clarification check failed — trying next runner
|
|
1752
|
+
2026-03-08T09:42:11.171Z [warn] cursor clarification check failed — trying next runner
|
|
1753
|
+
2026-03-08T09:42:11.171Z [warn] windsurf clarification check failed — trying next runner
|
|
1754
|
+
2026-03-08T09:42:11.172Z [warn] Clarification check failed for all runners — proceeding without clarification
|
|
1755
|
+
2026-03-08T09:42:11.172Z [warn] No AI runner available — skipping clarification check
|
|
1756
|
+
2026-03-08T09:42:11.351Z [error] Cannot create branch "task123/fix-bug": expected to be on "main" but currently on "some-other-branch"
|
|
1757
|
+
2026-03-08T09:42:11.510Z [error] Refusing to commit: expected branch "task123/fix-bug" but currently on "wrong-branch"
|
|
1758
|
+
2026-03-08T09:42:11.554Z [error] Refusing to commit directly to protected branch "main"
|
|
1759
|
+
2026-03-08T09:42:11.690Z [error] Refusing to push directly to protected branch "main"
|
|
1760
|
+
2026-03-08T09:42:11.781Z [error] Refusing to push: current branch "task123/fix-bug" does not match target branch "task456/other-task"
|
|
1761
|
+
2026-03-08T09:42:13.289Z [error] git pull failed: From /var/folders/88/xzz9sxx15s13cmqq5_1k0t480000gn/T/aidev-bare-JL1MH5
|
|
1762
|
+
* branch main -> FETCH_HEAD
|
|
1763
|
+
hint: You have divergent branches and need to specify how to reconcile them.
|
|
1764
|
+
hint: You can do so by running one of the following commands sometime before
|
|
1765
|
+
hint: your next pull:
|
|
1766
|
+
hint:
|
|
1767
|
+
hint: git config pull.rebase false # merge
|
|
1768
|
+
hint: git config pull.rebase true # rebase
|
|
1769
|
+
hint: git config pull.ff only # fast-forward only
|
|
1770
|
+
hint:
|
|
1771
|
+
hint: You can replace "git config" with "git config --global" to set a default
|
|
1772
|
+
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
|
|
1773
|
+
hint: or --ff-only on the command line to override the configured default per
|
|
1774
|
+
hint: invocation.
|
|
1775
|
+
fatal: Need to specify how to reconcile divergent branches.
|
|
1776
|
+
|
|
1777
|
+
|
|
1778
|
+
────────────────────────────────────────────────────────────
|
|
1779
|
+
2026-03-08T09:45:02.882Z [run] started
|
|
1780
|
+
────────────────────────────────────────────────────────────
|
|
1781
|
+
2026-03-08T09:45:02.973Z [info] Fetching tasks (filter: all)...
|
|
1782
|
+
2026-03-08T09:45:03.407Z [info] Found 1 tagged task(s)
|
|
1783
|
+
2026-03-08T09:45:03.407Z [task] [86c8p6933] "on failed tasks, log also a terminal report" (status: review)
|
|
1784
|
+
2026-03-08T09:45:05.350Z [info] [86c8p6933] "on failed tasks, log also a terminal report" skipped — branch already exists (86c8p6933/on-failed-tasks-log-also-a-terminal-report) and no trigger word found
|
|
1785
|
+
2026-03-08T09:45:05.350Z [success] Done. Processed: 0, Skipped: 1
|
|
1786
|
+
2026-03-08T09:45:25.141Z [warn] cursor clarification check failed — trying next runner
|
|
1787
|
+
2026-03-08T09:45:25.144Z [warn] cursor clarification check failed — trying next runner
|
|
1788
|
+
2026-03-08T09:45:25.144Z [warn] windsurf clarification check failed — trying next runner
|
|
1789
|
+
2026-03-08T09:45:25.144Z [warn] Clarification check failed for all runners — proceeding without clarification
|
|
1790
|
+
2026-03-08T09:45:25.144Z [warn] No AI runner available — skipping clarification check
|
|
1791
|
+
2026-03-08T09:45:25.332Z [error] Cannot create branch "task123/fix-bug": expected to be on "main" but currently on "some-other-branch"
|
|
1792
|
+
2026-03-08T09:45:25.504Z [error] Refusing to commit: expected branch "task123/fix-bug" but currently on "wrong-branch"
|
|
1793
|
+
2026-03-08T09:45:25.554Z [error] Refusing to commit directly to protected branch "main"
|
|
1794
|
+
2026-03-08T09:45:25.737Z [error] Refusing to push directly to protected branch "main"
|
|
1795
|
+
2026-03-08T09:45:25.841Z [error] Refusing to push: current branch "task123/fix-bug" does not match target branch "task456/other-task"
|
|
1796
|
+
2026-03-08T09:45:27.354Z [error] git pull failed: From /var/folders/88/xzz9sxx15s13cmqq5_1k0t480000gn/T/aidev-bare-XGUXaH
|
|
1797
|
+
* branch main -> FETCH_HEAD
|
|
1798
|
+
hint: You have divergent branches and need to specify how to reconcile them.
|
|
1799
|
+
hint: You can do so by running one of the following commands sometime before
|
|
1800
|
+
hint: your next pull:
|
|
1801
|
+
hint:
|
|
1802
|
+
hint: git config pull.rebase false # merge
|
|
1803
|
+
hint: git config pull.rebase true # rebase
|
|
1804
|
+
hint: git config pull.ff only # fast-forward only
|
|
1805
|
+
hint:
|
|
1806
|
+
hint: You can replace "git config" with "git config --global" to set a default
|
|
1807
|
+
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
|
|
1808
|
+
hint: or --ff-only on the command line to override the configured default per
|
|
1809
|
+
hint: invocation.
|
|
1810
|
+
fatal: Need to specify how to reconcile divergent branches.
|
|
1811
|
+
|
|
1812
|
+
2026-03-08T09:47:38.780Z [warn] cursor clarification check failed — trying next runner
|
|
1813
|
+
2026-03-08T09:47:38.782Z [warn] cursor clarification check failed — trying next runner
|
|
1814
|
+
2026-03-08T09:47:38.782Z [warn] windsurf clarification check failed — trying next runner
|
|
1815
|
+
2026-03-08T09:47:38.782Z [warn] Clarification check failed for all runners — proceeding without clarification
|
|
1816
|
+
2026-03-08T09:47:38.782Z [warn] No AI runner available — skipping clarification check
|
|
1817
|
+
2026-03-08T09:47:38.975Z [error] Cannot create branch "task123/fix-bug": expected to be on "main" but currently on "some-other-branch"
|
|
1818
|
+
2026-03-08T09:47:39.131Z [error] Refusing to commit: expected branch "task123/fix-bug" but currently on "wrong-branch"
|
|
1819
|
+
2026-03-08T09:47:39.175Z [error] Refusing to commit directly to protected branch "main"
|
|
1820
|
+
2026-03-08T09:47:39.306Z [error] Refusing to push directly to protected branch "main"
|
|
1821
|
+
2026-03-08T09:47:39.399Z [error] Refusing to push: current branch "task123/fix-bug" does not match target branch "task456/other-task"
|
|
1822
|
+
2026-03-08T09:47:40.903Z [error] git pull failed: From /var/folders/88/xzz9sxx15s13cmqq5_1k0t480000gn/T/aidev-bare-EReeBE
|
|
1823
|
+
* branch main -> FETCH_HEAD
|
|
1824
|
+
hint: You have divergent branches and need to specify how to reconcile them.
|
|
1825
|
+
hint: You can do so by running one of the following commands sometime before
|
|
1826
|
+
hint: your next pull:
|
|
1827
|
+
hint:
|
|
1828
|
+
hint: git config pull.rebase false # merge
|
|
1829
|
+
hint: git config pull.rebase true # rebase
|
|
1830
|
+
hint: git config pull.ff only # fast-forward only
|
|
1831
|
+
hint:
|
|
1832
|
+
hint: You can replace "git config" with "git config --global" to set a default
|
|
1833
|
+
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
|
|
1834
|
+
hint: or --ff-only on the command line to override the configured default per
|
|
1835
|
+
hint: invocation.
|
|
1836
|
+
fatal: Need to specify how to reconcile divergent branches.
|
|
1837
|
+
|
|
1838
|
+
2026-03-08T09:47:51.158Z [warn] cursor clarification check failed — trying next runner
|
|
1839
|
+
2026-03-08T09:47:51.159Z [warn] cursor clarification check failed — trying next runner
|
|
1840
|
+
2026-03-08T09:47:51.160Z [warn] windsurf clarification check failed — trying next runner
|
|
1841
|
+
2026-03-08T09:47:51.160Z [warn] Clarification check failed for all runners — proceeding without clarification
|
|
1842
|
+
2026-03-08T09:47:51.160Z [warn] No AI runner available — skipping clarification check
|
|
1843
|
+
2026-03-08T09:47:51.325Z [error] Cannot create branch "task123/fix-bug": expected to be on "main" but currently on "some-other-branch"
|
|
1844
|
+
2026-03-08T09:47:51.490Z [error] Refusing to commit: expected branch "task123/fix-bug" but currently on "wrong-branch"
|
|
1845
|
+
2026-03-08T09:47:51.535Z [error] Refusing to commit directly to protected branch "main"
|
|
1846
|
+
2026-03-08T09:47:51.676Z [error] Refusing to push directly to protected branch "main"
|
|
1847
|
+
2026-03-08T09:47:51.774Z [error] Refusing to push: current branch "task123/fix-bug" does not match target branch "task456/other-task"
|
|
1848
|
+
2026-03-08T09:47:53.312Z [error] git pull failed: From /var/folders/88/xzz9sxx15s13cmqq5_1k0t480000gn/T/aidev-bare-cwQtgI
|
|
1849
|
+
* branch main -> FETCH_HEAD
|
|
1850
|
+
hint: You have divergent branches and need to specify how to reconcile them.
|
|
1851
|
+
hint: You can do so by running one of the following commands sometime before
|
|
1852
|
+
hint: your next pull:
|
|
1853
|
+
hint:
|
|
1854
|
+
hint: git config pull.rebase false # merge
|
|
1855
|
+
hint: git config pull.rebase true # rebase
|
|
1856
|
+
hint: git config pull.ff only # fast-forward only
|
|
1857
|
+
hint:
|
|
1858
|
+
hint: You can replace "git config" with "git config --global" to set a default
|
|
1859
|
+
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
|
|
1860
|
+
hint: or --ff-only on the command line to override the configured default per
|
|
1861
|
+
hint: invocation.
|
|
1862
|
+
fatal: Need to specify how to reconcile divergent branches.
|
|
1863
|
+
|
|
1864
|
+
2026-03-08T09:48:10.205Z [warn] cursor clarification check failed — trying next runner
|
|
1865
|
+
2026-03-08T09:48:10.207Z [warn] cursor clarification check failed — trying next runner
|
|
1866
|
+
2026-03-08T09:48:10.207Z [warn] windsurf clarification check failed — trying next runner
|
|
1867
|
+
2026-03-08T09:48:10.207Z [warn] Clarification check failed for all runners — proceeding without clarification
|
|
1868
|
+
2026-03-08T09:48:10.207Z [warn] No AI runner available — skipping clarification check
|
|
1869
|
+
2026-03-08T09:48:10.384Z [error] Cannot create branch "task123/fix-bug": expected to be on "main" but currently on "some-other-branch"
|
|
1870
|
+
2026-03-08T09:48:10.543Z [error] Refusing to commit: expected branch "task123/fix-bug" but currently on "wrong-branch"
|
|
1871
|
+
2026-03-08T09:48:10.587Z [error] Refusing to commit directly to protected branch "main"
|
|
1872
|
+
2026-03-08T09:48:10.718Z [error] Refusing to push directly to protected branch "main"
|
|
1873
|
+
2026-03-08T09:48:10.804Z [error] Refusing to push: current branch "task123/fix-bug" does not match target branch "task456/other-task"
|
|
1874
|
+
2026-03-08T09:48:12.216Z [error] git pull failed: From /var/folders/88/xzz9sxx15s13cmqq5_1k0t480000gn/T/aidev-bare-c6WJdJ
|
|
1875
|
+
* branch main -> FETCH_HEAD
|
|
1876
|
+
hint: You have divergent branches and need to specify how to reconcile them.
|
|
1877
|
+
hint: You can do so by running one of the following commands sometime before
|
|
1878
|
+
hint: your next pull:
|
|
1879
|
+
hint:
|
|
1880
|
+
hint: git config pull.rebase false # merge
|
|
1881
|
+
hint: git config pull.rebase true # rebase
|
|
1882
|
+
hint: git config pull.ff only # fast-forward only
|
|
1883
|
+
hint:
|
|
1884
|
+
hint: You can replace "git config" with "git config --global" to set a default
|
|
1885
|
+
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
|
|
1886
|
+
hint: or --ff-only on the command line to override the configured default per
|
|
1887
|
+
hint: invocation.
|
|
1888
|
+
fatal: Need to specify how to reconcile divergent branches.
|
|
1889
|
+
|
|
1890
|
+
2026-03-08T09:48:45.719Z [warn] cursor clarification check failed — trying next runner
|
|
1891
|
+
2026-03-08T09:48:45.720Z [warn] cursor clarification check failed — trying next runner
|
|
1892
|
+
2026-03-08T09:48:45.720Z [warn] windsurf clarification check failed — trying next runner
|
|
1893
|
+
2026-03-08T09:48:45.720Z [warn] Clarification check failed for all runners — proceeding without clarification
|
|
1894
|
+
2026-03-08T09:48:45.720Z [warn] No AI runner available — skipping clarification check
|
|
1895
|
+
2026-03-08T09:48:45.890Z [error] Cannot create branch "task123/fix-bug": expected to be on "main" but currently on "some-other-branch"
|
|
1896
|
+
2026-03-08T09:48:46.045Z [error] Refusing to commit: expected branch "task123/fix-bug" but currently on "wrong-branch"
|
|
1897
|
+
2026-03-08T09:48:46.087Z [error] Refusing to commit directly to protected branch "main"
|
|
1898
|
+
2026-03-08T09:48:46.219Z [error] Refusing to push directly to protected branch "main"
|
|
1899
|
+
2026-03-08T09:48:46.312Z [error] Refusing to push: current branch "task123/fix-bug" does not match target branch "task456/other-task"
|
|
1900
|
+
2026-03-08T09:48:47.728Z [error] git pull failed: From /var/folders/88/xzz9sxx15s13cmqq5_1k0t480000gn/T/aidev-bare-k2S6XP
|
|
1901
|
+
* branch main -> FETCH_HEAD
|
|
1902
|
+
hint: You have divergent branches and need to specify how to reconcile them.
|
|
1903
|
+
hint: You can do so by running one of the following commands sometime before
|
|
1904
|
+
hint: your next pull:
|
|
1905
|
+
hint:
|
|
1906
|
+
hint: git config pull.rebase false # merge
|
|
1907
|
+
hint: git config pull.rebase true # rebase
|
|
1908
|
+
hint: git config pull.ff only # fast-forward only
|
|
1909
|
+
hint:
|
|
1910
|
+
hint: You can replace "git config" with "git config --global" to set a default
|
|
1911
|
+
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
|
|
1912
|
+
hint: or --ff-only on the command line to override the configured default per
|
|
1913
|
+
hint: invocation.
|
|
1914
|
+
fatal: Need to specify how to reconcile divergent branches.
|
|
1915
|
+
|
|
1916
|
+
2026-03-08T09:49:32.485Z [warn] cursor clarification check failed — trying next runner
|
|
1917
|
+
2026-03-08T09:49:32.488Z [warn] cursor clarification check failed — trying next runner
|
|
1918
|
+
2026-03-08T09:49:32.488Z [warn] windsurf clarification check failed — trying next runner
|
|
1919
|
+
2026-03-08T09:49:32.488Z [warn] Clarification check failed for all runners — proceeding without clarification
|
|
1920
|
+
2026-03-08T09:49:32.488Z [warn] No AI runner available — skipping clarification check
|
|
1921
|
+
2026-03-08T09:49:32.658Z [error] Cannot create branch "task123/fix-bug": expected to be on "main" but currently on "some-other-branch"
|
|
1922
|
+
2026-03-08T09:49:32.813Z [error] Refusing to commit: expected branch "task123/fix-bug" but currently on "wrong-branch"
|
|
1923
|
+
2026-03-08T09:49:32.857Z [error] Refusing to commit directly to protected branch "main"
|
|
1924
|
+
2026-03-08T09:49:32.989Z [error] Refusing to push directly to protected branch "main"
|
|
1925
|
+
2026-03-08T09:49:33.080Z [error] Refusing to push: current branch "task123/fix-bug" does not match target branch "task456/other-task"
|
|
1926
|
+
2026-03-08T09:49:34.507Z [error] git pull failed: From /var/folders/88/xzz9sxx15s13cmqq5_1k0t480000gn/T/aidev-bare-mJvrQI
|
|
1927
|
+
* branch main -> FETCH_HEAD
|
|
1928
|
+
hint: You have divergent branches and need to specify how to reconcile them.
|
|
1929
|
+
hint: You can do so by running one of the following commands sometime before
|
|
1930
|
+
hint: your next pull:
|
|
1931
|
+
hint:
|
|
1932
|
+
hint: git config pull.rebase false # merge
|
|
1933
|
+
hint: git config pull.rebase true # rebase
|
|
1934
|
+
hint: git config pull.ff only # fast-forward only
|
|
1935
|
+
hint:
|
|
1936
|
+
hint: You can replace "git config" with "git config --global" to set a default
|
|
1937
|
+
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
|
|
1938
|
+
hint: or --ff-only on the command line to override the configured default per
|
|
1939
|
+
hint: invocation.
|
|
1940
|
+
fatal: Need to specify how to reconcile divergent branches.
|
|
1941
|
+
|
|
1942
|
+
|
|
1943
|
+
────────────────────────────────────────────────────────────
|
|
1944
|
+
2026-03-08T10:00:02.857Z [run] started
|
|
1945
|
+
────────────────────────────────────────────────────────────
|
|
1946
|
+
2026-03-08T10:00:02.962Z [info] Fetching tasks (filter: all)...
|
|
1947
|
+
2026-03-08T10:00:03.596Z [info] Found 1 tagged task(s)
|
|
1948
|
+
2026-03-08T10:00:03.596Z [task] [86c8p6933] "on failed tasks, log also a terminal report" (status: review)
|
|
1949
|
+
2026-03-08T10:00:05.324Z [info] Running Cursor Agent...
|
|
1950
|
+
2026-03-08T10:00:07.596Z [warn] Cursor Agent exited with status 1
|
|
1951
|
+
2026-03-08T10:00:07.597Z [warn] cursor clarification check failed — trying next runner
|
|
1952
|
+
2026-03-08T10:00:07.598Z [info] Running Claude CLI...
|
|
1953
|
+
2026-03-08T10:00:08.572Z [warn] Claude exited with status 1
|
|
1954
|
+
2026-03-08T10:00:08.573Z [warn] claude clarification check failed — trying next runner
|
|
1955
|
+
2026-03-08T10:00:08.573Z [warn] Clarification check failed for all runners — proceeding without clarification
|
|
1956
|
+
2026-03-08T10:00:08.573Z [info] Implementing task: on failed tasks, log also a terminal report
|
|
1957
|
+
2026-03-08T10:00:13.040Z [error] git checkout -b 86c8p6933/on-failed-tasks-log-also-a-terminal-report failed: fatal: a branch named '86c8p6933/on-failed-tasks-log-also-a-terminal-report' already exists
|
|
1958
|
+
|
|
1959
|
+
2026-03-08T10:00:13.040Z [error] Failed to create branch 86c8p6933/on-failed-tasks-log-also-a-terminal-report
|
|
1960
|
+
2026-03-08T10:00:13.040Z [success] Done. Processed: 1, Skipped: 0
|
|
1961
|
+
|
|
1962
|
+
────────────────────────────────────────────────────────────
|
|
1963
|
+
2026-03-08T11:03:10.999Z [run] started
|
|
1964
|
+
────────────────────────────────────────────────────────────
|
|
1965
|
+
2026-03-08T11:03:11.108Z [info] Fetching tasks (filter: all)...
|
|
1966
|
+
2026-03-08T11:03:11.544Z [info] Found 1 tagged task(s)
|
|
1967
|
+
2026-03-08T11:03:11.544Z [task] [86c8p6933] "on failed tasks, log also a terminal report" (status: in progress)
|
|
1968
|
+
2026-03-08T11:03:13.244Z [info] Running Cursor Agent...
|
|
1969
|
+
2026-03-08T11:03:15.347Z [warn] Cursor Agent exited with status 1
|
|
1970
|
+
2026-03-08T11:03:15.347Z [warn] cursor clarification check failed — trying next runner
|
|
1971
|
+
2026-03-08T11:03:15.348Z [info] Running Claude CLI...
|
|
1972
|
+
2026-03-08T11:03:16.717Z [warn] Claude exited with status 1
|
|
1973
|
+
2026-03-08T11:03:16.717Z [warn] claude clarification check failed — trying next runner
|
|
1974
|
+
2026-03-08T11:03:16.717Z [warn] Clarification check failed for all runners — proceeding without clarification
|
|
1975
|
+
2026-03-08T11:03:16.718Z [info] Implementing task: on failed tasks, log also a terminal report
|
|
1976
|
+
2026-03-08T11:03:21.729Z [error] git checkout -b 86c8p6933/on-failed-tasks-log-also-a-terminal-report failed: fatal: a branch named '86c8p6933/on-failed-tasks-log-also-a-terminal-report' already exists
|
|
1977
|
+
|
|
1978
|
+
2026-03-08T11:03:21.729Z [error] Failed to create branch 86c8p6933/on-failed-tasks-log-also-a-terminal-report
|
|
1979
|
+
2026-03-08T11:03:21.730Z [success] Done. Processed: 1, Skipped: 0
|
|
1980
|
+
|
|
1981
|
+
────────────────────────────────────────────────────────────
|
|
1982
|
+
2026-03-08T11:15:02.084Z [run] started
|
|
1983
|
+
────────────────────────────────────────────────────────────
|
|
1984
|
+
2026-03-08T11:15:02.173Z [info] Fetching tasks (filter: all)...
|
|
1985
|
+
2026-03-08T11:15:02.831Z [info] Found 1 tagged task(s)
|
|
1986
|
+
2026-03-08T11:15:02.832Z [task] [86c8p6933] "on failed tasks, log also a terminal report" (status: in progress)
|
|
1987
|
+
2026-03-08T11:15:04.539Z [info] Running Cursor Agent...
|
|
1988
|
+
2026-03-08T11:15:06.583Z [warn] Cursor Agent exited with status 1
|
|
1989
|
+
2026-03-08T11:15:06.583Z [warn] cursor clarification check failed — trying next runner
|
|
1990
|
+
2026-03-08T11:15:06.584Z [info] Running Claude CLI...
|
|
1991
|
+
2026-03-08T11:15:07.602Z [warn] Claude exited with status 1
|
|
1992
|
+
2026-03-08T11:15:07.603Z [warn] claude clarification check failed — trying next runner
|
|
1993
|
+
2026-03-08T11:15:07.603Z [warn] Clarification check failed for all runners — proceeding without clarification
|
|
1994
|
+
2026-03-08T11:15:07.603Z [info] Implementing task: on failed tasks, log also a terminal report
|
|
1995
|
+
2026-03-08T11:15:12.061Z [error] git checkout -b 86c8p6933/on-failed-tasks-log-also-a-terminal-report failed: fatal: a branch named '86c8p6933/on-failed-tasks-log-also-a-terminal-report' already exists
|
|
1996
|
+
|
|
1997
|
+
2026-03-08T11:15:12.061Z [error] Failed to create branch 86c8p6933/on-failed-tasks-log-also-a-terminal-report
|
|
1998
|
+
2026-03-08T11:15:12.061Z [success] Done. Processed: 1, Skipped: 0
|
|
1999
|
+
|
|
2000
|
+
────────────────────────────────────────────────────────────
|
|
2001
|
+
2026-03-08T11:30:02.455Z [run] started
|
|
2002
|
+
────────────────────────────────────────────────────────────
|
|
2003
|
+
2026-03-08T11:30:02.549Z [info] Fetching tasks (filter: all)...
|
|
2004
|
+
2026-03-08T11:30:03.160Z [info] Found 1 tagged task(s)
|
|
2005
|
+
2026-03-08T11:30:03.161Z [task] [86c8p6933] "on failed tasks, log also a terminal report" (status: in progress)
|
|
2006
|
+
2026-03-08T11:30:04.872Z [info] Running Cursor Agent...
|
|
2007
|
+
2026-03-08T11:30:06.810Z [warn] Cursor Agent exited with status 1
|
|
2008
|
+
2026-03-08T11:30:06.810Z [warn] cursor clarification check failed — trying next runner
|
|
2009
|
+
2026-03-08T11:30:06.810Z [info] Running Claude CLI...
|
|
2010
|
+
2026-03-08T11:30:08.537Z [warn] Claude exited with status 1
|
|
2011
|
+
2026-03-08T11:30:08.540Z [warn] claude clarification check failed — trying next runner
|
|
2012
|
+
2026-03-08T11:30:08.541Z [warn] Clarification check failed for all runners — proceeding without clarification
|
|
2013
|
+
2026-03-08T11:30:08.542Z [info] Implementing task: on failed tasks, log also a terminal report
|
|
2014
|
+
2026-03-08T11:30:12.965Z [error] git checkout -b 86c8p6933/on-failed-tasks-log-also-a-terminal-report failed: fatal: a branch named '86c8p6933/on-failed-tasks-log-also-a-terminal-report' already exists
|
|
2015
|
+
|
|
2016
|
+
2026-03-08T11:30:12.965Z [error] Failed to create branch 86c8p6933/on-failed-tasks-log-also-a-terminal-report
|
|
2017
|
+
2026-03-08T11:30:12.965Z [success] Done. Processed: 1, Skipped: 0
|
|
2018
|
+
2026-03-08T11:31:16.557Z [warn] cursor clarification check failed — trying next runner
|
|
2019
|
+
2026-03-08T11:31:16.560Z [warn] cursor clarification check failed — trying next runner
|
|
2020
|
+
2026-03-08T11:31:16.560Z [warn] windsurf clarification check failed — trying next runner
|
|
2021
|
+
2026-03-08T11:31:16.560Z [warn] Clarification check failed for all runners — proceeding without clarification
|
|
2022
|
+
2026-03-08T11:31:16.560Z [warn] No AI runner available — skipping clarification check
|
|
2023
|
+
2026-03-08T11:31:16.756Z [error] Cannot create branch "task123/fix-bug": expected to be on "main" but currently on "some-other-branch"
|
|
2024
|
+
2026-03-08T11:31:16.921Z [error] Refusing to commit: expected branch "task123/fix-bug" but currently on "wrong-branch"
|
|
2025
|
+
2026-03-08T11:31:16.965Z [error] Refusing to commit directly to protected branch "main"
|
|
2026
|
+
2026-03-08T11:31:17.104Z [error] Refusing to push directly to protected branch "main"
|
|
2027
|
+
2026-03-08T11:31:17.203Z [error] Refusing to push: current branch "task123/fix-bug" does not match target branch "task456/other-task"
|
|
2028
|
+
2026-03-08T11:31:18.760Z [error] git pull failed: From /var/folders/88/xzz9sxx15s13cmqq5_1k0t480000gn/T/aidev-bare-PIBOT7
|
|
2029
|
+
* branch main -> FETCH_HEAD
|
|
2030
|
+
hint: You have divergent branches and need to specify how to reconcile them.
|
|
2031
|
+
hint: You can do so by running one of the following commands sometime before
|
|
2032
|
+
hint: your next pull:
|
|
2033
|
+
hint:
|
|
2034
|
+
hint: git config pull.rebase false # merge
|
|
2035
|
+
hint: git config pull.rebase true # rebase
|
|
2036
|
+
hint: git config pull.ff only # fast-forward only
|
|
2037
|
+
hint:
|
|
2038
|
+
hint: You can replace "git config" with "git config --global" to set a default
|
|
2039
|
+
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
|
|
2040
|
+
hint: or --ff-only on the command line to override the configured default per
|
|
2041
|
+
hint: invocation.
|
|
2042
|
+
fatal: Need to specify how to reconcile divergent branches.
|
|
2043
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-runners.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/ai-runners.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_test_1 = require("node:test");
|
|
7
|
+
const strict_1 = __importDefault(require("node:assert/strict"));
|
|
8
|
+
const node_test_2 = require("node:test");
|
|
9
|
+
const logger_1 = require("../logger");
|
|
10
|
+
const claude_1 = require("../ai/claude");
|
|
11
|
+
const cursor_1 = require("../ai/cursor");
|
|
12
|
+
const windsurf_1 = require("../ai/windsurf");
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
14
|
+
const childProcess = require('node:child_process');
|
|
15
|
+
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
16
|
+
function mockSpawnSync(overrides) {
|
|
17
|
+
return node_test_2.mock.method(childProcess, 'spawnSync', () => ({
|
|
18
|
+
pid: 1,
|
|
19
|
+
output: [],
|
|
20
|
+
stdout: '',
|
|
21
|
+
stderr: '',
|
|
22
|
+
status: 0,
|
|
23
|
+
signal: null,
|
|
24
|
+
error: undefined,
|
|
25
|
+
...overrides,
|
|
26
|
+
}));
|
|
27
|
+
}
|
|
28
|
+
function spyLogger() {
|
|
29
|
+
return {
|
|
30
|
+
info: node_test_2.mock.method(logger_1.logger, 'info', () => { }),
|
|
31
|
+
warn: node_test_2.mock.method(logger_1.logger, 'warn', () => { }),
|
|
32
|
+
debug: node_test_2.mock.method(logger_1.logger, 'debug', () => { }),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
// ─── ClaudeRunner ─────────────────────────────────────────────────────────────
|
|
36
|
+
(0, node_test_1.describe)('ClaudeRunner – failed tasks', () => {
|
|
37
|
+
(0, node_test_1.beforeEach)(() => node_test_2.mock.restoreAll());
|
|
38
|
+
(0, node_test_1.afterEach)(() => node_test_2.mock.restoreAll());
|
|
39
|
+
(0, node_test_1.it)('returns success=false when claude exits with non-zero status', async () => {
|
|
40
|
+
mockSpawnSync({ status: 1, stdout: '', stderr: 'something went wrong' });
|
|
41
|
+
spyLogger();
|
|
42
|
+
const runner = new claude_1.ClaudeRunner();
|
|
43
|
+
const result = await runner.run('test prompt');
|
|
44
|
+
strict_1.default.equal(result.success, false);
|
|
45
|
+
strict_1.default.equal(result.error, 'something went wrong');
|
|
46
|
+
});
|
|
47
|
+
(0, node_test_1.it)('logs a warning with exit status on failure', async () => {
|
|
48
|
+
mockSpawnSync({ status: 2, stdout: '', stderr: 'fatal error' });
|
|
49
|
+
const spies = spyLogger();
|
|
50
|
+
const runner = new claude_1.ClaudeRunner();
|
|
51
|
+
await runner.run('test prompt');
|
|
52
|
+
const warnCalls = spies.warn.mock.calls.map((c) => c.arguments[0]);
|
|
53
|
+
strict_1.default.ok(warnCalls.some((msg) => msg?.includes('status 2')));
|
|
54
|
+
});
|
|
55
|
+
(0, node_test_1.it)('logs stderr on failure', async () => {
|
|
56
|
+
mockSpawnSync({ status: 1, stdout: '', stderr: 'heap out of memory' });
|
|
57
|
+
const spies = spyLogger();
|
|
58
|
+
const runner = new claude_1.ClaudeRunner();
|
|
59
|
+
await runner.run('test prompt');
|
|
60
|
+
const warnCalls = spies.warn.mock.calls.map((c) => c.arguments[0]);
|
|
61
|
+
strict_1.default.ok(warnCalls.some((msg) => msg?.includes('heap out of memory')));
|
|
62
|
+
});
|
|
63
|
+
(0, node_test_1.it)('logs spawn error when present', async () => {
|
|
64
|
+
mockSpawnSync({ status: null, stdout: '', stderr: '', error: new Error('ENOENT') });
|
|
65
|
+
const spies = spyLogger();
|
|
66
|
+
const runner = new claude_1.ClaudeRunner();
|
|
67
|
+
await runner.run('test prompt');
|
|
68
|
+
const warnCalls = spies.warn.mock.calls.map((c) => c.arguments[0]);
|
|
69
|
+
strict_1.default.ok(warnCalls.some((msg) => msg?.includes('ENOENT')));
|
|
70
|
+
});
|
|
71
|
+
(0, node_test_1.it)('returns empty output on failure', async () => {
|
|
72
|
+
mockSpawnSync({ status: 1, stdout: '', stderr: 'err' });
|
|
73
|
+
spyLogger();
|
|
74
|
+
const runner = new claude_1.ClaudeRunner();
|
|
75
|
+
const result = await runner.run('test prompt');
|
|
76
|
+
strict_1.default.equal(result.output, '');
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
// ─── CursorRunner ─────────────────────────────────────────────────────────────
|
|
80
|
+
(0, node_test_1.describe)('CursorRunner – failed tasks', () => {
|
|
81
|
+
(0, node_test_1.beforeEach)(() => node_test_2.mock.restoreAll());
|
|
82
|
+
(0, node_test_1.afterEach)(() => node_test_2.mock.restoreAll());
|
|
83
|
+
(0, node_test_1.it)('returns success=false when cursor exits with non-zero status', async () => {
|
|
84
|
+
mockSpawnSync({ status: 1, stdout: '', stderr: 'cursor failed' });
|
|
85
|
+
spyLogger();
|
|
86
|
+
const runner = new cursor_1.CursorRunner();
|
|
87
|
+
const result = await runner.run('test prompt');
|
|
88
|
+
strict_1.default.equal(result.success, false);
|
|
89
|
+
strict_1.default.equal(result.error, 'cursor failed');
|
|
90
|
+
});
|
|
91
|
+
(0, node_test_1.it)('logs a warning with exit status on failure', async () => {
|
|
92
|
+
mockSpawnSync({ status: 3, stdout: '', stderr: 'timeout' });
|
|
93
|
+
const spies = spyLogger();
|
|
94
|
+
const runner = new cursor_1.CursorRunner();
|
|
95
|
+
await runner.run('test prompt');
|
|
96
|
+
const warnCalls = spies.warn.mock.calls.map((c) => c.arguments[0]);
|
|
97
|
+
strict_1.default.ok(warnCalls.some((msg) => msg?.includes('status 3')));
|
|
98
|
+
});
|
|
99
|
+
(0, node_test_1.it)('logs stderr on failure', async () => {
|
|
100
|
+
mockSpawnSync({ status: 1, stdout: '', stderr: 'workspace not found' });
|
|
101
|
+
const spies = spyLogger();
|
|
102
|
+
const runner = new cursor_1.CursorRunner();
|
|
103
|
+
await runner.run('test prompt');
|
|
104
|
+
const warnCalls = spies.warn.mock.calls.map((c) => c.arguments[0]);
|
|
105
|
+
strict_1.default.ok(warnCalls.some((msg) => msg?.includes('workspace not found')));
|
|
106
|
+
});
|
|
107
|
+
(0, node_test_1.it)('logs spawn error when present', async () => {
|
|
108
|
+
mockSpawnSync({ status: null, stdout: '', stderr: '', error: new Error('EACCES') });
|
|
109
|
+
const spies = spyLogger();
|
|
110
|
+
const runner = new cursor_1.CursorRunner();
|
|
111
|
+
await runner.run('test prompt');
|
|
112
|
+
const warnCalls = spies.warn.mock.calls.map((c) => c.arguments[0]);
|
|
113
|
+
strict_1.default.ok(warnCalls.some((msg) => msg?.includes('EACCES')));
|
|
114
|
+
});
|
|
115
|
+
(0, node_test_1.it)('returns empty output on failure', async () => {
|
|
116
|
+
mockSpawnSync({ status: 1, stdout: '', stderr: 'err' });
|
|
117
|
+
spyLogger();
|
|
118
|
+
const runner = new cursor_1.CursorRunner();
|
|
119
|
+
const result = await runner.run('test prompt');
|
|
120
|
+
strict_1.default.equal(result.output, '');
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
// ─── WindsurfRunner ───────────────────────────────────────────────────────────
|
|
124
|
+
(0, node_test_1.describe)('WindsurfRunner – failed tasks', () => {
|
|
125
|
+
(0, node_test_1.beforeEach)(() => node_test_2.mock.restoreAll());
|
|
126
|
+
(0, node_test_1.afterEach)(() => node_test_2.mock.restoreAll());
|
|
127
|
+
(0, node_test_1.it)('returns success=false when windsurf exits with non-zero status', async () => {
|
|
128
|
+
mockSpawnSync({ status: 1, stdout: '', stderr: 'windsurf crashed' });
|
|
129
|
+
spyLogger();
|
|
130
|
+
const runner = new windsurf_1.WindsurfRunner();
|
|
131
|
+
const result = await runner.run('test prompt');
|
|
132
|
+
strict_1.default.equal(result.success, false);
|
|
133
|
+
strict_1.default.equal(result.error, 'windsurf crashed');
|
|
134
|
+
});
|
|
135
|
+
(0, node_test_1.it)('logs a warning with exit status on failure', async () => {
|
|
136
|
+
mockSpawnSync({ status: 127, stdout: '', stderr: 'not found' });
|
|
137
|
+
const spies = spyLogger();
|
|
138
|
+
const runner = new windsurf_1.WindsurfRunner();
|
|
139
|
+
await runner.run('test prompt');
|
|
140
|
+
const warnCalls = spies.warn.mock.calls.map((c) => c.arguments[0]);
|
|
141
|
+
strict_1.default.ok(warnCalls.some((msg) => msg?.includes('status 127')));
|
|
142
|
+
});
|
|
143
|
+
(0, node_test_1.it)('logs stderr on failure', async () => {
|
|
144
|
+
mockSpawnSync({ status: 1, stdout: '', stderr: 'license expired' });
|
|
145
|
+
const spies = spyLogger();
|
|
146
|
+
const runner = new windsurf_1.WindsurfRunner();
|
|
147
|
+
await runner.run('test prompt');
|
|
148
|
+
const warnCalls = spies.warn.mock.calls.map((c) => c.arguments[0]);
|
|
149
|
+
strict_1.default.ok(warnCalls.some((msg) => msg?.includes('license expired')));
|
|
150
|
+
});
|
|
151
|
+
(0, node_test_1.it)('logs spawn error when present', async () => {
|
|
152
|
+
mockSpawnSync({ status: null, stdout: '', stderr: '', error: new Error('SIGTERM') });
|
|
153
|
+
const spies = spyLogger();
|
|
154
|
+
const runner = new windsurf_1.WindsurfRunner();
|
|
155
|
+
await runner.run('test prompt');
|
|
156
|
+
const warnCalls = spies.warn.mock.calls.map((c) => c.arguments[0]);
|
|
157
|
+
strict_1.default.ok(warnCalls.some((msg) => msg?.includes('SIGTERM')));
|
|
158
|
+
});
|
|
159
|
+
(0, node_test_1.it)('returns empty output on failure', async () => {
|
|
160
|
+
mockSpawnSync({ status: 1, stdout: '', stderr: 'err' });
|
|
161
|
+
spyLogger();
|
|
162
|
+
const runner = new windsurf_1.WindsurfRunner();
|
|
163
|
+
const result = await runner.run('test prompt');
|
|
164
|
+
strict_1.default.equal(result.output, '');
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
//# sourceMappingURL=ai-runners.test.js.map
|