@vertesia/common 0.76.0 → 0.78.0-dev-715074d

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.
Files changed (267) hide show
  1. package/package.json +43 -38
  2. package/src/access-control.ts +5 -4
  3. package/src/apikey.ts +23 -21
  4. package/src/apps.ts +66 -0
  5. package/src/index.ts +3 -1
  6. package/src/interaction.ts +142 -18
  7. package/src/payload.ts +2 -4
  8. package/src/project.ts +0 -2
  9. package/src/prompt.ts +16 -9
  10. package/src/query.ts +2 -0
  11. package/src/rate-limiter.ts +34 -0
  12. package/src/store/collections.ts +1 -0
  13. package/src/store/store.ts +17 -0
  14. package/src/store/workflow.ts +50 -6
  15. package/src/sts-token-types.ts +114 -0
  16. package/src/utils/schemas.ts +4 -4
  17. package/LICENSE +0 -13
  18. package/lib/cjs/Progress.js +0 -61
  19. package/lib/cjs/Progress.js.map +0 -1
  20. package/lib/cjs/access-control.js +0 -55
  21. package/lib/cjs/access-control.js.map +0 -1
  22. package/lib/cjs/analytics.js +0 -3
  23. package/lib/cjs/analytics.js.map +0 -1
  24. package/lib/cjs/apikey.js +0 -14
  25. package/lib/cjs/apikey.js.map +0 -1
  26. package/lib/cjs/apps.js +0 -3
  27. package/lib/cjs/apps.js.map +0 -1
  28. package/lib/cjs/common.js +0 -3
  29. package/lib/cjs/common.js.map +0 -1
  30. package/lib/cjs/environment.js +0 -44
  31. package/lib/cjs/environment.js.map +0 -1
  32. package/lib/cjs/facets.js +0 -3
  33. package/lib/cjs/facets.js.map +0 -1
  34. package/lib/cjs/group.js +0 -5
  35. package/lib/cjs/group.js.map +0 -1
  36. package/lib/cjs/index.js +0 -45
  37. package/lib/cjs/index.js.map +0 -1
  38. package/lib/cjs/integrations.js +0 -12
  39. package/lib/cjs/integrations.js.map +0 -1
  40. package/lib/cjs/interaction.js +0 -64
  41. package/lib/cjs/interaction.js.map +0 -1
  42. package/lib/cjs/json-schema.js +0 -3
  43. package/lib/cjs/json-schema.js.map +0 -1
  44. package/lib/cjs/json.js +0 -3
  45. package/lib/cjs/json.js.map +0 -1
  46. package/lib/cjs/meters.js +0 -13
  47. package/lib/cjs/meters.js.map +0 -1
  48. package/lib/cjs/model_utility.js +0 -6
  49. package/lib/cjs/model_utility.js.map +0 -1
  50. package/lib/cjs/package.json +0 -3
  51. package/lib/cjs/payload.js +0 -3
  52. package/lib/cjs/payload.js.map +0 -1
  53. package/lib/cjs/project.js +0 -61
  54. package/lib/cjs/project.js.map +0 -1
  55. package/lib/cjs/prompt.js +0 -21
  56. package/lib/cjs/prompt.js.map +0 -1
  57. package/lib/cjs/query.js +0 -3
  58. package/lib/cjs/query.js.map +0 -1
  59. package/lib/cjs/refs.js +0 -14
  60. package/lib/cjs/refs.js.map +0 -1
  61. package/lib/cjs/runs.js +0 -3
  62. package/lib/cjs/runs.js.map +0 -1
  63. package/lib/cjs/store/activity-catalog.js +0 -3
  64. package/lib/cjs/store/activity-catalog.js.map +0 -1
  65. package/lib/cjs/store/agent.js +0 -3
  66. package/lib/cjs/store/agent.js.map +0 -1
  67. package/lib/cjs/store/collections.js +0 -9
  68. package/lib/cjs/store/collections.js.map +0 -1
  69. package/lib/cjs/store/common.js +0 -3
  70. package/lib/cjs/store/common.js.map +0 -1
  71. package/lib/cjs/store/doc-analyzer.js +0 -3
  72. package/lib/cjs/store/doc-analyzer.js.map +0 -1
  73. package/lib/cjs/store/dsl-workflow.js +0 -5
  74. package/lib/cjs/store/dsl-workflow.js.map +0 -1
  75. package/lib/cjs/store/index.js +0 -28
  76. package/lib/cjs/store/index.js.map +0 -1
  77. package/lib/cjs/store/object-types.js +0 -98
  78. package/lib/cjs/store/object-types.js.map +0 -1
  79. package/lib/cjs/store/signals.js +0 -3
  80. package/lib/cjs/store/signals.js.map +0 -1
  81. package/lib/cjs/store/store.js +0 -29
  82. package/lib/cjs/store/store.js.map +0 -1
  83. package/lib/cjs/store/temporalio.js +0 -44
  84. package/lib/cjs/store/temporalio.js.map +0 -1
  85. package/lib/cjs/store/workflow.js +0 -48
  86. package/lib/cjs/store/workflow.js.map +0 -1
  87. package/lib/cjs/tenant.js +0 -3
  88. package/lib/cjs/tenant.js.map +0 -1
  89. package/lib/cjs/training.js +0 -14
  90. package/lib/cjs/training.js.map +0 -1
  91. package/lib/cjs/transient-tokens.js +0 -9
  92. package/lib/cjs/transient-tokens.js.map +0 -1
  93. package/lib/cjs/user.js +0 -17
  94. package/lib/cjs/user.js.map +0 -1
  95. package/lib/cjs/utils/auth.js +0 -15
  96. package/lib/cjs/utils/auth.js.map +0 -1
  97. package/lib/cjs/utils/schemas.js +0 -66
  98. package/lib/cjs/utils/schemas.js.map +0 -1
  99. package/lib/cjs/utils/type-helpers.js +0 -3
  100. package/lib/cjs/utils/type-helpers.js.map +0 -1
  101. package/lib/esm/Progress.js +0 -57
  102. package/lib/esm/Progress.js.map +0 -1
  103. package/lib/esm/access-control.js +0 -52
  104. package/lib/esm/access-control.js.map +0 -1
  105. package/lib/esm/analytics.js +0 -2
  106. package/lib/esm/analytics.js.map +0 -1
  107. package/lib/esm/apikey.js +0 -11
  108. package/lib/esm/apikey.js.map +0 -1
  109. package/lib/esm/apps.js +0 -2
  110. package/lib/esm/apps.js.map +0 -1
  111. package/lib/esm/common.js +0 -2
  112. package/lib/esm/common.js.map +0 -1
  113. package/lib/esm/environment.js +0 -41
  114. package/lib/esm/environment.js.map +0 -1
  115. package/lib/esm/facets.js +0 -2
  116. package/lib/esm/facets.js.map +0 -1
  117. package/lib/esm/group.js +0 -2
  118. package/lib/esm/group.js.map +0 -1
  119. package/lib/esm/index.js +0 -29
  120. package/lib/esm/index.js.map +0 -1
  121. package/lib/esm/integrations.js +0 -9
  122. package/lib/esm/integrations.js.map +0 -1
  123. package/lib/esm/interaction.js +0 -61
  124. package/lib/esm/interaction.js.map +0 -1
  125. package/lib/esm/json-schema.js +0 -2
  126. package/lib/esm/json-schema.js.map +0 -1
  127. package/lib/esm/json.js +0 -2
  128. package/lib/esm/json.js.map +0 -1
  129. package/lib/esm/meters.js +0 -10
  130. package/lib/esm/meters.js.map +0 -1
  131. package/lib/esm/model_utility.js +0 -2
  132. package/lib/esm/model_utility.js.map +0 -1
  133. package/lib/esm/payload.js +0 -2
  134. package/lib/esm/payload.js.map +0 -1
  135. package/lib/esm/project.js +0 -57
  136. package/lib/esm/project.js.map +0 -1
  137. package/lib/esm/prompt.js +0 -18
  138. package/lib/esm/prompt.js.map +0 -1
  139. package/lib/esm/query.js +0 -2
  140. package/lib/esm/query.js.map +0 -1
  141. package/lib/esm/refs.js +0 -11
  142. package/lib/esm/refs.js.map +0 -1
  143. package/lib/esm/runs.js +0 -2
  144. package/lib/esm/runs.js.map +0 -1
  145. package/lib/esm/store/activity-catalog.js +0 -2
  146. package/lib/esm/store/activity-catalog.js.map +0 -1
  147. package/lib/esm/store/agent.js +0 -2
  148. package/lib/esm/store/agent.js.map +0 -1
  149. package/lib/esm/store/collections.js +0 -6
  150. package/lib/esm/store/collections.js.map +0 -1
  151. package/lib/esm/store/common.js +0 -2
  152. package/lib/esm/store/common.js.map +0 -1
  153. package/lib/esm/store/doc-analyzer.js +0 -2
  154. package/lib/esm/store/doc-analyzer.js.map +0 -1
  155. package/lib/esm/store/dsl-workflow.js +0 -2
  156. package/lib/esm/store/dsl-workflow.js.map +0 -1
  157. package/lib/esm/store/index.js +0 -12
  158. package/lib/esm/store/index.js.map +0 -1
  159. package/lib/esm/store/object-types.js +0 -95
  160. package/lib/esm/store/object-types.js.map +0 -1
  161. package/lib/esm/store/signals.js +0 -2
  162. package/lib/esm/store/signals.js.map +0 -1
  163. package/lib/esm/store/store.js +0 -26
  164. package/lib/esm/store/store.js.map +0 -1
  165. package/lib/esm/store/temporalio.js +0 -41
  166. package/lib/esm/store/temporalio.js.map +0 -1
  167. package/lib/esm/store/workflow.js +0 -44
  168. package/lib/esm/store/workflow.js.map +0 -1
  169. package/lib/esm/tenant.js +0 -2
  170. package/lib/esm/tenant.js.map +0 -1
  171. package/lib/esm/training.js +0 -11
  172. package/lib/esm/training.js.map +0 -1
  173. package/lib/esm/transient-tokens.js +0 -6
  174. package/lib/esm/transient-tokens.js.map +0 -1
  175. package/lib/esm/user.js +0 -14
  176. package/lib/esm/user.js.map +0 -1
  177. package/lib/esm/utils/auth.js +0 -11
  178. package/lib/esm/utils/auth.js.map +0 -1
  179. package/lib/esm/utils/schemas.js +0 -61
  180. package/lib/esm/utils/schemas.js.map +0 -1
  181. package/lib/esm/utils/type-helpers.js +0 -2
  182. package/lib/esm/utils/type-helpers.js.map +0 -1
  183. package/lib/tsconfig.tsbuildinfo +0 -1
  184. package/lib/types/Progress.d.ts +0 -21
  185. package/lib/types/Progress.d.ts.map +0 -1
  186. package/lib/types/access-control.d.ts +0 -72
  187. package/lib/types/access-control.d.ts.map +0 -1
  188. package/lib/types/analytics.d.ts +0 -36
  189. package/lib/types/analytics.d.ts.map +0 -1
  190. package/lib/types/apikey.d.ts +0 -75
  191. package/lib/types/apikey.d.ts.map +0 -1
  192. package/lib/types/apps.d.ts +0 -63
  193. package/lib/types/apps.d.ts.map +0 -1
  194. package/lib/types/common.d.ts +0 -31
  195. package/lib/types/common.d.ts.map +0 -1
  196. package/lib/types/environment.d.ts +0 -84
  197. package/lib/types/environment.d.ts.map +0 -1
  198. package/lib/types/facets.d.ts +0 -34
  199. package/lib/types/facets.d.ts.map +0 -1
  200. package/lib/types/group.d.ts +0 -21
  201. package/lib/types/group.d.ts.map +0 -1
  202. package/lib/types/index.d.ts +0 -29
  203. package/lib/types/index.d.ts.map +0 -1
  204. package/lib/types/integrations.d.ts +0 -28
  205. package/lib/types/integrations.d.ts.map +0 -1
  206. package/lib/types/interaction.d.ts +0 -426
  207. package/lib/types/interaction.d.ts.map +0 -1
  208. package/lib/types/json-schema.d.ts +0 -1
  209. package/lib/types/json-schema.d.ts.map +0 -1
  210. package/lib/types/json.d.ts +0 -1
  211. package/lib/types/json.d.ts.map +0 -1
  212. package/lib/types/meters.d.ts +0 -23
  213. package/lib/types/meters.d.ts.map +0 -1
  214. package/lib/types/model_utility.d.ts +0 -1
  215. package/lib/types/model_utility.d.ts.map +0 -1
  216. package/lib/types/payload.d.ts +0 -62
  217. package/lib/types/payload.d.ts.map +0 -1
  218. package/lib/types/project.d.ts +0 -116
  219. package/lib/types/project.d.ts.map +0 -1
  220. package/lib/types/prompt.d.ts +0 -70
  221. package/lib/types/prompt.d.ts.map +0 -1
  222. package/lib/types/query.d.ts +0 -114
  223. package/lib/types/query.d.ts.map +0 -1
  224. package/lib/types/refs.d.ts +0 -22
  225. package/lib/types/refs.d.ts.map +0 -1
  226. package/lib/types/runs.d.ts +0 -32
  227. package/lib/types/runs.d.ts.map +0 -1
  228. package/lib/types/store/activity-catalog.d.ts +0 -26
  229. package/lib/types/store/activity-catalog.d.ts.map +0 -1
  230. package/lib/types/store/agent.d.ts +0 -18
  231. package/lib/types/store/agent.d.ts.map +0 -1
  232. package/lib/types/store/collections.d.ts +0 -63
  233. package/lib/types/store/collections.d.ts.map +0 -1
  234. package/lib/types/store/common.d.ts +0 -22
  235. package/lib/types/store/common.d.ts.map +0 -1
  236. package/lib/types/store/doc-analyzer.d.ts +0 -132
  237. package/lib/types/store/doc-analyzer.d.ts.map +0 -1
  238. package/lib/types/store/dsl-workflow.d.ts +0 -238
  239. package/lib/types/store/dsl-workflow.d.ts.map +0 -1
  240. package/lib/types/store/index.d.ts +0 -11
  241. package/lib/types/store/index.d.ts.map +0 -1
  242. package/lib/types/store/object-types.d.ts +0 -23
  243. package/lib/types/store/object-types.d.ts.map +0 -1
  244. package/lib/types/store/signals.d.ts +0 -5
  245. package/lib/types/store/signals.d.ts.map +0 -1
  246. package/lib/types/store/store.d.ts +0 -290
  247. package/lib/types/store/store.d.ts.map +0 -1
  248. package/lib/types/store/temporalio.d.ts +0 -16
  249. package/lib/types/store/temporalio.d.ts.map +0 -1
  250. package/lib/types/store/workflow.d.ts +0 -344
  251. package/lib/types/store/workflow.d.ts.map +0 -1
  252. package/lib/types/tenant.d.ts +0 -10
  253. package/lib/types/tenant.d.ts.map +0 -1
  254. package/lib/types/training.d.ts +0 -38
  255. package/lib/types/training.d.ts.map +0 -1
  256. package/lib/types/transient-tokens.d.ts +0 -24
  257. package/lib/types/transient-tokens.d.ts.map +0 -1
  258. package/lib/types/user.d.ts +0 -113
  259. package/lib/types/user.d.ts.map +0 -1
  260. package/lib/types/utils/auth.d.ts +0 -3
  261. package/lib/types/utils/auth.d.ts.map +0 -1
  262. package/lib/types/utils/schemas.d.ts +0 -7
  263. package/lib/types/utils/schemas.d.ts.map +0 -1
  264. package/lib/types/utils/type-helpers.d.ts +0 -3
  265. package/lib/types/utils/type-helpers.d.ts.map +0 -1
  266. package/lib/vertesia-common.js +0 -2
  267. package/lib/vertesia-common.js.map +0 -1
package/package.json CHANGED
@@ -1,40 +1,45 @@
1
1
  {
2
- "name": "@vertesia/common",
3
- "version": "0.76.0",
4
- "type": "module",
5
- "types": "./lib/types/index.d.ts",
6
- "files": [
7
- "lib",
8
- "src",
9
- "tsconfig.dist.json"
10
- ],
11
- "exports": {
2
+ "name": "@vertesia/common",
3
+ "version": "0.78.0-dev-715074d",
4
+ "type": "module",
12
5
  "types": "./lib/types/index.d.ts",
13
- "import": "./lib/esm/index.js",
14
- "require": "./lib/cjs/index.js"
15
- },
16
- "devDependencies": {
17
- "@rollup/plugin-commonjs": "^28.0.3",
18
- "@rollup/plugin-node-resolve": "^16.0.1",
19
- "@rollup/plugin-typescript": "^12.1.2",
20
- "@types/json-schema": "^7.0.15",
21
- "rollup": "^4.40.2",
22
- "rollup-plugin-terser": "^7.0.2",
23
- "ts-dual-module": "^0.6.3",
24
- "typescript": "^5.0.2",
25
- "vitest": "^3.0.9"
26
- },
27
- "dependencies": {
28
- "ajv": "^8.16.0",
29
- "json-schema": "^0.4.0",
30
- "@llumiverse/common": "0.22.0"
31
- },
32
- "ts_dual_module": {
33
- "outDir": "lib"
34
- },
35
- "scripts": {
36
- "test": "vitest run",
37
- "build": "pnpm exec tsmod build && pnpm exec rollup -c",
38
- "clean": "rimraf ./node_modules ./lib ./tsconfig.tsbuildinfo"
39
- }
40
- }
6
+ "files": [
7
+ "lib",
8
+ "src",
9
+ "tsconfig.dist.json"
10
+ ],
11
+ "scripts": {
12
+ "test": "vitest run",
13
+ "build": "pnpm exec tsmod build && pnpm exec rollup -c",
14
+ "clean": "rimraf ./node_modules ./lib ./tsconfig.tsbuildinfo"
15
+ },
16
+ "exports": {
17
+ "types": "./lib/types/index.d.ts",
18
+ "import": "./lib/esm/index.js",
19
+ "require": "./lib/cjs/index.js"
20
+ },
21
+ "devDependencies": {
22
+ "@rollup/plugin-commonjs": "^28.0.3",
23
+ "@rollup/plugin-node-resolve": "^16.0.1",
24
+ "@rollup/plugin-typescript": "^12.1.2",
25
+ "@types/json-schema": "^7.0.15",
26
+ "rollup": "^4.40.2",
27
+ "rollup-plugin-terser": "^7.0.2",
28
+ "ts-dual-module": "^0.6.3",
29
+ "typescript": "^5.0.2",
30
+ "vitest": "^3.0.9"
31
+ },
32
+ "dependencies": {
33
+ "@llumiverse/common": "workspace:*",
34
+ "ajv": "^8.16.0",
35
+ "json-schema": "^0.4.0"
36
+ },
37
+ "repository": {
38
+ "type": "git",
39
+ "url": "https://github.com/vertesia/composableai.git",
40
+ "directory": "packages/common"
41
+ },
42
+ "ts_dual_module": {
43
+ "outDir": "lib"
44
+ }
45
+ }
@@ -43,9 +43,9 @@ export enum Permission {
43
43
  workflow_run = "workflow:run",
44
44
  workflow_admin = "workflow:admin",
45
45
 
46
- /**
47
- * whether the user has access to Sutdio App.
48
- */
46
+ iam_impersonate = "iam:impersonate",
47
+
48
+ /** whether the user has access to Sutdio App. */
49
49
  studio_access = "studio:access",
50
50
  }
51
51
 
@@ -60,6 +60,7 @@ export enum AccessControlResourceType {
60
60
  export enum AccessControlPrincipalType {
61
61
  user = "user",
62
62
  group = "group",
63
+ apikey = "apikey",
63
64
  }
64
65
 
65
66
 
@@ -93,4 +94,4 @@ export interface AcesQueryOptions {
93
94
  role?: string
94
95
  type?: AccessControlResourceType
95
96
 
96
- }
97
+ }
package/src/apikey.ts CHANGED
@@ -2,9 +2,8 @@ import { UserGroupRef } from "./group.js";
2
2
  import { ProjectRef, ProjectRoles } from "./project.js";
3
3
  import { AccountRef } from "./user.js";
4
4
 
5
-
6
5
  export enum ApiKeyTypes {
7
- secret = 'sk'
6
+ secret = "sk",
8
7
  }
9
8
  export interface ApiKey {
10
9
  id: string;
@@ -15,27 +14,23 @@ export interface ApiKey {
15
14
  account: string; // the account id
16
15
  project: ProjectRef; // the project id if any
17
16
  enabled: boolean;
18
- created_by: string,
19
- updated_by: string,
17
+ created_by: string;
18
+ updated_by: string;
20
19
  created_at: Date;
21
20
  updated_at: Date;
22
21
  expires_at?: Date; // in case of public key only
23
22
  }
24
23
 
24
+ export interface CreateOrUpdateApiKeyPayload extends Partial<ApiKey> {}
25
25
 
26
- export interface CreateOrUpdateApiKeyPayload extends Partial<ApiKey> {
27
-
28
- }
29
-
30
- export interface ApiKeyWithValue extends Omit<ApiKey, 'maskedValue'> {
26
+ export interface ApiKeyWithValue extends Omit<ApiKey, "maskedValue"> {
31
27
  value: string;
32
28
  }
33
29
 
34
-
35
30
  export interface CreatePublicKeyPayload {
36
- name?: string,
37
- projectId?: string,
38
- ttl?: number,
31
+ name?: string;
32
+ projectId?: string;
33
+ ttl?: number;
39
34
  }
40
35
 
41
36
  export interface AuthTokenResponse {
@@ -43,12 +38,12 @@ export interface AuthTokenResponse {
43
38
  }
44
39
 
45
40
  export interface AuthTokenPayload {
46
- sub: string
41
+ sub: string;
47
42
  name: string;
48
43
  email?: string;
49
44
  picture?: string;
50
45
 
51
- type: PrincipalType
46
+ type: PrincipalType;
52
47
  account: AccountRef;
53
48
 
54
49
  account_roles: ProjectRoles[];
@@ -77,19 +72,26 @@ export interface AuthTokenPayload {
77
72
  * Either a n API domain like 'api.vertesia.io' | 'api-preview.vertesia.io' | 'api-staging.vertesia.io' | 'local'
78
73
  * or explicit studio and store URLs.
79
74
  */
80
- endpoints?: string | {
81
- studio: string,
82
- store: string
83
- }
75
+ endpoints?:
76
+ | string
77
+ | {
78
+ studio: string;
79
+ store: string;
80
+ };
84
81
 
85
82
  iss: string; //issuer
86
83
  aud: string; //audience
87
84
  exp: number; //expires in (EPOC seconds)
88
- }
85
+ tags?: string[]; //tags
89
86
 
87
+ permissions?: string[]; //permissions
88
+ scopes?: string[]; //scopes
89
+ }
90
90
 
91
91
  export enum PrincipalType {
92
92
  User = "user",
93
+ Group = "group",
93
94
  ApiKey = "apikey",
94
95
  ServiceAccount = "service_account",
95
- }
96
+ Agent = "agent",
97
+ }
package/src/apps.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { JSONSchema } from "@llumiverse/common";
1
2
 
2
3
  export interface AppUIConfig {
3
4
  /**
@@ -14,6 +15,33 @@ export interface AppUIConfig {
14
15
  isolation?: "shadow" | "css";
15
16
  }
16
17
 
18
+ export interface AppInteractionRef {
19
+ /**
20
+ * The interaction code name
21
+ */
22
+ name: string;
23
+
24
+ /**
25
+ * The url to get the interaction specification
26
+ */
27
+ url: string;
28
+
29
+ /**
30
+ * The interaction title. Optional. To be used in studio UI when the interaction is displayed
31
+ */
32
+ title?: string;
33
+
34
+ /**
35
+ * The interaction description. Optional. To be used in studio UI when the interaction is displayed
36
+ */
37
+ description?: string;
38
+ }
39
+ export interface ResolvedAppInteractionRef extends AppInteractionRef {
40
+ /**
41
+ * The interaction unique name (can also be used as an ID) that can be used to execute the interaction.
42
+ */
43
+ id: string;
44
+ }
17
45
  export interface AppManifestData {
18
46
  /**
19
47
  * The name of the app, used as the id in the system.
@@ -36,6 +64,12 @@ export interface AppManifestData {
36
64
  */
37
65
  icon?: string;
38
66
 
67
+ /**
68
+ * A color name to be used as the color of the app card (e.g. blue, red, green, etc.)
69
+ * If not specified a random color will be picked.
70
+ */
71
+ color?: string;
72
+
39
73
  status: "beta" | "stable" | "deprecated"
40
74
 
41
75
  ui?: AppUIConfig
@@ -46,6 +80,18 @@ export interface AppManifestData {
46
80
  * If the `?import` query string is used the tool will be imported as a javascript module and not executed through a POST on the collections endpoint.
47
81
  */
48
82
  tool_collections?: string[]
83
+
84
+ /**
85
+ * An URL providing interactions definitions in JSON format.
86
+ * GET interactions_url should return a JSON object with the interactions definitions.
87
+ * GET `${interactions_url}/${endpoint}` should return a JSON object with the interaction definition for the specified endpoint.
88
+ */
89
+ interactions?: AppInteractionRef[];
90
+
91
+ /**
92
+ * A JSON chema for the app installation settings.
93
+ */
94
+ settings_schema?: JSONSchema;
49
95
  }
50
96
  export interface AppManifest extends AppManifestData {
51
97
  id: string;
@@ -73,3 +119,23 @@ export interface AppInstallationPayload {
73
119
  }
74
120
 
75
121
  export type AppInstallationKind = 'ui' | 'tools' | 'all';
122
+
123
+ /**
124
+ * A descriptiojn of the tools provided by an app
125
+ */
126
+ export interface AppToolCollection {
127
+ /**
128
+ * The collection name
129
+ */
130
+ name: string;
131
+
132
+ /**
133
+ * Optional collection description
134
+ */
135
+ description?: string;
136
+
137
+ /**
138
+ * the tools provided by this collection
139
+ */
140
+ tools: { name: string, description?: string }[]
141
+ }
package/src/index.ts CHANGED
@@ -17,6 +17,7 @@ export * from "./Progress.js";
17
17
  export * from './project.js';
18
18
  export * from './prompt.js';
19
19
  export * from './query.js';
20
+ export * from './rate-limiter.js';
20
21
  export * from './refs.js';
21
22
  export * from './runs.js';
22
23
  export * from "./store/index.js";
@@ -26,4 +27,5 @@ export * from './transient-tokens.js';
26
27
  export * from './user.js';
27
28
  export * from './utils/auth.js';
28
29
  export * from './utils/schemas.js';
29
- export type * from './utils/type-helpers.js'
30
+ export type * from './utils/type-helpers.js';
31
+ export * from './sts-token-types.js';
@@ -1,8 +1,10 @@
1
1
  import type {
2
+ CompletionResult,
2
3
  JSONObject,
3
4
  JSONSchema,
4
5
  Modalities,
5
6
  ModelOptions,
7
+ PromptRole,
6
8
  StatelessExecutionOptions,
7
9
  ToolDefinition,
8
10
  ToolUse,
@@ -14,10 +16,12 @@ import { ExecutionTokenUsage } from "@llumiverse/common";
14
16
  import { ExecutionEnvironmentRef } from "./environment.js";
15
17
  import { ProjectRef } from "./project.js";
16
18
  import {
19
+ ExecutablePromptSegmentDef,
17
20
  PopulatedPromptSegmentDef,
18
21
  PromptSegmentDef,
19
22
  PromptTemplateRef,
20
23
  PromptTemplateRefWithSchema,
24
+ TemplateType,
21
25
  } from "./prompt.js";
22
26
  import { ExecutionRunDocRef } from "./runs.js";
23
27
  import { AccountRef } from "./user.js";
@@ -28,6 +32,79 @@ export interface InteractionExecutionError {
28
32
  data?: any;
29
33
  }
30
34
 
35
+
36
+ // ------------------ in code interactions -----------------
37
+ export interface InCodePrompt {
38
+ role: PromptRole,
39
+ content: string,
40
+ content_type: TemplateType;
41
+ schema?: JSONSchema;
42
+ }
43
+ export interface InCodeInteraction {
44
+ /**
45
+ * The id of the interaction. Required.
46
+ * The id is a unique identifier for the interaction.
47
+ * It is recommended to use a URL safe string and not include spaces.
48
+ * The id composaed by some namespace or prefix and the interaction name.
49
+ * Example: sys:generic_question, app:review_contract, tmp:my_temp_interaction
50
+ */
51
+ id: string;
52
+
53
+ /**
54
+ * The interaction code name. Required.
55
+ * Should be a URL safe string and not include spaces. It is recommended to use kebab-case or camel-case.
56
+ * The endpoints must satisfy the following regexp: /^[a-zA-Z0-9-_]+$/. No whitespaces or special characters are allowed.
57
+ */
58
+ name: string;
59
+
60
+ /**
61
+ * A title for the interaction. If not provided, the endpoint will be used.
62
+ */
63
+ title?: string;
64
+
65
+ /**
66
+ * An optional description of the interaction.
67
+ */
68
+ description?: string;
69
+
70
+ /**
71
+ * The JSON schema to be used for the result if any.
72
+ */
73
+ result_schema?: JSONSchema;
74
+
75
+ /**
76
+ * The modality of the interaction output.
77
+ * If not specified Modalities.Text is assumed.
78
+ */
79
+ output_modality?: Modalities,
80
+
81
+ /**
82
+ * How to store the run data for executions of this interaction.
83
+ * Defaults to STANDARD.
84
+ */
85
+ storage?: RunDataStorageLevel;
86
+
87
+ /**
88
+ * Optional tags for the interaction.
89
+ */
90
+ tags?: string[];
91
+
92
+ /**
93
+ * Default options for the model to be used when executing this interaction.
94
+ * (like temperature etc)
95
+ */
96
+ model_options?: ModelOptions;
97
+
98
+ /**
99
+ * The prompts composing the interaction. Required.
100
+ */
101
+ prompts: InCodePrompt[]
102
+
103
+ }
104
+ export interface InteractionSpec extends Omit<InCodeInteraction, 'id'> {
105
+ }
106
+ // ---------------------------------------------------------
107
+
31
108
  /**
32
109
  * The payload to query the interaction endpoints
33
110
  */
@@ -166,28 +243,31 @@ export interface CachePolicy {
166
243
  ttl: number;
167
244
  }
168
245
  export type InteractionVisibility = "public" | "private";
169
- export interface Interaction {
246
+
247
+ export interface InteractionData {
170
248
  readonly id: string;
171
249
  name: string;
172
250
  endpoint: string;
173
251
  description?: string;
252
+ project: string | ProjectRef;
253
+ tags: string[];
254
+ result_schema?: JSONSchema4 | SchemaRef;
255
+ environment?: string | ExecutionEnvironmentRef;
256
+ model?: string;
257
+ model_options?: ModelOptions;
258
+ restriction?: RunDataStorageLevel;
259
+ output_modality?: Modalities;
260
+ }
261
+ export interface Interaction extends InteractionData {
174
262
  status: InteractionStatus;
175
263
  parent?: string;
176
264
  // only used for versions (status === "published")
177
265
  visibility: InteractionVisibility;
178
266
  version: number;
179
- tags: string[];
180
267
  test_data?: JSONObject;
181
268
  interaction_schema?: JSONSchema4 | SchemaRef;
182
- result_schema?: JSONSchema4 | SchemaRef;
183
269
  cache_policy?: CachePolicy;
184
- model: string;
185
- model_options?: ModelOptions;
186
270
  prompts: PromptSegmentDef[];
187
- output_modality?: Modalities;
188
- environment: string | ExecutionEnvironmentRef;
189
- restriction?: RunDataStorageLevel;
190
- project: string | ProjectRef;
191
271
  // only for drafts - when it was last published
192
272
  last_published_at?: Date;
193
273
  created_by: string;
@@ -200,6 +280,14 @@ export interface PopulatedInteraction extends Omit<Interaction, "prompts"> {
200
280
  prompts: PopulatedPromptSegmentDef[];
201
281
  }
202
282
 
283
+ /**
284
+ * Used to describe an interaction that can be executed. Contains only the interaction data useful
285
+ * to execute the interaction plus the prompt templates
286
+ */
287
+ export interface ExecutableInteraction extends InteractionData {
288
+ prompts: ExecutablePromptSegmentDef[];
289
+ }
290
+
203
291
  export interface InteractionCreatePayload
204
292
  extends Omit<
205
293
  Interaction,
@@ -270,6 +358,12 @@ export interface InteractionExecutionPayload {
270
358
  * The workflow related to this Interaction Run.
271
359
  */
272
360
  workflow?: ExecutionRunWorkflow;
361
+
362
+ /**
363
+ * Only used by ad-hoc interactions which defines the prompt in the execution payload itself
364
+ * These are temporary interactions using "tmp:" suffix.
365
+ */
366
+ prompts?: InCodePrompt[];
273
367
  }
274
368
 
275
369
  export interface NamedInteractionExecutionPayload extends InteractionExecutionPayload {
@@ -284,13 +378,15 @@ export interface NamedInteractionExecutionPayload extends InteractionExecutionPa
284
378
  // ================= async execution payloads ====================
285
379
  export type ToolRef = string | { name: string; description: string };
286
380
 
287
- interface AsyncExecutionPayloadBase extends Omit<NamedInteractionExecutionPayload,"toolDefinitions" | "stream"> {
381
+ interface AsyncExecutionPayloadBase extends Omit<NamedInteractionExecutionPayload, "toolDefinitions" | "stream"> {
288
382
  type: "conversation" | "interaction";
289
383
 
290
384
  /**
291
385
  * An array of endpoint URLs to be notified upon execution
292
386
  */
293
387
  notify_endpoints?: string[];
388
+
389
+ task_queue?: string;
294
390
  }
295
391
 
296
392
  export type ConversationVisibility = 'private' | 'project';
@@ -379,6 +475,10 @@ export interface ToolResultContent {
379
475
  content: string;
380
476
  is_error: boolean;
381
477
  files?: string[];
478
+ /**
479
+ * Can contain metadata returned by the tool executor.
480
+ */
481
+ meta?: Record<string, any>;
382
482
  }
383
483
 
384
484
  export interface ToolResult extends ToolResultContent {
@@ -396,7 +496,7 @@ export interface UserMessagePayload extends ResumeConversationPayload {
396
496
  message: string;
397
497
  }
398
498
 
399
- export type CheckpointConversationPayload = Omit<ToolResultsPayload, "results">;
499
+ export type CheckpointConversationPayload = Omit<ToolResultsPayload, "results" | "tools">
400
500
 
401
501
  // ================= end async execution payloads ====================
402
502
 
@@ -417,7 +517,7 @@ export interface RunSource {
417
517
  client_ip: string;
418
518
  }
419
519
 
420
- export interface ExecutionRun<P = any, R = any> {
520
+ export interface BaseExecutionRun<P = any> {
421
521
  readonly id: string;
422
522
  /**
423
523
  * Only used by runs that were created by a virtual run to point toward the virtual run parent
@@ -428,7 +528,7 @@ export interface ExecutionRun<P = any, R = any> {
428
528
  selected?: boolean;
429
529
  scores?: Record<string, number>;
430
530
  };
431
- result: R;
531
+ result: CompletionResult[] // Any new result will actually be CompletionResult[], the old typing is R, and R used to default to any.
432
532
  /**
433
533
  * The parameters used to create the interaction.
434
534
  * If the parameters contains the special property "@memory" it will be used
@@ -436,8 +536,12 @@ export interface ExecutionRun<P = any, R = any> {
436
536
  */
437
537
  parameters: P; //params used to create the interaction, only in varies on?
438
538
  tags?: string[];
439
- //TODO a string is returned when executing not the interaction object
440
- interaction: Interaction;
539
+ // only set when the target interaction is a stored interaction
540
+ //TODO check the code where Interaction type is used (should be in run details)
541
+ // TODO when execution string is passed as the type of interaction
542
+ interaction?: string | Interaction;
543
+ // only set when the target interaction is an in-code interaction
544
+ interaction_code?: string; // Interaction code name in case of in-code interaction (not stored in the DB as an Interaction document)
441
545
  //TODO a string is returned when execution not the env object
442
546
  environment: ExecutionEnvironmentRef;
443
547
  modelId: string;
@@ -448,7 +552,7 @@ export interface ExecutionRun<P = any, R = any> {
448
552
  prompt: any;
449
553
  token_use?: ExecutionTokenUsage;
450
554
  chunks?: number;
451
- execution_time?: number; //s
555
+ execution_time?: number; // ms
452
556
  created_at: Date;
453
557
  updated_at: Date;
454
558
  account: AccountRef;
@@ -470,6 +574,14 @@ export interface ExecutionRun<P = any, R = any> {
470
574
  workflow?: ExecutionRunWorkflow;
471
575
  }
472
576
 
577
+ export interface ExecutionRun<P = any> extends BaseExecutionRun<P> {
578
+ interaction?: string;
579
+ }
580
+
581
+ export interface PopulatedExecutionRun<P = any> extends BaseExecutionRun<P> {
582
+ interaction?: Interaction;
583
+ }
584
+
473
585
  export interface ExecutionRunWorkflow {
474
586
  /**
475
587
  * The Temporal Workflow Run ID related to this Interaction Run.
@@ -496,14 +608,15 @@ export interface ExecutionRunWorkflow {
496
608
  activity_type?: string;
497
609
  }
498
610
 
499
- export interface InteractionExecutionResult<P = any, R = any> extends ExecutionRun<P, R> {
611
+ export interface InteractionExecutionResult<P = any> extends ExecutionRun<P> {
500
612
  tool_use?: ToolUse[];
501
613
  conversation?: unknown;
502
614
  options?: StatelessExecutionOptions;
503
615
  }
504
616
 
505
617
  export interface ExecutionRunRef extends Omit<ExecutionRun, "result" | "parameters" | "interaction"> {
506
- interaction: InteractionRef;
618
+ interaction?: InteractionRef;
619
+ interaction_code?: string;
507
620
  }
508
621
 
509
622
  export const ExecutionRunRefSelect = "-result -parameters -result_schema -prompt";
@@ -549,3 +662,14 @@ export interface GenerateTestDataPayload {
549
662
  export interface ImprovePromptPayload {
550
663
  config: InteractionExecutionConfiguration;
551
664
  }
665
+
666
+ export interface RateLimitRequestPayload {
667
+ interaction: string,
668
+ environment_id?: string,
669
+ model_id?: string,
670
+ workflow_run_id?: string
671
+ }
672
+
673
+ export interface RateLimitRequestResponse {
674
+ delay_ms: number;
675
+ }
package/src/payload.ts CHANGED
@@ -13,10 +13,8 @@ import {
13
13
  export interface SearchPayload {
14
14
  facets?: FacetSpec[];
15
15
  /**
16
- * If the facets should respect "limit"
17
- * If true, the facet count be limited to the number of results in the query.
18
- * If false, the facet count will be calculated over all objects.
19
- * Default is true.
16
+ * If the facets should be limited to the current page of results.
17
+ * Defaults to false. When false, the facets are independent of the search results page.
20
18
  */
21
19
  limit_facets?: boolean;
22
20
  query?: SimpleSearchQuery;
package/src/project.ts CHANGED
@@ -142,9 +142,7 @@ export interface EmbeddingsStatusResponse {
142
142
  status: string;
143
143
  embeddingRunsInProgress: number;
144
144
  totalRunsInProgress: number;
145
- totalIndexableObjects: number;
146
145
  embeddingsModels: string[];
147
- objectsWithEmbeddings: number;
148
146
  vectorIndex: {
149
147
  status: "READY" | "PENDING" | "DELETING" | "ABSENT",
150
148
  name?: string,
package/src/prompt.ts CHANGED
@@ -1,7 +1,7 @@
1
- import type { JSONSchema4 } from "json-schema";
2
1
  import type { JSONObject } from "@llumiverse/common";
3
- import { ProjectRef } from "./project.js";
4
2
  import { PromptRole } from "@llumiverse/common";
3
+ import type { JSONSchema4 } from "json-schema";
4
+ import { ProjectRef } from "./project.js";
5
5
 
6
6
  export interface ChatPromptSchema {
7
7
  role: PromptRole.user | PromptRole.assistant;
@@ -31,6 +31,13 @@ export interface PopulatedPromptSegmentDef
31
31
  extends Omit<PromptSegmentDef, "template"> {
32
32
  template?: PromptTemplate;
33
33
  }
34
+ /**
35
+ * Used for prompt rendering at interaction execution
36
+ */
37
+ export interface ExecutablePromptSegmentDef
38
+ extends Omit<PromptSegmentDef, "template"> {
39
+ template?: ExecutablePromptTemplate;
40
+ }
34
41
 
35
42
  export interface PromptTemplateRef {
36
43
  id: string;
@@ -47,25 +54,25 @@ export interface PromptTemplateRefWithSchema extends PromptTemplateRef {
47
54
 
48
55
  export enum TemplateType {
49
56
  text = "text",
50
- js = "js",
51
57
  jst = "jst",
52
58
  }
53
-
54
- export interface PromptTemplate {
59
+ export interface ExecutablePromptTemplate {
60
+ role: PromptRole;
61
+ content: string;
62
+ content_type: TemplateType;
63
+ inputSchema?: JSONSchema4;
64
+ }
65
+ export interface PromptTemplate extends ExecutablePromptTemplate {
55
66
  id: string;
56
67
  name: string;
57
- role: PromptRole;
58
68
  status: PromptStatus;
59
69
  version: number;
60
70
  // only to be used by published versions
61
71
  // the id draft version which is the source of this published version (only when published)
62
72
  parent?: string;
63
73
  description?: string;
64
- content_type: TemplateType;
65
- content: string;
66
74
  test_data?: JSONObject; // optional test data satisfying the schema
67
75
  script?: string; // cache the template output
68
- inputSchema?: JSONSchema4;
69
76
  project: string | ProjectRef; // or projectRef? ObjectIdType;
70
77
  // The name of a field in the input data that is of the specified schema and on each the template will iterate.
71
78
  // If not specified then the schema will define the whole input data