@mlola/browser-protocol 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +14 -0
- package/dist/actions.d.ts +124 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +155 -0
- package/dist/actions.js.map +1 -0
- package/dist/budget.d.ts +57 -0
- package/dist/budget.d.ts.map +1 -0
- package/dist/budget.js +25 -0
- package/dist/budget.js.map +1 -0
- package/dist/capabilities.d.ts +31 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +54 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/decision.d.ts +188 -0
- package/dist/decision.d.ts.map +1 -0
- package/dist/decision.js +9 -0
- package/dist/decision.js.map +1 -0
- package/dist/errors.d.ts +40 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +104 -0
- package/dist/errors.js.map +1 -0
- package/dist/events.d.ts +326 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +75 -0
- package/dist/events.js.map +1 -0
- package/dist/human.d.ts +43 -0
- package/dist/human.d.ts.map +1 -0
- package/dist/human.js +10 -0
- package/dist/human.js.map +1 -0
- package/dist/ids.d.ts +34 -0
- package/dist/ids.d.ts.map +1 -0
- package/dist/ids.js +22 -0
- package/dist/ids.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/memory.d.ts +37 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +54 -0
- package/dist/memory.js.map +1 -0
- package/dist/observation.d.ts +157 -0
- package/dist/observation.d.ts.map +1 -0
- package/dist/observation.js +45 -0
- package/dist/observation.js.map +1 -0
- package/dist/policy.d.ts +89 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +138 -0
- package/dist/policy.js.map +1 -0
- package/dist/provenance.d.ts +27 -0
- package/dist/provenance.d.ts.map +1 -0
- package/dist/provenance.js +46 -0
- package/dist/provenance.js.map +1 -0
- package/dist/schemas.d.ts +449 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +218 -0
- package/dist/schemas.js.map +1 -0
- package/dist/task.d.ts +94 -0
- package/dist/task.d.ts.map +1 -0
- package/dist/task.js +13 -0
- package/dist/task.js.map +1 -0
- package/dist/verification.d.ts +70 -0
- package/dist/verification.d.ts.map +1 -0
- package/dist/verification.js +24 -0
- package/dist/verification.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
package/dist/events.js
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event-sourced run log (PRD §41, §42).
|
|
3
|
+
*
|
|
4
|
+
* The log is append-only. Every decision, policy outcome, execution result,
|
|
5
|
+
* verification and recovery step is recorded with enough context to replay and
|
|
6
|
+
* debug a run locally.
|
|
7
|
+
*/
|
|
8
|
+
export const RUN_EVENT_TYPES = [
|
|
9
|
+
"RUN_CREATED",
|
|
10
|
+
"SESSION_CREATED",
|
|
11
|
+
"SESSION_CONNECTED",
|
|
12
|
+
"RUN_STARTED",
|
|
13
|
+
"PLANNER_REQUESTED",
|
|
14
|
+
"PLANNER_RECEIVED",
|
|
15
|
+
"SUBGOAL_STARTED",
|
|
16
|
+
"SUBGOAL_COMPLETED",
|
|
17
|
+
"PLAN_EXHAUSTED",
|
|
18
|
+
"SNAPSHOT_CAPTURED",
|
|
19
|
+
"ACTION_SPACE_BUILT",
|
|
20
|
+
"DECISION_REQUESTED",
|
|
21
|
+
"DECISION_RECEIVED",
|
|
22
|
+
"DECISION_INVALID",
|
|
23
|
+
"FALLBACK_STARTED",
|
|
24
|
+
"FALLBACK_COMPLETED",
|
|
25
|
+
"POLICY_ALLOWED",
|
|
26
|
+
"POLICY_DENIED",
|
|
27
|
+
"APPROVAL_REQUESTED",
|
|
28
|
+
"APPROVAL_RESOLVED",
|
|
29
|
+
"FRESHNESS_CHECK",
|
|
30
|
+
"TARGET_VALIDATED",
|
|
31
|
+
"ACTION_EXECUTED",
|
|
32
|
+
"ACTION_FAILED",
|
|
33
|
+
"ACTION_VERIFIED",
|
|
34
|
+
"ACTION_NO_EFFECT",
|
|
35
|
+
"STEP_COMPLETED",
|
|
36
|
+
"LOOP_DETECTED",
|
|
37
|
+
"RECOVERY_STARTED",
|
|
38
|
+
"RECOVERY_COMPLETED",
|
|
39
|
+
"RECOVERY_ESCALATED",
|
|
40
|
+
"DOWNLOAD_STARTED",
|
|
41
|
+
"DOWNLOAD_COMPLETED",
|
|
42
|
+
"DOWNLOAD_FAILED",
|
|
43
|
+
"UPLOAD_STARTED",
|
|
44
|
+
"UPLOAD_COMPLETED",
|
|
45
|
+
"UPLOAD_FAILED",
|
|
46
|
+
"ARTIFACT_CREATED",
|
|
47
|
+
"ARTIFACT_VERIFIED",
|
|
48
|
+
"TABS_CHANGED",
|
|
49
|
+
"TAB_BORROWED",
|
|
50
|
+
"TAB_RETURNED",
|
|
51
|
+
"BLOCKING_UI_DETECTED",
|
|
52
|
+
"DIALOG_HANDLED",
|
|
53
|
+
"HUMAN_HELP_REQUESTED",
|
|
54
|
+
"HUMAN_HELP_PROGRESS",
|
|
55
|
+
"HUMAN_HELP_COMPLETED",
|
|
56
|
+
"HUMAN_HELP_TIMEOUT",
|
|
57
|
+
"TAKEOVER_STARTED",
|
|
58
|
+
"TAKEOVER_ENDED",
|
|
59
|
+
"SECRET_BLOCKED",
|
|
60
|
+
"BUDGET_WARNING",
|
|
61
|
+
"BUDGET_EXHAUSTED",
|
|
62
|
+
"VERIFICATION_RESULT",
|
|
63
|
+
"RUN_COMPLETED",
|
|
64
|
+
"RUN_FAILED",
|
|
65
|
+
"RUN_CANCELLED",
|
|
66
|
+
"RUN_PAUSED",
|
|
67
|
+
"RUN_RESUMED",
|
|
68
|
+
"SESSION_STOPPING",
|
|
69
|
+
"SESSION_STOPPED",
|
|
70
|
+
"SCREENSHOT_CAPTURED",
|
|
71
|
+
"PROVIDER_USAGE",
|
|
72
|
+
"NOTE",
|
|
73
|
+
"ERROR",
|
|
74
|
+
];
|
|
75
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiHH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,aAAa;IACb,iBAAiB;IACjB,mBAAmB;IACnB,aAAa;IACb,mBAAmB;IACnB,kBAAkB;IAClB,iBAAiB;IACjB,mBAAmB;IACnB,gBAAgB;IAChB,mBAAmB;IACnB,oBAAoB;IACpB,oBAAoB;IACpB,mBAAmB;IACnB,kBAAkB;IAClB,kBAAkB;IAClB,oBAAoB;IACpB,gBAAgB;IAChB,eAAe;IACf,oBAAoB;IACpB,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,eAAe;IACf,iBAAiB;IACjB,kBAAkB;IAClB,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,oBAAoB;IACpB,oBAAoB;IACpB,kBAAkB;IAClB,oBAAoB;IACpB,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;IAClB,eAAe;IACf,kBAAkB;IAClB,mBAAmB;IACnB,cAAc;IACd,cAAc;IACd,cAAc;IACd,sBAAsB;IACtB,gBAAgB;IAChB,sBAAsB;IACtB,qBAAqB;IACrB,sBAAsB;IACtB,oBAAoB;IACpB,kBAAkB;IAClB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,kBAAkB;IAClB,qBAAqB;IACrB,eAAe;IACf,YAAY;IACZ,eAAe;IACf,YAAY;IACZ,aAAa;IACb,kBAAkB;IAClB,iBAAiB;IACjB,qBAAqB;IACrB,gBAAgB;IAChB,MAAM;IACN,OAAO;CACmC,CAAC"}
|
package/dist/human.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Human help / takeover contracts (PRD §19).
|
|
3
|
+
*
|
|
4
|
+
* Human intervention is first-class: the runtime can suspend a step and ask the
|
|
5
|
+
* person at the keyboard to log in, clear an MFA prompt, solve a CAPTCHA or
|
|
6
|
+
* approve a high-risk action. Human action never automatically means task
|
|
7
|
+
* completion — the completion criteria are re-checked afterwards.
|
|
8
|
+
*/
|
|
9
|
+
import type { ElementRef } from "./actions.ts";
|
|
10
|
+
import type { HelpId, RunId, SessionId, TabId } from "./ids.ts";
|
|
11
|
+
import type { CompletionSpec } from "./verification.ts";
|
|
12
|
+
export type HumanHelpKind = "interaction" | "credential" | "mfa" | "captcha" | "confirmation" | "verification" | "recovery";
|
|
13
|
+
export interface HumanHelpTarget {
|
|
14
|
+
ref: ElementRef;
|
|
15
|
+
label: string;
|
|
16
|
+
role: string;
|
|
17
|
+
}
|
|
18
|
+
export interface HumanHelpRequest {
|
|
19
|
+
id: HelpId;
|
|
20
|
+
runId: RunId;
|
|
21
|
+
sessionId: SessionId;
|
|
22
|
+
kind: HumanHelpKind;
|
|
23
|
+
title?: string;
|
|
24
|
+
prompt: string;
|
|
25
|
+
/** Elements the person should interact with, when the runtime knows. */
|
|
26
|
+
targets?: HumanHelpTarget[];
|
|
27
|
+
/** Deterministic criteria the runtime checks after help (PRD §19.3). */
|
|
28
|
+
completion?: CompletionSpec;
|
|
29
|
+
timeoutMs?: number;
|
|
30
|
+
url?: string;
|
|
31
|
+
tabId?: TabId;
|
|
32
|
+
createdAt: number;
|
|
33
|
+
}
|
|
34
|
+
export type HumanHelpResolution = "completed" | "cancelled" | "takeover";
|
|
35
|
+
export interface HumanHelpResult {
|
|
36
|
+
id: HelpId;
|
|
37
|
+
resolution: HumanHelpResolution;
|
|
38
|
+
/** Whether the runtime could independently confirm the completion criteria. */
|
|
39
|
+
criteriaMet: boolean;
|
|
40
|
+
detail?: string;
|
|
41
|
+
durationMs: number;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=human.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"human.d.ts","sourceRoot":"","sources":["../src/human.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,MAAM,aAAa,GACrB,aAAa,GACb,YAAY,GACZ,KAAK,GACL,SAAS,GACT,cAAc,GACd,cAAc,GACd,UAAU,CAAC;AAEf,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,UAAU,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,wEAAwE;IACxE,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC;AAEzE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,mBAAmB,CAAC;IAChC,+EAA+E;IAC/E,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
package/dist/human.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Human help / takeover contracts (PRD §19).
|
|
3
|
+
*
|
|
4
|
+
* Human intervention is first-class: the runtime can suspend a step and ask the
|
|
5
|
+
* person at the keyboard to log in, clear an MFA prompt, solve a CAPTCHA or
|
|
6
|
+
* approve a high-risk action. Human action never automatically means task
|
|
7
|
+
* completion — the completion criteria are re-checked afterwards.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=human.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"human.js","sourceRoot":"","sources":["../src/human.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
package/dist/ids.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime-owned identifiers.
|
|
3
|
+
*
|
|
4
|
+
* Model-facing identifiers are deliberately NOT these: the model only ever sees
|
|
5
|
+
* small integer indexes inside a fresh snapshot (`ObservedNode.index`). Every
|
|
6
|
+
* other id below is opaque to models and never leaves the runtime.
|
|
7
|
+
*/
|
|
8
|
+
export type RunId = string;
|
|
9
|
+
export type SessionId = string;
|
|
10
|
+
export type SnapshotId = string;
|
|
11
|
+
export type StepId = string;
|
|
12
|
+
export type TabId = string;
|
|
13
|
+
export type ArtifactId = string;
|
|
14
|
+
export type HelpId = string;
|
|
15
|
+
export type CaptureId = string;
|
|
16
|
+
export type ApprovalId = string;
|
|
17
|
+
/** Numeric, page-local identity of a DOM node. Opaque to models. */
|
|
18
|
+
export type NodeId = number;
|
|
19
|
+
/** Model-facing index inside one snapshot. 1-based, regenerated per observation. */
|
|
20
|
+
export type ElementIndex = number;
|
|
21
|
+
export declare const newRunId: () => RunId;
|
|
22
|
+
export declare const newSessionId: () => SessionId;
|
|
23
|
+
export declare const newSnapshotId: () => SnapshotId;
|
|
24
|
+
export declare const newStepId: () => StepId;
|
|
25
|
+
export declare const newHelpId: () => HelpId;
|
|
26
|
+
export declare const newCaptureId: () => CaptureId;
|
|
27
|
+
export declare const newApprovalId: () => ApprovalId;
|
|
28
|
+
export declare const newTabId: (n: number) => TabId;
|
|
29
|
+
export declare const newArtifactId: (n: number) => ArtifactId;
|
|
30
|
+
/** True when the value looks like a runtime-generated id (used by guards/tests). */
|
|
31
|
+
export declare const isRunId: (v: unknown) => v is RunId;
|
|
32
|
+
export declare const isSessionId: (v: unknown) => v is SessionId;
|
|
33
|
+
export declare const isSnapshotId: (v: unknown) => v is SnapshotId;
|
|
34
|
+
//# sourceMappingURL=ids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../src/ids.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC;AAC3B,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAChC,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAC5B,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC;AAC3B,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAChC,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAC5B,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC,oEAAoE;AACpE,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAE5B,oFAAoF;AACpF,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAKlC,eAAO,MAAM,QAAQ,QAAO,KAAiB,CAAC;AAC9C,eAAO,MAAM,YAAY,QAAO,SAAqB,CAAC;AACtD,eAAO,MAAM,aAAa,QAAO,UAAyB,CAAC;AAC3D,eAAO,MAAM,SAAS,QAAO,MAAmB,CAAC;AACjD,eAAO,MAAM,SAAS,QAAO,MAAkB,CAAC;AAChD,eAAO,MAAM,YAAY,QAAO,SAAuB,CAAC;AACxD,eAAO,MAAM,aAAa,QAAO,UAAuB,CAAC;AAEzD,eAAO,MAAM,QAAQ,GAAI,GAAG,MAAM,KAAG,KAAgB,CAAC;AACtD,eAAO,MAAM,aAAa,GAAI,GAAG,MAAM,KAAG,UAAqB,CAAC;AAEhE,oFAAoF;AACpF,eAAO,MAAM,OAAO,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,KAA2D,CAAC;AACtG,eAAO,MAAM,WAAW,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,SAA+D,CAAC;AAC9G,eAAO,MAAM,YAAY,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,UAAmE,CAAC"}
|
package/dist/ids.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime-owned identifiers.
|
|
3
|
+
*
|
|
4
|
+
* Model-facing identifiers are deliberately NOT these: the model only ever sees
|
|
5
|
+
* small integer indexes inside a fresh snapshot (`ObservedNode.index`). Every
|
|
6
|
+
* other id below is opaque to models and never leaves the runtime.
|
|
7
|
+
*/
|
|
8
|
+
const rid = (prefix, n = 8) => `${prefix}_${globalThis.crypto.randomUUID().replace(/-/g, "").slice(0, n)}`;
|
|
9
|
+
export const newRunId = () => rid("r");
|
|
10
|
+
export const newSessionId = () => rid("s");
|
|
11
|
+
export const newSnapshotId = () => rid("snap");
|
|
12
|
+
export const newStepId = () => rid("st");
|
|
13
|
+
export const newHelpId = () => rid("h");
|
|
14
|
+
export const newCaptureId = () => rid("cap");
|
|
15
|
+
export const newApprovalId = () => rid("ap");
|
|
16
|
+
export const newTabId = (n) => `t${n}`;
|
|
17
|
+
export const newArtifactId = (n) => `a${n}`;
|
|
18
|
+
/** True when the value looks like a runtime-generated id (used by guards/tests). */
|
|
19
|
+
export const isRunId = (v) => typeof v === "string" && /^r_[a-f0-9]{8}$/.test(v);
|
|
20
|
+
export const isSessionId = (v) => typeof v === "string" && /^s_[a-f0-9]{8}$/.test(v);
|
|
21
|
+
export const isSnapshotId = (v) => typeof v === "string" && /^snap_[a-f0-9]{8}$/.test(v);
|
|
22
|
+
//# sourceMappingURL=ids.js.map
|
package/dist/ids.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../src/ids.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAkBH,MAAM,GAAG,GAAG,CAAC,MAAc,EAAE,CAAC,GAAG,CAAC,EAAU,EAAE,CAC5C,GAAG,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAE9E,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAG,GAAc,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAe,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC3D,MAAM,CAAC,MAAM,SAAS,GAAG,GAAW,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjD,MAAM,CAAC,MAAM,SAAS,GAAG,GAAW,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,YAAY,GAAG,GAAc,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAe,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAS,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAS,EAAc,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AAEhE,oFAAoF;AACpF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAU,EAAc,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtG,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAU,EAAkB,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9G,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAU,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @mlola/browser-protocol
|
|
3
|
+
*
|
|
4
|
+
* Typed contracts shared by the MLola Browser Runtime: observations, actions,
|
|
5
|
+
* decisions, verification, policy, budgets, events and trust provenance.
|
|
6
|
+
*
|
|
7
|
+
* Nothing in this package touches a browser, a model or the filesystem. It is
|
|
8
|
+
* the stable vocabulary the rest of the runtime is built from.
|
|
9
|
+
*/
|
|
10
|
+
export * from "./ids.ts";
|
|
11
|
+
export * from "./provenance.ts";
|
|
12
|
+
export * from "./capabilities.ts";
|
|
13
|
+
export * from "./errors.ts";
|
|
14
|
+
export * from "./budget.ts";
|
|
15
|
+
export * from "./memory.ts";
|
|
16
|
+
export * from "./observation.ts";
|
|
17
|
+
export * from "./actions.ts";
|
|
18
|
+
export * from "./decision.ts";
|
|
19
|
+
export * from "./verification.ts";
|
|
20
|
+
export * from "./policy.ts";
|
|
21
|
+
export * from "./task.ts";
|
|
22
|
+
export * from "./human.ts";
|
|
23
|
+
export * from "./events.ts";
|
|
24
|
+
export * from "./schemas.ts";
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @mlola/browser-protocol
|
|
3
|
+
*
|
|
4
|
+
* Typed contracts shared by the MLola Browser Runtime: observations, actions,
|
|
5
|
+
* decisions, verification, policy, budgets, events and trust provenance.
|
|
6
|
+
*
|
|
7
|
+
* Nothing in this package touches a browser, a model or the filesystem. It is
|
|
8
|
+
* the stable vocabulary the rest of the runtime is built from.
|
|
9
|
+
*/
|
|
10
|
+
export * from "./ids.js";
|
|
11
|
+
export * from "./provenance.js";
|
|
12
|
+
export * from "./capabilities.js";
|
|
13
|
+
export * from "./errors.js";
|
|
14
|
+
export * from "./budget.js";
|
|
15
|
+
export * from "./memory.js";
|
|
16
|
+
export * from "./observation.js";
|
|
17
|
+
export * from "./actions.js";
|
|
18
|
+
export * from "./decision.js";
|
|
19
|
+
export * from "./verification.js";
|
|
20
|
+
export * from "./policy.js";
|
|
21
|
+
export * from "./task.js";
|
|
22
|
+
export * from "./human.js";
|
|
23
|
+
export * from "./events.js";
|
|
24
|
+
export * from "./schemas.js";
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
package/dist/memory.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Working memory (PRD §31).
|
|
3
|
+
*
|
|
4
|
+
* Compact, structured, evidence-linked, replaceable. Memory can never override
|
|
5
|
+
* user intent: it is advisory context for the decision providers only.
|
|
6
|
+
*/
|
|
7
|
+
import type { ArtifactId } from "./ids.ts";
|
|
8
|
+
import type { ProvenanceClass } from "./provenance.ts";
|
|
9
|
+
export interface MemoryFact {
|
|
10
|
+
text: string;
|
|
11
|
+
/** Where the fact came from. Only runtime/user/goal facts are authoritative. */
|
|
12
|
+
provenance: ProvenanceClass;
|
|
13
|
+
/** Optional evidence pointer, e.g. snapshot id, artifact id, event seq. */
|
|
14
|
+
evidence?: string;
|
|
15
|
+
at: number;
|
|
16
|
+
}
|
|
17
|
+
export interface FailedAttempt {
|
|
18
|
+
text: string;
|
|
19
|
+
step: number;
|
|
20
|
+
at: number;
|
|
21
|
+
}
|
|
22
|
+
export interface WorkingMemory {
|
|
23
|
+
goal: string;
|
|
24
|
+
currentSubgoal?: string;
|
|
25
|
+
facts: MemoryFact[];
|
|
26
|
+
failedAttempts: FailedAttempt[];
|
|
27
|
+
artifactIds: ArtifactId[];
|
|
28
|
+
step: number;
|
|
29
|
+
}
|
|
30
|
+
export declare const createMemory: (goal: string) => WorkingMemory;
|
|
31
|
+
export declare const MAX_FACTS = 24;
|
|
32
|
+
export declare const MAX_FAILED_ATTEMPTS = 12;
|
|
33
|
+
export declare const addFact: (memory: WorkingMemory, text: string, provenance: ProvenanceClass, evidence?: string) => void;
|
|
34
|
+
export declare const addFailedAttempt: (memory: WorkingMemory, text: string, step: number) => void;
|
|
35
|
+
/** Compact, bounded rendering used inside model inputs. */
|
|
36
|
+
export declare const renderMemory: (memory: WorkingMemory) => string;
|
|
37
|
+
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,UAAU,EAAE,eAAe,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,aAM1C,CAAC;AAEH,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,eAAO,MAAM,OAAO,GAClB,QAAQ,aAAa,EACrB,MAAM,MAAM,EACZ,YAAY,eAAe,EAC3B,WAAW,MAAM,KAChB,IAMF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,aAAa,EAAE,MAAM,MAAM,EAAE,MAAM,MAAM,KAAG,IAQpF,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,YAAY,GAAI,QAAQ,aAAa,KAAG,MAYpD,CAAC"}
|
package/dist/memory.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Working memory (PRD §31).
|
|
3
|
+
*
|
|
4
|
+
* Compact, structured, evidence-linked, replaceable. Memory can never override
|
|
5
|
+
* user intent: it is advisory context for the decision providers only.
|
|
6
|
+
*/
|
|
7
|
+
export const createMemory = (goal) => ({
|
|
8
|
+
goal,
|
|
9
|
+
facts: [],
|
|
10
|
+
failedAttempts: [],
|
|
11
|
+
artifactIds: [],
|
|
12
|
+
step: 0,
|
|
13
|
+
});
|
|
14
|
+
export const MAX_FACTS = 24;
|
|
15
|
+
export const MAX_FAILED_ATTEMPTS = 12;
|
|
16
|
+
export const addFact = (memory, text, provenance, evidence) => {
|
|
17
|
+
const normalized = text.trim();
|
|
18
|
+
if (normalized.length === 0)
|
|
19
|
+
return;
|
|
20
|
+
if (memory.facts.some((f) => f.text === normalized && f.provenance === provenance))
|
|
21
|
+
return;
|
|
22
|
+
memory.facts.push({ text: normalized, provenance, at: Date.now(), ...(evidence ? { evidence } : {}) });
|
|
23
|
+
if (memory.facts.length > MAX_FACTS)
|
|
24
|
+
memory.facts.splice(0, memory.facts.length - MAX_FACTS);
|
|
25
|
+
};
|
|
26
|
+
export const addFailedAttempt = (memory, text, step) => {
|
|
27
|
+
const normalized = text.trim();
|
|
28
|
+
if (normalized.length === 0)
|
|
29
|
+
return;
|
|
30
|
+
if (memory.failedAttempts.some((f) => f.text === normalized))
|
|
31
|
+
return;
|
|
32
|
+
memory.failedAttempts.push({ text: normalized, step, at: Date.now() });
|
|
33
|
+
if (memory.failedAttempts.length > MAX_FAILED_ATTEMPTS) {
|
|
34
|
+
memory.failedAttempts.splice(0, memory.failedAttempts.length - MAX_FAILED_ATTEMPTS);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
/** Compact, bounded rendering used inside model inputs. */
|
|
38
|
+
export const renderMemory = (memory) => {
|
|
39
|
+
const lines = [];
|
|
40
|
+
if (memory.currentSubgoal)
|
|
41
|
+
lines.push(`current_subgoal: ${memory.currentSubgoal}`);
|
|
42
|
+
if (memory.facts.length > 0) {
|
|
43
|
+
lines.push("facts:");
|
|
44
|
+
for (const f of memory.facts)
|
|
45
|
+
lines.push(`- ${f.text} [${f.provenance}]`);
|
|
46
|
+
}
|
|
47
|
+
if (memory.failedAttempts.length > 0) {
|
|
48
|
+
lines.push("failed_attempts:");
|
|
49
|
+
for (const f of memory.failedAttempts)
|
|
50
|
+
lines.push(`- step ${f.step}: ${f.text}`);
|
|
51
|
+
}
|
|
52
|
+
return lines.join("\n");
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atomic browser observation (PRD §12, §13).
|
|
3
|
+
*
|
|
4
|
+
* One snapshot is produced by one browser-side collection pass. Everything the
|
|
5
|
+
* runtime and the model need for a decision — controls, labels, values, state,
|
|
6
|
+
* options, geometry, tab state, blocking UI — arrives together, so a decision
|
|
7
|
+
* cycle costs one observation instead of a protocol conversation.
|
|
8
|
+
*/
|
|
9
|
+
import type { ElementIndex, NodeId, SnapshotId, TabId } from "./ids.ts";
|
|
10
|
+
import type { ProvenanceClass } from "./provenance.ts";
|
|
11
|
+
import type { OperationId } from "./actions.ts";
|
|
12
|
+
import type { SnapshotHistory } from "./policy.ts";
|
|
13
|
+
export interface Rect {
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
width: number;
|
|
17
|
+
height: number;
|
|
18
|
+
}
|
|
19
|
+
export interface Viewport {
|
|
20
|
+
width: number;
|
|
21
|
+
height: number;
|
|
22
|
+
scrollX: number;
|
|
23
|
+
scrollY: number;
|
|
24
|
+
documentWidth: number;
|
|
25
|
+
documentHeight: number;
|
|
26
|
+
}
|
|
27
|
+
export type NodeRole = "button" | "link" | "textbox" | "searchbox" | "combobox" | "listbox" | "option" | "checkbox" | "radio" | "switch" | "slider" | "spinbutton" | "menuitem" | "menuitemcheckbox" | "menuitemradio" | "tab" | "dialog" | "alertdialog" | "alert" | "heading" | "fileinput" | "contenteditable" | "other";
|
|
28
|
+
export interface NodeFlags {
|
|
29
|
+
visible: boolean;
|
|
30
|
+
/** Hit-testable: not covered by another element (PRD §24). */
|
|
31
|
+
hitTarget: boolean;
|
|
32
|
+
enabled: boolean;
|
|
33
|
+
editable: boolean;
|
|
34
|
+
readonly: boolean;
|
|
35
|
+
required: boolean;
|
|
36
|
+
disabled: boolean;
|
|
37
|
+
inert: boolean;
|
|
38
|
+
/** Present but outside the current viewport. */
|
|
39
|
+
offscreen: boolean;
|
|
40
|
+
checked?: boolean;
|
|
41
|
+
selected?: boolean;
|
|
42
|
+
expanded?: boolean;
|
|
43
|
+
/** Label text matches instruction-like patterns: quarantined candidate. */
|
|
44
|
+
suspicious?: boolean;
|
|
45
|
+
}
|
|
46
|
+
export interface ObservedOption {
|
|
47
|
+
/** Model-facing index inside the parent select. */
|
|
48
|
+
index: number;
|
|
49
|
+
label: string;
|
|
50
|
+
value: string;
|
|
51
|
+
disabled: boolean;
|
|
52
|
+
selected: boolean;
|
|
53
|
+
}
|
|
54
|
+
/** Identity retained by the runtime for one observed node (PRD §13). */
|
|
55
|
+
export interface NodeHandle {
|
|
56
|
+
index: ElementIndex;
|
|
57
|
+
nodeId: NodeId;
|
|
58
|
+
role: NodeRole;
|
|
59
|
+
label: string;
|
|
60
|
+
labelHash: string;
|
|
61
|
+
tag: string;
|
|
62
|
+
inputType?: string;
|
|
63
|
+
formNodeId?: NodeId;
|
|
64
|
+
geometry?: Rect;
|
|
65
|
+
provenance: ProvenanceClass;
|
|
66
|
+
}
|
|
67
|
+
export interface ObservedNode extends NodeHandle {
|
|
68
|
+
value?: string;
|
|
69
|
+
placeholder?: string;
|
|
70
|
+
title?: string;
|
|
71
|
+
href?: string;
|
|
72
|
+
/** Kind hints, e.g. button kind submit/reset, autocomplete attribute. */
|
|
73
|
+
kind?: string;
|
|
74
|
+
options?: ObservedOption[];
|
|
75
|
+
accept?: string;
|
|
76
|
+
multiple?: boolean;
|
|
77
|
+
flags: NodeFlags;
|
|
78
|
+
/** Operations this node is compatible with; the source of the action space. */
|
|
79
|
+
operations: OperationId[];
|
|
80
|
+
/** Original geometry in document coordinates, used for scroll-into-view. */
|
|
81
|
+
documentRect?: Rect;
|
|
82
|
+
}
|
|
83
|
+
export type TabOwnership = "agent_created" | "user_owned" | "borrowed";
|
|
84
|
+
export interface TabInfo {
|
|
85
|
+
id: TabId;
|
|
86
|
+
title: string;
|
|
87
|
+
url: string;
|
|
88
|
+
active: boolean;
|
|
89
|
+
ownership: TabOwnership;
|
|
90
|
+
/** Browser window identity; used to return borrowed tabs (PRD §10.2). */
|
|
91
|
+
windowId?: number;
|
|
92
|
+
/** Original position for borrowed tabs. */
|
|
93
|
+
originalIndex?: number;
|
|
94
|
+
}
|
|
95
|
+
export type BlockingUiKind = "alert" | "confirm" | "prompt" | "dialog" | "cookie_consent" | "file_chooser" | "permission_request" | "unsaved_changes" | "beforeunload" | "unknown";
|
|
96
|
+
export interface BlockingUi {
|
|
97
|
+
kind: BlockingUiKind;
|
|
98
|
+
title?: string;
|
|
99
|
+
text?: string;
|
|
100
|
+
/** Indexes into `nodes` for controls of the blocking UI. */
|
|
101
|
+
nodeIndexes: ElementIndex[];
|
|
102
|
+
provenance: ProvenanceClass;
|
|
103
|
+
}
|
|
104
|
+
export interface ConsoleDiagnostic {
|
|
105
|
+
level: "error" | "warning" | "info";
|
|
106
|
+
text: string;
|
|
107
|
+
at: number;
|
|
108
|
+
count: number;
|
|
109
|
+
}
|
|
110
|
+
export interface NetworkDiagnostic {
|
|
111
|
+
url: string;
|
|
112
|
+
method: string;
|
|
113
|
+
status?: number;
|
|
114
|
+
failure?: string;
|
|
115
|
+
at: number;
|
|
116
|
+
}
|
|
117
|
+
export interface SnapshotDiagnostics {
|
|
118
|
+
consoleErrors: ConsoleDiagnostic[];
|
|
119
|
+
failedRequests: NetworkDiagnostic[];
|
|
120
|
+
}
|
|
121
|
+
export interface SnapshotTextItem {
|
|
122
|
+
text: string;
|
|
123
|
+
provenance: ProvenanceClass;
|
|
124
|
+
suspicious?: boolean;
|
|
125
|
+
}
|
|
126
|
+
export interface BrowserSnapshot {
|
|
127
|
+
snapshotId: SnapshotId;
|
|
128
|
+
/** Monotonic per session; indexes into the observation history. */
|
|
129
|
+
generation: number;
|
|
130
|
+
capturedAt: number;
|
|
131
|
+
/** Opaque document identity; changes on navigation or a new document. */
|
|
132
|
+
pageToken: string;
|
|
133
|
+
url: string;
|
|
134
|
+
title: string;
|
|
135
|
+
readyState: "loading" | "interactive" | "complete" | "unknown";
|
|
136
|
+
/** Visible, top-level text excerpt with provenance. */
|
|
137
|
+
textSummary: string;
|
|
138
|
+
/** Suspicious instruction-like strings found in page content (PRD §22). */
|
|
139
|
+
injectedTexts: SnapshotTextItem[];
|
|
140
|
+
nodes: ObservedNode[];
|
|
141
|
+
viewport: Viewport;
|
|
142
|
+
tabs: TabInfo[];
|
|
143
|
+
activeTabId: TabId;
|
|
144
|
+
/** Whether the active tab can go back/forward (drives BACK/FORWARD offers). */
|
|
145
|
+
history?: SnapshotHistory;
|
|
146
|
+
blockingUi?: BlockingUi;
|
|
147
|
+
diagnostics?: SnapshotDiagnostics;
|
|
148
|
+
/** Structural fingerprint used for freshness and loop detection. */
|
|
149
|
+
fingerprint: string;
|
|
150
|
+
/** Set when the page is a canvas or a visual-only surface. */
|
|
151
|
+
visualOnly?: boolean;
|
|
152
|
+
}
|
|
153
|
+
export declare const nodeByIndex: (snapshot: BrowserSnapshot, index: ElementIndex) => ObservedNode | undefined;
|
|
154
|
+
export declare const nodeByNodeId: (snapshot: BrowserSnapshot, nodeId: NodeId) => ObservedNode | undefined;
|
|
155
|
+
/** Compact, model-facing rendering of the indexed element table (PRD §13). */
|
|
156
|
+
export declare const renderElementTable: (snapshot: BrowserSnapshot) => string;
|
|
157
|
+
//# sourceMappingURL=observation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observation.d.ts","sourceRoot":"","sources":["../src/observation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atomic browser observation (PRD §12, §13).
|
|
3
|
+
*
|
|
4
|
+
* One snapshot is produced by one browser-side collection pass. Everything the
|
|
5
|
+
* runtime and the model need for a decision — controls, labels, values, state,
|
|
6
|
+
* options, geometry, tab state, blocking UI — arrives together, so a decision
|
|
7
|
+
* cycle costs one observation instead of a protocol conversation.
|
|
8
|
+
*/
|
|
9
|
+
export const nodeByIndex = (snapshot, index) => snapshot.nodes.find((n) => n.index === index);
|
|
10
|
+
export const nodeByNodeId = (snapshot, nodeId) => snapshot.nodes.find((n) => n.nodeId === nodeId);
|
|
11
|
+
/** Compact, model-facing rendering of the indexed element table (PRD §13). */
|
|
12
|
+
export const renderElementTable = (snapshot) => {
|
|
13
|
+
const lines = [];
|
|
14
|
+
for (const node of snapshot.nodes) {
|
|
15
|
+
const parts = [`[${node.index}]`, node.role, JSON.stringify(node.label)];
|
|
16
|
+
if (node.value !== undefined && node.value !== "")
|
|
17
|
+
parts.push(`value=${JSON.stringify(node.value)}`);
|
|
18
|
+
if (node.placeholder)
|
|
19
|
+
parts.push(`placeholder=${JSON.stringify(node.placeholder)}`);
|
|
20
|
+
if (node.flags.checked !== undefined)
|
|
21
|
+
parts.push(node.flags.checked ? "checked" : "unchecked");
|
|
22
|
+
if (node.flags.selected !== undefined)
|
|
23
|
+
parts.push(node.flags.selected ? "selected" : "unselected");
|
|
24
|
+
if (node.flags.expanded !== undefined)
|
|
25
|
+
parts.push(node.flags.expanded ? "expanded" : "collapsed");
|
|
26
|
+
if (node.flags.offscreen)
|
|
27
|
+
parts.push("offscreen");
|
|
28
|
+
if (!node.flags.enabled || node.flags.disabled)
|
|
29
|
+
parts.push("disabled");
|
|
30
|
+
if (node.flags.readonly)
|
|
31
|
+
parts.push("readonly");
|
|
32
|
+
if (node.flags.required)
|
|
33
|
+
parts.push("required");
|
|
34
|
+
if (node.options && node.options.length > 0) {
|
|
35
|
+
const opts = node.options
|
|
36
|
+
.slice(0, 40)
|
|
37
|
+
.map((o) => `${o.index}:${o.selected ? "*" : ""}${JSON.stringify(o.label)}${o.disabled ? "(disabled)" : ""}`)
|
|
38
|
+
.join(", ");
|
|
39
|
+
parts.push(`options=[${opts}]`);
|
|
40
|
+
}
|
|
41
|
+
lines.push(parts.join(" "));
|
|
42
|
+
}
|
|
43
|
+
return lines.join("\n");
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=observation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observation.js","sourceRoot":"","sources":["../src/observation.ts"],"names":[],"mappings":"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"}
|