@owlmeans/viable-common 0.0.38 → 0.0.40
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 -4
- package/agent-meta/manifest.json +2 -2
- package/agent-meta/skills/agent-presentation/SKILL.md +1 -1
- package/agent-meta/skills/viable-common/SKILL.md +40 -19
- package/build/areas/index.d.ts +1 -0
- package/build/areas/index.d.ts.map +1 -1
- package/build/areas/index.js +1 -0
- package/build/areas/index.js.map +1 -1
- package/build/areas/tenancy.d.ts +55 -0
- package/build/areas/tenancy.d.ts.map +1 -0
- package/build/areas/tenancy.js +33 -0
- package/build/areas/tenancy.js.map +1 -0
- package/build/blueprint/types.d.ts +19 -1
- package/build/blueprint/types.d.ts.map +1 -1
- package/build/blueprint/types.js.map +1 -1
- package/build/connect/consts.d.ts +3 -15
- package/build/connect/consts.d.ts.map +1 -1
- package/build/connect/consts.js +3 -15
- package/build/connect/consts.js.map +1 -1
- package/build/connect/entrypoints.d.ts +33 -69
- package/build/connect/entrypoints.d.ts.map +1 -1
- package/build/connect/entrypoints.js +5 -25
- package/build/connect/entrypoints.js.map +1 -1
- package/build/connect/references.d.ts +1 -31
- package/build/connect/references.d.ts.map +1 -1
- package/build/connect/references.js +0 -7
- package/build/connect/references.js.map +1 -1
- package/build/connect/types.d.ts +1 -25
- package/build/connect/types.d.ts.map +1 -1
- package/build/dev/consts.d.ts +15 -0
- package/build/dev/consts.d.ts.map +1 -1
- package/build/dev/consts.js +16 -0
- package/build/dev/consts.js.map +1 -1
- package/build/dev/schemas.d.ts +7 -0
- package/build/dev/schemas.d.ts.map +1 -1
- package/build/dev/schemas.js +9 -1
- package/build/dev/schemas.js.map +1 -1
- package/build/dev/types.d.ts +15 -1
- package/build/dev/types.d.ts.map +1 -1
- package/build/planning/schemas.d.ts.map +1 -1
- package/build/planning/schemas.js +25 -0
- package/build/planning/schemas.js.map +1 -1
- package/build/planning/types.d.ts +9 -0
- package/build/planning/types.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/areas/index.ts +1 -0
- package/src/areas/tenancy.ts +69 -0
- package/src/blueprint/types.ts +19 -1
- package/src/connect/consts.ts +3 -16
- package/src/connect/entrypoints.ts +10 -60
- package/src/connect/references.ts +4 -26
- package/src/connect/types.ts +1 -22
- package/src/dev/consts.ts +16 -0
- package/src/dev/schemas.ts +13 -1
- package/src/dev/types.ts +15 -1
- package/src/planning/schemas.ts +25 -0
- package/src/planning/types.ts +9 -0
- package/tests/access-schema.spec.ts +37 -0
- package/tests/connect-convert.spec.ts +5 -11
- package/tests/connect-entrypoints.spec.ts +33 -14
- package/tests/planning.spec.ts +26 -0
- package/tests/tenancy.spec.ts +48 -0
package/build/dev/schemas.d.ts
CHANGED
|
@@ -10,6 +10,13 @@ export declare const TechNameSchema: JSONSchemaType<{
|
|
|
10
10
|
export declare const EntrypointRefListSchema: JSONSchemaType<{
|
|
11
11
|
entries: EntrypointRef[];
|
|
12
12
|
}>;
|
|
13
|
+
/**
|
|
14
|
+
* The access block a model writes.
|
|
15
|
+
*
|
|
16
|
+
* It names only what a model is asked for: `defaults` and `entityScoped` are written by code and
|
|
17
|
+
* must never reach a prompt, which `tests/access-schema.spec.ts` pins byte for byte. A value it
|
|
18
|
+
* admits is still an {@link AccessBlock}, because both code-written keys are optional.
|
|
19
|
+
*/
|
|
13
20
|
export declare const AccessBlockSchema: JSONSchemaType<AccessBlock>;
|
|
14
21
|
export declare const AccessListSchema: JSONSchemaType<AccessList>;
|
|
15
22
|
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/dev/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAGnF,eAAO,MAAM,eAAe,EAAE,cAAc,CAAC,SAAS,CAqBrD,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAW7D,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,CAWzD,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,aAAa,EAAE,CAAA;CAAC,CA2B9E,CAAA;
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/dev/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAGnF,eAAO,MAAM,eAAe,EAAE,cAAc,CAAC,SAAS,CAqBrD,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAW7D,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,CAWzD,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,aAAa,EAAE,CAAA;CAAC,CA2B9E,CAAA;AA4CD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAwC,cAAc,CAAC,WAAW,CAAC,CAAA;AAEjG,eAAO,MAAM,gBAAgB,EAAE,cAAc,CAAC,UAAU,CAOvD,CAAA"}
|
package/build/dev/schemas.js
CHANGED
|
@@ -73,7 +73,7 @@ export const EntrypointRefListSchema = {
|
|
|
73
73
|
required: ["entries"],
|
|
74
74
|
additionalProperties: false
|
|
75
75
|
};
|
|
76
|
-
|
|
76
|
+
const ModelAccessBlockSchema = {
|
|
77
77
|
type: "object",
|
|
78
78
|
title: "AccessBlock",
|
|
79
79
|
description: "Object with permissions array and access level",
|
|
@@ -110,6 +110,14 @@ export const AccessBlockSchema = {
|
|
|
110
110
|
required: ["permissions", "level"],
|
|
111
111
|
additionalProperties: false
|
|
112
112
|
};
|
|
113
|
+
/**
|
|
114
|
+
* The access block a model writes.
|
|
115
|
+
*
|
|
116
|
+
* It names only what a model is asked for: `defaults` and `entityScoped` are written by code and
|
|
117
|
+
* must never reach a prompt, which `tests/access-schema.spec.ts` pins byte for byte. A value it
|
|
118
|
+
* admits is still an {@link AccessBlock}, because both code-written keys are optional.
|
|
119
|
+
*/
|
|
120
|
+
export const AccessBlockSchema = ModelAccessBlockSchema;
|
|
113
121
|
export const AccessListSchema = {
|
|
114
122
|
type: "object",
|
|
115
123
|
title: "AccessList",
|
package/build/dev/schemas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/dev/schemas.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,CAAC,MAAM,eAAe,GAA8B;IACxD,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,uBAAuB;IACpC,UAAU,EAAE;QACV,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,cAAc;aAC5B;YACD,WAAW,EAAE,qBAAqB;SACnC;QACD,GAAG,EAAE;YACH,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,uDAAuD;SACrE;KACF;IACD,QAAQ,EAAE,CAAC,OAAO,CAAC;IACnB,oBAAoB,EAAE,KAAK;CAC5B,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAqC;IAChE,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,uBAAuB;IACpC,UAAU,EAAE;QACV,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,qBAAqB;SACnC;KACF;IACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;IACpB,oBAAoB,EAAE,KAAK;CAC5B,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAmC;IAC5D,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,kBAAkB;IAC/B,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,gBAAgB;SAC9B;KACF;IACD,QAAQ,EAAE,CAAC,MAAM,CAAC;IAClB,oBAAoB,EAAE,KAAK;CAC5B,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAA+C;IACjF,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,wBAAwB;IAC/B,WAAW,EAAE,mCAAmC;IAChD,UAAU,EAAE;QACV,OAAO,EAAE;YACP,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,qBAAqB;YAClC,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,4FAA4F;qBAC1G;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,mEAAmE;qBACjF;iBACF;gBACD,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;gBAC3B,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF;IACD,QAAQ,EAAE,CAAC,SAAS,CAAC;IACrB,oBAAoB,EAAE,KAAK;CAC5B,CAAA;
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/dev/schemas.ts"],"names":[],"mappings":"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"}
|
package/build/dev/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AccessLevel } from "./consts.js";
|
|
1
|
+
import type { AccessLevel, PermissionDefault } from "./consts.js";
|
|
2
2
|
export interface SourceFile {
|
|
3
3
|
path: string;
|
|
4
4
|
code: string;
|
|
@@ -29,6 +29,20 @@ export interface AccessBlock {
|
|
|
29
29
|
level: AccessLevel;
|
|
30
30
|
/** Gate params safe for every newly signed-in user; a subset of permissions. */
|
|
31
31
|
defaultEnabledPermissions?: string[];
|
|
32
|
+
/**
|
|
33
|
+
* The default class of each permission this block names, keyed by the gate param with its
|
|
34
|
+
* `@<routeParam>` selector stripped — the name the definition is registered under.
|
|
35
|
+
*
|
|
36
|
+
* Written by CODE, never by a model: `AccessBlockSchema` does not carry it, so a model answer
|
|
37
|
+
* never holds one, and what decides it is the project's tenancy and the area, not a reading of
|
|
38
|
+
* the story.
|
|
39
|
+
*/
|
|
40
|
+
defaults?: Record<string, PermissionDefault>;
|
|
41
|
+
/**
|
|
42
|
+
* Whether the permissions of this block are bound to the organization being acted in, rather than
|
|
43
|
+
* held everywhere. Written by code, like {@link AccessBlock.defaults}.
|
|
44
|
+
*/
|
|
45
|
+
entityScoped?: boolean;
|
|
32
46
|
}
|
|
33
47
|
/**
|
|
34
48
|
* Access rules keyed by ENTRYPOINT ALIAS — never by URL or route path. The alias prefix decides
|
package/build/dev/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dev/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dev/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEjE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,kBAAmB,SAAQ,OAAO,CAAC,UAAU,CAAC;IAC7D,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;;;;OAaG;IACH,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,KAAK,EAAE,WAAW,CAAA;IAClB,gFAAgF;IAChF,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAA;IACpC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAC5C;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAW,SAAQ,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9D;AAED,mGAAmG;AACnG,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/planning/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/planning/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AAQzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAExE;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,EAqDtB,cAAc,CAAC,mBAAmB,CAAC,CAAA;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAYpB,cAAc,CAAC,iBAAiB,CAAC,CAAA;AAEjD,qFAAqF;AACrF,eAAO,MAAM,sBAAsB,EAKnB,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAEvD,wFAAwF;AACxF,eAAO,MAAM,sBAAsB,EAKnB,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CODE_MAX } from '@owlmeans/planning';
|
|
2
2
|
import { ProjectArea } from '../areas/consts.js';
|
|
3
|
+
import { TENANCY_QUOTE_MAX } from '../areas/tenancy.js';
|
|
3
4
|
import { StoryKind } from '../ba/consts.js';
|
|
4
5
|
import { ConnectLlm, ConnectTarget } from '../connect/consts.js';
|
|
5
6
|
import { ProjectOriginSchema } from '../convert/schemas.js';
|
|
@@ -37,6 +38,30 @@ export const ViableProjectFieldsSchema = {
|
|
|
37
38
|
required: ['at'],
|
|
38
39
|
additionalProperties: false,
|
|
39
40
|
},
|
|
41
|
+
// An absent `tenancy` is "never decided"; a recorded one always carries both flags, so a
|
|
42
|
+
// reader never has to guess what a missing flag meant.
|
|
43
|
+
tenancy: {
|
|
44
|
+
type: 'object',
|
|
45
|
+
nullable: true,
|
|
46
|
+
properties: {
|
|
47
|
+
operators: { type: 'boolean' },
|
|
48
|
+
users: { type: 'boolean' },
|
|
49
|
+
quotes: {
|
|
50
|
+
type: 'object',
|
|
51
|
+
nullable: true,
|
|
52
|
+
properties: {
|
|
53
|
+
operators: { type: 'string', minLength: 1, maxLength: TENANCY_QUOTE_MAX, nullable: true },
|
|
54
|
+
users: { type: 'string', minLength: 1, maxLength: TENANCY_QUOTE_MAX, nullable: true },
|
|
55
|
+
},
|
|
56
|
+
required: [],
|
|
57
|
+
additionalProperties: false,
|
|
58
|
+
},
|
|
59
|
+
by: { type: 'string', enum: ['model', 'owner'] },
|
|
60
|
+
at: { type: 'string', minLength: 1, maxLength: 32 },
|
|
61
|
+
},
|
|
62
|
+
required: ['operators', 'users', 'by', 'at'],
|
|
63
|
+
additionalProperties: false,
|
|
64
|
+
},
|
|
40
65
|
},
|
|
41
66
|
required: [],
|
|
42
67
|
additionalProperties: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/planning/schemas.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/planning/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Card, Project, Specification } from '@owlmeans/planning';
|
|
2
2
|
import type { ProjectArea } from '../areas/consts.js';
|
|
3
|
+
import type { ViableTenancyDecision } from '../areas/tenancy.js';
|
|
3
4
|
import type { StoryKind } from '../ba/consts.js';
|
|
4
5
|
import type { ConnectLlm, ConnectTarget } from '../connect/consts.js';
|
|
5
6
|
import type { ProjectOrigin } from '../convert/types.js';
|
|
@@ -41,6 +42,14 @@ export type ViableProjectFields = {
|
|
|
41
42
|
* "none" and no later run would ask again. `at` is when it was decided, an ISO timestamp.
|
|
42
43
|
*/
|
|
43
44
|
landing?: ViableLandingDecision;
|
|
45
|
+
/**
|
|
46
|
+
* Whether the target splits its operators and its end users into tenant organizations.
|
|
47
|
+
*
|
|
48
|
+
* ABSENT means never decided and reads as a single-organization application, exactly as every
|
|
49
|
+
* project before tenancy. It reaches a run through the blueprint reference (`BlueprintRef.tenancy`)
|
|
50
|
+
* only when a flag is on.
|
|
51
|
+
*/
|
|
52
|
+
tenancy?: ViableTenancyDecision;
|
|
44
53
|
};
|
|
45
54
|
/** The recorded landing-gate decision — see {@link ViableProjectFields.landing}. */
|
|
46
55
|
export interface ViableLandingDecision {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/planning/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAE3D;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,yFAAyF;IACzF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,iEAAiE;IACjE,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,gGAAgG;IAChG,cAAc,CAAC,EAAE,UAAU,CAAA;IAC3B,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,UAAU,CAAA;IAC7B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,qBAAqB,CAAA;CAChC,CAAA;AAED,oFAAoF;AACpF,MAAM,WAAW,qBAAqB;IACpC,gEAAgE;IAChE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,EAAE,EAAE,MAAM,CAAA;CACX;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,0EAA0E;IAC1E,IAAI,EAAE,WAAW,CAAA;IACjB,mFAAmF;IACnF,OAAO,EAAE,OAAO,CAAA;IAChB,oCAAoC;IACpC,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,sDAAsD;IACtD,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,MAAM,WAAW,iBAAkB,SAAQ,OAAO;IAChD,MAAM,EAAE,mBAAmB,CAAA;CAC5B;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI;IAC3C,MAAM,EAAE,iBAAiB,CAAA;CAC1B;AAED,2FAA2F;AAC3F,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAAA;AAE/C;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GACzB,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC,GAC9E;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/planning/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAE3D;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,yFAAyF;IACzF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,iEAAiE;IACjE,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,gGAAgG;IAChG,cAAc,CAAC,EAAE,UAAU,CAAA;IAC3B,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,UAAU,CAAA;IAC7B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,qBAAqB,CAAA;IAC/B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,qBAAqB,CAAA;CAChC,CAAA;AAED,oFAAoF;AACpF,MAAM,WAAW,qBAAqB;IACpC,gEAAgE;IAChE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,EAAE,EAAE,MAAM,CAAA;CACX;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,0EAA0E;IAC1E,IAAI,EAAE,WAAW,CAAA;IACjB,mFAAmF;IACnF,OAAO,EAAE,OAAO,CAAA;IAChB,oCAAoC;IACpC,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,sDAAsD;IACtD,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,MAAM,WAAW,iBAAkB,SAAQ,OAAO;IAChD,MAAM,EAAE,mBAAmB,CAAA;CAC5B;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI;IAC3C,MAAM,EAAE,iBAAiB,CAAA;CAC1B;AAED,2FAA2F;AAC3F,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAAA;AAE/C;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GACzB,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC,GAC9E;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owlmeans/viable-common",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.40",
|
|
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, the connector protocol and the conversion vocabulary, and the intent-first hand-off from the public site to the platform.",
|
|
6
6
|
"type": "module",
|
|
@@ -66,14 +66,14 @@
|
|
|
66
66
|
"typescript": "^7.0.2"
|
|
67
67
|
},
|
|
68
68
|
"dependencies": {
|
|
69
|
-
"@owlmeans/agent-common": "^0.1.18-rc.
|
|
70
|
-
"@owlmeans/auth": "^0.1.18-rc.
|
|
69
|
+
"@owlmeans/agent-common": "^0.1.18-rc.44",
|
|
70
|
+
"@owlmeans/auth": "^0.1.18-rc.37",
|
|
71
71
|
"@owlmeans/context": "^0.1.18-rc.32",
|
|
72
|
-
"@owlmeans/entrypoint": "^0.1.18-rc.
|
|
72
|
+
"@owlmeans/entrypoint": "^0.1.18-rc.38",
|
|
73
73
|
"@owlmeans/error": "^0.1.18-rc.36",
|
|
74
|
-
"@owlmeans/flow": "^0.1.18-rc.
|
|
74
|
+
"@owlmeans/flow": "^0.1.18-rc.41",
|
|
75
75
|
"@owlmeans/llm-common": "^0.1.18-rc.37",
|
|
76
|
-
"@owlmeans/planning": "^0.1.18-rc.
|
|
76
|
+
"@owlmeans/planning": "^0.1.18-rc.14",
|
|
77
77
|
"@owlmeans/resource": "^0.1.18-rc.37",
|
|
78
78
|
"@owlmeans/route": "^0.1.18-rc.33"
|
|
79
79
|
},
|
package/src/areas/index.ts
CHANGED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { Blueprint } from '../blueprint/types.js'
|
|
2
|
+
import { ProjectArea } from './consts.js'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Whether a generated application splits its audiences into tenant ORGANIZATIONS.
|
|
6
|
+
*
|
|
7
|
+
* Two flags rather than one, because the two audiences split independently: one back office can
|
|
8
|
+
* serve end users who each belong to their own company (`users` only), every reseller can run its
|
|
9
|
+
* own staff over one shared public (`operators` only), and a B2B tool usually does both. An
|
|
10
|
+
* organization is an IAM-managed tenant — never a table the target keeps for itself.
|
|
11
|
+
*
|
|
12
|
+
* Both false is today's application: one organization, the project owner's, that every person acts in.
|
|
13
|
+
*/
|
|
14
|
+
export interface ProjectTenancy {
|
|
15
|
+
/** The staff of the back office are split into tenant organizations. */
|
|
16
|
+
operators: boolean
|
|
17
|
+
/** The end users of the front office are distributed across tenant organizations. */
|
|
18
|
+
users: boolean
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* A tenancy decision as the project card records it (`fields.tenancy`).
|
|
23
|
+
*
|
|
24
|
+
* The flags plus where they came from. `quotes` are the requester's OWN sentences, verbatim — the
|
|
25
|
+
* evidence a later reader (a person reviewing the board, a run asked to reconsider) checks the
|
|
26
|
+
* decision against, which a paraphrase would quietly replace with the model's reading of it.
|
|
27
|
+
* `by` says whether a model inferred it or the owner set it; `at` is when, an ISO timestamp.
|
|
28
|
+
*/
|
|
29
|
+
export interface ViableTenancyDecision extends ProjectTenancy {
|
|
30
|
+
quotes?: { operators?: string; users?: string }
|
|
31
|
+
by: 'model' | 'owner'
|
|
32
|
+
at: string
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/** The longest requester sentence a tenancy decision quotes — a card refuses a longer one. */
|
|
36
|
+
export const TENANCY_QUOTE_MAX = 1024
|
|
37
|
+
|
|
38
|
+
/** A single-organization application — what every project is until a decision says otherwise. */
|
|
39
|
+
export const NO_TENANCY: ProjectTenancy = Object.freeze({ operators: false, users: false })
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* The tenancy of a resolved blueprint.
|
|
43
|
+
*
|
|
44
|
+
* Total, like `landingGatePreferenceOf`: an absent layer, an absent key and a value this deploy
|
|
45
|
+
* cannot read all answer {@link NO_TENANCY}. Only a literal `true` turns a flag on, because a flag
|
|
46
|
+
* read as on by mistake splits a product's people into organizations nobody asked for, while one
|
|
47
|
+
* read as off leaves the application exactly as it was before tenancy existed.
|
|
48
|
+
*/
|
|
49
|
+
export const tenancyOf = (blueprint?: Pick<Blueprint, 'experience'> | null): ProjectTenancy => {
|
|
50
|
+
const tenancy = blueprint?.experience?.tenancy
|
|
51
|
+
const operators = tenancy?.operators === true
|
|
52
|
+
const users = tenancy?.users === true
|
|
53
|
+
|
|
54
|
+
return operators || users ? Object.freeze({ operators, users }) : NO_TENANCY
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Whether an AREA's people act inside a tenant organization.
|
|
59
|
+
*
|
|
60
|
+
* Guest has no organization to act in, and admin is the project owner, who stands above every
|
|
61
|
+
* tenant rather than inside one — so both are never tenanted, whatever the flags say.
|
|
62
|
+
*/
|
|
63
|
+
export const tenantedArea = (area: ProjectArea, tenancy: ProjectTenancy): boolean => {
|
|
64
|
+
switch (area) {
|
|
65
|
+
case ProjectArea.User: return tenancy.users === true
|
|
66
|
+
case ProjectArea.Operator: return tenancy.operators === true
|
|
67
|
+
default: return false
|
|
68
|
+
}
|
|
69
|
+
}
|
package/src/blueprint/types.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ProjectTenancy } from '../areas/tenancy.js'
|
|
1
2
|
import type { SubProject } from '../slot/consts.js'
|
|
2
3
|
import type { ViableSkill } from '../skills/consts.js'
|
|
3
4
|
import type { ViablePersona } from '../skills/roles.js'
|
|
@@ -21,7 +22,7 @@ import type { TopologyDescriptor } from '../topology/types.js'
|
|
|
21
22
|
* OPTIONAL and says what its product should do for the people using it. Optional because a
|
|
22
23
|
* blueprint registered before the layer existed — or a patch serialized into a run row — must keep
|
|
23
24
|
* resolving: every reader asks through a helper that answers the default for an absent layer
|
|
24
|
-
* ({@link landingGatePreferenceOf}).
|
|
25
|
+
* ({@link landingGatePreferenceOf}, `tenancyOf`).
|
|
25
26
|
*/
|
|
26
27
|
export interface Blueprint {
|
|
27
28
|
id: string
|
|
@@ -85,6 +86,14 @@ export enum LandingGatePreference {
|
|
|
85
86
|
*/
|
|
86
87
|
export interface ExperienceLayer {
|
|
87
88
|
landingGate: LandingGatePreference
|
|
89
|
+
/**
|
|
90
|
+
* Whether the product splits its audiences into tenant organizations.
|
|
91
|
+
*
|
|
92
|
+
* Written by resolution from {@link BlueprintRef.tenancy} — the project's own decision — and by
|
|
93
|
+
* no blueprint or case table, which cannot know it. Absent is a single-organization application;
|
|
94
|
+
* always read through `tenancyOf`.
|
|
95
|
+
*/
|
|
96
|
+
tenancy?: ProjectTenancy
|
|
88
97
|
}
|
|
89
98
|
|
|
90
99
|
const LANDING_GATE_PREFERENCES = new Set<string>(Object.values(LandingGatePreference))
|
|
@@ -266,5 +275,14 @@ export interface BlueprintRef {
|
|
|
266
275
|
* which is the only reading that cannot silently take a capability away from a live project.
|
|
267
276
|
*/
|
|
268
277
|
case?: string
|
|
278
|
+
/**
|
|
279
|
+
* Whether the product splits its audiences into tenant organizations — the project card's
|
|
280
|
+
* decision, resolved into `experience.tenancy`.
|
|
281
|
+
*
|
|
282
|
+
* Flags rather than a key, because the decision is the project's own and no table could hold it;
|
|
283
|
+
* two booleans are still no artifact. Absent, or both false, applies nothing, so a run row of a
|
|
284
|
+
* project nobody decided for serializes exactly as it did before tenancy existed.
|
|
285
|
+
*/
|
|
286
|
+
tenancy?: ProjectTenancy
|
|
269
287
|
overrides?: BlueprintPatch
|
|
270
288
|
}
|
package/src/connect/consts.ts
CHANGED
|
@@ -260,9 +260,9 @@ export const CONNECT_INQUIRY_MAX_TEXT = 2_000
|
|
|
260
260
|
/**
|
|
261
261
|
* How long a session survives without a sign of life.
|
|
262
262
|
*
|
|
263
|
-
* A connector refreshes its presence on every
|
|
264
|
-
*
|
|
265
|
-
*
|
|
263
|
+
* A connector refreshes its presence on every long poll and every submit. Ten minutes is generous
|
|
264
|
+
* on purpose: a parent agent running one model task in a subagent can be silent for several, and
|
|
265
|
+
* expiring a session under it would fail a run that was progressing.
|
|
266
266
|
*/
|
|
267
267
|
export const CONNECT_SESSION_EXPIRE_MS = 600_000
|
|
268
268
|
|
|
@@ -354,10 +354,6 @@ export const CONNECT_MARKER_DIR = '.viable'
|
|
|
354
354
|
export const CONNECT_ENV_BEGIN = '# --- viable:managed ---'
|
|
355
355
|
export const CONNECT_ENV_END = '# --- /viable:managed ---'
|
|
356
356
|
|
|
357
|
-
/** Socket events a connector session carries. */
|
|
358
|
-
export const CONNECT_EVENT_OP = 'connect:op'
|
|
359
|
-
export const CONNECT_EVENT_SESSION = 'connect:session'
|
|
360
|
-
|
|
361
357
|
/** Redis resource aliases the platform registers for the relay. */
|
|
362
358
|
export const CONNECT_OP_PUBSUB = 'connect-op-pubsub'
|
|
363
359
|
export const CONNECT_RESULT_PUBSUB = 'connect-result-pubsub'
|
|
@@ -381,14 +377,10 @@ export const RES_CONNECT_SESSION = 'connect-session'
|
|
|
381
377
|
*/
|
|
382
378
|
export const connect = Object.freeze({
|
|
383
379
|
base: 'viable:manager-api:connect:base',
|
|
384
|
-
capabilities: 'viable:manager-api:connect:capabilities',
|
|
385
380
|
session: Object.freeze({
|
|
386
381
|
open: 'viable:manager-api:connect:session:open',
|
|
387
382
|
openDelegated: 'viable:manager-api:connect:session:open-delegated',
|
|
388
|
-
get: 'viable:manager-api:connect:session:get',
|
|
389
|
-
heartbeat: 'viable:manager-api:connect:session:heartbeat',
|
|
390
383
|
close: 'viable:manager-api:connect:session:close',
|
|
391
|
-
socket: 'viable:manager-api:connect:session:socket',
|
|
392
384
|
}),
|
|
393
385
|
op: Object.freeze({
|
|
394
386
|
pull: 'viable:manager-api:connect:op:pull',
|
|
@@ -402,10 +394,6 @@ export const connect = Object.freeze({
|
|
|
402
394
|
attach: 'viable:manager-api:connect:project:attach',
|
|
403
395
|
reinit: 'viable:manager-api:connect:project:reinit',
|
|
404
396
|
modify: 'viable:manager-api:connect:project:modify',
|
|
405
|
-
settings: 'viable:manager-api:connect:project:settings',
|
|
406
|
-
llm: 'viable:manager-api:connect:project:llm',
|
|
407
|
-
/** The per-project converter inference mode. Separate from `llm`: it is not a paid capability. */
|
|
408
|
-
converterLlm: 'viable:manager-api:connect:project:converter-llm',
|
|
409
397
|
/**
|
|
410
398
|
* The project's own branding — copyright, organization, the two legal links, the Google tag.
|
|
411
399
|
* The platform credit is deliberately NOT here: hiding it is a paid capability with its own
|
|
@@ -424,7 +412,6 @@ export const connect = Object.freeze({
|
|
|
424
412
|
check: 'viable:manager-api:connect:convert:check',
|
|
425
413
|
start: 'viable:manager-api:connect:convert:start',
|
|
426
414
|
proceed: 'viable:manager-api:connect:convert:proceed',
|
|
427
|
-
cancel: 'viable:manager-api:connect:convert:cancel',
|
|
428
415
|
status: 'viable:manager-api:connect:convert:status',
|
|
429
416
|
purge: 'viable:manager-api:connect:convert:purge',
|
|
430
417
|
}),
|
|
@@ -1,26 +1,23 @@
|
|
|
1
1
|
import { contract, openProtocol, protocol, typed } from '@owlmeans/entrypoint'
|
|
2
|
-
import
|
|
3
|
-
import { route, RouteMethod, socket } from '@owlmeans/route'
|
|
4
|
-
import { ConverterProjectLlmBodySchema } from '../convert/schemas.js'
|
|
2
|
+
import { route, RouteMethod } from '@owlmeans/route'
|
|
5
3
|
import { connect } from './consts.js'
|
|
6
4
|
import {
|
|
7
5
|
ConnectAttachBodySchema, ConnectConfirmBodySchema, ConnectConvertCreateBodySchema,
|
|
8
6
|
ConnectConvertProceedBodySchema, ConnectCreateBodySchema, ConnectInquiryParamsSchema,
|
|
9
7
|
ConnectModifyBodySchema, ConnectOpParamsSchema, ConnectOpResultSchema,
|
|
10
8
|
ConnectPipelineParamsSchema, ConnectPipelineResumeBodySchema, ConnectProjectBrandingSaveSchema,
|
|
11
|
-
ConnectProjectIdSchema,
|
|
12
|
-
|
|
9
|
+
ConnectProjectIdSchema, ConnectSessionOpenSchema, ConnectSessionParamsSchema, ConnectPullQuerySchema,
|
|
10
|
+
ConnectStoryParamsSchema, InquiryAnswerSchema,
|
|
13
11
|
} from './schemas.js'
|
|
14
12
|
import type {
|
|
15
13
|
ConnectAttachBody, ConnectConfirmBody, ConnectConvertCreateBody, ConnectConvertProceedBody,
|
|
16
14
|
ConnectCreateBody, ConnectInquiryAnswerBody, ConnectModifyBody,
|
|
17
15
|
ConnectPipelineParams, ConnectPipelineResumeBody, ConnectProjectBranding,
|
|
18
|
-
ConnectProjectBrandingSave,
|
|
16
|
+
ConnectProjectBrandingSave, ConnectSessionOpen,
|
|
19
17
|
ConnectPipelineState, ConnectProjectStatus, ConnectPullQuery, ConnectSessionParams,
|
|
20
18
|
ConnectStoryStatus, ConversionStatusView, ConvertCheck,
|
|
21
19
|
} from './types.js'
|
|
22
20
|
import type { ConnectOpResult } from './ops.js'
|
|
23
|
-
import type { ConverterProjectLlmBody } from '../convert/types.js'
|
|
24
21
|
|
|
25
22
|
/**
|
|
26
23
|
* What the platform injects when it mounts the connector routes.
|
|
@@ -37,19 +34,19 @@ export interface ConnectEntrypointOptions {
|
|
|
37
34
|
/**
|
|
38
35
|
* The gate that decides whether the caller may use the local-LLM mode.
|
|
39
36
|
*
|
|
40
|
-
* Applied to the
|
|
41
|
-
*
|
|
42
|
-
*
|
|
37
|
+
* Applied to the one route that turns it on — opening a delegated session. Everything else is
|
|
38
|
+
* free: `cloud` is the default, and a project's own override is the platform's browser surface,
|
|
39
|
+
* not the connector's.
|
|
43
40
|
*/
|
|
44
41
|
localLlm?: { alias: string, params: string[] }
|
|
45
|
-
/** The platform-owned websocket-base protocol that carries session updates. */
|
|
46
|
-
updateBase: EntrypointProtocol<OpenRequest, OpenValue>
|
|
47
42
|
/** Path prefix; defaults to `/connect`. */
|
|
48
43
|
path?: string
|
|
49
44
|
}
|
|
50
45
|
|
|
51
46
|
/**
|
|
52
|
-
* Declare the connector's HTTP
|
|
47
|
+
* Declare the connector's HTTP surface — exactly the routes a connector calls: the session (long
|
|
48
|
+
* poll, no socket), the operation relay, projects, story status, generated files, conversion,
|
|
49
|
+
* inquiry answers and pipeline state.
|
|
53
50
|
*
|
|
54
51
|
* One immutable tree, mounted directly by the platform's entrypoint tree. Handlers are bound to these protocols
|
|
55
52
|
* server-side and onto client entrypoints in the SDK — the same declarations both times, which is
|
|
@@ -69,11 +66,6 @@ export const connectProtocols = (opts: ConnectEntrypointOptions) => {
|
|
|
69
66
|
return {
|
|
70
67
|
base,
|
|
71
68
|
|
|
72
|
-
capabilities: protocol(
|
|
73
|
-
route(connect.capabilities, '/capabilities', { parent: base, method: RouteMethod.GET }),
|
|
74
|
-
contract(typed()),
|
|
75
|
-
),
|
|
76
|
-
|
|
77
69
|
// --- session ---------------------------------------------------------------------------
|
|
78
70
|
session: {
|
|
79
71
|
open: protocol(
|
|
@@ -86,29 +78,12 @@ export const connectProtocols = (opts: ConnectEntrypointOptions) => {
|
|
|
86
78
|
}),
|
|
87
79
|
contract.request({ body: typed<ConnectSessionOpen>(ConnectSessionOpenSchema) }, typed()), paid
|
|
88
80
|
),
|
|
89
|
-
get: protocol(
|
|
90
|
-
route(connect.session.get, '/session/:sessionId', {
|
|
91
|
-
parent: base, method: RouteMethod.GET
|
|
92
|
-
}),
|
|
93
|
-
contract.request({ params: typed<ConnectSessionParams>(ConnectSessionParamsSchema) }, typed())
|
|
94
|
-
),
|
|
95
|
-
heartbeat: protocol(
|
|
96
|
-
route(connect.session.heartbeat, '/session/:sessionId/heartbeat', {
|
|
97
|
-
parent: base, method: RouteMethod.POST
|
|
98
|
-
}),
|
|
99
|
-
contract.request({ params: typed<ConnectSessionParams>(ConnectSessionParamsSchema) }, typed())
|
|
100
|
-
),
|
|
101
81
|
close: protocol(
|
|
102
82
|
route(connect.session.close, '/session/:sessionId/close', {
|
|
103
83
|
parent: base, method: RouteMethod.POST
|
|
104
84
|
}),
|
|
105
85
|
contract.request({ params: typed<ConnectSessionParams>(ConnectSessionParamsSchema) }, typed())
|
|
106
86
|
),
|
|
107
|
-
socket: protocol(
|
|
108
|
-
route(connect.session.socket, '/connect/:sessionId', socket({ parent: opts.updateBase })),
|
|
109
|
-
contract.request({ params: typed<ConnectSessionParams>(ConnectSessionParamsSchema) }, typed())
|
|
110
|
-
),
|
|
111
|
-
|
|
112
87
|
},
|
|
113
88
|
|
|
114
89
|
// --- operations ------------------------------------------------------------------------
|
|
@@ -168,27 +143,6 @@ export const connectProtocols = (opts: ConnectEntrypointOptions) => {
|
|
|
168
143
|
}),
|
|
169
144
|
contract.request({ params: typed<{ id: string }>(ConnectProjectIdSchema), body: typed<ConnectModifyBody>(ConnectModifyBodySchema) }, typed<ConnectProjectStatus>())
|
|
170
145
|
),
|
|
171
|
-
settings: protocol(
|
|
172
|
-
route(connect.project.settings, '/project/:id/settings', {
|
|
173
|
-
parent: base, method: RouteMethod.GET
|
|
174
|
-
}),
|
|
175
|
-
contract.request({ params: typed<{ id: string }>(ConnectProjectIdSchema) }, typed())
|
|
176
|
-
),
|
|
177
|
-
llm: protocol(
|
|
178
|
-
route(connect.project.llm, '/project/:id/llm', {
|
|
179
|
-
parent: base, method: RouteMethod.POST
|
|
180
|
-
}),
|
|
181
|
-
contract.request({ params: typed<{ id: string }>(ConnectProjectIdSchema), body: typed<ConnectProjectLlmBody>(ConnectProjectLlmBodySchema) }, typed()), paid
|
|
182
|
-
),
|
|
183
|
-
converterLlm: protocol(
|
|
184
|
-
route(connect.project.converterLlm, '/project/:id/converter-llm', {
|
|
185
|
-
parent: base, method: RouteMethod.POST,
|
|
186
|
-
}),
|
|
187
|
-
contract.request({
|
|
188
|
-
params: typed<{ id: string }>(ConnectProjectIdSchema),
|
|
189
|
-
body: typed<ConverterProjectLlmBody>(ConverterProjectLlmBodySchema),
|
|
190
|
-
}, typed()),
|
|
191
|
-
),
|
|
192
146
|
// Under `base` like every sibling — the guard and the ownership gate — and never under the
|
|
193
147
|
// paid gate: saving branding is free, and the paid credit switch is not reachable from here.
|
|
194
148
|
branding: {
|
|
@@ -252,10 +206,6 @@ export const connectProtocols = (opts: ConnectEntrypointOptions) => {
|
|
|
252
206
|
body: typed<ConnectConvertProceedBody>(ConnectConvertProceedBodySchema),
|
|
253
207
|
}, typed<ConversionStatusView>()),
|
|
254
208
|
),
|
|
255
|
-
cancel: protocol(
|
|
256
|
-
route(connect.convert.cancel, '/convert/:id/cancel', { parent: base, method: RouteMethod.POST }),
|
|
257
|
-
contract.request({ params: typed<{ id: string }>(ConnectProjectIdSchema) }, typed<ConversionStatusView>()),
|
|
258
|
-
),
|
|
259
209
|
status: protocol(
|
|
260
210
|
route(connect.convert.status, '/convert/:id', { parent: base, method: RouteMethod.GET }),
|
|
261
211
|
contract.request({ params: typed<{ id: string }>(ConnectProjectIdSchema) }, typed<ConversionStatusView>()),
|
|
@@ -3,13 +3,11 @@ import type { RegisteredEntrypoint, RequestShape } from '@owlmeans/entrypoint'
|
|
|
3
3
|
import type { EntrypointReference } from '@owlmeans/context'
|
|
4
4
|
import { connect } from './consts.js'
|
|
5
5
|
import type { ConnectOp, ConnectOpResult } from './ops.js'
|
|
6
|
-
import type { ConverterProjectLlmBody } from '../convert/index.js'
|
|
7
6
|
import type {
|
|
8
|
-
ConnectAttachBody,
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
ConnectProjectSettings, ConnectProjectStatus, ConnectProjectSummary, ConnectPullQuery,
|
|
7
|
+
ConnectAttachBody, ConnectConfirmBody, ConnectCreateBody, ConnectConvertCreateBody,
|
|
8
|
+
ConnectConvertProceedBody, ConnectInquiryAnswerBody, ConnectModifyBody, ConnectOpSubmission,
|
|
9
|
+
ConnectPipelineParams, ConnectPipelineResumeBody, ConnectPipelineState, ConnectProjectBranding,
|
|
10
|
+
ConnectProjectBrandingSave, ConnectProjectStatus, ConnectProjectSummary, ConnectPullQuery,
|
|
13
11
|
ConnectSessionOpen, ConnectSessionParams, ConnectSessionView, ConnectStoryStatus,
|
|
14
12
|
ConversionStatusView, ConvertCheck,
|
|
15
13
|
} from './types.js'
|
|
@@ -18,12 +16,9 @@ type ConnectReference<Request extends RequestShape, Response> =
|
|
|
18
16
|
EntrypointReference<RegisteredEntrypoint<Request, Response>>
|
|
19
17
|
|
|
20
18
|
export interface ConnectReferences {
|
|
21
|
-
capabilities: ConnectReference<{}, ConnectCapabilitiesView>
|
|
22
19
|
session: {
|
|
23
20
|
open: ConnectReference<{ body: ConnectSessionOpen }, ConnectSessionView>
|
|
24
21
|
openDelegated: ConnectReference<{ body: ConnectSessionOpen }, ConnectSessionView>
|
|
25
|
-
get: ConnectReference<{ params: ConnectSessionParams }, ConnectSessionView>
|
|
26
|
-
heartbeat: ConnectReference<{ params: ConnectSessionParams }, ConnectSessionView>
|
|
27
22
|
close: ConnectReference<{ params: ConnectSessionParams }, ConnectSessionView>
|
|
28
23
|
}
|
|
29
24
|
op: {
|
|
@@ -40,11 +35,6 @@ export interface ConnectReferences {
|
|
|
40
35
|
attach: ConnectReference<{ body: ConnectAttachBody }, ConnectProjectStatus>
|
|
41
36
|
reinit: ConnectReference<{ params: { id: string } }, ConnectProjectStatus>
|
|
42
37
|
modify: ConnectReference<{ params: { id: string }, body: ConnectModifyBody }, ConnectProjectStatus>
|
|
43
|
-
settings: ConnectReference<{ params: { id: string } }, ConnectProjectSettings>
|
|
44
|
-
llm: ConnectReference<{ params: { id: string }, body: ConnectProjectLlmBody }, ConnectProjectSettings>
|
|
45
|
-
converterLlm: ConnectReference<{
|
|
46
|
-
params: { id: string }, body: ConverterProjectLlmBody
|
|
47
|
-
}, ConnectProjectSettings>
|
|
48
38
|
branding: {
|
|
49
39
|
get: ConnectReference<{ params: { id: string } }, ConnectProjectBranding>
|
|
50
40
|
save: ConnectReference<{
|
|
@@ -65,7 +55,6 @@ export interface ConnectReferences {
|
|
|
65
55
|
proceed: ConnectReference<{
|
|
66
56
|
params: { id: string }, body: ConnectConvertProceedBody
|
|
67
57
|
}, ConversionStatusView>
|
|
68
|
-
cancel: ConnectReference<{ params: { id: string } }, ConversionStatusView>
|
|
69
58
|
status: ConnectReference<{ params: { id: string } }, ConversionStatusView>
|
|
70
59
|
purge: ConnectReference<{ params: { id: string } }, ConversionStatusView>
|
|
71
60
|
}
|
|
@@ -88,12 +77,9 @@ export interface ConnectReferences {
|
|
|
88
77
|
* aliases to UI or domain code.
|
|
89
78
|
*/
|
|
90
79
|
export const connectRef: ConnectReferences = {
|
|
91
|
-
capabilities: entrypointRef<{}, ConnectCapabilitiesView>(connect.capabilities),
|
|
92
80
|
session: {
|
|
93
81
|
open: entrypointRef<{ body: ConnectSessionOpen }, ConnectSessionView>(connect.session.open),
|
|
94
82
|
openDelegated: entrypointRef<{ body: ConnectSessionOpen }, ConnectSessionView>(connect.session.openDelegated),
|
|
95
|
-
get: entrypointRef<{ params: ConnectSessionParams }, ConnectSessionView>(connect.session.get),
|
|
96
|
-
heartbeat: entrypointRef<{ params: ConnectSessionParams }, ConnectSessionView>(connect.session.heartbeat),
|
|
97
83
|
close: entrypointRef<{ params: ConnectSessionParams }, ConnectSessionView>(connect.session.close),
|
|
98
84
|
},
|
|
99
85
|
op: {
|
|
@@ -110,13 +96,6 @@ export const connectRef: ConnectReferences = {
|
|
|
110
96
|
attach: entrypointRef<{ body: ConnectAttachBody }, ConnectProjectStatus>(connect.project.attach),
|
|
111
97
|
reinit: entrypointRef<{ params: { id: string } }, ConnectProjectStatus>(connect.project.reinit),
|
|
112
98
|
modify: entrypointRef<{ params: { id: string }, body: ConnectModifyBody }, ConnectProjectStatus>(connect.project.modify),
|
|
113
|
-
settings: entrypointRef<{ params: { id: string } }, ConnectProjectSettings>(connect.project.settings),
|
|
114
|
-
llm: entrypointRef<{
|
|
115
|
-
params: { id: string }, body: ConnectProjectLlmBody
|
|
116
|
-
}, ConnectProjectSettings>(connect.project.llm),
|
|
117
|
-
converterLlm: entrypointRef<{
|
|
118
|
-
params: { id: string }, body: ConverterProjectLlmBody
|
|
119
|
-
}, ConnectProjectSettings>(connect.project.converterLlm),
|
|
120
99
|
branding: {
|
|
121
100
|
get: entrypointRef<{ params: { id: string } }, ConnectProjectBranding>(connect.project.branding.get),
|
|
122
101
|
save: entrypointRef<{
|
|
@@ -136,7 +115,6 @@ export const connectRef: ConnectReferences = {
|
|
|
136
115
|
proceed: entrypointRef<{
|
|
137
116
|
params: { id: string }, body: ConnectConvertProceedBody
|
|
138
117
|
}, ConversionStatusView>(connect.convert.proceed),
|
|
139
|
-
cancel: entrypointRef<{ params: { id: string } }, ConversionStatusView>(connect.convert.cancel),
|
|
140
118
|
status: entrypointRef<{
|
|
141
119
|
params: { id: string }
|
|
142
120
|
}, ConversionStatusView>(connect.convert.status),
|