@imricci/zaker 0.1.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/commands/align.d.ts +3 -0
- package/dist/commands/align.js +28 -0
- package/dist/commands/align.js.map +1 -0
- package/dist/commands/audit.d.ts +3 -0
- package/dist/commands/audit.js +59 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/confirm.d.ts +3 -0
- package/dist/commands/confirm.js +22 -0
- package/dist/commands/confirm.js.map +1 -0
- package/dist/commands/dialog.d.ts +9 -0
- package/dist/commands/dialog.js +396 -0
- package/dist/commands/dialog.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.js +31 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/models.d.ts +9 -0
- package/dist/commands/models.js +65 -0
- package/dist/commands/models.js.map +1 -0
- package/dist/commands/plan.d.ts +3 -0
- package/dist/commands/plan.js +69 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/run.d.ts +40 -0
- package/dist/commands/run.js +310 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.js +39 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/tui.d.ts +14 -0
- package/dist/commands/tui.js +394 -0
- package/dist/commands/tui.js.map +1 -0
- package/dist/core/auditor.d.ts +13 -0
- package/dist/core/auditor.js +122 -0
- package/dist/core/auditor.js.map +1 -0
- package/dist/core/c3fi.d.ts +10 -0
- package/dist/core/c3fi.js +305 -0
- package/dist/core/c3fi.js.map +1 -0
- package/dist/core/challenge.d.ts +8 -0
- package/dist/core/challenge.js +29 -0
- package/dist/core/challenge.js.map +1 -0
- package/dist/core/checkpoint.d.ts +20 -0
- package/dist/core/checkpoint.js +192 -0
- package/dist/core/checkpoint.js.map +1 -0
- package/dist/core/execution-provider.d.ts +2 -0
- package/dist/core/execution-provider.js +125 -0
- package/dist/core/execution-provider.js.map +1 -0
- package/dist/core/executor.d.ts +16 -0
- package/dist/core/executor.js +68 -0
- package/dist/core/executor.js.map +1 -0
- package/dist/core/memory.d.ts +11 -0
- package/dist/core/memory.js +105 -0
- package/dist/core/memory.js.map +1 -0
- package/dist/core/planner.d.ts +146 -0
- package/dist/core/planner.js +152 -0
- package/dist/core/planner.js.map +1 -0
- package/dist/core/preflight.d.ts +6 -0
- package/dist/core/preflight.js +140 -0
- package/dist/core/preflight.js.map +1 -0
- package/dist/core/provider-onboarding.d.ts +12 -0
- package/dist/core/provider-onboarding.js +32 -0
- package/dist/core/provider-onboarding.js.map +1 -0
- package/dist/core/run-loop.d.ts +32 -0
- package/dist/core/run-loop.js +205 -0
- package/dist/core/run-loop.js.map +1 -0
- package/dist/core/scope.d.ts +3 -0
- package/dist/core/scope.js +75 -0
- package/dist/core/scope.js.map +1 -0
- package/dist/core/types.d.ts +288 -0
- package/dist/core/types.js +11 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/verdict-panel.d.ts +29 -0
- package/dist/core/verdict-panel.js +120 -0
- package/dist/core/verdict-panel.js.map +1 -0
- package/dist/core/verifier.d.ts +2 -0
- package/dist/core/verifier.js +47 -0
- package/dist/core/verifier.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/infra/config.d.ts +36 -0
- package/dist/infra/config.js +397 -0
- package/dist/infra/config.js.map +1 -0
- package/dist/infra/git.d.ts +6 -0
- package/dist/infra/git.js +35 -0
- package/dist/infra/git.js.map +1 -0
- package/dist/infra/hashing.d.ts +1 -0
- package/dist/infra/hashing.js +8 -0
- package/dist/infra/hashing.js.map +1 -0
- package/dist/infra/intent.d.ts +30 -0
- package/dist/infra/intent.js +357 -0
- package/dist/infra/intent.js.map +1 -0
- package/dist/infra/memory.d.ts +10 -0
- package/dist/infra/memory.js +94 -0
- package/dist/infra/memory.js.map +1 -0
- package/dist/infra/model-catalog.d.ts +27 -0
- package/dist/infra/model-catalog.js +273 -0
- package/dist/infra/model-catalog.js.map +1 -0
- package/dist/infra/process.d.ts +12 -0
- package/dist/infra/process.js +32 -0
- package/dist/infra/process.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isCloudOnboardingRequired = isCloudOnboardingRequired;
|
|
7
|
+
exports.resolveModelSelections = resolveModelSelections;
|
|
8
|
+
exports.fetchModelCatalog = fetchModelCatalog;
|
|
9
|
+
exports.validateModelSelection = validateModelSelection;
|
|
10
|
+
const openai_1 = __importDefault(require("openai"));
|
|
11
|
+
const DEFAULT_MODELS_PATH = "/models";
|
|
12
|
+
const DEFAULT_TIMEOUT_MS = 30000;
|
|
13
|
+
const BUILTIN_MODEL_CATALOG = [
|
|
14
|
+
"qwen3-coder-30b",
|
|
15
|
+
"kimi-k2.5",
|
|
16
|
+
"minimax-m2.5",
|
|
17
|
+
"gpt-5-codex",
|
|
18
|
+
"gpt-5",
|
|
19
|
+
"qwen2.5-coder:14b",
|
|
20
|
+
"mock-planner-v1",
|
|
21
|
+
"mock-auditor-v1"
|
|
22
|
+
];
|
|
23
|
+
function isCloudOnboardingRequired(config) {
|
|
24
|
+
return (config.model.provider === "http" ||
|
|
25
|
+
config.model.provider === "openai_codex_team" ||
|
|
26
|
+
config.execution.provider === "cheap_cloud" ||
|
|
27
|
+
config.execution.provider === "ollama");
|
|
28
|
+
}
|
|
29
|
+
function resolveModelSelections(config) {
|
|
30
|
+
return {
|
|
31
|
+
planner: config.model.planner_model.trim(),
|
|
32
|
+
auditor: config.model.auditor_model.trim(),
|
|
33
|
+
execution: config.execution.model.trim()
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function dedupe(values) {
|
|
37
|
+
return [...new Set(values.map((value) => value.trim()).filter((value) => value.length > 0))];
|
|
38
|
+
}
|
|
39
|
+
function resolveApiKey(config, fallbackEnv) {
|
|
40
|
+
const explicit = config.model.api_key?.trim();
|
|
41
|
+
if (explicit) {
|
|
42
|
+
return explicit;
|
|
43
|
+
}
|
|
44
|
+
const keyEnv = (config.model.api_key_env || "").trim();
|
|
45
|
+
if (keyEnv) {
|
|
46
|
+
const configured = process.env[keyEnv];
|
|
47
|
+
if (typeof configured === "string" && configured.trim()) {
|
|
48
|
+
return configured.trim();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (fallbackEnv && fallbackEnv !== keyEnv) {
|
|
52
|
+
const fallback = process.env[fallbackEnv];
|
|
53
|
+
if (typeof fallback === "string" && fallback.trim()) {
|
|
54
|
+
return fallback.trim();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return "";
|
|
58
|
+
}
|
|
59
|
+
function normalizeCatalogModels(payload) {
|
|
60
|
+
const resolved = [];
|
|
61
|
+
const collect = (value) => {
|
|
62
|
+
if (typeof value === "string" && value.trim()) {
|
|
63
|
+
resolved.push(value.trim());
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (value && typeof value === "object") {
|
|
67
|
+
const record = value;
|
|
68
|
+
const id = record.id;
|
|
69
|
+
const model = record.model;
|
|
70
|
+
const name = record.name;
|
|
71
|
+
if (typeof id === "string" && id.trim()) {
|
|
72
|
+
resolved.push(id.trim());
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (typeof model === "string" && model.trim()) {
|
|
76
|
+
resolved.push(model.trim());
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (typeof name === "string" && name.trim()) {
|
|
80
|
+
resolved.push(name.trim());
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
if (Array.isArray(payload)) {
|
|
85
|
+
payload.forEach(collect);
|
|
86
|
+
}
|
|
87
|
+
else if (payload && typeof payload === "object") {
|
|
88
|
+
const record = payload;
|
|
89
|
+
const candidates = [record.models, record.data, record.items];
|
|
90
|
+
for (const candidate of candidates) {
|
|
91
|
+
if (Array.isArray(candidate)) {
|
|
92
|
+
candidate.forEach(collect);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return dedupe(resolved);
|
|
97
|
+
}
|
|
98
|
+
function buildModelsUrl(endpoint, modelsPath) {
|
|
99
|
+
const normalizedEndpoint = endpoint.trim().replace(/\/+$/, "");
|
|
100
|
+
const normalizedPath = modelsPath.startsWith("/") ? modelsPath : `/${modelsPath}`;
|
|
101
|
+
return `${normalizedEndpoint}${normalizedPath}`;
|
|
102
|
+
}
|
|
103
|
+
async function fetchHttpModelCatalog(config) {
|
|
104
|
+
const endpoint = config.model.endpoint?.trim();
|
|
105
|
+
if (!endpoint) {
|
|
106
|
+
throw new Error("Cloud onboarding failed: model.endpoint is empty.");
|
|
107
|
+
}
|
|
108
|
+
const apiKey = resolveApiKey(config, "MOLO_API_KEY");
|
|
109
|
+
if (!apiKey) {
|
|
110
|
+
const envName = config.model.api_key_env || "MOLO_API_KEY";
|
|
111
|
+
throw new Error(`Cloud onboarding failed: missing API key. Set model.api_key or env ${envName}.`);
|
|
112
|
+
}
|
|
113
|
+
const timeoutMs = config.model.timeout_ms || DEFAULT_TIMEOUT_MS;
|
|
114
|
+
const controller = new AbortController();
|
|
115
|
+
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
116
|
+
const modelsUrl = buildModelsUrl(endpoint, config.model.models_path || DEFAULT_MODELS_PATH);
|
|
117
|
+
try {
|
|
118
|
+
const response = await fetch(modelsUrl, {
|
|
119
|
+
method: "GET",
|
|
120
|
+
headers: {
|
|
121
|
+
accept: "application/json",
|
|
122
|
+
authorization: `Bearer ${apiKey}`
|
|
123
|
+
},
|
|
124
|
+
signal: controller.signal
|
|
125
|
+
});
|
|
126
|
+
if (!response.ok) {
|
|
127
|
+
throw new Error(`catalog request failed (${response.status})`);
|
|
128
|
+
}
|
|
129
|
+
const payload = (await response.json());
|
|
130
|
+
const models = normalizeCatalogModels(payload);
|
|
131
|
+
if (models.length === 0) {
|
|
132
|
+
throw new Error("catalog response contains zero models.");
|
|
133
|
+
}
|
|
134
|
+
return models;
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
if (error instanceof Error && error.name === "AbortError") {
|
|
138
|
+
throw new Error(`Cloud onboarding failed: model catalog timeout after ${timeoutMs}ms.`);
|
|
139
|
+
}
|
|
140
|
+
if (error instanceof Error) {
|
|
141
|
+
throw new Error(`Cloud onboarding failed: ${error.message}`);
|
|
142
|
+
}
|
|
143
|
+
throw new Error("Cloud onboarding failed: unknown catalog error.");
|
|
144
|
+
}
|
|
145
|
+
finally {
|
|
146
|
+
clearTimeout(timer);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
async function fetchOpenAIModelCatalog(config) {
|
|
150
|
+
const apiKey = resolveApiKey(config, "OPENAI_API_KEY");
|
|
151
|
+
if (!apiKey) {
|
|
152
|
+
const envName = config.model.api_key_env || "OPENAI_API_KEY";
|
|
153
|
+
throw new Error(`OpenAI onboarding failed: missing API key. Set model.api_key or env ${envName}.`);
|
|
154
|
+
}
|
|
155
|
+
const client = new openai_1.default({
|
|
156
|
+
apiKey,
|
|
157
|
+
timeout: config.model.timeout_ms || DEFAULT_TIMEOUT_MS,
|
|
158
|
+
baseURL: config.model.endpoint?.trim() || undefined
|
|
159
|
+
});
|
|
160
|
+
try {
|
|
161
|
+
const response = await client.models.list();
|
|
162
|
+
const models = dedupe(response.data.map((entry) => entry.id || "").filter(Boolean));
|
|
163
|
+
if (models.length === 0) {
|
|
164
|
+
throw new Error("OpenAI models list is empty.");
|
|
165
|
+
}
|
|
166
|
+
return models;
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
170
|
+
throw new Error(`OpenAI onboarding failed: ${message}`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
async function fetchOllamaModelCatalog(host, timeoutMs) {
|
|
174
|
+
const baseHost = host.trim() || "http://127.0.0.1:11434";
|
|
175
|
+
const controller = new AbortController();
|
|
176
|
+
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
177
|
+
try {
|
|
178
|
+
const response = await fetch(`${baseHost.replace(/\/+$/, "")}/api/tags`, {
|
|
179
|
+
method: "GET",
|
|
180
|
+
headers: {
|
|
181
|
+
accept: "application/json"
|
|
182
|
+
},
|
|
183
|
+
signal: controller.signal
|
|
184
|
+
});
|
|
185
|
+
if (!response.ok) {
|
|
186
|
+
throw new Error(`catalog request failed (${response.status})`);
|
|
187
|
+
}
|
|
188
|
+
const payload = (await response.json());
|
|
189
|
+
const models = normalizeCatalogModels(payload);
|
|
190
|
+
if (models.length === 0) {
|
|
191
|
+
throw new Error("catalog response contains zero models.");
|
|
192
|
+
}
|
|
193
|
+
return models;
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
if (error instanceof Error && error.name === "AbortError") {
|
|
197
|
+
throw new Error(`Ollama onboarding failed: model catalog timeout after ${timeoutMs}ms.`);
|
|
198
|
+
}
|
|
199
|
+
if (error instanceof Error) {
|
|
200
|
+
throw new Error(`Ollama onboarding failed: ${error.message}`);
|
|
201
|
+
}
|
|
202
|
+
throw new Error("Ollama onboarding failed: unknown catalog error.");
|
|
203
|
+
}
|
|
204
|
+
finally {
|
|
205
|
+
clearTimeout(timer);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
async function fetchPlanAuditCatalog(config) {
|
|
209
|
+
if (config.model.provider === "mock") {
|
|
210
|
+
return {
|
|
211
|
+
source: "mock",
|
|
212
|
+
models: dedupe([...BUILTIN_MODEL_CATALOG, config.model.planner_model, config.model.auditor_model])
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
if (config.model.provider === "http") {
|
|
216
|
+
return {
|
|
217
|
+
source: "http",
|
|
218
|
+
models: await fetchHttpModelCatalog(config)
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
return {
|
|
222
|
+
source: "openai_codex_team",
|
|
223
|
+
models: await fetchOpenAIModelCatalog(config)
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
async function fetchExecutionCatalog(config, fallbackModels) {
|
|
227
|
+
if (config.execution.provider === "cheap_cloud") {
|
|
228
|
+
return {
|
|
229
|
+
source: config.model.provider,
|
|
230
|
+
models: fallbackModels
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
if (config.execution.provider === "ollama") {
|
|
234
|
+
return {
|
|
235
|
+
source: "ollama",
|
|
236
|
+
models: await fetchOllamaModelCatalog(config.execution.ollama_host, config.model.timeout_ms || DEFAULT_TIMEOUT_MS)
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
return {
|
|
240
|
+
source: "mock",
|
|
241
|
+
models: dedupe([...fallbackModels, config.execution.model])
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
async function fetchModelCatalog(config) {
|
|
245
|
+
const planAudit = await fetchPlanAuditCatalog(config);
|
|
246
|
+
const execution = await fetchExecutionCatalog(config, planAudit.models);
|
|
247
|
+
const roleModels = {
|
|
248
|
+
planner: planAudit.models,
|
|
249
|
+
auditor: planAudit.models,
|
|
250
|
+
execution: execution.models
|
|
251
|
+
};
|
|
252
|
+
return {
|
|
253
|
+
provider: execution.source === planAudit.source
|
|
254
|
+
? planAudit.source
|
|
255
|
+
: `${planAudit.source}+${execution.source}`,
|
|
256
|
+
models: dedupe([...roleModels.planner, ...roleModels.auditor, ...roleModels.execution]),
|
|
257
|
+
role_models: roleModels,
|
|
258
|
+
role_sources: {
|
|
259
|
+
planner: planAudit.source,
|
|
260
|
+
auditor: planAudit.source,
|
|
261
|
+
execution: execution.source
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
function validateModelSelection(role, selectedModel, catalogModels) {
|
|
266
|
+
if (!selectedModel.trim()) {
|
|
267
|
+
throw new Error(`Cloud onboarding failed: ${role} model is empty.`);
|
|
268
|
+
}
|
|
269
|
+
if (!catalogModels.includes(selectedModel)) {
|
|
270
|
+
throw new Error(`Cloud onboarding failed: selected ${role} model "${selectedModel}" is not in provider catalog.`);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=model-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-catalog.js","sourceRoot":"","sources":["../../src/infra/model-catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface RunCommandOptions {
|
|
2
|
+
cwd?: string;
|
|
3
|
+
env?: NodeJS.ProcessEnv;
|
|
4
|
+
input?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface CommandResult {
|
|
7
|
+
command: string[];
|
|
8
|
+
exitCode: number;
|
|
9
|
+
stdout: string;
|
|
10
|
+
stderr: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function runCommand(command: string, args?: string[], options?: RunCommandOptions): Promise<CommandResult>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.runCommand = runCommand;
|
|
7
|
+
const execa_1 = __importDefault(require("execa"));
|
|
8
|
+
async function runCommand(command, args = [], options = {}) {
|
|
9
|
+
try {
|
|
10
|
+
const result = await (0, execa_1.default)(command, args, {
|
|
11
|
+
cwd: options.cwd,
|
|
12
|
+
env: options.env,
|
|
13
|
+
input: options.input,
|
|
14
|
+
reject: false
|
|
15
|
+
});
|
|
16
|
+
return {
|
|
17
|
+
command: [command, ...args],
|
|
18
|
+
exitCode: result.exitCode,
|
|
19
|
+
stdout: result.stdout ?? "",
|
|
20
|
+
stderr: result.stderr ?? ""
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
return {
|
|
25
|
+
command: [command, ...args],
|
|
26
|
+
exitCode: -1,
|
|
27
|
+
stdout: "",
|
|
28
|
+
stderr: error instanceof Error ? error.message : String(error)
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/infra/process.ts"],"names":[],"mappings":";;;;;AAeA,gCA2BC;AA1CD,kDAA0B;AAenB,KAAK,UAAU,UAAU,CAC9B,OAAe,EACf,OAAiB,EAAE,EACnB,UAA6B,EAAE;IAE/B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAA,eAAK,EAAC,OAAO,EAAE,IAAI,EAAE;YACxC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;SAC5B,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;YAC3B,QAAQ,EAAE,CAAC,CAAC;YACZ,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC/D,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@imricci/zaker",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Production-ready CLI workflow for plan, execute, verify and audit.",
|
|
5
|
+
"bin": {
|
|
6
|
+
"zaker": "dist/index.js"
|
|
7
|
+
},
|
|
8
|
+
"main": "dist/index.js",
|
|
9
|
+
"types": "dist/index.d.ts",
|
|
10
|
+
"publishConfig": {
|
|
11
|
+
"access": "public"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist"
|
|
15
|
+
],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc -p tsconfig.json",
|
|
18
|
+
"lint": "tsc --noEmit",
|
|
19
|
+
"test": "node test/run-all.js"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"chalk": "^4.1.2",
|
|
23
|
+
"commander": "^12.1.0",
|
|
24
|
+
"execa": "^5.1.1",
|
|
25
|
+
"micromatch": "^4.0.8",
|
|
26
|
+
"openai": "^6.25.0",
|
|
27
|
+
"simple-git": "^3.28.0",
|
|
28
|
+
"zod": "^3.24.1"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@types/micromatch": "^4.0.9",
|
|
32
|
+
"@types/node": "^22.13.5",
|
|
33
|
+
"ts-node": "^10.9.2",
|
|
34
|
+
"typescript": "^5.7.3"
|
|
35
|
+
},
|
|
36
|
+
"engines": {
|
|
37
|
+
"node": ">=18.18.0"
|
|
38
|
+
}
|
|
39
|
+
}
|