@nxisai/agent-harness 0.2.4 → 0.4.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 (83) hide show
  1. package/README.md +90 -2
  2. package/dist/a2ui/stepper.d.ts +1 -1
  3. package/dist/a2ui/stepper.d.ts.map +1 -1
  4. package/dist/a2ui/stepper.js +2 -2
  5. package/dist/a2ui/stepper.js.map +1 -1
  6. package/dist/engine.d.ts +1 -0
  7. package/dist/engine.d.ts.map +1 -1
  8. package/dist/engine.js +1 -0
  9. package/dist/engine.js.map +1 -1
  10. package/dist/harness/harness.d.ts +58 -0
  11. package/dist/harness/harness.d.ts.map +1 -1
  12. package/dist/harness/harness.js +179 -4
  13. package/dist/harness/harness.js.map +1 -1
  14. package/dist/harness/renderer.d.ts +30 -0
  15. package/dist/harness/renderer.d.ts.map +1 -1
  16. package/dist/harness/steps.d.ts +101 -0
  17. package/dist/harness/steps.d.ts.map +1 -0
  18. package/dist/harness/steps.js +102 -0
  19. package/dist/harness/steps.js.map +1 -0
  20. package/dist/harness/tools/action-tools.d.ts +213 -0
  21. package/dist/harness/tools/action-tools.d.ts.map +1 -0
  22. package/dist/harness/tools/action-tools.js +724 -0
  23. package/dist/harness/tools/action-tools.js.map +1 -0
  24. package/dist/harness/tools/bridge.d.ts.map +1 -1
  25. package/dist/harness/tools/bridge.js +28 -2
  26. package/dist/harness/tools/bridge.js.map +1 -1
  27. package/dist/harness/tools/open-page.d.ts +42 -0
  28. package/dist/harness/tools/open-page.d.ts.map +1 -0
  29. package/dist/harness/tools/open-page.js +118 -0
  30. package/dist/harness/tools/open-page.js.map +1 -0
  31. package/dist/harness/tools/pending-action.d.ts +99 -0
  32. package/dist/harness/tools/pending-action.d.ts.map +1 -0
  33. package/dist/harness/tools/pending-action.js +175 -0
  34. package/dist/harness/tools/pending-action.js.map +1 -0
  35. package/dist/harness/tools/resume.d.ts +92 -0
  36. package/dist/harness/tools/resume.d.ts.map +1 -0
  37. package/dist/harness/tools/resume.js +84 -0
  38. package/dist/harness/tools/resume.js.map +1 -0
  39. package/dist/harness/tools/schema.js +29 -2
  40. package/dist/harness/tools/schema.js.map +1 -1
  41. package/dist/harness/tools/site-actions.d.ts +81 -0
  42. package/dist/harness/tools/site-actions.d.ts.map +1 -0
  43. package/dist/harness/tools/site-actions.js +314 -0
  44. package/dist/harness/tools/site-actions.js.map +1 -0
  45. package/dist/harness/tools/site-pages.d.ts +95 -0
  46. package/dist/harness/tools/site-pages.d.ts.map +1 -0
  47. package/dist/harness/tools/site-pages.js +199 -0
  48. package/dist/harness/tools/site-pages.js.map +1 -0
  49. package/dist/harness/tools/source.d.ts +58 -3
  50. package/dist/harness/tools/source.d.ts.map +1 -1
  51. package/dist/harness/tools/source.js +88 -7
  52. package/dist/harness/tools/source.js.map +1 -1
  53. package/dist/index.d.ts +14 -1
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +7 -0
  56. package/dist/index.js.map +1 -1
  57. package/dist/providers/proxy.d.ts +5 -0
  58. package/dist/providers/proxy.d.ts.map +1 -1
  59. package/dist/providers/proxy.js +16 -1
  60. package/dist/providers/proxy.js.map +1 -1
  61. package/dist/providers/types.d.ts +15 -0
  62. package/dist/providers/types.d.ts.map +1 -1
  63. package/dist/types.d.ts +7 -2
  64. package/dist/types.d.ts.map +1 -1
  65. package/dist/ui/agent-fullscreen.d.ts.map +1 -1
  66. package/dist/ui/agent-fullscreen.js +835 -36
  67. package/dist/ui/agent-fullscreen.js.map +1 -1
  68. package/dist/ui/index.d.ts +2 -0
  69. package/dist/ui/index.d.ts.map +1 -1
  70. package/dist/ui/index.js +1 -0
  71. package/dist/ui/index.js.map +1 -1
  72. package/dist/ui/journey.d.ts +33 -0
  73. package/dist/ui/journey.d.ts.map +1 -0
  74. package/dist/ui/journey.js +27 -0
  75. package/dist/ui/journey.js.map +1 -0
  76. package/dist/ui/tailwind.generated.d.ts +1 -1
  77. package/dist/ui/tailwind.generated.d.ts.map +1 -1
  78. package/dist/ui/tailwind.generated.js +1 -1
  79. package/dist/ui/tailwind.generated.js.map +1 -1
  80. package/dist/webmcp-contract.d.ts +6 -2
  81. package/dist/webmcp-contract.d.ts.map +1 -1
  82. package/docs/remote-providers.md +7 -1
  83. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-actions.js","sourceRoot":"","sources":["../../../src/harness/tools/site-actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * The site's pages, and which of them a record belongs to.
3
+ *
4
+ * A result the agent finds is a record — a plumber, a product — and the
5
+ * visitor usually wants the page it came from. The record rarely says: a
6
+ * business's `url` is its website, often the site root. Typed retrieval also
7
+ * holds the site's `WebPage` records, and every Action names the page its form
8
+ * is on, so between them most records can be traced back to a page.
9
+ *
10
+ * Only pages on this origin are ever returned: whatever a record claims, the
11
+ * agent does not send a visitor to another site.
12
+ *
13
+ * @module
14
+ */
15
+ import type { Client } from '@modelcontextprotocol/sdk/client/index.js';
16
+ import type { McpServerInfo } from '../../types.js';
17
+ import type { NxisAction } from '../../webmcp-contract.js';
18
+ /** A page on the site, as the agent can name it. */
19
+ export interface SitePage {
20
+ /** Absolute URL, on this origin. */
21
+ url: string;
22
+ /** What the page is called, for the visitor and the model. */
23
+ name: string;
24
+ /** The `@id`s of the records the page is about, when its record says. */
25
+ about?: string[];
26
+ }
27
+ type Obj = Record<string, unknown>;
28
+ /**
29
+ * Read one typed-retrieval record as a page.
30
+ *
31
+ * @param raw - A record as returned by `nxis_query`.
32
+ * @param origin - The site's origin; pages elsewhere are refused.
33
+ * @returns The page, or null when the record is not a page, has no URL on
34
+ * this origin, or has no name.
35
+ */
36
+ export declare function parsePage(raw: unknown, origin: string): SitePage | null;
37
+ /**
38
+ * The pages the site's actions live on, named for what each is about.
39
+ *
40
+ * An action whose field is fixed to one value — the business a quote goes
41
+ * to — names its page better than the page's path does.
42
+ */
43
+ export declare function pagesFromActions(actions: NxisAction[], origin: string): SitePage[];
44
+ /**
45
+ * Pages from any number of sources, each page once.
46
+ *
47
+ * The first source to name a page wins its name, so pass the page records
48
+ * before anything inferred.
49
+ */
50
+ export declare function mergePages(...lists: SitePage[][]): SitePage[];
51
+ /**
52
+ * The page a record came from, when it can be told.
53
+ *
54
+ * In order of how much each is to be trusted: the record naming its page, the
55
+ * record being a page, the record's own URL when it is a page of this site
56
+ * rather than its root, a page that says it is about the record, and last a
57
+ * page with the record's exact name.
58
+ *
59
+ * @param entity - The record, compact or IRI-keyed.
60
+ * @param pages - The site's pages.
61
+ * @param origin - The site's origin.
62
+ * @returns The page, or null when none can be told apart.
63
+ */
64
+ export declare function pageForEntity(entity: Obj, pages: SitePage[], origin: string): SitePage | null;
65
+ /**
66
+ * The page a visitor or model means, by name or by address.
67
+ *
68
+ * @param wanted - A page name, a URL, or a path.
69
+ * @param pages - The site's pages.
70
+ * @param origin - The site's origin.
71
+ * @returns The page, or null when nothing matches or several do equally.
72
+ */
73
+ export declare function findPage(wanted: string, pages: SitePage[], origin: string): SitePage | null;
74
+ /** Options for {@link loadSitePages}. */
75
+ export interface SitePagesOptions {
76
+ /** The origin pages must belong to. Defaults to the page's own. */
77
+ origin?: string;
78
+ /** Where the list is cached between page loads. Defaults to `sessionStorage`; null disables. */
79
+ storage?: Storage | null;
80
+ /** How long a cached list is reused, in milliseconds. Defaults to ten minutes. */
81
+ ttlMs?: number;
82
+ /** The clock, for tests. */
83
+ now?: () => number;
84
+ }
85
+ /**
86
+ * Every page record on the site, on this origin.
87
+ *
88
+ * Cached in the tab like the site's actions, so moving between pages costs
89
+ * one request per session.
90
+ *
91
+ * @throws When the query fails. The caller decides whether that matters.
92
+ */
93
+ export declare function loadSitePages(client: Client, info: Pick<McpServerInfo, 'endpoint'>, opts?: SitePagesOptions): Promise<SitePage[]>;
94
+ export {};
95
+ //# sourceMappingURL=site-pages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-pages.d.ts","sourceRoot":"","sources":["../../../src/harness/tools/site-pages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAO3D,oDAAoD;AACpD,MAAM,WAAW,QAAQ;IACvB,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAoCnC;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAOvE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,CAUlF;AAQD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,CAQ7D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CA2B7F;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAY3F;AAED,yCAAyC;AACzC,MAAM,WAAW,gBAAgB;IAC/B,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gGAAgG;IAChG,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAUD;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,EACrC,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,QAAQ,EAAE,CAAC,CAyBrB"}
@@ -0,0 +1,199 @@
1
+ import { queryTypedRecords, samePage } from './site-actions.js';
2
+ const SCHEMA_NS = 'https://schema.org/';
3
+ const CACHE_TTL_MS = 10 * 60 * 1000;
4
+ const CACHE_PREFIX = 'nxis:site-pages:v1:';
5
+ const isObj = (v) => !!v && typeof v === 'object' && !Array.isArray(v);
6
+ const schemaValue = (o, prop) => o[prop] ?? o[SCHEMA_NS + prop];
7
+ const str = (v) => (typeof v === 'string' && v.trim() ? v.trim() : undefined);
8
+ const bareType = (t) => t.replace(/^.*[/#]/, '');
9
+ const types = (o) => (Array.isArray(o['@type']) ? o['@type'] : [o['@type']]).filter((t) => typeof t === 'string').map(bareType);
10
+ /** A name compared the way a person would: case, spacing and punctuation aside. */
11
+ const normal = (s) => s.toLowerCase().replace(/[^\p{L}\p{N}]+/gu, ' ').trim();
12
+ /**
13
+ * A URL resolved against the origin, if it stays on it.
14
+ *
15
+ * Crawled pages often record a path (`/listings/x.html`) rather than a URL.
16
+ */
17
+ function onOrigin(raw, origin) {
18
+ const s = str(raw);
19
+ if (!s)
20
+ return null;
21
+ try {
22
+ const url = new URL(s, origin);
23
+ return url.origin === new URL(origin).origin ? url.href : null;
24
+ }
25
+ catch {
26
+ return null;
27
+ }
28
+ }
29
+ /** Every `@id` (or URL) a reference property points at. */
30
+ function refs(v) {
31
+ const list = Array.isArray(v) ? v : [v];
32
+ return list
33
+ .map((r) => (isObj(r) ? str(r['@id']) ?? str(schemaValue(r, 'url')) : str(r)))
34
+ .filter((r) => !!r);
35
+ }
36
+ /**
37
+ * Read one typed-retrieval record as a page.
38
+ *
39
+ * @param raw - A record as returned by `nxis_query`.
40
+ * @param origin - The site's origin; pages elsewhere are refused.
41
+ * @returns The page, or null when the record is not a page, has no URL on
42
+ * this origin, or has no name.
43
+ */
44
+ export function parsePage(raw, origin) {
45
+ if (!isObj(raw) || !types(raw).some((t) => t.endsWith('Page')))
46
+ return null;
47
+ const url = onOrigin(schemaValue(raw, 'url'), origin);
48
+ const name = str(schemaValue(raw, 'name')) ?? str(schemaValue(raw, 'headline'));
49
+ if (!url || !name)
50
+ return null;
51
+ const about = [...refs(schemaValue(raw, 'mainEntity')), ...refs(schemaValue(raw, 'about'))];
52
+ return about.length ? { url, name, about } : { url, name };
53
+ }
54
+ /**
55
+ * The pages the site's actions live on, named for what each is about.
56
+ *
57
+ * An action whose field is fixed to one value — the business a quote goes
58
+ * to — names its page better than the page's path does.
59
+ */
60
+ export function pagesFromActions(actions, origin) {
61
+ const pages = [];
62
+ for (const action of actions) {
63
+ const url = onOrigin(action.target['nxis:pageUrl'], origin);
64
+ if (!url)
65
+ continue;
66
+ const named = (action.input ?? []).find((i) => i.defaultValue && !i['nxis:valueOption']);
67
+ const name = named?.defaultValue ?? slugName(url);
68
+ if (name)
69
+ pages.push({ url, name });
70
+ }
71
+ return pages;
72
+ }
73
+ /** `/listings/detroit-metro-plumbing.html` → `detroit metro plumbing`. */
74
+ function slugName(url) {
75
+ const slug = new URL(url).pathname.split('/').filter(Boolean).pop() ?? '';
76
+ return slug.replace(/\.\w+$/, '').replace(/[-_]+/g, ' ') || 'home';
77
+ }
78
+ /**
79
+ * Pages from any number of sources, each page once.
80
+ *
81
+ * The first source to name a page wins its name, so pass the page records
82
+ * before anything inferred.
83
+ */
84
+ export function mergePages(...lists) {
85
+ const out = [];
86
+ for (const page of lists.flat()) {
87
+ const same = out.find((p) => samePage(p.url, page.url));
88
+ if (!same)
89
+ out.push({ ...page });
90
+ else if (page.about?.length)
91
+ same.about = [...new Set([...(same.about ?? []), ...page.about])];
92
+ }
93
+ return out;
94
+ }
95
+ /**
96
+ * The page a record came from, when it can be told.
97
+ *
98
+ * In order of how much each is to be trusted: the record naming its page, the
99
+ * record being a page, the record's own URL when it is a page of this site
100
+ * rather than its root, a page that says it is about the record, and last a
101
+ * page with the record's exact name.
102
+ *
103
+ * @param entity - The record, compact or IRI-keyed.
104
+ * @param pages - The site's pages.
105
+ * @param origin - The site's origin.
106
+ * @returns The page, or null when none can be told apart.
107
+ */
108
+ export function pageForEntity(entity, pages, origin) {
109
+ if (!isObj(entity))
110
+ return null;
111
+ const name = str(schemaValue(entity, 'name')) ?? str(schemaValue(entity, 'headline'));
112
+ const known = (url) => pages.find((p) => samePage(p.url, url)) ?? { url, name: name ?? slugName(url) };
113
+ for (const ref of refs(schemaValue(entity, 'mainEntityOfPage'))) {
114
+ const url = onOrigin(ref, origin);
115
+ if (url)
116
+ return known(url);
117
+ }
118
+ const own = onOrigin(schemaValue(entity, 'url'), origin);
119
+ if (own && (types(entity).some((t) => t.endsWith('Page')) || new URL(own).pathname !== '/')) {
120
+ return known(own);
121
+ }
122
+ const id = str(entity['@id']);
123
+ if (id) {
124
+ const about = pages.filter((p) => p.about?.includes(id));
125
+ if (about.length === 1)
126
+ return about[0];
127
+ }
128
+ if (name) {
129
+ const named = pages.filter((p) => normal(p.name) === normal(name));
130
+ if (named.length === 1)
131
+ return named[0];
132
+ }
133
+ return null;
134
+ }
135
+ /**
136
+ * The page a visitor or model means, by name or by address.
137
+ *
138
+ * @param wanted - A page name, a URL, or a path.
139
+ * @param pages - The site's pages.
140
+ * @param origin - The site's origin.
141
+ * @returns The page, or null when nothing matches or several do equally.
142
+ */
143
+ export function findPage(wanted, pages, origin) {
144
+ const w = wanted.trim();
145
+ if (!w)
146
+ return null;
147
+ if (/^(https?:\/\/|\/)/i.test(w)) {
148
+ const url = onOrigin(w, origin);
149
+ return url ? (pages.find((p) => samePage(p.url, url)) ?? null) : null;
150
+ }
151
+ const n = normal(w);
152
+ const exact = pages.filter((p) => normal(p.name) === n);
153
+ if (exact.length === 1)
154
+ return exact[0];
155
+ const partial = pages.filter((p) => normal(p.name).includes(n) || n.includes(normal(p.name)));
156
+ return partial.length === 1 ? partial[0] : null;
157
+ }
158
+ function defaultStorage() {
159
+ try {
160
+ return typeof sessionStorage === 'undefined' ? null : sessionStorage;
161
+ }
162
+ catch {
163
+ return null;
164
+ }
165
+ }
166
+ /**
167
+ * Every page record on the site, on this origin.
168
+ *
169
+ * Cached in the tab like the site's actions, so moving between pages costs
170
+ * one request per session.
171
+ *
172
+ * @throws When the query fails. The caller decides whether that matters.
173
+ */
174
+ export async function loadSitePages(client, info, opts = {}) {
175
+ const origin = opts.origin ?? location.origin;
176
+ const storage = opts.storage === undefined ? defaultStorage() : opts.storage;
177
+ const now = (opts.now ?? Date.now)();
178
+ const key = CACHE_PREFIX + info.endpoint;
179
+ try {
180
+ const entry = JSON.parse(storage?.getItem(key) || 'null');
181
+ const fresh = entry && now - entry.fetchedAt <= (opts.ttlMs ?? CACHE_TTL_MS) && entry.fetchedAt <= now;
182
+ if (fresh && Array.isArray(entry.pages))
183
+ return entry.pages;
184
+ }
185
+ catch {
186
+ // A corrupt entry is a refetch.
187
+ }
188
+ const pages = mergePages((await queryTypedRecords(client, 'Page'))
189
+ .map((r) => parsePage(r, origin))
190
+ .filter((p) => p !== null));
191
+ try {
192
+ storage?.setItem(key, JSON.stringify({ fetchedAt: now, pages }));
193
+ }
194
+ catch {
195
+ // Full or blocked storage costs a refetch on the next page, nothing more.
196
+ }
197
+ return pages;
198
+ }
199
+ //# sourceMappingURL=site-pages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-pages.js","sourceRoot":"","sources":["../../../src/harness/tools/site-pages.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,SAAS,GAAG,qBAAqB,CAAC;AACxC,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACpC,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAc3C,MAAM,KAAK,GAAG,CAAC,CAAU,EAAY,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1F,MAAM,WAAW,GAAG,CAAC,CAAM,EAAE,IAAY,EAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACtF,MAAM,GAAG,GAAG,CAAC,CAAU,EAAsB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC3G,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AACjE,MAAM,KAAK,GAAG,CAAC,CAAM,EAAY,EAAE,CACjC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAE1H,mFAAmF;AACnF,MAAM,MAAM,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAE9F;;;;GAIG;AACH,SAAS,QAAQ,CAAC,GAAY,EAAE,MAAc;IAC5C,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,2DAA2D;AAC3D,SAAS,IAAI,CAAC,CAAU;IACtB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7E,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,GAAY,EAAE,MAAc;IACpD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5E,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;IAChF,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5F,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAqB,EAAE,MAAc;IACpE,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACzF,MAAM,IAAI,GAAG,KAAK,EAAE,YAAY,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,0EAA0E;AAC1E,SAAS,QAAQ,CAAC,GAAW;IAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IAC1E,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC;AACrE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,GAAG,KAAmB;IAC/C,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;aAC5B,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM;YAAE,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAAC,MAAW,EAAE,KAAiB,EAAE,MAAc;IAC1E,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACtF,MAAM,KAAK,GAAG,CAAC,GAAW,EAAY,EAAE,CACtC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;IAElF,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAClC,IAAI,GAAG;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IACzD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,EAAE,CAAC;QAC5F,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9B,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACnE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAc,EAAE,KAAiB,EAAE,MAAc;IACxE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAChC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,CAAC;IACD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9F,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAcD,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,OAAO,OAAO,cAAc,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAc,EACd,IAAqC,EACrC,OAAyB,EAAE;IAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IAC7E,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACrC,MAAM,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,CAAoD,CAAC;QAC7G,MAAM,KAAK,GAAG,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC,SAAS,IAAI,GAAG,CAAC;QACvG,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,KAAK,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,gCAAgC;IAClC,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CACtB,CAAC,MAAM,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;SAChC,MAAM,CAAC,CAAC,CAAC,EAAiB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAC5C,CAAC;IACF,IAAI,CAAC;QACH,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;IAC5E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -15,14 +15,37 @@
15
15
  import { registerRemoteTools, type BridgeOptions } from './bridge.js';
16
16
  import { connectMcp } from './client.js';
17
17
  import { discoverMcpServer } from './discovery.js';
18
+ import { loadSiteActions, type SiteActionsOptions } from './site-actions.js';
19
+ import { type SitePage } from './site-pages.js';
20
+ import { type OpenPageOptions } from './open-page.js';
18
21
  import type { ModelContext } from '../../types.js';
22
+ import type { NxisAction } from '../../webmcp-contract.js';
19
23
  /** The outcome of {@link connectTools}. */
20
24
  export interface ConnectResult {
21
25
  /** The registry the tools were registered into, or null if none was found. */
22
26
  modelContext: ModelContext | null;
23
27
  /** Remote tool names bridged in. Empty when discovery failed or was skipped. */
24
28
  remoteTools: string[];
25
- /** Why remote tools are absent, when they are. Never fatal. */
29
+ /**
30
+ * Every Action on the site, from any page, that belongs to this origin.
31
+ *
32
+ * Empty when discovery failed, the query failed, or it was turned off with
33
+ * {@link ConnectOptions.siteActions}.
34
+ */
35
+ siteActions: NxisAction[];
36
+ /**
37
+ * The tools registered for {@link siteActions}.
38
+ *
39
+ * Fewer than the actions: those that share a name and a set of fields become
40
+ * one tool that chooses between them.
41
+ */
42
+ siteTools: string[];
43
+ /**
44
+ * The site's pages the agent can open and link results to: its page
45
+ * records, and the pages its actions live on.
46
+ */
47
+ sitePages: SitePage[];
48
+ /** Why remote tools or site actions are absent, when they are. Never fatal. */
26
49
  warning?: string;
27
50
  }
28
51
  /**
@@ -45,6 +68,20 @@ export interface ConnectOptions {
45
68
  fallback?: boolean;
46
69
  /** Override which of the server's tools are bridged in. */
47
70
  accept?: BridgeOptions['accept'];
71
+ /**
72
+ * Fetch the site's Actions from every page, not only this one.
73
+ *
74
+ * Defaults to true. Pass false to skip the query, or an options object to
75
+ * override the origin check or the cache.
76
+ */
77
+ siteActions?: boolean | SiteActionsOptions;
78
+ /**
79
+ * Register `open_page`, so the agent can take the visitor to a page.
80
+ *
81
+ * Defaults to true when site actions are fetched. Pass false to leave it
82
+ * out, or options to supply the conversation to continue on arrival.
83
+ */
84
+ openPage?: boolean | OpenPageOptions;
48
85
  }
49
86
  /**
50
87
  * Wait for a tool registry, then bridge in a remote MCP server's tools.
@@ -54,14 +91,32 @@ export interface ConnectOptions {
54
91
  * page's own tools working, and a site with no MCP server is an ordinary case
55
92
  * rather than an error.
56
93
  *
94
+ * Connects each registry once. A second call for the same registry, such as a
95
+ * page script and the element both connecting, returns the first call's result
96
+ * rather than registering the same tools again, which a native `modelContext`
97
+ * rejects as a duplicate.
98
+ *
57
99
  * @param apiKey - Key for the remote server's private tools. Public tools need
58
100
  * none, and the element never supplies one: a key readable in the page is a
59
101
  * published key. Pass one only where it is short-lived and scoped, such as a
60
102
  * token your backend mints per session.
61
- * @param opts - Timeout, local-registry fallback, and a tool filter.
103
+ * @param opts - Timeout, local-registry fallback, and a tool filter. Only the
104
+ * first call's options apply to a registry.
62
105
  * @returns The registry, the remote tools bridged in, and any warning.
63
106
  */
64
107
  export declare function connectTools(apiKey?: string, opts?: ConnectOptions): Promise<ConnectResult>;
65
- export { discoverMcpServer, connectMcp, registerRemoteTools };
108
+ export { discoverMcpServer, connectMcp, registerRemoteTools, loadSiteActions };
109
+ export { registerSiteActionTools, buildSiteActionTools, withoutShadowedTools, handoffFor, findPageTool, awaitPageTool, pageToolRef, siteToolName, selectSiteTools, } from './action-tools.js';
110
+ export { resumePendingAction } from './resume.js';
111
+ export { loadSitePages, parsePage, pagesFromActions, mergePages, pageForEntity, findPage, } from './site-pages.js';
112
+ export type { SitePage, SitePagesOptions } from './site-pages.js';
113
+ export { buildOpenPageTool, registerOpenPageTool, visitFor, OPEN_PAGE_TOOL } from './open-page.js';
114
+ export type { OpenPageOptions } from './open-page.js';
115
+ export type { ResumeOutcome, ResumeOptions } from './resume.js';
116
+ export type { SiteActionTool, Handoff, PageToolRef } from './action-tools.js';
117
+ export { savePendingAction, takePendingAction, clearPendingAction, savePendingVisit, takePendingVisit, setConversationSource, } from './pending-action.js';
118
+ export type { PendingAction, PendingVisit } from './pending-action.js';
119
+ export { parseAction, samePage, sameActionPage } from './site-actions.js';
120
+ export type { SiteActionsOptions } from './site-actions.js';
66
121
  export { ensureModelContext, LocalModelContext } from './local-context.js';
67
122
  //# sourceMappingURL=source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../src/harness/tools/source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAKnD,2CAA2C;AAC3C,MAAM,WAAW,aAAa;IAC5B,8EAA8E;IAC9E,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,gFAAgF;IAChF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAOD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,SAAmB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAgB5F;AAED,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;CAClC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,YAAY,CAChC,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,aAAa,CAAC,CAyBxB;AAED,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../src/harness/tools/source.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,10 @@ import { registerRemoteTools } from './bridge.js';
16
16
  import { ensureModelContext } from './local-context.js';
17
17
  import { connectMcp } from './client.js';
18
18
  import { discoverMcpServer } from './discovery.js';
19
+ import { loadSiteActions } from './site-actions.js';
20
+ import { registerSiteActionTools } from './action-tools.js';
21
+ import { loadSitePages, mergePages, pagesFromActions } from './site-pages.js';
22
+ import { registerOpenPageTool, OPEN_PAGE_TOOL } from './open-page.js';
19
23
  const READY_TIMEOUT_MS = 20000;
20
24
  const POLL_INTERVAL_MS = 200;
21
25
  /** The page's model context, from either of the two places it may appear. */
@@ -55,11 +59,17 @@ export function waitForModelContext(timeout = READY_TIMEOUT_MS) {
55
59
  * page's own tools working, and a site with no MCP server is an ordinary case
56
60
  * rather than an error.
57
61
  *
62
+ * Connects each registry once. A second call for the same registry, such as a
63
+ * page script and the element both connecting, returns the first call's result
64
+ * rather than registering the same tools again, which a native `modelContext`
65
+ * rejects as a duplicate.
66
+ *
58
67
  * @param apiKey - Key for the remote server's private tools. Public tools need
59
68
  * none, and the element never supplies one: a key readable in the page is a
60
69
  * published key. Pass one only where it is short-lived and scoped, such as a
61
70
  * token your backend mints per session.
62
- * @param opts - Timeout, local-registry fallback, and a tool filter.
71
+ * @param opts - Timeout, local-registry fallback, and a tool filter. Only the
72
+ * first call's options apply to a registry.
63
73
  * @returns The registry, the remote tools bridged in, and any warning.
64
74
  */
65
75
  export async function connectTools(apiKey, opts = {}) {
@@ -69,23 +79,94 @@ export async function connectTools(apiKey, opts = {}) {
69
79
  return {
70
80
  modelContext: null,
71
81
  remoteTools: [],
82
+ siteActions: [],
83
+ siteTools: [],
84
+ sitePages: [],
72
85
  warning: 'WebMCP (document.modelContext) unavailable — no tools registered.',
73
86
  };
74
87
  }
88
+ let connection = connections.get(mc);
89
+ if (!connection) {
90
+ connection = connectRegistry(mc, apiKey, opts);
91
+ connections.set(mc, connection);
92
+ }
93
+ return connection;
94
+ }
95
+ /** One connection per registry, shared by every caller. */
96
+ const connections = new WeakMap();
97
+ async function connectRegistry(mc, apiKey, opts) {
98
+ let info;
99
+ let client;
100
+ let remoteTools;
75
101
  try {
76
- const info = await discoverMcpServer();
77
- const client = await connectMcp(info, apiKey);
78
- const remoteTools = await registerRemoteTools(client, mc, info, { accept: opts.accept });
79
- return { modelContext: mc, remoteTools };
102
+ info = await discoverMcpServer();
103
+ client = await connectMcp(info, apiKey);
104
+ remoteTools = await registerRemoteTools(client, mc, info, { accept: opts.accept });
80
105
  }
81
106
  catch (err) {
82
107
  return {
83
108
  modelContext: mc,
84
109
  remoteTools: [],
85
- warning: `remote tool bootstrap failed — on-page tools still work: ${String(err?.message || err)}`,
110
+ siteActions: [],
111
+ siteTools: [],
112
+ sitePages: [],
113
+ warning: `remote tool bootstrap failed — on-page tools still work: ${errorText(err)}`,
114
+ };
115
+ }
116
+ if (opts.siteActions === false) {
117
+ return { modelContext: mc, remoteTools, siteActions: [], siteTools: [], sitePages: [] };
118
+ }
119
+ try {
120
+ const siteOpts = typeof opts.siteActions === 'object' ? opts.siteActions : {};
121
+ const siteActions = await loadSiteActions(client, info, siteOpts);
122
+ const siteTools = await registerSiteActionTools(mc, siteActions);
123
+ const sitePages = await connectPages(mc, client, info, siteActions, siteOpts, opts.openPage);
124
+ return { modelContext: mc, remoteTools, siteActions, siteTools, sitePages };
125
+ }
126
+ catch (err) {
127
+ return {
128
+ modelContext: mc,
129
+ remoteTools,
130
+ siteActions: [],
131
+ siteTools: [],
132
+ sitePages: [],
133
+ warning: `site actions unavailable — this page's own actions still work: ${errorText(err)}`,
86
134
  };
87
135
  }
88
136
  }
89
- export { discoverMcpServer, connectMcp, registerRemoteTools };
137
+ /**
138
+ * The site's pages, and the tool that opens them.
139
+ *
140
+ * A failed page query is not worth a warning of its own: the pages the
141
+ * actions live on still make a usable list.
142
+ */
143
+ async function connectPages(mc, client, info, actions, siteOpts, openPage) {
144
+ const origin = siteOpts.origin ?? location.origin;
145
+ let records = [];
146
+ try {
147
+ records = await loadSitePages(client, info, siteOpts);
148
+ }
149
+ catch (err) {
150
+ console.warn(`[nxis-mcp] page records unavailable, using action pages only: ${errorText(err)}`);
151
+ }
152
+ const pages = mergePages(records, pagesFromActions(actions, origin));
153
+ if (openPage !== false) {
154
+ const registered = await registerOpenPageTool(mc, pages, {
155
+ origin,
156
+ ...(typeof openPage === 'object' ? openPage : {}),
157
+ });
158
+ if (registered)
159
+ console.info(`[nxis-mcp] ${OPEN_PAGE_TOOL}: ${pages.length} page(s)`);
160
+ }
161
+ return pages;
162
+ }
163
+ const errorText = (err) => String(err?.message || err);
164
+ export { discoverMcpServer, connectMcp, registerRemoteTools, loadSiteActions };
165
+ export { registerSiteActionTools, buildSiteActionTools, withoutShadowedTools, handoffFor, findPageTool, awaitPageTool, pageToolRef, siteToolName, selectSiteTools, } from './action-tools.js';
166
+ export { resumePendingAction } from './resume.js';
167
+ export { loadSitePages, parsePage, pagesFromActions, mergePages, pageForEntity, findPage, } from './site-pages.js';
168
+ export { buildOpenPageTool, registerOpenPageTool, visitFor, OPEN_PAGE_TOOL } from './open-page.js';
169
+ export { savePendingAction, takePendingAction, clearPendingAction, savePendingVisit, takePendingVisit, setConversationSource, } from './pending-action.js';
170
+ export { parseAction, samePage, sameActionPage } from './site-actions.js';
90
171
  export { ensureModelContext, LocalModelContext } from './local-context.js';
91
172
  //# sourceMappingURL=source.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["../../../src/harness/tools/source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,mBAAmB,EAAsB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAC/B,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAY7B,6EAA6E;AAC7E,SAAS,eAAe;IACtB,OAAO,QAAQ,CAAC,YAAY,IAAI,SAAS,CAAC,YAAY,IAAI,IAAI,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAO,GAAG,gBAAgB;IAC5D,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,IAAI,SAAS;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE;YAC1B,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;YAC7B,IAAI,EAAE,EAAE,CAAC;gBACP,aAAa,CAAC,EAAE,CAAC,CAAC;gBAClB,OAAO,CAAC,EAAE,CAAC,CAAC;YACd,CAAC;iBAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,OAAO,EAAE,CAAC;gBAC1C,aAAa,CAAC,EAAE,CAAC,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC;AAiBD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAe,EACf,OAAuB,EAAE;IAEzB,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC;IAC3E,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC7E,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO;YACL,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,EAAE;YACf,OAAO,EAAE,mEAAmE;SAC7E,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACzF,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,EAAE;YACf,OAAO,EAAE,4DAA4D,MAAM,CACxE,GAAa,EAAE,OAAO,IAAI,GAAG,CAC/B,EAAE;SACJ,CAAC;IACJ,CAAC;AACH,CAAC;AAED,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../../src/harness/tools/source.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -46,7 +46,20 @@ export { parseToolCall, stripMarkers, humanize, lcFirst, escapeHtml, MODEL_ID, M
46
46
  export { NXIS_LOGO_SVG, ICON_CHECK, ICON_WARN, ICON_ARROW, ICON_PLUS, ICON_MENU, ICON_TRASH, ICON_STOP, ICON_COPY, ICON_PENCIL, ICON_REDO, ICON_CHECK_MARK, } from './engine.js';
47
47
  export type { AgentEngineOptions, ChatMessage, ToolDef, GenerationUsage, ParsedToolCall, ProgressDetail, PreloadMode, } from './engine.js';
48
48
  export { connectTools, waitForModelContext } from './harness/tools/source.js';
49
- export type { ConnectResult, ConnectOptions } from './harness/tools/source.js';
49
+ export { buildSiteActionTools, registerSiteActionTools, withoutShadowedTools, handoffFor, findPageTool, awaitPageTool, pageToolRef, siteToolName, sanitizeToolName, selectSiteTools, DEFAULT_SITE_TOOL_LIMIT, } from './harness/tools/action-tools.js';
50
+ export { beginJourney, currentJourney, journeySteps, onJourneyChange, recordStep, restoreJourney, } from './harness/steps.js';
51
+ export type { AgentStep, AgentStepId, AgentStepStatus } from './harness/steps.js';
52
+ export { resumePendingAction } from './harness/tools/resume.js';
53
+ export type { ResumeOutcome, ResumeOptions } from './harness/tools/resume.js';
54
+ export { loadSitePages, parsePage, pagesFromActions, mergePages, pageForEntity, findPage, } from './harness/tools/site-pages.js';
55
+ export type { SitePage, SitePagesOptions } from './harness/tools/site-pages.js';
56
+ export { buildOpenPageTool, registerOpenPageTool, visitFor, OPEN_PAGE_TOOL } from './harness/tools/open-page.js';
57
+ export type { OpenPageOptions } from './harness/tools/open-page.js';
58
+ export type { SiteActionTool, Handoff, PageToolRef } from './harness/tools/action-tools.js';
59
+ export { savePendingAction, takePendingAction, clearPendingAction, PENDING_TTL_MS, savePendingVisit, takePendingVisit, setConversationSource, } from './harness/tools/pending-action.js';
60
+ export type { PendingAction, PendingVisit } from './harness/tools/pending-action.js';
61
+ export { loadSiteActions, parseAction } from './harness/tools/site-actions.js';
62
+ export type { ConnectResult, ConnectOptions, SiteActionsOptions } from './harness/tools/source.js';
50
63
  export type { BridgeOptions } from './harness/tools/bridge.js';
51
64
  export type { JsonSchema, ModelContext, ModelContextTool, ModelContextToolInfo, ModelContextToolResponse, McpServerInfo, NxisConfig, } from './types.js';
52
65
  export type { NxisAction, NxisEntryPoint, NxisPropertyValueSpecification, NxisValueOption, } from './webmcp-contract.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC5F,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,SAAS,GACV,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EACL,UAAU,EACV,eAAe,EACf,aAAa,EACb,aAAa,GACd,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1E,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAErE,YAAY,EACV,eAAe,EACf,UAAU,EACV,cAAc,EACd,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,UAAU,EACV,QAAQ,EACR,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,cAAc,EACd,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,OAAO,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EACT,WAAW,EACX,SAAS,EACT,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,eAAe,EACf,cAAc,EACd,cAAc,EACd,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC/E,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,YAAY,EACV,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,EACb,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,UAAU,EACV,cAAc,EACd,8BAA8B,EAC9B,eAAe,GAChB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}