projectstore-claude 0.30.13 โ†’ 0.30.14

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.
@@ -12,7 +12,7 @@
12
12
  "name": "projectstore",
13
13
  "displayName": "projectstore",
14
14
  "description": "๐Ÿ“š Your agent runs the project through a verified loop: task โ†’ artifact (ADR ยท spec ยท epic ยท story) โ†’ adversarial critic โ†’ backlog โ†’ planner โ†’ reviewer โ†’ done. Plain markdown in an Obsidian-friendly vault, every write approved by you โ€” and any model can pick the project up tomorrow.",
15
- "version": "0.30.13",
15
+ "version": "0.30.14",
16
16
  "author": {
17
17
  "name": "Evgenii Konev",
18
18
  "email": "ekonev@smartandpoint.com",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "projectstore",
3
3
  "displayName": "projectstore",
4
- "version": "0.30.13",
4
+ "version": "0.30.14",
5
5
  "description": "Your agent runs the project through a verified loop: task โ†’ artifact (ADR / spec / epic / story) โ†’ adversarial critic โ†’ backlog โ†’ planner โ†’ reviewer โ†’ done. Plain markdown in git โ€” any model can pick the project up tomorrow.",
6
6
  "author": {
7
7
  "name": "Evgenii Konev @ SmartAndPoint",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "projectstore",
3
- "version": "0.30.13",
3
+ "version": "0.30.14",
4
4
  "description": "Your agent runs the project through a verified loop: task โ†’ artifact (ADR / spec / epic / story) โ†’ adversarial critic โ†’ backlog โ†’ planner โ†’ reviewer โ†’ done. Plain markdown in git โ€” any model can pick the project up tomorrow.",
5
5
  "keywords": [
6
6
  "project-management",
@@ -24,9 +24,10 @@
24
24
  // false "1 call/turn" for every turn (each record holds โ‰ค1 tool_use).
25
25
  //
26
26
  // COST is computed at current API list prices (PRICING below) with the cache
27
- // multipliers: read 0.1ร— input, 5m write 1.25ร—, 1h write 2ร— (the usage records
28
- // carry the 5m/1h split). Under a subscription plan these dollars are a proxy
29
- // for rate-limit consumption, not an invoice โ€” the RATIOS hold either way.
27
+ // multipliers: read 0.1ร— input unless the model has its own read rate, 5m
28
+ // write 1.25ร—, 1h write 2ร— (the usage records carry the 5m/1h split). Under
29
+ // a subscription plan these dollars are a proxy for rate-limit consumption,
30
+ // not an invoice โ€” the RATIOS hold either way.
30
31
  // Historical price changes are not modeled; everything is priced at today's
31
32
  // list. Unknown models are priced at 0 and reported.
32
33
  //
@@ -94,28 +95,36 @@ const STAGE_OF = {
94
95
  };
95
96
  const STAGE_ORDER = ["authoring", "critique", "planning", "code-review", "curation", "upkeep", "other"];
96
97
 
97
- // USD per MTok [input, output], API list prices as of 2026-08-04 (Fable 5.1 added 2026-09-02)
98
- // (platform.claude.com pricing docs). Cache multipliers applied on top of
99
- // the input rate.
98
+ // USD per MTok [input, output, cache read?], API list prices as of 2026-11-10
99
+ // (platform.claude.com pricing docs). The third value is the cache-read rate
100
+ // where it is not 0.1ร— input (Fable 5.1 and 5.2: 0.025ร—; Opus 5.5 and
101
+ // Sonnet 5.5: 0.05ร—); writes stay 1.25ร— / 2ร— input. The `--json` output
102
+ // carries these arrays as they are, with two or three values.
100
103
  export const PRICING = {
101
- "claude-fable-5-1": [10, 50],
104
+ "claude-fable-5-2": [8, 40, 0.2],
105
+ "claude-fable-5-1": [10, 50, 0.25],
102
106
  "claude-fable-5": [10, 50],
107
+ "claude-opus-5-5": [4, 20, 0.2],
103
108
  "claude-opus-5": [5, 25],
104
109
  "claude-opus-4-8": [5, 25],
105
110
  "claude-opus-4-7": [5, 25],
106
- "claude-sonnet-5": [2, 10], // intro pricing through 2026-08-31; sticker is [3, 15]
111
+ "claude-sonnet-5-5": [2, 10, 0.1],
112
+ "claude-sonnet-5": [2, 10],
107
113
  "claude-sonnet-4-6": [3, 15],
114
+ // reads at the default 0.1ร— ($0.01); prompts up to 100K, beyond [0.5, 2.5] (not modeled)
115
+ "claude-haiku-5-5": [0.1, 0.5],
108
116
  "claude-haiku-4-5": [1, 5],
109
117
  };
110
118
 
111
119
  // Transcripts carry variant ids ("claude-haiku-4-5-20251001", "opus",
112
120
  // "claude-opus-5[1m]") โ€” normalize before the PRICING lookup so they don't
113
- // silently price at $0.
121
+ // silently price at $0. A bare alias names the newest model of its line, so
122
+ // an old record written as "haiku" prices at today's Haiku, not the one that ran.
114
123
  const MODEL_ALIASES = {
115
- fable: "claude-fable-5-1",
116
- opus: "claude-opus-5",
117
- sonnet: "claude-sonnet-5",
118
- haiku: "claude-haiku-4-5",
124
+ fable: "claude-fable-5-2",
125
+ opus: "claude-opus-5-5",
126
+ sonnet: "claude-sonnet-5-5",
127
+ haiku: "claude-haiku-5-5",
119
128
  };
120
129
 
121
130
  export function normModel(model) {
@@ -126,9 +135,9 @@ export function normModel(model) {
126
135
  export function rowCost(row) {
127
136
  const p = PRICING[normModel(row.model)];
128
137
  if (!p) return 0;
129
- const [inP, outP] = p;
138
+ const [inP, outP, readP = 0.1 * inP] = p;
130
139
  return (
131
- (row.input * inP + row.cw5m * 1.25 * inP + row.cw1h * 2 * inP + row.cacheRead * 0.1 * inP + row.output * outP) / 1e6
140
+ (row.input * inP + row.cw5m * 1.25 * inP + row.cw1h * 2 * inP + row.cacheRead * readP + row.output * outP) / 1e6
132
141
  );
133
142
  }
134
143
 
@@ -359,7 +368,7 @@ const n = (v) => v.toLocaleString("en-US");
359
368
 
360
369
  // `t/turn` โ€” avg distinct tool calls per tool-using turn (batching level; 1.0
361
370
  // means fully sequential). `cost` โ€” USD at current list prices; cache reads
362
- // bill at 0.1ร— input, so token counts and dollars rank differently.
371
+ // bill at a small fraction of input, so token counts and dollars rank differently.
363
372
  const usd = (v) => `$${v.toFixed(2)}`;
364
373
 
365
374
  function table(groups, label, { runs = false } = {}) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "projectstore-claude",
3
- "version": "0.30.13",
3
+ "version": "0.30.14",
4
4
  "description": "projectstore for Claude Code: the core pinned and bundled, the harness fixed. A release artifact; the way in is npx projectstore setup",
5
5
  "keywords": [
6
6
  "projectstore",
@@ -37,7 +37,7 @@
37
37
  "README.md"
38
38
  ],
39
39
  "dependencies": {
40
- "projectstore": "=0.30.13"
40
+ "projectstore": "=0.30.14"
41
41
  },
42
42
  "bundleDependencies": [
43
43
  "projectstore"