@tanstack-ai-browser/prompt-api 0.2.0 → 0.2.1

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 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,iBAAiB,EAAgB,WAAW,EAAoB,MAAM,cAAc,CAAA;AAClG,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAI5F,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEzD,OAAO,KAAK,EAAE,wBAAwB,EAA4C,YAAY,EAAE,MAAM,YAAY,CAAA;AAElH,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACjC;;;;OAIG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IAClC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,wBAAwB,CAAA;IAC7C;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CAC3C,CAAA;AAED,uDAAuD;AACvD,MAAM,MAAM,yBAAyB,GAAG;IACtC;;;;OAIG;IACH,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,0GAA0G;IAC1G,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AA2DD,qBAAa,oBAAqB,SAAQ,eAAe,CACvD,kBAAkB,EAClB,yBAAyB,EACzB,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EACnC,kBAAkB,CACnB;IACC,SAAkB,IAAI,EAAG,MAAM,CAAS;IACxC,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAS;IACrC,SAAkB,QAAQ,EAAG,YAAY,CAAS;IAClD,SAAkB,GAAG,EAAG,YAAY,CAAS;IAC7C,SAAkB,eAAe,YAAI,MAAM,EAAE,OAAO,EAAE,OAAO,EAAU;IACvE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAClD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAsC;IACzE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsC;IACxE,wDAAwD;IACxD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAE/C,YAAY,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,kBAAkB,EAM7D;IAED;;;;;OAKG;IACH,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,CAEpC;IAED;;;;;;OAMG;IACG,wBAAwB,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAQpE;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,GAAE;QAAE,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAW3G;IAED;;;;;OAKG;IACG,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAEjE;IAED;;;;OAIG;IACG,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAElE;IAED,4GAA4G;IAC5G,OAAO,CAAC,WAAW;IAKnB,kEAAkE;IAC5D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAG7B;IAED,gFAAgF;IAChF,OAAO,CAAC,IAAI;IAWZ,4DAA4D;IAC5D,OAAO,CAAC,IAAI;IAOZ,oFAAoF;YACtE,OAAO;IAqBrB;;;;;;;OAOG;YACW,KAAK;IA8BnB,sFAAsF;IACtF,OAAO,CAAC,GAAG;IAMX;;;;;;;;OAQG;YACW,KAAK;IA0BZ,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,yBAAyB,CAAC,GAAG,aAAa,CAAC,iBAAiB,CAAC,CA4GnG;IAED;;;;;OAKG;IACG,gBAAgB,CACpB,OAAO,EAAE,uBAAuB,CAAC,yBAAyB,CAAC,GAC1D,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAoB1C;CACF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,oBAAoB,CAAA;AAC7E,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,oBAAoB,CAAA"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
package/dist/adapter.js CHANGED
@@ -250,7 +250,8 @@ export class PromptApiTextAdapter extends BaseTextAdapter {
250
250
  const completionTokens = Math.max(0, written - markers);
251
251
  return {
252
252
  ...buildBaseUsage({ promptTokens, completionTokens, totalTokens: promptTokens + completionTokens }),
253
- ...(goesOn && { promptTokensDetails: { cachedTokens: held } })
253
+ // A new session read all of it in this step: none was cached.
254
+ promptTokensDetails: { cachedTokens: goesOn ? held : 0 }
254
255
  };
255
256
  }
256
257
  catch {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack-ai-browser/prompt-api",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "TanStack AI adapter for the browser's built-in language model (the Prompt API: Gemini Nano in Chrome, Phi-4-mini in Edge)",
5
5
  "license": "MIT",
6
6
  "author": "daveycodez",
@@ -49,14 +49,14 @@
49
49
  "nx": {
50
50
  "name": "prompt-api"
51
51
  },
52
+ "scripts": {
53
+ "test": "node --import @swc-node/register/esm-register --test \"src/**/*.test.ts\""
54
+ },
52
55
  "peerDependencies": {
53
56
  "@tanstack/ai": "^1.0.0"
54
57
  },
55
58
  "devDependencies": {
56
59
  "@tanstack/ai": "1.4.0",
57
60
  "esbuild": "0.28.2"
58
- },
59
- "scripts": {
60
- "test": "node --import @swc-node/register/esm-register --test \"src/**/*.test.ts\""
61
61
  }
62
- }
62
+ }
@@ -531,7 +531,7 @@ test("a reply reports its tokens: what the session held, and the prompt and the
531
531
  // Less an empty message's count: the turn markers a session counts around any message.
532
532
  const reply = measured("Hello there") - measured("")
533
533
  // A new session read what it holds in this step: nothing cached.
534
- assert.deepEqual(await step(first), { promptTokens: prompt, completionTokens: reply, totalTokens: prompt + reply })
534
+ assert.deepEqual(await step(first), { promptTokens: prompt, completionTokens: reply, totalTokens: prompt + reply, promptTokensDetails: { cachedTokens: 0 } })
535
535
 
536
536
  // The thread's kept session doesn't read what it holds again: only the new message.
537
537
  Object.assign(control.sessions[0], { contextUsage: 300 })
package/src/adapter.ts CHANGED
@@ -348,7 +348,8 @@ export class PromptApiTextAdapter extends BaseTextAdapter<
348
348
  const completionTokens = Math.max(0, written - markers)
349
349
  return {
350
350
  ...buildBaseUsage({ promptTokens, completionTokens, totalTokens: promptTokens + completionTokens }),
351
- ...(goesOn && { promptTokensDetails: { cachedTokens: held } })
351
+ // A new session read all of it in this step: none was cached.
352
+ promptTokensDetails: { cachedTokens: goesOn ? held : 0 }
352
353
  }
353
354
  } catch {
354
355
  return undefined