@wenathlan/extension 1.1.64 → 1.1.66

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 (63) hide show
  1. package/README.md +5 -3
  2. package/dist/attentionfeed.d.ts +74 -0
  3. package/dist/attentionfeed.d.ts.map +1 -0
  4. package/dist/backgroundruns.d.ts +71 -0
  5. package/dist/backgroundruns.d.ts.map +1 -0
  6. package/dist/datagrid.d.ts +46 -0
  7. package/dist/datagrid.d.ts.map +1 -0
  8. package/dist/evidenceviews.d.ts +45 -0
  9. package/dist/evidenceviews.d.ts.map +1 -0
  10. package/dist/flowlibrary.d.ts +147 -0
  11. package/dist/flowlibrary.d.ts.map +1 -0
  12. package/dist/index.d.ts +15 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +1437 -3
  15. package/dist/index.js.map +4 -4
  16. package/dist/memory.d.ts +104 -1
  17. package/dist/memory.d.ts.map +1 -1
  18. package/dist/outputcompare.d.ts +68 -0
  19. package/dist/outputcompare.d.ts.map +1 -0
  20. package/dist/pickerviews.d.ts +72 -0
  21. package/dist/pickerviews.d.ts.map +1 -0
  22. package/dist/policy.d.ts +122 -1
  23. package/dist/policy.d.ts.map +1 -1
  24. package/dist/portability.d.ts +35 -0
  25. package/dist/portability.d.ts.map +1 -0
  26. package/dist/protocol.d.ts +281 -1
  27. package/dist/protocol.d.ts.map +1 -1
  28. package/dist/quickactions.d.ts +46 -0
  29. package/dist/quickactions.d.ts.map +1 -0
  30. package/dist/runreplay.d.ts +53 -0
  31. package/dist/runreplay.d.ts.map +1 -0
  32. package/dist/siteprefs.d.ts +45 -0
  33. package/dist/siteprefs.d.ts.map +1 -0
  34. package/dist/statusviews.d.ts +65 -0
  35. package/dist/statusviews.d.ts.map +1 -0
  36. package/dist/surfaces.d.ts +2 -2
  37. package/dist/surfaces.d.ts.map +1 -1
  38. package/dist/syncbridge.d.ts +80 -0
  39. package/dist/syncbridge.d.ts.map +1 -0
  40. package/dist/tourviews.d.ts +28 -0
  41. package/dist/tourviews.d.ts.map +1 -0
  42. package/dist/types.d.ts +444 -5
  43. package/dist/types.d.ts.map +1 -1
  44. package/dist/version.d.ts +1 -1
  45. package/extension/dist/background.js +1841 -5
  46. package/extension/dist/background.js.map +4 -4
  47. package/extension/dist/dashboardpage.html +3 -0
  48. package/extension/dist/dashboardpage.js +108 -0
  49. package/extension/dist/dashboardpage.js.map +2 -2
  50. package/extension/dist/manifest.json +1 -1
  51. package/extension/dist/optionspage.html +5 -0
  52. package/extension/dist/optionspage.js +222 -0
  53. package/extension/dist/optionspage.js.map +2 -2
  54. package/extension/dist/pagebridge.js.map +1 -1
  55. package/extension/dist/popup.html +2 -2
  56. package/extension/dist/popup.js +102 -0
  57. package/extension/dist/popup.js.map +2 -2
  58. package/extension/dist/sidepanel.html +2 -2
  59. package/extension/dist/sidepanel.js +219 -3
  60. package/extension/dist/sidepanel.js.map +2 -2
  61. package/extension/dist/style.css +3 -1
  62. package/extension/manifest.json +1 -1
  63. package/package.json +1 -1
package/dist/types.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- export declare const protocolversion: "1.1.64";
1
+ export declare const protocolversion: "1.1.66";
2
2
  /** Every reviewed action kind. Read kinds observe, interaction kinds move focus, sensitive kinds change page or browser state. */
3
3
  export type actionkind = "observe" | "inspect" | "extract" | "wait" | "waitfor" | "waittext" | "readattribute" | "readstyle" | "readgeometry" | "readvalue" | "readtext" | "readhtml" | "countelements" | "readtable" | "readlinks" | "readimages" | "readmeta" | "readforms" | "readstorage" | "highlight" | "tablist" | "windowlist" | "tabsnapshot" | "focus" | "scroll" | "hover" | "clickdeep" | "rightclick" | "doubleclick" | "scrollpage" | "scrollby" | "scrollend" | "scrolltop" | "fullscreen" | "zoomset" | "click" | "type" | "navigate" | "select" | "presskey" | "drag" | "drop" | "upload" | "clear" | "check" | "uncheck" | "toggle" | "submit" | "reload" | "back" | "forward" | "writestorage" | "setattribute" | "removeattribute" | "evaluate" | "tabcreate" | "tabactivate" | "tabclose" | "tabreload" | "windowcreate" | "windowclose" | "windowresize" | "downloadfile" | "movepointer" | "clickpoint" | "shiftclick" | "clicktext" | "clickaria" | "clickname" | "resolvexpath" | "typetime" | "appendtext" | "setvalue" | "typeedit" | "keyhold" | "keyrelease" | "submitsearch" | "selectmulti" | "chooseradio" | "setslider" | "setdate" | "setcolor" | "expanddetails" | "dismissdialog" | "pierceshadow" | "enterframe" | "retryaction" | "mapclicks" | "verifyvisible" | "verifyenabled" | "a11ytree" | "readvisible" | "readertree" | "detectlists" | "detecttables" | "readjson" | "watchmutate" | "waitquiet" | "watchbanner" | "detectinfinitescroll" | "detectvirtual" | "detectlazy" | "readscrollpos" | "readlang" | "readoutline" | "countpages" | "listshadow" | "listframes" | "classifypage" | "fingerprintsection" | "diffsnapshots" | "readselection" | "watchfocus" | "detectsticky" | "detectscrolllock" | "readopengraph" | "detectlanguage" | "deriveselector" | "openlink" | "openprivate" | "reloadcache" | "stopnav" | "waitload" | "waiturl" | "followlink" | "spanav" | "spawait" | "rewritequery" | "setfragment" | "navlist" | "navprofile" | "detecthttp" | "readredirects" | "readfinalurl" | "handleauth" | "printpdf" | "prefetch" | "preconnect" | "deeplink" | "reopentab" | "trailaudit" | "pausenav" | "navintent" | "navrate" | "openclipboard" | "checksafe" | "batchopen" | "querytabs" | "duplicatetab" | "closepattern" | "pintab" | "mutetab" | "movetab" | "movetabwindow" | "grouptabs" | "colorgroup" | "collapsegroup" | "discardtab" | "reloadtabs" | "zoomin" | "zoomout" | "watchtab" | "switchtab" | "maximizewindow" | "minimizewindow" | "restorewindow" | "focuswindow" | "scratchwindow" | "incognitowindow" | "restoretab" | "savelayout" | "restorelayout" | "findclones" | "searchtabs" | "badgetab" | "attachmeta" | "listaudio" | "reopenrun" | "snapshotsession" | "fillform" | "filllabel" | "fillplaceholder" | "detectfields" | "generatevalues" | "saveprofiles" | "asksubmit" | "submitform" | "readerrors" | "retryform" | "runwizard" | "selectchain" | "picktypeahead" | "pickdate" | "attachfile" | "handoffcaptcha" | "fillcard" | "fillcode" | "consentpassword" | "skiphoneypot" | "detectlogin" | "detecttemplate" | "scrapetable" | "exportcsv" | "exportjson" | "exportexcel" | "copytable" | "pushsheets" | "importcsv" | "looprows" | "transformvalues" | "deduperows" | "paginateextract" | "mergepages" | "stamplerows" | "previewgrid" | "streamdisk" | "resumeextract" | "logprovenance" | "batchdownload" | "pausedownload" | "resumedownload" | "verifydownload" | "interceptmime" | "exportnetlog" | "readclipboard" | "writeclipboard" | "copyscreen" | "quarantinedownload" | "scanvirus" | "namecaptures" | "cleanupartifacts" | "shotview" | "shotfullpage" | "shotelement" | "shotregion" | "contactsheet" | "capturepdf" | "recordscreen" | "captureaudio" | "captureframe" | "downloadimages" | "shotcanvas" | "probestream" | "readmedia" | "readassets" | "timelapse" | "convertimage" | "makethumbs" | "fetchurl" | "parsejson" | "parsehtml" | "callrest" | "callgraphql" | "opensocket" | "sendmessage" | "waitmessage" | "watchrequests" | "readheaders" | "capturebodies" | "subscribesse" | "longpoll" | "mapapi" | "extractapi" | "blockrequest" | "mockresponse" | "rewriteheaders" | "setcookies" | "readcookies" | "clearcookies" | "authflow" | "saveapikey" | "routeproxy" | "postform" | "postfiles" | "watchconsole" | "watcherrors" | "watchtasks" | "attachcdp" | "detachcdp" | "cdpcmd" | "watchcdp" | "setbreakpoint" | "stepcode" | "watchexpr" | "overridescript" | "measureflow" | "heapshot" | "trackmemory" | "profilecpu" | "watchshifts" | "traceload" | "annotatetrace" | "replaytrace" | "capturesourcemaps" | "emulatedevice" | "emulatenetwork" | "emulatelocate" | "setuseragent" | "overridepermission" | "blackboxscripts" | "persiststate" | "capturesession" | "restoresession" | "namedsessions" | "diffsessions" | "searchsessions" | "exportsessions" | "importsessions" | "composeworkflow" | "savetemplate" | "runworkflow" | "dryrun" | "delay" | "waitelement" | "compute" | "extractvars" | "listruns" | "condition" | "branch" | "loop" | "repeatuntil" | "whileloop" | "foreach" | "parallel" | "trycatch" | "visitrule" | "urlrule" | "menurule" | "keyrule" | "buttonrule" | "cronrule" | "intervalrule" | "urllistrule" | "webhookrule" | "eventrule";
4
4
  export type actionrisk = "read" | "interaction" | "sensitive";
5
5
  export type planstate = "draft" | "pending" | "approved" | "rejected" | "expired" | "completed" | "cancelled";
6
- export type auditkind = "configure" | "session" | "observe" | "proposal" | "approval" | "action" | "error" | "stop" | "pause" | "resume" | "complete" | "capability" | "tab" | "window" | "download" | "pointer" | "dialog" | "hold" | "retry" | "observation" | "watch" | "diff" | "navigation" | "redirect" | "auth" | "prefetch" | "rate" | "group" | "layout" | "discard" | "badge" | "fill" | "submit" | "consent" | "handoff" | "scrape" | "export" | "stream" | "provenance" | "resume" | "intercept" | "clipboard" | "quarantine" | "cleanup" | "capture" | "media" | "call" | "socket" | "replay" | "control" | "timeline" | "debugger" | "profile" | "emulation" | "workflow" | "trigger" | "protocol" | "tool" | "model" | "swarm" | "environment" | "worker" | "sandbox" | "grant" | "expiry" | "revoke" | "deny" | "seal" | "mask" | "vault" | "gate" | "phish" | "defer" | "schema" | "inbound" | "transparency" | "notes" | "scratchpad" | "summary" | "recall" | "correction" | "consentmemory" | "cancel" | "search" | "palette" | "surface" | "onboarding" | "logstream";
6
+ export type auditkind = "configure" | "session" | "observe" | "proposal" | "approval" | "action" | "error" | "stop" | "pause" | "resume" | "complete" | "capability" | "tab" | "window" | "download" | "pointer" | "dialog" | "hold" | "retry" | "observation" | "watch" | "diff" | "navigation" | "redirect" | "auth" | "prefetch" | "rate" | "group" | "layout" | "discard" | "badge" | "fill" | "submit" | "consent" | "handoff" | "scrape" | "export" | "stream" | "provenance" | "resume" | "intercept" | "clipboard" | "quarantine" | "cleanup" | "capture" | "media" | "call" | "socket" | "replay" | "control" | "timeline" | "debugger" | "profile" | "emulation" | "workflow" | "trigger" | "protocol" | "tool" | "model" | "swarm" | "environment" | "worker" | "sandbox" | "grant" | "expiry" | "revoke" | "deny" | "seal" | "mask" | "vault" | "gate" | "phish" | "defer" | "schema" | "inbound" | "transparency" | "notes" | "scratchpad" | "summary" | "recall" | "correction" | "consentmemory" | "cancel" | "search" | "palette" | "surface" | "onboarding" | "logstream" | "datagrid" | "quickaction" | "shortcut" | "omnibox" | "notify" | "picker" | "shotpanel" | "compare" | "siteprofile" | "theme" | "locale" | "importexport" | "tour" | "a11y" | "pagechip" | "toast" | "recent" | "dropimport" | "library" | "syncbridge" | "attention" | "backgroundrun" | "runreplay" | "outputcompare";
7
7
  /** Observation mode classes: passive capture, watched lifetimes and diffing passes. */
8
8
  export type observationmode = "passive" | "watching" | "diffing";
9
9
  export interface toolstep {
@@ -254,6 +254,20 @@ export interface runsettings {
254
254
  paletteshortcut?: string;
255
255
  /** The byte ceiling above which diffpreview generation offloads to the offscreen worker pool when the user granted the offscreen capability; an absent ceiling keeps every diff inline. */
256
256
  diffpreviewbytes?: number;
257
+ /** The recenttray depth: the number of latest runs the popup tray keeps; an absent depth keeps every run. */
258
+ recenttraydepth?: number;
259
+ /** True when the user consents to notifications that carry page content; an absent value keeps every notification body content free so no consent is needed. */
260
+ notifyconsent?: boolean;
261
+ /** True when the user turns the done and attention notifications on; an absent value keeps them on with content free bodies only. */
262
+ notifyenabled?: boolean;
263
+ /** The manual darklight override: dark or light forces the theme while system follows the os preference; an absent value follows the os preference alone. */
264
+ themepreference?: "dark" | "light" | "system";
265
+ /** The language of the interface strings; an absent value keeps english with the locale fallback. */
266
+ uilanguage?: string;
267
+ /** The steteoast live count: the number of newest step toasts the live stack keeps while the full history stays queryable; an absent count keeps every toast live. */
268
+ toastlivecount?: number;
269
+ /** Retention window for stored attentionfeed entries; an absent window keeps every entry while the resolution events always survive in the audit trail. */
270
+ attentionretention?: number;
257
271
  }
258
272
  export interface proposalrequest {
259
273
  objective: string;
@@ -3021,6 +3035,8 @@ export interface workflowimport {
3021
3035
  record: workflowrecord;
3022
3036
  importedat: number;
3023
3037
  filename?: string;
3038
+ /** The flowlibrary manifest version the record resolved from; an absent version marks a plain file import outside the library. */
3039
+ libraryversion?: string;
3024
3040
  }
3025
3041
  /** One per site policy override of a workflow: the origin pattern and the reviewed policy knobs it adjusts. */
3026
3042
  export interface siteoverride {
@@ -4331,7 +4347,7 @@ export interface sealedrunstate {
4331
4347
  /** The sensitive classes of the 1.1.61 family: payment, credential, delete and publish steps each need one fresh consent prompt per class per origin. */
4332
4348
  export type sensitiveclass = "payment" | "credential" | "delete" | "publish";
4333
4349
  /** The event kinds of the immutable run log: step transitions, grants, window expiries, revocations, denials, suspensions, resumes and the completion seal. */
4334
- export type logeventkind = "step" | "grant" | "expiry" | "revoke" | "deny" | "suspend" | "resume" | "seal" | "gate" | "phish" | "schema" | "inbound" | "cancel" | "review";
4350
+ export type logeventkind = "step" | "grant" | "expiry" | "revoke" | "deny" | "suspend" | "resume" | "seal" | "gate" | "phish" | "schema" | "inbound" | "cancel" | "review" | "library" | "background";
4335
4351
  /** The hash chain fields of one immutable log entry: the hash of its predecessor, the entry hash written at append time and the algorithm that derives both. */
4336
4352
  export interface loghash {
4337
4353
  previous: string;
@@ -4805,8 +4821,8 @@ export interface tabsessionref {
4805
4821
  * The interface becomes a family of five surfaces here: the popup grows into a command surface, the sidepanel becomes the workspace with plan, run and review tabs, the dashboardpage opens a full page view in a new tab, the optionspage gathers every setting in one place and the onboarding walks a first run. The commandpalette registers entries from every module at startup, lists only the actions the current capability set allows and ranks fuzzy matches with the recent commands first; the taskinput submits natural language goals through the same proposal flow as the api with the active origin and page outline attached; plancards render one card per proposed step with kind, risk class, environment and options grouped by risk class with the sensitive classes expanded by default; stepapprove resolves one step per human action with approve, reject and edit provenance written into the immutable log; diffpreview compares the observed before state with the predicted after state of write class steps only with masked values carrying their mask verdicts; the stepstimeline derives its nodes from progress records with no new state; and the logstream renders live events with level, source and step ref while the single broadcast channel carries run state to every surface.
4806
4822
  * The consent gates do not move: every surface action rides the same policy gates, the command bus records each routing in the audit trail, and no interface surface ever bypasses the human review.
4807
4823
  */
4808
- /** The five interface surfaces of the 1.1.64 family: the popup command surface, the sidepanel workspace, the dashboardpage, the optionspage and the onboarding walkthrough. */
4809
- export type uisurface = "popup" | "sidepanel" | "dashboardpage" | "optionspage" | "onboarding";
4824
+ /** The interface surfaces of the 1.1.64 and 1.1.65 families: the popup command surface, the sidepanel workspace, the dashboardpage, the optionspage, the onboarding walkthrough, the omnibox entry point and the inline page surface of the pagechips. */
4825
+ export type uisurface = "popup" | "sidepanel" | "dashboardpage" | "optionspage" | "onboarding" | "omnibox" | "page";
4810
4826
  /** One commandpalette action: the command it routes, the surface it opens on, the optional permission it needs granted and whether it needs an active session. */
4811
4827
  export interface paletteaction {
4812
4828
  command: string;
@@ -4925,6 +4941,8 @@ export interface onboardingstep {
4925
4941
  title: string;
4926
4942
  body: string;
4927
4943
  completion: string;
4944
+ /** True when the walkthrough stop is optional: the completion of every mandatory stop alone finishes the walkthrough while the optional stop enriches it. */
4945
+ optional?: boolean;
4928
4946
  }
4929
4947
  /** The onboarding state: the completed steps, the done mark, the single consent scoped event a full completion writes and the timestamps. */
4930
4948
  export interface onboardingstate {
@@ -4968,4 +4986,425 @@ export interface paletteuserecord {
4968
4986
  count: number;
4969
4987
  lastusedat: number;
4970
4988
  }
4989
+ /**
4990
+ * Interface surface contracts of the 1.1.65 family, part two.
4991
+ * This family finishes the interface layer: the datagrid arranges extraction results into columns and rows with inferred types and the exportmenu ships them as csv, json or clipboard in masked form only; quickactions, shortcutkeys and the omniboxtask shorten the path to a run behind the same gates; the statusbadge, the done and attention notifications, the recenttray and the stetoasts keep the user informed without watching; the pickeroverlay, the targethalo, the guidedtips, the shotpanel, the compareviewer and the pagechips cover selection and evidence; and the siteprofiles, the darklight theme tokens, the locale bundles, the importexport payloads, the dropimport sessions, the featuretour stops and the a11ylabels round out the surface.
4992
+ * The consent gates do not move: every quickaction rides the origin allowlist of the clicked tab, every omnibox goal routes through the proposal flow, every notification with page content needs its consent, every picker read stays inside the granted origin, no bundle ever ships a secretvault value or an unmasked log, and no interface element ever bypasses the human review.
4993
+ */
4994
+ /** One datagrid column with its type inferred from the observed values: text, number, boolean, date or an all empty column. */
4995
+ export interface datagridcolumn {
4996
+ field: string;
4997
+ label: string;
4998
+ type: "text" | "number" | "boolean" | "date" | "empty";
4999
+ /** True when the type was inferred from the values rather than declared by the extraction. */
5000
+ inferred: boolean;
5001
+ }
5002
+ /** One datagrid row: its original order as index, its field values and its selected mark of a partial export range. */
5003
+ export interface datagridrow {
5004
+ index: number;
5005
+ values: Record<string, string>;
5006
+ /** True when the row sits inside the selected range of a partial export. */
5007
+ selected?: boolean;
5008
+ }
5009
+ /** One datagrid view of an extraction result: the title, the origin, the run, the inferred columns, the rows and the build time. */
5010
+ export interface datagridview {
5011
+ id: string;
5012
+ title: string;
5013
+ origin: string;
5014
+ runid: string;
5015
+ columns: datagridcolumn[];
5016
+ rows: datagridrow[];
5017
+ at: number;
5018
+ }
5019
+ /** One exportmenu descriptor: the csv, json or clipboard format, the selection, step or run scope and the download, clipboard or memory destination. */
5020
+ export interface exportmenudescriptor {
5021
+ format: "csv" | "json" | "clipboard";
5022
+ scope: "selection" | "step" | "run";
5023
+ destination: "download" | "clipboard" | "memory";
5024
+ }
5025
+ /** One quickaction bound to a context menu entry: the command it routes, the surface it opens on, the optional permission it needs granted and whether it needs an active session. */
5026
+ export interface quickaction {
5027
+ id: string;
5028
+ label: string;
5029
+ command: string;
5030
+ surface: uisurface;
5031
+ /** The optional capability the quickaction needs granted before it registers; an absent permission needs none. */
5032
+ permission?: string;
5033
+ /** True when the quickaction needs an active browser session before it registers. */
5034
+ session?: boolean;
5035
+ }
5036
+ /** One shortcutkeys binding: the command it triggers, the key, the modifiers, the user editable mark and the surface it binds on; the palette command binds on every surface. */
5037
+ export interface shortcutbinding {
5038
+ command: string;
5039
+ key: string;
5040
+ modifiers: string[];
5041
+ editable: boolean;
5042
+ surface: uisurface;
5043
+ }
5044
+ /** One omniboxtask submission parsed from the omnibox keyword: the natural language goal after the keyword, the active origin and the time. */
5045
+ export interface omniboxtasksubmission {
5046
+ id: string;
5047
+ text: string;
5048
+ origin: string;
5049
+ surface: "omnibox";
5050
+ at: number;
5051
+ }
5052
+ /** One statusbadge state of the toolbar icon: idle, running, waiting or attention with the count of waiting gates that need a human. */
5053
+ export interface statusbadgestate {
5054
+ state: "idle" | "running" | "waiting" | "attention";
5055
+ waitingcount: number;
5056
+ runid?: string;
5057
+ }
5058
+ /** One notification payload: the done or attention kind, the title, the body, the deep link, the optional step ref and whether the body carries page content that needs its consent. */
5059
+ export interface notificationpayload {
5060
+ id: string;
5061
+ kind: "done" | "attention";
5062
+ title: string;
5063
+ body: string;
5064
+ deeplink: string;
5065
+ runid?: string;
5066
+ stepid?: string;
5067
+ /** True when the notification body carries page content; the content consent gate must allow before it shows. */
5068
+ content: boolean;
5069
+ at: number;
5070
+ }
5071
+ /** One recenttray entry: the run id, the origin, the outcome, the title, the time and the resume and reopen offers. */
5072
+ export interface recenttrayentry {
5073
+ runid: string;
5074
+ origin: string;
5075
+ outcome: "running" | "completed" | "halted" | "failed";
5076
+ title: string;
5077
+ at: number;
5078
+ resumable: boolean;
5079
+ reopenable: boolean;
5080
+ }
5081
+ /** One pickeroverlay candidate: the selector, the optional text and role anchors, the stability score and the plain language reason the score stands. */
5082
+ export interface pickercandidate {
5083
+ selector: string;
5084
+ text?: string;
5085
+ role?: string;
5086
+ stabilityscore: number;
5087
+ reason: string;
5088
+ }
5089
+ /** One pickeroverlay session: the granted origin it reads, the ranked candidates, the locked step and selector and the start time. */
5090
+ export interface pickersession {
5091
+ id: string;
5092
+ origin: string;
5093
+ candidates: pickercandidate[];
5094
+ /** The step the locked candidate binds to; one session locks one candidate. */
5095
+ lockedstepid?: string;
5096
+ lockedselector?: string;
5097
+ startedat: number;
5098
+ }
5099
+ /** One targethalo geometry descriptor: the step it outlines, the target selector, the pixel rect and the step state that colors the outline. */
5100
+ export interface targethalo {
5101
+ stepid: string;
5102
+ selector: string;
5103
+ rect: {
5104
+ x: number;
5105
+ y: number;
5106
+ width: number;
5107
+ height: number;
5108
+ };
5109
+ state: "pending" | "running" | "waiting" | "done" | "failed" | "halted";
5110
+ }
5111
+ /** One guidedtip: the surface it teaches, the title, the body and the picker step it binds to. */
5112
+ export interface guidedtip {
5113
+ id: string;
5114
+ surface: uisurface;
5115
+ title: string;
5116
+ body: string;
5117
+ pickerstep?: string;
5118
+ }
5119
+ /** One shotpanel view: the step, the run, the capture id, the capture provenance, the origin, the redaction verdicts, the zoom and pan the user set and the build time. */
5120
+ export interface shotpanelview {
5121
+ id: string;
5122
+ stepid: string;
5123
+ runid: string;
5124
+ captureid: string;
5125
+ provenance: "viewport" | "fullpage" | "element" | "region";
5126
+ origin: string;
5127
+ redactions: Array<{
5128
+ region: string;
5129
+ verdict: string;
5130
+ }>;
5131
+ zoom: number;
5132
+ pan: {
5133
+ x: number;
5134
+ y: number;
5135
+ };
5136
+ at: number;
5137
+ }
5138
+ /** One compareviewer pair: the step it compares, the before capture, the after capture and the slider position of the overlay. */
5139
+ export interface compareviewerpair {
5140
+ id: string;
5141
+ stepid: string;
5142
+ beforecaptureid: string;
5143
+ aftercaptureid: string;
5144
+ slidervalue: number;
5145
+ }
5146
+ /** One siteprofile: the per site interface preferences (the theme, the shortcutkeys and the default view) stored beside the originprofiles policy preferences of its origin. */
5147
+ export interface siteprofile {
5148
+ origin: string;
5149
+ theme?: "dark" | "light" | "system";
5150
+ shortcuts?: shortcutbinding[];
5151
+ defaultview?: string;
5152
+ updatedat: number;
5153
+ }
5154
+ /** One darklight theme token set: the mode and the token values every surface, including the dashboardpage, reads; the source names whether the os preference, the user override or the siteprofile decided. */
5155
+ export interface darklighttokens {
5156
+ mode: "dark" | "light";
5157
+ tokens: Record<string, string>;
5158
+ source?: "os" | "user" | "site";
5159
+ }
5160
+ /** One locale bundle: the language and its interface strings; english ships as the fallback base. */
5161
+ export interface localebundle {
5162
+ language: string;
5163
+ strings: Record<string, string>;
5164
+ }
5165
+ /** One importexport payload: the settings and data bundle of one profile with its originprofiles, siteprofiles, notes and preferences and the honest exclusion list; secretvault values and unmasked logs never enter any bundle under any flag. */
5166
+ export interface importexportpayload {
5167
+ version: number;
5168
+ kind: "settings" | "data";
5169
+ profile: string;
5170
+ exportedat: number;
5171
+ contents: {
5172
+ originprofiles: Array<Record<string, unknown>>;
5173
+ siteprofiles: Array<Record<string, unknown>>;
5174
+ notes: Array<Record<string, unknown>>;
5175
+ preferences: Record<string, unknown>;
5176
+ /** Present only when a bundle wrongly carries log entries; the validation refuses such bundles in full. */
5177
+ unmaskedlogs?: Array<Record<string, unknown>>;
5178
+ };
5179
+ exclusions: string[];
5180
+ }
5181
+ /** One dropimport session: the dropped filename, the detected csv, json or workflow kind, the byte size, the accepted mark and the time. */
5182
+ export interface dropimportsession {
5183
+ id: string;
5184
+ filename: string;
5185
+ kind: "csv" | "json" | "workflow";
5186
+ bytes: number;
5187
+ accepted: boolean;
5188
+ at: number;
5189
+ }
5190
+ /** One featuretour stop: the surface it walks, the focus selector it highlights, the title, the body and the stop order. */
5191
+ export interface featuretourstop {
5192
+ id: string;
5193
+ surface: uisurface;
5194
+ focus: string;
5195
+ title: string;
5196
+ body: string;
5197
+ order: number;
5198
+ }
5199
+ /** One a11ylabel: the control it names, its role, its accessible name and its optional state and value for screen readers, resolved through the locale bundles so labels follow the language of the interface. */
5200
+ export interface a11ylabel {
5201
+ control: string;
5202
+ role: "button" | "textbox" | "tab" | "table" | "list" | "slider" | "switch" | "radiogroup" | "combobox" | "group" | "region" | "search" | "dialog";
5203
+ name: string;
5204
+ state?: string;
5205
+ value?: string;
5206
+ }
5207
+ /** One pagechip confirmation: the gated step, the anchor selector, the origin, the approve or reject resolution, the resolved time and the build time. */
5208
+ export interface pagechipconfirmation {
5209
+ id: string;
5210
+ stepid: string;
5211
+ selector: string;
5212
+ origin: string;
5213
+ resolution?: "approve" | "reject";
5214
+ resolvedat?: number;
5215
+ at: number;
5216
+ }
5217
+ /** One steteoast: the step completion confirmation with the step kind, its duration in milliseconds and the time. */
5218
+ export interface stetoast {
5219
+ id: string;
5220
+ stepid: string;
5221
+ kind: string;
5222
+ durationms: number;
5223
+ at: number;
5224
+ }
5225
+ /**
5226
+ * Ecosystem contracts of the 1.1.66 family.
5227
+ * This family opens the ecosystem layer: the flowlibrary entries with their manifests, required grants, data expectations and publisher provenance share workflow templates behind the same review; the syncbridge hooks move manifests between machines behind an explicit opt in; the attentionfeed collects every gate wait, phishguard block, deferral and failure with its deep link; the background run queue keeps workflows executing with the keepalive signal held; the runreplay walks a sealed chain step by step for audit; and the outputcompare sessions set two runs beside each other under a recorded metric set.
5228
+ * The consent gates do not move: every library import lands as a proposal that still passes the plan review, no hook ever defaults on, the replay reads sealed logs only and the comparison never executes a step.
5229
+ */
5230
+ /** One flowlibrary manifest: the shared workflow template with its steps, kinds, required grants, data expectations with minimization hints and the optional publisher signature. */
5231
+ export interface flowlibrarymanifest {
5232
+ id: string;
5233
+ title: string;
5234
+ description: string;
5235
+ version: string;
5236
+ /** The publisher identity of the manifest; every registry origin stays a user configured value with nothing hardcoded. */
5237
+ publisher: string;
5238
+ /** The user configured registry origin the entry was browsed from; an absent origin marks a local export. */
5239
+ registry?: string;
5240
+ steps: flowlibrarystep[];
5241
+ /** The action kinds the manifest steps use; the import refuses kinds the installed capability set lacks. */
5242
+ kinds: string[];
5243
+ /** The origin grants the manifest needs before any import completes; the grant diff shows them before the import lands. */
5244
+ requiredgrants: string[];
5245
+ /** The data expectations of the manifest with the minimization hints each step declares. */
5246
+ dataexpectations: dataexpectation[];
5247
+ /** True when the entry is marked sensitive and needs a fresh consent prompt before any import. */
5248
+ sensitive: boolean;
5249
+ /** The publish descriptor with the publisher signature and provenance when the publisher signed the manifest. */
5250
+ publish?: publishdescriptor;
5251
+ }
5252
+ /** One flowlibrary manifest step: the action kind, its label, the optional target and value and the selector namespace the installer rewrites for the local profile. */
5253
+ export interface flowlibrarystep {
5254
+ id: string;
5255
+ kind: string;
5256
+ label: string;
5257
+ target?: string;
5258
+ value?: string;
5259
+ /** The selector namespace of the step target: the install prefixes it onto the local selector so shared templates address the local profile. */
5260
+ namespace?: string;
5261
+ }
5262
+ /** One data expectation of a manifest step: the data family the step touches and the fields it limits itself to as its minimization hint. */
5263
+ export interface dataexpectation {
5264
+ stepid: string;
5265
+ /** The data family the step reads or writes such as form values, text content or captures. */
5266
+ family: string;
5267
+ /** The minimization hint: the exact fields the step needs and nothing broader. */
5268
+ fields: string[];
5269
+ }
5270
+ /** One publish descriptor: the publisher signature over the manifest digest with its provenance; the verification refuses a signature over any other body in full. */
5271
+ export interface publishdescriptor {
5272
+ publisher: string;
5273
+ signature: string;
5274
+ /** The manifest digest the signature covers. */
5275
+ digest: string;
5276
+ /** The provenance chain of the publish: where the entry came from. */
5277
+ provenance: string;
5278
+ publishedat: number;
5279
+ }
5280
+ /** One flowlibrary entry: the manifest with its digest, its state and its provenance; the store deduplicates entries by manifest digest and quarantines unverified publishers. */
5281
+ export interface flowlibraryentry {
5282
+ id: string;
5283
+ manifest: flowlibrarymanifest;
5284
+ /** The sha-256 digest of the manifest body; the store deduplicates and the syncbridge detects conflicts by this value. */
5285
+ digest: string;
5286
+ /** The entry state: quarantined entries never install until the user verifies their publisher. */
5287
+ state: "available" | "installed" | "quarantined";
5288
+ installedat?: number;
5289
+ /** The provenance attached to every entry: where it came from and what its signature verification said. */
5290
+ provenance: string;
5291
+ addedat: number;
5292
+ }
5293
+ /** One library lifecycle event of the store and the immutable log: every install, update and removal records with its entry provenance. */
5294
+ export interface libraryevent {
5295
+ id: string;
5296
+ kind: "install" | "update" | "remove";
5297
+ entryid: string;
5298
+ title: string;
5299
+ version: string;
5300
+ detail: string;
5301
+ at: number;
5302
+ }
5303
+ /** One syncbridge hook: the provider, the direction and the state of one manifest sync hook behind its explicit opt in with no default on. */
5304
+ export interface syncbridgehook {
5305
+ id: string;
5306
+ provider: "file" | "web";
5307
+ direction: "pull" | "push" | "both";
5308
+ /** True only after the user opts in; no hook ever defaults on. */
5309
+ optin: boolean;
5310
+ /** The user configured endpoint of the provider: a registry url for the web provider or a file label for the file provider; nothing is hardcoded. */
5311
+ endpoint: string;
5312
+ state: "idle" | "syncing" | "error";
5313
+ lastsyncat?: number;
5314
+ createdat: number;
5315
+ }
5316
+ /** One syncbridge conflict: both manifest versions surface instead of a silent overwrite, with the resolution the user picked. */
5317
+ export interface syncbridgeconflict {
5318
+ id: string;
5319
+ hookid: string;
5320
+ manifestid: string;
5321
+ local: {
5322
+ digest: string;
5323
+ version: string;
5324
+ };
5325
+ remote: {
5326
+ digest: string;
5327
+ version: string;
5328
+ };
5329
+ resolution?: "local" | "remote" | "merge";
5330
+ resolvedat?: number;
5331
+ detectedat: number;
5332
+ }
5333
+ /** The attention causes the feed collects: gate waits, phishguard blocks, deferrals and failures. */
5334
+ export type attentioncause = "gatewait" | "phishguard" | "deferral" | "failure";
5335
+ /** One attentionfeed entry: the cause, the run ref, the gate ref, the severity rank and the deep link to the waiting surface that resolves the cause. */
5336
+ export interface attentionentry {
5337
+ id: string;
5338
+ cause: attentioncause;
5339
+ severity: "critical" | "warning" | "info";
5340
+ runid: string;
5341
+ /** The gate the run waits at when the cause is a gate wait. */
5342
+ gateref?: string;
5343
+ origin: string;
5344
+ summary: string;
5345
+ /** The deep link that opens the exact waiting surface. */
5346
+ deeplink: string;
5347
+ at: number;
5348
+ }
5349
+ /** One background run queue entry: the reviewed workflow the queue runs with no surface open, holding the keepalive signal for its duration. */
5350
+ export interface backgroundqueueentry {
5351
+ id: string;
5352
+ workflowid: string;
5353
+ state: "queued" | "running" | "done" | "failed";
5354
+ /** True while the run holds the keepalive signal of the run state family for its whole duration. */
5355
+ keepaliveheld: boolean;
5356
+ queuedat: number;
5357
+ startedat?: number;
5358
+ endedat?: number;
5359
+ summary: string;
5360
+ }
5361
+ /** One runreplay step: the log entry it restores with its observation and capture refs and the gate resolutions the step annotates. */
5362
+ export interface runreplaystep {
5363
+ stepid: string;
5364
+ index: number;
5365
+ summary: string;
5366
+ /** The observation version the step restored when the sealed log carries it. */
5367
+ observationversion?: number;
5368
+ /** The capture id the step restored when the sealed log carries it. */
5369
+ captureid?: string;
5370
+ gateresolutions: Array<{
5371
+ gateid: string;
5372
+ kind: string;
5373
+ resolution: string;
5374
+ at: number;
5375
+ }>;
5376
+ }
5377
+ /** One runreplay session: the recorded run id, the cursor, the play state, the replay steps and the viewer actions the audit trail records. */
5378
+ export interface runreplaysession {
5379
+ id: string;
5380
+ runid: string;
5381
+ /** The step index the viewer stands on. */
5382
+ cursor: number;
5383
+ playing: boolean;
5384
+ steps: runreplaystep[];
5385
+ openedat: number;
5386
+ actions: Array<{
5387
+ kind: "play" | "pause" | "step" | "jump";
5388
+ stepid?: string;
5389
+ at: number;
5390
+ }>;
5391
+ }
5392
+ /** One outputcompare session: the two run ids, the metric set the session used, the per step grades and the first divergence. */
5393
+ export interface outputcomparesession {
5394
+ id: string;
5395
+ runids: [string, string];
5396
+ /** The metric set the comparison used, recorded in the audit trail. */
5397
+ metrics: string[];
5398
+ steps: Array<{
5399
+ stepid: string;
5400
+ index: number;
5401
+ agreement: "agree" | "diverge" | "onlyone";
5402
+ summarya: string;
5403
+ summaryb: string;
5404
+ durationdelta: number;
5405
+ }>;
5406
+ /** The index of the first divergent step; an absent index marks agreement across the whole sequence. */
5407
+ firstdivergence?: number;
5408
+ openedat: number;
5409
+ }
4971
5410
  //# sourceMappingURL=types.d.ts.map