@lucern/sdk 0.2.0-alpha.7 → 0.2.0-alpha.8

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 (257) hide show
  1. package/dist/adminClient.d.ts +409 -0
  2. package/dist/adminClient.js +755 -0
  3. package/dist/adminClient.js.map +1 -0
  4. package/dist/answersClient.d.ts +23 -0
  5. package/dist/answersClient.js +333 -0
  6. package/dist/answersClient.js.map +1 -0
  7. package/dist/audiencesClient.d.ts +99 -0
  8. package/dist/audiencesClient.js +472 -0
  9. package/dist/audiencesClient.js.map +1 -0
  10. package/dist/auditClient.d.ts +29 -0
  11. package/dist/auditClient.js +386 -0
  12. package/dist/auditClient.js.map +1 -0
  13. package/dist/beliefsClient.d.ts +162 -0
  14. package/dist/beliefsClient.js +477 -0
  15. package/dist/beliefsClient.js.map +1 -0
  16. package/dist/client.d.ts +2378 -0
  17. package/dist/client.js +6134 -0
  18. package/dist/client.js.map +1 -0
  19. package/dist/contextClient.d.ts +27 -0
  20. package/dist/contextClient.js +396 -0
  21. package/dist/contextClient.js.map +1 -0
  22. package/dist/contextFacade.d.ts +2 -0
  23. package/dist/contextFacade.js +73 -0
  24. package/dist/contextFacade.js.map +1 -0
  25. package/dist/contextPackCompiler.d.ts +102 -0
  26. package/dist/contextPackCompiler.js +1091 -0
  27. package/dist/contextPackCompiler.js.map +1 -0
  28. package/dist/contextPackPolicy.d.ts +84 -0
  29. package/dist/contextPackPolicy.js +347 -0
  30. package/dist/contextPackPolicy.js.map +1 -0
  31. package/dist/contextPackSchema.d.ts +7 -0
  32. package/{src/contextPackSchema.ts → dist/contextPackSchema.js} +22 -70
  33. package/dist/contextPackSchema.js.map +1 -0
  34. package/dist/contextTypes.d.ts +135 -0
  35. package/dist/contextTypes.js +3 -0
  36. package/dist/contextTypes.js.map +1 -0
  37. package/dist/contracts/api-enums.contract.d.ts +81 -0
  38. package/dist/contracts/api-enums.contract.js +92 -0
  39. package/dist/contracts/api-enums.contract.js.map +1 -0
  40. package/dist/contracts/auth-session.contract.d.ts +55 -0
  41. package/dist/contracts/auth-session.contract.js +48 -0
  42. package/dist/contracts/auth-session.contract.js.map +1 -0
  43. package/dist/contracts/context-pack.contract.d.ts +492 -0
  44. package/dist/contracts/context-pack.contract.js +98 -0
  45. package/dist/contracts/context-pack.contract.js.map +1 -0
  46. package/dist/contracts/contextPack.d.ts +1 -0
  47. package/dist/contracts/contextPack.js +98 -0
  48. package/dist/contracts/contextPack.js.map +1 -0
  49. package/dist/contracts/index.d.ts +9 -0
  50. package/dist/contracts/index.js +4892 -0
  51. package/dist/contracts/index.js.map +1 -0
  52. package/dist/contracts/lens-filter.contract.d.ts +72 -0
  53. package/dist/contracts/lens-filter.contract.js +71 -0
  54. package/dist/contracts/lens-filter.contract.js.map +1 -0
  55. package/dist/contracts/lens-workflow.contract.d.ts +87 -0
  56. package/dist/contracts/lens-workflow.contract.js +123 -0
  57. package/dist/contracts/lens-workflow.contract.js.map +1 -0
  58. package/dist/contracts/lensFilter.d.ts +1 -0
  59. package/dist/contracts/lensFilter.js +71 -0
  60. package/dist/contracts/lensFilter.js.map +1 -0
  61. package/dist/contracts/lensWorkflow.d.ts +2 -0
  62. package/dist/contracts/lensWorkflow.js +123 -0
  63. package/dist/contracts/lensWorkflow.js.map +1 -0
  64. package/dist/contracts/mcp-tools.contract.d.ts +1 -0
  65. package/dist/contracts/mcp-tools.contract.js +2986 -0
  66. package/dist/contracts/mcp-tools.contract.js.map +1 -0
  67. package/dist/contracts/mcpTools.d.ts +1 -0
  68. package/dist/contracts/mcpTools.js +2986 -0
  69. package/dist/contracts/mcpTools.js.map +1 -0
  70. package/dist/contracts/prompt.contract.d.ts +26 -0
  71. package/dist/contracts/prompt.contract.js +12 -0
  72. package/dist/contracts/prompt.contract.js.map +1 -0
  73. package/dist/contracts/prompt.d.ts +1 -0
  74. package/dist/contracts/prompt.js +12 -0
  75. package/dist/contracts/prompt.js.map +1 -0
  76. package/dist/contracts/sdk-tools.contract.d.ts +2 -0
  77. package/dist/contracts/sdk-tools.contract.js +4134 -0
  78. package/dist/contracts/sdk-tools.contract.js.map +1 -0
  79. package/dist/contracts/sdkTools.d.ts +2 -0
  80. package/dist/contracts/sdkTools.js +4134 -0
  81. package/dist/contracts/sdkTools.js.map +1 -0
  82. package/dist/contracts/workflow-runtime.contract.d.ts +163 -0
  83. package/dist/contracts/workflow-runtime.contract.js +245 -0
  84. package/dist/contracts/workflow-runtime.contract.js.map +1 -0
  85. package/dist/contracts/workflowRuntime.d.ts +1 -0
  86. package/dist/contracts/workflowRuntime.js +245 -0
  87. package/dist/contracts/workflowRuntime.js.map +1 -0
  88. package/dist/controlObjectOwnership.d.ts +310 -0
  89. package/{src/controlObjectOwnership.ts → dist/controlObjectOwnership.js} +53 -124
  90. package/dist/controlObjectOwnership.js.map +1 -0
  91. package/dist/coreClient.d.ts +144 -0
  92. package/dist/coreClient.js +339 -0
  93. package/dist/coreClient.js.map +1 -0
  94. package/dist/customTools.d.ts +88 -0
  95. package/dist/customTools.js +248 -0
  96. package/dist/customTools.js.map +1 -0
  97. package/dist/decisionsClient.d.ts +111 -0
  98. package/dist/decisionsClient.js +522 -0
  99. package/dist/decisionsClient.js.map +1 -0
  100. package/dist/domainContext.d.ts +1 -0
  101. package/dist/domainContext.js +3 -0
  102. package/dist/domainContext.js.map +1 -0
  103. package/dist/events.d.ts +178 -0
  104. package/dist/events.js +249 -0
  105. package/dist/events.js.map +1 -0
  106. package/dist/eventsCore.d.ts +49 -0
  107. package/dist/eventsCore.js +429 -0
  108. package/dist/eventsCore.js.map +1 -0
  109. package/dist/facade/context.d.ts +18 -0
  110. package/dist/facade/context.js +73 -0
  111. package/dist/facade/context.js.map +1 -0
  112. package/dist/gatewayFacades.d.ts +591 -0
  113. package/dist/gatewayFacades.js +1953 -0
  114. package/dist/gatewayFacades.js.map +1 -0
  115. package/dist/graphClient.d.ts +271 -0
  116. package/dist/graphClient.js +698 -0
  117. package/dist/graphClient.js.map +1 -0
  118. package/dist/harnessClient.d.ts +314 -0
  119. package/dist/harnessClient.js +607 -0
  120. package/dist/harnessClient.js.map +1 -0
  121. package/dist/identityClient.d.ts +140 -0
  122. package/dist/identityClient.js +497 -0
  123. package/dist/identityClient.js.map +1 -0
  124. package/dist/index.d.ts +42 -0
  125. package/dist/index.js +11381 -0
  126. package/dist/index.js.map +1 -0
  127. package/dist/learningClient.d.ts +46 -0
  128. package/dist/learningClient.js +409 -0
  129. package/dist/learningClient.js.map +1 -0
  130. package/dist/mcpParityClient.d.ts +74 -0
  131. package/dist/mcpParityClient.js +516 -0
  132. package/dist/mcpParityClient.js.map +1 -0
  133. package/dist/mcpParitySurface.d.ts +12 -0
  134. package/{src/mcpParitySurface.ts → dist/mcpParitySurface.js} +9 -14
  135. package/dist/mcpParitySurface.js.map +1 -0
  136. package/dist/mcpTools-DPZxowDX.d.ts +254 -0
  137. package/dist/ontologyClient.d.ts +137 -0
  138. package/dist/ontologyClient.js +513 -0
  139. package/dist/ontologyClient.js.map +1 -0
  140. package/dist/packRuntime.d.ts +2 -0
  141. package/dist/packRuntime.js +3 -0
  142. package/dist/packRuntime.js.map +1 -0
  143. package/dist/packsClient.d.ts +131 -0
  144. package/dist/packsClient.js +525 -0
  145. package/dist/packsClient.js.map +1 -0
  146. package/dist/policyClient.d.ts +299 -0
  147. package/dist/policyClient.js +625 -0
  148. package/dist/policyClient.js.map +1 -0
  149. package/dist/realtime/index.d.ts +29 -0
  150. package/dist/realtime/index.js +23 -0
  151. package/dist/realtime/index.js.map +1 -0
  152. package/{src/realtime/refs.ts → dist/realtime/refs.d.ts} +5 -5
  153. package/dist/realtime/refs.js +9 -0
  154. package/dist/realtime/refs.js.map +1 -0
  155. package/dist/reportsClient.d.ts +41 -0
  156. package/dist/reportsClient.js +418 -0
  157. package/dist/reportsClient.js.map +1 -0
  158. package/dist/schemaClient.d.ts +64 -0
  159. package/dist/schemaClient.js +434 -0
  160. package/dist/schemaClient.js.map +1 -0
  161. package/dist/sdkSurface.d.ts +61 -0
  162. package/dist/sdkSurface.js +112 -0
  163. package/dist/sdkSurface.js.map +1 -0
  164. package/dist/sdkTools-CwXJDACb.d.ts +150 -0
  165. package/dist/topicsClient.d.ts +84 -0
  166. package/dist/topicsClient.js +492 -0
  167. package/dist/topicsClient.js.map +1 -0
  168. package/dist/types.d.ts +696 -0
  169. package/dist/types.js +3 -0
  170. package/dist/types.js.map +1 -0
  171. package/dist/version.d.ts +4 -0
  172. package/dist/version.js +6 -0
  173. package/dist/version.js.map +1 -0
  174. package/dist/workflowClient.d.ts +316 -0
  175. package/dist/workflowClient.js +830 -0
  176. package/dist/workflowClient.js.map +1 -0
  177. package/package.json +31 -7
  178. package/.turbo/turbo-build.log +0 -7
  179. package/.turbo/turbo-typecheck.log +0 -4
  180. package/examples/README.md +0 -69
  181. package/examples/contradiction.ts +0 -94
  182. package/examples/investigation-context.ts +0 -118
  183. package/examples/questions-and-tasks.ts +0 -55
  184. package/examples/quickstart.ts +0 -97
  185. package/examples/shared.ts +0 -318
  186. package/examples/strict-public-types.ts +0 -143
  187. package/examples/worktree-lifecycle.ts +0 -79
  188. package/src/README.md +0 -6
  189. package/src/adminClient.ts +0 -789
  190. package/src/answersClient.ts +0 -29
  191. package/src/audiencesClient.ts +0 -209
  192. package/src/auditClient.ts +0 -50
  193. package/src/beliefsClient.ts +0 -319
  194. package/src/client.ts +0 -2647
  195. package/src/contextClient.ts +0 -130
  196. package/src/contextFacade.ts +0 -15
  197. package/src/contextPackCompiler.ts +0 -828
  198. package/src/contextTypes.ts +0 -153
  199. package/src/contracts/api-enums.contract.ts +0 -202
  200. package/src/contracts/auth-session.contract.ts +0 -109
  201. package/src/contracts/context-pack.contract.ts +0 -700
  202. package/src/contracts/contextPack.ts +0 -1
  203. package/src/contracts/index.ts +0 -10
  204. package/src/contracts/lens-filter.contract.ts +0 -183
  205. package/src/contracts/lens-workflow.contract.ts +0 -162
  206. package/src/contracts/lensFilter.ts +0 -1
  207. package/src/contracts/lensWorkflow.ts +0 -1
  208. package/src/contracts/mcp-tools.contract.ts +0 -3636
  209. package/src/contracts/mcpTools.ts +0 -1
  210. package/src/contracts/prompt.contract.ts +0 -50
  211. package/src/contracts/prompt.ts +0 -1
  212. package/src/contracts/sdk-tools.contract.ts +0 -1457
  213. package/src/contracts/sdkTools.ts +0 -1
  214. package/src/contracts/workflow-runtime.contract.ts +0 -440
  215. package/src/contracts/workflowRuntime.ts +0 -1
  216. package/src/coreClient.ts +0 -570
  217. package/src/customTools.ts +0 -398
  218. package/src/decisionsClient.ts +0 -286
  219. package/src/domainContext.ts +0 -15
  220. package/src/events.ts +0 -531
  221. package/src/eventsCore.ts +0 -168
  222. package/src/facade/beliefs.ts +0 -83
  223. package/src/facade/context.ts +0 -110
  224. package/src/facade/contradictions.ts +0 -29
  225. package/src/facade/edges.ts +0 -30
  226. package/src/facade/events.ts +0 -23
  227. package/src/facade/evidence.ts +0 -41
  228. package/src/facade/graph.ts +0 -38
  229. package/src/facade/identity.ts +0 -16
  230. package/src/facade/ontologies.ts +0 -34
  231. package/src/facade/questions.ts +0 -59
  232. package/src/facade/search.ts +0 -16
  233. package/src/facade/tasks.ts +0 -37
  234. package/src/facade/topics.ts +0 -42
  235. package/src/facade/webhooks.ts +0 -58
  236. package/src/facade/worktrees.ts +0 -51
  237. package/src/gatewayFacades.ts +0 -1666
  238. package/src/graphClient.ts +0 -529
  239. package/src/harnessClient.ts +0 -585
  240. package/src/identityClient.ts +0 -278
  241. package/src/index.ts +0 -49
  242. package/src/learningClient.ts +0 -95
  243. package/src/mcpParityClient.ts +0 -240
  244. package/src/ontologyClient.ts +0 -275
  245. package/src/packRuntime.ts +0 -3
  246. package/src/packsClient.ts +0 -260
  247. package/src/policyClient.ts +0 -572
  248. package/src/promptCatalog.ts +0 -1
  249. package/src/realtime/index.ts +0 -51
  250. package/src/reportsClient.ts +0 -99
  251. package/src/schemaClient.ts +0 -129
  252. package/src/sdkSurface.ts +0 -190
  253. package/src/topicsClient.ts +0 -243
  254. package/src/types.ts +0 -807
  255. package/src/version.ts +0 -2
  256. package/src/workflowClient.ts +0 -826
  257. package/tsconfig.json +0 -9
@@ -1,275 +0,0 @@
1
- import {
2
- createGatewayRequestClient,
3
- type GatewayClientConfig,
4
- type GatewayScope,
5
- randomIdempotencyKey,
6
- toQueryString,
7
- } from "./coreClient";
8
- import { createListResult, mapGatewayData } from "./sdkSurface";
9
- import type { JsonObject } from "./types";
10
-
11
- /** Configuration for the ontology client. */
12
- export type OntologyClientConfig = GatewayClientConfig;
13
-
14
- /** Input for binding an ontology to a topic. */
15
- export type OntologyBindingInput = GatewayScope & {
16
- ontologyId: string;
17
- topicId: string;
18
- };
19
-
20
- /** Input for creating an ontology definition. */
21
- export type OntologyDefinitionInput = GatewayScope & {
22
- ontologyKey: string;
23
- name: string;
24
- description?: string;
25
- tenantId?: string;
26
- tier?: "platform" | "pack" | "tenant";
27
- };
28
-
29
- /** Input for updating mutable fields on an ontology definition. */
30
- export type OntologyDefinitionUpdateInput = GatewayScope & {
31
- name?: string;
32
- description?: string;
33
- status?: "draft" | "active" | "deprecated";
34
- };
35
-
36
- /** Input for creating a versioned snapshot of entity and edge type definitions. */
37
- export type OntologyVersionInput = GatewayScope & {
38
- version: string;
39
- entityTypes: Array<{
40
- value: string;
41
- label: string;
42
- description?: string;
43
- schema?: JsonObject;
44
- subtypes?: Array<{ value: string; label: string; description?: string }>;
45
- }>;
46
- edgeTypes: Array<{
47
- value: string;
48
- label: string;
49
- description?: string;
50
- sourceTypes?: string[];
51
- targetTypes?: string[];
52
- constraintSeverity?: "warn" | "info";
53
- }>;
54
- releaseNotes?: string;
55
- };
56
-
57
- /**
58
- * Create the ontology client for ontology definitions and versions.
59
- * @param config - Gateway transport configuration.
60
- * @returns An object with methods to manage ontology definitions, versions, and bindings.
61
- */
62
- export function createOntologyClient(config: OntologyClientConfig = {}) {
63
- const gateway = createGatewayRequestClient(config);
64
-
65
- return {
66
- /**
67
- * List ontology definitions matching optional filters.
68
- */
69
- async list(
70
- filters: GatewayScope & {
71
- tenantId?: string;
72
- tier?: string;
73
- status?: string;
74
- } = {}
75
- ) {
76
- return gateway
77
- .request<unknown>({
78
- path: `/api/platform/v1/ontologies${toQueryString(filters)}`,
79
- })
80
- .then((response) =>
81
- mapGatewayData(response, (data) => {
82
- const record =
83
- data && typeof data === "object" && !Array.isArray(data)
84
- ? (data as Record<string, unknown>)
85
- : {};
86
- const ontologies = Array.isArray(record.ontologies)
87
- ? record.ontologies
88
- : Array.isArray(record.definitions)
89
- ? record.definitions
90
- : Array.isArray(data)
91
- ? data
92
- : [];
93
- const total =
94
- typeof record.total === "number" && Number.isFinite(record.total)
95
- ? record.total
96
- : ontologies.length;
97
- return {
98
- ...record,
99
- ...createListResult(ontologies, "definitions"),
100
- ontologies,
101
- total,
102
- };
103
- })
104
- );
105
- },
106
-
107
- /**
108
- * Get an ontology definition by identifier.
109
- */
110
- async get(id: string) {
111
- return gateway.request<unknown>({
112
- path: `/api/platform/v1/ontologies/${encodeURIComponent(id)}`,
113
- });
114
- },
115
-
116
- /**
117
- * Bind an ontology definition to a topic.
118
- */
119
- async bind(input: OntologyBindingInput, idempotencyKey?: string) {
120
- return gateway.request<unknown>({
121
- path: `/api/platform/v1/ontologies/${encodeURIComponent(input.ontologyId)}/bind`,
122
- method: "POST",
123
- body: {
124
- topicId: input.topicId,
125
- },
126
- idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),
127
- });
128
- },
129
-
130
- /**
131
- * List ontology definitions.
132
- */
133
- async listDefinitions(
134
- filters: GatewayScope & {
135
- tenantId?: string;
136
- tier?: string;
137
- status?: string;
138
- } = {}
139
- ) {
140
- return this.list(filters);
141
- },
142
-
143
- /**
144
- * Get an ontology definition.
145
- */
146
- async getDefinition(id: string) {
147
- return this.get(id);
148
- },
149
-
150
- /**
151
- * Create an ontology definition.
152
- */
153
- async createDefinition(
154
- input: OntologyDefinitionInput,
155
- idempotencyKey?: string
156
- ) {
157
- return gateway.request<unknown>({
158
- path: "/api/platform/v1/ontologies",
159
- method: "POST",
160
- body: input,
161
- idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),
162
- });
163
- },
164
-
165
- /**
166
- * Update an ontology definition.
167
- */
168
- async updateDefinition(
169
- id: string,
170
- input: OntologyDefinitionUpdateInput,
171
- idempotencyKey?: string
172
- ) {
173
- return gateway.request<unknown>({
174
- path: `/api/platform/v1/ontologies/${encodeURIComponent(id)}`,
175
- method: "PATCH",
176
- body: input,
177
- idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),
178
- });
179
- },
180
-
181
- /**
182
- * Archive an ontology definition.
183
- */
184
- async archiveDefinition(id: string, idempotencyKey?: string) {
185
- return gateway.request<unknown>({
186
- path: `/api/platform/v1/ontologies/${encodeURIComponent(id)}`,
187
- method: "DELETE",
188
- idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),
189
- });
190
- },
191
-
192
- /**
193
- * List versions for an ontology definition.
194
- */
195
- async listVersions(
196
- ontologyId: string,
197
- filters: GatewayScope & { status?: string } = {}
198
- ) {
199
- return gateway.request<unknown>({
200
- path: `/api/platform/v1/ontologies/${encodeURIComponent(ontologyId)}/versions${toQueryString(filters)}`,
201
- }).then((response) =>
202
- mapGatewayData(response, (data) =>
203
- createListResult(Array.isArray(data) ? data : [], "versions")
204
- )
205
- );
206
- },
207
-
208
- /**
209
- * Create an ontology version.
210
- */
211
- async createVersion(
212
- ontologyId: string,
213
- input: OntologyVersionInput,
214
- idempotencyKey?: string
215
- ) {
216
- return gateway.request<unknown>({
217
- path: `/api/platform/v1/ontologies/${encodeURIComponent(ontologyId)}/versions`,
218
- method: "POST",
219
- body: input,
220
- idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),
221
- });
222
- },
223
-
224
- /**
225
- * Publish an ontology version.
226
- */
227
- async publishVersion(
228
- ontologyId: string,
229
- versionId: string,
230
- idempotencyKey?: string
231
- ) {
232
- return gateway.request<unknown>({
233
- path: `/api/platform/v1/ontologies/${encodeURIComponent(ontologyId)}/versions/${encodeURIComponent(versionId)}/publish`,
234
- method: "POST",
235
- idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),
236
- });
237
- },
238
-
239
- /**
240
- * Deprecate an ontology version.
241
- */
242
- async deprecateVersion(
243
- ontologyId: string,
244
- versionId: string,
245
- idempotencyKey?: string
246
- ) {
247
- return gateway.request<unknown>({
248
- path: `/api/platform/v1/ontologies/${encodeURIComponent(ontologyId)}/versions/${encodeURIComponent(versionId)}/deprecate`,
249
- method: "POST",
250
- idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),
251
- });
252
- },
253
-
254
- /**
255
- * List topics directly bound to a specific ontology definition.
256
- * Uses the topics gateway with ontologyId filter.
257
- */
258
- async listTopics(ontologyId: string) {
259
- return gateway.request<unknown>({
260
- path: `/api/platform/v1/topics?ontologyId=${encodeURIComponent(ontologyId)}`,
261
- }).then((response) =>
262
- mapGatewayData(response, (data) =>
263
- createListResult(Array.isArray(data) ? data : [], "topics")
264
- )
265
- );
266
- },
267
-
268
- /**
269
- * @deprecated Use listTopics.
270
- */
271
- async listTopicsByOntology(ontologyId: string) {
272
- return this.listTopics(ontologyId);
273
- },
274
- };
275
- }
@@ -1,3 +0,0 @@
1
- // TODO(exfill): restore package-backed pack runtime exports after the legacy
2
- // STACKOS lib/platform/packs surface is migrated into Lucern packages.
3
- export {};
@@ -1,260 +0,0 @@
1
- import {
2
- createGatewayRequestClient,
3
- type GatewayClientConfig,
4
- type GatewayScope,
5
- LucernApiError,
6
- randomIdempotencyKey,
7
- toQueryString,
8
- } from "./coreClient";
9
- import { createListResult, mapGatewayData } from "./sdkSurface";
10
- import type { JsonObject } from "./types";
11
-
12
- export { LucernApiError };
13
- export type { GatewayScope, PlatformGatewaySuccess } from "./coreClient";
14
-
15
- /** Configuration for the packs client. */
16
- export type PacksClientConfig = GatewayClientConfig;
17
-
18
- /** Input for installing a pack into a tenant or workspace scope. */
19
- export type PackInstallInput = GatewayScope & {
20
- packKey: string;
21
- version?: string;
22
- autoEnable?: boolean;
23
- metadata?: JsonObject;
24
- };
25
-
26
- /** Input for enabling a previously installed pack. */
27
- export type PackEnableInput = GatewayScope & {
28
- packKey: string;
29
- metadata?: JsonObject;
30
- };
31
-
32
- /** Input for disabling an active pack. */
33
- export type PackDisableInput = GatewayScope & {
34
- packKey: string;
35
- force?: boolean;
36
- metadata?: JsonObject;
37
- };
38
-
39
- /** Input for uninstalling a pack from a tenant or workspace scope. */
40
- export type PackUninstallInput = GatewayScope & {
41
- packKey: string;
42
- metadata?: JsonObject;
43
- };
44
-
45
- /** Input for upgrading a pack through the prepare/canary/commit/rollback lifecycle. */
46
- export type PackUpgradeInput = GatewayScope & {
47
- packKey: string;
48
- mode: "prepare" | "canary" | "commit" | "rollback";
49
- targetVersion?: string;
50
- metadata?: JsonObject;
51
- };
52
-
53
- /** Input for creating or updating a pack entitlement record. */
54
- export type PackEntitlementInput = GatewayScope & {
55
- packKey: string;
56
- status: "active" | "disabled" | "revoked";
57
- allowedLifecycles?: Array<"active" | "beta" | "experimental">;
58
- minVersion?: string;
59
- maxVersion?: string;
60
- metadata?: JsonObject;
61
- };
62
-
63
- /**
64
- * Create the packs client for pack catalog, state, and entitlement operations.
65
- * @param config - Gateway transport configuration.
66
- * @returns An object with methods to manage pack lifecycle, telemetry, and entitlements.
67
- */
68
- export function createPacksClient(config: PacksClientConfig = {}) {
69
- const gateway = createGatewayRequestClient(config);
70
-
71
- return {
72
- /**
73
- * List catalog entries for available packs.
74
- */
75
- async listCatalog() {
76
- return gateway.request<unknown>({
77
- path: "/api/platform/v1/packs/catalog",
78
- }).then((response) =>
79
- mapGatewayData(response, (data) =>
80
- createListResult(Array.isArray(data) ? data : [], "catalog")
81
- )
82
- );
83
- },
84
-
85
- /**
86
- * @deprecated Use listCatalog.
87
- */
88
- async getCatalog() {
89
- return this.listCatalog();
90
- },
91
-
92
- /**
93
- * Get the discovery catalog for packs.
94
- */
95
- async getDiscoveryCatalog() {
96
- return gateway.request<unknown>({
97
- path: "/api/platform/v1/packs/discovery",
98
- });
99
- },
100
-
101
- /**
102
- * Get discovery details for a specific pack.
103
- */
104
- async getDiscoveryDetail(packKey: string) {
105
- return gateway.request<unknown>({
106
- path: `/api/platform/v1/packs/discovery/${encodeURIComponent(packKey)}`,
107
- });
108
- },
109
-
110
- /**
111
- * List pack states for the current scope.
112
- */
113
- async listStates(query: GatewayScope = {}) {
114
- return gateway.request<unknown>({
115
- path: `/api/platform/v1/packs/states${toQueryString(query)}`,
116
- }).then((response) =>
117
- mapGatewayData(response, (data) =>
118
- createListResult(Array.isArray(data) ? data : [], "states")
119
- )
120
- );
121
- },
122
-
123
- /**
124
- * @deprecated Use listStates.
125
- */
126
- async getStates(query: GatewayScope = {}) {
127
- return this.listStates(query);
128
- },
129
-
130
- /**
131
- * Get health details for a pack.
132
- */
133
- async getHealth(packKey: string, query: GatewayScope = {}) {
134
- return gateway.request<unknown>({
135
- path: `/api/platform/v1/packs/${encodeURIComponent(packKey)}/health${toQueryString(
136
- query
137
- )}`,
138
- });
139
- },
140
-
141
- /**
142
- * List pack telemetry entries.
143
- */
144
- async listTelemetry(
145
- query: GatewayScope & { lookbackHours?: number; limit?: number } = {}
146
- ) {
147
- return gateway.request<unknown>({
148
- path: `/api/platform/v1/packs/telemetry${toQueryString(query)}`,
149
- }).then((response) =>
150
- mapGatewayData(response, (data) =>
151
- createListResult(Array.isArray(data) ? data : [], "telemetry")
152
- )
153
- );
154
- },
155
-
156
- /**
157
- * @deprecated Use listTelemetry.
158
- */
159
- async getTelemetry(
160
- query: GatewayScope & { lookbackHours?: number; limit?: number } = {}
161
- ) {
162
- return this.listTelemetry(query);
163
- },
164
-
165
- /**
166
- * Create a pack entitlement.
167
- */
168
- async createEntitlement(
169
- input: PackEntitlementInput,
170
- idempotencyKey?: string
171
- ) {
172
- return gateway.request<unknown>({
173
- path: "/api/platform/v1/packs/entitlements",
174
- method: "POST",
175
- body: input,
176
- idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),
177
- });
178
- },
179
-
180
- /**
181
- * Update a pack entitlement.
182
- */
183
- async updateEntitlement(
184
- input: PackEntitlementInput,
185
- idempotencyKey?: string
186
- ) {
187
- return this.createEntitlement(input, idempotencyKey);
188
- },
189
-
190
- /**
191
- * @deprecated Use createEntitlement or updateEntitlement.
192
- */
193
- async upsertEntitlement(
194
- input: PackEntitlementInput,
195
- idempotencyKey?: string
196
- ) {
197
- return this.createEntitlement(input, idempotencyKey);
198
- },
199
-
200
- /**
201
- * Install a pack.
202
- */
203
- async install(input: PackInstallInput, idempotencyKey?: string) {
204
- return gateway.request<unknown>({
205
- path: "/api/platform/v1/packs/install",
206
- method: "POST",
207
- body: input,
208
- idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),
209
- });
210
- },
211
-
212
- /**
213
- * Enable a pack.
214
- */
215
- async enable(input: PackEnableInput, idempotencyKey?: string) {
216
- return gateway.request<unknown>({
217
- path: "/api/platform/v1/packs/enable",
218
- method: "POST",
219
- body: input,
220
- idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),
221
- });
222
- },
223
-
224
- /**
225
- * Disable a pack.
226
- */
227
- async disable(input: PackDisableInput, idempotencyKey?: string) {
228
- return gateway.request<unknown>({
229
- path: "/api/platform/v1/packs/disable",
230
- method: "POST",
231
- body: input,
232
- idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),
233
- });
234
- },
235
-
236
- /**
237
- * Uninstall a pack.
238
- */
239
- async uninstall(input: PackUninstallInput, idempotencyKey?: string) {
240
- return gateway.request<unknown>({
241
- path: "/api/platform/v1/packs/uninstall",
242
- method: "POST",
243
- body: input,
244
- idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),
245
- });
246
- },
247
-
248
- /**
249
- * Upgrade a pack.
250
- */
251
- async upgrade(input: PackUpgradeInput, idempotencyKey?: string) {
252
- return gateway.request<unknown>({
253
- path: "/api/platform/v1/packs/upgrade",
254
- method: "POST",
255
- body: input,
256
- idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),
257
- });
258
- },
259
- };
260
- }