@lucern/sdk 0.3.0-alpha.16 → 0.3.0-alpha.2

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 (227) hide show
  1. package/CHANGELOG.md +0 -8
  2. package/README.md +4 -110
  3. package/dist/adminClient.d.ts +8 -10
  4. package/dist/adminClient.js +39 -260
  5. package/dist/adminClient.js.map +1 -1
  6. package/dist/answersClient.d.ts +0 -2
  7. package/dist/answersClient.js +11 -239
  8. package/dist/answersClient.js.map +1 -1
  9. package/dist/audience/index.d.ts +1 -2
  10. package/dist/audience/index.js +3 -1
  11. package/dist/audience/index.js.map +1 -1
  12. package/dist/audiencesClient.d.ts +16 -18
  13. package/dist/audiencesClient.js +90 -315
  14. package/dist/audiencesClient.js.map +1 -1
  15. package/dist/auditClient.d.ts +0 -2
  16. package/dist/auditClient.js +15 -245
  17. package/dist/auditClient.js.map +1 -1
  18. package/dist/beliefs/index.d.ts +5 -27
  19. package/dist/beliefs/index.js +1177 -3842
  20. package/dist/beliefs/index.js.map +1 -1
  21. package/dist/beliefsClient.d.ts +2 -4
  22. package/dist/beliefsClient.js +26 -248
  23. package/dist/beliefsClient.js.map +1 -1
  24. package/dist/client-B6aWUUwp.d.ts +2552 -0
  25. package/dist/client.d.ts +27 -3041
  26. package/dist/client.js +1177 -3842
  27. package/dist/client.js.map +1 -1
  28. package/dist/contextClient.d.ts +3 -6
  29. package/dist/contextClient.js +30 -270
  30. package/dist/contextClient.js.map +1 -1
  31. package/dist/contextFacade.js +16 -25
  32. package/dist/contextFacade.js.map +1 -1
  33. package/dist/contextPackCompiler.js +30 -19
  34. package/dist/contextPackCompiler.js.map +1 -1
  35. package/dist/contextPackPolicy.js +17 -7
  36. package/dist/contextPackPolicy.js.map +1 -1
  37. package/dist/contextTypes.d.ts +0 -2
  38. package/dist/contracts/api-enums.contract.d.ts +2 -2
  39. package/dist/contracts/api-enums.contract.js +1 -6
  40. package/dist/contracts/api-enums.contract.js.map +1 -1
  41. package/dist/contracts/auth-session.contract.d.ts +1 -1
  42. package/dist/contracts/auth-session.contract.js +1 -13
  43. package/dist/contracts/auth-session.contract.js.map +1 -1
  44. package/dist/contracts/index.d.ts +0 -1
  45. package/dist/contracts/index.js +6 -133
  46. package/dist/contracts/index.js.map +1 -1
  47. package/dist/contracts/lens-filter.contract.js +3 -4
  48. package/dist/contracts/lens-filter.contract.js.map +1 -1
  49. package/dist/contracts/lens-workflow.contract.js +3 -4
  50. package/dist/contracts/lens-workflow.contract.js.map +1 -1
  51. package/dist/contracts/lensFilter.js +3 -4
  52. package/dist/contracts/lensFilter.js.map +1 -1
  53. package/dist/contracts/lensWorkflow.js +3 -4
  54. package/dist/contracts/lensWorkflow.js.map +1 -1
  55. package/dist/contracts/mcpTools.d.ts +1 -46
  56. package/dist/contracts/mcpTools.js +0 -108
  57. package/dist/contracts/mcpTools.js.map +1 -1
  58. package/dist/contradictions/index.d.ts +4 -26
  59. package/dist/contradictions/index.js +1177 -3842
  60. package/dist/contradictions/index.js.map +1 -1
  61. package/dist/coreClient.d.ts +2 -28
  62. package/dist/coreClient.js +14 -240
  63. package/dist/coreClient.js.map +1 -1
  64. package/dist/decisions/index.d.ts +14 -36
  65. package/dist/decisions/index.js +1177 -3842
  66. package/dist/decisions/index.js.map +1 -1
  67. package/dist/decisionsClient.d.ts +12 -6
  68. package/dist/decisionsClient.js +37 -253
  69. package/dist/decisionsClient.js.map +1 -1
  70. package/dist/edges/index.d.ts +87 -49
  71. package/dist/edges/index.js +1177 -3842
  72. package/dist/edges/index.js.map +1 -1
  73. package/dist/events.js +3 -6
  74. package/dist/events.js.map +1 -1
  75. package/dist/eventsCore.d.ts +1 -3
  76. package/dist/eventsCore.js +14 -240
  77. package/dist/eventsCore.js.map +1 -1
  78. package/dist/evidence/index.d.ts +4 -26
  79. package/dist/evidence/index.js +1177 -3842
  80. package/dist/evidence/index.js.map +1 -1
  81. package/dist/evidenceClient.d.ts +0 -2
  82. package/dist/evidenceClient.js +14 -240
  83. package/dist/evidenceClient.js.map +1 -1
  84. package/dist/facade/context.d.ts +1 -2
  85. package/dist/facade/context.js +16 -25
  86. package/dist/facade/context.js.map +1 -1
  87. package/dist/gatewayFacades.d.ts +46 -90
  88. package/dist/gatewayFacades.js +128 -609
  89. package/dist/gatewayFacades.js.map +1 -1
  90. package/dist/graphClient.d.ts +13 -8
  91. package/dist/graphClient.js +45 -262
  92. package/dist/graphClient.js.map +1 -1
  93. package/dist/harnessClient.d.ts +24 -15
  94. package/dist/harnessClient.js +42 -253
  95. package/dist/harnessClient.js.map +1 -1
  96. package/dist/identityClient.d.ts +11 -115
  97. package/dist/identityClient.js +33 -555
  98. package/dist/identityClient.js.map +1 -1
  99. package/dist/index.d.ts +6 -32
  100. package/dist/index.js +2580 -5825
  101. package/dist/index.js.map +1 -1
  102. package/dist/learningClient.d.ts +6 -8
  103. package/dist/learningClient.js +44 -270
  104. package/dist/learningClient.js.map +1 -1
  105. package/dist/lenses/index.d.ts +38 -78
  106. package/dist/lenses/index.js +1177 -3842
  107. package/dist/lenses/index.js.map +1 -1
  108. package/dist/nodes/index.d.ts +21 -65
  109. package/dist/nodes/index.js +1177 -3842
  110. package/dist/nodes/index.js.map +1 -1
  111. package/dist/ontologies/index.d.ts +32 -55
  112. package/dist/ontologies/index.js +1177 -3842
  113. package/dist/ontologies/index.js.map +1 -1
  114. package/dist/ontologyClient.d.ts +25 -19
  115. package/dist/ontologyClient.js +40 -276
  116. package/dist/ontologyClient.js.map +1 -1
  117. package/dist/packsClient.d.ts +23 -11
  118. package/dist/packsClient.js +46 -252
  119. package/dist/packsClient.js.map +1 -1
  120. package/dist/policyClient.d.ts +10 -13
  121. package/dist/policyClient.js +25 -261
  122. package/dist/policyClient.js.map +1 -1
  123. package/dist/questions/index.d.ts +4 -26
  124. package/dist/questions/index.js +1177 -3842
  125. package/dist/questions/index.js.map +1 -1
  126. package/dist/realtime/index.d.ts +1 -1
  127. package/dist/reportsClient.d.ts +7 -9
  128. package/dist/reportsClient.js +53 -299
  129. package/dist/reportsClient.js.map +1 -1
  130. package/dist/schemaClient.d.ts +3 -5
  131. package/dist/schemaClient.js +29 -253
  132. package/dist/schemaClient.js.map +1 -1
  133. package/dist/sdkSurface.d.ts +3 -8
  134. package/dist/sdkSurface.js +6 -10
  135. package/dist/sdkSurface.js.map +1 -1
  136. package/dist/sourcesClient.d.ts +0 -2
  137. package/dist/sourcesClient.js +14 -240
  138. package/dist/sourcesClient.js.map +1 -1
  139. package/dist/topics/index.d.ts +9 -37
  140. package/dist/topics/index.js +1177 -3844
  141. package/dist/topics/index.js.map +1 -1
  142. package/dist/topicsClient.d.ts +0 -4
  143. package/dist/topicsClient.js +24 -255
  144. package/dist/topicsClient.js.map +1 -1
  145. package/dist/types.d.ts +0 -17
  146. package/dist/version.d.ts +1 -1
  147. package/dist/version.js +1 -1
  148. package/dist/version.js.map +1 -1
  149. package/dist/workflowClient.d.ts +40 -60
  150. package/dist/workflowClient.js +58 -261
  151. package/dist/workflowClient.js.map +1 -1
  152. package/dist/worktrees/index.d.ts +33 -71
  153. package/dist/worktrees/index.js +1177 -3842
  154. package/dist/worktrees/index.js.map +1 -1
  155. package/package.json +3 -17
  156. package/dist/accessControl.d.ts +0 -79
  157. package/dist/accessControl.js +0 -1270
  158. package/dist/accessControl.js.map +0 -1
  159. package/dist/authContext.d.ts +0 -56
  160. package/dist/authContext.js +0 -170
  161. package/dist/authContext.js.map +0 -1
  162. package/dist/authDeviceClient.d.ts +0 -49
  163. package/dist/authDeviceClient.js +0 -121
  164. package/dist/authDeviceClient.js.map +0 -1
  165. package/dist/boundaryClientSurface.d.ts +0 -20
  166. package/dist/boundaryClientSurface.js +0 -73
  167. package/dist/boundaryClientSurface.js.map +0 -1
  168. package/dist/clientHelpers.d.ts +0 -48
  169. package/dist/clientHelpers.js +0 -137
  170. package/dist/clientHelpers.js.map +0 -1
  171. package/dist/control-plane.d.ts +0 -69
  172. package/dist/control-plane.js +0 -674
  173. package/dist/control-plane.js.map +0 -1
  174. package/dist/embeddingsClient.d.ts +0 -106
  175. package/dist/embeddingsClient.js +0 -749
  176. package/dist/embeddingsClient.js.map +0 -1
  177. package/dist/eventingClient.d.ts +0 -96
  178. package/dist/eventingClient.js +0 -746
  179. package/dist/eventingClient.js.map +0 -1
  180. package/dist/functionSurface.d.ts +0 -144
  181. package/dist/functionSurface.js +0 -1227
  182. package/dist/functionSurface.js.map +0 -1
  183. package/dist/functionSurfaceClient.d.ts +0 -8
  184. package/dist/functionSurfaceClient.js +0 -1227
  185. package/dist/functionSurfaceClient.js.map +0 -1
  186. package/dist/graphAnalysisClient.d.ts +0 -192
  187. package/dist/graphAnalysisClient.js +0 -817
  188. package/dist/graphAnalysisClient.js.map +0 -1
  189. package/dist/graphIntel.d.ts +0 -4
  190. package/dist/graphIntel.js +0 -3
  191. package/dist/graphIntel.js.map +0 -1
  192. package/dist/graphIntelligence.d.ts +0 -2
  193. package/dist/graphIntelligence.js +0 -47
  194. package/dist/graphIntelligence.js.map +0 -1
  195. package/dist/graphRecommendationsClient.d.ts +0 -56
  196. package/dist/graphRecommendationsClient.js +0 -682
  197. package/dist/graphRecommendationsClient.js.map +0 -1
  198. package/dist/graphStateClassifierClient.d.ts +0 -73
  199. package/dist/graphStateClassifierClient.js +0 -734
  200. package/dist/graphStateClassifierClient.js.map +0 -1
  201. package/dist/infisicalRuntime.d.ts +0 -43
  202. package/dist/infisicalRuntime.js +0 -346
  203. package/dist/infisicalRuntime.js.map +0 -1
  204. package/dist/jobsClient.d.ts +0 -98
  205. package/dist/jobsClient.js +0 -744
  206. package/dist/jobsClient.js.map +0 -1
  207. package/dist/mcpClient.d.ts +0 -28
  208. package/dist/mcpClient.js +0 -687
  209. package/dist/mcpClient.js.map +0 -1
  210. package/dist/modelRuntimeClient.d.ts +0 -72
  211. package/dist/modelRuntimeClient.js +0 -722
  212. package/dist/modelRuntimeClient.js.map +0 -1
  213. package/dist/ontologyLinksClient.d.ts +0 -71
  214. package/dist/ontologyLinksClient.js +0 -715
  215. package/dist/ontologyLinksClient.js.map +0 -1
  216. package/dist/orgGraphSearchClient.d.ts +0 -85
  217. package/dist/orgGraphSearchClient.js +0 -690
  218. package/dist/orgGraphSearchClient.js.map +0 -1
  219. package/dist/secrets.d.ts +0 -1
  220. package/dist/secrets.js +0 -3
  221. package/dist/secrets.js.map +0 -1
  222. package/dist/telemetryClient.d.ts +0 -94
  223. package/dist/telemetryClient.js +0 -759
  224. package/dist/telemetryClient.js.map +0 -1
  225. package/dist/toolRegistryClient.d.ts +0 -115
  226. package/dist/toolRegistryClient.js +0 -785
  227. package/dist/toolRegistryClient.js.map +0 -1
@@ -1,121 +0,0 @@
1
- // src/authDeviceClient.ts
2
- var DeviceAuthorizationError = class extends Error {
3
- error;
4
- interval;
5
- constructor(args) {
6
- super(args.description ?? args.error);
7
- this.name = "DeviceAuthorizationError";
8
- this.error = args.error;
9
- this.interval = args.interval;
10
- }
11
- };
12
- function authBaseUrl(config) {
13
- return config.baseUrl?.replace(/\/+$/, "") ?? "";
14
- }
15
- async function readJson(response) {
16
- try {
17
- const payload = await response.json();
18
- return isRecord(payload) ? payload : {};
19
- } catch (error) {
20
- return unreadableJsonBodyFallback();
21
- }
22
- }
23
- function unreadableJsonBodyFallback(_error) {
24
- return {};
25
- }
26
- function isRecord(value) {
27
- return value !== null && typeof value === "object" && !Array.isArray(value);
28
- }
29
- function readString(value) {
30
- const normalized = typeof value === "string" ? value.trim() : "";
31
- return normalized || void 0;
32
- }
33
- function assertDeviceCodeResponse(payload) {
34
- const deviceCode = readString(payload.device_code);
35
- const userCode = readString(payload.user_code);
36
- const verificationUri = readString(payload.verification_uri);
37
- const verificationUriComplete = readString(payload.verification_uri_complete);
38
- const expiresIn = payload.expires_in;
39
- const interval = payload.interval;
40
- if (!deviceCode || !userCode || !verificationUri || !verificationUriComplete || typeof expiresIn !== "number" || typeof interval !== "number") {
41
- throw new Error("Gateway returned an invalid device-code response.");
42
- }
43
- return {
44
- device_code: deviceCode,
45
- user_code: userCode,
46
- verification_uri: verificationUri,
47
- verification_uri_complete: verificationUriComplete,
48
- expires_in: expiresIn,
49
- interval
50
- };
51
- }
52
- function assertDeviceTokenResponse(payload) {
53
- const accessToken = readString(payload.access_token);
54
- const tokenType = readString(payload.token_type);
55
- const scope = readString(payload.scope);
56
- const tenantId = readString(payload.tenant_id);
57
- const principalId = readString(payload.principal_id);
58
- if (!accessToken || tokenType !== "Bearer" || typeof payload.expires_in !== "number" || !scope || !tenantId || !principalId) {
59
- throw new Error("Gateway returned an invalid device token response.");
60
- }
61
- return {
62
- access_token: accessToken,
63
- token_type: "Bearer",
64
- expires_in: payload.expires_in,
65
- scope,
66
- tenant_id: tenantId,
67
- workspace_id: readString(payload.workspace_id),
68
- principal_id: principalId,
69
- user: isRecord(payload.user) && typeof payload.user.id === "string" && typeof payload.user.principalId === "string" ? {
70
- id: payload.user.id,
71
- principalId: payload.user.principalId
72
- } : void 0
73
- };
74
- }
75
- function maybeThrowDeviceError(payload) {
76
- const error = readString(payload.error);
77
- throw new DeviceAuthorizationError({
78
- error: error ?? "invalid_request",
79
- description: readString(payload.error_description),
80
- interval: typeof payload.interval === "number" ? payload.interval : void 0
81
- });
82
- }
83
- function createAuthDeviceClient(config = {}) {
84
- const fetchImpl = config.fetchImpl ?? fetch;
85
- const baseUrl = authBaseUrl(config);
86
- async function post(path, body) {
87
- return fetchImpl(`${baseUrl}${path}`, {
88
- method: "POST",
89
- headers: { "content-type": "application/json" },
90
- body: JSON.stringify(body)
91
- });
92
- }
93
- return {
94
- async createDeviceCode(input = {}) {
95
- const response = await post("/api/platform/v1/auth/device/code", {
96
- client_id: input.clientId ?? "lucern-cli",
97
- scope: input.scope ?? "graph.read graph.write"
98
- });
99
- const payload = await readJson(response);
100
- if (!response.ok) {
101
- maybeThrowDeviceError(payload);
102
- }
103
- return assertDeviceCodeResponse(payload);
104
- },
105
- async pollDeviceToken(deviceCode) {
106
- const response = await post("/api/platform/v1/auth/device/token", {
107
- grant_type: "urn:ietf:params:oauth:grant-type:device_code",
108
- device_code: deviceCode
109
- });
110
- const payload = await readJson(response);
111
- if (!response.ok) {
112
- maybeThrowDeviceError(payload);
113
- }
114
- return assertDeviceTokenResponse(payload);
115
- }
116
- };
117
- }
118
-
119
- export { DeviceAuthorizationError, createAuthDeviceClient };
120
- //# sourceMappingURL=authDeviceClient.js.map
121
- //# sourceMappingURL=authDeviceClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/authDeviceClient.ts"],"names":[],"mappings":"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","file":"authDeviceClient.js","sourcesContent":["import type { GatewayClientConfig } from \"./coreClient\";\n\nexport type DeviceCodeInput = {\n clientId?: string;\n scope?: string;\n};\n\nexport type DeviceCodeResponse = {\n device_code: string;\n user_code: string;\n verification_uri: string;\n verification_uri_complete: string;\n expires_in: number;\n interval: number;\n};\n\nexport type DeviceTokenResponse = {\n access_token: string;\n token_type: \"Bearer\";\n expires_in: number;\n scope: string;\n tenant_id: string;\n workspace_id?: string;\n principal_id: string;\n user?: {\n id: string;\n principalId: string;\n };\n};\n\nexport type DeviceTokenErrorCode =\n | \"authorization_pending\"\n | \"slow_down\"\n | \"access_denied\"\n | \"expired_token\"\n | \"invalid_grant\"\n | \"invalid_request\";\n\nexport class DeviceAuthorizationError extends Error {\n readonly error: DeviceTokenErrorCode;\n readonly interval?: number;\n\n constructor(args: {\n error: DeviceTokenErrorCode;\n description?: string;\n interval?: number;\n }) {\n super(args.description ?? args.error);\n this.name = \"DeviceAuthorizationError\";\n this.error = args.error;\n this.interval = args.interval;\n }\n}\n\nfunction authBaseUrl(config: GatewayClientConfig): string {\n return config.baseUrl?.replace(/\\/+$/, \"\") ?? \"\";\n}\n\nasync function readJson(response: Response): Promise<Record<string, unknown>> {\n try {\n const payload = (await response.json()) as unknown;\n return isRecord(payload) ? payload : {};\n } catch (error) {\n return unreadableJsonBodyFallback(error);\n }\n}\n\nfunction unreadableJsonBodyFallback(_error: unknown): Record<string, unknown> {\n return {};\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction readString(value: unknown): string | undefined {\n const normalized = typeof value === \"string\" ? value.trim() : \"\";\n return normalized || undefined;\n}\n\nfunction assertDeviceCodeResponse(payload: Record<string, unknown>): DeviceCodeResponse {\n const deviceCode = readString(payload.device_code);\n const userCode = readString(payload.user_code);\n const verificationUri = readString(payload.verification_uri);\n const verificationUriComplete = readString(payload.verification_uri_complete);\n const expiresIn = payload.expires_in;\n const interval = payload.interval;\n if (\n !deviceCode ||\n !userCode ||\n !verificationUri ||\n !verificationUriComplete ||\n typeof expiresIn !== \"number\" ||\n typeof interval !== \"number\"\n ) {\n throw new Error(\"Gateway returned an invalid device-code response.\");\n }\n return {\n device_code: deviceCode,\n user_code: userCode,\n verification_uri: verificationUri,\n verification_uri_complete: verificationUriComplete,\n expires_in: expiresIn,\n interval,\n };\n}\n\nfunction assertDeviceTokenResponse(\n payload: Record<string, unknown>\n): DeviceTokenResponse {\n const accessToken = readString(payload.access_token);\n const tokenType = readString(payload.token_type);\n const scope = readString(payload.scope);\n const tenantId = readString(payload.tenant_id);\n const principalId = readString(payload.principal_id);\n if (\n !accessToken ||\n tokenType !== \"Bearer\" ||\n typeof payload.expires_in !== \"number\" ||\n !scope ||\n !tenantId ||\n !principalId\n ) {\n throw new Error(\"Gateway returned an invalid device token response.\");\n }\n return {\n access_token: accessToken,\n token_type: \"Bearer\",\n expires_in: payload.expires_in,\n scope,\n tenant_id: tenantId,\n workspace_id: readString(payload.workspace_id),\n principal_id: principalId,\n user:\n isRecord(payload.user) &&\n typeof payload.user.id === \"string\" &&\n typeof payload.user.principalId === \"string\"\n ? {\n id: payload.user.id,\n principalId: payload.user.principalId,\n }\n : undefined,\n };\n}\n\nfunction maybeThrowDeviceError(payload: Record<string, unknown>): never {\n const error = readString(payload.error) as DeviceTokenErrorCode | undefined;\n throw new DeviceAuthorizationError({\n error: error ?? \"invalid_request\",\n description: readString(payload.error_description),\n interval:\n typeof payload.interval === \"number\" ? payload.interval : undefined,\n });\n}\n\nexport function createAuthDeviceClient(config: GatewayClientConfig = {}) {\n const fetchImpl = config.fetchImpl ?? fetch;\n const baseUrl = authBaseUrl(config);\n\n async function post(path: string, body: Record<string, unknown>) {\n return fetchImpl(`${baseUrl}${path}`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(body),\n });\n }\n\n return {\n async createDeviceCode(input: DeviceCodeInput = {}) {\n const response = await post(\"/api/platform/v1/auth/device/code\", {\n client_id: input.clientId ?? \"lucern-cli\",\n scope: input.scope ?? \"graph.read graph.write\",\n });\n const payload = await readJson(response);\n if (!response.ok) {\n maybeThrowDeviceError(payload);\n }\n return assertDeviceCodeResponse(payload);\n },\n async pollDeviceToken(deviceCode: string) {\n const response = await post(\"/api/platform/v1/auth/device/token\", {\n grant_type: \"urn:ietf:params:oauth:grant-type:device_code\",\n device_code: deviceCode,\n });\n const payload = await readJson(response);\n if (!response.ok) {\n maybeThrowDeviceError(payload);\n }\n return assertDeviceTokenResponse(payload);\n },\n };\n}\n"]}
@@ -1,20 +0,0 @@
1
- import { JsonObject, ListResult } from './types.js';
2
- import './contracts/workflow-runtime.contract.js';
3
- import './contracts/lens-workflow.contract.js';
4
- import './contracts/lens-filter.contract.js';
5
-
6
- type TopicProjectAliasInput = {
7
- topicId?: string;
8
- /** @deprecated Use topicId. */
9
- projectId?: string;
10
- };
11
- declare function cleanOptionalString(value: string | undefined): string | undefined;
12
- declare function cleanRequiredString(value: string | undefined, label: string): string;
13
- declare function readTopicId(input: TopicProjectAliasInput): string | undefined;
14
- declare function requireTopicId(input: TopicProjectAliasInput): string;
15
- declare function assertKnownKeys<T extends string>(input: Record<string, unknown>, allowed: readonly T[], operation: string): void;
16
- declare function knownPayload<T extends string>(input: Record<string, unknown>, allowed: readonly T[], operation: string): JsonObject;
17
- declare function topicPayload<T extends string>(input: TopicProjectAliasInput & Record<string, unknown>, allowed: readonly T[], operation: string): JsonObject;
18
- declare function listResultFromEnvelope<T, LegacyKey extends string>(data: unknown, legacyKey: LegacyKey): ListResult<T, LegacyKey>;
19
-
20
- export { type TopicProjectAliasInput, assertKnownKeys, cleanOptionalString, cleanRequiredString, knownPayload, listResultFromEnvelope, readTopicId, requireTopicId, topicPayload };
@@ -1,73 +0,0 @@
1
- // src/sdkSurface.ts
2
- function createListResult(items, legacyKey) {
3
- const result = {
4
- items,
5
- total: items.length
6
- };
7
- if (legacyKey) {
8
- return {
9
- ...result,
10
- [legacyKey]: items
11
- };
12
- }
13
- return result;
14
- }
15
-
16
- // src/boundaryClientSurface.ts
17
- function cleanOptionalString(value) {
18
- const normalized = value?.trim();
19
- return normalized ? normalized : void 0;
20
- }
21
- function isRecord(value) {
22
- return Boolean(value) && typeof value === "object" && !Array.isArray(value);
23
- }
24
- function cleanRequiredString(value, label) {
25
- const normalized = cleanOptionalString(value);
26
- if (!normalized) {
27
- throw new Error(`${label} is required`);
28
- }
29
- return normalized;
30
- }
31
- function readTopicId(input) {
32
- return cleanOptionalString(input.topicId) ?? cleanOptionalString(input.projectId);
33
- }
34
- function requireTopicId(input) {
35
- const topicId = readTopicId(input);
36
- if (!topicId) {
37
- throw new Error("topicId is required");
38
- }
39
- return topicId;
40
- }
41
- function assertKnownKeys(input, allowed, operation) {
42
- const allowedSet = new Set(allowed);
43
- const unknownKeys = Object.keys(input).filter((key) => !allowedSet.has(key));
44
- if (unknownKeys.length > 0) {
45
- throw new Error(
46
- `${operation} received unsupported field(s): ${unknownKeys.join(", ")}`
47
- );
48
- }
49
- }
50
- function knownPayload(input, allowed, operation) {
51
- assertKnownKeys(input, allowed, operation);
52
- return { ...input };
53
- }
54
- function topicPayload(input, allowed, operation) {
55
- assertKnownKeys(input, allowed, operation);
56
- return {
57
- ...input,
58
- topicId: requireTopicId(input),
59
- projectId: void 0
60
- };
61
- }
62
- function listResultFromEnvelope(data, legacyKey) {
63
- const record = isRecord(data) ? data : {};
64
- const legacyItems = record[legacyKey];
65
- return createListResult(
66
- Array.isArray(legacyItems) ? legacyItems : Array.isArray(data) ? data : [],
67
- legacyKey
68
- );
69
- }
70
-
71
- export { assertKnownKeys, cleanOptionalString, cleanRequiredString, knownPayload, listResultFromEnvelope, readTopicId, requireTopicId, topicPayload };
72
- //# sourceMappingURL=boundaryClientSurface.js.map
73
- //# sourceMappingURL=boundaryClientSurface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/sdkSurface.ts","../src/boundaryClientSurface.ts"],"names":[],"mappings":";AAoJO,SAAS,gBAAA,CACd,OACA,SAAA,EAC0B;AAC1B,EAAA,MAAM,MAAA,GAAS;AAAA,IACb,KAAA;AAAA,IACA,OAAO,KAAA,CAAM;AAAA,GACf;AAEA,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,OAAO;AAAA,MACL,GAAG,MAAA;AAAA,MACH,CAAC,SAAS,GAAG;AAAA,KACf;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT;;;AC5JO,SAAS,oBAAoB,KAAA,EAA2B;AAC7D,EAAA,MAAM,UAAA,GAAa,OAAO,IAAA,EAAK;AAC/B,EAAA,OAAO,aAAa,UAAA,GAAa,MAAA;AACnC;AAEA,SAAS,SAAS,KAAA,EAAkD;AAClE,EAAA,OAAO,OAAA,CAAQ,KAAK,CAAA,IAAK,OAAO,UAAU,QAAA,IAAY,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA;AAC5E;AAEO,SAAS,mBAAA,CACd,OACA,KAAA,EACA;AACA,EAAA,MAAM,UAAA,GAAa,oBAAoB,KAAK,CAAA;AAC5C,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,EAAG,KAAK,CAAA,YAAA,CAAc,CAAA;AAAA,EACxC;AACA,EAAA,OAAO,UAAA;AACT;AAEO,SAAS,YAAY,KAAA,EAA+B;AACzD,EAAA,OAAO,oBAAoB,KAAA,CAAM,OAAO,CAAA,IAAK,mBAAA,CAAoB,MAAM,SAAS,CAAA;AAClF;AAEO,SAAS,eAAe,KAAA,EAA+B;AAC5D,EAAA,MAAM,OAAA,GAAU,YAAY,KAAK,CAAA;AACjC,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,MAAM,qBAAqB,CAAA;AAAA,EACvC;AACA,EAAA,OAAO,OAAA;AACT;AAEO,SAAS,eAAA,CACd,KAAA,EACA,OAAA,EACA,SAAA,EACA;AACA,EAAA,MAAM,UAAA,GAAa,IAAI,GAAA,CAAY,OAAO,CAAA;AAC1C,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,MAAA,CAAO,CAAC,GAAA,KAAQ,CAAC,UAAA,CAAW,GAAA,CAAI,GAAG,CAAC,CAAA;AAC3E,EAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,GAAG,SAAS,CAAA,gCAAA,EAAmC,WAAA,CAAY,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA,KACvE;AAAA,EACF;AACF;AAEO,SAAS,YAAA,CACd,KAAA,EACA,OAAA,EACA,SAAA,EACA;AACA,EAAA,eAAA,CAAgB,KAAA,EAAO,SAAS,SAAS,CAAA;AACzC,EAAA,OAAO,EAAE,GAAG,KAAA,EAAM;AACpB;AAEO,SAAS,YAAA,CACd,KAAA,EACA,OAAA,EACA,SAAA,EACA;AACA,EAAA,eAAA,CAAgB,KAAA,EAAO,SAAS,SAAS,CAAA;AACzC,EAAA,OAAO;AAAA,IACL,GAAG,KAAA;AAAA,IACH,OAAA,EAAS,eAAe,KAAK,CAAA;AAAA,IAC7B,SAAA,EAAW;AAAA,GACb;AACF;AAEO,SAAS,sBAAA,CACd,MACA,SAAA,EAC0B;AAC1B,EAAA,MAAM,MAAA,GAAS,QAAA,CAAS,IAAI,CAAA,GAAI,OAAO,EAAC;AACxC,EAAA,MAAM,WAAA,GAAc,OAAO,SAAS,CAAA;AACpC,EAAA,OAAO,gBAAA;AAAA,IACL,KAAA,CAAM,OAAA,CAAQ,WAAW,CAAA,GACrB,WAAA,GACA,MAAM,OAAA,CAAQ,IAAI,CAAA,GAChB,IAAA,GACA,EAAC;AAAA,IACP;AAAA,GACF;AACF","file":"boundaryClientSurface.js","sourcesContent":["import type { PlatformGatewaySuccess } from \"./coreClient\";\nimport type { JsonObject, ListResult } from \"./types\";\n\ntype TopicScopedValue = {\n topicId?: string;\n};\n\ntype TextScopedValue = {\n text?: string;\n canonicalText?: string;\n};\n\ntype AnyRecord = Record<string, unknown>;\n\nexport function isRecord(value: unknown): value is AnyRecord {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nexport function asRecord(value: unknown): AnyRecord {\n return isRecord(value) ? value : {};\n}\n\nfunction cleanString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim().length > 0\n ? value.trim()\n : undefined;\n}\n\nfunction normalizeVerificationStatus(value: unknown): string | undefined {\n const status = cleanString(value);\n if (!status) {\n return undefined;\n }\n if (status === \"verified\") {\n return \"human_verified\";\n }\n if (status === \"rejected\") {\n return \"contradicted\";\n }\n return status;\n}\n\nfunction cloneWith<T extends AnyRecord>(value: T, patch: AnyRecord): T {\n return { ...value, ...patch } as T;\n}\n\n/**\n * Resolve the canonical topic identifier.\n */\nexport function resolveTopicId(value: TopicScopedValue): string | undefined {\n return cleanString(value.topicId);\n}\n\n/**\n * Resolve the canonical text field from text-first or legacy canonicalText-first inputs.\n */\nexport function resolveText(value: TextScopedValue): string | undefined {\n return cleanString(value.text) ?? cleanString(value.canonicalText);\n}\n\n/**\n * Attach the topicId to a record.\n */\nexport function withTopicAlias<T extends AnyRecord>(value: T): T {\n const topicId = cleanString(value.topicId) ?? undefined;\n if (!topicId) {\n return value;\n }\n return cloneWith(value, { topicId });\n}\n\n/**\n * Attach the text/canonicalText alias pair to a record.\n */\nexport function withTextAlias<T extends AnyRecord>(value: T): T {\n const text =\n cleanString(value.text) ?? cleanString(value.canonicalText) ?? undefined;\n if (!text) {\n return value;\n }\n return cloneWith(value, { text, canonicalText: text });\n}\n\n/**\n * Attach topic and text aliases to SDK node-like records.\n */\nexport function withSdkAliases<T extends AnyRecord>(value: T): T {\n return withTopicAlias(withTextAlias(value));\n}\n\n/**\n * Normalize a belief/question/evidence write payload to the canonical gateway shape.\n */\nexport function normalizeNodeWriteInput<T extends JsonObject>(value: T): T {\n const topicId = resolveTopicId(value);\n const text = resolveText(value);\n const verificationStatus = normalizeVerificationStatus(value.verificationStatus);\n const next = { ...value } as JsonObject;\n\n if (topicId) {\n next.topicId = topicId;\n }\n if (text) {\n next.text = text;\n next.canonicalText = text;\n }\n if (verificationStatus) {\n next.verificationStatus = verificationStatus;\n }\n\n return next as T;\n}\n\nexport const normalizeNodeVerificationStatus = normalizeVerificationStatus;\n\n/**\n * Build a topic-aware query object.\n */\nexport function normalizeTopicQuery<T extends JsonObject>(value: T): T {\n const topicId = cleanString(value.topicId);\n if (!topicId) {\n return value;\n }\n return { ...value, topicId } as T;\n}\n\n/**\n * Extract list items from array or list-envelope payloads.\n */\nexport function asListItems<T>(data: unknown, legacyKey?: string): T[] {\n if (Array.isArray(data)) {\n return data;\n }\n\n const record = asRecord(data);\n if (Array.isArray(record.items)) {\n return record.items;\n }\n if (legacyKey && Array.isArray(record[legacyKey])) {\n return record[legacyKey];\n }\n\n return [];\n}\n\n/**\n * Standardize list data to { items, total } while retaining an optional legacy array key.\n */\nexport function createListResult<T, LegacyKey extends string>(\n items: T[],\n legacyKey?: LegacyKey\n): ListResult<T, LegacyKey> {\n const result = {\n items,\n total: items.length,\n } as ListResult<T, LegacyKey>;\n\n if (legacyKey) {\n return {\n ...result,\n [legacyKey]: items,\n } as ListResult<T, LegacyKey>;\n }\n\n return result;\n}\n\n/**\n * Map a gateway success envelope's data while preserving the transport metadata.\n */\nexport function mapGatewayData<T, U>(\n response: PlatformGatewaySuccess<T>,\n mapper: (data: T) => U\n): PlatformGatewaySuccess<U> {\n return {\n ...response,\n data: mapper(response.data),\n };\n}\n\n/**\n * Apply SDK aliases across all items in a list-like payload.\n */\nexport function mapAliasedList<\n TItem extends AnyRecord,\n LegacyKey extends string,\n>(\n data: unknown,\n legacyKey?: LegacyKey\n): ListResult<TItem, LegacyKey> {\n const items = asListItems<TItem>(data, legacyKey).map((item) =>\n withSdkAliases(item)\n );\n return createListResult(items, legacyKey);\n}\n","import { createListResult } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type TopicProjectAliasInput = {\n topicId?: string;\n /** @deprecated Use topicId. */\n projectId?: string;\n};\n\nexport function cleanOptionalString(value: string | undefined) {\n const normalized = value?.trim();\n return normalized ? normalized : undefined;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nexport function cleanRequiredString(\n value: string | undefined,\n label: string\n) {\n const normalized = cleanOptionalString(value);\n if (!normalized) {\n throw new Error(`${label} is required`);\n }\n return normalized;\n}\n\nexport function readTopicId(input: TopicProjectAliasInput) {\n return cleanOptionalString(input.topicId) ?? cleanOptionalString(input.projectId);\n}\n\nexport function requireTopicId(input: TopicProjectAliasInput) {\n const topicId = readTopicId(input);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return topicId;\n}\n\nexport function assertKnownKeys<T extends string>(\n input: Record<string, unknown>,\n allowed: readonly T[],\n operation: string\n) {\n const allowedSet = new Set<string>(allowed);\n const unknownKeys = Object.keys(input).filter((key) => !allowedSet.has(key));\n if (unknownKeys.length > 0) {\n throw new Error(\n `${operation} received unsupported field(s): ${unknownKeys.join(\", \")}`\n );\n }\n}\n\nexport function knownPayload<T extends string>(\n input: Record<string, unknown>,\n allowed: readonly T[],\n operation: string\n) {\n assertKnownKeys(input, allowed, operation);\n return { ...input } as JsonObject;\n}\n\nexport function topicPayload<T extends string>(\n input: TopicProjectAliasInput & Record<string, unknown>,\n allowed: readonly T[],\n operation: string\n) {\n assertKnownKeys(input, allowed, operation);\n return {\n ...input,\n topicId: requireTopicId(input),\n projectId: undefined,\n } as JsonObject;\n}\n\nexport function listResultFromEnvelope<T, LegacyKey extends string>(\n data: unknown,\n legacyKey: LegacyKey\n): ListResult<T, LegacyKey> {\n const record = isRecord(data) ? data : {};\n const legacyItems = record[legacyKey];\n return createListResult(\n Array.isArray(legacyItems)\n ? legacyItems\n : Array.isArray(data)\n ? data\n : [],\n legacyKey\n );\n}\n"]}
@@ -1,48 +0,0 @@
1
- import { JsonObject, PlatformGraphEdge, PlatformGraphNode } from './types.js';
2
- import './contracts/workflow-runtime.contract.js';
3
- import './contracts/lens-workflow.contract.js';
4
- import './contracts/lens-filter.contract.js';
5
-
6
- type NodeLike = PlatformGraphNode;
7
- type EdgeLike = PlatformGraphEdge;
8
- type CustomToolInput = JsonObject;
9
- type BeliefsRefineInput = string | {
10
- text: string;
11
- rationale?: string;
12
- };
13
- type BeliefsArchiveInput = {
14
- reason?: string;
15
- rationale?: string;
16
- } | string;
17
- declare function normalizeCustomNamespace(namespace: string): string;
18
- declare function normalizeCustomToolPayload(input: unknown): CustomToolInput;
19
- declare function resolveCustomToolFullName(name: string): string;
20
- declare function buildBeliefsRefinePayload(textOrInput: BeliefsRefineInput, rationale?: string): {
21
- text: string;
22
- rationale?: string;
23
- };
24
- declare function buildBeliefsArchivePayload(input?: BeliefsArchiveInput): {
25
- reason?: string;
26
- } | undefined;
27
- declare function asNodeArray(data: unknown): NodeLike[];
28
- declare function asEdgeArray(data: unknown): EdgeLike[];
29
- declare function requireTopicId(args: {
30
- topicId?: string;
31
- }): string;
32
- declare function requireTopicOrProjectId(args: {
33
- topicId?: string;
34
- projectId?: string;
35
- }): string;
36
- declare function matchesAuditNodeReference(value: unknown, nodeId: string): boolean;
37
- declare function requireText(args: {
38
- text?: string;
39
- canonicalText?: string;
40
- formulation?: string;
41
- newFormulation?: string;
42
- }): string;
43
- declare function requireBaseRate(args: {
44
- baseRate?: number;
45
- }): number;
46
- declare function sdkQueryString(input: Record<string, unknown>): string;
47
-
48
- export { type BeliefsArchiveInput, type BeliefsRefineInput, type CustomToolInput, type EdgeLike, type NodeLike, asEdgeArray, asNodeArray, buildBeliefsArchivePayload, buildBeliefsRefinePayload, matchesAuditNodeReference, normalizeCustomNamespace, normalizeCustomToolPayload, requireBaseRate, requireText, requireTopicId, requireTopicOrProjectId, resolveCustomToolFullName, sdkQueryString };
@@ -1,137 +0,0 @@
1
- // src/sdkSurface.ts
2
- function isRecord(value) {
3
- return Boolean(value) && typeof value === "object" && !Array.isArray(value);
4
- }
5
- function asRecord(value) {
6
- return isRecord(value) ? value : {};
7
- }
8
- function cleanString(value) {
9
- return typeof value === "string" && value.trim().length > 0 ? value.trim() : void 0;
10
- }
11
- function resolveTopicId(value) {
12
- return cleanString(value.topicId);
13
- }
14
- function resolveText(value) {
15
- return cleanString(value.text) ?? cleanString(value.canonicalText);
16
- }
17
- function asListItems(data, legacyKey) {
18
- if (Array.isArray(data)) {
19
- return data;
20
- }
21
- const record = asRecord(data);
22
- if (Array.isArray(record.items)) {
23
- return record.items;
24
- }
25
- if (legacyKey && Array.isArray(record[legacyKey])) {
26
- return record[legacyKey];
27
- }
28
- return [];
29
- }
30
-
31
- // src/clientHelpers.ts
32
- function normalizeCustomNamespace(namespace) {
33
- return namespace.trim() || "custom";
34
- }
35
- function normalizeCustomToolPayload(input) {
36
- return input && typeof input === "object" && !Array.isArray(input) ? input : {};
37
- }
38
- function resolveCustomToolFullName(name) {
39
- return name.includes(".") ? name : `custom.${name}`;
40
- }
41
- function buildBeliefsRefinePayload(textOrInput, rationale) {
42
- return typeof textOrInput === "string" ? { text: textOrInput, rationale } : { text: textOrInput.text, rationale: textOrInput.rationale };
43
- }
44
- function buildBeliefsArchivePayload(input) {
45
- return typeof input === "string" ? { reason: input } : input ? { reason: input.reason ?? input.rationale } : void 0;
46
- }
47
- function asNodeArray(data) {
48
- const rows = asListItems(data, "nodes");
49
- if (rows.length > 0) {
50
- return rows.filter(
51
- (value) => Boolean(value) && typeof value === "object"
52
- );
53
- }
54
- if (data && typeof data === "object") {
55
- return [data];
56
- }
57
- return [];
58
- }
59
- function asEdgeArray(data) {
60
- const rows = asListItems(data, "edges");
61
- if (rows.length > 0) {
62
- return rows.filter(
63
- (value) => Boolean(value) && typeof value === "object"
64
- );
65
- }
66
- if (data && typeof data === "object") {
67
- return [data];
68
- }
69
- return [];
70
- }
71
- function requireTopicId(args) {
72
- const topicId = resolveTopicId(args);
73
- if (!topicId) {
74
- throw new Error("topicId is required");
75
- }
76
- return topicId;
77
- }
78
- function requireTopicOrProjectId(args) {
79
- const topicId = args.topicId?.trim() || args.projectId?.trim() || void 0;
80
- if (!topicId) {
81
- throw new Error("topicId is required");
82
- }
83
- return topicId;
84
- }
85
- var AUDIT_NODE_REFERENCE_KEY_PATTERN = /(^|_)(id|nodeid|beliefid|resourceid|targetid|sourceid|subjectid|globalid|entityid|recordid|fromnodeid|tonodeid|linkednodeid|linkedbeliefid|nodeids|beliefids|resourceids)$/i;
86
- function matchesAuditNodeReference(value, nodeId) {
87
- if (Array.isArray(value)) {
88
- return value.some((entry) => matchesAuditNodeReference(entry, nodeId));
89
- }
90
- if (!value || typeof value !== "object") {
91
- return false;
92
- }
93
- return Object.entries(value).some(([key, entry]) => {
94
- if (typeof entry === "string" && entry === nodeId && AUDIT_NODE_REFERENCE_KEY_PATTERN.test(key)) {
95
- return true;
96
- }
97
- if (Array.isArray(entry) && AUDIT_NODE_REFERENCE_KEY_PATTERN.test(key) && entry.some((item) => item === nodeId)) {
98
- return true;
99
- }
100
- return matchesAuditNodeReference(entry, nodeId);
101
- });
102
- }
103
- function requireText(args) {
104
- const text = resolveText(args);
105
- if (!text) {
106
- throw new Error("text is required");
107
- }
108
- return text;
109
- }
110
- function requireBaseRate(args) {
111
- const baseRate = typeof args.baseRate === "number" && Number.isFinite(args.baseRate) ? args.baseRate : 0.5;
112
- if (baseRate < 0 || baseRate > 1) {
113
- throw new Error("baseRate must be within [0, 1].");
114
- }
115
- return baseRate;
116
- }
117
- function sdkQueryString(input) {
118
- const params = new URLSearchParams();
119
- for (const [key, value] of Object.entries(input)) {
120
- if (value === void 0 || value === null) {
121
- continue;
122
- }
123
- if (Array.isArray(value)) {
124
- if (value.length > 0) {
125
- params.set(key, value.join(","));
126
- }
127
- continue;
128
- }
129
- params.set(key, String(value));
130
- }
131
- const serialized = params.toString();
132
- return serialized ? `?${serialized}` : "";
133
- }
134
-
135
- export { asEdgeArray, asNodeArray, buildBeliefsArchivePayload, buildBeliefsRefinePayload, matchesAuditNodeReference, normalizeCustomNamespace, normalizeCustomToolPayload, requireBaseRate, requireText, requireTopicId, requireTopicOrProjectId, resolveCustomToolFullName, sdkQueryString };
136
- //# sourceMappingURL=clientHelpers.js.map
137
- //# sourceMappingURL=clientHelpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/sdkSurface.ts","../src/clientHelpers.ts"],"names":[],"mappings":"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","file":"clientHelpers.js","sourcesContent":["import type { PlatformGatewaySuccess } from \"./coreClient\";\nimport type { JsonObject, ListResult } from \"./types\";\n\ntype TopicScopedValue = {\n topicId?: string;\n};\n\ntype TextScopedValue = {\n text?: string;\n canonicalText?: string;\n};\n\ntype AnyRecord = Record<string, unknown>;\n\nexport function isRecord(value: unknown): value is AnyRecord {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nexport function asRecord(value: unknown): AnyRecord {\n return isRecord(value) ? value : {};\n}\n\nfunction cleanString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim().length > 0\n ? value.trim()\n : undefined;\n}\n\nfunction normalizeVerificationStatus(value: unknown): string | undefined {\n const status = cleanString(value);\n if (!status) {\n return undefined;\n }\n if (status === \"verified\") {\n return \"human_verified\";\n }\n if (status === \"rejected\") {\n return \"contradicted\";\n }\n return status;\n}\n\nfunction cloneWith<T extends AnyRecord>(value: T, patch: AnyRecord): T {\n return { ...value, ...patch } as T;\n}\n\n/**\n * Resolve the canonical topic identifier.\n */\nexport function resolveTopicId(value: TopicScopedValue): string | undefined {\n return cleanString(value.topicId);\n}\n\n/**\n * Resolve the canonical text field from text-first or legacy canonicalText-first inputs.\n */\nexport function resolveText(value: TextScopedValue): string | undefined {\n return cleanString(value.text) ?? cleanString(value.canonicalText);\n}\n\n/**\n * Attach the topicId to a record.\n */\nexport function withTopicAlias<T extends AnyRecord>(value: T): T {\n const topicId = cleanString(value.topicId) ?? undefined;\n if (!topicId) {\n return value;\n }\n return cloneWith(value, { topicId });\n}\n\n/**\n * Attach the text/canonicalText alias pair to a record.\n */\nexport function withTextAlias<T extends AnyRecord>(value: T): T {\n const text =\n cleanString(value.text) ?? cleanString(value.canonicalText) ?? undefined;\n if (!text) {\n return value;\n }\n return cloneWith(value, { text, canonicalText: text });\n}\n\n/**\n * Attach topic and text aliases to SDK node-like records.\n */\nexport function withSdkAliases<T extends AnyRecord>(value: T): T {\n return withTopicAlias(withTextAlias(value));\n}\n\n/**\n * Normalize a belief/question/evidence write payload to the canonical gateway shape.\n */\nexport function normalizeNodeWriteInput<T extends JsonObject>(value: T): T {\n const topicId = resolveTopicId(value);\n const text = resolveText(value);\n const verificationStatus = normalizeVerificationStatus(value.verificationStatus);\n const next = { ...value } as JsonObject;\n\n if (topicId) {\n next.topicId = topicId;\n }\n if (text) {\n next.text = text;\n next.canonicalText = text;\n }\n if (verificationStatus) {\n next.verificationStatus = verificationStatus;\n }\n\n return next as T;\n}\n\nexport const normalizeNodeVerificationStatus = normalizeVerificationStatus;\n\n/**\n * Build a topic-aware query object.\n */\nexport function normalizeTopicQuery<T extends JsonObject>(value: T): T {\n const topicId = cleanString(value.topicId);\n if (!topicId) {\n return value;\n }\n return { ...value, topicId } as T;\n}\n\n/**\n * Extract list items from array or list-envelope payloads.\n */\nexport function asListItems<T>(data: unknown, legacyKey?: string): T[] {\n if (Array.isArray(data)) {\n return data;\n }\n\n const record = asRecord(data);\n if (Array.isArray(record.items)) {\n return record.items;\n }\n if (legacyKey && Array.isArray(record[legacyKey])) {\n return record[legacyKey];\n }\n\n return [];\n}\n\n/**\n * Standardize list data to { items, total } while retaining an optional legacy array key.\n */\nexport function createListResult<T, LegacyKey extends string>(\n items: T[],\n legacyKey?: LegacyKey\n): ListResult<T, LegacyKey> {\n const result = {\n items,\n total: items.length,\n } as ListResult<T, LegacyKey>;\n\n if (legacyKey) {\n return {\n ...result,\n [legacyKey]: items,\n } as ListResult<T, LegacyKey>;\n }\n\n return result;\n}\n\n/**\n * Map a gateway success envelope's data while preserving the transport metadata.\n */\nexport function mapGatewayData<T, U>(\n response: PlatformGatewaySuccess<T>,\n mapper: (data: T) => U\n): PlatformGatewaySuccess<U> {\n return {\n ...response,\n data: mapper(response.data),\n };\n}\n\n/**\n * Apply SDK aliases across all items in a list-like payload.\n */\nexport function mapAliasedList<\n TItem extends AnyRecord,\n LegacyKey extends string,\n>(\n data: unknown,\n legacyKey?: LegacyKey\n): ListResult<TItem, LegacyKey> {\n const items = asListItems<TItem>(data, legacyKey).map((item) =>\n withSdkAliases(item)\n );\n return createListResult(items, legacyKey);\n}\n","import { asListItems, resolveText, resolveTopicId } from \"./sdkSurface\";\nimport type { JsonObject, PlatformGraphEdge, PlatformGraphNode } from \"./types\";\n\nexport type NodeLike = PlatformGraphNode;\nexport type EdgeLike = PlatformGraphEdge;\nexport type CustomToolInput = JsonObject;\nexport type BeliefsRefineInput =\n | string\n | { text: string; rationale?: string };\nexport type BeliefsArchiveInput = { reason?: string; rationale?: string } | string;\n\nexport function normalizeCustomNamespace(namespace: string): string {\n return namespace.trim() || \"custom\";\n}\n\nexport function normalizeCustomToolPayload(input: unknown): CustomToolInput {\n return input && typeof input === \"object\" && !Array.isArray(input)\n ? (input as CustomToolInput)\n : {};\n}\n\nexport function resolveCustomToolFullName(name: string): string {\n return name.includes(\".\") ? name : `custom.${name}`;\n}\n\nexport function buildBeliefsRefinePayload(\n textOrInput: BeliefsRefineInput,\n rationale?: string\n): { text: string; rationale?: string } {\n return typeof textOrInput === \"string\"\n ? { text: textOrInput, rationale }\n : { text: textOrInput.text, rationale: textOrInput.rationale };\n}\n\nexport function buildBeliefsArchivePayload(\n input?: BeliefsArchiveInput\n): { reason?: string } | undefined {\n return typeof input === \"string\"\n ? { reason: input }\n : input\n ? { reason: input.reason ?? input.rationale }\n : undefined;\n}\n\nexport function asNodeArray(data: unknown): NodeLike[] {\n const rows = asListItems<NodeLike>(data, \"nodes\");\n if (rows.length > 0) {\n return rows.filter(\n (value): value is NodeLike => Boolean(value) && typeof value === \"object\"\n );\n }\n if (data && typeof data === \"object\") {\n return [data as NodeLike];\n }\n return [];\n}\n\nexport function asEdgeArray(data: unknown): EdgeLike[] {\n const rows = asListItems<EdgeLike>(data, \"edges\");\n if (rows.length > 0) {\n return rows.filter(\n (value): value is EdgeLike => Boolean(value) && typeof value === \"object\"\n );\n }\n if (data && typeof data === \"object\") {\n return [data as EdgeLike];\n }\n return [];\n}\n\nexport function requireTopicId(args: { topicId?: string }): string {\n const topicId = resolveTopicId(args);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return topicId;\n}\n\nexport function requireTopicOrProjectId(args: {\n topicId?: string;\n projectId?: string;\n}): string {\n const topicId =\n args.topicId?.trim() || args.projectId?.trim() || undefined;\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return topicId;\n}\n\nconst AUDIT_NODE_REFERENCE_KEY_PATTERN =\n /(^|_)(id|nodeid|beliefid|resourceid|targetid|sourceid|subjectid|globalid|entityid|recordid|fromnodeid|tonodeid|linkednodeid|linkedbeliefid|nodeids|beliefids|resourceids)$/i;\n\nexport function matchesAuditNodeReference(\n value: unknown,\n nodeId: string\n): boolean {\n if (Array.isArray(value)) {\n return value.some((entry) => matchesAuditNodeReference(entry, nodeId));\n }\n\n if (!value || typeof value !== \"object\") {\n return false;\n }\n\n return Object.entries(value as Record<string, unknown>).some(([key, entry]) => {\n if (\n typeof entry === \"string\" &&\n entry === nodeId &&\n AUDIT_NODE_REFERENCE_KEY_PATTERN.test(key)\n ) {\n return true;\n }\n\n if (\n Array.isArray(entry) &&\n AUDIT_NODE_REFERENCE_KEY_PATTERN.test(key) &&\n entry.some((item) => item === nodeId)\n ) {\n return true;\n }\n\n return matchesAuditNodeReference(entry, nodeId);\n });\n}\n\nexport function requireText(args: {\n text?: string;\n canonicalText?: string;\n formulation?: string;\n newFormulation?: string;\n}): string {\n const text = resolveText(args);\n if (!text) {\n throw new Error(\"text is required\");\n }\n return text;\n}\n\nexport function requireBaseRate(args: { baseRate?: number }): number {\n const baseRate =\n typeof args.baseRate === \"number\" && Number.isFinite(args.baseRate)\n ? args.baseRate\n : 0.5;\n if (baseRate < 0 || baseRate > 1) {\n throw new Error(\"baseRate must be within [0, 1].\");\n }\n return baseRate;\n}\n\nexport function sdkQueryString(input: Record<string, unknown>): string {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(input)) {\n if (value === undefined || value === null) {\n continue;\n }\n if (Array.isArray(value)) {\n if (value.length > 0) {\n params.set(key, value.join(\",\"));\n }\n continue;\n }\n params.set(key, String(value));\n }\n const serialized = params.toString();\n return serialized ? `?${serialized}` : \"\";\n}\n"]}
@@ -1,69 +0,0 @@
1
- import { GatewayClientConfig, PlatformGatewaySuccess } from './coreClient.js';
2
- import { SdkPrincipalContext, JsonObject } from './types.js';
3
- import './authContext.js';
4
- import './contracts/auth-session.contract.js';
5
- import './contracts/workflow-runtime.contract.js';
6
- import './contracts/lens-workflow.contract.js';
7
- import './contracts/lens-filter.contract.js';
8
-
9
- type ControlPlanePrincipalType = "human" | "service" | "agent" | "group" | "external_viewer";
10
- type ControlPlanePrincipalStatus = "active" | "invited" | "suspended" | "disabled" | "revoked" | "missing";
11
- type ResolveInteractivePrincipalInput = {
12
- clerkId: string;
13
- tenantId?: string;
14
- workspaceId?: string;
15
- providerProjectId?: string;
16
- };
17
- type ControlPlanePermitSubject = {
18
- subject: string;
19
- tenant: string;
20
- workspace?: string;
21
- };
22
- type ResolvedInteractivePrincipalContext = SdkPrincipalContext & {
23
- principalType: ControlPlanePrincipalType;
24
- authMode: "interactive_user";
25
- clerkId: string;
26
- tenantId: string;
27
- workspaceId: string | null;
28
- groupIds: string[];
29
- permittedToolNames: string[];
30
- permittedPackKeys: string[];
31
- principalStatus: ControlPlanePrincipalStatus;
32
- tenantStatus: string;
33
- workspaceStatus: string;
34
- permit: ControlPlanePermitSubject;
35
- };
36
- type ResolveInteractivePrincipalFailureReason = "principal_missing" | "tenant_missing" | "workspace_missing" | "membership_missing" | "ambiguous_principal" | "ambiguous_workspace" | "alias_invited" | "alias_suspended" | "alias_disabled" | "alias_revoked" | "principal_invited" | "principal_suspended" | "principal_disabled" | "principal_revoked" | "tenant_disabled" | "workspace_disabled" | "resolver_unavailable";
37
- type ResolveInteractivePrincipalFailure = {
38
- ok: false;
39
- reason: ResolveInteractivePrincipalFailureReason | (string & {});
40
- message: string;
41
- principalStatus?: ControlPlanePrincipalStatus | string;
42
- tenantStatus?: string;
43
- workspaceStatus?: string;
44
- details?: JsonObject;
45
- };
46
- type ResolveInteractivePrincipalPayload = (ResolvedInteractivePrincipalContext & {
47
- ok?: true;
48
- }) | ResolveInteractivePrincipalFailure;
49
- declare class LucernControlPlaneIdentityError extends Error {
50
- readonly reason: ResolveInteractivePrincipalFailure["reason"];
51
- readonly principalStatus?: string;
52
- readonly tenantStatus?: string;
53
- readonly workspaceStatus?: string;
54
- readonly details?: JsonObject;
55
- constructor(failure: ResolveInteractivePrincipalFailure);
56
- }
57
- declare function normalizeResolvedInteractivePrincipal(payload: ResolveInteractivePrincipalPayload): ResolvedInteractivePrincipalContext;
58
- type ResolveInteractivePrincipalResponse = PlatformGatewaySuccess<ResolvedInteractivePrincipalContext>;
59
- type ControlPlaneIdentityClientConfig = GatewayClientConfig;
60
- declare function createControlPlaneIdentityClient(config?: ControlPlaneIdentityClientConfig): {
61
- resolveInteractivePrincipal(input: ResolveInteractivePrincipalInput): Promise<ResolveInteractivePrincipalResponse>;
62
- };
63
- declare function createControlPlaneClient(config?: ControlPlaneIdentityClientConfig): {
64
- identity: {
65
- resolveInteractivePrincipal(input: ResolveInteractivePrincipalInput): Promise<ResolveInteractivePrincipalResponse>;
66
- };
67
- };
68
-
69
- export { type ControlPlaneIdentityClientConfig, type ControlPlanePermitSubject, type ControlPlanePrincipalStatus, type ControlPlanePrincipalType, LucernControlPlaneIdentityError, type ResolveInteractivePrincipalFailure, type ResolveInteractivePrincipalFailureReason, type ResolveInteractivePrincipalInput, type ResolveInteractivePrincipalResponse, type ResolvedInteractivePrincipalContext, createControlPlaneClient, createControlPlaneIdentityClient, normalizeResolvedInteractivePrincipal };