@ahtmljs/agent 0.1.0 โ 0.2.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.
- package/README.md +126 -0
- package/dist/client.js +1 -1
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +55 -11
package/README.md
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# @ahtmljs/agent
|
|
2
|
+
|
|
3
|
+
Client SDK for consuming **[AHTML](https://github.com/DibbayajyotiRoy/AHTML)** โ
|
|
4
|
+
the HTML of the agent web.
|
|
5
|
+
|
|
6
|
+
Fetch typed semantic snapshots from any AHTML-emitting site, cache by
|
|
7
|
+
ETag, replay diffs, run actions with dry-run support, and measure token
|
|
8
|
+
cost using the industry-standard tokenizers (`gpt-tokenizer`,
|
|
9
|
+
`@anthropic-ai/tokenizer`).
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install @ahtmljs/agent @ahtmljs/schema
|
|
13
|
+
# optional tokenizer peers (for token cost measurement)
|
|
14
|
+
npm install gpt-tokenizer @anthropic-ai/tokenizer
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## ๐ How well does an AI read it?
|
|
18
|
+
|
|
19
|
+
We asked an AI **20 questions** about the same page โ given in 4 different formats:
|
|
20
|
+
|
|
21
|
+
| Format you give the AI | Tokens used | Right answers |
|
|
22
|
+
|---|---:|---:|
|
|
23
|
+
| Plain HTML | 684 | 91% |
|
|
24
|
+
| llms.txt | 227 | 89% |
|
|
25
|
+
| **AHTML compact** | **338** | **95%** |
|
|
26
|
+
| **AHTML JSON** | **365** | **100%** โ |
|
|
27
|
+
|
|
28
|
+
> **AHTML JSON: every answer right.** AHTML compact: ~50% fewer tokens than HTML โ and still more accurate.
|
|
29
|
+
|
|
30
|
+
<details>
|
|
31
|
+
<summary><sub><i>How we measured this โ open for details</i></sub></summary>
|
|
32
|
+
<sub>
|
|
33
|
+
|
|
34
|
+
- Real API calls to **gpt-4o-mini, claude-haiku-4.5, gemini-2.5-flash, llama-3.3-70b** at temperature=0.
|
|
35
|
+
- 20 hand-graded questions an AI agent actually wants to know: *price, in stock?, SKU, return window, confirmation needed?, author, publication date,* etc.
|
|
36
|
+
- Tokens counted with the official OpenAI + Anthropic tokenizers (`gpt-tokenizer`, `@anthropic-ai/tokenizer`). No `text.length/4` guessing.
|
|
37
|
+
- Cost from real provider usage ร public prices.
|
|
38
|
+
- Reproduce: `git clone https://github.com/DibbayajyotiRoy/AHTML && cp .env.example .env && bash scripts/run-llm-benchmark.sh`
|
|
39
|
+
|
|
40
|
+
[Full report](https://github.com/DibbayajyotiRoy/AHTML/blob/main/benchmark-results-llm.md) ยท [Source](https://github.com/DibbayajyotiRoy/AHTML/tree/main/examples/llm-benchmark)
|
|
41
|
+
|
|
42
|
+
</sub>
|
|
43
|
+
</details>
|
|
44
|
+
|
|
45
|
+
## Fetching a snapshot
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
import { AHTMLClient } from '@ahtmljs/agent';
|
|
49
|
+
|
|
50
|
+
const client = new AHTMLClient({ agent: 'MyAgent/1.0' });
|
|
51
|
+
|
|
52
|
+
// Default Accept is `application/ahtml+text` (compact, token-optimal).
|
|
53
|
+
const snap = await client.fetch('https://shop.com/ahtml/products/mbp-14');
|
|
54
|
+
|
|
55
|
+
console.log(snap.entities[0]); // typed Product
|
|
56
|
+
console.log(snap.actions); // typed action contracts
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Subsequent fetches send `If-None-Match: <etag>` automatically. If the
|
|
60
|
+
server has a `?since=<etag>` diff endpoint, the client uses it
|
|
61
|
+
transparently โ the returned snapshot is the same shape, the wire cost
|
|
62
|
+
is much less.
|
|
63
|
+
|
|
64
|
+
## Running an action safely
|
|
65
|
+
|
|
66
|
+
```ts
|
|
67
|
+
import { runAction } from '@ahtmljs/agent';
|
|
68
|
+
|
|
69
|
+
const action = snap.actions.find((a) => a.id === 'purchase')!;
|
|
70
|
+
|
|
71
|
+
// Dry-run first โ hits action.preview_url, returns intended changes.
|
|
72
|
+
const preview = await runAction(snap, action, { sku: 'MBP14', quantity: 1 }, {
|
|
73
|
+
dryRun: true,
|
|
74
|
+
});
|
|
75
|
+
// โ { status: 'dry_run',
|
|
76
|
+
// would_charge: { amount: 1999, currency: 'USD' },
|
|
77
|
+
// would_side_effects: ['charge_card', 'email_buyer', 'decrement_stock'] }
|
|
78
|
+
|
|
79
|
+
// Then commit, with explicit confirmation if the contract requires it.
|
|
80
|
+
const result = await runAction(snap, action, { sku: 'MBP14', quantity: 1 }, {
|
|
81
|
+
confirm: true, // required because action.confirmation === 'required'
|
|
82
|
+
bearer: process.env.OAUTH!, // required because action.auth === 'required'
|
|
83
|
+
});
|
|
84
|
+
// โ { status: 'executed', output: Receipt, http_status: 200 }
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
`runAction` refuses to fire an action whose `confirmation: 'required'`
|
|
88
|
+
unless `{ confirm: true }` is passed โ gives your agent a built-in
|
|
89
|
+
safety gate.
|
|
90
|
+
|
|
91
|
+
## Measuring token cost
|
|
92
|
+
|
|
93
|
+
```ts
|
|
94
|
+
import { countTokensGpt, countTokensClaude, measure } from '@ahtmljs/agent';
|
|
95
|
+
|
|
96
|
+
await countTokensGpt(text, 'o200k_base'); // OpenAI tiktoken (GPT-4o, o-series)
|
|
97
|
+
await countTokensGpt(text, 'cl100k_base'); // OpenAI tiktoken (GPT-4, 3.5)
|
|
98
|
+
await countTokensClaude(text); // Anthropic official Claude tokenizer
|
|
99
|
+
|
|
100
|
+
// Everything in one shot:
|
|
101
|
+
await measure(text);
|
|
102
|
+
// โ { bytes, bytes_gzip, tokens_openai_cl100k, tokens_openai_o200k, tokens_anthropic }
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
These wrap the **actual tokenizers** OpenAI and Anthropic use internally
|
|
106
|
+
(`gpt-tokenizer` and `@anthropic-ai/tokenizer`). No `text.length / 4`
|
|
107
|
+
approximations.
|
|
108
|
+
|
|
109
|
+
## What is AHTML?
|
|
110
|
+
|
|
111
|
+
AHTML turns any website into an MCP server, an OpenAPI provider, a
|
|
112
|
+
JSON-LD source, and a token-optimal semantic snapshot โ all from one
|
|
113
|
+
plugin. This package is the client SDK that consumes those snapshots.
|
|
114
|
+
|
|
115
|
+
If you're building an AI agent that browses the web, you want this.
|
|
116
|
+
|
|
117
|
+
## Documentation
|
|
118
|
+
|
|
119
|
+
- **Repository:** [`DibbayajyotiRoy/AHTML`](https://github.com/DibbayajyotiRoy/AHTML)
|
|
120
|
+
- **Spec:** [`SPEC.md`](https://github.com/DibbayajyotiRoy/AHTML/blob/main/SPEC.md)
|
|
121
|
+
- **For AI assistants:** [`docs/agents.md`](https://github.com/DibbayajyotiRoy/AHTML/blob/main/docs/agents.md)
|
|
122
|
+
- **Recipes (including dry-run, diff crawling):** [`docs/recipes.md`](https://github.com/DibbayajyotiRoy/AHTML/blob/main/docs/recipes.md)
|
|
123
|
+
|
|
124
|
+
## License
|
|
125
|
+
|
|
126
|
+
MIT
|
package/dist/client.js
CHANGED
|
@@ -108,7 +108,7 @@ export class AHTMLClient {
|
|
|
108
108
|
}
|
|
109
109
|
/** Discover a site's manifest. Returns the parsed JSON. */
|
|
110
110
|
async manifest(siteOrUrl, opts = {}) {
|
|
111
|
-
const fetcher = opts.fetch ?? globalThis.fetch;
|
|
111
|
+
const fetcher = opts.fetch ?? this.defaults.fetch ?? globalThis.fetch;
|
|
112
112
|
const base = siteOrUrl.replace(/\/$/, '');
|
|
113
113
|
const url = base.endsWith('/.well-known/ahtml.json')
|
|
114
114
|
? base
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,WAAW,EACX,QAAQ,EACR,SAAS,GAGV,MAAM,iBAAiB,CAAC;AAuBzB,MAAM,OAAO,WAAW;IAGF;IAFZ,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;IAElD,YAAoB,WAAyB,EAAE;QAA3B,aAAQ,GAAR,QAAQ,CAAmB;IAAG,CAAC;IAEnD;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,OAAqB,EAAE;QAC9C,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEnC,2DAA2D;QAC3D,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QAED,MAAM,MAAM,GACV,CAAC,CAAC,MAAM,KAAK,MAAM;YACjB,CAAC,CAAC,wBAAwB;YAC1B,CAAC,CAAC,wBAAwB,CAAC;QAE/B,uDAAuD;QACvD,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACzG,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE;gBACjC,OAAO,EAAE;oBACP,QAAQ,EAAE,+BAA+B,GAAG,MAAM;oBAClD,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;iBAC1C;aACF,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAE/C,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;gBAC5B,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBACjD,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC;oBACzD,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAiB,CAAC;oBAC7C,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;oBAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrE,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBAC/C,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC1C,CAAC;gBACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBAC1D,OAAO,MAAM,CAAC,QAAQ,CAAC;gBACzB,CAAC;gBACD,gDAAgD;YAClD,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,MAAM,OAAO,GAA2B,EAAE,MAAM,EAAE,CAAC;QACnD,IAAI,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QACvE,IAAI,CAAC,CAAC,KAAK;YAAE,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QAE7C,IAAI,GAAa,CAAC;QAClB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACvC,IAAI,EAAE,YAAY,QAAQ;gBAAE,GAAG,GAAG,EAAE,CAAC;;gBAChC,MAAM,GAAG,CAAC;QACjB,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC1D,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,MAAM,IAAI,CAAC,CAAC,UAAU;gBAAE,OAAO,MAAM,CAAC,QAAQ,CAAC;YACnD,MAAM,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,GAAW,EAAE,GAAa;QACxD,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACpD,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAChB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;QAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,UAAU,CAAC,GAAY;QACrB,IAAI,GAAG;YAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;;YAC3B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,OAAqB,EAAE;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;QACtE,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YAClD,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACrC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,6BAA6B,GAAG,EAAE,CAAC,CAAC;QAClF,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,KAAK;IAChB;IAAnB,YAAmB,MAAc,EAAE,OAAe;QAChD,KAAK,CAAC,SAAS,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;QADpB,WAAM,GAAN,MAAM,CAAQ;QAE/B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,SAAS,OAAO,CAAC,MAAsB;IACrC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;IAChC,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC;AACpD,CAAC;AAED,SAAS,WAAW,CAAC,GAAY,EAAE,MAAkC,EAAE,CAAe;IACpF,IAAI,MAAM,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;QAC3B,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,+BAA+B;IAC7E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* @ahtmljs/agent โ public API.
|
|
3
3
|
*/
|
|
4
4
|
export { AHTMLClient, type FetchOptions, type CachedSnapshot } from './client.js';
|
|
5
|
-
export { runAction, type ActionRunOptions, type ActionResult, type DryRunResult } from './workflow.js';
|
|
5
|
+
export { runAction, ActionRefused, type ActionRunOptions, type ActionResult, type DryRunResult } from './workflow.js';
|
|
6
6
|
export { countTokens, countTokensClaude, countTokensGpt, measure, type TokenMeasurement, } from './tokens.js';
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AACtH,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* @ahtmljs/agent โ public API.
|
|
3
3
|
*/
|
|
4
4
|
export { AHTMLClient } from './client.js';
|
|
5
|
-
export { runAction } from './workflow.js';
|
|
5
|
+
export { runAction, ActionRefused } from './workflow.js';
|
|
6
6
|
export { countTokens, countTokensClaude, countTokensGpt, measure, } from './tokens.js';
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAA0C,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,SAAS,EAA+D,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAA0C,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,aAAa,EAA+D,MAAM,eAAe,CAAC;AACtH,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,OAAO,GAER,MAAM,aAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,22 +1,63 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ahtmljs/agent",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "AHTML agent SDK โ fetch snapshots, cache by ETag, run actions with dry-run support, and measure token cost using industry-standard tokenizers.",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "AHTML agent SDK โ fetch snapshots from any AHTML-emitting site, cache by ETag, run actions with dry-run support, and measure token cost using the industry-standard tokenizers.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
8
8
|
"exports": {
|
|
9
|
-
".": {
|
|
10
|
-
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./tokens": {
|
|
14
|
+
"types": "./dist/tokens.d.ts",
|
|
15
|
+
"import": "./dist/tokens.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist",
|
|
20
|
+
"README.md"
|
|
21
|
+
],
|
|
22
|
+
"publishConfig": {
|
|
23
|
+
"access": "public"
|
|
11
24
|
},
|
|
12
|
-
"files": ["dist"],
|
|
13
|
-
"publishConfig": { "access": "public" },
|
|
14
25
|
"scripts": {
|
|
15
26
|
"build": "tsc -p tsconfig.json",
|
|
16
|
-
"dev": "tsc -p tsconfig.json --watch"
|
|
27
|
+
"dev": "tsc -p tsconfig.json --watch",
|
|
28
|
+
"test": "tsx --test src/__tests__/*.test.ts"
|
|
29
|
+
},
|
|
30
|
+
"repository": {
|
|
31
|
+
"type": "git",
|
|
32
|
+
"url": "git+https://github.com/DibbayajyotiRoy/AHTML.git",
|
|
33
|
+
"directory": "packages/agent"
|
|
34
|
+
},
|
|
35
|
+
"homepage": "https://github.com/DibbayajyotiRoy/AHTML#readme",
|
|
36
|
+
"bugs": {
|
|
37
|
+
"url": "https://github.com/DibbayajyotiRoy/AHTML/issues",
|
|
38
|
+
"email": "rdibbayajyoti@gmail.com"
|
|
39
|
+
},
|
|
40
|
+
"author": {
|
|
41
|
+
"name": "Dibbayajyoti Roy",
|
|
42
|
+
"email": "rdibbayajyoti@gmail.com",
|
|
43
|
+
"url": "https://github.com/DibbayajyotiRoy"
|
|
17
44
|
},
|
|
45
|
+
"keywords": [
|
|
46
|
+
"ahtml",
|
|
47
|
+
"agent",
|
|
48
|
+
"agent-web",
|
|
49
|
+
"ai",
|
|
50
|
+
"llm",
|
|
51
|
+
"client",
|
|
52
|
+
"sdk",
|
|
53
|
+
"tokenizer",
|
|
54
|
+
"tiktoken",
|
|
55
|
+
"mcp",
|
|
56
|
+
"model-context-protocol",
|
|
57
|
+
"crawler"
|
|
58
|
+
],
|
|
18
59
|
"dependencies": {
|
|
19
|
-
"@ahtmljs/schema": "0.
|
|
60
|
+
"@ahtmljs/schema": "0.2.0"
|
|
20
61
|
},
|
|
21
62
|
"devDependencies": {
|
|
22
63
|
"@types/node": "^22.0.0"
|
|
@@ -26,9 +67,12 @@
|
|
|
26
67
|
"@anthropic-ai/tokenizer": "^0.0.4"
|
|
27
68
|
},
|
|
28
69
|
"peerDependenciesMeta": {
|
|
29
|
-
"gpt-tokenizer": {
|
|
30
|
-
|
|
70
|
+
"gpt-tokenizer": {
|
|
71
|
+
"optional": true
|
|
72
|
+
},
|
|
73
|
+
"@anthropic-ai/tokenizer": {
|
|
74
|
+
"optional": true
|
|
75
|
+
}
|
|
31
76
|
},
|
|
32
|
-
"keywords": ["ahtml", "agent", "mcp", "llm", "tokenizer", "crawler"],
|
|
33
77
|
"license": "MIT"
|
|
34
78
|
}
|