@x12i/ai-profiles 4.5.0 → 5.0.0

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 (39) hide show
  1. package/README.md +19 -6
  2. package/dist/data/reasoning-coverage.json +499 -0
  3. package/dist/data/reasoning-directives.json +7562 -0
  4. package/dist/errors.d.ts +1 -1
  5. package/dist/errors.d.ts.map +1 -1
  6. package/dist/errors.js.map +1 -1
  7. package/dist/index.d.ts +2 -2
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +1 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/reasoning/mergeReasoningBody.d.ts +7 -0
  12. package/dist/reasoning/mergeReasoningBody.d.ts.map +1 -0
  13. package/dist/reasoning/mergeReasoningBody.js +50 -0
  14. package/dist/reasoning/mergeReasoningBody.js.map +1 -0
  15. package/dist/reasoning/resolveReasoningDocument.d.ts +4 -0
  16. package/dist/reasoning/resolveReasoningDocument.d.ts.map +1 -0
  17. package/dist/reasoning/resolveReasoningDocument.js +153 -0
  18. package/dist/reasoning/resolveReasoningDocument.js.map +1 -0
  19. package/dist/reasoning/types.d.ts +75 -22
  20. package/dist/reasoning/types.d.ts.map +1 -1
  21. package/dist/reasoning/types.js +19 -21
  22. package/dist/reasoning/types.js.map +1 -1
  23. package/dist/reasoning/validateReasoningDirectives.d.ts +9 -0
  24. package/dist/reasoning/validateReasoningDirectives.d.ts.map +1 -0
  25. package/dist/reasoning/validateReasoningDirectives.js +324 -0
  26. package/dist/reasoning/validateReasoningDirectives.js.map +1 -0
  27. package/dist/resolveReasoning.d.ts +5 -5
  28. package/dist/resolveReasoning.d.ts.map +1 -1
  29. package/dist/resolveReasoning.js +7 -75
  30. package/dist/resolveReasoning.js.map +1 -1
  31. package/package.json +2 -1
  32. package/dist/reasoning/bedrockDirective.d.ts +0 -18
  33. package/dist/reasoning/bedrockDirective.d.ts.map +0 -1
  34. package/dist/reasoning/bedrockDirective.js +0 -131
  35. package/dist/reasoning/bedrockDirective.js.map +0 -1
  36. package/dist/reasoning/openRouterDirective.d.ts +0 -18
  37. package/dist/reasoning/openRouterDirective.d.ts.map +0 -1
  38. package/dist/reasoning/openRouterDirective.js +0 -136
  39. package/dist/reasoning/openRouterDirective.js.map +0 -1
@@ -1,18 +0,0 @@
1
- import type { AbstractEffort, ReasoningDirective } from "./types.js";
2
- import type { CatalogOpenRouterReasoning, OpenRouterReasoningEffort } from "../types.js";
3
- export declare const OPENROUTER_REASONING_RESPONSE: ReasoningDirective["response"];
4
- export declare const OPENROUTER_REASONING_USAGE: NonNullable<ReasoningDirective["usage"]>;
5
- /**
6
- * Pick a gateway effort the model accepts.
7
- * Returns undefined when the request must not send an effort (`none` on a
8
- * mandatory model, or `none` when the allowlist rejects it).
9
- */
10
- export declare function pickOpenRouterEffort(effort: AbstractEffort, allowed: readonly OpenRouterReasoningEffort[] | null, mandatory: boolean): OpenRouterReasoningEffort | undefined;
11
- /** Token budget for models that accept `reasoning.max_tokens` and not effort. */
12
- export declare function openRouterReasoningMaxTokens(effort: Exclude<AbstractEffort, "none">, maxCompletionTokens?: number): number;
13
- export declare function buildOpenRouterReasoningDirective(input: {
14
- effort: AbstractEffort;
15
- reasoning: CatalogOpenRouterReasoning;
16
- maxCompletionTokens?: number;
17
- }): ReasoningDirective;
18
- //# sourceMappingURL=openRouterDirective.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openRouterDirective.d.ts","sourceRoot":"","sources":["../../src/reasoning/openRouterDirective.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AA8BzF,eAAO,MAAM,6BAA6B,EAAE,kBAAkB,CAAC,UAAU,CAQxE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAE/E,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,SAAS,yBAAyB,EAAE,GAAG,IAAI,EACpD,SAAS,EAAE,OAAO,GACjB,yBAAyB,GAAG,SAAS,CAoBvC;AA8BD,iFAAiF;AACjF,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,EACvC,mBAAmB,CAAC,EAAE,MAAM,GAC3B,MAAM,CAOR;AAaD,wBAAgB,iCAAiC,CAAC,KAAK,EAAE;IACvD,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,0BAA0B,CAAC;IACtC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,GAAG,kBAAkB,CAgCrB"}
@@ -1,136 +0,0 @@
1
- const EFFORT_RANK = {
2
- none: 0,
3
- minimal: 1,
4
- low: 2,
5
- medium: 3,
6
- high: 4,
7
- xhigh: 5,
8
- max: 6,
9
- };
10
- const ABSTRACT_RANK = {
11
- none: 0,
12
- low: 2,
13
- medium: 3,
14
- high: 4,
15
- max: 6,
16
- };
17
- /** OpenRouter published share of the completion cap for each abstract effort. */
18
- const MAX_TOKEN_RATIO = {
19
- low: 0.2,
20
- medium: 0.5,
21
- high: 0.8,
22
- max: 0.95,
23
- };
24
- const MAX_EFFORT_PREFERENCE = ["max", "xhigh", "high"];
25
- export const OPENROUTER_REASONING_RESPONSE = {
26
- reasoningTextPaths: [
27
- "choices[].message.reasoning",
28
- "choices[].message.reasoning_details",
29
- ],
30
- streamReasoningKeys: ["reasoning", "reasoning_details"],
31
- stripFromHistoryPaths: [],
32
- stripThinkTags: false,
33
- };
34
- export const OPENROUTER_REASONING_USAGE = {
35
- reasoningTokenPaths: ["usage.completion_tokens_details.reasoning_tokens"],
36
- };
37
- /**
38
- * Pick a gateway effort the model accepts.
39
- * Returns undefined when the request must not send an effort (`none` on a
40
- * mandatory model, or `none` when the allowlist rejects it).
41
- */
42
- export function pickOpenRouterEffort(effort, allowed, mandatory) {
43
- if (effort === "none") {
44
- if (mandatory)
45
- return undefined;
46
- if (allowed === null || allowed.includes("none"))
47
- return "none";
48
- return undefined;
49
- }
50
- if (allowed === null) {
51
- return effort;
52
- }
53
- if (effort === "max") {
54
- for (const candidate of MAX_EFFORT_PREFERENCE) {
55
- if (allowed.includes(candidate))
56
- return candidate;
57
- }
58
- }
59
- else if (allowed.includes(effort)) {
60
- return effort;
61
- }
62
- return closestAllowedEffort(effort, allowed);
63
- }
64
- function closestAllowedEffort(effort, allowed) {
65
- const target = ABSTRACT_RANK[effort];
66
- const preferLower = effort === "low";
67
- let best;
68
- let bestDistance = Infinity;
69
- for (const candidate of allowed) {
70
- if (candidate === "none")
71
- continue;
72
- const distance = Math.abs(EFFORT_RANK[candidate] - target);
73
- if (distance < bestDistance) {
74
- best = candidate;
75
- bestDistance = distance;
76
- continue;
77
- }
78
- if (distance === bestDistance && best) {
79
- const better = preferLower
80
- ? EFFORT_RANK[candidate] < EFFORT_RANK[best]
81
- : EFFORT_RANK[candidate] > EFFORT_RANK[best];
82
- if (better)
83
- best = candidate;
84
- }
85
- }
86
- return best;
87
- }
88
- /** Token budget for models that accept `reasoning.max_tokens` and not effort. */
89
- export function openRouterReasoningMaxTokens(effort, maxCompletionTokens) {
90
- const cap = typeof maxCompletionTokens === "number" && maxCompletionTokens > 1024
91
- ? maxCompletionTokens
92
- : 8192;
93
- const tokens = Math.floor(cap * MAX_TOKEN_RATIO[effort]);
94
- return Math.max(1024, tokens);
95
- }
96
- function hasEffortControl(reasoning) {
97
- if (reasoning.supportedEfforts === null)
98
- return true;
99
- return (Array.isArray(reasoning.supportedEfforts) && reasoning.supportedEfforts.length > 0);
100
- }
101
- export function buildOpenRouterReasoningDirective(input) {
102
- const { effort, reasoning, maxCompletionTokens } = input;
103
- const mandatory = reasoning.mandatory === true;
104
- let body = {};
105
- if (hasEffortControl(reasoning)) {
106
- const picked = pickOpenRouterEffort(effort, reasoning.supportedEfforts, mandatory);
107
- if (picked) {
108
- body = { reasoning: { effort: picked } };
109
- }
110
- }
111
- else if (reasoning.supportsMaxTokens) {
112
- if (effort === "none") {
113
- body = mandatory ? {} : { reasoning: { enabled: false } };
114
- }
115
- else {
116
- body = {
117
- reasoning: {
118
- max_tokens: openRouterReasoningMaxTokens(effort, maxCompletionTokens),
119
- },
120
- };
121
- }
122
- }
123
- else if (effort === "none") {
124
- body = mandatory ? {} : { reasoning: { enabled: false } };
125
- }
126
- else {
127
- body = { reasoning: { enabled: true } };
128
- }
129
- return {
130
- supported: true,
131
- body,
132
- response: OPENROUTER_REASONING_RESPONSE,
133
- usage: OPENROUTER_REASONING_USAGE,
134
- };
135
- }
136
- //# sourceMappingURL=openRouterDirective.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openRouterDirective.js","sourceRoot":"","sources":["../../src/reasoning/openRouterDirective.ts"],"names":[],"mappings":"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"}