@code-yeongyu/senpi 2026.6.3 → 2026.6.4

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 (79) hide show
  1. package/CHANGELOG.md +19 -9
  2. package/README.md +2 -0
  3. package/dist/bun/cli.d.ts.map +1 -1
  4. package/dist/bun/cli.js +1 -1
  5. package/dist/bun/cli.js.map +1 -1
  6. package/dist/cli/args.d.ts.map +1 -1
  7. package/dist/cli/args.js +2 -0
  8. package/dist/cli/args.js.map +1 -1
  9. package/dist/cli-main.d.ts +3 -0
  10. package/dist/cli-main.d.ts.map +1 -0
  11. package/dist/cli-main.js +10 -0
  12. package/dist/cli-main.js.map +1 -0
  13. package/dist/cli.d.ts.map +1 -1
  14. package/dist/cli.js +46 -13
  15. package/dist/cli.js.map +1 -1
  16. package/dist/core/auth-storage.d.ts.map +1 -1
  17. package/dist/core/auth-storage.js +4 -3
  18. package/dist/core/auth-storage.js.map +1 -1
  19. package/dist/core/export-html/template.js +19 -6
  20. package/dist/core/model-resolver.d.ts.map +1 -1
  21. package/dist/core/model-resolver.js +2 -0
  22. package/dist/core/model-resolver.js.map +1 -1
  23. package/dist/core/package-manager.d.ts +2 -0
  24. package/dist/core/package-manager.d.ts.map +1 -1
  25. package/dist/core/package-manager.js +22 -6
  26. package/dist/core/package-manager.js.map +1 -1
  27. package/dist/core/provider-display-names.d.ts.map +1 -1
  28. package/dist/core/provider-display-names.js +2 -0
  29. package/dist/core/provider-display-names.js.map +1 -1
  30. package/dist/modes/interactive/components/login-dialog.d.ts +0 -1
  31. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  32. package/dist/modes/interactive/components/login-dialog.js +3 -12
  33. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  34. package/dist/self-update-bootstrap.d.ts +19 -0
  35. package/dist/self-update-bootstrap.d.ts.map +1 -0
  36. package/dist/self-update-bootstrap.js +160 -0
  37. package/dist/self-update-bootstrap.js.map +1 -0
  38. package/dist/senpi +46 -13
  39. package/dist/utils/git.d.ts.map +1 -1
  40. package/dist/utils/git.js +54 -22
  41. package/dist/utils/git.js.map +1 -1
  42. package/dist/utils/open-browser.d.ts +9 -0
  43. package/dist/utils/open-browser.d.ts.map +1 -0
  44. package/dist/utils/open-browser.js +22 -0
  45. package/dist/utils/open-browser.js.map +1 -0
  46. package/docs/containerization.md +111 -0
  47. package/docs/docs.json +4 -0
  48. package/docs/extensions.md +2 -0
  49. package/docs/index.md +1 -0
  50. package/docs/providers.md +3 -0
  51. package/examples/extensions/README.md +1 -0
  52. package/examples/extensions/gondolin/index.ts +531 -0
  53. package/examples/extensions/gondolin/package-lock.json +185 -0
  54. package/examples/extensions/gondolin/package.json +19 -0
  55. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  56. package/node_modules/@earendil-works/pi-ai/README.md +5 -1
  57. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.d.ts.map +1 -1
  58. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js +2 -0
  59. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js.map +1 -1
  60. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +251 -48
  61. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
  62. package/node_modules/@earendil-works/pi-ai/dist/models.generated.js +208 -44
  63. package/node_modules/@earendil-works/pi-ai/dist/models.generated.js.map +1 -1
  64. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.d.ts.map +1 -1
  65. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.js +25 -8
  66. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.js.map +1 -1
  67. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +3 -3
  68. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
  69. package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
  70. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.d.ts.map +1 -1
  71. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js +13 -1
  72. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js.map +1 -1
  73. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.d.ts.map +1 -1
  74. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js +4 -2
  75. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js.map +1 -1
  76. package/node_modules/@earendil-works/pi-ai/package.json +1 -1
  77. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  78. package/npm-shrinkwrap.json +12 -12
  79. package/package.json +5 -4
@@ -1621,6 +1621,63 @@ export const MODELS = {
1621
1621
  maxTokens: 101376,
1622
1622
  },
1623
1623
  },
1624
+ "ant-ling": {
1625
+ "Ling-2.6-1T": {
1626
+ id: "Ling-2.6-1T",
1627
+ name: "Ling 2.6 1T",
1628
+ api: "openai-completions",
1629
+ provider: "ant-ling",
1630
+ baseUrl: "https://api.ant-ling.com/v1",
1631
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "supportsReasoningEffort": false, "maxTokensField": "max_tokens", "supportsLongCacheRetention": false },
1632
+ reasoning: false,
1633
+ input: ["text"],
1634
+ cost: {
1635
+ input: 0.06,
1636
+ output: 0.25,
1637
+ cacheRead: 0,
1638
+ cacheWrite: 0,
1639
+ },
1640
+ contextWindow: 262144,
1641
+ maxTokens: 65536,
1642
+ },
1643
+ "Ling-2.6-flash": {
1644
+ id: "Ling-2.6-flash",
1645
+ name: "Ling 2.6 Flash",
1646
+ api: "openai-completions",
1647
+ provider: "ant-ling",
1648
+ baseUrl: "https://api.ant-ling.com/v1",
1649
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "supportsReasoningEffort": false, "maxTokensField": "max_tokens", "supportsLongCacheRetention": false },
1650
+ reasoning: false,
1651
+ input: ["text"],
1652
+ cost: {
1653
+ input: 0.01,
1654
+ output: 0.02,
1655
+ cacheRead: 0,
1656
+ cacheWrite: 0,
1657
+ },
1658
+ contextWindow: 262144,
1659
+ maxTokens: 65536,
1660
+ },
1661
+ "Ring-2.6-1T": {
1662
+ id: "Ring-2.6-1T",
1663
+ name: "Ring 2.6 1T",
1664
+ api: "openai-completions",
1665
+ provider: "ant-ling",
1666
+ baseUrl: "https://api.ant-ling.com/v1",
1667
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "supportsReasoningEffort": false, "maxTokensField": "max_tokens", "supportsLongCacheRetention": false, "thinkingFormat": "ant-ling" },
1668
+ reasoning: true,
1669
+ thinkingLevelMap: { "off": null, "minimal": null, "low": null, "medium": null, "high": "high", "xhigh": "xhigh" },
1670
+ input: ["text"],
1671
+ cost: {
1672
+ input: 0.06,
1673
+ output: 0.25,
1674
+ cacheRead: 0,
1675
+ cacheWrite: 0,
1676
+ },
1677
+ contextWindow: 262144,
1678
+ maxTokens: 65536,
1679
+ },
1680
+ },
1624
1681
  "anthropic": {
1625
1682
  "claude-3-5-haiku-20241022": {
1626
1683
  id: "claude-3-5-haiku-20241022",
@@ -7595,42 +7652,6 @@ export const MODELS = {
7595
7652
  },
7596
7653
  },
7597
7654
  "openai-codex": {
7598
- "gpt-5.2": {
7599
- id: "gpt-5.2",
7600
- name: "GPT-5.2",
7601
- api: "openai-codex-responses",
7602
- provider: "openai-codex",
7603
- baseUrl: "https://chatgpt.com/backend-api",
7604
- reasoning: true,
7605
- thinkingLevelMap: { "xhigh": "xhigh", "minimal": "low" },
7606
- input: ["text", "image"],
7607
- cost: {
7608
- input: 1.75,
7609
- output: 14,
7610
- cacheRead: 0.175,
7611
- cacheWrite: 0,
7612
- },
7613
- contextWindow: 272000,
7614
- maxTokens: 128000,
7615
- },
7616
- "gpt-5.3-codex": {
7617
- id: "gpt-5.3-codex",
7618
- name: "GPT-5.3 Codex",
7619
- api: "openai-codex-responses",
7620
- provider: "openai-codex",
7621
- baseUrl: "https://chatgpt.com/backend-api",
7622
- reasoning: true,
7623
- thinkingLevelMap: { "xhigh": "xhigh", "minimal": "low" },
7624
- input: ["text", "image"],
7625
- cost: {
7626
- input: 1.75,
7627
- output: 14,
7628
- cacheRead: 0.175,
7629
- cacheWrite: 0,
7630
- },
7631
- contextWindow: 272000,
7632
- maxTokens: 128000,
7633
- },
7634
7655
  "gpt-5.3-codex-spark": {
7635
7656
  id: "gpt-5.3-codex-spark",
7636
7657
  name: "GPT-5.3 Codex Spark",
@@ -8401,6 +8422,23 @@ export const MODELS = {
8401
8422
  contextWindow: 204800,
8402
8423
  maxTokens: 131072,
8403
8424
  },
8425
+ "minimax-m3-free": {
8426
+ id: "minimax-m3-free",
8427
+ name: "MiniMax M3 Free",
8428
+ api: "anthropic-messages",
8429
+ provider: "opencode",
8430
+ baseUrl: "https://opencode.ai/zen",
8431
+ reasoning: true,
8432
+ input: ["text", "image"],
8433
+ cost: {
8434
+ input: 0,
8435
+ output: 0,
8436
+ cacheRead: 0,
8437
+ cacheWrite: 0,
8438
+ },
8439
+ contextWindow: 200000,
8440
+ maxTokens: 32000,
8441
+ },
8404
8442
  "nemotron-3-super-free": {
8405
8443
  id: "nemotron-3-super-free",
8406
8444
  name: "Nemotron 3 Super Free",
@@ -8682,6 +8720,23 @@ export const MODELS = {
8682
8720
  contextWindow: 1000000,
8683
8721
  maxTokens: 65536,
8684
8722
  },
8723
+ "qwen3.7-plus": {
8724
+ id: "qwen3.7-plus",
8725
+ name: "Qwen3.7 Plus",
8726
+ api: "anthropic-messages",
8727
+ provider: "opencode-go",
8728
+ baseUrl: "https://opencode.ai/zen/go",
8729
+ reasoning: true,
8730
+ input: ["text", "image"],
8731
+ cost: {
8732
+ input: 0.4,
8733
+ output: 1.6,
8734
+ cacheRead: 0.04,
8735
+ cacheWrite: 0.5,
8736
+ },
8737
+ contextWindow: 262144,
8738
+ maxTokens: 65536,
8739
+ },
8685
8740
  },
8686
8741
  "openrouter": {
8687
8742
  "ai21/jamba-large-1.7": {
@@ -12432,6 +12487,23 @@ export const MODELS = {
12432
12487
  contextWindow: 1000000,
12433
12488
  maxTokens: 65536,
12434
12489
  },
12490
+ "qwen/qwen3.7-plus": {
12491
+ id: "qwen/qwen3.7-plus",
12492
+ name: "Qwen: Qwen3.7 Plus",
12493
+ api: "openai-completions",
12494
+ provider: "openrouter",
12495
+ baseUrl: "https://openrouter.ai/api/v1",
12496
+ reasoning: true,
12497
+ input: ["text", "image"],
12498
+ cost: {
12499
+ input: 0.39999999999999997,
12500
+ output: 1.5999999999999999,
12501
+ cacheRead: 0.08,
12502
+ cacheWrite: 0.5,
12503
+ },
12504
+ contextWindow: 1000000,
12505
+ maxTokens: 65536,
12506
+ },
12435
12507
  "rekaai/reka-edge": {
12436
12508
  id: "rekaai/reka-edge",
12437
12509
  name: "Reka Edge",
@@ -12872,7 +12944,7 @@ export const MODELS = {
12872
12944
  cacheWrite: 0,
12873
12945
  },
12874
12946
  contextWindow: 202752,
12875
- maxTokens: 16384,
12947
+ maxTokens: 4096,
12876
12948
  },
12877
12949
  "z-ai/glm-5-turbo": {
12878
12950
  id: "z-ai/glm-5-turbo",
@@ -12906,7 +12978,7 @@ export const MODELS = {
12906
12978
  cacheWrite: 0,
12907
12979
  },
12908
12980
  contextWindow: 202752,
12909
- maxTokens: 131072,
12981
+ maxTokens: 4096,
12910
12982
  },
12911
12983
  "z-ai/glm-5v-turbo": {
12912
12984
  id: "z-ai/glm-5v-turbo",
@@ -13479,7 +13551,7 @@ export const MODELS = {
13479
13551
  provider: "vercel-ai-gateway",
13480
13552
  baseUrl: "https://ai-gateway.vercel.sh",
13481
13553
  reasoning: true,
13482
- input: ["text", "image"],
13554
+ input: ["text"],
13483
13555
  cost: {
13484
13556
  input: 1.3,
13485
13557
  output: 7.8,
@@ -13751,7 +13823,7 @@ export const MODELS = {
13751
13823
  provider: "vercel-ai-gateway",
13752
13824
  baseUrl: "https://ai-gateway.vercel.sh",
13753
13825
  reasoning: true,
13754
- input: ["text", "image"],
13826
+ input: ["text"],
13755
13827
  cost: {
13756
13828
  input: 1.25,
13757
13829
  output: 3.75,
@@ -14183,7 +14255,7 @@ export const MODELS = {
14183
14255
  provider: "vercel-ai-gateway",
14184
14256
  baseUrl: "https://ai-gateway.vercel.sh",
14185
14257
  reasoning: true,
14186
- input: ["text", "image"],
14258
+ input: ["text"],
14187
14259
  cost: {
14188
14260
  input: 0.435,
14189
14261
  output: 0.87,
@@ -14676,7 +14748,7 @@ export const MODELS = {
14676
14748
  provider: "vercel-ai-gateway",
14677
14749
  baseUrl: "https://ai-gateway.vercel.sh",
14678
14750
  reasoning: true,
14679
- input: ["text", "image"],
14751
+ input: ["text"],
14680
14752
  cost: {
14681
14753
  input: 0.6,
14682
14754
  output: 2.4,
@@ -14693,7 +14765,7 @@ export const MODELS = {
14693
14765
  provider: "vercel-ai-gateway",
14694
14766
  baseUrl: "https://ai-gateway.vercel.sh",
14695
14767
  reasoning: true,
14696
- input: ["text", "image"],
14768
+ input: ["text"],
14697
14769
  cost: {
14698
14770
  input: 0.3,
14699
14771
  output: 1.2,
@@ -14710,7 +14782,7 @@ export const MODELS = {
14710
14782
  provider: "vercel-ai-gateway",
14711
14783
  baseUrl: "https://ai-gateway.vercel.sh",
14712
14784
  reasoning: true,
14713
- input: ["text", "image"],
14785
+ input: ["text"],
14714
14786
  cost: {
14715
14787
  input: 0.6,
14716
14788
  output: 2.4,
@@ -16807,5 +16879,97 @@ export const MODELS = {
16807
16879
  maxTokens: 131072,
16808
16880
  },
16809
16881
  },
16882
+ "zai-coding-cn": {
16883
+ "glm-4.5-air": {
16884
+ id: "glm-4.5-air",
16885
+ name: "GLM-4.5-Air",
16886
+ api: "openai-completions",
16887
+ provider: "zai-coding-cn",
16888
+ baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4",
16889
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "zai" },
16890
+ reasoning: true,
16891
+ input: ["text"],
16892
+ cost: {
16893
+ input: 0,
16894
+ output: 0,
16895
+ cacheRead: 0,
16896
+ cacheWrite: 0,
16897
+ },
16898
+ contextWindow: 131072,
16899
+ maxTokens: 98304,
16900
+ },
16901
+ "glm-4.7": {
16902
+ id: "glm-4.7",
16903
+ name: "GLM-4.7",
16904
+ api: "openai-completions",
16905
+ provider: "zai-coding-cn",
16906
+ baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4",
16907
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "zai", "zaiToolStream": true },
16908
+ reasoning: true,
16909
+ input: ["text"],
16910
+ cost: {
16911
+ input: 0,
16912
+ output: 0,
16913
+ cacheRead: 0,
16914
+ cacheWrite: 0,
16915
+ },
16916
+ contextWindow: 204800,
16917
+ maxTokens: 131072,
16918
+ },
16919
+ "glm-5-turbo": {
16920
+ id: "glm-5-turbo",
16921
+ name: "GLM-5-Turbo",
16922
+ api: "openai-completions",
16923
+ provider: "zai-coding-cn",
16924
+ baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4",
16925
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "zai", "zaiToolStream": true },
16926
+ reasoning: true,
16927
+ input: ["text"],
16928
+ cost: {
16929
+ input: 0,
16930
+ output: 0,
16931
+ cacheRead: 0,
16932
+ cacheWrite: 0,
16933
+ },
16934
+ contextWindow: 200000,
16935
+ maxTokens: 131072,
16936
+ },
16937
+ "glm-5.1": {
16938
+ id: "glm-5.1",
16939
+ name: "GLM-5.1",
16940
+ api: "openai-completions",
16941
+ provider: "zai-coding-cn",
16942
+ baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4",
16943
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "zai", "zaiToolStream": true },
16944
+ reasoning: true,
16945
+ input: ["text"],
16946
+ cost: {
16947
+ input: 0,
16948
+ output: 0,
16949
+ cacheRead: 0,
16950
+ cacheWrite: 0,
16951
+ },
16952
+ contextWindow: 200000,
16953
+ maxTokens: 131072,
16954
+ },
16955
+ "glm-5v-turbo": {
16956
+ id: "glm-5v-turbo",
16957
+ name: "GLM-5V-Turbo",
16958
+ api: "openai-completions",
16959
+ provider: "zai-coding-cn",
16960
+ baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4",
16961
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "zai", "zaiToolStream": true },
16962
+ reasoning: true,
16963
+ input: ["text", "image"],
16964
+ cost: {
16965
+ input: 0,
16966
+ output: 0,
16967
+ cacheRead: 0,
16968
+ cacheWrite: 0,
16969
+ },
16970
+ contextWindow: 200000,
16971
+ maxTokens: 131072,
16972
+ },
16973
+ },
16810
16974
  };
16811
16975
  //# sourceMappingURL=models.generated.js.map