@owlmeans/viable-common 0.0.7 → 0.0.9
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/build/connect/entrypoints.d.ts +3 -3
- package/build/connect/entrypoints.d.ts.map +1 -1
- package/build/connect/entrypoints.js +84 -74
- package/build/connect/entrypoints.js.map +1 -1
- package/package.json +6 -6
- package/src/connect/entrypoints.ts +47 -33
- package/tests/connect-entrypoints.spec.ts +17 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { EntrypointTree } from '@owlmeans/entrypoint';
|
|
2
2
|
/**
|
|
3
3
|
* What the platform injects when it mounts the connector routes.
|
|
4
4
|
*
|
|
@@ -33,9 +33,9 @@ export interface ConnectEntrypointOptions {
|
|
|
33
33
|
/**
|
|
34
34
|
* Declare the connector's HTTP and socket surface.
|
|
35
35
|
*
|
|
36
|
-
* One
|
|
36
|
+
* One immutable tree, mounted directly by the platform's entrypoint tree. Handlers are bound to these protocols
|
|
37
37
|
* server-side and onto client entrypoints in the SDK — the same declarations both times, which is
|
|
38
38
|
* what makes a path or a schema impossible to get wrong on one side only.
|
|
39
39
|
*/
|
|
40
|
-
export declare const
|
|
40
|
+
export declare const connectProtocols: (opts: ConnectEntrypointOptions) => EntrypointTree;
|
|
41
41
|
//# sourceMappingURL=entrypoints.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoints.d.ts","sourceRoot":"","sources":["../../src/connect/entrypoints.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"entrypoints.d.ts","sourceRoot":"","sources":["../../src/connect/entrypoints.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAiB1D;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACvC,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAA;IACb,mEAAmE;IACnE,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;IAC1C;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;IAC9C,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAA;IAClB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,SAAU,wBAAwB,KAAG,cAuLjE,CAAA"}
|
|
@@ -5,11 +5,11 @@ import { ConnectAttachBodySchema, ConnectConfirmBodySchema, ConnectCreateBodySch
|
|
|
5
5
|
/**
|
|
6
6
|
* Declare the connector's HTTP and socket surface.
|
|
7
7
|
*
|
|
8
|
-
* One
|
|
8
|
+
* One immutable tree, mounted directly by the platform's entrypoint tree. Handlers are bound to these protocols
|
|
9
9
|
* server-side and onto client entrypoints in the SDK — the same declarations both times, which is
|
|
10
10
|
* what makes a path or a schema impossible to get wrong on one side only.
|
|
11
11
|
*/
|
|
12
|
-
export const
|
|
12
|
+
export const connectProtocols = (opts) => {
|
|
13
13
|
const prefix = opts.path ?? '/connect';
|
|
14
14
|
const ownership = opts.gate != null
|
|
15
15
|
? { guards: opts.guard, gate: opts.gate }
|
|
@@ -17,84 +17,94 @@ export const connectEntrypoints = (opts) => {
|
|
|
17
17
|
const paid = opts.localLlm != null
|
|
18
18
|
? { gate: opts.localLlm }
|
|
19
19
|
: undefined;
|
|
20
|
-
return
|
|
21
|
-
openProtocol(route(connect.base, prefix), ownership),
|
|
22
|
-
openProtocol(route(connect.capabilities, '/capabilities', {
|
|
20
|
+
return {
|
|
21
|
+
base: openProtocol(route(connect.base, prefix), ownership),
|
|
22
|
+
capabilities: openProtocol(route(connect.capabilities, '/capabilities', {
|
|
23
23
|
parent: connect.base, method: RouteMethod.GET
|
|
24
24
|
})),
|
|
25
25
|
// --- session ---------------------------------------------------------------------------
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
26
|
+
session: {
|
|
27
|
+
open: protocol(route(connect.session.open, '/session', { parent: connect.base, method: RouteMethod.POST }), contract.request({ body: typed(ConnectSessionOpenSchema) }, typed())),
|
|
28
|
+
openDelegated: protocol(route(connect.session.openDelegated, '/session/delegated', {
|
|
29
|
+
parent: connect.base, method: RouteMethod.POST
|
|
30
|
+
}), contract.request({ body: typed(ConnectSessionOpenSchema) }, typed()), paid),
|
|
31
|
+
get: protocol(route(connect.session.get, '/session/:sessionId', {
|
|
32
|
+
parent: connect.base, method: RouteMethod.GET
|
|
33
|
+
}), contract.request({ params: typed(ConnectSessionParamsSchema) }, typed())),
|
|
34
|
+
heartbeat: protocol(route(connect.session.heartbeat, '/session/:sessionId/heartbeat', {
|
|
35
|
+
parent: connect.base, method: RouteMethod.POST
|
|
36
|
+
}), contract.request({ params: typed(ConnectSessionParamsSchema) }, typed())),
|
|
37
|
+
close: protocol(route(connect.session.close, '/session/:sessionId/close', {
|
|
38
|
+
parent: connect.base, method: RouteMethod.POST
|
|
39
|
+
}), contract.request({ params: typed(ConnectSessionParamsSchema) }, typed())),
|
|
40
|
+
socket: protocol(route(connect.session.socket, '/connect/:sessionId', socket(opts.updateBase)), contract.request({ params: typed(ConnectSessionParamsSchema) }, typed())),
|
|
41
|
+
},
|
|
40
42
|
// --- operations ------------------------------------------------------------------------
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
op: {
|
|
44
|
+
pull: protocol(route(connect.op.pull, '/session/:sessionId/ops', {
|
|
45
|
+
parent: connect.base, method: RouteMethod.GET
|
|
46
|
+
}), contract.request({ params: typed(ConnectSessionParamsSchema), query: typed(ConnectWaitQuerySchema) }, typed())),
|
|
47
|
+
submit: protocol(route(connect.op.submit, '/session/:sessionId/ops/:opId', {
|
|
48
|
+
parent: connect.base, method: RouteMethod.POST
|
|
49
|
+
}), contract.request({ params: typed(ConnectOpParamsSchema), body: typed(ConnectOpResultSchema) }, typed())),
|
|
50
|
+
},
|
|
47
51
|
// --- project ---------------------------------------------------------------------------
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
52
|
+
project: {
|
|
53
|
+
create: protocol(route(connect.project.create, '/project', { parent: connect.base, method: RouteMethod.POST }), contract.request({ body: typed(ConnectCreateBodySchema) }, typed())),
|
|
54
|
+
list: openProtocol(route(connect.project.list, '/project', {
|
|
55
|
+
parent: connect.base, method: RouteMethod.GET
|
|
56
|
+
})),
|
|
57
|
+
attach: protocol(route(connect.project.attach, '/project/attach', {
|
|
58
|
+
parent: connect.base, method: RouteMethod.POST
|
|
59
|
+
}), contract.request({ body: typed(ConnectAttachBodySchema) }, typed())),
|
|
60
|
+
confirm: protocol(route(connect.project.confirm, '/project/:id/confirm', {
|
|
61
|
+
parent: connect.base, method: RouteMethod.POST
|
|
62
|
+
}), contract.request({ params: typed(ConnectProjectIdSchema), body: typed(ConnectConfirmBodySchema) }, typed())),
|
|
63
|
+
status: protocol(route(connect.project.status, '/project/:id/status', {
|
|
64
|
+
parent: connect.base, method: RouteMethod.GET
|
|
65
|
+
}), contract.request({ params: typed(ConnectProjectIdSchema) }, typed())),
|
|
66
|
+
reinit: protocol(route(connect.project.reinit, '/project/:id/reinit', {
|
|
67
|
+
parent: connect.base, method: RouteMethod.POST
|
|
68
|
+
}), contract.request({ params: typed(ConnectProjectIdSchema) }, typed())),
|
|
69
|
+
modify: protocol(route(connect.project.modify, '/project/:id/modify', {
|
|
70
|
+
parent: connect.base, method: RouteMethod.POST
|
|
71
|
+
}), contract.request({ params: typed(ConnectProjectIdSchema), body: typed(ConnectModifyBodySchema) }, typed())),
|
|
72
|
+
settings: protocol(route(connect.project.settings, '/project/:id/settings', {
|
|
73
|
+
parent: connect.base, method: RouteMethod.GET
|
|
74
|
+
}), contract.request({ params: typed(ConnectProjectIdSchema) }, typed())),
|
|
75
|
+
llm: protocol(route(connect.project.llm, '/project/:id/llm', {
|
|
76
|
+
parent: connect.base, method: RouteMethod.POST
|
|
77
|
+
}), contract.request({ params: typed(ConnectProjectIdSchema), body: typed(ConnectProjectLlmBodySchema) }, typed()), paid),
|
|
78
|
+
job: protocol(route(connect.project.job, '/project/:id/job/:jobId', {
|
|
79
|
+
parent: connect.base, method: RouteMethod.GET
|
|
80
|
+
}), contract.request({ params: typed(ConnectJobParamsSchema), query: typed(ConnectWaitQuerySchema) }, typed())),
|
|
81
|
+
},
|
|
76
82
|
// --- stories ---------------------------------------------------------------------------
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
83
|
+
story: {
|
|
84
|
+
list: protocol(route(connect.story.list, '/story/:id', { parent: connect.base, method: RouteMethod.GET }), contract.request({ params: typed(ConnectProjectIdSchema), query: typed(ConnectStoryQuerySchema) }, typed())),
|
|
85
|
+
create: protocol(route(connect.story.create, '/story/:id', { parent: connect.base, method: RouteMethod.POST }), contract.request({ params: typed(ConnectProjectIdSchema), body: typed(ConnectStoryBodySchema) }, typed())),
|
|
86
|
+
get: protocol(route(connect.story.get, '/story/:id/:storyId', {
|
|
87
|
+
parent: connect.base, method: RouteMethod.GET
|
|
88
|
+
}), contract.request({ params: typed(ConnectStoryParamsSchema) }, typed())),
|
|
89
|
+
update: protocol(route(connect.story.update, '/story/:id/:storyId', {
|
|
90
|
+
parent: connect.base, method: RouteMethod.PUT
|
|
91
|
+
}), contract.request({ params: typed(ConnectStoryParamsSchema), body: typed(ConnectStoryBodySchema) }, typed())),
|
|
92
|
+
delete: protocol(route(connect.story.delete, '/story/:id/:storyId', {
|
|
93
|
+
parent: connect.base, method: RouteMethod.DELETE
|
|
94
|
+
}), contract.request({ params: typed(ConnectStoryParamsSchema) }, typed())),
|
|
95
|
+
develop: protocol(route(connect.story.develop, '/story/:id/:storyId/develop', {
|
|
96
|
+
parent: connect.base, method: RouteMethod.POST
|
|
97
|
+
}), contract.request({ params: typed(ConnectStoryParamsSchema) }, typed())),
|
|
98
|
+
},
|
|
91
99
|
// --- pipelines -------------------------------------------------------------------------
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
100
|
+
pipeline: {
|
|
101
|
+
state: protocol(route(connect.pipeline.state, '/pipeline/:id/:runId', {
|
|
102
|
+
parent: connect.base, method: RouteMethod.GET
|
|
103
|
+
}), contract.request({ params: typed(ConnectPipelineParamsSchema) }, typed())),
|
|
104
|
+
resume: protocol(route(connect.pipeline.resume, '/pipeline/:id/:runId/resume', {
|
|
105
|
+
parent: connect.base, method: RouteMethod.POST
|
|
106
|
+
}), contract.request({ params: typed(ConnectPipelineParamsSchema), body: typed(ConnectPipelineResumeBodySchema) }, typed())),
|
|
107
|
+
},
|
|
108
|
+
};
|
|
99
109
|
};
|
|
100
110
|
//# sourceMappingURL=entrypoints.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoints.js","sourceRoot":"","sources":["../../src/connect/entrypoints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAE9E,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EACL,uBAAuB,EAAE,wBAAwB,EAAE,uBAAuB,EAC1E,sBAAsB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,qBAAqB,EAC7F,2BAA2B,EAAE,+BAA+B,EAAE,sBAAsB,EACpF,2BAA2B,EAAE,wBAAwB,EAAE,0BAA0B,EACjF,sBAAsB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,sBAAsB,EAClG,MAAM,cAAc,CAAA;AAkCrB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"entrypoints.js","sourceRoot":"","sources":["../../src/connect/entrypoints.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owlmeans/viable-common",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.9",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Runtime-free contracts of the OwlMeans Viable platform — the analysis, design and metadata shapes of a generated project, its target-shape manifest, the slot command vocabulary and the connector protocol.",
|
|
6
6
|
"type": "module",
|
|
@@ -51,11 +51,11 @@
|
|
|
51
51
|
"typescript": "^7.0.2"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@owlmeans/agent-common": "^0.1.18-rc.
|
|
55
|
-
"@owlmeans/entrypoint": "^0.1.18-rc.
|
|
56
|
-
"@owlmeans/error": "^0.1.18-rc.
|
|
57
|
-
"@owlmeans/llm-common": "^0.1.18-rc.
|
|
58
|
-
"@owlmeans/route": "^0.1.18-rc.
|
|
54
|
+
"@owlmeans/agent-common": "^0.1.18-rc.21",
|
|
55
|
+
"@owlmeans/entrypoint": "^0.1.18-rc.16",
|
|
56
|
+
"@owlmeans/error": "^0.1.18-rc.13",
|
|
57
|
+
"@owlmeans/llm-common": "^0.1.18-rc.17",
|
|
58
|
+
"@owlmeans/route": "^0.1.18-rc.14"
|
|
59
59
|
},
|
|
60
60
|
"publishConfig": {
|
|
61
61
|
"access": "public"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { contract, openProtocol, protocol, typed } from '@owlmeans/entrypoint'
|
|
2
|
-
import type {
|
|
2
|
+
import type { EntrypointTree } from '@owlmeans/entrypoint'
|
|
3
3
|
import { route, RouteMethod, socket } from '@owlmeans/route'
|
|
4
4
|
import { connect } from './consts.js'
|
|
5
5
|
import {
|
|
@@ -45,11 +45,11 @@ export interface ConnectEntrypointOptions {
|
|
|
45
45
|
/**
|
|
46
46
|
* Declare the connector's HTTP and socket surface.
|
|
47
47
|
*
|
|
48
|
-
* One
|
|
48
|
+
* One immutable tree, mounted directly by the platform's entrypoint tree. Handlers are bound to these protocols
|
|
49
49
|
* server-side and onto client entrypoints in the SDK — the same declarations both times, which is
|
|
50
50
|
* what makes a path or a schema impossible to get wrong on one side only.
|
|
51
51
|
*/
|
|
52
|
-
export const
|
|
52
|
+
export const connectProtocols = (opts: ConnectEntrypointOptions): EntrypointTree => {
|
|
53
53
|
const prefix = opts.path ?? '/connect'
|
|
54
54
|
const ownership = opts.gate != null
|
|
55
55
|
? { guards: opts.guard, gate: opts.gate }
|
|
@@ -58,164 +58,178 @@ export const connectEntrypoints = (opts: ConnectEntrypointOptions): EntrypointPr
|
|
|
58
58
|
? { gate: opts.localLlm }
|
|
59
59
|
: undefined
|
|
60
60
|
|
|
61
|
-
return
|
|
62
|
-
openProtocol(route(connect.base, prefix), ownership),
|
|
61
|
+
return {
|
|
62
|
+
base: openProtocol(route(connect.base, prefix), ownership),
|
|
63
63
|
|
|
64
|
-
openProtocol(route(connect.capabilities, '/capabilities', {
|
|
64
|
+
capabilities: openProtocol(route(connect.capabilities, '/capabilities', {
|
|
65
65
|
parent: connect.base, method: RouteMethod.GET
|
|
66
66
|
})),
|
|
67
67
|
|
|
68
68
|
// --- session ---------------------------------------------------------------------------
|
|
69
|
-
|
|
69
|
+
session: {
|
|
70
|
+
open: protocol(
|
|
70
71
|
route(connect.session.open, '/session', { parent: connect.base, method: RouteMethod.POST }),
|
|
71
72
|
contract.request({ body: typed<ConnectSessionOpen>(ConnectSessionOpenSchema) }, typed())
|
|
72
73
|
),
|
|
73
|
-
protocol(
|
|
74
|
+
openDelegated: protocol(
|
|
74
75
|
route(connect.session.openDelegated, '/session/delegated', {
|
|
75
76
|
parent: connect.base, method: RouteMethod.POST
|
|
76
77
|
}),
|
|
77
78
|
contract.request({ body: typed<ConnectSessionOpen>(ConnectSessionOpenSchema) }, typed()), paid
|
|
78
79
|
),
|
|
79
|
-
protocol(
|
|
80
|
+
get: protocol(
|
|
80
81
|
route(connect.session.get, '/session/:sessionId', {
|
|
81
82
|
parent: connect.base, method: RouteMethod.GET
|
|
82
83
|
}),
|
|
83
84
|
contract.request({ params: typed<ConnectSessionParams>(ConnectSessionParamsSchema) }, typed())
|
|
84
85
|
),
|
|
85
|
-
protocol(
|
|
86
|
+
heartbeat: protocol(
|
|
86
87
|
route(connect.session.heartbeat, '/session/:sessionId/heartbeat', {
|
|
87
88
|
parent: connect.base, method: RouteMethod.POST
|
|
88
89
|
}),
|
|
89
90
|
contract.request({ params: typed<ConnectSessionParams>(ConnectSessionParamsSchema) }, typed())
|
|
90
91
|
),
|
|
91
|
-
protocol(
|
|
92
|
+
close: protocol(
|
|
92
93
|
route(connect.session.close, '/session/:sessionId/close', {
|
|
93
94
|
parent: connect.base, method: RouteMethod.POST
|
|
94
95
|
}),
|
|
95
96
|
contract.request({ params: typed<ConnectSessionParams>(ConnectSessionParamsSchema) }, typed())
|
|
96
97
|
),
|
|
97
|
-
protocol(
|
|
98
|
+
socket: protocol(
|
|
98
99
|
route(connect.session.socket, '/connect/:sessionId', socket(opts.updateBase)),
|
|
99
100
|
contract.request({ params: typed<ConnectSessionParams>(ConnectSessionParamsSchema) }, typed())
|
|
100
101
|
),
|
|
101
102
|
|
|
103
|
+
},
|
|
104
|
+
|
|
102
105
|
// --- operations ------------------------------------------------------------------------
|
|
103
|
-
|
|
106
|
+
op: {
|
|
107
|
+
pull: protocol(
|
|
104
108
|
route(connect.op.pull, '/session/:sessionId/ops', {
|
|
105
109
|
parent: connect.base, method: RouteMethod.GET
|
|
106
110
|
}),
|
|
107
111
|
contract.request({ params: typed<ConnectSessionParams>(ConnectSessionParamsSchema), query: typed<ConnectWaitQuery>(ConnectWaitQuerySchema) }, typed())
|
|
108
112
|
),
|
|
109
|
-
protocol(
|
|
113
|
+
submit: protocol(
|
|
110
114
|
route(connect.op.submit, '/session/:sessionId/ops/:opId', {
|
|
111
115
|
parent: connect.base, method: RouteMethod.POST
|
|
112
116
|
}),
|
|
113
117
|
contract.request({ params: typed<{ sessionId: string, opId: string }>(ConnectOpParamsSchema), body: typed<ConnectOpResult>(ConnectOpResultSchema) }, typed())
|
|
114
118
|
),
|
|
115
119
|
|
|
120
|
+
},
|
|
121
|
+
|
|
116
122
|
// --- project ---------------------------------------------------------------------------
|
|
117
|
-
|
|
123
|
+
project: {
|
|
124
|
+
create: protocol(
|
|
118
125
|
route(connect.project.create, '/project', { parent: connect.base, method: RouteMethod.POST }),
|
|
119
126
|
contract.request({ body: typed<ConnectCreateBody>(ConnectCreateBodySchema) }, typed())
|
|
120
127
|
),
|
|
121
|
-
openProtocol(route(connect.project.list, '/project', {
|
|
128
|
+
list: openProtocol(route(connect.project.list, '/project', {
|
|
122
129
|
parent: connect.base, method: RouteMethod.GET
|
|
123
130
|
})),
|
|
124
|
-
protocol(
|
|
131
|
+
attach: protocol(
|
|
125
132
|
route(connect.project.attach, '/project/attach', {
|
|
126
133
|
parent: connect.base, method: RouteMethod.POST
|
|
127
134
|
}),
|
|
128
135
|
contract.request({ body: typed<ConnectAttachBody>(ConnectAttachBodySchema) }, typed())
|
|
129
136
|
),
|
|
130
|
-
protocol(
|
|
137
|
+
confirm: protocol(
|
|
131
138
|
route(connect.project.confirm, '/project/:id/confirm', {
|
|
132
139
|
parent: connect.base, method: RouteMethod.POST
|
|
133
140
|
}),
|
|
134
141
|
contract.request({ params: typed<{ id: string }>(ConnectProjectIdSchema), body: typed<ConnectConfirmBody>(ConnectConfirmBodySchema) }, typed())
|
|
135
142
|
),
|
|
136
|
-
protocol(
|
|
143
|
+
status: protocol(
|
|
137
144
|
route(connect.project.status, '/project/:id/status', {
|
|
138
145
|
parent: connect.base, method: RouteMethod.GET
|
|
139
146
|
}),
|
|
140
147
|
contract.request({ params: typed<{ id: string }>(ConnectProjectIdSchema) }, typed())
|
|
141
148
|
),
|
|
142
|
-
protocol(
|
|
149
|
+
reinit: protocol(
|
|
143
150
|
route(connect.project.reinit, '/project/:id/reinit', {
|
|
144
151
|
parent: connect.base, method: RouteMethod.POST
|
|
145
152
|
}),
|
|
146
153
|
contract.request({ params: typed<{ id: string }>(ConnectProjectIdSchema) }, typed())
|
|
147
154
|
),
|
|
148
|
-
protocol(
|
|
155
|
+
modify: protocol(
|
|
149
156
|
route(connect.project.modify, '/project/:id/modify', {
|
|
150
157
|
parent: connect.base, method: RouteMethod.POST
|
|
151
158
|
}),
|
|
152
159
|
contract.request({ params: typed<{ id: string }>(ConnectProjectIdSchema), body: typed<ConnectModifyBody>(ConnectModifyBodySchema) }, typed())
|
|
153
160
|
),
|
|
154
|
-
protocol(
|
|
161
|
+
settings: protocol(
|
|
155
162
|
route(connect.project.settings, '/project/:id/settings', {
|
|
156
163
|
parent: connect.base, method: RouteMethod.GET
|
|
157
164
|
}),
|
|
158
165
|
contract.request({ params: typed<{ id: string }>(ConnectProjectIdSchema) }, typed())
|
|
159
166
|
),
|
|
160
|
-
protocol(
|
|
167
|
+
llm: protocol(
|
|
161
168
|
route(connect.project.llm, '/project/:id/llm', {
|
|
162
169
|
parent: connect.base, method: RouteMethod.POST
|
|
163
170
|
}),
|
|
164
171
|
contract.request({ params: typed<{ id: string }>(ConnectProjectIdSchema), body: typed<ConnectProjectLlmBody>(ConnectProjectLlmBodySchema) }, typed()), paid
|
|
165
172
|
),
|
|
166
|
-
protocol(
|
|
173
|
+
job: protocol(
|
|
167
174
|
route(connect.project.job, '/project/:id/job/:jobId', {
|
|
168
175
|
parent: connect.base, method: RouteMethod.GET
|
|
169
176
|
}),
|
|
170
177
|
contract.request({ params: typed<ConnectJobParams>(ConnectJobParamsSchema), query: typed<ConnectWaitQuery>(ConnectWaitQuerySchema) }, typed())
|
|
171
178
|
),
|
|
172
179
|
|
|
180
|
+
},
|
|
181
|
+
|
|
173
182
|
// --- stories ---------------------------------------------------------------------------
|
|
174
|
-
|
|
183
|
+
story: {
|
|
184
|
+
list: protocol(
|
|
175
185
|
route(connect.story.list, '/story/:id', { parent: connect.base, method: RouteMethod.GET }),
|
|
176
186
|
contract.request({ params: typed<{ id: string }>(ConnectProjectIdSchema), query: typed<ConnectStoryQuery>(ConnectStoryQuerySchema) }, typed())
|
|
177
187
|
),
|
|
178
|
-
protocol(
|
|
188
|
+
create: protocol(
|
|
179
189
|
route(connect.story.create, '/story/:id', { parent: connect.base, method: RouteMethod.POST }),
|
|
180
190
|
contract.request({ params: typed<{ id: string }>(ConnectProjectIdSchema), body: typed<ConnectStoryBody>(ConnectStoryBodySchema) }, typed())
|
|
181
191
|
),
|
|
182
|
-
protocol(
|
|
192
|
+
get: protocol(
|
|
183
193
|
route(connect.story.get, '/story/:id/:storyId', {
|
|
184
194
|
parent: connect.base, method: RouteMethod.GET
|
|
185
195
|
}),
|
|
186
196
|
contract.request({ params: typed<{ id: string, storyId: string }>(ConnectStoryParamsSchema) }, typed())
|
|
187
197
|
),
|
|
188
|
-
protocol(
|
|
198
|
+
update: protocol(
|
|
189
199
|
route(connect.story.update, '/story/:id/:storyId', {
|
|
190
200
|
parent: connect.base, method: RouteMethod.PUT
|
|
191
201
|
}),
|
|
192
202
|
contract.request({ params: typed<{ id: string, storyId: string }>(ConnectStoryParamsSchema), body: typed<ConnectStoryBody>(ConnectStoryBodySchema) }, typed())
|
|
193
203
|
),
|
|
194
|
-
protocol(
|
|
204
|
+
delete: protocol(
|
|
195
205
|
route(connect.story.delete, '/story/:id/:storyId', {
|
|
196
206
|
parent: connect.base, method: RouteMethod.DELETE
|
|
197
207
|
}),
|
|
198
208
|
contract.request({ params: typed<{ id: string, storyId: string }>(ConnectStoryParamsSchema) }, typed())
|
|
199
209
|
),
|
|
200
|
-
protocol(
|
|
210
|
+
develop: protocol(
|
|
201
211
|
route(connect.story.develop, '/story/:id/:storyId/develop', {
|
|
202
212
|
parent: connect.base, method: RouteMethod.POST
|
|
203
213
|
}),
|
|
204
214
|
contract.request({ params: typed<{ id: string, storyId: string }>(ConnectStoryParamsSchema) }, typed())
|
|
205
215
|
),
|
|
206
216
|
|
|
217
|
+
},
|
|
218
|
+
|
|
207
219
|
// --- pipelines -------------------------------------------------------------------------
|
|
208
|
-
|
|
220
|
+
pipeline: {
|
|
221
|
+
state: protocol(
|
|
209
222
|
route(connect.pipeline.state, '/pipeline/:id/:runId', {
|
|
210
223
|
parent: connect.base, method: RouteMethod.GET
|
|
211
224
|
}),
|
|
212
225
|
contract.request({ params: typed<ConnectPipelineParams>(ConnectPipelineParamsSchema) }, typed())
|
|
213
226
|
),
|
|
214
|
-
protocol(
|
|
227
|
+
resume: protocol(
|
|
215
228
|
route(connect.pipeline.resume, '/pipeline/:id/:runId/resume', {
|
|
216
229
|
parent: connect.base, method: RouteMethod.POST
|
|
217
230
|
}),
|
|
218
231
|
contract.request({ params: typed<ConnectPipelineParams>(ConnectPipelineParamsSchema), body: typed<ConnectPipelineResumeBody>(ConnectPipelineResumeBodySchema) }, typed())
|
|
219
232
|
),
|
|
220
|
-
|
|
233
|
+
},
|
|
234
|
+
}
|
|
221
235
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { describe, expect, test } from 'bun:test'
|
|
2
|
+
import { protocols } from '@owlmeans/entrypoint'
|
|
3
|
+
import { DEFAULT_GUARD } from '@owlmeans/auth-common'
|
|
4
|
+
import { connect } from '../src/connect/consts.js'
|
|
5
|
+
import { connectProtocols } from '../src/connect/entrypoints.js'
|
|
6
|
+
|
|
7
|
+
describe('@owlmeans/viable-common — connector protocol tree', () => {
|
|
8
|
+
const tree = connectProtocols({ guard: DEFAULT_GUARD, updateBase: 'manager:update' })
|
|
9
|
+
|
|
10
|
+
test('exports named immutable declarations and a complete flat materialization view', () => {
|
|
11
|
+
expect(tree.base.alias).toBe(connect.base)
|
|
12
|
+
expect(tree.session.open.alias).toBe(connect.session.open)
|
|
13
|
+
expect(tree.project.llm.alias).toBe(connect.project.llm)
|
|
14
|
+
expect(protocols(tree)).toHaveLength(28)
|
|
15
|
+
expect(new Set(protocols(tree).map(protocol => protocol.alias)).size).toBe(28)
|
|
16
|
+
})
|
|
17
|
+
})
|