@tomflow/proflow-platform-host 0.1.1 → 0.1.3
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/CHANGELOG.md +12 -0
- package/dist/deployment/adapter.d.ts +32 -52
- package/dist/deployment/adapter.js +4 -1
- package/dist/deployment/descriptor.d.ts +1 -1
- package/dist/deployment/descriptor.js +1 -1
- package/dist/src/cli.js +8 -8
- package/package.json +12 -12
- package/proflow.module.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @tomflow/proflow-platform-host
|
|
2
2
|
|
|
3
|
+
## 0.1.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Real-1 final remediation and black-box release closure
|
|
8
|
+
|
|
9
|
+
## 0.1.2
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Close the Real-1 global Platform control-plane contract across every published ProFlow package. Platform CLI now owns one durable global Workspace binding with canonical identity, cross-process operation locking, cwd/`--workspace` install targeting, cross-directory instance commands, whole-instance uninstall/rebind, and deterministic npm/yarn/pnpm Workspace package-manager selection. Every package-owned install entry, including newly generated Module Template packages, delegates to the Shell-global `platform` command and fails closed when that global CLI is unavailable; Deployment Conformance and the formal test plans mechanically enforce the same rule across all 24 packages.
|
|
14
|
+
|
|
3
15
|
## 0.1.1
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -19,7 +19,7 @@ export declare function createBehaviorAdapter(service?: PlatformHostService): {
|
|
|
19
19
|
readonly ok: true;
|
|
20
20
|
readonly status: "SUCCEEDED";
|
|
21
21
|
readonly moduleRef: "platform-host";
|
|
22
|
-
readonly moduleVersion: "0.1.
|
|
22
|
+
readonly moduleVersion: "0.1.3";
|
|
23
23
|
};
|
|
24
24
|
observedEffects: never[];
|
|
25
25
|
};
|
|
@@ -29,7 +29,7 @@ export declare function createBehaviorAdapter(service?: PlatformHostService): {
|
|
|
29
29
|
readonly ok: true;
|
|
30
30
|
readonly status: "SUCCEEDED";
|
|
31
31
|
readonly moduleRef: "platform-host";
|
|
32
|
-
readonly moduleVersion: "0.1.
|
|
32
|
+
readonly moduleVersion: "0.1.3";
|
|
33
33
|
};
|
|
34
34
|
observedEffects: never[];
|
|
35
35
|
};
|
|
@@ -37,7 +37,7 @@ export declare function createBehaviorAdapter(service?: PlatformHostService): {
|
|
|
37
37
|
result: {
|
|
38
38
|
readonly contract: "deployment.result.v1";
|
|
39
39
|
readonly moduleRef: "platform-host";
|
|
40
|
-
readonly moduleVersion: "0.1.
|
|
40
|
+
readonly moduleVersion: "0.1.3";
|
|
41
41
|
readonly ok: false;
|
|
42
42
|
readonly status: "ACTION_REQUIRED";
|
|
43
43
|
readonly actionRequired: {
|
|
@@ -49,7 +49,7 @@ export declare function createBehaviorAdapter(service?: PlatformHostService): {
|
|
|
49
49
|
ok: true;
|
|
50
50
|
status: "SUCCEEDED";
|
|
51
51
|
moduleRef: "platform-host";
|
|
52
|
-
moduleVersion: "0.1.
|
|
52
|
+
moduleVersion: "0.1.3";
|
|
53
53
|
data: {
|
|
54
54
|
readiness: "READY" | "NOT_READY";
|
|
55
55
|
} | undefined;
|
|
@@ -61,7 +61,7 @@ export declare function createBehaviorAdapter(service?: PlatformHostService): {
|
|
|
61
61
|
} | {
|
|
62
62
|
contract: "deployment.result.v1";
|
|
63
63
|
moduleRef: "platform-host";
|
|
64
|
-
moduleVersion: "0.1.
|
|
64
|
+
moduleVersion: "0.1.3";
|
|
65
65
|
ok: false;
|
|
66
66
|
status: "ACTION_REQUIRED";
|
|
67
67
|
actionRequired: {
|
|
@@ -85,7 +85,7 @@ export declare function createBehaviorAdapter(service?: PlatformHostService): {
|
|
|
85
85
|
ok: true;
|
|
86
86
|
status: "SUCCEEDED";
|
|
87
87
|
moduleRef: "platform-host";
|
|
88
|
-
moduleVersion: "0.1.
|
|
88
|
+
moduleVersion: "0.1.3";
|
|
89
89
|
checks: {
|
|
90
90
|
id: string;
|
|
91
91
|
status: "FAIL" | "PASS";
|
|
@@ -94,7 +94,7 @@ export declare function createBehaviorAdapter(service?: PlatformHostService): {
|
|
|
94
94
|
} | {
|
|
95
95
|
contract: "deployment.result.v1";
|
|
96
96
|
moduleRef: "platform-host";
|
|
97
|
-
moduleVersion: "0.1.
|
|
97
|
+
moduleVersion: "0.1.3";
|
|
98
98
|
ok: false;
|
|
99
99
|
status: "ACTION_REQUIRED";
|
|
100
100
|
actionRequired: {
|
|
@@ -109,7 +109,7 @@ export declare function createBehaviorAdapter(service?: PlatformHostService): {
|
|
|
109
109
|
} | {
|
|
110
110
|
contract: "deployment.result.v1";
|
|
111
111
|
moduleRef: "platform-host";
|
|
112
|
-
moduleVersion: "0.1.
|
|
112
|
+
moduleVersion: "0.1.3";
|
|
113
113
|
ok: false;
|
|
114
114
|
status: "ACTION_REQUIRED";
|
|
115
115
|
actionRequired: {
|
|
@@ -130,7 +130,7 @@ export declare function createBehaviorAdapter(service?: PlatformHostService): {
|
|
|
130
130
|
readonly ok: true;
|
|
131
131
|
readonly status: "SUCCEEDED";
|
|
132
132
|
readonly moduleRef: "platform-host";
|
|
133
|
-
readonly moduleVersion: "0.1.
|
|
133
|
+
readonly moduleVersion: "0.1.3";
|
|
134
134
|
};
|
|
135
135
|
observedEffects: never[];
|
|
136
136
|
};
|
|
@@ -138,7 +138,7 @@ export declare function createBehaviorAdapter(service?: PlatformHostService): {
|
|
|
138
138
|
result: {
|
|
139
139
|
readonly contract: "deployment.result.v1";
|
|
140
140
|
readonly moduleRef: "platform-host";
|
|
141
|
-
readonly moduleVersion: "0.1.
|
|
141
|
+
readonly moduleVersion: "0.1.3";
|
|
142
142
|
readonly ok: false;
|
|
143
143
|
readonly status: "ACTION_REQUIRED";
|
|
144
144
|
readonly actionRequired: {
|
|
@@ -150,7 +150,7 @@ export declare function createBehaviorAdapter(service?: PlatformHostService): {
|
|
|
150
150
|
ok: true;
|
|
151
151
|
status: "SUCCEEDED";
|
|
152
152
|
moduleRef: "platform-host";
|
|
153
|
-
moduleVersion: "0.1.
|
|
153
|
+
moduleVersion: "0.1.3";
|
|
154
154
|
data: {
|
|
155
155
|
host: string;
|
|
156
156
|
port: number;
|
|
@@ -164,11 +164,11 @@ export declare function createBehaviorAdapter(service?: PlatformHostService): {
|
|
|
164
164
|
readonly ok: true;
|
|
165
165
|
readonly status: "SUCCEEDED";
|
|
166
166
|
readonly moduleRef: "platform-host";
|
|
167
|
-
readonly moduleVersion: "0.1.
|
|
167
|
+
readonly moduleVersion: "0.1.3";
|
|
168
168
|
} | {
|
|
169
169
|
readonly contract: "deployment.result.v1";
|
|
170
170
|
readonly moduleRef: "platform-host";
|
|
171
|
-
readonly moduleVersion: "0.1.
|
|
171
|
+
readonly moduleVersion: "0.1.3";
|
|
172
172
|
readonly ok: false;
|
|
173
173
|
readonly status: "ACTION_REQUIRED";
|
|
174
174
|
readonly actionRequired: {
|
|
@@ -182,7 +182,7 @@ export declare function createBehaviorAdapter(service?: PlatformHostService): {
|
|
|
182
182
|
result: {
|
|
183
183
|
readonly contract: "deployment.result.v1";
|
|
184
184
|
readonly moduleRef: "platform-host";
|
|
185
|
-
readonly moduleVersion: "0.1.
|
|
185
|
+
readonly moduleVersion: "0.1.3";
|
|
186
186
|
readonly ok: false;
|
|
187
187
|
readonly status: "ACTION_REQUIRED";
|
|
188
188
|
readonly actionRequired: {
|
|
@@ -194,7 +194,7 @@ export declare function createBehaviorAdapter(service?: PlatformHostService): {
|
|
|
194
194
|
ok: true;
|
|
195
195
|
status: "SUCCEEDED";
|
|
196
196
|
moduleRef: "platform-host";
|
|
197
|
-
moduleVersion: "0.1.
|
|
197
|
+
moduleVersion: "0.1.3";
|
|
198
198
|
data: {
|
|
199
199
|
host: string;
|
|
200
200
|
port: number;
|
|
@@ -208,17 +208,7 @@ export declare function createBehaviorAdapter(service?: PlatformHostService): {
|
|
|
208
208
|
readonly ok: true;
|
|
209
209
|
readonly status: "SUCCEEDED";
|
|
210
210
|
readonly moduleRef: "platform-host";
|
|
211
|
-
readonly moduleVersion: "0.1.
|
|
212
|
-
} | {
|
|
213
|
-
readonly contract: "deployment.result.v1";
|
|
214
|
-
readonly moduleRef: "platform-host";
|
|
215
|
-
readonly moduleVersion: "0.1.1";
|
|
216
|
-
readonly ok: false;
|
|
217
|
-
readonly status: "ACTION_REQUIRED";
|
|
218
|
-
readonly actionRequired: {
|
|
219
|
-
readonly action: "compose-platform-host";
|
|
220
|
-
readonly description: "Provide validated Host configuration and owner transports";
|
|
221
|
-
};
|
|
211
|
+
readonly moduleVersion: "0.1.3";
|
|
222
212
|
};
|
|
223
213
|
observedEffects: string[];
|
|
224
214
|
}>;
|
|
@@ -230,7 +220,7 @@ export declare const behaviorAdapter: {
|
|
|
230
220
|
readonly ok: true;
|
|
231
221
|
readonly status: "SUCCEEDED";
|
|
232
222
|
readonly moduleRef: "platform-host";
|
|
233
|
-
readonly moduleVersion: "0.1.
|
|
223
|
+
readonly moduleVersion: "0.1.3";
|
|
234
224
|
};
|
|
235
225
|
observedEffects: never[];
|
|
236
226
|
};
|
|
@@ -240,7 +230,7 @@ export declare const behaviorAdapter: {
|
|
|
240
230
|
readonly ok: true;
|
|
241
231
|
readonly status: "SUCCEEDED";
|
|
242
232
|
readonly moduleRef: "platform-host";
|
|
243
|
-
readonly moduleVersion: "0.1.
|
|
233
|
+
readonly moduleVersion: "0.1.3";
|
|
244
234
|
};
|
|
245
235
|
observedEffects: never[];
|
|
246
236
|
};
|
|
@@ -248,7 +238,7 @@ export declare const behaviorAdapter: {
|
|
|
248
238
|
result: {
|
|
249
239
|
readonly contract: "deployment.result.v1";
|
|
250
240
|
readonly moduleRef: "platform-host";
|
|
251
|
-
readonly moduleVersion: "0.1.
|
|
241
|
+
readonly moduleVersion: "0.1.3";
|
|
252
242
|
readonly ok: false;
|
|
253
243
|
readonly status: "ACTION_REQUIRED";
|
|
254
244
|
readonly actionRequired: {
|
|
@@ -260,7 +250,7 @@ export declare const behaviorAdapter: {
|
|
|
260
250
|
ok: true;
|
|
261
251
|
status: "SUCCEEDED";
|
|
262
252
|
moduleRef: "platform-host";
|
|
263
|
-
moduleVersion: "0.1.
|
|
253
|
+
moduleVersion: "0.1.3";
|
|
264
254
|
data: {
|
|
265
255
|
readiness: "READY" | "NOT_READY";
|
|
266
256
|
} | undefined;
|
|
@@ -272,7 +262,7 @@ export declare const behaviorAdapter: {
|
|
|
272
262
|
} | {
|
|
273
263
|
contract: "deployment.result.v1";
|
|
274
264
|
moduleRef: "platform-host";
|
|
275
|
-
moduleVersion: "0.1.
|
|
265
|
+
moduleVersion: "0.1.3";
|
|
276
266
|
ok: false;
|
|
277
267
|
status: "ACTION_REQUIRED";
|
|
278
268
|
actionRequired: {
|
|
@@ -296,7 +286,7 @@ export declare const behaviorAdapter: {
|
|
|
296
286
|
ok: true;
|
|
297
287
|
status: "SUCCEEDED";
|
|
298
288
|
moduleRef: "platform-host";
|
|
299
|
-
moduleVersion: "0.1.
|
|
289
|
+
moduleVersion: "0.1.3";
|
|
300
290
|
checks: {
|
|
301
291
|
id: string;
|
|
302
292
|
status: "FAIL" | "PASS";
|
|
@@ -305,7 +295,7 @@ export declare const behaviorAdapter: {
|
|
|
305
295
|
} | {
|
|
306
296
|
contract: "deployment.result.v1";
|
|
307
297
|
moduleRef: "platform-host";
|
|
308
|
-
moduleVersion: "0.1.
|
|
298
|
+
moduleVersion: "0.1.3";
|
|
309
299
|
ok: false;
|
|
310
300
|
status: "ACTION_REQUIRED";
|
|
311
301
|
actionRequired: {
|
|
@@ -320,7 +310,7 @@ export declare const behaviorAdapter: {
|
|
|
320
310
|
} | {
|
|
321
311
|
contract: "deployment.result.v1";
|
|
322
312
|
moduleRef: "platform-host";
|
|
323
|
-
moduleVersion: "0.1.
|
|
313
|
+
moduleVersion: "0.1.3";
|
|
324
314
|
ok: false;
|
|
325
315
|
status: "ACTION_REQUIRED";
|
|
326
316
|
actionRequired: {
|
|
@@ -341,7 +331,7 @@ export declare const behaviorAdapter: {
|
|
|
341
331
|
readonly ok: true;
|
|
342
332
|
readonly status: "SUCCEEDED";
|
|
343
333
|
readonly moduleRef: "platform-host";
|
|
344
|
-
readonly moduleVersion: "0.1.
|
|
334
|
+
readonly moduleVersion: "0.1.3";
|
|
345
335
|
};
|
|
346
336
|
observedEffects: never[];
|
|
347
337
|
};
|
|
@@ -349,7 +339,7 @@ export declare const behaviorAdapter: {
|
|
|
349
339
|
result: {
|
|
350
340
|
readonly contract: "deployment.result.v1";
|
|
351
341
|
readonly moduleRef: "platform-host";
|
|
352
|
-
readonly moduleVersion: "0.1.
|
|
342
|
+
readonly moduleVersion: "0.1.3";
|
|
353
343
|
readonly ok: false;
|
|
354
344
|
readonly status: "ACTION_REQUIRED";
|
|
355
345
|
readonly actionRequired: {
|
|
@@ -361,7 +351,7 @@ export declare const behaviorAdapter: {
|
|
|
361
351
|
ok: true;
|
|
362
352
|
status: "SUCCEEDED";
|
|
363
353
|
moduleRef: "platform-host";
|
|
364
|
-
moduleVersion: "0.1.
|
|
354
|
+
moduleVersion: "0.1.3";
|
|
365
355
|
data: {
|
|
366
356
|
host: string;
|
|
367
357
|
port: number;
|
|
@@ -375,11 +365,11 @@ export declare const behaviorAdapter: {
|
|
|
375
365
|
readonly ok: true;
|
|
376
366
|
readonly status: "SUCCEEDED";
|
|
377
367
|
readonly moduleRef: "platform-host";
|
|
378
|
-
readonly moduleVersion: "0.1.
|
|
368
|
+
readonly moduleVersion: "0.1.3";
|
|
379
369
|
} | {
|
|
380
370
|
readonly contract: "deployment.result.v1";
|
|
381
371
|
readonly moduleRef: "platform-host";
|
|
382
|
-
readonly moduleVersion: "0.1.
|
|
372
|
+
readonly moduleVersion: "0.1.3";
|
|
383
373
|
readonly ok: false;
|
|
384
374
|
readonly status: "ACTION_REQUIRED";
|
|
385
375
|
readonly actionRequired: {
|
|
@@ -393,7 +383,7 @@ export declare const behaviorAdapter: {
|
|
|
393
383
|
result: {
|
|
394
384
|
readonly contract: "deployment.result.v1";
|
|
395
385
|
readonly moduleRef: "platform-host";
|
|
396
|
-
readonly moduleVersion: "0.1.
|
|
386
|
+
readonly moduleVersion: "0.1.3";
|
|
397
387
|
readonly ok: false;
|
|
398
388
|
readonly status: "ACTION_REQUIRED";
|
|
399
389
|
readonly actionRequired: {
|
|
@@ -405,7 +395,7 @@ export declare const behaviorAdapter: {
|
|
|
405
395
|
ok: true;
|
|
406
396
|
status: "SUCCEEDED";
|
|
407
397
|
moduleRef: "platform-host";
|
|
408
|
-
moduleVersion: "0.1.
|
|
398
|
+
moduleVersion: "0.1.3";
|
|
409
399
|
data: {
|
|
410
400
|
host: string;
|
|
411
401
|
port: number;
|
|
@@ -419,17 +409,7 @@ export declare const behaviorAdapter: {
|
|
|
419
409
|
readonly ok: true;
|
|
420
410
|
readonly status: "SUCCEEDED";
|
|
421
411
|
readonly moduleRef: "platform-host";
|
|
422
|
-
readonly moduleVersion: "0.1.
|
|
423
|
-
} | {
|
|
424
|
-
readonly contract: "deployment.result.v1";
|
|
425
|
-
readonly moduleRef: "platform-host";
|
|
426
|
-
readonly moduleVersion: "0.1.1";
|
|
427
|
-
readonly ok: false;
|
|
428
|
-
readonly status: "ACTION_REQUIRED";
|
|
429
|
-
readonly actionRequired: {
|
|
430
|
-
readonly action: "compose-platform-host";
|
|
431
|
-
readonly description: "Provide validated Host configuration and owner transports";
|
|
432
|
-
};
|
|
412
|
+
readonly moduleVersion: "0.1.3";
|
|
433
413
|
};
|
|
434
414
|
observedEffects: string[];
|
|
435
415
|
}>;
|
|
@@ -101,7 +101,10 @@ export function createBehaviorAdapter(service) {
|
|
|
101
101
|
if (service)
|
|
102
102
|
await service.stop();
|
|
103
103
|
return {
|
|
104
|
-
|
|
104
|
+
// Uninstall is idempotent: an unbound service means there is no
|
|
105
|
+
// process to stop before package removal. Runtime readiness still
|
|
106
|
+
// fails closed in status/start/verify.
|
|
107
|
+
result: base,
|
|
105
108
|
observedEffects: service ? ["Manage the platform-host process"] : [],
|
|
106
109
|
};
|
|
107
110
|
},
|
|
@@ -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.3";
|
|
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.3",
|
|
7
7
|
kind: "service",
|
|
8
8
|
templateVersion: "1.0.0",
|
|
9
9
|
platformCompatibility: ">=1.0.0 <2.0.0",
|
package/dist/src/cli.js
CHANGED
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
import { spawnSync } from "node:child_process";
|
|
3
3
|
import { createPlatformHost, loadPlatformHostConfig } from "./index.js";
|
|
4
4
|
function installSelf() {
|
|
5
|
-
const executable = process.platform === "win32" ? "
|
|
6
|
-
const result = spawnSync(executable, [
|
|
7
|
-
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (result.error)
|
|
5
|
+
const executable = process.platform === "win32" ? "platform.cmd" : "platform";
|
|
6
|
+
const result = spawnSync(executable, ["install", "@tomflow/proflow-platform-host", "--workspace", process.cwd()], { cwd: process.cwd(), env: process.env, stdio: "inherit" });
|
|
7
|
+
if (result.error) {
|
|
8
|
+
if (result.error.code === "ENOENT") {
|
|
9
|
+
process.stderr.write("GLOBAL_PLATFORM_CLI_REQUIRED: install @tomflow/proflow-platform-cli globally before package-owned install\n");
|
|
10
|
+
process.exit(127);
|
|
11
|
+
}
|
|
13
12
|
throw result.error;
|
|
13
|
+
}
|
|
14
14
|
process.exit(result.status ?? 1);
|
|
15
15
|
}
|
|
16
16
|
async function main() {
|
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.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -22,19 +22,19 @@
|
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"zod": "4.1.12",
|
|
25
|
-
"@tomflow/proflow-
|
|
26
|
-
"@tomflow/proflow-
|
|
27
|
-
"@tomflow/proflow-
|
|
28
|
-
"@tomflow/proflow-
|
|
29
|
-
"@tomflow/proflow-task-
|
|
30
|
-
"@tomflow/proflow-
|
|
25
|
+
"@tomflow/proflow-task-migration-runner": "^0.1.2",
|
|
26
|
+
"@tomflow/proflow-agent-runtime": "^0.1.1",
|
|
27
|
+
"@tomflow/proflow-execution-browser-extension": "^0.1.3",
|
|
28
|
+
"@tomflow/proflow-execution-contracts": "^0.1.2",
|
|
29
|
+
"@tomflow/proflow-task-store-sqlite": "^0.1.2",
|
|
30
|
+
"@tomflow/proflow-task-orchestration": "^0.1.1"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@tomflow/proflow-
|
|
34
|
-
"@tomflow/proflow-
|
|
35
|
-
"@tomflow/proflow-
|
|
36
|
-
"@tomflow/proflow-
|
|
37
|
-
"@tomflow/proflow-
|
|
33
|
+
"@tomflow/proflow-execution-runtime": "^0.1.2",
|
|
34
|
+
"@tomflow/proflow-module-contract": "^0.1.1",
|
|
35
|
+
"@tomflow/proflow-deployment-conformance": "^0.1.2",
|
|
36
|
+
"@tomflow/proflow-model-runtime": "^0.1.3",
|
|
37
|
+
"@tomflow/proflow-agent-gateway": "^0.1.3"
|
|
38
38
|
},
|
|
39
39
|
"description": "Provides the ProFlow local application composition root that binds Task, Agent, Execution and Model owner transports.",
|
|
40
40
|
"keywords": [
|
package/proflow.module.json
CHANGED