@elevasis/sdk 1.41.0 → 1.41.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +1 -1
- package/dist/index.d.ts +50 -14
- package/dist/node/index.d.ts +50 -14
- package/dist/test-utils/index.d.ts +50 -14
- package/package.json +3 -3
package/dist/cli.cjs
CHANGED
|
@@ -45834,7 +45834,7 @@ function wrapAction(commandName, fn) {
|
|
|
45834
45834
|
// package.json
|
|
45835
45835
|
var package_default = {
|
|
45836
45836
|
name: "@elevasis/sdk",
|
|
45837
|
-
version: "1.41.
|
|
45837
|
+
version: "1.41.1",
|
|
45838
45838
|
description: "SDK for building Elevasis organization resources",
|
|
45839
45839
|
type: "module",
|
|
45840
45840
|
bin: {
|
package/dist/index.d.ts
CHANGED
|
@@ -502,6 +502,15 @@ interface ModelConfig {
|
|
|
502
502
|
modelOptions?: ModelSpecificOptions;
|
|
503
503
|
}
|
|
504
504
|
|
|
505
|
+
/**
|
|
506
|
+
* What happened to `strict` on a request, recorded per call rather than inferred.
|
|
507
|
+
*
|
|
508
|
+
* `applied` and `notAttempted` are the two states that a refusal-only field cannot tell apart —
|
|
509
|
+
* both leave `strictRefusalReasons` empty. Recording the verdict positively is what makes "was
|
|
510
|
+
* this agent's output actually enforced?" answerable from an `ai_calls` row.
|
|
511
|
+
*/
|
|
512
|
+
type StrictStatus = 'applied' | 'refused' | 'compileRejected' | 'notAttempted';
|
|
513
|
+
|
|
505
514
|
declare const ResourceGovernanceStatusSchema: z.ZodEnum<{
|
|
506
515
|
active: "active";
|
|
507
516
|
deprecated: "deprecated";
|
|
@@ -1029,6 +1038,7 @@ interface WorkflowDefinition {
|
|
|
1029
1038
|
* Generic LLM Types
|
|
1030
1039
|
* Universal interfaces for LLM interaction across all resource types
|
|
1031
1040
|
*/
|
|
1041
|
+
|
|
1032
1042
|
/**
|
|
1033
1043
|
* Standard chat message format
|
|
1034
1044
|
* Compatible with OpenAI, Anthropic, and other providers
|
|
@@ -1062,15 +1072,30 @@ interface LLMGenerateResponse<T = unknown> {
|
|
|
1062
1072
|
totalTokens: number;
|
|
1063
1073
|
};
|
|
1064
1074
|
cost?: number;
|
|
1075
|
+
/**
|
|
1076
|
+
* What actually happened to `strict` on the request that produced this response. Every server
|
|
1077
|
+
* adapter sets it on every call, so the value is a statement rather than an inference:
|
|
1078
|
+
*
|
|
1079
|
+
* - `applied` — the request carried `strict: true` and the grammar was in effect
|
|
1080
|
+
* - `refused` — `toStrictSchema` could not express the schema, so the request went out unstrict
|
|
1081
|
+
* - `compileRejected` — the schema passed `toStrictSchema` but the provider's grammar compiler
|
|
1082
|
+
* rejected it at request time, and the call was retried unstrict
|
|
1083
|
+
* - `notAttempted` — this adapter does not send strict at all (OpenAI, Google, OpenRouter)
|
|
1084
|
+
*
|
|
1085
|
+
* This exists because `strictRefusalReasons` alone cannot answer the question. Its absence means
|
|
1086
|
+
* "strict held" OR "nothing ever tried", and a prod run that recorded zero refusals while
|
|
1087
|
+
* returning an array-typed field as a string is exactly the case where the difference matters.
|
|
1088
|
+
*
|
|
1089
|
+
* Internal-only, like `usage` — `UniversalLLMAdapter` lifts it onto the `ai_calls` row and
|
|
1090
|
+
* strips it before the response reaches callers.
|
|
1091
|
+
*/
|
|
1092
|
+
strictStatus?: StrictStatus;
|
|
1065
1093
|
/**
|
|
1066
1094
|
* Why this call went out WITHOUT `strict`, on an adapter that tried to send it with one.
|
|
1067
1095
|
*
|
|
1068
|
-
*
|
|
1069
|
-
*
|
|
1070
|
-
*
|
|
1071
|
-
* them at the call site: an unstrict call was indistinguishable from a strict one anywhere
|
|
1072
|
-
* outside a dev-only flow log. That invisibility is what let every tenant run unstrict against a
|
|
1073
|
-
* strict-capable API for as long as it took someone to recognise a pre-strict error signature.
|
|
1096
|
+
* The detail behind a `refused` / `compileRejected` `strictStatus` — the short, stable reason
|
|
1097
|
+
* strings `toStrictSchema` computes. Read `strictStatus` to answer "was it enforced"; read this
|
|
1098
|
+
* to answer "why not".
|
|
1074
1099
|
*
|
|
1075
1100
|
* Internal-only, like `usage` — `UniversalLLMAdapter` lifts it onto the `ai_calls` row and
|
|
1076
1101
|
* strips it before the response reaches callers.
|
|
@@ -11248,15 +11273,24 @@ interface BaseAICall {
|
|
|
11248
11273
|
*/
|
|
11249
11274
|
unvalidatedOutput?: string;
|
|
11250
11275
|
/**
|
|
11251
|
-
*
|
|
11252
|
-
*
|
|
11253
|
-
*
|
|
11276
|
+
* What happened to `strict` structured output on this call — `applied`, `refused`,
|
|
11277
|
+
* `compileRejected`, or `notAttempted`. Every server adapter sets it, so this is the field that
|
|
11278
|
+
* answers "is this agent's output actually being enforced?" without reading source.
|
|
11254
11279
|
*
|
|
11255
|
-
*
|
|
11256
|
-
*
|
|
11257
|
-
*
|
|
11258
|
-
*
|
|
11259
|
-
*
|
|
11280
|
+
* It replaces an inference that turned out to be unsound. `strictRefusalReasons` alone records
|
|
11281
|
+
* only refusals, so an empty row meant "strict held" OR "this adapter never tries" — and a prod
|
|
11282
|
+
* run recorded zero refusals while a call returned an array-typed field as a string, which a
|
|
11283
|
+
* grammar makes impossible. The absence proved nothing, because the deployed API had no way to
|
|
11284
|
+
* write the field at all.
|
|
11285
|
+
*
|
|
11286
|
+
* Absent on rows written before this field existed; that absence is itself diagnostic (the API
|
|
11287
|
+
* predates the change). Existing readers that only look at the fields above are unaffected.
|
|
11288
|
+
*/
|
|
11289
|
+
strictStatus?: StrictStatus;
|
|
11290
|
+
/**
|
|
11291
|
+
* Why this call went out without `strict`, when a strict-capable adapter refused the schema. The
|
|
11292
|
+
* detail behind `strictStatus: 'refused' | 'compileRejected'` — read `strictStatus` for whether
|
|
11293
|
+
* it was enforced, this for why not.
|
|
11260
11294
|
*
|
|
11261
11295
|
* Existing readers that only look at the fields above are unaffected.
|
|
11262
11296
|
*/
|
|
@@ -11316,6 +11350,8 @@ interface LLMUsageData {
|
|
|
11316
11350
|
outputValidationError?: string;
|
|
11317
11351
|
/** Raw model output that failed validation — JSON-stringified, truncated, truncation marked inline */
|
|
11318
11352
|
unvalidatedOutput?: string;
|
|
11353
|
+
/** What happened to `strict` on this call — set by every server adapter, refusal or not */
|
|
11354
|
+
strictStatus?: StrictStatus;
|
|
11319
11355
|
/** Why the call went out unstrict, when a strict-capable adapter refused the schema */
|
|
11320
11356
|
strictRefusalReasons?: string[];
|
|
11321
11357
|
}
|
package/dist/node/index.d.ts
CHANGED
|
@@ -372,6 +372,15 @@ interface ModelConfig {
|
|
|
372
372
|
modelOptions?: ModelSpecificOptions;
|
|
373
373
|
}
|
|
374
374
|
|
|
375
|
+
/**
|
|
376
|
+
* What happened to `strict` on a request, recorded per call rather than inferred.
|
|
377
|
+
*
|
|
378
|
+
* `applied` and `notAttempted` are the two states that a refusal-only field cannot tell apart —
|
|
379
|
+
* both leave `strictRefusalReasons` empty. Recording the verdict positively is what makes "was
|
|
380
|
+
* this agent's output actually enforced?" answerable from an `ai_calls` row.
|
|
381
|
+
*/
|
|
382
|
+
type StrictStatus = 'applied' | 'refused' | 'compileRejected' | 'notAttempted';
|
|
383
|
+
|
|
375
384
|
declare const ResourceGovernanceStatusSchema: z.ZodEnum<{
|
|
376
385
|
active: "active";
|
|
377
386
|
deprecated: "deprecated";
|
|
@@ -899,6 +908,7 @@ interface WorkflowDefinition {
|
|
|
899
908
|
* Generic LLM Types
|
|
900
909
|
* Universal interfaces for LLM interaction across all resource types
|
|
901
910
|
*/
|
|
911
|
+
|
|
902
912
|
/**
|
|
903
913
|
* Standard chat message format
|
|
904
914
|
* Compatible with OpenAI, Anthropic, and other providers
|
|
@@ -932,15 +942,30 @@ interface LLMGenerateResponse<T = unknown> {
|
|
|
932
942
|
totalTokens: number;
|
|
933
943
|
};
|
|
934
944
|
cost?: number;
|
|
945
|
+
/**
|
|
946
|
+
* What actually happened to `strict` on the request that produced this response. Every server
|
|
947
|
+
* adapter sets it on every call, so the value is a statement rather than an inference:
|
|
948
|
+
*
|
|
949
|
+
* - `applied` — the request carried `strict: true` and the grammar was in effect
|
|
950
|
+
* - `refused` — `toStrictSchema` could not express the schema, so the request went out unstrict
|
|
951
|
+
* - `compileRejected` — the schema passed `toStrictSchema` but the provider's grammar compiler
|
|
952
|
+
* rejected it at request time, and the call was retried unstrict
|
|
953
|
+
* - `notAttempted` — this adapter does not send strict at all (OpenAI, Google, OpenRouter)
|
|
954
|
+
*
|
|
955
|
+
* This exists because `strictRefusalReasons` alone cannot answer the question. Its absence means
|
|
956
|
+
* "strict held" OR "nothing ever tried", and a prod run that recorded zero refusals while
|
|
957
|
+
* returning an array-typed field as a string is exactly the case where the difference matters.
|
|
958
|
+
*
|
|
959
|
+
* Internal-only, like `usage` — `UniversalLLMAdapter` lifts it onto the `ai_calls` row and
|
|
960
|
+
* strips it before the response reaches callers.
|
|
961
|
+
*/
|
|
962
|
+
strictStatus?: StrictStatus;
|
|
935
963
|
/**
|
|
936
964
|
* Why this call went out WITHOUT `strict`, on an adapter that tried to send it with one.
|
|
937
965
|
*
|
|
938
|
-
*
|
|
939
|
-
*
|
|
940
|
-
*
|
|
941
|
-
* them at the call site: an unstrict call was indistinguishable from a strict one anywhere
|
|
942
|
-
* outside a dev-only flow log. That invisibility is what let every tenant run unstrict against a
|
|
943
|
-
* strict-capable API for as long as it took someone to recognise a pre-strict error signature.
|
|
966
|
+
* The detail behind a `refused` / `compileRejected` `strictStatus` — the short, stable reason
|
|
967
|
+
* strings `toStrictSchema` computes. Read `strictStatus` to answer "was it enforced"; read this
|
|
968
|
+
* to answer "why not".
|
|
944
969
|
*
|
|
945
970
|
* Internal-only, like `usage` — `UniversalLLMAdapter` lifts it onto the `ai_calls` row and
|
|
946
971
|
* strips it before the response reaches callers.
|
|
@@ -2749,15 +2774,24 @@ interface BaseAICall {
|
|
|
2749
2774
|
*/
|
|
2750
2775
|
unvalidatedOutput?: string;
|
|
2751
2776
|
/**
|
|
2752
|
-
*
|
|
2753
|
-
*
|
|
2754
|
-
*
|
|
2777
|
+
* What happened to `strict` structured output on this call — `applied`, `refused`,
|
|
2778
|
+
* `compileRejected`, or `notAttempted`. Every server adapter sets it, so this is the field that
|
|
2779
|
+
* answers "is this agent's output actually being enforced?" without reading source.
|
|
2755
2780
|
*
|
|
2756
|
-
*
|
|
2757
|
-
*
|
|
2758
|
-
*
|
|
2759
|
-
*
|
|
2760
|
-
*
|
|
2781
|
+
* It replaces an inference that turned out to be unsound. `strictRefusalReasons` alone records
|
|
2782
|
+
* only refusals, so an empty row meant "strict held" OR "this adapter never tries" — and a prod
|
|
2783
|
+
* run recorded zero refusals while a call returned an array-typed field as a string, which a
|
|
2784
|
+
* grammar makes impossible. The absence proved nothing, because the deployed API had no way to
|
|
2785
|
+
* write the field at all.
|
|
2786
|
+
*
|
|
2787
|
+
* Absent on rows written before this field existed; that absence is itself diagnostic (the API
|
|
2788
|
+
* predates the change). Existing readers that only look at the fields above are unaffected.
|
|
2789
|
+
*/
|
|
2790
|
+
strictStatus?: StrictStatus;
|
|
2791
|
+
/**
|
|
2792
|
+
* Why this call went out without `strict`, when a strict-capable adapter refused the schema. The
|
|
2793
|
+
* detail behind `strictStatus: 'refused' | 'compileRejected'` — read `strictStatus` for whether
|
|
2794
|
+
* it was enforced, this for why not.
|
|
2761
2795
|
*
|
|
2762
2796
|
* Existing readers that only look at the fields above are unaffected.
|
|
2763
2797
|
*/
|
|
@@ -2817,6 +2851,8 @@ interface LLMUsageData {
|
|
|
2817
2851
|
outputValidationError?: string;
|
|
2818
2852
|
/** Raw model output that failed validation — JSON-stringified, truncated, truncation marked inline */
|
|
2819
2853
|
unvalidatedOutput?: string;
|
|
2854
|
+
/** What happened to `strict` on this call — set by every server adapter, refusal or not */
|
|
2855
|
+
strictStatus?: StrictStatus;
|
|
2820
2856
|
/** Why the call went out unstrict, when a strict-capable adapter refused the schema */
|
|
2821
2857
|
strictRefusalReasons?: string[];
|
|
2822
2858
|
}
|
|
@@ -335,6 +335,15 @@ interface ModelConfig {
|
|
|
335
335
|
modelOptions?: ModelSpecificOptions;
|
|
336
336
|
}
|
|
337
337
|
|
|
338
|
+
/**
|
|
339
|
+
* What happened to `strict` on a request, recorded per call rather than inferred.
|
|
340
|
+
*
|
|
341
|
+
* `applied` and `notAttempted` are the two states that a refusal-only field cannot tell apart —
|
|
342
|
+
* both leave `strictRefusalReasons` empty. Recording the verdict positively is what makes "was
|
|
343
|
+
* this agent's output actually enforced?" answerable from an `ai_calls` row.
|
|
344
|
+
*/
|
|
345
|
+
type StrictStatus = 'applied' | 'refused' | 'compileRejected' | 'notAttempted';
|
|
346
|
+
|
|
338
347
|
declare const ResourceGovernanceStatusSchema: z.ZodEnum<{
|
|
339
348
|
active: "active";
|
|
340
349
|
deprecated: "deprecated";
|
|
@@ -862,6 +871,7 @@ interface WorkflowDefinition {
|
|
|
862
871
|
* Generic LLM Types
|
|
863
872
|
* Universal interfaces for LLM interaction across all resource types
|
|
864
873
|
*/
|
|
874
|
+
|
|
865
875
|
/**
|
|
866
876
|
* Standard chat message format
|
|
867
877
|
* Compatible with OpenAI, Anthropic, and other providers
|
|
@@ -895,15 +905,30 @@ interface LLMGenerateResponse<T = unknown> {
|
|
|
895
905
|
totalTokens: number;
|
|
896
906
|
};
|
|
897
907
|
cost?: number;
|
|
908
|
+
/**
|
|
909
|
+
* What actually happened to `strict` on the request that produced this response. Every server
|
|
910
|
+
* adapter sets it on every call, so the value is a statement rather than an inference:
|
|
911
|
+
*
|
|
912
|
+
* - `applied` — the request carried `strict: true` and the grammar was in effect
|
|
913
|
+
* - `refused` — `toStrictSchema` could not express the schema, so the request went out unstrict
|
|
914
|
+
* - `compileRejected` — the schema passed `toStrictSchema` but the provider's grammar compiler
|
|
915
|
+
* rejected it at request time, and the call was retried unstrict
|
|
916
|
+
* - `notAttempted` — this adapter does not send strict at all (OpenAI, Google, OpenRouter)
|
|
917
|
+
*
|
|
918
|
+
* This exists because `strictRefusalReasons` alone cannot answer the question. Its absence means
|
|
919
|
+
* "strict held" OR "nothing ever tried", and a prod run that recorded zero refusals while
|
|
920
|
+
* returning an array-typed field as a string is exactly the case where the difference matters.
|
|
921
|
+
*
|
|
922
|
+
* Internal-only, like `usage` — `UniversalLLMAdapter` lifts it onto the `ai_calls` row and
|
|
923
|
+
* strips it before the response reaches callers.
|
|
924
|
+
*/
|
|
925
|
+
strictStatus?: StrictStatus;
|
|
898
926
|
/**
|
|
899
927
|
* Why this call went out WITHOUT `strict`, on an adapter that tried to send it with one.
|
|
900
928
|
*
|
|
901
|
-
*
|
|
902
|
-
*
|
|
903
|
-
*
|
|
904
|
-
* them at the call site: an unstrict call was indistinguishable from a strict one anywhere
|
|
905
|
-
* outside a dev-only flow log. That invisibility is what let every tenant run unstrict against a
|
|
906
|
-
* strict-capable API for as long as it took someone to recognise a pre-strict error signature.
|
|
929
|
+
* The detail behind a `refused` / `compileRejected` `strictStatus` — the short, stable reason
|
|
930
|
+
* strings `toStrictSchema` computes. Read `strictStatus` to answer "was it enforced"; read this
|
|
931
|
+
* to answer "why not".
|
|
907
932
|
*
|
|
908
933
|
* Internal-only, like `usage` — `UniversalLLMAdapter` lifts it onto the `ai_calls` row and
|
|
909
934
|
* strips it before the response reaches callers.
|
|
@@ -10322,15 +10347,24 @@ interface BaseAICall {
|
|
|
10322
10347
|
*/
|
|
10323
10348
|
unvalidatedOutput?: string;
|
|
10324
10349
|
/**
|
|
10325
|
-
*
|
|
10326
|
-
*
|
|
10327
|
-
*
|
|
10350
|
+
* What happened to `strict` structured output on this call — `applied`, `refused`,
|
|
10351
|
+
* `compileRejected`, or `notAttempted`. Every server adapter sets it, so this is the field that
|
|
10352
|
+
* answers "is this agent's output actually being enforced?" without reading source.
|
|
10328
10353
|
*
|
|
10329
|
-
*
|
|
10330
|
-
*
|
|
10331
|
-
*
|
|
10332
|
-
*
|
|
10333
|
-
*
|
|
10354
|
+
* It replaces an inference that turned out to be unsound. `strictRefusalReasons` alone records
|
|
10355
|
+
* only refusals, so an empty row meant "strict held" OR "this adapter never tries" — and a prod
|
|
10356
|
+
* run recorded zero refusals while a call returned an array-typed field as a string, which a
|
|
10357
|
+
* grammar makes impossible. The absence proved nothing, because the deployed API had no way to
|
|
10358
|
+
* write the field at all.
|
|
10359
|
+
*
|
|
10360
|
+
* Absent on rows written before this field existed; that absence is itself diagnostic (the API
|
|
10361
|
+
* predates the change). Existing readers that only look at the fields above are unaffected.
|
|
10362
|
+
*/
|
|
10363
|
+
strictStatus?: StrictStatus;
|
|
10364
|
+
/**
|
|
10365
|
+
* Why this call went out without `strict`, when a strict-capable adapter refused the schema. The
|
|
10366
|
+
* detail behind `strictStatus: 'refused' | 'compileRejected'` — read `strictStatus` for whether
|
|
10367
|
+
* it was enforced, this for why not.
|
|
10334
10368
|
*
|
|
10335
10369
|
* Existing readers that only look at the fields above are unaffected.
|
|
10336
10370
|
*/
|
|
@@ -10390,6 +10424,8 @@ interface LLMUsageData {
|
|
|
10390
10424
|
outputValidationError?: string;
|
|
10391
10425
|
/** Raw model output that failed validation — JSON-stringified, truncated, truncation marked inline */
|
|
10392
10426
|
unvalidatedOutput?: string;
|
|
10427
|
+
/** What happened to `strict` on this call — set by every server adapter, refusal or not */
|
|
10428
|
+
strictStatus?: StrictStatus;
|
|
10393
10429
|
/** Why the call went out unstrict, when a strict-capable adapter refused the schema */
|
|
10394
10430
|
strictRefusalReasons?: string[];
|
|
10395
10431
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elevasis/sdk",
|
|
3
|
-
"version": "1.41.
|
|
3
|
+
"version": "1.41.1",
|
|
4
4
|
"description": "SDK for building Elevasis organization resources",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -59,8 +59,8 @@
|
|
|
59
59
|
"typescript": "5.9.2",
|
|
60
60
|
"zod": "^4.1.0",
|
|
61
61
|
"@repo/core": "0.57.0",
|
|
62
|
-
"@repo/
|
|
63
|
-
"@repo/
|
|
62
|
+
"@repo/typescript-config": "0.0.0",
|
|
63
|
+
"@repo/eslint-config": "0.0.0"
|
|
64
64
|
},
|
|
65
65
|
"scripts": {
|
|
66
66
|
"lint": "eslint src --max-warnings 0",
|