@wenathlan/extension 1.1.62 → 1.1.63
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/README.md +4 -3
- package/dist/environments.d.ts +10 -0
- package/dist/environments.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +553 -1
- package/dist/index.js.map +4 -4
- package/dist/memory.d.ts +99 -1
- package/dist/memory.d.ts.map +1 -1
- package/dist/policy.d.ts +54 -0
- package/dist/policy.d.ts.map +1 -1
- package/dist/sessioninterface.d.ts +213 -0
- package/dist/sessioninterface.d.ts.map +1 -0
- package/dist/types.d.ts +198 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/extension/dist/background.js +727 -2
- package/extension/dist/background.js.map +4 -4
- package/extension/dist/manifest.json +1 -1
- package/extension/dist/offscreen.js +4 -0
- package/extension/dist/offscreen.js.map +2 -2
- package/extension/dist/pagebridge.js.map +1 -1
- package/extension/dist/popup.html +1 -1
- package/extension/dist/popup.js +26 -0
- package/extension/dist/popup.js.map +2 -2
- package/extension/dist/sidepanel.html +1 -1
- package/extension/dist/sidepanel.js +414 -219
- package/extension/dist/sidepanel.js.map +3 -3
- package/extension/dist/transparencypage.html +1 -0
- package/extension/dist/transparencypage.js +42 -0
- package/extension/dist/transparencypage.js.map +2 -2
- package/extension/manifest.json +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -5000,6 +5000,212 @@ var sessionmemory = class {
|
|
|
5000
5000
|
phishverdicts: await this.getphishverdicts()
|
|
5001
5001
|
};
|
|
5002
5002
|
}
|
|
5003
|
+
/**
|
|
5004
|
+
* Session interface persistence of the 1.1.63 family.
|
|
5005
|
+
* The five session stores live here, scoped per profile workspace: the sitenotes per origin with sensitive bodies sealed at rest, the append only scratchpad entries per task with their step provenance, the distilled runsummaries per run and origin, the correctionmemory entries per origin and kind captured from plan review, and the consentmemory entries per origin with every grant, denial, expiry and revocation carrying its boundary; beside them the semanticrecall index with fingerprint deduplication answers ranked queries inside the run scope, the incremental historysearch corpus indexes session metadata, notes and summaries as they are written, the errorsurface payloads of failed steps keep their retry hints with the policy verdict, the per tab session references isolate parallel tabs, and the export bundles notes, summaries and corrections as one audit bundle.
|
|
5006
|
+
* The recall seam stays documented: the local fingerprint index answers every query today while a future remote recall backend can take the same shapes behind the seam without touching the callers.
|
|
5007
|
+
*/
|
|
5008
|
+
/** Replaces the stored site notes; a sensitive note carries its sealedbody only so the plain body never persists. */
|
|
5009
|
+
async setsitenotes(notes) {
|
|
5010
|
+
return this.adapter.set("sitenotes", notes);
|
|
5011
|
+
}
|
|
5012
|
+
/** Returns the stored site notes, oldest update first. */
|
|
5013
|
+
async getsitenotes() {
|
|
5014
|
+
return await this.adapter.get("sitenotes") ?? [];
|
|
5015
|
+
}
|
|
5016
|
+
/** Reads the site notes of one origin only; the read gate keeps the origin inside the session grants. */
|
|
5017
|
+
async readsitenotes(origin) {
|
|
5018
|
+
return (await this.getsitenotes()).filter((note) => note.origin === origin);
|
|
5019
|
+
}
|
|
5020
|
+
/** Writes one site note: a note of the same id keeps its latest edit while a new note joins the store. */
|
|
5021
|
+
async writesitenote(note) {
|
|
5022
|
+
const notes = await this.getsitenotes();
|
|
5023
|
+
await this.setsitenotes(notes.some((candidate) => candidate.id === note.id) ? notes.map((candidate) => candidate.id === note.id ? note : candidate) : [...notes, note]);
|
|
5024
|
+
}
|
|
5025
|
+
/** Removes one site note by its id. */
|
|
5026
|
+
async removesitenote(id) {
|
|
5027
|
+
await this.setsitenotes((await this.getsitenotes()).filter((note) => note.id !== id));
|
|
5028
|
+
}
|
|
5029
|
+
/** Expires the site notes past the user configured window; an absent window keeps every note. */
|
|
5030
|
+
async expiresitenotes(retention, now) {
|
|
5031
|
+
if (retention === void 0) return await this.getsitenotes();
|
|
5032
|
+
const kept = (await this.getsitenotes()).filter((note) => now - note.updatedat < retention);
|
|
5033
|
+
await this.setsitenotes(kept);
|
|
5034
|
+
return kept;
|
|
5035
|
+
}
|
|
5036
|
+
/** Replaces the stored scratchpad entries per task. */
|
|
5037
|
+
async setscratchpad(entries) {
|
|
5038
|
+
return this.adapter.set("scratchpad", entries);
|
|
5039
|
+
}
|
|
5040
|
+
/** Returns every stored scratchpad entry, newest first. */
|
|
5041
|
+
async getscratchpadall() {
|
|
5042
|
+
return await this.adapter.get("scratchpad") ?? [];
|
|
5043
|
+
}
|
|
5044
|
+
/** Appends one scratchpad entry: the pad stays append only so no later write rewrites an earlier entry. */
|
|
5045
|
+
async appendscratchentry(entry) {
|
|
5046
|
+
await this.setscratchpad([entry, ...await this.getscratchpadall()]);
|
|
5047
|
+
}
|
|
5048
|
+
/** Reads the scratchpad of one task session, newest first; entries of another task never cross the boundary. */
|
|
5049
|
+
async readscratchpad(taskid, sessionid) {
|
|
5050
|
+
return (await this.getscratchpadall()).filter((entry) => entry.taskid === taskid && entry.sessionid === sessionid);
|
|
5051
|
+
}
|
|
5052
|
+
/** Prunes the scratchpad entries past the user configured window; an absent window keeps every entry. */
|
|
5053
|
+
async prunescratchentries(window, now) {
|
|
5054
|
+
if (window === void 0) return await this.getscratchpadall();
|
|
5055
|
+
const kept = (await this.getscratchpadall()).filter((entry) => now - entry.at < window);
|
|
5056
|
+
await this.setscratchpad(kept);
|
|
5057
|
+
return kept;
|
|
5058
|
+
}
|
|
5059
|
+
/** Stores one distilled run summary of a completed run. */
|
|
5060
|
+
async setrunsummary(summary) {
|
|
5061
|
+
return this.adapter.set(`runsummary:${summary.runid}`, summary);
|
|
5062
|
+
}
|
|
5063
|
+
/** Returns the stored run summary of one run; an absent summary returns undefined. */
|
|
5064
|
+
async getrunsummary(runid) {
|
|
5065
|
+
return this.adapter.get(`runsummary:${runid}`);
|
|
5066
|
+
}
|
|
5067
|
+
/** Lists the stored run summaries, oldest distillation first, optionally filtered by origin. */
|
|
5068
|
+
async listrunsummaries(origin) {
|
|
5069
|
+
const index = await this.adapter.get("runsummaryindex") ?? [];
|
|
5070
|
+
const summaries = [];
|
|
5071
|
+
for (const runid of index) {
|
|
5072
|
+
const summary = await this.getrunsummary(runid);
|
|
5073
|
+
if (summary) summaries.push(summary);
|
|
5074
|
+
}
|
|
5075
|
+
const filtered = origin === void 0 ? summaries : summaries.filter((summary) => summary.origins.includes(origin));
|
|
5076
|
+
return filtered.sort((one, two) => one.distilledat - two.distilledat);
|
|
5077
|
+
}
|
|
5078
|
+
/** Tracks one run in the run summary index so the listing reads every stored summary. */
|
|
5079
|
+
async trackrunsummary(runid) {
|
|
5080
|
+
const index = await this.adapter.get("runsummaryindex") ?? [];
|
|
5081
|
+
if (!index.includes(runid)) await this.adapter.set("runsummaryindex", [...index, runid]);
|
|
5082
|
+
}
|
|
5083
|
+
/** Expires the run summaries past the user configured window; an absent window keeps every summary. */
|
|
5084
|
+
async expirerunsummaries(retention, now) {
|
|
5085
|
+
const summaries = await this.listrunsummaries();
|
|
5086
|
+
if (retention === void 0) return summaries;
|
|
5087
|
+
const kept = [];
|
|
5088
|
+
for (const summary of summaries) {
|
|
5089
|
+
if (now - summary.distilledat > retention) await this.adapter.set(`runsummary:${summary.runid}`, { ...summary, steps: [], kinds: [], origins: summary.origins });
|
|
5090
|
+
else kept.push(summary);
|
|
5091
|
+
}
|
|
5092
|
+
return kept;
|
|
5093
|
+
}
|
|
5094
|
+
/** Replaces the semantic recall index with its fingerprint deduplicated entries. */
|
|
5095
|
+
async setrecallindex(index) {
|
|
5096
|
+
return this.adapter.set("recallindex", index);
|
|
5097
|
+
}
|
|
5098
|
+
/** Returns the stored semantic recall index entries, newest first. */
|
|
5099
|
+
async getrecallindex() {
|
|
5100
|
+
return await this.adapter.get("recallindex") ?? [];
|
|
5101
|
+
}
|
|
5102
|
+
/** Adds one recall index entry with fingerprint deduplication: a repeated extraction keeps its first entry. */
|
|
5103
|
+
async addrecallentry(entry) {
|
|
5104
|
+
const index = await this.getrecallindex();
|
|
5105
|
+
if (index.some((candidate) => candidate.fingerprint === entry.fingerprint && candidate.origin === entry.origin)) return;
|
|
5106
|
+
await this.setrecallindex([entry, ...index]);
|
|
5107
|
+
}
|
|
5108
|
+
/** Answers one semantic recall query across the extraction stores: the local index ranks by text similarity inside the run scope and returns the provenance of every match. */
|
|
5109
|
+
async semanticrecall(query, scope, rank) {
|
|
5110
|
+
return rank(await this.getrecallindex(), query, scope);
|
|
5111
|
+
}
|
|
5112
|
+
/** Expires the recall index entries past the user configured window; the extraction records themselves stay for the audit trail. */
|
|
5113
|
+
async expirerecallentries(window, now) {
|
|
5114
|
+
if (window === void 0) return await this.getrecallindex();
|
|
5115
|
+
const kept = (await this.getrecallindex()).filter((entry) => now - entry.at < window);
|
|
5116
|
+
await this.setrecallindex(kept);
|
|
5117
|
+
return kept;
|
|
5118
|
+
}
|
|
5119
|
+
/** Replaces the stored correction memory entries per origin and kind. */
|
|
5120
|
+
async setcorrections(corrections) {
|
|
5121
|
+
return this.adapter.set("corrections", corrections);
|
|
5122
|
+
}
|
|
5123
|
+
/** Returns the stored correction memory entries, newest first, optionally filtered by origin and kind. */
|
|
5124
|
+
async getcorrections(filter) {
|
|
5125
|
+
const entries = await this.adapter.get("corrections") ?? [];
|
|
5126
|
+
return entries.filter((entry) => (filter?.origin === void 0 || entry.origin === filter.origin) && (filter?.kind === void 0 || entry.kind === filter.kind));
|
|
5127
|
+
}
|
|
5128
|
+
/** Records one correction memory entry captured from a plan review edit or rejection. */
|
|
5129
|
+
async addcorrection(entry) {
|
|
5130
|
+
await this.setcorrections([entry, ...await this.adapter.get("corrections") ?? []]);
|
|
5131
|
+
}
|
|
5132
|
+
/** Expires the correction memory entries past the user configured window; an absent window keeps every correction. */
|
|
5133
|
+
async expirecorrectionentries(window, now) {
|
|
5134
|
+
if (window === void 0) return await this.getcorrections();
|
|
5135
|
+
const kept = (await this.getcorrections()).filter((entry) => now - entry.at < window);
|
|
5136
|
+
await this.setcorrections(kept);
|
|
5137
|
+
return kept;
|
|
5138
|
+
}
|
|
5139
|
+
/** Replaces the stored consent memory entries per origin. */
|
|
5140
|
+
async setconsentmemory(entries) {
|
|
5141
|
+
return this.adapter.set("consentmemory", entries);
|
|
5142
|
+
}
|
|
5143
|
+
/** Returns the stored consent memory entries, newest first, optionally filtered by origin. */
|
|
5144
|
+
async getconsentmemory(origin) {
|
|
5145
|
+
const entries = await this.adapter.get("consentmemory") ?? [];
|
|
5146
|
+
return origin === void 0 ? entries : entries.filter((entry) => entry.origin === origin);
|
|
5147
|
+
}
|
|
5148
|
+
/** Records one consent memory entry per origin: every grant, denial, expiry and revocation lands with its boundary and kinds. */
|
|
5149
|
+
async addconsentmemoryentry(entry) {
|
|
5150
|
+
await this.setconsentmemory([entry, ...await this.adapter.get("consentmemory") ?? []]);
|
|
5151
|
+
}
|
|
5152
|
+
/** Replaces the stored error surface payloads of failed steps. */
|
|
5153
|
+
async seterrorsurfaces(surfaces) {
|
|
5154
|
+
return this.adapter.set("errorsurfaces", surfaces);
|
|
5155
|
+
}
|
|
5156
|
+
/** Returns the stored error surface payloads, newest first, optionally filtered by step. */
|
|
5157
|
+
async geterrorsurfaces(stepid) {
|
|
5158
|
+
const surfaces = await this.adapter.get("errorsurfaces") ?? [];
|
|
5159
|
+
return stepid === void 0 ? surfaces : surfaces.filter((surface) => surface.stepid === stepid);
|
|
5160
|
+
}
|
|
5161
|
+
/** Records one error surface payload of a failed step with its retry hint and the policy verdict. */
|
|
5162
|
+
async adderrorsurface(surface) {
|
|
5163
|
+
await this.seterrorsurfaces([surface, ...await this.adapter.get("errorsurfaces") ?? []].slice(0, 500));
|
|
5164
|
+
}
|
|
5165
|
+
/** Replaces the incremental history search corpus of session metadata, notes and run summaries. */
|
|
5166
|
+
async sethistoryindex(corpus) {
|
|
5167
|
+
return this.adapter.set("historyindex", corpus);
|
|
5168
|
+
}
|
|
5169
|
+
/** Returns the incremental history search corpus, newest entry first. */
|
|
5170
|
+
async gethistoryindex() {
|
|
5171
|
+
return await this.adapter.get("historyindex") ?? [];
|
|
5172
|
+
}
|
|
5173
|
+
/** Adds one corpus entry to the incremental history index on each store write. */
|
|
5174
|
+
async addhistoryentry(entry) {
|
|
5175
|
+
const corpus = await this.gethistoryindex();
|
|
5176
|
+
await this.sethistoryindex([entry, ...corpus.filter((candidate) => !(candidate.source === entry.source && candidate.id === entry.id))]);
|
|
5177
|
+
}
|
|
5178
|
+
/** Answers one history search query against the incremental corpus with the matched terms highlighted. */
|
|
5179
|
+
async historysearch(query, search) {
|
|
5180
|
+
return search(await this.gethistoryindex(), query);
|
|
5181
|
+
}
|
|
5182
|
+
/** Stores one per tab session reference so parallel tabs never collide inside the session stores. */
|
|
5183
|
+
async settabsession(ref) {
|
|
5184
|
+
return this.adapter.set(`tabsession:${ref.tabid}`, ref);
|
|
5185
|
+
}
|
|
5186
|
+
/** Returns the per tab session reference of one tab; an absent reference returns undefined. */
|
|
5187
|
+
async gettabsession(tabid) {
|
|
5188
|
+
return this.adapter.get(`tabsession:${tabid}`);
|
|
5189
|
+
}
|
|
5190
|
+
/** Lists every per tab session reference so the sessiongrid reads the per tab lock state of concurrent sessions. */
|
|
5191
|
+
async listtabsessions() {
|
|
5192
|
+
const tabs = await this.adapter.get("tabsessionindex") ?? [];
|
|
5193
|
+
const refs = [];
|
|
5194
|
+
for (const tabid of tabs) {
|
|
5195
|
+
const ref = await this.gettabsession(tabid);
|
|
5196
|
+
if (ref) refs.push(ref);
|
|
5197
|
+
}
|
|
5198
|
+
return refs;
|
|
5199
|
+
}
|
|
5200
|
+
/** Tracks one tab in the per tab session index so the listing reads every isolated reference. */
|
|
5201
|
+
async tracktabsession(tabid) {
|
|
5202
|
+
const tabs = await this.adapter.get("tabsessionindex") ?? [];
|
|
5203
|
+
if (!tabs.includes(tabid)) await this.adapter.set("tabsessionindex", [...tabs, tabid]);
|
|
5204
|
+
}
|
|
5205
|
+
/** Exports the site notes, the run summaries and the correction memory as one audit bundle: sensitive note bodies stay sealed in the export. */
|
|
5206
|
+
async exportsessionbundle(exportedat) {
|
|
5207
|
+
return { kind: "sessionbundle", notes: await this.getsitenotes(), summaries: await this.listrunsummaries(), corrections: await this.getcorrections(), exportedat };
|
|
5208
|
+
}
|
|
5003
5209
|
};
|
|
5004
5210
|
function mediakindof(record2) {
|
|
5005
5211
|
if ("pages" in record2) return "pdf";
|
|
@@ -5996,6 +6202,11 @@ function isolatedinjection(step) {
|
|
|
5996
6202
|
}
|
|
5997
6203
|
return { world: "ISOLATED", code: step.value, args };
|
|
5998
6204
|
}
|
|
6205
|
+
var runsummarytask = "runsummary";
|
|
6206
|
+
function summaryrequestof(input) {
|
|
6207
|
+
if (input.payload.trim() === "") throw new Error("The runsummary request needs its payload reference.");
|
|
6208
|
+
return { id: input.id, runid: input.runid, stepid: input.sessionid, task: runsummarytask, payload: input.payload, transferables: [], sentat: input.sentat };
|
|
6209
|
+
}
|
|
5999
6210
|
|
|
6000
6211
|
// httpclient.ts
|
|
6001
6212
|
var httpkinds = ["fetchurl", "parsejson", "parsehtml", "callrest", "callgraphql"];
|
|
@@ -11095,6 +11306,50 @@ function untrustedrendergate(input) {
|
|
|
11095
11306
|
if (input.environment === "sandboxframe") return { allowed: true, reason: "The extracted markup renders inside the sandboxframe under its nonce with scripts and handlers stripped; the untrusted content never reenters the page context." };
|
|
11096
11307
|
return { allowed: false, reason: `The extracted markup grades untrusted and refuses to render inside the ${input.environment}; every untrusted render routes through the sandboxframe.` };
|
|
11097
11308
|
}
|
|
11309
|
+
function sitenotesreadgate(input) {
|
|
11310
|
+
if (input.grants.includes(input.origin)) return { allowed: true, reason: `The session granted ${input.origin}, so the site notes of the origin read.` };
|
|
11311
|
+
return { allowed: false, reason: `The session never granted ${input.origin}; the site notes of the origin refuse the read.` };
|
|
11312
|
+
}
|
|
11313
|
+
function sitenoteswritegate(input) {
|
|
11314
|
+
if (!input.consent) return { allowed: false, reason: `The site note write for ${input.origin} needs the explicit consent of the user; no note lands without a reviewed write.` };
|
|
11315
|
+
return { allowed: true, reason: `The user consented to the site note write for ${input.origin}; the note keeps its author provenance and its timestamps.` };
|
|
11316
|
+
}
|
|
11317
|
+
function scratchpadscopegate(input) {
|
|
11318
|
+
if (input.taskid !== input.entrytaskid || input.sessionid !== input.entrysessionid) return { allowed: false, reason: `The scratchpad entry belongs to the task ${input.entrytaskid} of the session ${input.entrysessionid}; the task ${input.taskid} of the session ${input.sessionid} never crosses that boundary.` };
|
|
11319
|
+
return { allowed: true, reason: `The scratchpad entry belongs to the task ${input.taskid} of the session ${input.sessionid} that asks for it.` };
|
|
11320
|
+
}
|
|
11321
|
+
function memoryreadscopegate(input) {
|
|
11322
|
+
if (input.phase === "planning" || input.phase === "prompting") return { allowed: true, reason: `The ${input.phase} phase reads the correction and consent memory so the proposal and the prompt carry the prior decisions.` };
|
|
11323
|
+
return { allowed: false, reason: `The ${input.phase} phase reads no correction or consent memory; the history serves the planning and the prompting alone.` };
|
|
11324
|
+
}
|
|
11325
|
+
function semanticrecallscopegate(input) {
|
|
11326
|
+
if (input.origin === void 0) return { allowed: true, reason: `The recall query names no origin, so it ranks the ${input.scope.length} origin${input.scope.length === 1 ? "" : "s"} of the run scope only.` };
|
|
11327
|
+
if (!input.scope.includes(input.origin)) return { allowed: false, reason: `The recall query asks for ${input.origin} while the run scope holds ${input.scope.length > 0 ? input.scope.join(", ") : "no origin"}; a recall across origins outside the run scope refuses.` };
|
|
11328
|
+
return { allowed: true, reason: `The recall query asks for ${input.origin} inside the run scope; the ranking stays scoped.` };
|
|
11329
|
+
}
|
|
11330
|
+
function summarywindowvalid(window) {
|
|
11331
|
+
if (window === void 0) return { allowed: true, reason: "No runsummary window is configured, so the distillation keeps every step with no fixed cap." };
|
|
11332
|
+
if (!Number.isInteger(window) || window < 0) return { allowed: false, reason: "The runsummary window stays a whole number of steps the user chose; no engine cap exists." };
|
|
11333
|
+
return { allowed: true, reason: `The runsummary window of ${window} step${window === 1 ? "" : "s"} stays the user configured choice; no engine cap exists.` };
|
|
11334
|
+
}
|
|
11335
|
+
function sessionretentionvalid(window) {
|
|
11336
|
+
if (window === void 0) return { allowed: true, reason: "No retention window is configured, so the session store keeps every record forever." };
|
|
11337
|
+
if (!Number.isFinite(window) || window <= 0) return { allowed: false, reason: "The retention window stays a positive user value in milliseconds; no engine boundary expires a record." };
|
|
11338
|
+
return { allowed: true, reason: `The retention window of ${window} milliseconds stays the user configured choice.` };
|
|
11339
|
+
}
|
|
11340
|
+
function consentmemoryadvisorygate(input) {
|
|
11341
|
+
if (input.auto) return { allowed: false, reason: `The consent memory never auto grants: the prior decisions of ${input.latest?.origin ?? "the origin"} stay advisory and every grant needs its own prompt.` };
|
|
11342
|
+
if (input.latest !== void 0 && input.latest.decision === "deny") return { allowed: true, reason: `The consent memory holds a prior denial for ${input.latest.origin} with the same weight as a grant; the prompt shows the refusal and the user decides again.` };
|
|
11343
|
+
return { allowed: true, reason: "The consent memory stays advisory; the prompt opens with the prior decisions and the user decides." };
|
|
11344
|
+
}
|
|
11345
|
+
function cancelrungate(input) {
|
|
11346
|
+
if (input.rollbackscope === "none") return { allowed: true, reason: `The cancelrun stops the run with no rollback; the ${input.queuedstepids.length} queued step${input.queuedstepids.length === 1 ? "" : "s"} stay as the run left them and the ${input.executedstepids.length} executed step${input.executedstepids.length === 1 ? "" : "s"} stay in the sealed log.` };
|
|
11347
|
+
return { allowed: true, reason: `The cancelrun rolls the ${input.queuedstepids.length} queued step${input.queuedstepids.length === 1 ? "" : "s"} back${input.queuedstepids.length > 0 ? ` (${input.queuedstepids.join(", ")})` : ""} while the ${input.executedstepids.length} executed step${input.executedstepids.length === 1 ? "" : "s"} stay untouched in the sealed log.` };
|
|
11348
|
+
}
|
|
11349
|
+
function retrydispatchgate(input) {
|
|
11350
|
+
if (!input.reviewed) return { allowed: false, reason: `The retry of the step ${input.stepid} passes only through a new reviewed dispatch; an automatic retry never bypasses the review.` };
|
|
11351
|
+
return { allowed: true, reason: `The retry of the step ${input.stepid} dispatches again through the full consent gate chain: the session, the plan and the origin gates all recheck the step.` };
|
|
11352
|
+
}
|
|
11098
11353
|
|
|
11099
11354
|
// llm.ts
|
|
11100
11355
|
var defaultrefusalmarkers = ["i cannot", "i can't", "i'm unable", "refusal:", "cannot comply"];
|
|
@@ -11455,7 +11710,7 @@ function budgetcheck(input) {
|
|
|
11455
11710
|
}
|
|
11456
11711
|
|
|
11457
11712
|
// version.ts
|
|
11458
|
-
var packageversion = "1.1.
|
|
11713
|
+
var packageversion = "1.1.63";
|
|
11459
11714
|
|
|
11460
11715
|
// types.ts
|
|
11461
11716
|
var protocolversion = packageversion;
|
|
@@ -12554,6 +12809,253 @@ function vaultprompttext(entry, origin) {
|
|
|
12554
12809
|
return `Use the credential ${entry.label} of ${entry.scope} on ${origin}? The value stays behind the vault and no surface ever displays it.`;
|
|
12555
12810
|
}
|
|
12556
12811
|
|
|
12812
|
+
// sessioninterface.ts
|
|
12813
|
+
function textfingerprint(text2) {
|
|
12814
|
+
let hash = 2166136261;
|
|
12815
|
+
for (let index = 0; index < text2.length; index += 1) {
|
|
12816
|
+
hash ^= text2.charCodeAt(index);
|
|
12817
|
+
hash = Math.imul(hash, 16777619) >>> 0;
|
|
12818
|
+
}
|
|
12819
|
+
return hash.toString(16).padStart(8, "0");
|
|
12820
|
+
}
|
|
12821
|
+
function keystreambyte(id, position) {
|
|
12822
|
+
let hash = 2166136261;
|
|
12823
|
+
const source = `${id}:${position}`;
|
|
12824
|
+
for (let index = 0; index < source.length; index += 1) {
|
|
12825
|
+
hash ^= source.charCodeAt(index);
|
|
12826
|
+
hash = Math.imul(hash, 16777619) >>> 0;
|
|
12827
|
+
}
|
|
12828
|
+
return hash & 255;
|
|
12829
|
+
}
|
|
12830
|
+
function sealnotebody(id, body) {
|
|
12831
|
+
const sealed = Array.from(body, (character, index) => String.fromCharCode(character.charCodeAt(0) ^ keystreambyte(id, index))).join("");
|
|
12832
|
+
return `sealed:${btoa(sealed)}`;
|
|
12833
|
+
}
|
|
12834
|
+
function opennotebody(id, sealedbody) {
|
|
12835
|
+
if (!sealedbody.startsWith("sealed:")) return "";
|
|
12836
|
+
try {
|
|
12837
|
+
const sealed = atob(sealedbody.slice("sealed:".length));
|
|
12838
|
+
return Array.from(sealed, (character, index) => String.fromCharCode(character.charCodeAt(0) ^ keystreambyte(id, index))).join("");
|
|
12839
|
+
} catch {
|
|
12840
|
+
return "";
|
|
12841
|
+
}
|
|
12842
|
+
}
|
|
12843
|
+
function sitenoteof(input) {
|
|
12844
|
+
if (input.origin.trim() === "") throw new Error("The site note needs its origin.");
|
|
12845
|
+
if (input.title.trim() === "") throw new Error("The site note needs its title.");
|
|
12846
|
+
if (input.body.trim() === "") throw new Error("The site note needs its body.");
|
|
12847
|
+
const id = input.id ?? randomid();
|
|
12848
|
+
if (input.sensitive === true) return { id, origin: input.origin, title: input.title.trim(), sealedbody: sealnotebody(id, input.body), author: input.author, sensitive: true, createdat: input.now, updatedat: input.now };
|
|
12849
|
+
return { id, origin: input.origin, title: input.title.trim(), body: input.body, author: input.author, sensitive: false, createdat: input.now, updatedat: input.now };
|
|
12850
|
+
}
|
|
12851
|
+
function notebodyof(note) {
|
|
12852
|
+
if (note.sensitive) return note.sealedbody !== void 0 ? opennotebody(note.id, note.sealedbody) : "";
|
|
12853
|
+
return note.body ?? "";
|
|
12854
|
+
}
|
|
12855
|
+
function editnote(note, input) {
|
|
12856
|
+
if (input.title.trim() === "") throw new Error("The site note keeps a non empty title.");
|
|
12857
|
+
if (input.body.trim() === "") throw new Error("The site note keeps a non empty body.");
|
|
12858
|
+
if (note.sensitive) return { ...note, title: input.title.trim(), sealedbody: sealnotebody(note.id, input.body), updatedat: input.now, author: input.author };
|
|
12859
|
+
return { ...note, title: input.title.trim(), body: input.body, updatedat: input.now, author: input.author };
|
|
12860
|
+
}
|
|
12861
|
+
function expirnotes(notes, retention, now) {
|
|
12862
|
+
if (retention === void 0) return notes;
|
|
12863
|
+
return notes.filter((note) => now - note.updatedat < retention);
|
|
12864
|
+
}
|
|
12865
|
+
function scratchentryof(input) {
|
|
12866
|
+
if (input.taskid.trim() === "") throw new Error("The scratchpad entry needs its task.");
|
|
12867
|
+
if (input.text.trim() === "") throw new Error("The scratchpad entry needs its text.");
|
|
12868
|
+
return { id: input.id ?? randomid(), taskid: input.taskid, sessionid: input.sessionid, text: input.text, ...input.stepid !== void 0 && input.stepid.trim() !== "" ? { stepid: input.stepid } : {}, author: input.author, at: input.now };
|
|
12869
|
+
}
|
|
12870
|
+
function scratchpadof(entries, taskid, sessionid) {
|
|
12871
|
+
return entries.filter((entry) => entry.taskid === taskid && entry.sessionid === sessionid);
|
|
12872
|
+
}
|
|
12873
|
+
function prunescratchpad(entries, window, now) {
|
|
12874
|
+
if (window === void 0) return entries;
|
|
12875
|
+
return entries.filter((entry) => now - entry.at < window);
|
|
12876
|
+
}
|
|
12877
|
+
function distillrunsummary(input) {
|
|
12878
|
+
const steps = input.outcomes.map((outcome) => {
|
|
12879
|
+
const step = input.plan.steps.find((candidate) => candidate.id === outcome.stepid);
|
|
12880
|
+
return { stepid: outcome.stepid, kind: step?.kind ?? "unknown", ok: outcome.ok, summary: outcome.summary };
|
|
12881
|
+
});
|
|
12882
|
+
const windowed = input.window !== void 0 && Number.isInteger(input.window) && input.window >= 0 ? steps.slice(Math.max(0, steps.length - input.window)) : steps;
|
|
12883
|
+
const kinds = [...new Set(windowed.map((step) => step.kind))];
|
|
12884
|
+
return { runid: input.plan.id, sessionid: input.sessionid, origins: [...new Set(input.origins)], kinds, steps: windowed, ...input.window !== void 0 && Number.isInteger(input.window) && input.window >= 0 ? { window: input.window } : {}, task: "runsummary", provenance: input.provenance, distilledat: input.now };
|
|
12885
|
+
}
|
|
12886
|
+
function summaryhistoryentry(summary) {
|
|
12887
|
+
return { source: "summary", id: summary.runid, title: `Run summary of ${summary.runid}`, text: `${summary.origins.join(" ")} ${summary.kinds.join(" ")} ${summary.steps.map((step) => step.summary).join(" ")}`, outcome: summary.steps.every((step) => step.ok) ? "completed" : "failed", at: summary.distilledat };
|
|
12888
|
+
}
|
|
12889
|
+
function notehistoryentry(note) {
|
|
12890
|
+
return { source: "note", id: note.id, ...note.origin !== "" ? { origin: note.origin } : {}, title: note.title, text: note.sensitive ? note.title : `${note.title} ${note.body ?? ""}`, at: note.updatedat };
|
|
12891
|
+
}
|
|
12892
|
+
function recallentryof(input) {
|
|
12893
|
+
if (input.text.trim() === "") throw new Error("The recall index entry needs its text.");
|
|
12894
|
+
if (input.stepid.trim() === "" || input.runid.trim() === "") throw new Error("The recall index entry needs its run and step provenance.");
|
|
12895
|
+
const normalized = input.text.trim().replace(/\s+/g, " ");
|
|
12896
|
+
return { fingerprint: textfingerprint(normalized), origin: input.origin, runid: input.runid, stepid: input.stepid, text: normalized, at: input.at };
|
|
12897
|
+
}
|
|
12898
|
+
function addrecallentry(index, entry) {
|
|
12899
|
+
if (index.some((candidate) => candidate.fingerprint === entry.fingerprint && candidate.origin === entry.origin)) return index;
|
|
12900
|
+
return [...index, entry];
|
|
12901
|
+
}
|
|
12902
|
+
function termsof(text2) {
|
|
12903
|
+
return new Set(text2.toLowerCase().split(/[^a-z0-9]+/).filter((term) => term.length > 1));
|
|
12904
|
+
}
|
|
12905
|
+
function rankrecall(index, query, scope) {
|
|
12906
|
+
if (query.text.trim() === "") return [];
|
|
12907
|
+
const terms = termsof(query.text);
|
|
12908
|
+
const scoped = query.origin !== void 0 && query.origin.trim() !== "" ? [query.origin] : scope.origins;
|
|
12909
|
+
const matches = [];
|
|
12910
|
+
for (const entry of index) {
|
|
12911
|
+
if (!scoped.includes(entry.origin)) continue;
|
|
12912
|
+
const entryterms = termsof(entry.text);
|
|
12913
|
+
let shared = 0;
|
|
12914
|
+
for (const term of terms) if (entryterms.has(term)) shared += 1;
|
|
12915
|
+
const union = (/* @__PURE__ */ new Set([...terms, ...entryterms])).size;
|
|
12916
|
+
const score = union === 0 ? 0 : shared / union;
|
|
12917
|
+
if (score <= 0) continue;
|
|
12918
|
+
matches.push({ entry, score, reason: `The extraction of ${entry.origin} shares ${shared} term${shared === 1 ? "" : "s"} with the query at the score ${score.toFixed(3)}; the match carries the run ${entry.runid} and the step ${entry.stepid}.` });
|
|
12919
|
+
}
|
|
12920
|
+
const ranked = matches.sort((one, two) => two.score - one.score);
|
|
12921
|
+
return query.limit !== void 0 && Number.isInteger(query.limit) && query.limit >= 0 ? ranked.slice(0, query.limit) : ranked;
|
|
12922
|
+
}
|
|
12923
|
+
function expirerecallindex(index, window, now) {
|
|
12924
|
+
if (window === void 0) return index;
|
|
12925
|
+
return index.filter((entry) => now - entry.at < window);
|
|
12926
|
+
}
|
|
12927
|
+
function editedcorrectionof(input) {
|
|
12928
|
+
if (input.stepid.trim() === "" || input.kind.trim() === "") throw new Error("The correction needs its step and kind.");
|
|
12929
|
+
if (input.original === input.corrected) throw new Error("The correction needs a changed step shape.");
|
|
12930
|
+
return { id: input.id ?? randomid(), origin: input.origin, kind: input.kind, stepid: input.stepid, source: "edited", original: input.original, corrected: input.corrected, reason: input.reason, at: input.now };
|
|
12931
|
+
}
|
|
12932
|
+
function rejectedcorrectionof(input) {
|
|
12933
|
+
if (input.stepid.trim() === "" || input.reason.trim() === "") throw new Error("The rejected correction needs its step and its rejection reason.");
|
|
12934
|
+
return { id: input.id ?? randomid(), origin: input.origin, kind: input.kind, stepid: input.stepid, source: "rejected", original: input.original, reason: input.reason, at: input.now };
|
|
12935
|
+
}
|
|
12936
|
+
function matchingcorrections(corrections, proposal) {
|
|
12937
|
+
return corrections.filter((entry) => entry.origin === proposal.origin && entry.kind === proposal.kind);
|
|
12938
|
+
}
|
|
12939
|
+
function expirecorrections(corrections, window, now) {
|
|
12940
|
+
if (window === void 0) return corrections;
|
|
12941
|
+
return corrections.filter((entry) => now - entry.at < window);
|
|
12942
|
+
}
|
|
12943
|
+
function consentmemoryof(input) {
|
|
12944
|
+
if (input.origin.trim() === "") throw new Error("The consent memory entry needs its origin.");
|
|
12945
|
+
if (input.boundary.trim() === "") throw new Error("The consent memory entry needs the boundary the prompt named.");
|
|
12946
|
+
return { id: input.id ?? randomid(), origin: input.origin, decision: input.decision, boundary: input.boundary, kinds: [...new Set(input.kinds)], at: input.now, ...input.expiresat !== void 0 ? { expiresat: input.expiresat } : {} };
|
|
12947
|
+
}
|
|
12948
|
+
function consentadvisory(entries, origin, now) {
|
|
12949
|
+
return entries.filter((entry) => entry.origin === origin && (entry.expiresat === void 0 || entry.expiresat > now));
|
|
12950
|
+
}
|
|
12951
|
+
function consentadvisoryverdict(entries, origin, kind) {
|
|
12952
|
+
const matching = entries.filter((entry) => entry.origin === origin && entry.kinds.includes(kind));
|
|
12953
|
+
const latest = matching[matching.length - 1];
|
|
12954
|
+
if (latest === void 0) return { advisory: false, reason: `No prior decision exists for the ${kind} kind on ${origin}; the prompt opens fresh.` };
|
|
12955
|
+
if (latest.decision === "deny") return { advisory: true, reason: `The consent memory holds a prior denial of the ${kind} kind on ${origin} from ${new Date(latest.at).toISOString()}; the denial carries the same weight as a grant and the record stays advisory only.` };
|
|
12956
|
+
return { advisory: true, reason: `The consent memory holds a prior ${latest.decision} of the ${kind} kind on ${origin} with the boundary ${latest.boundary}; the record advises the new prompt and never auto grants.` };
|
|
12957
|
+
}
|
|
12958
|
+
function rollbacksplit(plan, progress) {
|
|
12959
|
+
const executed = progress && progress.planid === plan?.id ? progress.completedsteps : [];
|
|
12960
|
+
const executedset = new Set(executed);
|
|
12961
|
+
const queued = (plan?.steps ?? []).map((step) => step.id).filter((id) => !executedset.has(id));
|
|
12962
|
+
return { executedstepids: executed, queuedstepids: queued };
|
|
12963
|
+
}
|
|
12964
|
+
function rollbackof(plan, progress, preference) {
|
|
12965
|
+
const split = rollbacksplit(plan, progress);
|
|
12966
|
+
if (preference === "none") return { scope: "none", label: `Stop the run ${plan?.id ?? ""} without a rollback; the ${split.queuedstepids.length} queued step${split.queuedstepids.length === 1 ? "" : "s"} stay as the run left them.`, queuedstepids: split.queuedstepids };
|
|
12967
|
+
return { scope: "queued", label: `Cancel the run ${plan?.id ?? ""} and roll its ${split.queuedstepids.length} queued step${split.queuedstepids.length === 1 ? "" : "s"} back${split.queuedstepids.length > 0 ? ` (${split.queuedstepids.join(", ")})` : ""} while the ${split.executedstepids.length} executed step${split.executedstepids.length === 1 ? "" : "s"} stay untouched in the sealed log.`, queuedstepids: split.queuedstepids };
|
|
12968
|
+
}
|
|
12969
|
+
function cancelrunactionof(input) {
|
|
12970
|
+
return { runid: input.runid, sessionid: input.sessionid, rollback: rollbackof(input.plan, input.progress, input.preference) };
|
|
12971
|
+
}
|
|
12972
|
+
function errorsurfaceof(input) {
|
|
12973
|
+
if (input.message.trim() === "") throw new Error("The error surface needs its message in plain language.");
|
|
12974
|
+
return { stepid: input.stepid, runid: input.runid, cause: input.cause, message: input.message, retry: { allowed: input.retryallowed, reason: input.retryreason }, context: input.context, at: input.now };
|
|
12975
|
+
}
|
|
12976
|
+
function classifyfailure(input) {
|
|
12977
|
+
if (input.gatewait) return "gate";
|
|
12978
|
+
if (input.policyrefused) return "policy";
|
|
12979
|
+
if (/\b(network|offline|timeout|timed out|fetch failed|socket|dns|connection)\b/i.test(input.message)) return "network";
|
|
12980
|
+
return "page";
|
|
12981
|
+
}
|
|
12982
|
+
function retryhintof(surface) {
|
|
12983
|
+
if (!surface.retry.allowed) return { allowed: false, reason: `The ${surface.cause} failure of the step ${surface.stepid} refuses the retry: ${surface.retry.reason}` };
|
|
12984
|
+
return { allowed: true, reason: `The ${surface.cause} failure of the step ${surface.stepid} may retry through a new reviewed dispatch; the retry rides the full consent gate chain and never bypasses the review.` };
|
|
12985
|
+
}
|
|
12986
|
+
function sessiongridrows(input) {
|
|
12987
|
+
const rows = [];
|
|
12988
|
+
if (input.session && input.plan && ["pending", "approved"].includes(input.plan.state)) {
|
|
12989
|
+
const split = rollbacksplit(input.plan, input.progress);
|
|
12990
|
+
const held = input.locks.some((lock) => lock.runid === input.plan?.id);
|
|
12991
|
+
const origins = [.../* @__PURE__ */ new Set([input.session.origin, ...input.session.grants ?? []])];
|
|
12992
|
+
const actions = ["cancelrun"];
|
|
12993
|
+
if (input.session.pausedat !== void 0) actions.push("resume");
|
|
12994
|
+
rows.push({ sessionid: input.session.id, runid: input.plan.id, origins, state: "live", outcome: `${split.executedstepids.length} of ${input.plan.steps.length} reviewed steps executed`, steps: input.plan.steps.length, completed: split.executedstepids.length, lock: held ? "held" : "free", tabid: input.session.tabid, updatedat: input.plan.createdat, actions });
|
|
12995
|
+
}
|
|
12996
|
+
for (const log of input.logs) {
|
|
12997
|
+
const summary = input.summaries.find((candidate) => candidate.runid === log.runid);
|
|
12998
|
+
const tabsession = input.tabsessions.find((candidate) => candidate.runid === log.runid);
|
|
12999
|
+
const held = input.locks.some((lock) => lock.runid === log.runid);
|
|
13000
|
+
rows.push({ sessionid: log.sessionid, runid: log.runid, origins: [...new Set(log.entries.map((entry) => entry.origin).filter((origin) => origin !== ""))], state: "saved", outcome: summary !== void 0 ? summary.steps.every((step) => step.ok) ? "completed" : "failed" : log.seal !== void 0 ? "sealed" : "open", steps: summary?.steps.length ?? log.entries.filter((entry) => entry.kind === "step").length, completed: summary?.steps.filter((step) => step.ok).length ?? log.entries.filter((entry) => entry.kind === "step").length, lock: held ? "held" : "free", ...log.seal !== void 0 ? { sealhash: log.seal.sealhash.current } : {}, ...tabsession !== void 0 ? { tabid: tabsession.tabid } : {}, updatedat: log.updatedat, actions: ["reopen"] });
|
|
13001
|
+
}
|
|
13002
|
+
return rows.sort((one, two) => two.updatedat - one.updatedat);
|
|
13003
|
+
}
|
|
13004
|
+
function historyqueryof(value) {
|
|
13005
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return void 0;
|
|
13006
|
+
const candidate = value;
|
|
13007
|
+
if (typeof candidate.text !== "string" || candidate.text.trim() === "") return void 0;
|
|
13008
|
+
const origin = typeof candidate.origin === "string" && candidate.origin.trim() !== "" ? candidate.origin.trim() : void 0;
|
|
13009
|
+
const from = typeof candidate.from === "number" && Number.isFinite(candidate.from) ? candidate.from : void 0;
|
|
13010
|
+
const to = typeof candidate.to === "number" && Number.isFinite(candidate.to) ? candidate.to : void 0;
|
|
13011
|
+
if (from !== void 0 && to !== void 0 && from > to) return void 0;
|
|
13012
|
+
const outcome = typeof candidate.outcome === "string" && candidate.outcome.trim() !== "" ? candidate.outcome.trim() : void 0;
|
|
13013
|
+
return { text: candidate.text.trim(), ...origin !== void 0 ? { origin } : {}, ...from !== void 0 ? { from } : {}, ...to !== void 0 ? { to } : {}, ...outcome !== void 0 ? { outcome } : {} };
|
|
13014
|
+
}
|
|
13015
|
+
function addhistoryentry(corpus, entry) {
|
|
13016
|
+
return [entry, ...corpus.filter((candidate) => !(candidate.source === entry.source && candidate.id === entry.id))];
|
|
13017
|
+
}
|
|
13018
|
+
function highlightterms(text2, query) {
|
|
13019
|
+
const terms = query.toLowerCase().split(/[^a-z0-9]+/).filter((term) => term.length > 1);
|
|
13020
|
+
const lower = text2.toLowerCase();
|
|
13021
|
+
return [...new Set(terms.filter((term) => lower.includes(term)))];
|
|
13022
|
+
}
|
|
13023
|
+
function historysearch(corpus, query) {
|
|
13024
|
+
const terms = query.text.toLowerCase().split(/[^a-z0-9]+/).filter((term) => term.length > 1);
|
|
13025
|
+
const hits = [];
|
|
13026
|
+
for (const entry of corpus) {
|
|
13027
|
+
if (query.origin !== void 0 && entry.origin !== query.origin) continue;
|
|
13028
|
+
if (query.from !== void 0 && entry.at < query.from) continue;
|
|
13029
|
+
if (query.to !== void 0 && entry.at > query.to) continue;
|
|
13030
|
+
if (query.outcome !== void 0 && entry.outcome !== query.outcome) continue;
|
|
13031
|
+
const haystack = `${entry.title} ${entry.text}`.toLowerCase();
|
|
13032
|
+
const matched = terms.filter((term) => haystack.includes(term));
|
|
13033
|
+
if (matched.length === 0) continue;
|
|
13034
|
+
const position = haystack.indexOf(matched[0] ?? "");
|
|
13035
|
+
const start = Math.max(0, position - 40);
|
|
13036
|
+
const excerpt = `${start > 0 ? "\u2026" : ""}${`${entry.title} ${entry.text}`.slice(start, start + 160)}${start + 160 < `${entry.title} ${entry.text}`.length ? "\u2026" : ""}`;
|
|
13037
|
+
hits.push({ source: entry.source, id: entry.id, title: entry.title, excerpt, highlights: [...new Set(matched)], ...entry.origin !== void 0 ? { origin: entry.origin } : {}, ...entry.outcome !== void 0 ? { outcome: entry.outcome } : {}, at: entry.at });
|
|
13038
|
+
}
|
|
13039
|
+
return hits.sort((one, two) => two.at - one.at);
|
|
13040
|
+
}
|
|
13041
|
+
function emptystatemessage(surface, origin) {
|
|
13042
|
+
if (surface === "historysearch") return "No history matches yet; start with a first query such as an origin, a note title or a kind the runs executed.";
|
|
13043
|
+
if (surface === "sitenotes") return `No site note exists${origin !== void 0 ? ` for ${origin}` : ""} yet; write the first note with a title and a body and the note flow keeps it per origin with its author provenance.`;
|
|
13044
|
+
if (surface === "scratchpad") return "The scratchpad holds no entry yet; the agent appends its per task notes here while the reviewed steps run, and every entry carries its step provenance.";
|
|
13045
|
+
return "No session exists yet; start the first run by describing an objective and reviewing the plan the agent proposes.";
|
|
13046
|
+
}
|
|
13047
|
+
function tabsessionkey(tabid) {
|
|
13048
|
+
return `tabsession:${tabid}`;
|
|
13049
|
+
}
|
|
13050
|
+
function tabsessionrefof(input) {
|
|
13051
|
+
if (!Number.isInteger(input.tabid) || input.tabid < 0) throw new Error("The per tab session reference needs its tab.");
|
|
13052
|
+
if (input.sessionid.trim() === "") throw new Error("The per tab session reference needs its session.");
|
|
13053
|
+
return { tabid: input.tabid, sessionid: input.sessionid, ...input.runid !== void 0 && input.runid.trim() !== "" ? { runid: input.runid } : {}, origin: input.origin, updatedat: input.now };
|
|
13054
|
+
}
|
|
13055
|
+
function sessionbundleof(input) {
|
|
13056
|
+
return { kind: "sessionbundle", notes: input.notes, summaries: input.summaries, corrections: input.corrections, exportedat: input.exportedat };
|
|
13057
|
+
}
|
|
13058
|
+
|
|
12557
13059
|
// taskqueue.ts
|
|
12558
13060
|
function emptyqueue(input = {}) {
|
|
12559
13061
|
return { lanes: input.lanes ?? [], priorities: input.priorities ?? [], completionpolicy: input.completionpolicy ?? "all", items: [], claims: [] };
|
|
@@ -14219,7 +14721,9 @@ export {
|
|
|
14219
14721
|
acquirerunlock,
|
|
14220
14722
|
activelayers,
|
|
14221
14723
|
addedge,
|
|
14724
|
+
addhistoryentry,
|
|
14222
14725
|
addnode,
|
|
14726
|
+
addrecallentry,
|
|
14223
14727
|
addusage,
|
|
14224
14728
|
agentbudgetcheck,
|
|
14225
14729
|
agentbudgetvalid,
|
|
@@ -14314,6 +14818,8 @@ export {
|
|
|
14314
14818
|
cancelframes,
|
|
14315
14819
|
cancellederror,
|
|
14316
14820
|
cancelrun,
|
|
14821
|
+
cancelrunactionof,
|
|
14822
|
+
cancelrungate,
|
|
14317
14823
|
canceltask,
|
|
14318
14824
|
canexecute,
|
|
14319
14825
|
capturebody,
|
|
@@ -14348,6 +14854,7 @@ export {
|
|
|
14348
14854
|
claim,
|
|
14349
14855
|
claimheartbeat,
|
|
14350
14856
|
classconsentcovers,
|
|
14857
|
+
classifyfailure,
|
|
14351
14858
|
classifyintent,
|
|
14352
14859
|
closechannel,
|
|
14353
14860
|
closeidlechannels,
|
|
@@ -14369,7 +14876,11 @@ export {
|
|
|
14369
14876
|
connectallowlist,
|
|
14370
14877
|
connectclient,
|
|
14371
14878
|
consensusstate,
|
|
14879
|
+
consentadvisory,
|
|
14880
|
+
consentadvisoryverdict,
|
|
14372
14881
|
consentdurationvalid,
|
|
14882
|
+
consentmemoryadvisorygate,
|
|
14883
|
+
consentmemoryof,
|
|
14373
14884
|
consentmodel,
|
|
14374
14885
|
consentprompttext,
|
|
14375
14886
|
consentwindowgate,
|
|
@@ -14436,6 +14947,7 @@ export {
|
|
|
14436
14947
|
disarmkillswitch,
|
|
14437
14948
|
disconnectclient,
|
|
14438
14949
|
dispatchtool,
|
|
14950
|
+
distillrunsummary,
|
|
14439
14951
|
domainkinds,
|
|
14440
14952
|
downloadreport,
|
|
14441
14953
|
draftplan,
|
|
@@ -14443,6 +14955,8 @@ export {
|
|
|
14443
14955
|
dryrunprojection,
|
|
14444
14956
|
dryrunreport,
|
|
14445
14957
|
dryrunworkflow,
|
|
14958
|
+
editedcorrectionof,
|
|
14959
|
+
editnote,
|
|
14446
14960
|
editorsavegate,
|
|
14447
14961
|
editorstate,
|
|
14448
14962
|
editstep,
|
|
@@ -14451,6 +14965,7 @@ export {
|
|
|
14451
14965
|
emptyboard,
|
|
14452
14966
|
emptyconnectallow,
|
|
14453
14967
|
emptyqueue,
|
|
14968
|
+
emptystatemessage,
|
|
14454
14969
|
emugate,
|
|
14455
14970
|
emulationkinds,
|
|
14456
14971
|
emulationreport,
|
|
@@ -14471,6 +14986,7 @@ export {
|
|
|
14471
14986
|
environmentsof,
|
|
14472
14987
|
errorcapture,
|
|
14473
14988
|
errorreportresponse,
|
|
14989
|
+
errorsurfaceof,
|
|
14474
14990
|
escalate,
|
|
14475
14991
|
evaluatecondition,
|
|
14476
14992
|
evaluatetrigger,
|
|
@@ -14484,12 +15000,15 @@ export {
|
|
|
14484
15000
|
expandtemplate,
|
|
14485
15001
|
expireapprovals,
|
|
14486
15002
|
expireconsentwindows,
|
|
15003
|
+
expirecorrections,
|
|
14487
15004
|
expirelayers,
|
|
14488
15005
|
expirelocks,
|
|
14489
15006
|
expireprofilerecords,
|
|
15007
|
+
expirerecallindex,
|
|
14490
15008
|
expirerunlocks,
|
|
14491
15009
|
expiresessions,
|
|
14492
15010
|
expiretokens,
|
|
15011
|
+
expirnotes,
|
|
14493
15012
|
exportcontentreview,
|
|
14494
15013
|
exportlogchain,
|
|
14495
15014
|
exportpresetlibrary,
|
|
@@ -14545,6 +15064,9 @@ export {
|
|
|
14545
15064
|
heartbeatreport,
|
|
14546
15065
|
heldkeysreport,
|
|
14547
15066
|
hideblackboxedframes,
|
|
15067
|
+
highlightterms,
|
|
15068
|
+
historyqueryof,
|
|
15069
|
+
historysearch,
|
|
14548
15070
|
hostpattern,
|
|
14549
15071
|
htmlqueriesof,
|
|
14550
15072
|
httpframepipeline,
|
|
@@ -14635,6 +15157,7 @@ export {
|
|
|
14635
15157
|
maskstoredvalues,
|
|
14636
15158
|
masktypedvalues,
|
|
14637
15159
|
maskvalue,
|
|
15160
|
+
matchingcorrections,
|
|
14638
15161
|
matchmessage,
|
|
14639
15162
|
matchurl,
|
|
14640
15163
|
matchurlpattern,
|
|
@@ -14642,6 +15165,7 @@ export {
|
|
|
14642
15165
|
mediaentries,
|
|
14643
15166
|
mediakinds,
|
|
14644
15167
|
mediareport,
|
|
15168
|
+
memoryreadscopegate,
|
|
14645
15169
|
mergeregions,
|
|
14646
15170
|
mergeresults,
|
|
14647
15171
|
messageegressgrade,
|
|
@@ -14678,6 +15202,8 @@ export {
|
|
|
14678
15202
|
nobatchresolution,
|
|
14679
15203
|
nonceof,
|
|
14680
15204
|
normalizeendpoint,
|
|
15205
|
+
notebodyof,
|
|
15206
|
+
notehistoryentry,
|
|
14681
15207
|
oauthflowof,
|
|
14682
15208
|
observationmodeof,
|
|
14683
15209
|
observationresponse,
|
|
@@ -14689,6 +15215,7 @@ export {
|
|
|
14689
15215
|
openconsensus,
|
|
14690
15216
|
openconsentwindow,
|
|
14691
15217
|
opengate,
|
|
15218
|
+
opennotebody,
|
|
14692
15219
|
openoffscreen,
|
|
14693
15220
|
openrun,
|
|
14694
15221
|
openrunlog,
|
|
@@ -14779,6 +15306,7 @@ export {
|
|
|
14779
15306
|
proxygate,
|
|
14780
15307
|
proxyrouteof,
|
|
14781
15308
|
prunerunstates,
|
|
15309
|
+
prunescratchpad,
|
|
14782
15310
|
publishmessage,
|
|
14783
15311
|
pushscope,
|
|
14784
15312
|
quarantinereport,
|
|
@@ -14787,6 +15315,7 @@ export {
|
|
|
14787
15315
|
queuelanesvalid,
|
|
14788
15316
|
randomid,
|
|
14789
15317
|
rankapis,
|
|
15318
|
+
rankrecall,
|
|
14790
15319
|
ratelimitboundsvalid,
|
|
14791
15320
|
ratelimitbudgetallowed,
|
|
14792
15321
|
ratelimitgate,
|
|
@@ -14798,6 +15327,7 @@ export {
|
|
|
14798
15327
|
readstream,
|
|
14799
15328
|
readverifiedlog,
|
|
14800
15329
|
reattachrun,
|
|
15330
|
+
recallentryof,
|
|
14801
15331
|
receivemessage,
|
|
14802
15332
|
receivemessages,
|
|
14803
15333
|
reconnectwaits,
|
|
@@ -14824,6 +15354,7 @@ export {
|
|
|
14824
15354
|
regionsteps,
|
|
14825
15355
|
regionvalid,
|
|
14826
15356
|
registeragent,
|
|
15357
|
+
rejectedcorrectionof,
|
|
14827
15358
|
rejectioncapture,
|
|
14828
15359
|
relayframe,
|
|
14829
15360
|
releaselock,
|
|
@@ -14871,6 +15402,8 @@ export {
|
|
|
14871
15402
|
retireentries,
|
|
14872
15403
|
retireentry,
|
|
14873
15404
|
retryafterof,
|
|
15405
|
+
retrydispatchgate,
|
|
15406
|
+
retryhintof,
|
|
14874
15407
|
revertalllayers,
|
|
14875
15408
|
revertlayer,
|
|
14876
15409
|
revertplanof,
|
|
@@ -14885,6 +15418,8 @@ export {
|
|
|
14885
15418
|
rewritesourcelocation,
|
|
14886
15419
|
roleaddress,
|
|
14887
15420
|
roledefaults,
|
|
15421
|
+
rollbackof,
|
|
15422
|
+
rollbacksplit,
|
|
14888
15423
|
rotatelogs,
|
|
14889
15424
|
rotationruleof,
|
|
14890
15425
|
routeenvironment,
|
|
@@ -14905,6 +15440,7 @@ export {
|
|
|
14905
15440
|
runrepeatuntil,
|
|
14906
15441
|
runreviewgranted,
|
|
14907
15442
|
runstep,
|
|
15443
|
+
runsummarytask,
|
|
14908
15444
|
runtobreakpoint,
|
|
14909
15445
|
runtry,
|
|
14910
15446
|
runurllist,
|
|
@@ -14930,6 +15466,10 @@ export {
|
|
|
14930
15466
|
scopecheck,
|
|
14931
15467
|
scopegate,
|
|
14932
15468
|
scopegrantof,
|
|
15469
|
+
scratchentryof,
|
|
15470
|
+
scratchpadof,
|
|
15471
|
+
scratchpadscopegate,
|
|
15472
|
+
sealnotebody,
|
|
14933
15473
|
sealrunlog,
|
|
14934
15474
|
sealrunstate,
|
|
14935
15475
|
seamweights,
|
|
@@ -14943,6 +15483,7 @@ export {
|
|
|
14943
15483
|
securityreport,
|
|
14944
15484
|
seededrandom,
|
|
14945
15485
|
selectorresponse,
|
|
15486
|
+
semanticrecallscopegate,
|
|
14946
15487
|
sendcdpcommand,
|
|
14947
15488
|
sendfetch,
|
|
14948
15489
|
sendmessage,
|
|
@@ -14958,14 +15499,17 @@ export {
|
|
|
14958
15499
|
servercapabilities,
|
|
14959
15500
|
serverenablementgate,
|
|
14960
15501
|
servermethods,
|
|
15502
|
+
sessionbundleof,
|
|
14961
15503
|
sessionfileversion,
|
|
14962
15504
|
sessionfolderof,
|
|
14963
15505
|
sessionfolderunique,
|
|
15506
|
+
sessiongridrows,
|
|
14964
15507
|
sessionkinds,
|
|
14965
15508
|
sessionmemory,
|
|
14966
15509
|
sessionnameunique,
|
|
14967
15510
|
sessionreport,
|
|
14968
15511
|
sessionrestoregate,
|
|
15512
|
+
sessionretentionvalid,
|
|
14969
15513
|
sessiontabof,
|
|
14970
15514
|
setvariable,
|
|
14971
15515
|
shapesof,
|
|
@@ -14973,6 +15517,9 @@ export {
|
|
|
14973
15517
|
shareworkflow,
|
|
14974
15518
|
shiftentryof,
|
|
14975
15519
|
signalsreport,
|
|
15520
|
+
sitenoteof,
|
|
15521
|
+
sitenotesreadgate,
|
|
15522
|
+
sitenoteswritegate,
|
|
14976
15523
|
snapnode,
|
|
14977
15524
|
snapshotplanof,
|
|
14978
15525
|
snapshotretentionwindow,
|
|
@@ -15007,6 +15554,9 @@ export {
|
|
|
15007
15554
|
submitreviewgranted,
|
|
15008
15555
|
subscriptionframes,
|
|
15009
15556
|
subscriptionoptionsof,
|
|
15557
|
+
summaryhistoryentry,
|
|
15558
|
+
summaryrequestof,
|
|
15559
|
+
summarywindowvalid,
|
|
15010
15560
|
swarmcosts,
|
|
15011
15561
|
swarmoverview,
|
|
15012
15562
|
swarmreport,
|
|
@@ -15014,6 +15564,8 @@ export {
|
|
|
15014
15564
|
swarmstatereport,
|
|
15015
15565
|
sweepreviews,
|
|
15016
15566
|
tabreportresponse,
|
|
15567
|
+
tabsessionkey,
|
|
15568
|
+
tabsessionrefof,
|
|
15017
15569
|
targetgate,
|
|
15018
15570
|
taskcounts,
|
|
15019
15571
|
taskstatechecksum,
|