@namzu/sdk 21.0.0 → 22.0.0

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 (103) hide show
  1. package/CHANGELOG.md +134 -0
  2. package/dist/advisory/executor.d.ts +9 -4
  3. package/dist/advisory/executor.d.ts.map +1 -1
  4. package/dist/advisory/executor.js +16 -9
  5. package/dist/advisory/executor.js.map +1 -1
  6. package/dist/constants/limits.d.ts +13 -0
  7. package/dist/constants/limits.d.ts.map +1 -1
  8. package/dist/constants/limits.js +14 -2
  9. package/dist/constants/limits.js.map +1 -1
  10. package/dist/manager/agent/lifecycle.d.ts +2 -2
  11. package/dist/manager/run/persistence.d.ts +37 -2
  12. package/dist/manager/run/persistence.d.ts.map +1 -1
  13. package/dist/manager/run/persistence.js +48 -7
  14. package/dist/manager/run/persistence.js.map +1 -1
  15. package/dist/pricing/catalogue.generated.d.ts +15 -0
  16. package/dist/pricing/catalogue.generated.d.ts.map +1 -0
  17. package/dist/pricing/catalogue.generated.js +293 -0
  18. package/dist/pricing/catalogue.generated.js.map +1 -0
  19. package/dist/pricing/index.d.ts +46 -0
  20. package/dist/pricing/index.d.ts.map +1 -0
  21. package/dist/pricing/index.js +70 -0
  22. package/dist/pricing/index.js.map +1 -0
  23. package/dist/public-runtime.d.ts +6 -1
  24. package/dist/public-runtime.d.ts.map +1 -1
  25. package/dist/public-runtime.js +21 -1
  26. package/dist/public-runtime.js.map +1 -1
  27. package/dist/public-types.d.ts +3 -1
  28. package/dist/public-types.d.ts.map +1 -1
  29. package/dist/run/LimitChecker.d.ts +10 -0
  30. package/dist/run/LimitChecker.d.ts.map +1 -1
  31. package/dist/run/LimitChecker.js +14 -2
  32. package/dist/run/LimitChecker.js.map +1 -1
  33. package/dist/run/command-gate.d.ts +107 -0
  34. package/dist/run/command-gate.d.ts.map +1 -0
  35. package/dist/run/command-gate.js +157 -0
  36. package/dist/run/command-gate.js.map +1 -0
  37. package/dist/run/index.d.ts +6 -0
  38. package/dist/run/index.d.ts.map +1 -1
  39. package/dist/run/index.js +3 -0
  40. package/dist/run/index.js.map +1 -1
  41. package/dist/run/memory-promoter.d.ts +70 -0
  42. package/dist/run/memory-promoter.d.ts.map +1 -0
  43. package/dist/run/memory-promoter.js +117 -0
  44. package/dist/run/memory-promoter.js.map +1 -0
  45. package/dist/run/workspace-fingerprint.d.ts +105 -0
  46. package/dist/run/workspace-fingerprint.d.ts.map +1 -0
  47. package/dist/run/workspace-fingerprint.js +147 -0
  48. package/dist/run/workspace-fingerprint.js.map +1 -0
  49. package/dist/runtime/query/checkpoint.d.ts +23 -2
  50. package/dist/runtime/query/checkpoint.d.ts.map +1 -1
  51. package/dist/runtime/query/checkpoint.js +24 -3
  52. package/dist/runtime/query/checkpoint.js.map +1 -1
  53. package/dist/runtime/query/guard.d.ts.map +1 -1
  54. package/dist/runtime/query/guard.js +1 -0
  55. package/dist/runtime/query/guard.js.map +1 -1
  56. package/dist/runtime/query/index.d.ts.map +1 -1
  57. package/dist/runtime/query/index.js +42 -0
  58. package/dist/runtime/query/index.js.map +1 -1
  59. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  60. package/dist/runtime/query/iteration/index.js +15 -2
  61. package/dist/runtime/query/iteration/index.js.map +1 -1
  62. package/dist/runtime/query/iteration/phases/advisory.d.ts.map +1 -1
  63. package/dist/runtime/query/iteration/phases/advisory.js +9 -1
  64. package/dist/runtime/query/iteration/phases/advisory.js.map +1 -1
  65. package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
  66. package/dist/runtime/query/iteration/phases/compaction.js +11 -2
  67. package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
  68. package/dist/store/run/conformance.d.ts.map +1 -1
  69. package/dist/store/run/conformance.js +8 -2
  70. package/dist/store/run/conformance.js.map +1 -1
  71. package/dist/types/common/index.d.ts +38 -2
  72. package/dist/types/common/index.d.ts.map +1 -1
  73. package/dist/types/run/stop-reason.d.ts +31 -1
  74. package/dist/types/run/stop-reason.d.ts.map +1 -1
  75. package/dist/utils/cost.d.ts +60 -2
  76. package/dist/utils/cost.d.ts.map +1 -1
  77. package/dist/utils/cost.js +126 -11
  78. package/dist/utils/cost.js.map +1 -1
  79. package/package.json +1 -1
  80. package/src/advisory/executor.ts +16 -9
  81. package/src/constants/limits.ts +14 -2
  82. package/src/manager/agent/lifecycle.ts +2 -2
  83. package/src/manager/run/persistence.ts +67 -7
  84. package/src/pricing/catalogue.generated.ts +308 -0
  85. package/src/pricing/index.ts +78 -0
  86. package/src/pricing/rates.source.json +206 -0
  87. package/src/public-runtime.ts +39 -0
  88. package/src/public-types.ts +3 -1
  89. package/src/run/LimitChecker.ts +24 -2
  90. package/src/run/command-gate.ts +234 -0
  91. package/src/run/index.ts +17 -0
  92. package/src/run/memory-promoter.ts +155 -0
  93. package/src/run/workspace-fingerprint.ts +193 -0
  94. package/src/runtime/query/checkpoint.ts +24 -3
  95. package/src/runtime/query/guard.ts +1 -0
  96. package/src/runtime/query/index.ts +42 -0
  97. package/src/runtime/query/iteration/index.ts +15 -2
  98. package/src/runtime/query/iteration/phases/advisory.ts +9 -1
  99. package/src/runtime/query/iteration/phases/compaction.ts +12 -2
  100. package/src/store/run/conformance.ts +8 -2
  101. package/src/types/common/index.ts +38 -2
  102. package/src/types/run/stop-reason.ts +30 -0
  103. package/src/utils/cost.ts +186 -16
@@ -1 +1 @@
1
- {"version":3,"file":"conformance.js","sourceRoot":"","sources":["../../../src/store/run/conformance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conformance.js","sourceRoot":"","sources":["../../../src/store/run/conformance.ts"],"names":[],"mappings":"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"}
@@ -31,10 +31,46 @@ export declare function accumulateTokenUsage(current: TokenUsage, addition: Toke
31
31
  */
32
32
  export declare function mergeTokenUsage(current: TokenUsage, next: TokenUsage): TokenUsage;
33
33
  export interface CostInfo {
34
- inputCostPer1M: number;
35
- outputCostPer1M: number;
34
+ /**
35
+ * The input rate this total was accumulated at — present only when ONE rate
36
+ * card describes the whole total.
37
+ *
38
+ * Absent means "no single rate describes this", not "zero". Three ways to
39
+ * get there: nothing has been accumulated yet, the run spanned two
40
+ * differently-priced models, or part of it was accumulated at no known rate
41
+ * at all. This is the same contract {@link TokenUsage.reasoningTokens} uses
42
+ * one field up, for the same reason — a number invented to fill the slot
43
+ * would be indistinguishable from a measured one.
44
+ *
45
+ * The field used to be required, and a run that swapped models reported
46
+ * whichever card was applied last, which is a claim about the whole total
47
+ * that was true of only part of it.
48
+ */
49
+ inputCostPer1M?: number;
50
+ /** As {@link CostInfo.inputCostPer1M}, for output tokens. */
51
+ outputCostPer1M?: number;
36
52
  totalCost: number;
37
53
  cacheDiscount: number;
54
+ /**
55
+ * Tokens accumulated at no known rate, so `totalCost` does not include what
56
+ * they cost.
57
+ *
58
+ * This exists so a consumer can tell "this run cost nothing" from "nobody
59
+ * knows what this run cost". Reporting the second as zero is the defect the
60
+ * price catalogue was added to fix, one level down: a total that is always
61
+ * zero and a total that is zero because it is unknown look identical, and
62
+ * `runConfig.costLimitUsd` is enforced against both.
63
+ *
64
+ * - `totalCost: 0, unpricedTokens: 0` — the run genuinely cost nothing
65
+ * (local inference bills per token exactly never).
66
+ * - `totalCost: 0, unpricedTokens: 4210` — nobody knows.
67
+ * - `totalCost: 0.12, unpricedTokens: 900` — partly known; the total is a
68
+ * floor, not the answer.
69
+ *
70
+ * A count rather than a flag because a run mixes turns: a step can name its
71
+ * own model and a provider chain can swap members mid-run.
72
+ */
73
+ unpricedTokens: number;
38
74
  }
39
75
  export interface PlatformError {
40
76
  code: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/common/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAA;AAE/F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAE7D;AAED,MAAM,WAAW,UAAU;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IAExB;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,GAAG,UAAU,CAe1F;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAoBjF;AAED,MAAM,WAAW,QAAQ;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,SAAS,EAAE,OAAO,CAAA;CAClB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/common/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAA;AAE/F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAE7D;AAED,MAAM,WAAW,UAAU;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IAExB;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,GAAG,UAAU,CAe1F;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAoBjF;AAED,MAAM,WAAW,QAAQ;IACxB;;;;;;;;;;;;;;OAcG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB;;;;;;;;;;;;;;;;;;OAkBG;IACH,cAAc,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,SAAS,EAAE,OAAO,CAAA;CAClB"}
@@ -1,4 +1,34 @@
1
- export type StopReason = 'end_turn' | 'token_budget' | 'cost_limit' | 'timeout' | 'max_iterations' | 'cancelled' | 'plan_rejected'
1
+ export type StopReason = 'end_turn' | 'token_budget' | 'cost_limit'
2
+ /**
3
+ * A `costLimitUsd` was set and part of the run ran at a rate nobody has, so
4
+ * the limit could not be measured.
5
+ *
6
+ * Distinct from `cost_limit`, and the distinction is the reason this value
7
+ * exists: nothing was overspent. Reporting `cost_limit` would send the
8
+ * reader to look at spend that was never computed, and would hide the one
9
+ * fact they need — that the budget they configured was unenforceable for
10
+ * part of this run.
11
+ *
12
+ * `query()` refuses the same combination up front, so this is the case
13
+ * preflight cannot see: a step naming its own model, or a chain member
14
+ * declaring one, arriving at a model the price catalogue has no row for.
15
+ * `costInfo.unpricedTokens` says how much of the run it covers.
16
+ *
17
+ * ## The closing call is outside the budget, deliberately
18
+ *
19
+ * Every hard stop is followed by one more model call — `requestFinalResponse`
20
+ * asks for a closing summary, and the guard does not run again before or
21
+ * after it. That is pre-existing and true of `cost_limit` and
22
+ * `token_budget` alike, and it is stated here rather than left to be
23
+ * discovered because for THIS reason it cannot be otherwise: the model that
24
+ * triggered the stop is by definition one with no rate, so the closing
25
+ * call's cost is unmeasurable by construction. Bounding it would mean
26
+ * refusing to close the run at all, which loses the work.
27
+ *
28
+ * Its tokens are counted, so `costInfo.unpricedTokens` includes them and
29
+ * the run reports honestly what it could not price.
30
+ */
31
+ | 'cost_unmeasurable' | 'timeout' | 'max_iterations' | 'cancelled' | 'plan_rejected'
2
32
  /** A caller-supplied `stopWhen` predicate returned true. */
3
33
  | 'stop_condition'
4
34
  /** The model never produced a valid structured output within its retries. */
@@ -1 +1 @@
1
- {"version":3,"file":"stop-reason.d.ts","sourceRoot":"","sources":["../../../src/types/run/stop-reason.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GACnB,UAAU,GACV,cAAc,GACd,YAAY,GACZ,SAAS,GACT,gBAAgB,GAChB,WAAW,GACX,eAAe;AACjB,4DAA4D;GAC1D,gBAAgB;AAClB,6EAA6E;GAC3E,0BAA0B;AAC5B;;;;;;;;GAQG;GACD,iBAAiB;AACnB,4DAA4D;GAC1D,iBAAiB;AACnB,uDAAuD;GACrD,kBAAkB,GAClB,QAAQ,GACR,OAAO,CAAA;AAEV;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAC1B,UAAU,GACV,UAAU,GACV,YAAY,GACZ,eAAe,GACf,YAAY,GACZ,SAAS,GACT,iBAAiB;AACnB;;;;;;;;GAQG;GACD,WAAW,CAAA"}
1
+ {"version":3,"file":"stop-reason.d.ts","sourceRoot":"","sources":["../../../src/types/run/stop-reason.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GACnB,UAAU,GACV,cAAc,GACd,YAAY;AACd;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;GACD,mBAAmB,GACnB,SAAS,GACT,gBAAgB,GAChB,WAAW,GACX,eAAe;AACjB,4DAA4D;GAC1D,gBAAgB;AAClB,6EAA6E;GAC3E,0BAA0B;AAC5B;;;;;;;;GAQG;GACD,iBAAiB;AACnB,4DAA4D;GAC1D,iBAAiB;AACnB,uDAAuD;GACrD,kBAAkB,GAClB,QAAQ,GACR,OAAO,CAAA;AAEV;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAC1B,UAAU,GACV,UAAU,GACV,YAAY,GACZ,eAAe,GACf,YAAY,GACZ,SAAS,GACT,iBAAiB;AACnB;;;;;;;;GAQG;GACD,WAAW,CAAA"}
@@ -1,11 +1,69 @@
1
1
  import { ZERO_COST } from '../constants/limits.js';
2
2
  import type { CostInfo, TokenUsage } from '../types/common/index.js';
3
+ /**
4
+ * What a driver's cache tokens cost, and what they mean.
5
+ *
6
+ * `promptIncludesCacheReads` is a property of the DRIVER, not of the model, and
7
+ * it is why this is a nested object rather than two more rate fields. The
8
+ * drivers in this repository disagree about it: two report `promptTokens`
9
+ * excluding cache reads and charge them on top, one reports `promptTokens`
10
+ * already containing them. Applying a read rate without knowing which one you
11
+ * have is wrong by the entire cache volume, in a direction that changes with
12
+ * whoever served the turn — so the fact travels with the rates and is never
13
+ * inferred.
14
+ */
15
+ export interface CacheRates {
16
+ /**
17
+ * `true`: `usage.cachedTokens` is a SUBSET of `usage.promptTokens`, so the
18
+ * billable input is the difference.
19
+ * `false`: they are additional to it.
20
+ */
21
+ readonly promptIncludesCacheReads: boolean;
22
+ readonly readCostPer1M: number;
23
+ /**
24
+ * Absent when the driver never reports a cache write. Tokens that arrive
25
+ * anyway are counted as unpriced rather than charged at some neighbouring
26
+ * rate, so a driver that starts reporting them surfaces as a gap instead of
27
+ * a quietly wrong total.
28
+ */
29
+ readonly writeCostPer1M?: number;
30
+ }
3
31
  export interface ModelPricing {
4
32
  inputCostPer1M: number;
5
33
  outputCostPer1M: number;
34
+ /**
35
+ * Absent means the caller declared a two-rate card and gets a two-rate
36
+ * answer: prompt and completion tokens are priced, and cache tokens are
37
+ * left inside whichever of those the driver already counted them in. That
38
+ * is the host-supplied case and it is a declaration, not a guess on our
39
+ * part. The catalogue always supplies this.
40
+ */
41
+ cache?: CacheRates;
6
42
  }
7
43
  export { ZERO_COST };
8
- export declare function calculateCost(usage: TokenUsage, pricing: ModelPricing, cacheDiscount?: number): CostInfo;
9
- export declare function accumulateCost(current: CostInfo, additionalUsage: TokenUsage, pricing: ModelPricing, cacheDiscount?: number): CostInfo;
44
+ export declare function calculateCost(usage: TokenUsage, pricing: ModelPricing): CostInfo;
45
+ export declare function accumulateCost(current: CostInfo, additionalUsage: TokenUsage, pricing: ModelPricing): CostInfo;
46
+ /**
47
+ * Record tokens that were consumed at a rate nobody has.
48
+ *
49
+ * The alternative was to add nothing and leave the total alone, which is how
50
+ * every run came to report `$0.00` for work that cost real money. Counting the
51
+ * tokens instead makes the gap a fact the caller can read and the budget guard
52
+ * can refuse on, rather than an absence that looks like an answer.
53
+ *
54
+ * The rate fields go, if they were there: a total that omits part of a run is
55
+ * not described by any single card.
56
+ */
57
+ export declare function accumulateUnpricedCost(current: CostInfo, additionalUsage: TokenUsage): CostInfo;
10
58
  export declare function formatCost(usd: number): string;
59
+ /**
60
+ * How a total should be shown, given what is and is not known about it.
61
+ *
62
+ * Exists so that no surface has to re-derive the free/unknown distinction from
63
+ * two fields and get it subtly wrong. `@namzu/cli` printed
64
+ * `'$0.0000 (this provider reported no price)'` for every run, because every
65
+ * run was unpriced; now the two cases really are different and the string has
66
+ * to follow.
67
+ */
68
+ export declare function describeCost(cost: CostInfo): string;
11
69
  //# sourceMappingURL=cost.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../src/utils/cost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAEpE,MAAM,WAAW,YAAY;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;CACvB;AAED,OAAO,EAAE,SAAS,EAAE,CAAA;AAEpB,wBAAgB,aAAa,CAC5B,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,YAAY,EACrB,aAAa,SAAI,GACf,QAAQ,CAWV;AAED,wBAAgB,cAAc,CAC7B,OAAO,EAAE,QAAQ,EACjB,eAAe,EAAE,UAAU,EAC3B,OAAO,EAAE,YAAY,EACrB,aAAa,SAAI,GACf,QAAQ,CAQV;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI9C"}
1
+ {"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../src/utils/cost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAEpE;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,UAAU;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAA;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAChC;AAED,MAAM,WAAW,YAAY;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,OAAO,EAAE,SAAS,EAAE,CAAA;AAiDpB,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,QAAQ,CAShF;AA0DD,wBAAgB,cAAc,CAC7B,OAAO,EAAE,QAAQ,EACjB,eAAe,EAAE,UAAU,EAC3B,OAAO,EAAE,YAAY,GACnB,QAAQ,CASV;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,GAAG,QAAQ,CAM/F;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI9C;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAMnD"}
@@ -1,23 +1,121 @@
1
1
  import { ZERO_COST } from '../constants/limits.js';
2
2
  export { ZERO_COST };
3
- export function calculateCost(usage, pricing, cacheDiscount = 0) {
4
- const inputCost = (usage.promptTokens / 1_000_000) * pricing.inputCostPer1M;
5
- const outputCost = (usage.completionTokens / 1_000_000) * pricing.outputCostPer1M;
6
- const gross = inputCost + outputCost;
3
+ function priceUsage(usage, pricing) {
4
+ const perMillion = (tokens, rate) => (tokens / 1_000_000) * rate;
5
+ const cache = pricing.cache;
6
+ if (cache === undefined) {
7
+ return {
8
+ cost: perMillion(usage.promptTokens, pricing.inputCostPer1M) +
9
+ perMillion(usage.completionTokens, pricing.outputCostPer1M),
10
+ cacheDiscount: 0,
11
+ unpriced: 0,
12
+ };
13
+ }
14
+ // Never negative: a driver that reports more cached tokens than prompt
15
+ // tokens is contradicting itself, and clamping keeps that from turning into
16
+ // a credit on the bill.
17
+ const billableInput = cache.promptIncludesCacheReads
18
+ ? Math.max(0, usage.promptTokens - usage.cachedTokens)
19
+ : usage.promptTokens;
20
+ const writesRated = cache.writeCostPer1M !== undefined;
21
+ return {
22
+ cost: perMillion(billableInput, pricing.inputCostPer1M) +
23
+ perMillion(usage.completionTokens, pricing.outputCostPer1M) +
24
+ perMillion(usage.cachedTokens, cache.readCostPer1M) +
25
+ (writesRated ? perMillion(usage.cacheWriteTokens, cache.writeCostPer1M) : 0),
26
+ // Reported, not subtracted. The saving is already inside `cost` — the
27
+ // reads were charged at the read rate rather than the input rate — so
28
+ // taking it off again would double-count it. This field was previously
29
+ // declared, defaulted to zero at both call sites, and passed by nobody;
30
+ // it now carries the one quantity it was always named for.
31
+ cacheDiscount: perMillion(usage.cachedTokens, pricing.inputCostPer1M - cache.readCostPer1M),
32
+ unpriced: writesRated ? 0 : usage.cacheWriteTokens,
33
+ };
34
+ }
35
+ export function calculateCost(usage, pricing) {
36
+ const priced = priceUsage(usage, pricing);
7
37
  return {
8
38
  inputCostPer1M: pricing.inputCostPer1M,
9
39
  outputCostPer1M: pricing.outputCostPer1M,
10
- totalCost: gross - cacheDiscount,
11
- cacheDiscount,
40
+ totalCost: priced.cost,
41
+ cacheDiscount: priced.cacheDiscount,
42
+ unpricedTokens: priced.unpriced,
12
43
  };
13
44
  }
14
- export function accumulateCost(current, additionalUsage, pricing, cacheDiscount = 0) {
15
- const additional = calculateCost(additionalUsage, pricing, cacheDiscount);
16
- return {
45
+ /**
46
+ * Whether `current` is a total nothing has been added to yet.
47
+ *
48
+ * All three conditions, not one. A run whose only turn so far was unpriced has
49
+ * a zero total and no rate fields too, and adopting the next turn's rate card
50
+ * as though it described the whole total would be exactly the wrong claim.
51
+ *
52
+ * This predicate is only sound while every writer of a `CostInfo` goes through
53
+ * this module or states the truth in its vocabulary. One did not:
54
+ * `projectEmergencyToCheckpoint` wrote `ZERO_COST` beside a real, non-zero
55
+ * `tokenUsage`, which is byte-identical to a fresh total — so a run resumed
56
+ * from an emergency dump would have adopted its next turn's rate card as
57
+ * covering spend that happened before the crash. That projection now records
58
+ * the pre-crash tokens as unpriced, which is both true and, usefully, not
59
+ * fresh-shaped.
60
+ */
61
+ function isFresh(current) {
62
+ return (current.totalCost === 0 &&
63
+ current.unpricedTokens === 0 &&
64
+ current.inputCostPer1M === undefined &&
65
+ current.outputCostPer1M === undefined);
66
+ }
67
+ /**
68
+ * The rate fields that honestly describe `current + pricing`.
69
+ *
70
+ * Kept when one card still covers the whole total; dropped when it does not.
71
+ * Dropping rather than overwriting is the change: the previous version wrote
72
+ * the incoming card over whatever was there, so a run that swapped models
73
+ * reported the last card applied as though it had priced every token.
74
+ *
75
+ * Equal-but-distinct cards are treated as one, deliberately. Two models at the
76
+ * same published rate produce a total that a single rate card DOES describe,
77
+ * which is the only claim these two fields make — they name a rate, not a
78
+ * model, and `Run.steps[].servedBy` carries which model served each turn.
79
+ */
80
+ function ratesFor(current, pricing) {
81
+ const incoming = {
17
82
  inputCostPer1M: pricing.inputCostPer1M,
18
83
  outputCostPer1M: pricing.outputCostPer1M,
19
- totalCost: current.totalCost + additional.totalCost,
20
- cacheDiscount: current.cacheDiscount + additional.cacheDiscount,
84
+ };
85
+ if (isFresh(current))
86
+ return incoming;
87
+ if (current.inputCostPer1M === pricing.inputCostPer1M &&
88
+ current.outputCostPer1M === pricing.outputCostPer1M) {
89
+ return incoming;
90
+ }
91
+ return {};
92
+ }
93
+ export function accumulateCost(current, additionalUsage, pricing) {
94
+ const priced = priceUsage(additionalUsage, pricing);
95
+ const rates = priced.unpriced > 0 ? {} : ratesFor(current, pricing);
96
+ return {
97
+ ...rates,
98
+ totalCost: current.totalCost + priced.cost,
99
+ cacheDiscount: current.cacheDiscount + priced.cacheDiscount,
100
+ unpricedTokens: current.unpricedTokens + priced.unpriced,
101
+ };
102
+ }
103
+ /**
104
+ * Record tokens that were consumed at a rate nobody has.
105
+ *
106
+ * The alternative was to add nothing and leave the total alone, which is how
107
+ * every run came to report `$0.00` for work that cost real money. Counting the
108
+ * tokens instead makes the gap a fact the caller can read and the budget guard
109
+ * can refuse on, rather than an absence that looks like an answer.
110
+ *
111
+ * The rate fields go, if they were there: a total that omits part of a run is
112
+ * not described by any single card.
113
+ */
114
+ export function accumulateUnpricedCost(current, additionalUsage) {
115
+ return {
116
+ totalCost: current.totalCost,
117
+ cacheDiscount: current.cacheDiscount,
118
+ unpricedTokens: current.unpricedTokens + additionalUsage.totalTokens,
21
119
  };
22
120
  }
23
121
  export function formatCost(usd) {
@@ -27,4 +125,21 @@ export function formatCost(usd) {
27
125
  return `$${usd.toFixed(4)}`;
28
126
  return `$${usd.toFixed(2)}`;
29
127
  }
128
+ /**
129
+ * How a total should be shown, given what is and is not known about it.
130
+ *
131
+ * Exists so that no surface has to re-derive the free/unknown distinction from
132
+ * two fields and get it subtly wrong. `@namzu/cli` printed
133
+ * `'$0.0000 (this provider reported no price)'` for every run, because every
134
+ * run was unpriced; now the two cases really are different and the string has
135
+ * to follow.
136
+ */
137
+ export function describeCost(cost) {
138
+ if (cost.unpricedTokens === 0)
139
+ return formatCost(cost.totalCost);
140
+ if (cost.totalCost === 0) {
141
+ return `unknown (${cost.unpricedTokens} tokens at no known rate)`;
142
+ }
143
+ return `at least ${formatCost(cost.totalCost)} (${cost.unpricedTokens} tokens at no known rate)`;
144
+ }
30
145
  //# sourceMappingURL=cost.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cost.js","sourceRoot":"","sources":["../../src/utils/cost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAQlD,OAAO,EAAE,SAAS,EAAE,CAAA;AAEpB,MAAM,UAAU,aAAa,CAC5B,KAAiB,EACjB,OAAqB,EACrB,aAAa,GAAG,CAAC;IAEjB,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAA;IAC3E,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,gBAAgB,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,eAAe,CAAA;IACjF,MAAM,KAAK,GAAG,SAAS,GAAG,UAAU,CAAA;IAEpC,OAAO;QACN,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,SAAS,EAAE,KAAK,GAAG,aAAa;QAChC,aAAa;KACb,CAAA;AACF,CAAC;AAED,MAAM,UAAU,cAAc,CAC7B,OAAiB,EACjB,eAA2B,EAC3B,OAAqB,EACrB,aAAa,GAAG,CAAC;IAEjB,MAAM,UAAU,GAAG,aAAa,CAAC,eAAe,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;IACzE,OAAO;QACN,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,SAAS,EAAE,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS;QACnD,aAAa,EAAE,OAAO,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa;KAC/D,CAAA;AACF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW;IACrC,IAAI,GAAG,KAAK,CAAC;QAAE,OAAO,OAAO,CAAA;IAC7B,IAAI,GAAG,GAAG,IAAI;QAAE,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3C,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;AAC5B,CAAC"}
1
+ {"version":3,"file":"cost.js","sourceRoot":"","sources":["../../src/utils/cost.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@namzu/sdk",
3
- "version": "21.0.0",
3
+ "version": "22.0.0",
4
4
  "description": "Open-source AI agent SDK with a built-in runtime. Nothing between you and your agents.",
5
5
  "license": "FSL-1.1-MIT",
6
6
  "type": "module",
@@ -1,5 +1,6 @@
1
- import { CHARS_PER_TOKEN } from '../constants/limits.js'
1
+ import { CHARS_PER_TOKEN, ZERO_COST } from '../constants/limits.js'
2
2
  import { assembleSystemPrompt } from '../persona/assembler.js'
3
+ import { resolveModelPricing } from '../pricing/index.js'
3
4
  import { collect } from '../provider/collect.js'
4
5
 
5
6
  import type { AdvisorDefinition, AdvisoryBudget } from '../types/advisory/config.js'
@@ -7,7 +8,7 @@ import type { AdvisoryRequest, AdvisoryResult } from '../types/advisory/result.j
7
8
  import type { CostInfo, TokenUsage } from '../types/common/index.js'
8
9
  import { type Message, createSystemMessage, createUserMessage } from '../types/message/index.js'
9
10
  import type { LLMToolSchema } from '../types/tool/index.js'
10
- import { calculateCost } from '../utils/cost.js'
11
+ import { accumulateUnpricedCost, calculateCost } from '../utils/cost.js'
11
12
  import { type Logger, getRootLogger } from '../utils/logger.js'
12
13
  import { ADVISORY_RESPONSE_CONTRACT, parseAdvisoryResponse } from './parse.js'
13
14
 
@@ -221,16 +222,22 @@ export class AdvisoryExecutor {
221
222
  }
222
223
 
223
224
  /**
224
- * Cost for one call, from the advisor's own pricing.
225
+ * Cost for one call, from the advisor's own pricing, then the catalogue.
225
226
  *
226
- * Zero when the advisor carries none which is honest, not a
227
- * placeholder: a cost CAP over unpriced advisors is refused at
228
- * construction, so nothing enforces against this zero.
227
+ * When neither has a rate this reports the tokens as UNPRICED rather than
228
+ * as a cost of zero. The previous version returned a zero rate card and a
229
+ * zero total, defended on the grounds that a cost CAP over unpriced
230
+ * advisors is refused at construction so nothing enforces against it — true
231
+ * of the cap, and beside the point for the reader. `AdvisoryResult.cost` is
232
+ * reported to the host, and `$0.00` for a call that cost real money is the
233
+ * exact defect this change exists to remove; it does not become acceptable
234
+ * because the number happens to be unenforced.
229
235
  */
230
236
  private computeCost(advisor: AdvisorDefinition, usage: TokenUsage): CostInfo {
231
- if (!advisor.pricing) {
232
- return { inputCostPer1M: 0, outputCostPer1M: 0, totalCost: 0, cacheDiscount: 0 }
237
+ const pricing = advisor.pricing ?? resolveModelPricing(advisor.provider.id, advisor.model)
238
+ if (!pricing) {
239
+ return accumulateUnpricedCost(ZERO_COST, usage)
233
240
  }
234
- return calculateCost(usage, advisor.pricing)
241
+ return calculateCost(usage, pricing)
235
242
  }
236
243
  }
@@ -1,10 +1,22 @@
1
1
  import type { CostInfo, TokenUsage } from '../types/common/index.js'
2
2
 
3
+ /**
4
+ * The starting value for a run: nothing accumulated, nothing unpriced.
5
+ *
6
+ * Carries NO rate fields, and that is load-bearing rather than tidy. It is what
7
+ * lets {@link import('../utils/cost.js').accumulateCost} tell "fresh" from
8
+ * "already spans two rate cards" without a separate marker: a fresh total has
9
+ * no rates AND no unpriced tokens AND a zero total, and no accumulated one can
10
+ * have all three.
11
+ *
12
+ * It also stops reading as a rate card of zero. `inputCostPer1M: 0` on a run
13
+ * nobody has priced says the model is free, which was exactly the confusion
14
+ * `unpricedTokens` was added to end.
15
+ */
3
16
  export const ZERO_COST: CostInfo = {
4
- inputCostPer1M: 0,
5
- outputCostPer1M: 0,
6
17
  totalCost: 0,
7
18
  cacheDiscount: 0,
19
+ unpricedTokens: 0,
8
20
  }
9
21
 
10
22
  export const CHARS_PER_TOKEN = 4
@@ -48,8 +48,8 @@ import type { ThreadManager } from '../thread/lifecycle.js'
48
48
  *
49
49
  * Phase 9 Known Delta #5: fields are now unconditional required. The legacy
50
50
  * "run without deps" compat branch was removed; every `AgentManager` consumer
51
- * (SDK internals, `@namzu/agents`, `@namzu/api`, `@namzu/cli`) MUST wire the
52
- * full set before instantiating. Convention #0 (no workarounds): the
51
+ * (SDK internals and `@namzu/cli`; the list here once also named two packages
52
+ * that do not exist) MUST wire the full set before instantiating. Convention #0 (no workarounds): the
53
53
  * partially-wired mode was a migration-window bridge; 0.2.0 closes it.
54
54
  *
55
55
  * `workspaceRegistry` is required but may be empty — spawns without a
@@ -1,5 +1,6 @@
1
1
  import { AUTO_CONTINUATION_USER_MESSAGE } from '../../constants/continuation.js'
2
2
  import { EMPTY_TOKEN_USAGE } from '../../constants/limits.js'
3
+ import { resolveModelPricing } from '../../pricing/index.js'
3
4
  import { DiskCheckpointStore } from '../../store/run/checkpoint-disk.js'
4
5
  import { RunDiskStore } from '../../store/run/disk.js'
5
6
  import { type CostInfo, type TokenUsage, accumulateTokenUsage } from '../../types/common/index.js'
@@ -11,10 +12,28 @@ import type { EmergencySaveData } from '../../types/run/emergency.js'
11
12
  import type { Run, RunPersistenceConfig, StepResult, StopReason } from '../../types/run/index.js'
12
13
  import type { RunStore } from '../../types/run/store.js'
13
14
  import type { ProjectId, ThreadId } from '../../types/session/ids.js'
14
- import { type ModelPricing, ZERO_COST, accumulateCost } from '../../utils/cost.js'
15
+ import {
16
+ type ModelPricing,
17
+ ZERO_COST,
18
+ accumulateCost,
19
+ accumulateUnpricedCost,
20
+ } from '../../utils/cost.js'
15
21
  import { generateEmergencySaveId } from '../../utils/id.js'
16
22
  import type { Logger } from '../../utils/logger.js'
17
23
 
24
+ /**
25
+ * The pair a rate lookup needs: which driver, running which model.
26
+ *
27
+ * `model` may be absent because a driver can be pointed at whatever the host
28
+ * configured and some report nothing back. Absent resolves to no rate, which
29
+ * is the honest answer, EXCEPT for a driver that bills nothing whatever it
30
+ * runs — see `resolveModelPricing`.
31
+ */
32
+ export interface PricingSubject {
33
+ readonly providerId: string
34
+ readonly model: string | undefined
35
+ }
36
+
18
37
  export class RunPersistence {
19
38
  private run: Run
20
39
  private runStore: RunStore
@@ -266,12 +285,38 @@ export class RunPersistence {
266
285
  this.run.messages.push(message)
267
286
  }
268
287
 
269
- accumulateUsage(usage: TokenUsage): void {
288
+ /**
289
+ * Who served the tokens being accumulated, so a rate can be found for them.
290
+ *
291
+ * Both fields are required. The previous signature took usage alone and
292
+ * priced it from one table the run was constructed with, which is why the
293
+ * only way to get a non-zero cost was for a host to pass that table — and
294
+ * no shipped surface did. Naming the subject at every call site is what
295
+ * lets the catalogue answer, and it makes a site that cannot say who served
296
+ * a compile error rather than a silent misattribution.
297
+ */
298
+ private resolvePricing(servedBy: PricingSubject): ModelPricing | undefined {
299
+ // A host-supplied table wins. It is a deliberate declaration about this
300
+ // run, and `query()` already refuses to accept one alongside a provider
301
+ // chain of more than one member, so it cannot be silently spread across
302
+ // two rate cards here.
303
+ if (this.pricing) return this.pricing
304
+ return resolveModelPricing(servedBy.providerId, servedBy.model)
305
+ }
306
+
307
+ accumulateUsage(usage: TokenUsage, servedBy: PricingSubject): void {
270
308
  this.run.tokenUsage = accumulateTokenUsage(this.run.tokenUsage, usage)
271
309
 
272
- if (this.pricing) {
273
- this.run.costInfo = accumulateCost(this.run.costInfo, usage, this.pricing)
274
- }
310
+ const pricing = this.resolvePricing(servedBy)
311
+ // No rate is not the same as a rate of zero, and the difference is the
312
+ // whole point of this change. Tokens nobody can price are counted as
313
+ // such, so `costInfo.unpricedTokens` distinguishes "this cost nothing"
314
+ // from "nobody knows what this cost" — and so the budget guard can
315
+ // refuse rather than pass a limit it cannot measure.
316
+ this.run.costInfo =
317
+ pricing === undefined
318
+ ? accumulateUnpricedCost(this.run.costInfo, usage)
319
+ : accumulateCost(this.run.costInfo, usage, pricing)
275
320
  }
276
321
 
277
322
  /**
@@ -287,8 +332,8 @@ export class RunPersistence {
287
332
  * plain {@link accumulateUsage} instead: their prompts are not the
288
333
  * run's context, and letting them write here would corrupt the signal.
289
334
  */
290
- recordTurnUsage(usage: TokenUsage): void {
291
- this.accumulateUsage(usage)
335
+ recordTurnUsage(usage: TokenUsage, servedBy: PricingSubject): void {
336
+ this.accumulateUsage(usage, servedBy)
292
337
  this._lastPromptTokens = usage.promptTokens
293
338
  // How much of the history that number covers. The loop pushes the
294
339
  // assistant message and its tool results AFTER this call, so without
@@ -393,6 +438,21 @@ export class RunPersistence {
393
438
  this.run.metadata.servingProvider = providerId
394
439
  }
395
440
 
441
+ /**
442
+ * Who is serving right now, for a side-channel call that has no provenance
443
+ * of its own.
444
+ *
445
+ * The main loop does not use this — it reads `servedBy` off the turn, which
446
+ * is exact. Compaction and the closing summary go through the same wrapped
447
+ * provider without recording who answered, and this is the best available
448
+ * answer for them: the fallback decorator reports the head member's id
449
+ * whoever is actually serving, so asking the provider would hand back the
450
+ * declaration rather than the fact.
451
+ */
452
+ get servingProviderId(): string {
453
+ return this.run.metadata.servingProvider ?? this.run.metadata.provider
454
+ }
455
+
396
456
  clearLastPromptTokens(): void {
397
457
  this._lastPromptTokens = undefined
398
458
  this._lastPromptMessageCount = undefined