@pencil-agent/nano-pencil 1.13.15 → 1.13.16

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.
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "1.13.15",
3
- "commitHash": "fad73c2",
4
- "branch": "main",
5
- "builtAt": "2026-05-07T17:10:43.226Z"
2
+ "version": "1.13.16",
3
+ "commitHash": "2949449",
4
+ "branch": "release-1.13.16",
5
+ "builtAt": "2026-05-09T13:16:34.096Z"
6
6
  }
@@ -8,6 +8,11 @@
8
8
  * "team-state-store 自己负责 teammate 历史 ... SessionManager 只负责主会话".
9
9
  */
10
10
  import type { PersistedTeammate } from "./team-types.js";
11
+ /**
12
+ * Resolve the agent dir using the canonical getAgentDir() from config.ts.
13
+ * Previously used NANOPENCIL_AGENT_DIR env directly (wrong name — should be
14
+ * NANOPENCIL_CODING_AGENT_DIR). Now reuses the single source of truth.
15
+ */
11
16
  export declare class TeamStateStore {
12
17
  private readonly dir;
13
18
  constructor(storageDir?: string);
@@ -7,20 +7,18 @@
7
7
  * Deliberately independent of core SessionManager. Per refactor plan:
8
8
  * "team-state-store 自己负责 teammate 历史 ... SessionManager 只负责主会话".
9
9
  */
10
- import { homedir } from "node:os";
11
10
  import { mkdir, readFile, readdir, rm, writeFile } from "node:fs/promises";
12
11
  import { join } from "node:path";
12
+ import { getAgentDir } from "../../../config.js";
13
13
  /**
14
- * Resolve the agent dir using the same convention as other extensions
15
- * (security-audit, etc.): NANOPENCIL_AGENT_DIR or ~/.nanopencil/agent.
14
+ * Resolve the agent dir using the canonical getAgentDir() from config.ts.
15
+ * Previously used NANOPENCIL_AGENT_DIR env directly (wrong name — should be
16
+ * NANOPENCIL_CODING_AGENT_DIR). Now reuses the single source of truth.
16
17
  */
17
- function resolveAgentDir() {
18
- return process.env.NANOPENCIL_AGENT_DIR || join(homedir(), ".nanopencil", "agent");
19
- }
20
18
  export class TeamStateStore {
21
19
  dir;
22
20
  constructor(storageDir) {
23
- this.dir = storageDir ?? join(resolveAgentDir(), "teams");
21
+ this.dir = storageDir ?? join(getAgentDir(), "teams");
24
22
  }
25
23
  /** Absolute storage directory for teammates. */
26
24
  get directory() {
@@ -3829,6 +3829,23 @@ export declare const MODELS: {
3829
3829
  contextWindow: number;
3830
3830
  maxTokens: number;
3831
3831
  };
3832
+ readonly "gemini-3.1-flash-lite": {
3833
+ id: string;
3834
+ name: string;
3835
+ api: "google-generative-ai";
3836
+ provider: string;
3837
+ baseUrl: string;
3838
+ reasoning: true;
3839
+ input: ("text" | "image")[];
3840
+ cost: {
3841
+ input: number;
3842
+ output: number;
3843
+ cacheRead: number;
3844
+ cacheWrite: number;
3845
+ };
3846
+ contextWindow: number;
3847
+ maxTokens: number;
3848
+ };
3832
3849
  readonly "gemini-3.1-flash-lite-preview": {
3833
3850
  id: string;
3834
3851
  name: string;
@@ -7268,23 +7285,6 @@ export declare const MODELS: {
7268
7285
  contextWindow: number;
7269
7286
  maxTokens: number;
7270
7287
  };
7271
- readonly "hy3-preview-free": {
7272
- id: string;
7273
- name: string;
7274
- api: "openai-completions";
7275
- provider: string;
7276
- baseUrl: string;
7277
- reasoning: true;
7278
- input: "text"[];
7279
- cost: {
7280
- input: number;
7281
- output: number;
7282
- cacheRead: number;
7283
- cacheWrite: number;
7284
- };
7285
- contextWindow: number;
7286
- maxTokens: number;
7287
- };
7288
7288
  readonly "kimi-k2.5": {
7289
7289
  id: string;
7290
7290
  name: string;
@@ -8802,6 +8802,23 @@ export declare const MODELS: {
8802
8802
  contextWindow: number;
8803
8803
  maxTokens: number;
8804
8804
  };
8805
+ readonly "inclusionai/ring-2.6-1t:free": {
8806
+ id: string;
8807
+ name: string;
8808
+ api: "openai-completions";
8809
+ provider: string;
8810
+ baseUrl: string;
8811
+ reasoning: true;
8812
+ input: "text"[];
8813
+ cost: {
8814
+ input: number;
8815
+ output: number;
8816
+ cacheRead: number;
8817
+ cacheWrite: number;
8818
+ };
8819
+ contextWindow: number;
8820
+ maxTokens: number;
8821
+ };
8805
8822
  readonly "kwaipilot/kat-coder-pro-v2": {
8806
8823
  id: string;
8807
8824
  name: string;
@@ -9329,23 +9346,6 @@ export declare const MODELS: {
9329
9346
  contextWindow: number;
9330
9347
  maxTokens: number;
9331
9348
  };
9332
- readonly "mistralai/mixtral-8x7b-instruct": {
9333
- id: string;
9334
- name: string;
9335
- api: "openai-completions";
9336
- provider: string;
9337
- baseUrl: string;
9338
- reasoning: false;
9339
- input: "text"[];
9340
- cost: {
9341
- input: number;
9342
- output: number;
9343
- cacheRead: number;
9344
- cacheWrite: number;
9345
- };
9346
- contextWindow: number;
9347
- maxTokens: number;
9348
- };
9349
9349
  readonly "mistralai/pixtral-large-2411": {
9350
9350
  id: string;
9351
9351
  name: string;
@@ -9482,23 +9482,6 @@ export declare const MODELS: {
9482
9482
  contextWindow: number;
9483
9483
  maxTokens: number;
9484
9484
  };
9485
- readonly "nvidia/llama-3.1-nemotron-70b-instruct": {
9486
- id: string;
9487
- name: string;
9488
- api: "openai-completions";
9489
- provider: string;
9490
- baseUrl: string;
9491
- reasoning: false;
9492
- input: "text"[];
9493
- cost: {
9494
- input: number;
9495
- output: number;
9496
- cacheRead: number;
9497
- cacheWrite: number;
9498
- };
9499
- contextWindow: number;
9500
- maxTokens: number;
9501
- };
9502
9485
  readonly "nvidia/llama-3.3-nemotron-super-49b-v1.5": {
9503
9486
  id: string;
9504
9487
  name: string;
@@ -11624,7 +11607,7 @@ export declare const MODELS: {
11624
11607
  contextWindow: number;
11625
11608
  maxTokens: number;
11626
11609
  };
11627
- readonly "tencent/hy3-preview:free": {
11610
+ readonly "tencent/hy3-preview": {
11628
11611
  id: string;
11629
11612
  name: string;
11630
11613
  api: "openai-completions";
@@ -11675,23 +11658,6 @@ export declare const MODELS: {
11675
11658
  contextWindow: number;
11676
11659
  maxTokens: number;
11677
11660
  };
11678
- readonly "tngtech/deepseek-r1t2-chimera": {
11679
- id: string;
11680
- name: string;
11681
- api: "openai-completions";
11682
- provider: string;
11683
- baseUrl: string;
11684
- reasoning: true;
11685
- input: "text"[];
11686
- cost: {
11687
- input: number;
11688
- output: number;
11689
- cacheRead: number;
11690
- cacheWrite: number;
11691
- };
11692
- contextWindow: number;
11693
- maxTokens: number;
11694
- };
11695
11661
  readonly "upstage/solar-pro-3": {
11696
11662
  id: string;
11697
11663
  name: string;
@@ -13156,6 +13122,23 @@ export declare const MODELS: {
13156
13122
  contextWindow: number;
13157
13123
  maxTokens: number;
13158
13124
  };
13125
+ readonly "google/gemini-3.1-flash-lite": {
13126
+ id: string;
13127
+ name: string;
13128
+ api: "anthropic-messages";
13129
+ provider: string;
13130
+ baseUrl: string;
13131
+ reasoning: true;
13132
+ input: ("text" | "image")[];
13133
+ cost: {
13134
+ input: number;
13135
+ output: number;
13136
+ cacheRead: number;
13137
+ cacheWrite: number;
13138
+ };
13139
+ contextWindow: number;
13140
+ maxTokens: number;
13141
+ };
13159
13142
  readonly "google/gemini-3.1-flash-lite-preview": {
13160
13143
  id: string;
13161
13144
  name: string;
@@ -3657,6 +3657,23 @@ export const MODELS = {
3657
3657
  contextWindow: 1000000,
3658
3658
  maxTokens: 64000,
3659
3659
  },
3660
+ "gemini-3.1-flash-lite": {
3661
+ id: "gemini-3.1-flash-lite",
3662
+ name: "Gemini 3.1 Flash Lite",
3663
+ api: "google-generative-ai",
3664
+ provider: "google",
3665
+ baseUrl: "https://generativelanguage.googleapis.com/v1beta",
3666
+ reasoning: true,
3667
+ input: ["text", "image"],
3668
+ cost: {
3669
+ input: 0.25,
3670
+ output: 1.5,
3671
+ cacheRead: 0.025,
3672
+ cacheWrite: 1,
3673
+ },
3674
+ contextWindow: 1048576,
3675
+ maxTokens: 65536,
3676
+ },
3660
3677
  "gemini-3.1-flash-lite-preview": {
3661
3678
  id: "gemini-3.1-flash-lite-preview",
3662
3679
  name: "Gemini 3.1 Flash Lite Preview",
@@ -7052,23 +7069,6 @@ export const MODELS = {
7052
7069
  contextWindow: 1050000,
7053
7070
  maxTokens: 128000,
7054
7071
  },
7055
- "hy3-preview-free": {
7056
- id: "hy3-preview-free",
7057
- name: "Hy3 preview Free",
7058
- api: "openai-completions",
7059
- provider: "opencode",
7060
- baseUrl: "https://opencode.ai/zen/v1",
7061
- reasoning: true,
7062
- input: ["text"],
7063
- cost: {
7064
- input: 0,
7065
- output: 0,
7066
- cacheRead: 0,
7067
- cacheWrite: 0,
7068
- },
7069
- contextWindow: 256000,
7070
- maxTokens: 64000,
7071
- },
7072
7072
  "kimi-k2.5": {
7073
7073
  id: "kimi-k2.5",
7074
7074
  name: "Kimi K2.5",
@@ -8209,7 +8209,7 @@ export const MODELS = {
8209
8209
  cacheRead: 0.024999999999999998,
8210
8210
  cacheWrite: 0.08333333333333334,
8211
8211
  },
8212
- contextWindow: 1048576,
8212
+ contextWindow: 1000000,
8213
8213
  maxTokens: 8192,
8214
8214
  },
8215
8215
  "google/gemini-2.0-flash-lite-001": {
@@ -8586,6 +8586,23 @@ export const MODELS = {
8586
8586
  contextWindow: 262144,
8587
8587
  maxTokens: 32768,
8588
8588
  },
8589
+ "inclusionai/ring-2.6-1t:free": {
8590
+ id: "inclusionai/ring-2.6-1t:free",
8591
+ name: "inclusionAI: Ring-2.6-1T (free)",
8592
+ api: "openai-completions",
8593
+ provider: "openrouter",
8594
+ baseUrl: "https://openrouter.ai/api/v1",
8595
+ reasoning: true,
8596
+ input: ["text"],
8597
+ cost: {
8598
+ input: 0,
8599
+ output: 0,
8600
+ cacheRead: 0,
8601
+ cacheWrite: 0,
8602
+ },
8603
+ contextWindow: 262144,
8604
+ maxTokens: 65536,
8605
+ },
8589
8606
  "kwaipilot/kat-coder-pro-v2": {
8590
8607
  id: "kwaipilot/kat-coder-pro-v2",
8591
8608
  name: "Kwaipilot: KAT-Coder-Pro V2",
@@ -8750,11 +8767,11 @@ export const MODELS = {
8750
8767
  cost: {
8751
8768
  input: 0.15,
8752
8769
  output: 1.15,
8753
- cacheRead: 0.03,
8770
+ cacheRead: 0,
8754
8771
  cacheWrite: 0,
8755
8772
  },
8756
8773
  contextWindow: 196608,
8757
- maxTokens: 131072,
8774
+ maxTokens: 196608,
8758
8775
  },
8759
8776
  "minimax/minimax-m2.5:free": {
8760
8777
  id: "minimax/minimax-m2.5:free",
@@ -8782,13 +8799,13 @@ export const MODELS = {
8782
8799
  reasoning: true,
8783
8800
  input: ["text"],
8784
8801
  cost: {
8785
- input: 0.3,
8802
+ input: 0.29900000000000004,
8786
8803
  output: 1.2,
8787
- cacheRead: 0.059,
8804
+ cacheRead: 0,
8788
8805
  cacheWrite: 0,
8789
8806
  },
8790
8807
  contextWindow: 196608,
8791
- maxTokens: 4096,
8808
+ maxTokens: 131072,
8792
8809
  },
8793
8810
  "mistralai/codestral-2508": {
8794
8811
  id: "mistralai/codestral-2508",
@@ -9113,23 +9130,6 @@ export const MODELS = {
9113
9130
  contextWindow: 65536,
9114
9131
  maxTokens: 4096,
9115
9132
  },
9116
- "mistralai/mixtral-8x7b-instruct": {
9117
- id: "mistralai/mixtral-8x7b-instruct",
9118
- name: "Mistral: Mixtral 8x7B Instruct",
9119
- api: "openai-completions",
9120
- provider: "openrouter",
9121
- baseUrl: "https://openrouter.ai/api/v1",
9122
- reasoning: false,
9123
- input: ["text"],
9124
- cost: {
9125
- input: 0.54,
9126
- output: 0.54,
9127
- cacheRead: 0,
9128
- cacheWrite: 0,
9129
- },
9130
- contextWindow: 32768,
9131
- maxTokens: 16384,
9132
- },
9133
9133
  "mistralai/pixtral-large-2411": {
9134
9134
  id: "mistralai/pixtral-large-2411",
9135
9135
  name: "Mistral: Pixtral Large 2411",
@@ -9266,23 +9266,6 @@ export const MODELS = {
9266
9266
  contextWindow: 131072,
9267
9267
  maxTokens: 163840,
9268
9268
  },
9269
- "nvidia/llama-3.1-nemotron-70b-instruct": {
9270
- id: "nvidia/llama-3.1-nemotron-70b-instruct",
9271
- name: "NVIDIA: Llama 3.1 Nemotron 70B Instruct",
9272
- api: "openai-completions",
9273
- provider: "openrouter",
9274
- baseUrl: "https://openrouter.ai/api/v1",
9275
- reasoning: false,
9276
- input: ["text"],
9277
- cost: {
9278
- input: 1.2,
9279
- output: 1.2,
9280
- cacheRead: 0,
9281
- cacheWrite: 0,
9282
- },
9283
- contextWindow: 131072,
9284
- maxTokens: 16384,
9285
- },
9286
9269
  "nvidia/llama-3.3-nemotron-super-49b-v1.5": {
9287
9270
  id: "nvidia/llama-3.3-nemotron-super-49b-v1.5",
9288
9271
  name: "NVIDIA: Llama 3.3 Nemotron Super 49B V1.5",
@@ -10772,12 +10755,12 @@ export const MODELS = {
10772
10755
  input: ["text"],
10773
10756
  cost: {
10774
10757
  input: 0.08,
10775
- output: 0.24,
10776
- cacheRead: 0.04,
10758
+ output: 0.28,
10759
+ cacheRead: 0,
10777
10760
  cacheWrite: 0,
10778
10761
  },
10779
10762
  contextWindow: 40960,
10780
- maxTokens: 40960,
10763
+ maxTokens: 16384,
10781
10764
  },
10782
10765
  "qwen/qwen3-8b": {
10783
10766
  id: "qwen/qwen3-8b",
@@ -11408,18 +11391,18 @@ export const MODELS = {
11408
11391
  contextWindow: 262144,
11409
11392
  maxTokens: 65536,
11410
11393
  },
11411
- "tencent/hy3-preview:free": {
11412
- id: "tencent/hy3-preview:free",
11413
- name: "Tencent: Hy3 preview (free)",
11394
+ "tencent/hy3-preview": {
11395
+ id: "tencent/hy3-preview",
11396
+ name: "Tencent: Hy3 preview",
11414
11397
  api: "openai-completions",
11415
11398
  provider: "openrouter",
11416
11399
  baseUrl: "https://openrouter.ai/api/v1",
11417
11400
  reasoning: true,
11418
11401
  input: ["text"],
11419
11402
  cost: {
11420
- input: 0,
11421
- output: 0,
11422
- cacheRead: 0,
11403
+ input: 0.06599999999999999,
11404
+ output: 0.26,
11405
+ cacheRead: 0.029,
11423
11406
  cacheWrite: 0,
11424
11407
  },
11425
11408
  contextWindow: 262144,
@@ -11459,23 +11442,6 @@ export const MODELS = {
11459
11442
  contextWindow: 32768,
11460
11443
  maxTokens: 32768,
11461
11444
  },
11462
- "tngtech/deepseek-r1t2-chimera": {
11463
- id: "tngtech/deepseek-r1t2-chimera",
11464
- name: "TNG: DeepSeek R1T2 Chimera",
11465
- api: "openai-completions",
11466
- provider: "openrouter",
11467
- baseUrl: "https://openrouter.ai/api/v1",
11468
- reasoning: true,
11469
- input: ["text"],
11470
- cost: {
11471
- input: 0.3,
11472
- output: 1.1,
11473
- cacheRead: 0.15,
11474
- cacheWrite: 0,
11475
- },
11476
- contextWindow: 163840,
11477
- maxTokens: 163840,
11478
- },
11479
11445
  "upstage/solar-pro-3": {
11480
11446
  id: "upstage/solar-pro-3",
11481
11447
  name: "Upstage: Solar Pro 3",
@@ -11672,9 +11638,9 @@ export const MODELS = {
11672
11638
  reasoning: true,
11673
11639
  input: ["text"],
11674
11640
  cost: {
11675
- input: 0.09,
11676
- output: 0.29,
11677
- cacheRead: 0.045,
11641
+ input: 0.09999999999999999,
11642
+ output: 0.3,
11643
+ cacheRead: 0.01,
11678
11644
  cacheWrite: 0,
11679
11645
  },
11680
11646
  contextWindow: 262144,
@@ -11746,7 +11712,7 @@ export const MODELS = {
11746
11712
  cacheWrite: 0,
11747
11713
  },
11748
11714
  contextWindow: 1048576,
11749
- maxTokens: 131072,
11715
+ maxTokens: 16384,
11750
11716
  },
11751
11717
  "z-ai/glm-4-32b": {
11752
11718
  id: "z-ai/glm-4-32b",
@@ -11876,13 +11842,13 @@ export const MODELS = {
11876
11842
  reasoning: true,
11877
11843
  input: ["text"],
11878
11844
  cost: {
11879
- input: 0.38,
11880
- output: 1.74,
11881
- cacheRead: 0,
11845
+ input: 0.39999999999999997,
11846
+ output: 1.75,
11847
+ cacheRead: 0.08,
11882
11848
  cacheWrite: 0,
11883
11849
  },
11884
11850
  contextWindow: 202752,
11885
- maxTokens: 4096,
11851
+ maxTokens: 131072,
11886
11852
  },
11887
11853
  "z-ai/glm-4.7-flash": {
11888
11854
  id: "z-ai/glm-4.7-flash",
@@ -12940,6 +12906,23 @@ export const MODELS = {
12940
12906
  contextWindow: 1000000,
12941
12907
  maxTokens: 64000,
12942
12908
  },
12909
+ "google/gemini-3.1-flash-lite": {
12910
+ id: "google/gemini-3.1-flash-lite",
12911
+ name: "Gemini 3.1 Flash Lite",
12912
+ api: "anthropic-messages",
12913
+ provider: "vercel-ai-gateway",
12914
+ baseUrl: "https://ai-gateway.vercel.sh",
12915
+ reasoning: true,
12916
+ input: ["text", "image"],
12917
+ cost: {
12918
+ input: 0.25,
12919
+ output: 1.5,
12920
+ cacheRead: 0.03,
12921
+ cacheWrite: 0,
12922
+ },
12923
+ contextWindow: 1000000,
12924
+ maxTokens: 65000,
12925
+ },
12943
12926
  "google/gemini-3.1-flash-lite-preview": {
12944
12927
  id: "google/gemini-3.1-flash-lite-preview",
12945
12928
  name: "Gemini 3.1 Flash Lite Preview",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pencil-agent/nano-pencil",
3
- "version": "1.13.15",
3
+ "version": "1.13.16",
4
4
  "description": "CLI writing agent with read, bash, edit, write tools and session management. Supports DashScope and Ali Token Plan. Soul enabled by default for AI personality evolution.",
5
5
  "type": "module",
6
6
  "bin": {