@crosshands/cli 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,6 +1,6 @@
1
1
  import { type ComputerOperationName } from '@crosshands/contract';
2
2
  import { type EvaluateFn } from './evaluate.js';
3
- import type { JevLogger } from './log.js';
3
+ import { type JevLogger } from './log.js';
4
4
  export type IntentBroker = {
5
5
  request(operation: ComputerOperationName, input: unknown): Promise<unknown>;
6
6
  };
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/intent/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAWL,KAAK,qBAAqB,EAI3B,MAAM,sBAAsB,CAAA;AAI7B,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAGzC,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,CAAC,SAAS,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAC5E,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,GAAG,CAAC,EAAE,SAAS,CAAA;CAChB,CAAA;AA2MD,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,qBAAqB,EAChC,QAAQ,EAAE,OAAO,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,OAAO,CAAC,CA+BlB"}
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/intent/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAWL,KAAK,qBAAqB,EAI3B,MAAM,sBAAsB,CAAA;AAI7B,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAKL,KAAK,SAAS,EAGf,MAAM,UAAU,CAAA;AAGjB,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,CAAC,SAAS,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAC5E,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,GAAG,CAAC,EAAE,SAAS,CAAA;CAChB,CAAA;AAsQD,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,qBAAqB,EAChC,QAAQ,EAAE,OAAO,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,OAAO,CAAC,CA2DlB"}
@@ -1,7 +1,9 @@
1
1
  import { ComputerError, createComputerError, hasIntentTarget, parsePublicInput, parsePublicOutput, PublicMutationResultSchema, PublicSnapshotResultSchema, SnapshotResultSchema, splitPublicInput, toBrokerInput } from '@crosshands/contract';
2
2
  import { unwrapBrokerResult } from '../broker-result.js';
3
3
  import { parseJevEnv } from './env.js';
4
- import { liveEvaluator, namedTargetAllowed, suggestionFromAnswers } from './evaluate.js';
4
+ import { JevEvaluateError, liveEvaluator, namedTargetAllowed, suggestionFromAnswers } from './evaluate.js';
5
+ import { elapsedMs } from './http.js';
6
+ import { createJevCall, emitCall, recordRank } from './log.js';
5
7
  import { clickableMoves, parseTreeMoves } from './tree.js';
6
8
  const NAMED_GATE = new Set(['click', 'setValue']);
7
9
  function policyUnavailable() {
@@ -45,30 +47,79 @@ function boundIndex(operation, suggestion) {
45
47
  }
46
48
  return undefined;
47
49
  }
48
- async function rank(look, goal, evaluate, log, app) {
50
+ function errorFromResult(result) {
51
+ const mutation = PublicMutationResultSchema.safeParse(result);
52
+ if (mutation.success) {
53
+ const outcome = mutation.data.outcome;
54
+ if (outcome.state === 'not_attempted' || outcome.state === 'failed')
55
+ return outcome.error?.code;
56
+ return undefined;
57
+ }
58
+ const snapshot = PublicSnapshotResultSchema.safeParse(result);
59
+ if (!snapshot.success)
60
+ return undefined;
61
+ return snapshot.data.issues.find((issue) => issue.code === 'policy_unavailable')?.code;
62
+ }
63
+ function boundFromCall(call, result) {
64
+ if (call?.phase !== 'bind')
65
+ return undefined;
66
+ const mutation = PublicMutationResultSchema.safeParse(result);
67
+ return mutation.success && mutation.data.resolvedTarget !== undefined;
68
+ }
69
+ async function rank(look, goal, evaluate, app) {
70
+ const snapshotId = look.snapshot.id;
71
+ const parseStarted = Date.now();
49
72
  const moves = clickableMoves(parseTreeMoves(look.snapshot.treeText));
73
+ const stats = {
74
+ snapshotId,
75
+ treeChars: look.snapshot.treeText.length,
76
+ elementCount: look.snapshot.elementCount,
77
+ candidateCount: moves.length,
78
+ parseMs: elapsedMs(parseStarted),
79
+ goalChars: goal.length,
80
+ app: look.snapshot.app.id
81
+ };
50
82
  if (moves.length === 0) {
51
83
  return {
52
- untrusted: true,
53
- snapshotId: look.snapshot.id,
54
- move: { kind: 'blocked', reason: 'no_candidate' }
84
+ ok: true,
85
+ suggestion: {
86
+ untrusted: true,
87
+ snapshotId,
88
+ move: { kind: 'blocked', reason: 'no_candidate' }
89
+ },
90
+ stats
91
+ };
92
+ }
93
+ const evalStarted = Date.now();
94
+ try {
95
+ const evaluated = await evaluate({
96
+ goal,
97
+ ...(app === undefined ? {} : { app }),
98
+ moves
99
+ });
100
+ return {
101
+ ok: true,
102
+ suggestion: suggestionFromAnswers(snapshotId, moves, evaluated.answers),
103
+ stats: {
104
+ ...stats,
105
+ evaluateMs: elapsedMs(evalStarted),
106
+ ...(evaluated.http === undefined ? {} : { http: evaluated.http })
107
+ }
108
+ };
109
+ }
110
+ catch (cause) {
111
+ if (cause instanceof ComputerError)
112
+ throw cause;
113
+ const http = cause instanceof JevEvaluateError ? cause.http : undefined;
114
+ return {
115
+ ok: false,
116
+ stats: {
117
+ ...stats,
118
+ evaluateMs: elapsedMs(evalStarted),
119
+ ...(http === undefined ? {} : { http })
120
+ }
55
121
  };
56
122
  }
57
- const suggestion = suggestionFromAnswers(look.snapshot.id, moves, await evaluate({ goal, ...(app === undefined ? {} : { app }), moves }));
58
- log?.emit({
59
- kind: 'jev.decision',
60
- snapshotId: suggestion.snapshotId,
61
- move: suggestion.move.kind,
62
- ...(suggestion.move.kind === 'click' ||
63
- suggestion.move.kind === 'setValue' ||
64
- suggestion.move.kind === 'secondary' ||
65
- suggestion.move.kind === 'scroll'
66
- ? { elementIndex: suggestion.move.elementIndex }
67
- : {}),
68
- confidence: suggestion.confidence,
69
- goal
70
- });
71
- return suggestion;
72
123
  }
73
124
  function evaluatorFor(env, override) {
74
125
  if (override !== undefined)
@@ -80,7 +131,7 @@ function evaluatorFor(env, override) {
80
131
  async function lookAgain(request, token) {
81
132
  return snapshotResultOf(await request('getAppState', { contextToken: token, captureScreenshot: false }));
82
133
  }
83
- async function suggestObserve(request, input, goal, env, evaluate, log) {
134
+ async function suggestObserve(request, input, goal, env, evaluate, record) {
84
135
  const result = await request('getAppState', toBrokerInput('getAppState', input));
85
136
  if (goal === undefined || env.kind === 'off')
86
137
  return result;
@@ -88,16 +139,21 @@ async function suggestObserve(request, input, goal, env, evaluate, log) {
88
139
  if (env.kind === 'fail_closed' || evaluate === undefined) {
89
140
  return withSnapshotIssue(look, policyUnavailable());
90
141
  }
142
+ const app = 'app' in input && typeof input.app === 'string' ? input.app : undefined;
91
143
  try {
92
- const app = 'app' in input && typeof input.app === 'string' ? input.app : undefined;
93
- const suggestion = await rank(look, goal, evaluate, log, app);
94
- return parsePublicOutput('getAppState', { ...look, suggestion });
144
+ const ranked = await rank(look, goal, evaluate, app);
145
+ if (!ranked.ok) {
146
+ record('observe', ranked.stats);
147
+ return withSnapshotIssue(look, policyUnavailable());
148
+ }
149
+ record('observe', ranked.stats, ranked.suggestion);
150
+ return parsePublicOutput('getAppState', { ...look, suggestion: ranked.suggestion });
95
151
  }
96
152
  catch {
97
153
  return withSnapshotIssue(look, policyUnavailable());
98
154
  }
99
155
  }
100
- async function bindIntentTarget(request, operation, input, goal, env, evaluate, log) {
156
+ async function bindIntentTarget(request, operation, input, goal, env, evaluate, record) {
101
157
  if (env.kind === 'off') {
102
158
  throw createComputerError('invalid_argument', 'intent targeting requires CROSSHANDS_JEV=1');
103
159
  }
@@ -109,19 +165,23 @@ async function bindIntentTarget(request, operation, input, goal, env, evaluate,
109
165
  throw createComputerError('invalid_argument', 'intent targeting requires a context token');
110
166
  }
111
167
  let look;
112
- let suggestion;
113
168
  try {
114
169
  look = await lookAgain(request, token);
115
- suggestion = await rank(look, goal, evaluate, log);
116
170
  }
117
171
  catch (cause) {
118
172
  if (cause instanceof ComputerError)
119
173
  throw cause;
120
174
  return notAttempted(policyUnavailable());
121
175
  }
122
- const index = boundIndex(operation, suggestion);
176
+ const ranked = await rank(look, goal, evaluate);
177
+ if (!ranked.ok) {
178
+ record('bind', ranked.stats);
179
+ return notAttempted(policyUnavailable());
180
+ }
181
+ record('bind', ranked.stats, ranked.suggestion);
182
+ const index = boundIndex(operation, ranked.suggestion);
123
183
  if (index === undefined)
124
- return notAttempted(policyUnavailable(), suggestion);
184
+ return notAttempted(policyUnavailable(), ranked.suggestion);
125
185
  const bound = {
126
186
  ...splitPublicInput(input).rest,
127
187
  contextToken: look.context.token,
@@ -132,22 +192,27 @@ async function bindIntentTarget(request, operation, input, goal, env, evaluate,
132
192
  return parsePublicOutput(operation, {
133
193
  ...body,
134
194
  resolvedTarget: { kind: 'element', elementIndex: index },
135
- suggestion
195
+ suggestion: ranked.suggestion
136
196
  });
137
197
  }
138
- async function gateNamedTarget(request, input, goal, evaluate, log) {
198
+ async function gateNamedTarget(request, input, goal, evaluate, record) {
139
199
  const named = elementIndexOf(input);
140
200
  const token = contextTokenOf(input);
141
201
  if (token === undefined || named === undefined)
142
202
  return undefined;
143
203
  try {
144
204
  const look = await lookAgain(request, token);
145
- const suggestion = await rank(look, goal, evaluate, log);
146
- const picked = suggestion.move.kind === 'click' || suggestion.move.kind === 'setValue'
147
- ? suggestion.move.elementIndex
205
+ const ranked = await rank(look, goal, evaluate);
206
+ if (!ranked.ok) {
207
+ record('named', ranked.stats);
208
+ return notAttempted(policyUnavailable());
209
+ }
210
+ record('named', ranked.stats, ranked.suggestion);
211
+ const picked = ranked.suggestion.move.kind === 'click' || ranked.suggestion.move.kind === 'setValue'
212
+ ? ranked.suggestion.move.elementIndex
148
213
  : undefined;
149
- if (picked !== named || !namedTargetAllowed(suggestion.confidence)) {
150
- return notAttempted(createComputerError('goal_mismatch', 'Named target does not match the per-call goal').toJSON(), suggestion);
214
+ if (picked !== named || !namedTargetAllowed(ranked.suggestion.confidence)) {
215
+ return notAttempted(createComputerError('goal_mismatch', 'Named target does not match the per-call goal').toJSON(), ranked.suggestion);
151
216
  }
152
217
  }
153
218
  catch {
@@ -160,21 +225,53 @@ export async function dispatchPublicOperation(broker, operation, rawInput, optio
160
225
  const parsed = parsePublicInput(operation, rawInput);
161
226
  const { goal } = splitPublicInput(parsed);
162
227
  const evaluate = evaluatorFor(envState, options.evaluate);
163
- const request = async (name, input) => unwrapBrokerResult(await broker.request(name, input));
164
- if (operation === 'getAppState') {
165
- return suggestObserve(request, parsed, goal, envState, evaluate, options.log);
166
- }
167
- if (hasIntentTarget(parsed)) {
168
- return bindIntentTarget(request, operation, parsed, goal, envState, evaluate, options.log);
169
- }
170
- if (goal !== undefined &&
171
- envState.kind === 'on' &&
172
- evaluate !== undefined &&
173
- NAMED_GATE.has(operation)) {
174
- const gated = await gateNamedTarget(request, parsed, goal, evaluate, options.log);
175
- if (gated !== undefined)
176
- return gated;
177
- }
178
- return request(operation, toBrokerInput(operation, parsed));
228
+ const log = options.log;
229
+ const call = log === undefined ? undefined : createJevCall(operation, goal);
230
+ const record = (phase, stats, suggestion) => {
231
+ recordRank(log, call, phase, stats, suggestion);
232
+ };
233
+ const request = async (name, input) => {
234
+ if (call !== undefined)
235
+ call.brokerCalls += 1;
236
+ return unwrapBrokerResult(await broker.request(name, input));
237
+ };
238
+ async function dispatch() {
239
+ if (operation === 'getAppState') {
240
+ return suggestObserve(request, parsed, goal, envState, evaluate, record);
241
+ }
242
+ if (hasIntentTarget(parsed)) {
243
+ return bindIntentTarget(request, operation, parsed, goal, envState, evaluate, record);
244
+ }
245
+ if (goal !== undefined &&
246
+ envState.kind === 'on' &&
247
+ evaluate !== undefined &&
248
+ NAMED_GATE.has(operation)) {
249
+ const gated = await gateNamedTarget(request, parsed, goal, evaluate, record);
250
+ if (gated !== undefined)
251
+ return gated;
252
+ }
253
+ return request(operation, toBrokerInput(operation, parsed));
254
+ }
255
+ const started = Date.now();
256
+ try {
257
+ const result = await dispatch();
258
+ if (call !== undefined) {
259
+ const extra = {};
260
+ const error = errorFromResult(result);
261
+ const bound = boundFromCall(call, result);
262
+ if (error !== undefined)
263
+ extra.error = error;
264
+ if (bound !== undefined)
265
+ extra.bound = bound;
266
+ emitCall(log, call, started, extra);
267
+ }
268
+ return result;
269
+ }
270
+ catch (cause) {
271
+ if (call !== undefined) {
272
+ emitCall(log, call, started, cause instanceof ComputerError ? { error: cause.code } : {});
273
+ }
274
+ throw cause;
275
+ }
179
276
  }
180
277
  //# sourceMappingURL=dispatch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/intent/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/intent/dispatch.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  import type { Suggestion } from '@crosshands/contract';
2
+ import { type JevHttpStats } from './http.js';
2
3
  import type { TreeMove } from './tree.js';
4
+ export type { JevHttpStats };
5
+ export declare class JevEvaluateError extends Error {
6
+ readonly http: JevHttpStats;
7
+ constructor(message: string, http: JevHttpStats);
8
+ }
3
9
  export type JevAnswers = {
4
10
  move: 'click' | 'setValue' | 'wait' | 'done' | 'blocked';
5
11
  clickWhich?: string;
@@ -8,12 +14,16 @@ export type JevAnswers = {
8
14
  goalMet?: number;
9
15
  blockedReason?: string;
10
16
  };
17
+ export type EvaluateResult = {
18
+ answers: JevAnswers;
19
+ http?: JevHttpStats;
20
+ };
11
21
  export type EvaluateInput = {
12
22
  goal: string;
13
23
  app?: string;
14
24
  moves: readonly TreeMove[];
15
25
  };
16
- export type EvaluateFn = (input: EvaluateInput) => Promise<JevAnswers>;
26
+ export type EvaluateFn = (input: EvaluateInput) => Promise<EvaluateResult>;
17
27
  export declare const GATE_REFUSE_BELOW = 0.35;
18
28
  export declare function namedTargetAllowed(confidence: number | undefined): boolean;
19
29
  export declare function suggestionFromAnswers(snapshotId: string, moves: readonly TreeMove[], answers: JevAnswers): Suggestion;
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/intent/evaluate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACxD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;AAEtE,eAAO,MAAM,iBAAiB,OAAO,CAAA;AAErC,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAG1E;AAED,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,OAAO,EAAE,UAAU,GAClB,UAAU,CAiCZ;AAeD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CA0ExD"}
1
+ {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/intent/evaluate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEtD,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,WAAW,CAAA;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEzC,YAAY,EAAE,YAAY,EAAE,CAAA;AAE5B,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;gBACf,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY;CAKhD;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACxD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,UAAU,CAAA;IACnB,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;AAE1E,eAAO,MAAM,iBAAiB,OAAO,CAAA;AAErC,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAG1E;AAED,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,OAAO,EAAE,UAAU,GAClB,UAAU,CAiCZ;AAuDD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAyExD"}
@@ -1,3 +1,12 @@
1
+ import { elapsedMs } from './http.js';
2
+ export class JevEvaluateError extends Error {
3
+ http;
4
+ constructor(message, http) {
5
+ super(message);
6
+ this.name = 'JevEvaluateError';
7
+ this.http = http;
8
+ }
9
+ }
1
10
  export const GATE_REFUSE_BELOW = 0.35;
2
11
  export function namedTargetAllowed(confidence) {
3
12
  if (confidence === undefined)
@@ -41,75 +50,107 @@ export function suggestionFromAnswers(snapshotId, moves, answers) {
41
50
  function criteria(moves) {
42
51
  return Object.fromEntries(moves.map((move) => [String(move.elementIndex), `${move.role} ${move.label}`.trim()]));
43
52
  }
53
+ const JEV_MODEL = 'jev-latest';
54
+ function httpStats(started, requestBytes, status, responseBytes) {
55
+ return {
56
+ status,
57
+ durationMs: elapsedMs(started),
58
+ requestBytes,
59
+ responseBytes
60
+ };
61
+ }
62
+ function answersOf(raw) {
63
+ const move = raw.move?.choice;
64
+ if (move !== 'click' &&
65
+ move !== 'setValue' &&
66
+ move !== 'wait' &&
67
+ move !== 'done' &&
68
+ move !== 'blocked') {
69
+ return { move: 'blocked', blockedReason: 'no_candidate' };
70
+ }
71
+ const clickWhich = raw.click_which?.choice;
72
+ const setValueWhich = raw.setvalue_which?.choice;
73
+ const confidence = raw.move?.confidence ?? raw.click_which?.confidence;
74
+ const goalMet = raw.goal_met?.noul;
75
+ return {
76
+ move,
77
+ ...(clickWhich === undefined ? {} : { clickWhich }),
78
+ ...(setValueWhich === undefined ? {} : { setValueWhich }),
79
+ ...(confidence === undefined ? {} : { confidence }),
80
+ ...(goalMet === undefined ? {} : { goalMet })
81
+ };
82
+ }
44
83
  export function liveEvaluator(apiKey) {
45
84
  return async (input) => {
46
85
  const clickable = criteria(input.moves);
47
- const response = await fetch('https://api.typesafe.ai/v1/systemone', {
48
- method: 'POST',
49
- headers: {
50
- authorization: `Bearer ${apiKey}`,
51
- 'content-type': 'application/json'
86
+ const payload = JSON.stringify({
87
+ model: JEV_MODEL,
88
+ state: {
89
+ goal: input.goal,
90
+ ...(input.app === undefined ? {} : { app: input.app }),
91
+ clickable
52
92
  },
53
- body: JSON.stringify({
54
- model: 'jev-latest',
55
- state: {
56
- goal: input.goal,
57
- ...(input.app === undefined ? {} : { app: input.app }),
58
- clickable
59
- },
60
- questions: {
61
- move: {
62
- type: 'choice',
63
- instructions: 'What should we do next for the goal?',
64
- criteria: {
65
- click: 'Press one clickable control',
66
- setValue: 'Pick a field for the caller to fill',
67
- wait: 'The window is still loading',
68
- done: 'The goal is already met',
69
- blocked: 'Stop'
70
- }
71
- },
72
- click_which: {
73
- type: 'choice',
74
- instructions: 'If the move is click, which control?',
75
- criteria: clickable
76
- },
77
- setvalue_which: {
78
- type: 'choice',
79
- instructions: 'If the move is setValue, which field?',
80
- criteria: clickable
81
- },
82
- goal_met: {
83
- type: 'noul',
84
- instructions: 'Is the goal already met?'
93
+ questions: {
94
+ move: {
95
+ type: 'choice',
96
+ instructions: 'What should we do next for the goal?',
97
+ criteria: {
98
+ click: 'Press one clickable control',
99
+ setValue: 'Pick a field for the caller to fill',
100
+ wait: 'The window is still loading',
101
+ done: 'The goal is already met',
102
+ blocked: 'Stop'
85
103
  }
104
+ },
105
+ click_which: {
106
+ type: 'choice',
107
+ instructions: 'If the move is click, which control?',
108
+ criteria: clickable
109
+ },
110
+ setvalue_which: {
111
+ type: 'choice',
112
+ instructions: 'If the move is setValue, which field?',
113
+ criteria: clickable
114
+ },
115
+ goal_met: {
116
+ type: 'noul',
117
+ instructions: 'Is the goal already met?'
86
118
  }
87
- })
119
+ }
88
120
  });
89
- if (!response.ok) {
90
- throw new Error(`TypeSafe HTTP ${response.status}`);
121
+ const requestBytes = Buffer.byteLength(payload);
122
+ const started = Date.now();
123
+ let status = 0;
124
+ let responseBytes = 0;
125
+ let raw = '';
126
+ try {
127
+ const response = await fetch('https://api.typesafe.ai/v1/systemone', {
128
+ method: 'POST',
129
+ headers: {
130
+ authorization: `Bearer ${apiKey}`,
131
+ 'content-type': 'application/json'
132
+ },
133
+ body: payload
134
+ });
135
+ status = response.status;
136
+ raw = await response.text();
137
+ responseBytes = Buffer.byteLength(raw);
91
138
  }
92
- const body = (await response.json());
93
- const answers = body.answers ?? {};
94
- const move = answers.move?.choice;
95
- if (move !== 'click' &&
96
- move !== 'setValue' &&
97
- move !== 'wait' &&
98
- move !== 'done' &&
99
- move !== 'blocked') {
100
- return { move: 'blocked', blockedReason: 'no_candidate' };
139
+ catch (cause) {
140
+ throw new JevEvaluateError(cause instanceof Error ? cause.message : 'TypeSafe HTTP failed', httpStats(started, requestBytes, 0, 0));
101
141
  }
102
- const clickWhich = answers.click_which?.choice;
103
- const setValueWhich = answers.setvalue_which?.choice;
104
- const confidence = answers.move?.confidence ?? answers.click_which?.confidence;
105
- const goalMet = answers.goal_met?.noul;
106
- return {
107
- move,
108
- ...(clickWhich === undefined ? {} : { clickWhich }),
109
- ...(setValueWhich === undefined ? {} : { setValueWhich }),
110
- ...(confidence === undefined ? {} : { confidence }),
111
- ...(goalMet === undefined ? {} : { goalMet })
112
- };
142
+ const http = httpStats(started, requestBytes, status, responseBytes);
143
+ if (status < 200 || status >= 300) {
144
+ throw new JevEvaluateError(`TypeSafe HTTP ${status}`, http);
145
+ }
146
+ let parsed;
147
+ try {
148
+ parsed = JSON.parse(raw);
149
+ }
150
+ catch {
151
+ throw new JevEvaluateError('TypeSafe HTTP response was not JSON', http);
152
+ }
153
+ return { answers: answersOf(parsed.answers ?? {}), http };
113
154
  };
114
155
  }
115
156
  //# sourceMappingURL=evaluate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/intent/evaluate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/intent/evaluate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAqB,MAAM,WAAW,CAAA;AAKxD,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAChC,IAAI,CAAc;IAC3B,YAAY,OAAe,EAAE,IAAkB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAA;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CACF;AAwBD,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAErC,MAAM,UAAU,kBAAkB,CAAC,UAA8B;IAC/D,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACzC,OAAO,UAAU,IAAI,iBAAiB,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,UAAkB,EAClB,KAA0B,EAC1B,OAAmB;IAEnB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAC/E,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAA;IAChG,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAA;IAChG,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO;YACL,SAAS,EAAE,IAAI;YACf,UAAU;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,aAAa,IAAI,SAAS,EAAE;YACrE,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAA;IACH,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAA;IACpF,MAAM,QAAQ,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACjE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO;YACL,SAAS,EAAE,IAAI;YACf,UAAU;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE;YACjD,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAA;IACH,CAAC;IACD,OAAO;QACL,SAAS,EAAE,IAAI;QACf,UAAU;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE;QACjE,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE;KACnD,CAAA;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAA0B;IAC1C,OAAO,MAAM,CAAC,WAAW,CACvB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CACtF,CAAA;AACH,CAAC;AASD,MAAM,SAAS,GAAG,YAAY,CAAA;AAE9B,SAAS,SAAS,CAChB,OAAe,EACf,YAAoB,EACpB,MAAc,EACd,aAAqB;IAErB,OAAO;QACL,MAAM;QACN,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC;QAC9B,YAAY;QACZ,aAAa;KACd,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,GAAoC;IACrD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,MAAM,CAAA;IAC7B,IACE,IAAI,KAAK,OAAO;QAChB,IAAI,KAAK,UAAU;QACnB,IAAI,KAAK,MAAM;QACf,IAAI,KAAK,MAAM;QACf,IAAI,KAAK,SAAS,EAClB,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,CAAA;IAC3D,CAAC;IACD,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,MAAM,CAAA;IAC1C,MAAM,aAAa,GAAG,GAAG,CAAC,cAAc,EAAE,MAAM,CAAA;IAChD,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,UAAU,IAAI,GAAG,CAAC,WAAW,EAAE,UAAU,CAAA;IACtE,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAA;IAClC,OAAO;QACL,IAAI;QACJ,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;QACnD,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;QACzD,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;QACnD,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;KAC9C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,KAAK,EAAE,KAAK,EAAE,EAAE;QACrB,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;YAC7B,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;gBACtD,SAAS;aACV;YACD,SAAS,EAAE;gBACT,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,YAAY,EAAE,sCAAsC;oBACpD,QAAQ,EAAE;wBACR,KAAK,EAAE,6BAA6B;wBACpC,QAAQ,EAAE,qCAAqC;wBAC/C,IAAI,EAAE,6BAA6B;wBACnC,IAAI,EAAE,yBAAyB;wBAC/B,OAAO,EAAE,MAAM;qBAChB;iBACF;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,YAAY,EAAE,sCAAsC;oBACpD,QAAQ,EAAE,SAAS;iBACpB;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,YAAY,EAAE,uCAAuC;oBACrD,QAAQ,EAAE,SAAS;iBACpB;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,MAAM;oBACZ,YAAY,EAAE,0BAA0B;iBACzC;aACF;SACF,CAAC,CAAA;QACF,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC1B,IAAI,MAAM,GAAG,CAAC,CAAA;QACd,IAAI,aAAa,GAAG,CAAC,CAAA;QACrB,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,sCAAsC,EAAE;gBACnE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,MAAM,EAAE;oBACjC,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,OAAO;aACd,CAAC,CAAA;YACF,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;YACxB,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YAC3B,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,gBAAgB,CACxB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,EAC/D,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CACvC,CAAA;QACH,CAAC;QACD,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,CAAC,CAAA;QACpE,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YAClC,MAAM,IAAI,gBAAgB,CAAC,iBAAiB,MAAM,EAAE,EAAE,IAAI,CAAC,CAAA;QAC7D,CAAC;QACD,IAAI,MAAqD,CAAA;QACzD,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAkD,CAAA;QAC3E,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,gBAAgB,CAAC,qCAAqC,EAAE,IAAI,CAAC,CAAA;QACzE,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAA;IAC3D,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ export type JevHttpStats = {
2
+ status: number;
3
+ durationMs: number;
4
+ requestBytes: number;
5
+ responseBytes: number;
6
+ };
7
+ export declare function elapsedMs(started: number): number;
8
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/intent/http.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD"}
@@ -0,0 +1,4 @@
1
+ export function elapsedMs(started) {
2
+ return Math.max(0, Date.now() - started);
3
+ }
4
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/intent/http.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAA;AAC1C,CAAC"}