@tomflow/proflow-execution-browser-extension 0.1.26 → 0.1.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/deployment/adapter.d.ts +10 -10
- package/dist/deployment/descriptor.d.ts +1 -1
- package/dist/deployment/descriptor.js +1 -1
- package/dist/extension/background.js +10 -1
- package/dist/src/recovery-trigger.d.ts +8 -0
- package/dist/src/recovery-trigger.js +10 -0
- package/extension/background.ts +4 -1
- package/manifest.json +1 -1
- package/package.json +3 -3
- package/proflow.module.json +1 -1
- package/CHANGELOG.md +0 -31
|
@@ -47,7 +47,7 @@ export declare const behaviorAdapter: {
|
|
|
47
47
|
ok: true;
|
|
48
48
|
status: "SUCCEEDED";
|
|
49
49
|
moduleRef: "execution-browser-extension";
|
|
50
|
-
moduleVersion: "0.1.
|
|
50
|
+
moduleVersion: "0.1.27";
|
|
51
51
|
data: {
|
|
52
52
|
loadDir: string;
|
|
53
53
|
};
|
|
@@ -60,7 +60,7 @@ export declare const behaviorAdapter: {
|
|
|
60
60
|
readonly ok: true;
|
|
61
61
|
readonly status: "SUCCEEDED";
|
|
62
62
|
readonly moduleRef: "execution-browser-extension";
|
|
63
|
-
readonly moduleVersion: "0.1.
|
|
63
|
+
readonly moduleVersion: "0.1.27";
|
|
64
64
|
};
|
|
65
65
|
observedEffects: never[];
|
|
66
66
|
}>;
|
|
@@ -70,7 +70,7 @@ export declare const behaviorAdapter: {
|
|
|
70
70
|
ok: true;
|
|
71
71
|
status: "SUCCEEDED";
|
|
72
72
|
moduleRef: "execution-browser-extension";
|
|
73
|
-
moduleVersion: "0.1.
|
|
73
|
+
moduleVersion: "0.1.27";
|
|
74
74
|
data: {
|
|
75
75
|
setupStatus: "ACTION_REQUIRED" | "READY";
|
|
76
76
|
runtimeStatus: "NOT_APPLICABLE";
|
|
@@ -95,7 +95,7 @@ export declare const behaviorAdapter: {
|
|
|
95
95
|
result: {
|
|
96
96
|
contract: "deployment.result.v1";
|
|
97
97
|
moduleRef: "execution-browser-extension";
|
|
98
|
-
moduleVersion: "0.1.
|
|
98
|
+
moduleVersion: "0.1.27";
|
|
99
99
|
ok: false;
|
|
100
100
|
status: "ACTION_REQUIRED";
|
|
101
101
|
data: {
|
|
@@ -127,14 +127,14 @@ export declare const behaviorAdapter: {
|
|
|
127
127
|
readonly ok: true;
|
|
128
128
|
readonly status: "SUCCEEDED";
|
|
129
129
|
readonly moduleRef: "execution-browser-extension";
|
|
130
|
-
readonly moduleVersion: "0.1.
|
|
130
|
+
readonly moduleVersion: "0.1.27";
|
|
131
131
|
};
|
|
132
132
|
observedEffects: string[];
|
|
133
133
|
} | {
|
|
134
134
|
result: {
|
|
135
135
|
contract: "deployment.result.v1";
|
|
136
136
|
moduleRef: "execution-browser-extension";
|
|
137
|
-
moduleVersion: "0.1.
|
|
137
|
+
moduleVersion: "0.1.27";
|
|
138
138
|
ok: false;
|
|
139
139
|
status: "FAILED";
|
|
140
140
|
error: {
|
|
@@ -167,7 +167,7 @@ export declare const behaviorAdapter: {
|
|
|
167
167
|
ok: true;
|
|
168
168
|
status: "SUCCEEDED";
|
|
169
169
|
moduleRef: "execution-browser-extension";
|
|
170
|
-
moduleVersion: "0.1.
|
|
170
|
+
moduleVersion: "0.1.27";
|
|
171
171
|
data: {
|
|
172
172
|
docs: string;
|
|
173
173
|
};
|
|
@@ -180,11 +180,11 @@ export declare const behaviorAdapter: {
|
|
|
180
180
|
readonly ok: true;
|
|
181
181
|
readonly status: "SUCCEEDED";
|
|
182
182
|
readonly moduleRef: "execution-browser-extension";
|
|
183
|
-
readonly moduleVersion: "0.1.
|
|
183
|
+
readonly moduleVersion: "0.1.27";
|
|
184
184
|
} | {
|
|
185
185
|
contract: "deployment.result.v1";
|
|
186
186
|
moduleRef: "execution-browser-extension";
|
|
187
|
-
moduleVersion: "0.1.
|
|
187
|
+
moduleVersion: "0.1.27";
|
|
188
188
|
ok: false;
|
|
189
189
|
status: "FAILED";
|
|
190
190
|
error: {
|
|
@@ -201,7 +201,7 @@ export declare const behaviorAdapter: {
|
|
|
201
201
|
readonly ok: true;
|
|
202
202
|
readonly status: "SUCCEEDED";
|
|
203
203
|
readonly moduleRef: "execution-browser-extension";
|
|
204
|
-
readonly moduleVersion: "0.1.
|
|
204
|
+
readonly moduleVersion: "0.1.27";
|
|
205
205
|
};
|
|
206
206
|
observedEffects: never[];
|
|
207
207
|
}>;
|
|
@@ -3,7 +3,7 @@ export declare const descriptor: {
|
|
|
3
3
|
readonly contractVersion: "1.0.0";
|
|
4
4
|
readonly moduleRef: "execution-browser-extension";
|
|
5
5
|
readonly packageName: "@tomflow/proflow-execution-browser-extension";
|
|
6
|
-
readonly moduleVersion: "0.1.
|
|
6
|
+
readonly moduleVersion: "0.1.27";
|
|
7
7
|
readonly kind: "browser-extension";
|
|
8
8
|
readonly templateVersion: "1.0.0";
|
|
9
9
|
readonly platformCompatibility: ">=1.0.0 <2.0.0";
|
|
@@ -3,7 +3,7 @@ export const descriptor = {
|
|
|
3
3
|
contractVersion: "1.0.0",
|
|
4
4
|
moduleRef: "execution-browser-extension",
|
|
5
5
|
packageName: "@tomflow/proflow-execution-browser-extension",
|
|
6
|
-
moduleVersion: "0.1.
|
|
6
|
+
moduleVersion: "0.1.27",
|
|
7
7
|
kind: "browser-extension",
|
|
8
8
|
templateVersion: "1.0.0",
|
|
9
9
|
platformCompatibility: ">=1.0.0 <2.0.0",
|
|
@@ -13866,6 +13866,13 @@ function createTaskObserver(options) {
|
|
|
13866
13866
|
return Object.freeze({ advance, drive });
|
|
13867
13867
|
}
|
|
13868
13868
|
|
|
13869
|
+
// packages/execution-browser-extension/src/recovery-trigger.ts
|
|
13870
|
+
function shouldTriggerObserverRecovery(previous, current) {
|
|
13871
|
+
if (current.pageState !== "IDLE") return false;
|
|
13872
|
+
if (!previous) return true;
|
|
13873
|
+
return previous.pageState !== "IDLE" || previous.url !== current.url || previous.contentInstanceId !== current.contentInstanceId || previous.activityKind !== current.activityKind;
|
|
13874
|
+
}
|
|
13875
|
+
|
|
13869
13876
|
// packages/execution-browser-extension/extension/background.ts
|
|
13870
13877
|
var extensionInstanceId = `extension:${crypto.randomUUID()}`;
|
|
13871
13878
|
var sessions = /* @__PURE__ */ new Map();
|
|
@@ -14693,6 +14700,7 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
|
|
|
14693
14700
|
return true;
|
|
14694
14701
|
}
|
|
14695
14702
|
if (message.type === "PROFLOW_CONTENT_OBSERVATION" && message.observation && sender.tab?.id !== void 0 && sender.tab.windowId !== void 0) {
|
|
14703
|
+
const previous = sessions.get(sender.tab.id);
|
|
14696
14704
|
const observed = {
|
|
14697
14705
|
...message.observation,
|
|
14698
14706
|
tabId: sender.tab.id,
|
|
@@ -14700,7 +14708,8 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
|
|
|
14700
14708
|
};
|
|
14701
14709
|
sessions.set(sender.tab.id, observed);
|
|
14702
14710
|
void persistSnapshot();
|
|
14703
|
-
if (observed
|
|
14711
|
+
if (shouldTriggerObserverRecovery(previous, observed))
|
|
14712
|
+
void runObserverRecovery();
|
|
14704
14713
|
sendResponse({ accepted: true, extensionInstanceId });
|
|
14705
14714
|
return;
|
|
14706
14715
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type RecoveryObservation = {
|
|
2
|
+
url: string;
|
|
3
|
+
contentInstanceId: string;
|
|
4
|
+
pageState: "IDLE" | "BUSY" | "BLOCKED" | "UNKNOWN";
|
|
5
|
+
activityKind: string | null;
|
|
6
|
+
};
|
|
7
|
+
export declare function shouldTriggerObserverRecovery(previous: RecoveryObservation | undefined, current: RecoveryObservation): boolean;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function shouldTriggerObserverRecovery(previous, current) {
|
|
2
|
+
if (current.pageState !== "IDLE")
|
|
3
|
+
return false;
|
|
4
|
+
if (!previous)
|
|
5
|
+
return true;
|
|
6
|
+
return (previous.pageState !== "IDLE" ||
|
|
7
|
+
previous.url !== current.url ||
|
|
8
|
+
previous.contentInstanceId !== current.contentInstanceId ||
|
|
9
|
+
previous.activityKind !== current.activityKind);
|
|
10
|
+
}
|
package/extension/background.ts
CHANGED
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
type TaskObserverDiagnosticAssessment,
|
|
13
13
|
type TaskObserverDiagnosticFailure,
|
|
14
14
|
} from "../src/task-observer.js";
|
|
15
|
+
import { shouldTriggerObserverRecovery } from "../src/recovery-trigger.js";
|
|
15
16
|
|
|
16
17
|
type PageState = "IDLE" | "BUSY" | "BLOCKED" | "UNKNOWN";
|
|
17
18
|
type ActivityKind =
|
|
@@ -1218,6 +1219,7 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
|
|
|
1218
1219
|
sender.tab?.id !== undefined &&
|
|
1219
1220
|
sender.tab.windowId !== undefined
|
|
1220
1221
|
) {
|
|
1222
|
+
const previous = sessions.get(sender.tab.id);
|
|
1221
1223
|
const observed: ContentObservation = {
|
|
1222
1224
|
...message.observation,
|
|
1223
1225
|
tabId: sender.tab.id,
|
|
@@ -1225,7 +1227,8 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
|
|
|
1225
1227
|
};
|
|
1226
1228
|
sessions.set(sender.tab.id, observed);
|
|
1227
1229
|
void persistSnapshot();
|
|
1228
|
-
if (observed
|
|
1230
|
+
if (shouldTriggerObserverRecovery(previous, observed))
|
|
1231
|
+
void runObserverRecovery();
|
|
1229
1232
|
sendResponse({ accepted: true, extensionInstanceId });
|
|
1230
1233
|
return;
|
|
1231
1234
|
}
|
package/manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tomflow/proflow-execution-browser-extension",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.27",
|
|
4
4
|
"description": "Execution-owned MV3 Browser executor, evidence provider and browser application surface.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"SETUP.md"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@tomflow/proflow-
|
|
31
|
-
"@tomflow/proflow-
|
|
30
|
+
"@tomflow/proflow-module-contract": "^0.1.13",
|
|
31
|
+
"@tomflow/proflow-execution-contracts": "^0.1.10"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@tomflow/proflow-execution-runtime": "^0.1.15",
|
package/proflow.module.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"contractVersion": "1.0.0",
|
|
4
4
|
"moduleRef": "execution-browser-extension",
|
|
5
5
|
"packageName": "@tomflow/proflow-execution-browser-extension",
|
|
6
|
-
"moduleVersion": "0.1.
|
|
6
|
+
"moduleVersion": "0.1.27",
|
|
7
7
|
"kind": "browser-extension",
|
|
8
8
|
"templateVersion": "1.0.0",
|
|
9
9
|
"platformCompatibility": ">=1.0.0 <2.0.0",
|
package/CHANGELOG.md
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# @tomflow/proflow-execution-browser-extension
|
|
2
|
-
|
|
3
|
-
## 0.1.26
|
|
4
|
-
|
|
5
|
-
### Patch Changes
|
|
6
|
-
|
|
7
|
-
- Close the Real-3 source candidate and real-workspace loop: fail-closed Browser submit verification, worker-bound Task mutation and WAKE confirmation, detached platform start ownership with shell return, discoverable docs, and targeted single-package Workspace update.
|
|
8
|
-
|
|
9
|
-
## 0.1.25
|
|
10
|
-
|
|
11
|
-
### Patch Changes
|
|
12
|
-
|
|
13
|
-
- Preserve irreversible Custom GPT role authority and revalidate existing roles without duplicate creation
|
|
14
|
-
|
|
15
|
-
## 0.1.24
|
|
16
|
-
|
|
17
|
-
### Patch Changes
|
|
18
|
-
|
|
19
|
-
- Cover Chrome's observed delayed Secure Preferences flush while waiting for unpacked-extension registration to become enabled after pairing.
|
|
20
|
-
|
|
21
|
-
## 0.1.23
|
|
22
|
-
|
|
23
|
-
### Patch Changes
|
|
24
|
-
|
|
25
|
-
- Wait for Chrome unpacked-extension registration to become observably enabled after heartbeat pairing before Browser setup reports success.
|
|
26
|
-
|
|
27
|
-
## 0.1.22
|
|
28
|
-
|
|
29
|
-
### Patch Changes
|
|
30
|
-
|
|
31
|
-
- Make Browser Extension static materialization version-idempotent, freeze real-user install/remove acceptance paths, and remove unsupported Reload/Disable-Enable test scenarios.
|