@iinm/plain-agent 1.14.5 → 1.14.7

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/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Plain Agent
2
2
 
3
3
  [![CodeQL](https://github.com/iinm/plain-agent/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/iinm/plain-agent/actions/workflows/github-code-scanning/codeql)
4
- [![Socket Badge](https://badge.socket.dev/npm/package/@iinm/plain-agent/1.14.5)](https://socket.dev/npm/package/@iinm/plain-agent)
4
+ [![Socket Badge](https://badge.socket.dev/npm/package/@iinm/plain-agent/1.14.7)](https://socket.dev/npm/package/@iinm/plain-agent)
5
5
  [![install size](https://packagephobia.com/badge?p=@iinm/plain-agent)](https://packagephobia.com/result?p=@iinm/plain-agent)
6
6
 
7
7
  A lightweight terminal-based coding agent focused on safety and low token cost
@@ -1468,8 +1468,8 @@
1468
1468
  "autoCompact": { "inputTokensKeys": ["input_tokens"] }
1469
1469
  },
1470
1470
  {
1471
- "name": "gpt-5.4-mini",
1472
- "variant": "thinking-xhigh",
1471
+ "name": "gpt-5.5",
1472
+ "variant": "thinking-medium",
1473
1473
  "platform": {
1474
1474
  "name": "openai",
1475
1475
  "variant": "default",
@@ -1478,8 +1478,8 @@
1478
1478
  "model": {
1479
1479
  "format": "openai-responses",
1480
1480
  "config": {
1481
- "model": "gpt-5.4-mini",
1482
- "reasoning": { "effort": "xhigh", "summary": "auto" },
1481
+ "model": "gpt-5.5",
1482
+ "reasoning": { "effort": "medium", "summary": "auto" },
1483
1483
  "store": false,
1484
1484
  "include": ["reasoning.encrypted_content"]
1485
1485
  }
@@ -1488,16 +1488,16 @@
1488
1488
  "currency": "USD",
1489
1489
  "unit": "1M",
1490
1490
  "prices": {
1491
- "input_tokens": 0.75,
1492
- "input_tokens_details.cached_tokens": -0.675,
1493
- "output_tokens": 4.5
1491
+ "input_tokens": 5,
1492
+ "input_tokens_details.cached_tokens": -4.5,
1493
+ "output_tokens": 30
1494
1494
  }
1495
1495
  },
1496
1496
  "autoCompact": { "inputTokensKeys": ["input_tokens"] }
1497
1497
  },
1498
1498
  {
1499
1499
  "name": "gpt-5.5",
1500
- "variant": "thinking-medium",
1500
+ "variant": "thinking-high",
1501
1501
  "platform": {
1502
1502
  "name": "openai",
1503
1503
  "variant": "default",
@@ -1507,7 +1507,7 @@
1507
1507
  "format": "openai-responses",
1508
1508
  "config": {
1509
1509
  "model": "gpt-5.5",
1510
- "reasoning": { "effort": "medium", "summary": "auto" },
1510
+ "reasoning": { "effort": "high", "summary": "auto" },
1511
1511
  "store": false,
1512
1512
  "include": ["reasoning.encrypted_content"]
1513
1513
  }
@@ -1524,8 +1524,8 @@
1524
1524
  "autoCompact": { "inputTokensKeys": ["input_tokens"] }
1525
1525
  },
1526
1526
  {
1527
- "name": "gpt-5.5",
1528
- "variant": "thinking-high",
1527
+ "name": "gpt-5.6-sol",
1528
+ "variant": "thinking-medium",
1529
1529
  "platform": {
1530
1530
  "name": "openai",
1531
1531
  "variant": "default",
@@ -1534,8 +1534,8 @@
1534
1534
  "model": {
1535
1535
  "format": "openai-responses",
1536
1536
  "config": {
1537
- "model": "gpt-5.5",
1538
- "reasoning": { "effort": "high", "summary": "auto" },
1537
+ "model": "gpt-5.6-sol",
1538
+ "reasoning": { "effort": "medium", "summary": "auto" },
1539
1539
  "store": false,
1540
1540
  "include": ["reasoning.encrypted_content"]
1541
1541
  }
@@ -1552,8 +1552,8 @@
1552
1552
  "autoCompact": { "inputTokensKeys": ["input_tokens"] }
1553
1553
  },
1554
1554
  {
1555
- "name": "gpt-5.5",
1556
- "variant": "thinking-xhigh",
1555
+ "name": "gpt-5.6-sol",
1556
+ "variant": "thinking-high",
1557
1557
  "platform": {
1558
1558
  "name": "openai",
1559
1559
  "variant": "default",
@@ -1562,8 +1562,8 @@
1562
1562
  "model": {
1563
1563
  "format": "openai-responses",
1564
1564
  "config": {
1565
- "model": "gpt-5.5",
1566
- "reasoning": { "effort": "xhigh", "summary": "auto" },
1565
+ "model": "gpt-5.6-sol",
1566
+ "reasoning": { "effort": "high", "summary": "auto" },
1567
1567
  "store": false,
1568
1568
  "include": ["reasoning.encrypted_content"]
1569
1569
  }
@@ -1579,18 +1579,18 @@
1579
1579
  },
1580
1580
  "autoCompact": { "inputTokensKeys": ["input_tokens"] }
1581
1581
  },
1582
-
1583
1582
  {
1584
- "name": "gpt-5.4-mini",
1585
- "variant": "thinking-medium-azure",
1583
+ "name": "gpt-5.6-terra",
1584
+ "variant": "thinking-medium",
1586
1585
  "platform": {
1587
- "name": "azure",
1588
- "variant": "openai"
1586
+ "name": "openai",
1587
+ "variant": "default",
1588
+ "baseURL": "https://api.openai.com"
1589
1589
  },
1590
1590
  "model": {
1591
1591
  "format": "openai-responses",
1592
1592
  "config": {
1593
- "model": "gpt-5.4-mini",
1593
+ "model": "gpt-5.6-terra",
1594
1594
  "reasoning": { "effort": "medium", "summary": "auto" },
1595
1595
  "store": false,
1596
1596
  "include": ["reasoning.encrypted_content"]
@@ -1600,16 +1600,101 @@
1600
1600
  "currency": "USD",
1601
1601
  "unit": "1M",
1602
1602
  "prices": {
1603
- "input_tokens": 0.75,
1604
- "input_tokens_details.cached_tokens": -0.675,
1605
- "output_tokens": 4.5
1603
+ "input_tokens": 2.5,
1604
+ "input_tokens_details.cached_tokens": -2.25,
1605
+ "output_tokens": 15
1606
+ }
1607
+ },
1608
+ "autoCompact": { "inputTokensKeys": ["input_tokens"] }
1609
+ },
1610
+ {
1611
+ "name": "gpt-5.6-terra",
1612
+ "variant": "thinking-high",
1613
+ "platform": {
1614
+ "name": "openai",
1615
+ "variant": "default",
1616
+ "baseURL": "https://api.openai.com"
1617
+ },
1618
+ "model": {
1619
+ "format": "openai-responses",
1620
+ "config": {
1621
+ "model": "gpt-5.6-terra",
1622
+ "reasoning": { "effort": "high", "summary": "auto" },
1623
+ "store": false,
1624
+ "include": ["reasoning.encrypted_content"]
1625
+ }
1626
+ },
1627
+ "cost": {
1628
+ "currency": "USD",
1629
+ "unit": "1M",
1630
+ "prices": {
1631
+ "input_tokens": 2.5,
1632
+ "input_tokens_details.cached_tokens": -2.25,
1633
+ "output_tokens": 15
1634
+ }
1635
+ },
1636
+ "autoCompact": { "inputTokensKeys": ["input_tokens"] }
1637
+ },
1638
+ {
1639
+ "name": "gpt-5.6-luna",
1640
+ "variant": "thinking-medium",
1641
+ "platform": {
1642
+ "name": "openai",
1643
+ "variant": "default",
1644
+ "baseURL": "https://api.openai.com"
1645
+ },
1646
+ "model": {
1647
+ "format": "openai-responses",
1648
+ "config": {
1649
+ "model": "gpt-5.6-luna",
1650
+ "reasoning": { "effort": "medium", "summary": "auto" },
1651
+ "store": false,
1652
+ "include": ["reasoning.encrypted_content"]
1653
+ }
1654
+ },
1655
+ "cost": {
1656
+ "currency": "USD",
1657
+ "unit": "1M",
1658
+ "prices": {
1659
+ "input_tokens": 1,
1660
+ "input_tokens_details.cached_tokens": -0.9,
1661
+ "output_tokens": 6
1662
+ }
1663
+ },
1664
+ "autoCompact": { "inputTokensKeys": ["input_tokens"] }
1665
+ },
1666
+ {
1667
+ "name": "gpt-5.6-luna",
1668
+ "variant": "thinking-high",
1669
+ "platform": {
1670
+ "name": "openai",
1671
+ "variant": "default",
1672
+ "baseURL": "https://api.openai.com"
1673
+ },
1674
+ "model": {
1675
+ "format": "openai-responses",
1676
+ "config": {
1677
+ "model": "gpt-5.6-luna",
1678
+ "reasoning": { "effort": "high", "summary": "auto" },
1679
+ "store": false,
1680
+ "include": ["reasoning.encrypted_content"]
1681
+ }
1682
+ },
1683
+ "cost": {
1684
+ "currency": "USD",
1685
+ "unit": "1M",
1686
+ "prices": {
1687
+ "input_tokens": 1,
1688
+ "input_tokens_details.cached_tokens": -0.9,
1689
+ "output_tokens": 6
1606
1690
  }
1607
1691
  },
1608
1692
  "autoCompact": { "inputTokensKeys": ["input_tokens"] }
1609
1693
  },
1694
+
1610
1695
  {
1611
1696
  "name": "gpt-5.4-mini",
1612
- "variant": "thinking-high-azure",
1697
+ "variant": "thinking-medium-azure",
1613
1698
  "platform": {
1614
1699
  "name": "azure",
1615
1700
  "variant": "openai"
@@ -1618,7 +1703,7 @@
1618
1703
  "format": "openai-responses",
1619
1704
  "config": {
1620
1705
  "model": "gpt-5.4-mini",
1621
- "reasoning": { "effort": "high", "summary": "auto" },
1706
+ "reasoning": { "effort": "medium", "summary": "auto" },
1622
1707
  "store": false,
1623
1708
  "include": ["reasoning.encrypted_content"]
1624
1709
  }
@@ -1636,7 +1721,7 @@
1636
1721
  },
1637
1722
  {
1638
1723
  "name": "gpt-5.4-mini",
1639
- "variant": "thinking-xhigh-azure",
1724
+ "variant": "thinking-high-azure",
1640
1725
  "platform": {
1641
1726
  "name": "azure",
1642
1727
  "variant": "openai"
@@ -1645,7 +1730,7 @@
1645
1730
  "format": "openai-responses",
1646
1731
  "config": {
1647
1732
  "model": "gpt-5.4-mini",
1648
- "reasoning": { "effort": "xhigh", "summary": "auto" },
1733
+ "reasoning": { "effort": "high", "summary": "auto" },
1649
1734
  "store": false,
1650
1735
  "include": ["reasoning.encrypted_content"]
1651
1736
  }
@@ -1716,8 +1801,8 @@
1716
1801
  "autoCompact": { "inputTokensKeys": ["input_tokens"] }
1717
1802
  },
1718
1803
  {
1719
- "name": "gpt-5.5",
1720
- "variant": "thinking-xhigh-azure",
1804
+ "name": "gpt-5.6-sol",
1805
+ "variant": "thinking-medium-azure",
1721
1806
  "platform": {
1722
1807
  "name": "azure",
1723
1808
  "variant": "openai"
@@ -1725,8 +1810,8 @@
1725
1810
  "model": {
1726
1811
  "format": "openai-responses",
1727
1812
  "config": {
1728
- "model": "gpt-5.5",
1729
- "reasoning": { "effort": "xhigh", "summary": "auto" },
1813
+ "model": "gpt-5.6-sol",
1814
+ "reasoning": { "effort": "medium", "summary": "auto" },
1730
1815
  "store": false,
1731
1816
  "include": ["reasoning.encrypted_content"]
1732
1817
  }
@@ -1742,6 +1827,141 @@
1742
1827
  },
1743
1828
  "autoCompact": { "inputTokensKeys": ["input_tokens"] }
1744
1829
  },
1830
+ {
1831
+ "name": "gpt-5.6-sol",
1832
+ "variant": "thinking-high-azure",
1833
+ "platform": {
1834
+ "name": "azure",
1835
+ "variant": "openai"
1836
+ },
1837
+ "model": {
1838
+ "format": "openai-responses",
1839
+ "config": {
1840
+ "model": "gpt-5.6-sol",
1841
+ "reasoning": { "effort": "high", "summary": "auto" },
1842
+ "store": false,
1843
+ "include": ["reasoning.encrypted_content"]
1844
+ }
1845
+ },
1846
+ "cost": {
1847
+ "currency": "USD",
1848
+ "unit": "1M",
1849
+ "prices": {
1850
+ "input_tokens": 5,
1851
+ "input_tokens_details.cached_tokens": -4.5,
1852
+ "output_tokens": 30
1853
+ }
1854
+ },
1855
+ "autoCompact": { "inputTokensKeys": ["input_tokens"] }
1856
+ },
1857
+ {
1858
+ "name": "gpt-5.6-terra",
1859
+ "variant": "thinking-medium-azure",
1860
+ "platform": {
1861
+ "name": "azure",
1862
+ "variant": "openai"
1863
+ },
1864
+ "model": {
1865
+ "format": "openai-responses",
1866
+ "config": {
1867
+ "model": "gpt-5.6-terra",
1868
+ "reasoning": { "effort": "medium", "summary": "auto" },
1869
+ "store": false,
1870
+ "include": ["reasoning.encrypted_content"]
1871
+ }
1872
+ },
1873
+ "cost": {
1874
+ "currency": "USD",
1875
+ "unit": "1M",
1876
+ "prices": {
1877
+ "input_tokens": 2.5,
1878
+ "input_tokens_details.cached_tokens": -2.25,
1879
+ "output_tokens": 15
1880
+ }
1881
+ },
1882
+ "autoCompact": { "inputTokensKeys": ["input_tokens"] }
1883
+ },
1884
+ {
1885
+ "name": "gpt-5.6-terra",
1886
+ "variant": "thinking-high-azure",
1887
+ "platform": {
1888
+ "name": "azure",
1889
+ "variant": "openai"
1890
+ },
1891
+ "model": {
1892
+ "format": "openai-responses",
1893
+ "config": {
1894
+ "model": "gpt-5.6-terra",
1895
+ "reasoning": { "effort": "high", "summary": "auto" },
1896
+ "store": false,
1897
+ "include": ["reasoning.encrypted_content"]
1898
+ }
1899
+ },
1900
+ "cost": {
1901
+ "currency": "USD",
1902
+ "unit": "1M",
1903
+ "prices": {
1904
+ "input_tokens": 2.5,
1905
+ "input_tokens_details.cached_tokens": -2.25,
1906
+ "output_tokens": 15
1907
+ }
1908
+ },
1909
+ "autoCompact": { "inputTokensKeys": ["input_tokens"] }
1910
+ },
1911
+ {
1912
+ "name": "gpt-5.6-luna",
1913
+ "variant": "thinking-medium-azure",
1914
+ "platform": {
1915
+ "name": "azure",
1916
+ "variant": "openai"
1917
+ },
1918
+ "model": {
1919
+ "format": "openai-responses",
1920
+ "config": {
1921
+ "model": "gpt-5.6-luna",
1922
+ "reasoning": { "effort": "medium", "summary": "auto" },
1923
+ "store": false,
1924
+ "include": ["reasoning.encrypted_content"]
1925
+ }
1926
+ },
1927
+ "cost": {
1928
+ "currency": "USD",
1929
+ "unit": "1M",
1930
+ "prices": {
1931
+ "input_tokens": 1,
1932
+ "input_tokens_details.cached_tokens": -0.9,
1933
+ "output_tokens": 6
1934
+ }
1935
+ },
1936
+ "autoCompact": { "inputTokensKeys": ["input_tokens"] }
1937
+ },
1938
+ {
1939
+ "name": "gpt-5.6-luna",
1940
+ "variant": "thinking-high-azure",
1941
+ "platform": {
1942
+ "name": "azure",
1943
+ "variant": "openai"
1944
+ },
1945
+ "model": {
1946
+ "format": "openai-responses",
1947
+ "config": {
1948
+ "model": "gpt-5.6-luna",
1949
+ "reasoning": { "effort": "high", "summary": "auto" },
1950
+ "store": false,
1951
+ "include": ["reasoning.encrypted_content"]
1952
+ }
1953
+ },
1954
+ "cost": {
1955
+ "currency": "USD",
1956
+ "unit": "1M",
1957
+ "prices": {
1958
+ "input_tokens": 1,
1959
+ "input_tokens_details.cached_tokens": -0.9,
1960
+ "output_tokens": 6
1961
+ }
1962
+ },
1963
+ "autoCompact": { "inputTokensKeys": ["input_tokens"] }
1964
+ },
1745
1965
 
1746
1966
  {
1747
1967
  "name": "gpt-oss-120b",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iinm/plain-agent",
3
- "version": "1.14.5",
3
+ "version": "1.14.7",
4
4
  "description": "A lightweight terminal-based coding agent focused on safety and low token cost",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -44,9 +44,9 @@
44
44
  },
45
45
  "dependencies": {},
46
46
  "devDependencies": {
47
- "@biomejs/biome": "^2.4.12",
47
+ "@biomejs/biome": "^2.5.2",
48
48
  "@types/node": "^22.19.17",
49
49
  "c8": "^11.0.0",
50
- "typescript": "^6.0.2"
50
+ "typescript": "^7.0.2"
51
51
  }
52
52
  }
@@ -89,7 +89,7 @@ export async function callAnthropicModel(
89
89
  /** @type {AnthropicRequestInput} */
90
90
  const request = {
91
91
  ...platformRequest,
92
- system: messages
92
+ system: cacheEnabledMessages
93
93
  .filter((m) => m.role === "system")
94
94
  .flatMap((m) => m.content),
95
95
  messages: cacheEnabledMessages.filter((m) => m.role !== "system"),
@@ -31,7 +31,7 @@ export function matchValue(value, pattern) {
31
31
  typeof value === "object" &&
32
32
  value !== null &&
33
33
  Object.entries(pattern).every(([k, p]) =>
34
- matchValue(value[/** @type {keyof value} */ (k)], p),
34
+ matchValue(/** @type {Record<string, unknown>} */ (value)[k], p),
35
35
  )
36
36
  );
37
37
  }