@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,102 @@
1
+ /**
2
+ * What the agent is doing, as a short list a surface can show.
3
+ *
4
+ * A chat thread says what was said; it does not say that the page is about to
5
+ * change, or that a form is being filled right now. A copilot surface beside
6
+ * the page needs the second thing, and so does anyone watching a call travel
7
+ * to another page and finish there.
8
+ *
9
+ * The journey outlives the page. A call confirmed on one page is submitted on
10
+ * another, so the steps taken before the navigation are persisted with the
11
+ * call and restored on arrival — otherwise the surface that exists to explain
12
+ * the journey would show only its last step.
13
+ *
14
+ * @module
15
+ */
16
+ let journey = [];
17
+ let journeyId = null;
18
+ const listeners = new Set();
19
+ const newJourneyId = () => 'j' + Date.now().toString(36) + Math.random().toString(36).slice(2, 7);
20
+ /**
21
+ * Start a new journey, discarding the last one.
22
+ *
23
+ * Called when a turn begins, so a surface does not show the previous
24
+ * request's steps beside this one's.
25
+ *
26
+ * @returns The new journey's id, which every step recorded until the next
27
+ * call carries.
28
+ */
29
+ export function beginJourney() {
30
+ journey = [];
31
+ journeyId = newJourneyId();
32
+ notify(undefined);
33
+ return journeyId;
34
+ }
35
+ /** The journey steps are being recorded into, or null before the first. */
36
+ export function currentJourney() {
37
+ return journeyId;
38
+ }
39
+ /**
40
+ * Record a step, or update one already recorded.
41
+ *
42
+ * @param step - The step. An id already present is replaced where it stands,
43
+ * so `active` becoming `done` does not append a second line. The step is
44
+ * stamped with the current journey.
45
+ */
46
+ export function recordStep(step) {
47
+ journeyId ?? (journeyId = newJourneyId());
48
+ const stamped = { ...step, journey: journeyId };
49
+ const at = journey.findIndex((s) => s.id === step.id);
50
+ if (at >= 0)
51
+ journey[at] = { ...journey[at], ...stamped };
52
+ else
53
+ journey.push(stamped);
54
+ notify(stamped);
55
+ }
56
+ /** The steps so far, oldest first. */
57
+ export function journeySteps() {
58
+ return journey.map((s) => ({ ...s }));
59
+ }
60
+ /**
61
+ * Replace the journey with one that was carried here.
62
+ *
63
+ * Used on arrival, where the steps that led to the page change happened
64
+ * before this page existed.
65
+ */
66
+ export function restoreJourney(steps) {
67
+ journey = (steps ?? []).map((s) => ({ ...s }));
68
+ // The same journey, continued: steps recorded from here belong with the
69
+ // ones taken on the page before, not to a new request.
70
+ journeyId = journey.find((s) => s.journey)?.journey ?? newJourneyId();
71
+ journey = journey.map((s) => ({ ...s, journey: journeyId }));
72
+ notify(undefined);
73
+ }
74
+ /**
75
+ * Watch the journey.
76
+ *
77
+ * A renderer receives steps through {@link HarnessRenderer.step} and needs
78
+ * none of this; a surface drawn outside the harness — a side panel the host
79
+ * owns — subscribes here instead.
80
+ *
81
+ * @param listener - Called with the step that changed, and the whole list.
82
+ * @returns Stop listening.
83
+ */
84
+ export function onJourneyChange(listener) {
85
+ listeners.add(listener);
86
+ return () => listeners.delete(listener);
87
+ }
88
+ function notify(step) {
89
+ const all = journeySteps();
90
+ // A restore or a reset has no single step to point at; the list is the news.
91
+ const changed = step ?? all[all.length - 1] ?? { id: 'choose', label: '', status: 'done' };
92
+ for (const listener of listeners) {
93
+ try {
94
+ listener(changed, all);
95
+ }
96
+ catch (err) {
97
+ // One surface throwing must not stop the next from being told.
98
+ console.warn('[nxis-agent] a step listener threw:', err);
99
+ }
100
+ }
101
+ }
102
+ //# sourceMappingURL=steps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/harness/steps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,213 @@
1
+ import type { ModelContext, ModelContextTool, ModelContextToolInfo } from '../../types.js';
2
+ import type { NxisAction } from '../../webmcp-contract.js';
3
+ /** Marks a tool this module registered. */
4
+ export declare const SITE_ACTION_HINT = "ai.nxis/siteAction";
5
+ /** The `@id`s a site tool covers. */
6
+ export declare const ACTION_IDS_HINT = "ai.nxis/actionIds";
7
+ /** The pages those actions live on. */
8
+ export declare const PAGE_URLS_HINT = "ai.nxis/pageUrls";
9
+ /** What the page's own script names the same actions. */
10
+ export declare const PAGE_TOOL_NAMES_HINT = "ai.nxis/pageToolNames";
11
+ /**
12
+ * Marks a response that started a page change instead of submitting.
13
+ *
14
+ * Carried in `structuredContent`, where a renderer can find it without
15
+ * parsing prose.
16
+ */
17
+ export declare const HANDOFF_RESULT = "ai.nxis/handoff";
18
+ /** The field whose value says which of the covered actions a call means. */
19
+ export declare const CHOOSER_HINT = "ai.nxis/chooser";
20
+ /** That field's values, one per covered action, in the same order. */
21
+ export declare const CHOICES_HINT = "ai.nxis/choices";
22
+ /** The `@id` of the action a page tool came from, where the page records it. */
23
+ export declare const ACTION_ID_HINT = "ai.nxis/actionId";
24
+ /** One tool: the actions it covers, and how the caller picks between them. */
25
+ export interface SiteActionTool {
26
+ /** The registered tool name. */
27
+ name: string;
28
+ /** The actions this tool can run, in a stable order. */
29
+ actions: NxisAction[];
30
+ /**
31
+ * The field that says which action to run.
32
+ *
33
+ * A real field of the form when one tells the actions apart, otherwise the
34
+ * added `target` field. Absent when the tool covers a single action.
35
+ */
36
+ discriminator?: string;
37
+ /** The value of {@link discriminator} for each action, in the same order. */
38
+ choices?: string[];
39
+ /** The tool as registered. */
40
+ definition: ModelContextTool;
41
+ }
42
+ /**
43
+ * An action name as a tool name.
44
+ *
45
+ * Mirrors the page script's own sanitiser, so the two agree on what a given
46
+ * action is called.
47
+ */
48
+ export declare function sanitizeToolName(name: string): string;
49
+ /**
50
+ * The name a site-wide tool is registered under.
51
+ *
52
+ * The stem is the action's own name, so the model still reads what the form is
53
+ * called and matches it to what the visitor asked for; the suffix says this is
54
+ * the one that reaches the form from any page, and keeps it clear of the
55
+ * page's own tool of the same name.
56
+ *
57
+ * @param actionName - The action's name, as the record gives it.
58
+ * @returns The tool name, within the length a registry accepts.
59
+ */
60
+ export declare function siteToolName(actionName: string): string;
61
+ /**
62
+ * A tool's name without the site-wide suffix, for showing to a person.
63
+ *
64
+ * `quote_form_anywhere` exists to be told apart from the page's `quote_form`
65
+ * in a registry; to the visitor both are the quote form.
66
+ */
67
+ export declare function withoutSiteSuffix(toolName: string): string;
68
+ /**
69
+ * Which field distinguishes the members of a group.
70
+ *
71
+ * The crawler records what a form already says about itself: on a per-business
72
+ * quote form, the `business` field carries that business's name as its default.
73
+ * A field every member fills with a different value is therefore the site's own
74
+ * way of naming the target, and is used in preference to anything invented.
75
+ *
76
+ * @param actions - The group's actions, in order.
77
+ * @returns The field name and each action's value, or null when no field
78
+ * separates them.
79
+ */
80
+ export declare function findDiscriminator(actions: NxisAction[]): {
81
+ field: string;
82
+ values: string[];
83
+ } | null;
84
+ /** Where the agent currently is, so a tool can default to this page's action. */
85
+ export interface BuildOptions {
86
+ /** The current page URL. Defaults to the browser's. */
87
+ href?: string;
88
+ /** Where a confirmed call waits while the browser moves. Defaults to `sessionStorage`. */
89
+ storage?: Storage | null;
90
+ /** How to go to another page. Defaults to assigning `location`. */
91
+ navigate?: (url: string) => void;
92
+ /** The conversation a travelling call should report back to. */
93
+ conversationId?: string;
94
+ }
95
+ /**
96
+ * Group the site's actions and build one tool definition for each group.
97
+ *
98
+ * Names are derived from the whole set rather than the order actions arrive
99
+ * in, so a tool is called the same thing on every page of the site.
100
+ *
101
+ * @param actions - The site's actions.
102
+ * @param mc - The registry the tools will run against, used to find the page's
103
+ * own tool when the agent is already on the right page.
104
+ * @param opts - The current page.
105
+ * @returns One entry per group, ordered by tool name.
106
+ */
107
+ export declare function buildSiteActionTools(actions: NxisAction[], mc: ModelContext, opts?: BuildOptions): SiteActionTool[];
108
+ /**
109
+ * Whether a tool is a site-wide one, reaching a form from any page.
110
+ *
111
+ * Checked against what this page built, then the tool's annotations, so it
112
+ * holds even where a native registry has stripped them.
113
+ */
114
+ export declare function isSiteTool(tool: ModelContextToolInfo): boolean;
115
+ /** Which page tool to look for: the action's id, and the name it would have. */
116
+ export interface PageToolRef {
117
+ /** The action's `@id`. */
118
+ id: string;
119
+ /** The name the page's script derives from the action's name. */
120
+ name: string;
121
+ }
122
+ /** The reference for an action. */
123
+ export declare const pageToolRef: (action: NxisAction) => PageToolRef;
124
+ /** The page's own tool for an action: by recorded `@id`, else by name. */
125
+ export declare function findPageTool(mc: ModelContext, ref: PageToolRef): Promise<ModelContextToolInfo | null>;
126
+ /**
127
+ * Wait for the page's own tool to register.
128
+ *
129
+ * After a page change the agent is running before the page's script has read
130
+ * its JSON-LD, so the tool a resumed call needs does not exist yet.
131
+ *
132
+ * @param mc - The page's registry.
133
+ * @param ref - The tool to wait for.
134
+ * @param timeoutMs - How long to wait before giving up.
135
+ * @returns The tool, or null if it never appears.
136
+ */
137
+ export declare function awaitPageTool(mc: ModelContext, ref: PageToolRef, timeoutMs?: number): Promise<ModelContextToolInfo | null>;
138
+ /** Where a call is bound for, when that is not the page the agent is on. */
139
+ export interface Handoff {
140
+ /** The action that will run. */
141
+ actionId: string;
142
+ /** The page it will run on. */
143
+ pageUrl: string;
144
+ /** What to call that destination in a sentence. */
145
+ label: string;
146
+ /** The name the page's own tool is expected to have. */
147
+ pageToolName: string;
148
+ }
149
+ /**
150
+ * Where a call to a site tool will have to go, if not here.
151
+ *
152
+ * Needs nothing but the tool, so a caller holding only what the registry
153
+ * reported — the harness, labelling a confirmation — can tell that pressing
154
+ * submit also means a page change.
155
+ *
156
+ * @param tool - The tool about to be called.
157
+ * @param values - The arguments resolved so far.
158
+ * @param href - The current page. Defaults to the browser's.
159
+ * @returns The destination, or null when the call runs here, when the tool is
160
+ * not one of these, or when the values do not yet say which action is meant.
161
+ */
162
+ export declare function handoffFor(tool: ModelContextToolInfo, values: Record<string, unknown>, href?: string): Handoff | null;
163
+ /**
164
+ * Register a tool for each of the site's actions.
165
+ *
166
+ * @param mc - The registry to register into.
167
+ * @param actions - The site's actions.
168
+ * @param opts - The current page.
169
+ * @returns The names registered. A name the registry already holds is left
170
+ * alone, and a registration it refuses is warned about rather than thrown.
171
+ */
172
+ export declare function registerSiteActionTools(mc: ModelContext, actions: NxisAction[], opts?: BuildOptions): Promise<string[]>;
173
+ /** How many site-wide tools a turn may carry, before relevance decides. */
174
+ export declare const DEFAULT_SITE_TOOL_LIMIT = 8;
175
+ /** Options for {@link selectSiteTools}. */
176
+ export interface SelectOptions {
177
+ /** How many site-wide tools to keep. Defaults to {@link DEFAULT_SITE_TOOL_LIMIT}. */
178
+ limit?: number;
179
+ /** The current page. Defaults to the browser's. */
180
+ href?: string;
181
+ }
182
+ /**
183
+ * Narrow the site-wide tools to those this turn could plausibly need.
184
+ *
185
+ * Every registered tool's schema is written into every prompt, and a site
186
+ * with many distinct forms would fill the context with forms nobody asked
187
+ * about. Tools belonging to the page the agent is on are always kept — they
188
+ * are what "this form" means — and the rest compete on how well they answer
189
+ * what was asked.
190
+ *
191
+ * Only site-wide tools are ever dropped. The page's own tools and the
192
+ * retrieval tools are few, and losing one of those loses a capability rather
193
+ * than trimming a list.
194
+ *
195
+ * @param tools - The tools on offer this turn.
196
+ * @param goal - What the user asked for.
197
+ * @param opts - The budget and the current page.
198
+ * @returns The tools to show, in the order they arrived.
199
+ */
200
+ export declare function selectSiteTools(tools: ModelContextToolInfo[], goal: string, opts?: SelectOptions): ModelContextToolInfo[];
201
+ /**
202
+ * Drop page tools that a site tool already covers.
203
+ *
204
+ * On the page an action belongs to, the page's script registers its own tool
205
+ * and the site tool delegates to it. Both in the prompt would offer the model
206
+ * two ways to do one thing, and the second is chosen half the time.
207
+ *
208
+ * @param tools - Every tool the registry reported.
209
+ * @param href - The current page. Defaults to the browser's.
210
+ * @returns The tools to show the model.
211
+ */
212
+ export declare function withoutShadowedTools(tools: ModelContextToolInfo[], href?: string): ModelContextToolInfo[];
213
+ //# sourceMappingURL=action-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-tools.d.ts","sourceRoot":"","sources":["../../../src/harness/tools/action-tools.ts"],"names":[],"mappings":"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"}