create-ragen-app 0.8.0 → 0.9.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.
- package/dist/llm-provider.d.ts +11 -0
- package/dist/llm-provider.d.ts.map +1 -1
- package/dist/llm-provider.js +20 -5
- package/dist/llm-provider.js.map +1 -1
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +7 -0
- package/dist/manifest.js.map +1 -1
- package/package.json +1 -1
package/dist/llm-provider.d.ts
CHANGED
|
@@ -54,6 +54,17 @@ export interface LlmProviderConfig {
|
|
|
54
54
|
prompt: string;
|
|
55
55
|
};
|
|
56
56
|
upstreamModel: string;
|
|
57
|
+
/**
|
|
58
|
+
* A cheaper model for the work that runs on every question and every upload
|
|
59
|
+
* — rephrasing, document summaries, scoring. Undefined means the answer
|
|
60
|
+
* model does all of it, which is right where there is only one model worth
|
|
61
|
+
* naming and wrong where the answer model is the expensive tier: those three
|
|
62
|
+
* calls would be billed at its rate.
|
|
63
|
+
*/
|
|
64
|
+
lightModel?: {
|
|
65
|
+
modelName: string;
|
|
66
|
+
upstreamModel: string;
|
|
67
|
+
};
|
|
57
68
|
/**
|
|
58
69
|
* Undefined for a provider with no embeddings API of its own. Chat still
|
|
59
70
|
* works; the knowledge base does not, because retrieval has nothing to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-provider.d.ts","sourceRoot":"","sources":["../src/llm-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,iBAAiB,GAC3B,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,wFAAwF;IACxF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"llm-provider.d.ts","sourceRoot":"","sources":["../src/llm-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,iBAAiB,GAC3B,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,wFAAwF;IACxF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CA+EtE,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;;;OAGG;IACH,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,iFAAiF;IACjF,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,uBAAuB,CAoEzB"}
|
package/dist/llm-provider.js
CHANGED
|
@@ -9,9 +9,15 @@ exports.LLM_PROVIDERS = {
|
|
|
9
9
|
// Namespaced upstream, plain here: the model id is what the application
|
|
10
10
|
// and the catalogue use, and `model` is the upstream's own name. Keeping
|
|
11
11
|
// the slash out of the key also keeps it out of URLs and log lines.
|
|
12
|
-
modelName: 'claude-
|
|
12
|
+
modelName: 'claude-sonnet-5-5-openrouter',
|
|
13
13
|
gatewayProvider: 'openrouter',
|
|
14
|
-
upstreamModel: 'anthropic/claude-
|
|
14
|
+
upstreamModel: 'anthropic/claude-sonnet-5.5',
|
|
15
|
+
// The same pair the shipped route table carries for this provider, which
|
|
16
|
+
// is what the Railway template runs.
|
|
17
|
+
lightModel: {
|
|
18
|
+
modelName: 'claude-haiku-5-5-openrouter',
|
|
19
|
+
upstreamModel: 'anthropic/claude-haiku-5.5',
|
|
20
|
+
},
|
|
15
21
|
embeddings: {
|
|
16
22
|
modelName: 'text-embedding-3-small-openrouter',
|
|
17
23
|
upstreamModel: 'openai/text-embedding-3-small',
|
|
@@ -77,6 +83,7 @@ exports.LLM_PROVIDERS = {
|
|
|
77
83
|
};
|
|
78
84
|
function resolveLlmProviderChoice(choice, apiKey, baseUrl) {
|
|
79
85
|
const config = exports.LLM_PROVIDERS[choice];
|
|
86
|
+
const lightModelName = config.lightModel?.modelName ?? config.modelName;
|
|
80
87
|
const envUpdates = {
|
|
81
88
|
[config.apiKeyEnvVar]: apiKey,
|
|
82
89
|
...(config.baseUrl && baseUrl ? { [config.baseUrl.envVar]: baseUrl } : {}),
|
|
@@ -89,15 +96,15 @@ function resolveLlmProviderChoice(choice, apiKey, baseUrl) {
|
|
|
89
96
|
// credentials. Multi-query expansion is on by default (ADR-15), so
|
|
90
97
|
// leaving it would fail the RAG chain on its *first* step — before the
|
|
91
98
|
// model the user just configured is ever reached.
|
|
92
|
-
REPHRASE_MODEL:
|
|
99
|
+
REPHRASE_MODEL: lightModelName,
|
|
93
100
|
// Same reason, one step later. The worker falls back to gemini-2.5-flash
|
|
94
101
|
// for SUMMARY_MODEL, which runs on every ingest (ADR-16) and for the RAG
|
|
95
102
|
// readiness score, and leads scoring to the value .env.example ships. Left
|
|
96
103
|
// alone, the first upload logged "no route for model" and the document
|
|
97
104
|
// was indexed without its summary — quietly, because a failed summary is
|
|
98
105
|
// not a failed ingest.
|
|
99
|
-
SUMMARY_MODEL:
|
|
100
|
-
SCORING_MODEL:
|
|
106
|
+
SUMMARY_MODEL: lightModelName,
|
|
107
|
+
SCORING_MODEL: lightModelName,
|
|
101
108
|
};
|
|
102
109
|
// The route table is the whole configuration now. There is no second place
|
|
103
110
|
// to keep in step and no flag to roll back to — #1194 removed the proxy path
|
|
@@ -111,6 +118,14 @@ function resolveLlmProviderChoice(choice, apiKey, baseUrl) {
|
|
|
111
118
|
...(config.structuredOutputs ? { structuredOutputs: true } : {}),
|
|
112
119
|
},
|
|
113
120
|
];
|
|
121
|
+
if (config.lightModel) {
|
|
122
|
+
routes.push({
|
|
123
|
+
modelName: config.lightModel.modelName,
|
|
124
|
+
provider: config.gatewayProvider,
|
|
125
|
+
model: config.lightModel.upstreamModel,
|
|
126
|
+
...(config.connection ? { connection: config.connection } : {}),
|
|
127
|
+
});
|
|
128
|
+
}
|
|
114
129
|
if (config.embeddings) {
|
|
115
130
|
envUpdates.EMBEDDINGS_MODEL = config.embeddings.modelName;
|
|
116
131
|
// VECTOR_SIZE and EMBEDDINGS_MODEL have to agree or Qdrant rejects every
|
package/dist/llm-provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-provider.js","sourceRoot":"","sources":["../src/llm-provider.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"llm-provider.js","sourceRoot":"","sources":["../src/llm-provider.ts"],"names":[],"mappings":"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"}
|
package/dist/manifest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzC,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAEpE,eAAO,MAAM,QAAQ,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzC,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAEpE,eAAO,MAAM,QAAQ,EAAE,aAAa,EAuEnC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,aAAa,EAAE,CAEnE"}
|
package/dist/manifest.js
CHANGED
|
@@ -51,6 +51,13 @@ exports.MANIFEST = [
|
|
|
51
51
|
strategy: 'generate-secret',
|
|
52
52
|
targets: ['admin'],
|
|
53
53
|
},
|
|
54
|
+
{ key: 'MCP_SERVICE_SECRET', strategy: 'generate-secret', targets: ['root'] },
|
|
55
|
+
{
|
|
56
|
+
key: 'RAGEN_MCP_PUBLIC_URL',
|
|
57
|
+
strategy: 'local-default',
|
|
58
|
+
targets: ['root'],
|
|
59
|
+
value: 'http://localhost:3300/mcp',
|
|
60
|
+
},
|
|
54
61
|
// --- Generated secrets, shared value across targets ---
|
|
55
62
|
{
|
|
56
63
|
// Read by apps/web, apps/api and apps/admin (apps/api gap-fills from the
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;AA4FH,4CAEC;AA3EY,QAAA,QAAQ,GAAoB;IACvC,oDAAoD;IACpD,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE;IACrE,EAAE,GAAG,EAAE,oBAAoB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE;IAC7E;QACE,GAAG,EAAE,0BAA0B;QAC/B,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,CAAC,MAAM,CAAC;KAClB;IACD;QACE,GAAG,EAAE,qBAAqB;QAC1B,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,CAAC,MAAM,CAAC;KAClB;IACD;QACE,6DAA6D;QAC7D,sEAAsE;QACtE,0DAA0D;QAC1D,GAAG,EAAE,mBAAmB;QACxB,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,CAAC,MAAM,CAAC;KAClB;IACD;QACE,GAAG,EAAE,oBAAoB;QACzB,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,CAAC,OAAO,CAAC;KACnB;IAED,EAAE,GAAG,EAAE,oBAAoB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE;IAC7E;QACE,GAAG,EAAE,sBAAsB;QAC3B,QAAQ,EAAE,eAAe;QACzB,OAAO,EAAE,CAAC,MAAM,CAAC;QACjB,KAAK,EAAE,2BAA2B;KACnC;IAED,yDAAyD;IACzD;QACE,yEAAyE;QACzE,mDAAmD;QACnD,oEAAoE;QACpE,0EAA0E;QAC1E,0BAA0B;QAC1B,GAAG,EAAE,qBAAqB;QAC1B,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;KAC3B;IAED,gEAAgE;IAChE;QACE,yEAAyE;QACzE,kEAAkE;QAClE,gEAAgE;QAChE,wEAAwE;QACxE,6EAA6E;QAC7E,0CAA0C;QAC1C,GAAG,EAAE,cAAc;QACnB,QAAQ,EAAE,eAAe;QACzB,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;QAC1B,KAAK,EAAE,qDAAqD;KAC7D;IACD;QACE,uEAAuE;QACvE,wEAAwE;QACxE,uEAAuE;QACvE,uDAAuD;QACvD,GAAG,EAAE,eAAe;QACpB,QAAQ,EAAE,eAAe;QACzB,OAAO,EAAE,CAAC,MAAM,CAAC;QACjB,KAAK,EAAE,uBAAuB;KAC/B;CACF,CAAC;AAEF,SAAgB,gBAAgB,CAAC,MAAiB;IAChD,OAAO,gBAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACpE,CAAC"}
|