@imricci/zaker 0.1.2 → 0.1.3
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/commands/app-server.d.ts +67 -0
- package/dist/commands/app-server.js +601 -0
- package/dist/commands/app-server.js.map +1 -0
- package/dist/commands/audit.js +2 -1
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/build.d.ts +3 -0
- package/dist/commands/build.js +22 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/confirm.d.ts +0 -2
- package/dist/commands/confirm.js +2 -16
- package/dist/commands/confirm.js.map +1 -1
- package/dist/commands/dialog-handlers/auth.d.ts +3 -0
- package/dist/commands/dialog-handlers/auth.js +174 -0
- package/dist/commands/dialog-handlers/auth.js.map +1 -0
- package/dist/commands/dialog-handlers/basic.d.ts +2 -2
- package/dist/commands/dialog-handlers/basic.js +8 -9
- package/dist/commands/dialog-handlers/basic.js.map +1 -1
- package/dist/commands/dialog-handlers/bootstrap.js +2 -2
- package/dist/commands/dialog-handlers/bootstrap.js.map +1 -1
- package/dist/commands/dialog-handlers/index.d.ts +1 -1
- package/dist/commands/dialog-handlers/message.js +94 -3
- package/dist/commands/dialog-handlers/message.js.map +1 -1
- package/dist/commands/dialog-handlers/model.d.ts +2 -0
- package/dist/commands/dialog-handlers/model.js +168 -0
- package/dist/commands/dialog-handlers/model.js.map +1 -0
- package/dist/commands/dialog-handlers/new.d.ts +2 -0
- package/dist/commands/dialog-handlers/new.js +53 -0
- package/dist/commands/dialog-handlers/new.js.map +1 -0
- package/dist/commands/dialog-handlers/router.js +39 -3
- package/dist/commands/dialog-handlers/router.js.map +1 -1
- package/dist/commands/dialog-handlers/run.js +44 -8
- package/dist/commands/dialog-handlers/run.js.map +1 -1
- package/dist/commands/dialog-handlers/types.d.ts +16 -17
- package/dist/commands/dialog.d.ts +92 -0
- package/dist/commands/dialog.js +1542 -422
- package/dist/commands/dialog.js.map +1 -1
- package/dist/commands/init.d.ts +3 -1
- package/dist/commands/init.js +6 -4
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/plan.js +10 -6
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/run.js +8 -10
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/status.js +6 -12
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/tui-launcher.d.ts +1 -0
- package/dist/commands/tui-launcher.js +8 -0
- package/dist/commands/tui-launcher.js.map +1 -0
- package/dist/core/alignment-reply.d.ts +1 -0
- package/dist/core/alignment-reply.js +44 -0
- package/dist/core/alignment-reply.js.map +1 -0
- package/dist/core/checkpoint.js +3 -1
- package/dist/core/checkpoint.js.map +1 -1
- package/dist/core/planner.d.ts +16 -16
- package/dist/core/planner.js +3 -1
- package/dist/core/planner.js.map +1 -1
- package/dist/core/planning-prep.d.ts +12 -0
- package/dist/core/planning-prep.js +26 -0
- package/dist/core/planning-prep.js.map +1 -0
- package/dist/core/preflight.js +1 -2
- package/dist/core/preflight.js.map +1 -1
- package/dist/core/provider-onboarding.js +6 -11
- package/dist/core/provider-onboarding.js.map +1 -1
- package/dist/core/readonly-checkpoint.d.ts +2 -0
- package/dist/core/readonly-checkpoint.js +35 -0
- package/dist/core/readonly-checkpoint.js.map +1 -0
- package/dist/core/run-loop.js +3 -1
- package/dist/core/run-loop.js.map +1 -1
- package/dist/core/types.d.ts +20 -1
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/infra/artifact-schema.d.ts +25 -0
- package/dist/infra/artifact-schema.js +353 -0
- package/dist/infra/artifact-schema.js.map +1 -0
- package/dist/infra/config.d.ts +14 -1
- package/dist/infra/config.js +542 -22
- package/dist/infra/config.js.map +1 -1
- package/dist/infra/dependency-report.d.ts +5 -0
- package/dist/infra/dependency-report.js +22 -0
- package/dist/infra/dependency-report.js.map +1 -0
- package/dist/infra/dialog-session.d.ts +29 -0
- package/dist/infra/dialog-session.js +244 -0
- package/dist/infra/dialog-session.js.map +1 -0
- package/dist/infra/intent.d.ts +0 -1
- package/dist/infra/intent.js +62 -25
- package/dist/infra/intent.js.map +1 -1
- package/dist/infra/model-accounts.d.ts +22 -0
- package/dist/infra/model-accounts.js +172 -0
- package/dist/infra/model-accounts.js.map +1 -0
- package/dist/infra/model-catalog.d.ts +4 -1
- package/dist/infra/model-catalog.js +102 -27
- package/dist/infra/model-catalog.js.map +1 -1
- package/dist/infra/openai-codex-oauth.d.ts +18 -0
- package/dist/infra/openai-codex-oauth.js +267 -0
- package/dist/infra/openai-codex-oauth.js.map +1 -0
- package/dist/infra/provider-registry.d.ts +36 -0
- package/dist/infra/provider-registry.js +403 -0
- package/dist/infra/provider-registry.js.map +1 -0
- package/dist/infra/session-status.d.ts +6 -0
- package/dist/infra/session-status.js +34 -0
- package/dist/infra/session-status.js.map +1 -0
- package/dist/infra/tui-utils.d.ts +6 -0
- package/dist/infra/tui-utils.js +163 -0
- package/dist/infra/tui-utils.js.map +1 -0
- package/dist/infra/tui-view.d.ts +44 -0
- package/dist/infra/tui-view.js +314 -0
- package/dist/infra/tui-view.js.map +1 -0
- package/package.json +4 -1
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MODEL_PROVIDER_IDS = exports.PI_PROVIDER_IDS = exports.BUILTIN_PROVIDER_IDS = void 0;
|
|
4
|
+
exports.getModelProviderIds = getModelProviderIds;
|
|
5
|
+
exports.getPiProviderIds = getPiProviderIds;
|
|
6
|
+
exports.isPiProviderId = isPiProviderId;
|
|
7
|
+
exports.isBuiltinProviderId = isBuiltinProviderId;
|
|
8
|
+
exports.isModelProviderId = isModelProviderId;
|
|
9
|
+
exports.toCanonicalModelProviderId = toCanonicalModelProviderId;
|
|
10
|
+
exports.toLoginProviderId = toLoginProviderId;
|
|
11
|
+
exports.getProviderDefinition = getProviderDefinition;
|
|
12
|
+
exports.resolveProviderDefaultModel = resolveProviderDefaultModel;
|
|
13
|
+
exports.resolveProviderStaticCatalog = resolveProviderStaticCatalog;
|
|
14
|
+
exports.providerSupportsOAuth = providerSupportsOAuth;
|
|
15
|
+
exports.resolveProviderApiKeyEnv = resolveProviderApiKeyEnv;
|
|
16
|
+
exports.resolveProviderEndpoint = resolveProviderEndpoint;
|
|
17
|
+
exports.resolveProviderCatalogStrategy = resolveProviderCatalogStrategy;
|
|
18
|
+
exports.buildLoginCommandTemplates = buildLoginCommandTemplates;
|
|
19
|
+
exports.isLoginProviderToken = isLoginProviderToken;
|
|
20
|
+
exports.buildLoginProviderCommandTemplates = buildLoginProviderCommandTemplates;
|
|
21
|
+
exports.buildLoginModeCommandTemplates = buildLoginModeCommandTemplates;
|
|
22
|
+
exports.buildLogoutCommandTemplates = buildLogoutCommandTemplates;
|
|
23
|
+
exports.BUILTIN_PROVIDER_IDS = [
|
|
24
|
+
"amazon-bedrock",
|
|
25
|
+
"anthropic",
|
|
26
|
+
"azure-openai-responses",
|
|
27
|
+
"cerebras",
|
|
28
|
+
"github-copilot",
|
|
29
|
+
"google",
|
|
30
|
+
"google-antigravity",
|
|
31
|
+
"google-gemini-cli",
|
|
32
|
+
"google-vertex",
|
|
33
|
+
"groq",
|
|
34
|
+
"huggingface",
|
|
35
|
+
"kimi-coding",
|
|
36
|
+
"minimax",
|
|
37
|
+
"minimax-cn",
|
|
38
|
+
"mistral",
|
|
39
|
+
"openai",
|
|
40
|
+
"openai-codex",
|
|
41
|
+
"opencode",
|
|
42
|
+
"openrouter",
|
|
43
|
+
"vercel-ai-gateway",
|
|
44
|
+
"xai",
|
|
45
|
+
"zai"
|
|
46
|
+
];
|
|
47
|
+
exports.PI_PROVIDER_IDS = exports.BUILTIN_PROVIDER_IDS;
|
|
48
|
+
exports.MODEL_PROVIDER_IDS = ["mock", "http", ...exports.BUILTIN_PROVIDER_IDS];
|
|
49
|
+
const PROVIDER_DEFINITIONS = {
|
|
50
|
+
"amazon-bedrock": {
|
|
51
|
+
id: "amazon-bedrock",
|
|
52
|
+
default_model: "us.anthropic.claude-opus-4-6-v1",
|
|
53
|
+
static_models: ["us.anthropic.claude-opus-4-6-v1", "anthropic.claude-sonnet-4-20250514-v1:0"],
|
|
54
|
+
auth_modes: ["api_key"],
|
|
55
|
+
api_key_env: "AWS_ACCESS_KEY_ID",
|
|
56
|
+
catalog_strategy: "static"
|
|
57
|
+
},
|
|
58
|
+
anthropic: {
|
|
59
|
+
id: "anthropic",
|
|
60
|
+
default_model: "claude-opus-4-6",
|
|
61
|
+
static_models: ["claude-opus-4-6", "claude-sonnet-4-5"],
|
|
62
|
+
auth_modes: ["api_key", "oauth"],
|
|
63
|
+
api_key_env: "ANTHROPIC_API_KEY",
|
|
64
|
+
oauth_token_env: "ANTHROPIC_ACCESS_TOKEN",
|
|
65
|
+
default_endpoint: "https://api.anthropic.com",
|
|
66
|
+
catalog_strategy: "static"
|
|
67
|
+
},
|
|
68
|
+
"azure-openai-responses": {
|
|
69
|
+
id: "azure-openai-responses",
|
|
70
|
+
default_model: "gpt-5.2",
|
|
71
|
+
static_models: ["gpt-5.2", "gpt-5.1", "gpt-4.1"],
|
|
72
|
+
auth_modes: ["api_key"],
|
|
73
|
+
api_key_env: "AZURE_OPENAI_API_KEY",
|
|
74
|
+
default_endpoint: "https://{resource}.openai.azure.com/openai/v1",
|
|
75
|
+
catalog_strategy: "static"
|
|
76
|
+
},
|
|
77
|
+
cerebras: {
|
|
78
|
+
id: "cerebras",
|
|
79
|
+
default_model: "zai-glm-4.7",
|
|
80
|
+
static_models: ["zai-glm-4.7", "gpt-oss-120b"],
|
|
81
|
+
auth_modes: ["api_key"],
|
|
82
|
+
api_key_env: "CEREBRAS_API_KEY",
|
|
83
|
+
default_endpoint: "https://api.cerebras.ai/v1",
|
|
84
|
+
catalog_strategy: "openai_models"
|
|
85
|
+
},
|
|
86
|
+
"github-copilot": {
|
|
87
|
+
id: "github-copilot",
|
|
88
|
+
default_model: "gpt-4o",
|
|
89
|
+
static_models: ["gpt-4o", "claude-sonnet-4.5"],
|
|
90
|
+
auth_modes: ["api_key", "oauth"],
|
|
91
|
+
api_key_env: "GITHUB_COPILOT_TOKEN",
|
|
92
|
+
oauth_token_env: "GITHUB_COPILOT_ACCESS_TOKEN",
|
|
93
|
+
catalog_strategy: "static"
|
|
94
|
+
},
|
|
95
|
+
google: {
|
|
96
|
+
id: "google",
|
|
97
|
+
default_model: "gemini-2.5-pro",
|
|
98
|
+
static_models: ["gemini-2.5-pro", "gemini-2.5-flash"],
|
|
99
|
+
auth_modes: ["api_key"],
|
|
100
|
+
api_key_env: "GOOGLE_API_KEY",
|
|
101
|
+
default_endpoint: "https://generativelanguage.googleapis.com/v1beta",
|
|
102
|
+
catalog_strategy: "static"
|
|
103
|
+
},
|
|
104
|
+
"google-antigravity": {
|
|
105
|
+
id: "google-antigravity",
|
|
106
|
+
default_model: "gemini-3-pro-high",
|
|
107
|
+
static_models: ["gemini-3-pro-high", "claude-opus-4-6-thinking"],
|
|
108
|
+
auth_modes: ["api_key", "oauth"],
|
|
109
|
+
api_key_env: "GOOGLE_ANTIGRAVITY_API_KEY",
|
|
110
|
+
oauth_token_env: "GOOGLE_ANTIGRAVITY_ACCESS_TOKEN",
|
|
111
|
+
catalog_strategy: "static"
|
|
112
|
+
},
|
|
113
|
+
"google-gemini-cli": {
|
|
114
|
+
id: "google-gemini-cli",
|
|
115
|
+
default_model: "gemini-2.5-pro",
|
|
116
|
+
static_models: ["gemini-2.5-pro", "gemini-2.5-flash"],
|
|
117
|
+
auth_modes: ["api_key", "oauth"],
|
|
118
|
+
api_key_env: "GOOGLE_API_KEY",
|
|
119
|
+
oauth_token_env: "GOOGLE_ACCESS_TOKEN",
|
|
120
|
+
catalog_strategy: "static"
|
|
121
|
+
},
|
|
122
|
+
"google-vertex": {
|
|
123
|
+
id: "google-vertex",
|
|
124
|
+
default_model: "gemini-3-pro-preview",
|
|
125
|
+
static_models: ["gemini-3-pro-preview", "gemini-2.5-pro"],
|
|
126
|
+
auth_modes: ["api_key"],
|
|
127
|
+
api_key_env: "GOOGLE_VERTEX_API_KEY",
|
|
128
|
+
catalog_strategy: "static"
|
|
129
|
+
},
|
|
130
|
+
groq: {
|
|
131
|
+
id: "groq",
|
|
132
|
+
default_model: "openai/gpt-oss-120b",
|
|
133
|
+
static_models: ["openai/gpt-oss-120b", "llama-3.3-70b-versatile"],
|
|
134
|
+
auth_modes: ["api_key"],
|
|
135
|
+
api_key_env: "GROQ_API_KEY",
|
|
136
|
+
default_endpoint: "https://api.groq.com/openai/v1",
|
|
137
|
+
catalog_strategy: "openai_models"
|
|
138
|
+
},
|
|
139
|
+
huggingface: {
|
|
140
|
+
id: "huggingface",
|
|
141
|
+
default_model: "moonshotai/Kimi-K2.5",
|
|
142
|
+
static_models: ["moonshotai/Kimi-K2.5", "Qwen/Qwen3-Coder-480B-A35B-Instruct"],
|
|
143
|
+
auth_modes: ["api_key"],
|
|
144
|
+
api_key_env: "HUGGINGFACE_API_KEY",
|
|
145
|
+
default_endpoint: "https://router.huggingface.co/v1",
|
|
146
|
+
catalog_strategy: "openai_models"
|
|
147
|
+
},
|
|
148
|
+
"kimi-coding": {
|
|
149
|
+
id: "kimi-coding",
|
|
150
|
+
default_model: "k2p5",
|
|
151
|
+
static_models: ["k2p5", "kimi-k2-thinking"],
|
|
152
|
+
auth_modes: ["api_key"],
|
|
153
|
+
api_key_env: "MOONSHOT_API_KEY",
|
|
154
|
+
default_endpoint: "https://api.kimi.com/coding",
|
|
155
|
+
catalog_strategy: "static"
|
|
156
|
+
},
|
|
157
|
+
minimax: {
|
|
158
|
+
id: "minimax",
|
|
159
|
+
default_model: "MiniMax-M2.1",
|
|
160
|
+
static_models: ["MiniMax-M2.1", "MiniMax-M2.5"],
|
|
161
|
+
auth_modes: ["api_key"],
|
|
162
|
+
api_key_env: "MINIMAX_API_KEY",
|
|
163
|
+
default_endpoint: "https://api.minimax.io/anthropic",
|
|
164
|
+
catalog_strategy: "static"
|
|
165
|
+
},
|
|
166
|
+
"minimax-cn": {
|
|
167
|
+
id: "minimax-cn",
|
|
168
|
+
default_model: "MiniMax-M2.1",
|
|
169
|
+
static_models: ["MiniMax-M2.1", "MiniMax-M2.5"],
|
|
170
|
+
auth_modes: ["api_key"],
|
|
171
|
+
api_key_env: "MINIMAX_CN_API_KEY",
|
|
172
|
+
catalog_strategy: "static"
|
|
173
|
+
},
|
|
174
|
+
mistral: {
|
|
175
|
+
id: "mistral",
|
|
176
|
+
default_model: "devstral-medium-latest",
|
|
177
|
+
static_models: ["devstral-medium-latest", "mistral-large-latest"],
|
|
178
|
+
auth_modes: ["api_key"],
|
|
179
|
+
api_key_env: "MISTRAL_API_KEY",
|
|
180
|
+
default_endpoint: "https://api.mistral.ai/v1",
|
|
181
|
+
catalog_strategy: "openai_models"
|
|
182
|
+
},
|
|
183
|
+
openai: {
|
|
184
|
+
id: "openai",
|
|
185
|
+
default_model: "gpt-5.1-codex",
|
|
186
|
+
static_models: ["gpt-5.1-codex", "gpt-5", "gpt-4.1"],
|
|
187
|
+
auth_modes: ["api_key"],
|
|
188
|
+
api_key_env: "OPENAI_API_KEY",
|
|
189
|
+
default_endpoint: "https://api.openai.com/v1",
|
|
190
|
+
catalog_strategy: "openai_models"
|
|
191
|
+
},
|
|
192
|
+
"openai-codex": {
|
|
193
|
+
id: "openai-codex",
|
|
194
|
+
default_model: "gpt-5.3-codex",
|
|
195
|
+
static_models: ["gpt-5.3-codex", "gpt-5.2-codex", "gpt-5.1-codex-max"],
|
|
196
|
+
auth_modes: ["api_key", "oauth"],
|
|
197
|
+
api_key_env: "OPENAI_API_KEY",
|
|
198
|
+
oauth_token_env: "OPENAI_ACCESS_TOKEN",
|
|
199
|
+
default_endpoint: "https://api.openai.com/v1",
|
|
200
|
+
catalog_strategy: "openai_models"
|
|
201
|
+
},
|
|
202
|
+
opencode: {
|
|
203
|
+
id: "opencode",
|
|
204
|
+
default_model: "claude-opus-4-6",
|
|
205
|
+
static_models: ["claude-opus-4-6", "gpt-5.1-codex"],
|
|
206
|
+
auth_modes: ["api_key"],
|
|
207
|
+
api_key_env: "OPENCODE_API_KEY",
|
|
208
|
+
catalog_strategy: "static"
|
|
209
|
+
},
|
|
210
|
+
openrouter: {
|
|
211
|
+
id: "openrouter",
|
|
212
|
+
default_model: "openai/gpt-5.1-codex",
|
|
213
|
+
static_models: ["openai/gpt-5.1-codex", "anthropic/claude-opus-4.6"],
|
|
214
|
+
auth_modes: ["api_key"],
|
|
215
|
+
api_key_env: "OPENROUTER_API_KEY",
|
|
216
|
+
default_endpoint: "https://openrouter.ai/api/v1",
|
|
217
|
+
catalog_strategy: "openai_models"
|
|
218
|
+
},
|
|
219
|
+
"vercel-ai-gateway": {
|
|
220
|
+
id: "vercel-ai-gateway",
|
|
221
|
+
default_model: "anthropic/claude-opus-4.6",
|
|
222
|
+
static_models: ["anthropic/claude-opus-4.6", "openai/gpt-5.1-codex"],
|
|
223
|
+
auth_modes: ["api_key"],
|
|
224
|
+
api_key_env: "AI_GATEWAY_API_KEY",
|
|
225
|
+
default_endpoint: "https://ai-gateway.vercel.sh",
|
|
226
|
+
catalog_strategy: "static"
|
|
227
|
+
},
|
|
228
|
+
xai: {
|
|
229
|
+
id: "xai",
|
|
230
|
+
default_model: "grok-4-fast-non-reasoning",
|
|
231
|
+
static_models: ["grok-4-fast-non-reasoning", "grok-3-mini"],
|
|
232
|
+
auth_modes: ["api_key"],
|
|
233
|
+
api_key_env: "XAI_API_KEY",
|
|
234
|
+
default_endpoint: "https://api.x.ai/v1",
|
|
235
|
+
catalog_strategy: "openai_models"
|
|
236
|
+
},
|
|
237
|
+
zai: {
|
|
238
|
+
id: "zai",
|
|
239
|
+
default_model: "glm-4.6",
|
|
240
|
+
static_models: ["glm-4.6", "glm-4.5"],
|
|
241
|
+
auth_modes: ["api_key"],
|
|
242
|
+
api_key_env: "ZAI_API_KEY",
|
|
243
|
+
catalog_strategy: "static"
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
const PROVIDER_ALIASES = {
|
|
247
|
+
openai_codex_team: "openai-codex",
|
|
248
|
+
"openai-codex-team": "openai-codex",
|
|
249
|
+
openai_codex: "openai-codex"
|
|
250
|
+
};
|
|
251
|
+
const LOCAL_PROVIDER_DEFAULT_MODELS = {
|
|
252
|
+
mock: "mock-default-v1"
|
|
253
|
+
};
|
|
254
|
+
const LOCAL_PROVIDER_STATIC_CATALOG = {
|
|
255
|
+
mock: ["mock-default-v1", "mock-safe-v1"],
|
|
256
|
+
http: []
|
|
257
|
+
};
|
|
258
|
+
const LOGIN_ALIAS_PROVIDER_MAP = {
|
|
259
|
+
openai: "openai",
|
|
260
|
+
"openai-codex": "openai-codex",
|
|
261
|
+
openai_codex_team: "openai-codex"
|
|
262
|
+
};
|
|
263
|
+
function normalizeText(value) {
|
|
264
|
+
return value.trim().toLowerCase();
|
|
265
|
+
}
|
|
266
|
+
function getModelProviderIds() {
|
|
267
|
+
return [...exports.MODEL_PROVIDER_IDS];
|
|
268
|
+
}
|
|
269
|
+
function getPiProviderIds() {
|
|
270
|
+
return [...exports.BUILTIN_PROVIDER_IDS];
|
|
271
|
+
}
|
|
272
|
+
function isPiProviderId(value) {
|
|
273
|
+
return exports.BUILTIN_PROVIDER_IDS.includes(value);
|
|
274
|
+
}
|
|
275
|
+
function isBuiltinProviderId(value) {
|
|
276
|
+
return isPiProviderId(value);
|
|
277
|
+
}
|
|
278
|
+
function isModelProviderId(value) {
|
|
279
|
+
return exports.MODEL_PROVIDER_IDS.includes(value);
|
|
280
|
+
}
|
|
281
|
+
function toCanonicalModelProviderId(value) {
|
|
282
|
+
const normalized = normalizeText(value);
|
|
283
|
+
const mapped = PROVIDER_ALIASES[normalized];
|
|
284
|
+
if (mapped) {
|
|
285
|
+
return mapped;
|
|
286
|
+
}
|
|
287
|
+
if (isModelProviderId(normalized)) {
|
|
288
|
+
return normalized;
|
|
289
|
+
}
|
|
290
|
+
throw new Error(`Unknown provider "${value}". Run /model provider <id> with one of: ${exports.MODEL_PROVIDER_IDS.join(", ")}.`);
|
|
291
|
+
}
|
|
292
|
+
function toLoginProviderId(value) {
|
|
293
|
+
const normalized = normalizeText(value);
|
|
294
|
+
const mapped = LOGIN_ALIAS_PROVIDER_MAP[normalized];
|
|
295
|
+
if (mapped) {
|
|
296
|
+
return mapped;
|
|
297
|
+
}
|
|
298
|
+
return toCanonicalModelProviderId(normalized);
|
|
299
|
+
}
|
|
300
|
+
function getProviderDefinition(provider) {
|
|
301
|
+
if (!isPiProviderId(provider)) {
|
|
302
|
+
return null;
|
|
303
|
+
}
|
|
304
|
+
return PROVIDER_DEFINITIONS[provider];
|
|
305
|
+
}
|
|
306
|
+
function resolveProviderDefaultModel(provider) {
|
|
307
|
+
if (!isPiProviderId(provider)) {
|
|
308
|
+
return LOCAL_PROVIDER_DEFAULT_MODELS[provider] || "";
|
|
309
|
+
}
|
|
310
|
+
return PROVIDER_DEFINITIONS[provider].default_model;
|
|
311
|
+
}
|
|
312
|
+
function resolveProviderStaticCatalog(provider) {
|
|
313
|
+
if (!isPiProviderId(provider)) {
|
|
314
|
+
return [...LOCAL_PROVIDER_STATIC_CATALOG[provider]];
|
|
315
|
+
}
|
|
316
|
+
return [...PROVIDER_DEFINITIONS[provider].static_models];
|
|
317
|
+
}
|
|
318
|
+
function providerSupportsOAuth(provider) {
|
|
319
|
+
if (!isPiProviderId(provider)) {
|
|
320
|
+
return false;
|
|
321
|
+
}
|
|
322
|
+
return PROVIDER_DEFINITIONS[provider].auth_modes.includes("oauth");
|
|
323
|
+
}
|
|
324
|
+
function resolveProviderApiKeyEnv(provider, authMode = "api_key") {
|
|
325
|
+
if (!isPiProviderId(provider)) {
|
|
326
|
+
return provider === "http" ? "ZAKER_API_KEY" : "OPENAI_API_KEY";
|
|
327
|
+
}
|
|
328
|
+
const def = PROVIDER_DEFINITIONS[provider];
|
|
329
|
+
if (authMode === "oauth" && def.oauth_token_env) {
|
|
330
|
+
return def.oauth_token_env;
|
|
331
|
+
}
|
|
332
|
+
return def.api_key_env;
|
|
333
|
+
}
|
|
334
|
+
function resolveProviderEndpoint(provider, explicitEndpoint) {
|
|
335
|
+
const trimmed = explicitEndpoint?.trim();
|
|
336
|
+
if (trimmed) {
|
|
337
|
+
return trimmed;
|
|
338
|
+
}
|
|
339
|
+
if (!isPiProviderId(provider)) {
|
|
340
|
+
return undefined;
|
|
341
|
+
}
|
|
342
|
+
return PROVIDER_DEFINITIONS[provider].default_endpoint;
|
|
343
|
+
}
|
|
344
|
+
function resolveProviderCatalogStrategy(provider) {
|
|
345
|
+
if (!isPiProviderId(provider)) {
|
|
346
|
+
return "openai_models";
|
|
347
|
+
}
|
|
348
|
+
return PROVIDER_DEFINITIONS[provider].catalog_strategy;
|
|
349
|
+
}
|
|
350
|
+
function buildLoginCommandTemplates() {
|
|
351
|
+
const templates = [];
|
|
352
|
+
for (const provider of exports.BUILTIN_PROVIDER_IDS) {
|
|
353
|
+
templates.push(`/login ${provider} `);
|
|
354
|
+
if (providerSupportsOAuth(provider)) {
|
|
355
|
+
templates.push(`/login ${provider} oauth `);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
// Compatibility aliases.
|
|
359
|
+
templates.push("/login openai ");
|
|
360
|
+
templates.push("/login openai oauth ");
|
|
361
|
+
templates.push("/login http ");
|
|
362
|
+
templates.push("/login ollama ");
|
|
363
|
+
return [...new Set(templates)];
|
|
364
|
+
}
|
|
365
|
+
const LOGIN_PROVIDER_TOKENS = ["openai", ...exports.PI_PROVIDER_IDS, "http", "ollama"];
|
|
366
|
+
function isLoginProviderToken(token) {
|
|
367
|
+
return LOGIN_PROVIDER_TOKENS.includes(token.trim().toLowerCase());
|
|
368
|
+
}
|
|
369
|
+
function buildLoginProviderCommandTemplates() {
|
|
370
|
+
return [...new Set(LOGIN_PROVIDER_TOKENS.map((token) => `/login ${token} `))];
|
|
371
|
+
}
|
|
372
|
+
function buildLoginModeCommandTemplates(providerToken) {
|
|
373
|
+
const token = providerToken.trim().toLowerCase();
|
|
374
|
+
if (!token) {
|
|
375
|
+
return [];
|
|
376
|
+
}
|
|
377
|
+
if (token === "ollama") {
|
|
378
|
+
return ["/login ollama"];
|
|
379
|
+
}
|
|
380
|
+
if (token === "http") {
|
|
381
|
+
return ["/login http api_key"];
|
|
382
|
+
}
|
|
383
|
+
let provider;
|
|
384
|
+
try {
|
|
385
|
+
provider = toLoginProviderId(token);
|
|
386
|
+
}
|
|
387
|
+
catch {
|
|
388
|
+
return [];
|
|
389
|
+
}
|
|
390
|
+
const entries = [`/login ${token} api_key`];
|
|
391
|
+
if (token === "openai" || providerSupportsOAuth(provider)) {
|
|
392
|
+
entries.push(`/login ${token} oauth`);
|
|
393
|
+
}
|
|
394
|
+
return entries;
|
|
395
|
+
}
|
|
396
|
+
function buildLogoutCommandTemplates() {
|
|
397
|
+
const templates = exports.BUILTIN_PROVIDER_IDS.map((provider) => `/logout ${provider}`);
|
|
398
|
+
templates.push("/logout http");
|
|
399
|
+
templates.push("/logout ollama");
|
|
400
|
+
templates.push("/logout all");
|
|
401
|
+
return [...new Set(templates)];
|
|
402
|
+
}
|
|
403
|
+
//# sourceMappingURL=provider-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-registry.js","sourceRoot":"","sources":["../../src/infra/provider-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IntentCard, SessionStore } from "../core/types";
|
|
2
|
+
export interface SessionStatusFormatOptions {
|
|
3
|
+
includeDialog: boolean;
|
|
4
|
+
recentRoundLimit: number;
|
|
5
|
+
}
|
|
6
|
+
export declare function formatSessionStatusLines(session: SessionStore, draft: IntentCard | null, confirmed: IntentCard | null, options?: Partial<SessionStatusFormatOptions>): string[];
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatSessionStatusLines = formatSessionStatusLines;
|
|
4
|
+
const DEFAULT_OPTIONS = {
|
|
5
|
+
includeDialog: true,
|
|
6
|
+
recentRoundLimit: 5
|
|
7
|
+
};
|
|
8
|
+
function formatSessionStatusLines(session, draft, confirmed, options = {}) {
|
|
9
|
+
const merged = {
|
|
10
|
+
...DEFAULT_OPTIONS,
|
|
11
|
+
...options
|
|
12
|
+
};
|
|
13
|
+
const lines = [
|
|
14
|
+
`state: ${session.state}`,
|
|
15
|
+
`current_intent_id: ${session.current_intent_id ?? "-"}`,
|
|
16
|
+
`last_run_verdict: ${session.last_run_verdict ?? "-"}`,
|
|
17
|
+
`intent.card: ${draft ? `${draft.intent_id} (${draft.status})` : "-"}`,
|
|
18
|
+
`intent.confirmed: ${confirmed ? `${confirmed.intent_id} (${confirmed.status})` : "-"}`
|
|
19
|
+
];
|
|
20
|
+
if (!merged.includeDialog) {
|
|
21
|
+
return lines;
|
|
22
|
+
}
|
|
23
|
+
lines.push(`debug: ${session.dialog?.debug ? "on" : "off"}`);
|
|
24
|
+
lines.push(`history_turns: ${session.dialog?.history.length ?? 0}`);
|
|
25
|
+
const rounds = session.dialog?.rounds ?? [];
|
|
26
|
+
if (rounds.length > 0) {
|
|
27
|
+
lines.push("recent_rounds:");
|
|
28
|
+
for (const item of rounds.slice(-Math.max(1, merged.recentRoundLimit))) {
|
|
29
|
+
lines.push(`- #${item.round} verdict=${item.verdict} reason=${item.reason_code} checkpoint=${item.checkpoint_id ?? "-"}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return lines;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=session-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-status.js","sourceRoot":"","sources":["../../src/infra/session-status.ts"],"names":[],"mappings":";;AAYA,4DAqCC;AA1CD,MAAM,eAAe,GAA+B;IAClD,aAAa,EAAE,IAAI;IACnB,gBAAgB,EAAE,CAAC;CACpB,CAAC;AAEF,SAAgB,wBAAwB,CACtC,OAAqB,EACrB,KAAwB,EACxB,SAA4B,EAC5B,UAA+C,EAAE;IAEjD,MAAM,MAAM,GAA+B;QACzC,GAAG,eAAe;QAClB,GAAG,OAAO;KACX,CAAC;IAEF,MAAM,KAAK,GAAG;QACZ,UAAU,OAAO,CAAC,KAAK,EAAE;QACzB,sBAAsB,OAAO,CAAC,iBAAiB,IAAI,GAAG,EAAE;QACxD,qBAAqB,OAAO,CAAC,gBAAgB,IAAI,GAAG,EAAE;QACtD,gBAAgB,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;QACtE,qBAAqB,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;KACxF,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;IAEpE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC;IAC5C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;YACvE,KAAK,CAAC,IAAI,CACR,MAAM,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,OAAO,WAAW,IAAI,CAAC,WAAW,eAAe,IAAI,CAAC,aAAa,IAAI,GAAG,EAAE,CAC9G,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function stripAnsi(input: string): string;
|
|
2
|
+
export declare function charDisplayWidth(char: string): number;
|
|
3
|
+
export declare function displayWidth(input: string): number;
|
|
4
|
+
export declare function clipText(input: string, width: number): string;
|
|
5
|
+
export declare function padText(input: string, width: number): string;
|
|
6
|
+
export declare function wrapText(input: string, width: number): string[];
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stripAnsi = stripAnsi;
|
|
4
|
+
exports.charDisplayWidth = charDisplayWidth;
|
|
5
|
+
exports.displayWidth = displayWidth;
|
|
6
|
+
exports.clipText = clipText;
|
|
7
|
+
exports.padText = padText;
|
|
8
|
+
exports.wrapText = wrapText;
|
|
9
|
+
function stripAnsi(input) {
|
|
10
|
+
return input.replace(/\x1b\[[0-9;]*m/g, "");
|
|
11
|
+
}
|
|
12
|
+
function charDisplayWidth(char) {
|
|
13
|
+
const code = char.codePointAt(0);
|
|
14
|
+
if (code === undefined) {
|
|
15
|
+
return 0;
|
|
16
|
+
}
|
|
17
|
+
if (code === 0 || code < 0x20 || (code >= 0x7f && code < 0xa0)) {
|
|
18
|
+
return 0;
|
|
19
|
+
}
|
|
20
|
+
if ((code >= 0x0300 && code <= 0x036f) ||
|
|
21
|
+
(code >= 0x1ab0 && code <= 0x1aff) ||
|
|
22
|
+
(code >= 0x1dc0 && code <= 0x1dff) ||
|
|
23
|
+
(code >= 0x20d0 && code <= 0x20ff) ||
|
|
24
|
+
(code >= 0xfe20 && code <= 0xfe2f)) {
|
|
25
|
+
return 0;
|
|
26
|
+
}
|
|
27
|
+
if (code >= 0x1100 && (code <= 0x115f ||
|
|
28
|
+
code === 0x2329 ||
|
|
29
|
+
code === 0x232a ||
|
|
30
|
+
(code >= 0x2e80 && code <= 0xa4cf && code !== 0x303f) ||
|
|
31
|
+
(code >= 0xac00 && code <= 0xd7a3) ||
|
|
32
|
+
(code >= 0xf900 && code <= 0xfaff) ||
|
|
33
|
+
(code >= 0xfe10 && code <= 0xfe19) ||
|
|
34
|
+
(code >= 0xfe30 && code <= 0xfe6f) ||
|
|
35
|
+
(code >= 0xff00 && code <= 0xff60) ||
|
|
36
|
+
(code >= 0xffe0 && code <= 0xffe6) ||
|
|
37
|
+
(code >= 0x1f300 && code <= 0x1f64f) ||
|
|
38
|
+
(code >= 0x1f900 && code <= 0x1f9ff) ||
|
|
39
|
+
(code >= 0x20000 && code <= 0x3fffd))) {
|
|
40
|
+
return 2;
|
|
41
|
+
}
|
|
42
|
+
return 1;
|
|
43
|
+
}
|
|
44
|
+
function displayWidth(input) {
|
|
45
|
+
let width = 0;
|
|
46
|
+
for (const char of input) {
|
|
47
|
+
width += charDisplayWidth(char);
|
|
48
|
+
}
|
|
49
|
+
return width;
|
|
50
|
+
}
|
|
51
|
+
function sliceByDisplayWidth(input, maxWidth) {
|
|
52
|
+
if (maxWidth <= 0) {
|
|
53
|
+
return "";
|
|
54
|
+
}
|
|
55
|
+
let width = 0;
|
|
56
|
+
let output = "";
|
|
57
|
+
for (const char of input) {
|
|
58
|
+
const charWidth = charDisplayWidth(char);
|
|
59
|
+
if (width + charWidth > maxWidth) {
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
output += char;
|
|
63
|
+
width += charWidth;
|
|
64
|
+
}
|
|
65
|
+
return output;
|
|
66
|
+
}
|
|
67
|
+
function splitByDisplayWidth(input, width) {
|
|
68
|
+
if (width <= 0) {
|
|
69
|
+
return [""];
|
|
70
|
+
}
|
|
71
|
+
const chunks = [];
|
|
72
|
+
let current = "";
|
|
73
|
+
let currentWidth = 0;
|
|
74
|
+
for (const char of input) {
|
|
75
|
+
const charWidth = charDisplayWidth(char);
|
|
76
|
+
if (charWidth > width) {
|
|
77
|
+
if (current) {
|
|
78
|
+
chunks.push(current);
|
|
79
|
+
current = "";
|
|
80
|
+
currentWidth = 0;
|
|
81
|
+
}
|
|
82
|
+
chunks.push("…");
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
if (currentWidth + charWidth > width && current) {
|
|
86
|
+
chunks.push(current);
|
|
87
|
+
current = char;
|
|
88
|
+
currentWidth = charWidth;
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
current += char;
|
|
92
|
+
currentWidth += charWidth;
|
|
93
|
+
}
|
|
94
|
+
if (current) {
|
|
95
|
+
chunks.push(current);
|
|
96
|
+
}
|
|
97
|
+
return chunks.length > 0 ? chunks : [""];
|
|
98
|
+
}
|
|
99
|
+
function clipText(input, width) {
|
|
100
|
+
if (width <= 0) {
|
|
101
|
+
return "";
|
|
102
|
+
}
|
|
103
|
+
const plain = stripAnsi(input).replace(/\t/g, " ");
|
|
104
|
+
if (displayWidth(plain) <= width) {
|
|
105
|
+
return plain;
|
|
106
|
+
}
|
|
107
|
+
if (width === 1) {
|
|
108
|
+
return "…";
|
|
109
|
+
}
|
|
110
|
+
return `${sliceByDisplayWidth(plain, width - 1)}…`;
|
|
111
|
+
}
|
|
112
|
+
function padText(input, width) {
|
|
113
|
+
const clipped = clipText(input, width);
|
|
114
|
+
return `${clipped}${" ".repeat(Math.max(0, width - displayWidth(clipped)))}`;
|
|
115
|
+
}
|
|
116
|
+
function wrapText(input, width) {
|
|
117
|
+
if (width <= 1) {
|
|
118
|
+
return [clipText(input, Math.max(1, width))];
|
|
119
|
+
}
|
|
120
|
+
const plain = stripAnsi(input).trim();
|
|
121
|
+
if (!plain) {
|
|
122
|
+
return [""];
|
|
123
|
+
}
|
|
124
|
+
const words = plain.split(/\s+/);
|
|
125
|
+
const lines = [];
|
|
126
|
+
let current = "";
|
|
127
|
+
const pushCurrent = () => {
|
|
128
|
+
if (current.trim()) {
|
|
129
|
+
lines.push(current.trim());
|
|
130
|
+
current = "";
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
for (const word of words) {
|
|
134
|
+
const wordWidth = displayWidth(word);
|
|
135
|
+
if (wordWidth > width) {
|
|
136
|
+
pushCurrent();
|
|
137
|
+
const chunks = splitByDisplayWidth(word, width);
|
|
138
|
+
if (chunks.length === 1) {
|
|
139
|
+
current = chunks[0];
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
for (let index = 0; index < chunks.length - 1; index += 1) {
|
|
143
|
+
lines.push(chunks[index]);
|
|
144
|
+
}
|
|
145
|
+
current = chunks[chunks.length - 1];
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
if (!current) {
|
|
149
|
+
current = word;
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
if (displayWidth(`${current} ${word}`) <= width) {
|
|
153
|
+
current = `${current} ${word}`;
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
lines.push(current);
|
|
157
|
+
current = word;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
pushCurrent();
|
|
161
|
+
return lines.length > 0 ? lines : [""];
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=tui-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui-utils.js","sourceRoot":"","sources":["../../src/infra/tui-utils.ts"],"names":[],"mappings":"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"}
|