@percepta/create 3.4.2 → 3.5.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/README.md +13 -0
- package/dist/index.js +135 -106
- package/dist/index.js.map +1 -1
- package/dist/{init-CtCp7Tv2.js → init-sI9aIrkU.js} +2 -2
- package/dist/init-sI9aIrkU.js.map +1 -0
- package/dist/{upstream-D-LH_1z4.js → upstream-gUHLWSR1.js} +2 -2
- package/dist/upstream-gUHLWSR1.js.map +1 -0
- package/package.json +1 -1
- package/template-versions.json +1 -0
- package/templates/monorepo/README.md +8 -5
- package/templates/monorepo/package.json.template +1 -0
- package/templates/webapp/.claude/commands/upstream.md +1 -1
- package/templates/webapp/AGENTS.md +1 -1
- package/templates/webapp/agent-skills/access-control.md +24 -1
- package/templates/webapp/agent-skills/inngest.md +5 -5
- package/templates/webapp/agent-skills/langfuse.md +4 -4
- package/templates/webapp/agent-skills/llm.md +1 -1
- package/templates/webapp/drizzle.config.ts +1 -1
- package/templates/webapp/package.json.template +10 -17
- package/templates/webapp/src/app/api/inngest/route.ts +12 -22
- package/templates/webapp/src/drizzle/db.ts +1 -2
- package/templates/webapp/src/instrumentation.ts +2 -63
- package/templates/webapp/src/server/trpc.ts +6 -18
- package/templates/webapp/src/services/AuthContextService.ts +7 -59
- package/templates/webapp/src/services/inngest/InngestService.ts +14 -62
- package/templates/webapp/src/services/langfuse/LangfuseService.ts +9 -77
- package/templates/webapp/src/services/llm/LLMService.ts +10 -88
- package/templates/webapp/src/services/logger/AppLogger.ts +3 -48
- package/templates/webapp/src/utils/syncInngestApp.ts +4 -56
- package/dist/init-CtCp7Tv2.js.map +0 -1
- package/dist/upstream-D-LH_1z4.js.map +0 -1
- package/templates/webapp/scripts/generate-migrations.ts +0 -28
- package/templates/webapp/scripts/migrate.ts +0 -21
- package/templates/webapp/scripts/setup-database.ts +0 -78
- package/templates/webapp/scripts/setup-readonly-user.ts +0 -193
- package/templates/webapp/src/drizzle/__tests__/migrationSql.test.ts +0 -24
- package/templates/webapp/src/drizzle/migrationSql.ts +0 -8
- package/templates/webapp/src/drizzle/searchPath.test.ts +0 -21
- package/templates/webapp/src/drizzle/searchPath.ts +0 -16
- package/templates/webapp/src/drizzle/ssl.ts +0 -5
- package/templates/webapp/src/services/inngest/InngestFunctionCollection.ts +0 -5
- package/templates/webapp/src/services/llm/LlmProviderService.ts +0 -85
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { createAnthropic } from "@ai-sdk/anthropic";
|
|
2
|
-
import { createOpenAI } from "@ai-sdk/openai";
|
|
3
|
-
import { type LanguageModel } from "ai";
|
|
4
|
-
import { getEnvConfig } from "../../config/getEnvConfig";
|
|
5
|
-
|
|
6
|
-
export type LlmProviderName = "anthropic" | "openai";
|
|
7
|
-
|
|
8
|
-
export interface LanguageModelSelection {
|
|
9
|
-
model: LanguageModel;
|
|
10
|
-
modelId: string;
|
|
11
|
-
provider: LlmProviderName;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
interface GetLanguageModelOptions {
|
|
15
|
-
modelId?: string;
|
|
16
|
-
provider?: LlmProviderName;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
const DEFAULT_ANTHROPIC_MODEL = "claude-sonnet-4-5-20250929";
|
|
20
|
-
const DEFAULT_OPENAI_MODEL = "gpt-4.1";
|
|
21
|
-
|
|
22
|
-
export class LlmProviderService {
|
|
23
|
-
private static SINGLETON: LlmProviderService | undefined;
|
|
24
|
-
|
|
25
|
-
public static create(): LlmProviderService {
|
|
26
|
-
if (LlmProviderService.SINGLETON == null) {
|
|
27
|
-
LlmProviderService.SINGLETON = new LlmProviderService();
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return LlmProviderService.SINGLETON;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
private constructor() {}
|
|
34
|
-
|
|
35
|
-
public getLanguageModel(
|
|
36
|
-
options: GetLanguageModelOptions = {},
|
|
37
|
-
): LanguageModelSelection {
|
|
38
|
-
const config = getEnvConfig();
|
|
39
|
-
const provider =
|
|
40
|
-
options.provider ??
|
|
41
|
-
config.LLM_PROVIDER ??
|
|
42
|
-
(config.ANTHROPIC_API_KEY ? "anthropic" : undefined) ??
|
|
43
|
-
(config.OPENAI_API_KEY ? "openai" : undefined);
|
|
44
|
-
|
|
45
|
-
if (provider === "anthropic") {
|
|
46
|
-
if (!config.ANTHROPIC_API_KEY) {
|
|
47
|
-
throw new Error(
|
|
48
|
-
"LLM_PROVIDER=anthropic but ANTHROPIC_API_KEY is not configured.",
|
|
49
|
-
);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const modelId =
|
|
53
|
-
options.modelId ?? config.LLM_MODEL ?? DEFAULT_ANTHROPIC_MODEL;
|
|
54
|
-
return {
|
|
55
|
-
provider,
|
|
56
|
-
modelId,
|
|
57
|
-
model: createAnthropic({
|
|
58
|
-
apiKey: config.ANTHROPIC_API_KEY,
|
|
59
|
-
}).languageModel(modelId),
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
if (provider === "openai") {
|
|
64
|
-
if (!config.OPENAI_API_KEY) {
|
|
65
|
-
throw new Error(
|
|
66
|
-
"LLM_PROVIDER=openai but OPENAI_API_KEY is not configured.",
|
|
67
|
-
);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
const modelId =
|
|
71
|
-
options.modelId ?? config.LLM_MODEL ?? DEFAULT_OPENAI_MODEL;
|
|
72
|
-
return {
|
|
73
|
-
provider,
|
|
74
|
-
modelId,
|
|
75
|
-
model: createOpenAI({
|
|
76
|
-
apiKey: config.OPENAI_API_KEY,
|
|
77
|
-
}).languageModel(modelId),
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
throw new Error(
|
|
82
|
-
"No LLM provider is configured. Set ANTHROPIC_API_KEY or OPENAI_API_KEY locally, or deploy to an environment with a shared LLM variable group.",
|
|
83
|
-
);
|
|
84
|
-
}
|
|
85
|
-
}
|