@tomflow/proflow-platform-host 0.1.14 → 0.1.16
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/src/index.d.ts +0 -12
- package/dist/src/index.js +16 -30
- package/package.json +10 -10
- package/proflow.module.json +1 -1
- package/CHANGELOG.md +0 -49
|
@@ -6,7 +6,7 @@ export declare const behaviorAdapter: {
|
|
|
6
6
|
ok: true;
|
|
7
7
|
status: "SUCCEEDED";
|
|
8
8
|
moduleRef: "platform-host";
|
|
9
|
-
moduleVersion: "0.1.
|
|
9
|
+
moduleVersion: "0.1.16";
|
|
10
10
|
data: {
|
|
11
11
|
endpoint: string;
|
|
12
12
|
stateRoot: string;
|
|
@@ -24,7 +24,7 @@ export declare const behaviorAdapter: {
|
|
|
24
24
|
readonly ok: true;
|
|
25
25
|
readonly status: "SUCCEEDED";
|
|
26
26
|
readonly moduleRef: "platform-host";
|
|
27
|
-
readonly moduleVersion: "0.1.
|
|
27
|
+
readonly moduleVersion: "0.1.16";
|
|
28
28
|
};
|
|
29
29
|
observedEffects: string[];
|
|
30
30
|
}>;
|
|
@@ -34,7 +34,7 @@ export declare const behaviorAdapter: {
|
|
|
34
34
|
ok: true;
|
|
35
35
|
status: "SUCCEEDED";
|
|
36
36
|
moduleRef: "platform-host";
|
|
37
|
-
moduleVersion: "0.1.
|
|
37
|
+
moduleVersion: "0.1.16";
|
|
38
38
|
data: {
|
|
39
39
|
setupStatus: "READY";
|
|
40
40
|
runtimeStatus: "RUNNING" | "STOPPED";
|
|
@@ -55,7 +55,7 @@ export declare const behaviorAdapter: {
|
|
|
55
55
|
ok: true;
|
|
56
56
|
status: "SUCCEEDED";
|
|
57
57
|
moduleRef: "platform-host";
|
|
58
|
-
moduleVersion: "0.1.
|
|
58
|
+
moduleVersion: "0.1.16";
|
|
59
59
|
data: {
|
|
60
60
|
endpoint: string;
|
|
61
61
|
stateRoot: string;
|
|
@@ -73,7 +73,7 @@ export declare const behaviorAdapter: {
|
|
|
73
73
|
ok: true;
|
|
74
74
|
status: "SUCCEEDED";
|
|
75
75
|
moduleRef: "platform-host";
|
|
76
|
-
moduleVersion: "0.1.
|
|
76
|
+
moduleVersion: "0.1.16";
|
|
77
77
|
data: {
|
|
78
78
|
docs: string;
|
|
79
79
|
};
|
|
@@ -86,7 +86,7 @@ export declare const behaviorAdapter: {
|
|
|
86
86
|
ok: true;
|
|
87
87
|
status: "SUCCEEDED";
|
|
88
88
|
moduleRef: "platform-host";
|
|
89
|
-
moduleVersion: "0.1.
|
|
89
|
+
moduleVersion: "0.1.16";
|
|
90
90
|
data: {
|
|
91
91
|
host: string;
|
|
92
92
|
port: number;
|
|
@@ -97,7 +97,7 @@ export declare const behaviorAdapter: {
|
|
|
97
97
|
result: {
|
|
98
98
|
contract: "deployment.result.v1";
|
|
99
99
|
moduleRef: "platform-host";
|
|
100
|
-
moduleVersion: "0.1.
|
|
100
|
+
moduleVersion: "0.1.16";
|
|
101
101
|
ok: false;
|
|
102
102
|
status: "FAILED";
|
|
103
103
|
error: {
|
|
@@ -114,7 +114,7 @@ export declare const behaviorAdapter: {
|
|
|
114
114
|
readonly ok: true;
|
|
115
115
|
readonly status: "SUCCEEDED";
|
|
116
116
|
readonly moduleRef: "platform-host";
|
|
117
|
-
readonly moduleVersion: "0.1.
|
|
117
|
+
readonly moduleVersion: "0.1.16";
|
|
118
118
|
};
|
|
119
119
|
observedEffects: string[];
|
|
120
120
|
} | {
|
|
@@ -123,11 +123,11 @@ export declare const behaviorAdapter: {
|
|
|
123
123
|
readonly ok: true;
|
|
124
124
|
readonly status: "SUCCEEDED";
|
|
125
125
|
readonly moduleRef: "platform-host";
|
|
126
|
-
readonly moduleVersion: "0.1.
|
|
126
|
+
readonly moduleVersion: "0.1.16";
|
|
127
127
|
} | {
|
|
128
128
|
contract: "deployment.result.v1";
|
|
129
129
|
moduleRef: "platform-host";
|
|
130
|
-
moduleVersion: "0.1.
|
|
130
|
+
moduleVersion: "0.1.16";
|
|
131
131
|
ok: false;
|
|
132
132
|
status: "FAILED";
|
|
133
133
|
error: {
|
|
@@ -3,7 +3,7 @@ export declare const descriptor: {
|
|
|
3
3
|
readonly contractVersion: "1.0.0";
|
|
4
4
|
readonly moduleRef: "platform-host";
|
|
5
5
|
readonly packageName: "@tomflow/proflow-platform-host";
|
|
6
|
-
readonly moduleVersion: "0.1.
|
|
6
|
+
readonly moduleVersion: "0.1.16";
|
|
7
7
|
readonly kind: "service";
|
|
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: "platform-host",
|
|
5
5
|
packageName: "@tomflow/proflow-platform-host",
|
|
6
|
-
moduleVersion: "0.1.
|
|
6
|
+
moduleVersion: "0.1.16",
|
|
7
7
|
kind: "service",
|
|
8
8
|
templateVersion: "1.0.0",
|
|
9
9
|
platformCompatibility: ">=1.0.0 <2.0.0",
|
package/dist/src/index.d.ts
CHANGED
|
@@ -208,18 +208,6 @@ export type PlatformHostTaskDriverPorts = {
|
|
|
208
208
|
workerRef: string | null;
|
|
209
209
|
};
|
|
210
210
|
}>;
|
|
211
|
-
startTask(input: {
|
|
212
|
-
taskId: string;
|
|
213
|
-
expectedTaskVersion: number;
|
|
214
|
-
idempotencyKey: string;
|
|
215
|
-
}): Promise<unknown>;
|
|
216
|
-
startNode(input: {
|
|
217
|
-
taskId: string;
|
|
218
|
-
nodeId: string;
|
|
219
|
-
expectedTaskVersion: number;
|
|
220
|
-
expectedNodeVersion: number;
|
|
221
|
-
idempotencyKey: string;
|
|
222
|
-
}): Promise<unknown>;
|
|
223
211
|
};
|
|
224
212
|
export type PlatformHostAgentIdentityPorts = {
|
|
225
213
|
getRegisteredRole(roleRef: string): Promise<{
|
package/dist/src/index.js
CHANGED
|
@@ -11,6 +11,9 @@ import { taskMigrations } from "@tomflow/proflow-task-store-sqlite/migrations";
|
|
|
11
11
|
import { z } from "zod";
|
|
12
12
|
import { roleOperations, rolePackageRefs, } from "./role-operations.js";
|
|
13
13
|
const loopbackHosts = new Set(["localhost", "127.0.0.1", "::1", "[::1]"]);
|
|
14
|
+
// Business owner calls are Promise-driven. This is only a last-resort transport
|
|
15
|
+
// watchdog for a hung local call, not a normal workflow deadline.
|
|
16
|
+
const OWNER_INVOKE_WATCHDOG_MS = 120_000;
|
|
14
17
|
const systemObserverReasonResultSchema = z
|
|
15
18
|
.object({
|
|
16
19
|
scope: z.string().min(1).max(240).optional(),
|
|
@@ -305,7 +308,7 @@ function createOwnerHttpClient(owner, baseUrl, credential) {
|
|
|
305
308
|
body: JSON.stringify(requestBody),
|
|
306
309
|
}
|
|
307
310
|
: {}),
|
|
308
|
-
signal: AbortSignal.timeout(
|
|
311
|
+
signal: AbortSignal.timeout(OWNER_INVOKE_WATCHDOG_MS),
|
|
309
312
|
}));
|
|
310
313
|
},
|
|
311
314
|
});
|
|
@@ -637,6 +640,7 @@ async function constructGraph(config, executionCredential, modelCredential) {
|
|
|
637
640
|
const taskOperation = taskOperations.get(operationId);
|
|
638
641
|
if (taskOperation) {
|
|
639
642
|
let actorRef = authenticatedRoleRef;
|
|
643
|
+
let canonicalWorkerRef;
|
|
640
644
|
if (typeof input.taskId === "string") {
|
|
641
645
|
const workerRef = await admitTaskParticipant(input.taskId, authenticatedRoleRef, typeof input.workerRef === "string" ? input.workerRef : undefined);
|
|
642
646
|
if (taskMutationOperations.has(operationId))
|
|
@@ -645,7 +649,8 @@ async function constructGraph(config, executionCredential, modelCredential) {
|
|
|
645
649
|
taskId: input.taskId,
|
|
646
650
|
workerRef,
|
|
647
651
|
});
|
|
648
|
-
|
|
652
|
+
canonicalWorkerRef = workerRef;
|
|
653
|
+
actorRef = `worker:${workerRef}`;
|
|
649
654
|
}
|
|
650
655
|
let canonicalTaskInput = input;
|
|
651
656
|
if (context?.fileMaterializationInputs !== undefined) {
|
|
@@ -662,8 +667,8 @@ async function constructGraph(config, executionCredential, modelCredential) {
|
|
|
662
667
|
? { taskId: input.taskId }
|
|
663
668
|
: {}),
|
|
664
669
|
roleRef: authenticatedRoleRef,
|
|
665
|
-
...(
|
|
666
|
-
? { workerRef:
|
|
670
|
+
...(canonicalWorkerRef !== undefined
|
|
671
|
+
? { workerRef: canonicalWorkerRef }
|
|
667
672
|
: {}),
|
|
668
673
|
files: context.fileMaterializationInputs,
|
|
669
674
|
}), "carrier file materialization result");
|
|
@@ -805,8 +810,7 @@ async function constructGraph(config, executionCredential, modelCredential) {
|
|
|
805
810
|
request.capability === "worker.restore" ||
|
|
806
811
|
request.capability === "worker.wake" ||
|
|
807
812
|
request.capability === "collaboration.deliver";
|
|
808
|
-
const internalBrowserCaller = request.callerRef === "platform-host:
|
|
809
|
-
request.callerRef === "platform-host:carrier-controller" ||
|
|
813
|
+
const internalBrowserCaller = request.callerRef === "platform-host:carrier-controller" ||
|
|
810
814
|
request.callerRef === "extension:task-observer" ||
|
|
811
815
|
request.callerRef === "extension:collaboration-carrier";
|
|
812
816
|
if (!internalBrowserCaller)
|
|
@@ -897,18 +901,6 @@ async function constructGraph(config, executionCredential, modelCredential) {
|
|
|
897
901
|
async getTaskDriveProjection(taskId) {
|
|
898
902
|
return unwrap(task.queries.getTaskDriveProjection({ taskId }));
|
|
899
903
|
},
|
|
900
|
-
async startTask(input) {
|
|
901
|
-
return unwrap(task.commands.startTask({
|
|
902
|
-
...input,
|
|
903
|
-
actorRef: "platform-host:task-observer",
|
|
904
|
-
}));
|
|
905
|
-
},
|
|
906
|
-
async startNode(input) {
|
|
907
|
-
return unwrap(task.commands.startNode({
|
|
908
|
-
...input,
|
|
909
|
-
actorRef: "platform-host:task-observer",
|
|
910
|
-
}));
|
|
911
|
-
},
|
|
912
904
|
});
|
|
913
905
|
const agentIdentityPorts = Object.freeze({
|
|
914
906
|
async getRegisteredRole(roleRef) {
|
|
@@ -1196,7 +1188,7 @@ async function constructGraph(config, executionCredential, modelCredential) {
|
|
|
1196
1188
|
const underlyingRef = typeof value.underlyingRef === "string"
|
|
1197
1189
|
? value.underlyingRef
|
|
1198
1190
|
: "none";
|
|
1199
|
-
|
|
1191
|
+
const wakeExecution = object(await execution.invoke("executeCapability", {
|
|
1200
1192
|
contract: "execution",
|
|
1201
1193
|
contractVersion: "1.0.0",
|
|
1202
1194
|
idempotencyKey: `task-observer-wake:${taskId}:${nodeId}:${runNo}:${trigger}:${underlyingRef}`,
|
|
@@ -1217,7 +1209,11 @@ async function constructGraph(config, executionCredential, modelCredential) {
|
|
|
1217
1209
|
trigger,
|
|
1218
1210
|
fingerprint: `wake:${taskId}:${nodeId}:${runNo}:${trigger}:${underlyingRef}`,
|
|
1219
1211
|
},
|
|
1220
|
-
});
|
|
1212
|
+
}), "task wake execution");
|
|
1213
|
+
if (wakeExecution.status !== "SUCCEEDED" ||
|
|
1214
|
+
wakeExecution.sideEffectState !== "APPLIED")
|
|
1215
|
+
throw new Error(`TASK_WAKE_NOT_CONFIRMED:${String(wakeExecution.status)}:${String(wakeExecution.sideEffectState)}`);
|
|
1216
|
+
return wakeExecution;
|
|
1221
1217
|
}
|
|
1222
1218
|
if (operation === "task.diagnostic") {
|
|
1223
1219
|
const response = object(await model.invoke("infer", {
|
|
@@ -1578,16 +1574,6 @@ export function createPlatformHost(input) {
|
|
|
1578
1574
|
throw new Error("PLATFORM_HOST_NOT_RUNNING");
|
|
1579
1575
|
return graph.taskDriverPorts.getNodeContext(taskId, nodeId);
|
|
1580
1576
|
},
|
|
1581
|
-
async startTask(input) {
|
|
1582
|
-
if (!graph)
|
|
1583
|
-
throw new Error("PLATFORM_HOST_NOT_RUNNING");
|
|
1584
|
-
return graph.taskDriverPorts.startTask(input);
|
|
1585
|
-
},
|
|
1586
|
-
async startNode(input) {
|
|
1587
|
-
if (!graph)
|
|
1588
|
-
throw new Error("PLATFORM_HOST_NOT_RUNNING");
|
|
1589
|
-
return graph.taskDriverPorts.startNode(input);
|
|
1590
|
-
},
|
|
1591
1577
|
});
|
|
1592
1578
|
const agentIdentityPorts = Object.freeze({
|
|
1593
1579
|
async getRegisteredRole(roleRef) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tomflow/proflow-platform-host",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.16",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -24,19 +24,19 @@
|
|
|
24
24
|
],
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"zod": "4.1.12",
|
|
27
|
+
"@tomflow/proflow-agent-runtime": "^0.1.13",
|
|
27
28
|
"@tomflow/proflow-module-contract": "^0.1.13",
|
|
28
|
-
"@tomflow/proflow-execution-
|
|
29
|
-
"@tomflow/proflow-task-
|
|
30
|
-
"@tomflow/proflow-agent-runtime": "^0.1.10",
|
|
31
|
-
"@tomflow/proflow-task-orchestration": "^0.1.9",
|
|
29
|
+
"@tomflow/proflow-execution-contracts": "^0.1.10",
|
|
30
|
+
"@tomflow/proflow-task-orchestration": "^0.1.10",
|
|
32
31
|
"@tomflow/proflow-task-migration-runner": "^0.1.11",
|
|
33
|
-
"@tomflow/proflow-execution-
|
|
32
|
+
"@tomflow/proflow-execution-browser-extension": "^0.1.32",
|
|
33
|
+
"@tomflow/proflow-task-store-sqlite": "^0.1.11"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@tomflow/proflow-
|
|
37
|
-
"@tomflow/proflow-
|
|
38
|
-
"@tomflow/proflow-
|
|
39
|
-
"@tomflow/proflow-execution-runtime": "^0.1.
|
|
36
|
+
"@tomflow/proflow-agent-gateway": "^0.1.15",
|
|
37
|
+
"@tomflow/proflow-deployment-conformance": "^0.1.13",
|
|
38
|
+
"@tomflow/proflow-model-runtime": "^0.1.21",
|
|
39
|
+
"@tomflow/proflow-execution-runtime": "^0.1.16"
|
|
40
40
|
},
|
|
41
41
|
"description": "Provides the ProFlow local application composition root that binds Task, Agent, Execution and Model owner transports.",
|
|
42
42
|
"keywords": [
|
package/proflow.module.json
CHANGED
package/CHANGELOG.md
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
# @tomflow/proflow-platform-host
|
|
2
|
-
|
|
3
|
-
## 0.1.14
|
|
4
|
-
|
|
5
|
-
### Patch Changes
|
|
6
|
-
|
|
7
|
-
- Retire the obsolete Carrier package and Browser standalone management CLI, make Platform setup/status preserve owner and dependency semantics, and enforce read-only status observation across the final Real-3 deployment closeout.
|
|
8
|
-
|
|
9
|
-
## 0.1.13
|
|
10
|
-
|
|
11
|
-
### Patch Changes
|
|
12
|
-
|
|
13
|
-
- Ship the Phase 3 browser, tunnel, model automation, platform readiness, and documentation closure as one verifiable platform snapshot.
|
|
14
|
-
|
|
15
|
-
## 0.1.12
|
|
16
|
-
|
|
17
|
-
### Patch Changes
|
|
18
|
-
|
|
19
|
-
- Distinguish dependency blocking from verified failure, expose Module-owned status diagnostics, remove automatic docs paging, consolidate start checks, add contextual help, and clarify uninstall output.
|
|
20
|
-
|
|
21
|
-
## 0.1.11
|
|
22
|
-
|
|
23
|
-
### Patch Changes
|
|
24
|
-
|
|
25
|
-
- Upgrade the ProFlow terminal experience, stream Registry and package-manager progress, publish structured Chinese Module documentation, and provide numbered package-owned Setup assistants.
|
|
26
|
-
|
|
27
|
-
## 0.1.10
|
|
28
|
-
|
|
29
|
-
### Patch Changes
|
|
30
|
-
|
|
31
|
-
- Improve terminal progress and localized status output, publish readable Chinese module docs, and add guided setup assistants for external resources.
|
|
32
|
-
|
|
33
|
-
## 0.1.9
|
|
34
|
-
|
|
35
|
-
### Patch Changes
|
|
36
|
-
|
|
37
|
-
- Resolve DOCS.md from both source and built deployment adapters, prove all 24 built adapters return the published body, and announce package synchronization before the package manager blocks.
|
|
38
|
-
|
|
39
|
-
## 0.1.8
|
|
40
|
-
|
|
41
|
-
### Patch Changes
|
|
42
|
-
|
|
43
|
-
- Replace JSON terminal protocols with typed CLI outcomes, add real-time Chinese progress and lifecycle summaries, publish DOCS content, standardize executable setup plans and package-owned setup commands, and preserve only user-owned pnpm policy during uninstall.
|
|
44
|
-
|
|
45
|
-
## 0.1.7
|
|
46
|
-
|
|
47
|
-
### Patch Changes
|
|
48
|
-
|
|
49
|
-
- Align all Modules to the seven-command setup contract with executable package-owned setup guidance and full Platform setup aggregation.
|