@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.
- package/dist/intent/dispatch.d.ts +1 -1
- package/dist/intent/dispatch.d.ts.map +1 -1
- package/dist/intent/dispatch.js +149 -52
- package/dist/intent/dispatch.js.map +1 -1
- package/dist/intent/evaluate.d.ts +11 -1
- package/dist/intent/evaluate.d.ts.map +1 -1
- package/dist/intent/evaluate.js +101 -60
- package/dist/intent/evaluate.js.map +1 -1
- package/dist/intent/http.d.ts +8 -0
- package/dist/intent/http.d.ts.map +1 -0
- package/dist/intent/http.js +4 -0
- package/dist/intent/http.js.map +1 -0
- package/dist/intent/log.d.ts +75 -1
- package/dist/intent/log.d.ts.map +1 -1
- package/dist/intent/log.js +98 -11
- package/dist/intent/log.js.map +1 -1
- package/package.json +6 -6
- package/src/intent/dispatch.ts +161 -64
- package/src/intent/evaluate.ts +120 -64
- package/src/intent/http.ts +10 -0
- package/src/intent/log.ts +182 -10
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ComputerOperationName } from '@crosshands/contract';
|
|
2
2
|
import { type EvaluateFn } from './evaluate.js';
|
|
3
|
-
import type
|
|
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,
|
|
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"}
|
package/dist/intent/dispatch.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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,
|
|
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
|
|
93
|
-
|
|
94
|
-
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
146
|
-
|
|
147
|
-
|
|
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
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
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<
|
|
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,
|
|
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"}
|
package/dist/intent/evaluate.js
CHANGED
|
@@ -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
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
90
|
-
|
|
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
|
-
|
|
93
|
-
|
|
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
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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":"
|
|
1
|
+
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/intent/evaluate.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 @@
|
|
|
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"}
|