@keel_flow/cli 0.2.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 (79) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +170 -0
  3. package/dist/build.d.ts +57 -0
  4. package/dist/build.d.ts.map +1 -0
  5. package/dist/build.js +350 -0
  6. package/dist/build.js.map +1 -0
  7. package/dist/claude-auth.d.ts +16 -0
  8. package/dist/claude-auth.d.ts.map +1 -0
  9. package/dist/claude-auth.js +75 -0
  10. package/dist/claude-auth.js.map +1 -0
  11. package/dist/doctor.d.ts +18 -0
  12. package/dist/doctor.d.ts.map +1 -0
  13. package/dist/doctor.js +547 -0
  14. package/dist/doctor.js.map +1 -0
  15. package/dist/git.d.ts +4 -0
  16. package/dist/git.d.ts.map +1 -0
  17. package/dist/git.js +138 -0
  18. package/dist/git.js.map +1 -0
  19. package/dist/goals.d.ts +34 -0
  20. package/dist/goals.d.ts.map +1 -0
  21. package/dist/goals.js +218 -0
  22. package/dist/goals.js.map +1 -0
  23. package/dist/index.d.ts +3 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +1015 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/kb-reindex.d.ts +31 -0
  28. package/dist/kb-reindex.d.ts.map +1 -0
  29. package/dist/kb-reindex.js +71 -0
  30. package/dist/kb-reindex.js.map +1 -0
  31. package/dist/keys.d.ts +26 -0
  32. package/dist/keys.d.ts.map +1 -0
  33. package/dist/keys.js +209 -0
  34. package/dist/keys.js.map +1 -0
  35. package/dist/learn.d.ts +37 -0
  36. package/dist/learn.d.ts.map +1 -0
  37. package/dist/learn.js +274 -0
  38. package/dist/learn.js.map +1 -0
  39. package/dist/lifecycle.d.ts +27 -0
  40. package/dist/lifecycle.d.ts.map +1 -0
  41. package/dist/lifecycle.js +193 -0
  42. package/dist/lifecycle.js.map +1 -0
  43. package/dist/load-ts.d.ts +2 -0
  44. package/dist/load-ts.d.ts.map +1 -0
  45. package/dist/load-ts.js +20 -0
  46. package/dist/load-ts.js.map +1 -0
  47. package/dist/map-repo.d.ts +15 -0
  48. package/dist/map-repo.d.ts.map +1 -0
  49. package/dist/map-repo.js +36 -0
  50. package/dist/map-repo.js.map +1 -0
  51. package/dist/memory.d.ts +23 -0
  52. package/dist/memory.d.ts.map +1 -0
  53. package/dist/memory.js +84 -0
  54. package/dist/memory.js.map +1 -0
  55. package/dist/orchestrate.d.ts +61 -0
  56. package/dist/orchestrate.d.ts.map +1 -0
  57. package/dist/orchestrate.js +556 -0
  58. package/dist/orchestrate.js.map +1 -0
  59. package/dist/reflect.d.ts +12 -0
  60. package/dist/reflect.d.ts.map +1 -0
  61. package/dist/reflect.js +67 -0
  62. package/dist/reflect.js.map +1 -0
  63. package/dist/report.d.ts +3 -0
  64. package/dist/report.d.ts.map +1 -0
  65. package/dist/report.js +56 -0
  66. package/dist/report.js.map +1 -0
  67. package/dist/rules.d.ts +16 -0
  68. package/dist/rules.d.ts.map +1 -0
  69. package/dist/rules.js +65 -0
  70. package/dist/rules.js.map +1 -0
  71. package/dist/telemetry-helper.d.ts +12 -0
  72. package/dist/telemetry-helper.d.ts.map +1 -0
  73. package/dist/telemetry-helper.js +40 -0
  74. package/dist/telemetry-helper.js.map +1 -0
  75. package/dist/up.d.ts +97 -0
  76. package/dist/up.d.ts.map +1 -0
  77. package/dist/up.js +656 -0
  78. package/dist/up.js.map +1 -0
  79. package/package.json +58 -0
@@ -0,0 +1,67 @@
1
+ import { resolve } from "node:path";
2
+ import pc from "picocolors";
3
+ import { generateReflection, listReflections } from "@keel_flow/reflect";
4
+ import { createCliEmitter } from "./telemetry-helper.js";
5
+ import { resolveProviderConfig } from "./orchestrate.js";
6
+ export async function runReflect(opts) {
7
+ if (process.env["KEEL_REFLECTIONS"] === "off") {
8
+ process.stdout.write(pc.dim("(KEEL_REFLECTIONS=off — skipping reflection)\n"));
9
+ return;
10
+ }
11
+ const cwd = resolve(opts.cwd);
12
+ const providerKindRaw = (opts.provider ?? process.env["KEEL_PROVIDER_KIND"] ?? "anthropic");
13
+ if (providerKindRaw !== "anthropic" && providerKindRaw !== "openai-compatible" && providerKindRaw !== "claude-bridge") {
14
+ throw new Error(`Unknown --provider kind: ${providerKindRaw}`);
15
+ }
16
+ const resolved = await resolveProviderConfig({
17
+ providerKind: providerKindRaw,
18
+ ...(opts.model ? { model: opts.model } : {}),
19
+ });
20
+ const { emitter, sessionId } = createCliEmitter({ command: "reflect", cwd });
21
+ emitter?.emit({
22
+ sessionId,
23
+ parentEventId: null,
24
+ workspaceId: null,
25
+ triggeredBy: { kind: opts.auto ? "event" : "user" },
26
+ kind: "session.start",
27
+ payload: { command: "reflect", target: opts.session ?? "(most-recent)" },
28
+ });
29
+ try {
30
+ const generateOpts = {
31
+ cwd,
32
+ provider: resolved.provider,
33
+ ...(opts.session ? { sessionId: opts.session } : {}),
34
+ ...(opts.model ? { model: opts.model } : {}),
35
+ };
36
+ if (emitter)
37
+ generateOpts.telemetry = emitter;
38
+ const result = await generateReflection(generateOpts);
39
+ process.stdout.write(pc.green(`✓ Reflection written: ${result.reflectionPath}\n`));
40
+ process.stdout.write(pc.dim(` session=${result.sessionId} chars=${result.markdown.length}\n`));
41
+ }
42
+ finally {
43
+ emitter?.emit({
44
+ sessionId,
45
+ parentEventId: null,
46
+ workspaceId: null,
47
+ triggeredBy: { kind: opts.auto ? "event" : "user" },
48
+ kind: "session.end",
49
+ payload: { command: "reflect" },
50
+ });
51
+ if (emitter)
52
+ await emitter.close();
53
+ }
54
+ }
55
+ export async function runReflectList(opts) {
56
+ const cwd = resolve(opts.cwd);
57
+ const summaries = await listReflections(cwd);
58
+ if (summaries.length === 0) {
59
+ process.stdout.write(pc.dim("(no reflections in .keel/reflections)\n"));
60
+ return;
61
+ }
62
+ for (const s of summaries) {
63
+ process.stdout.write(`${pc.bold(s.date)} ${pc.cyan(s.sessionId.slice(0, 12))} ${pc.dim(s.fileName)} ` +
64
+ `suggestions=${s.suggestionCount}\n`);
65
+ }
66
+ }
67
+ //# sourceMappingURL=reflect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflect.js","sourceRoot":"","sources":["../src/reflect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { VerifyResult } from "@keel_flow/schema";
2
+ export declare function printVerifyReport(result: VerifyResult): void;
3
+ //# sourceMappingURL=report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,mBAAmB,CAAC;AAcjE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CA8C5D"}
package/dist/report.js ADDED
@@ -0,0 +1,56 @@
1
+ import pc from "picocolors";
2
+ function severityLabel(s) {
3
+ if (s === "critical")
4
+ return pc.red("CRITICAL");
5
+ if (s === "warning")
6
+ return pc.yellow("WARNING ");
7
+ return pc.cyan("INFO ");
8
+ }
9
+ function checkStatus(passed, pending) {
10
+ if (pending)
11
+ return pc.dim(" PENDING");
12
+ return passed ? pc.green(" PASS ") : pc.red(" FAIL ");
13
+ }
14
+ export function printVerifyReport(result) {
15
+ const checks = result.checks;
16
+ process.stdout.write("\n");
17
+ process.stdout.write(pc.bold("Keel Verify Report\n"));
18
+ process.stdout.write(pc.dim("─".repeat(50) + "\n"));
19
+ const rows = [
20
+ ["Spec compliance ", checks.spec.passed, checks.spec.pending],
21
+ ["Architecture ", checks.architecture.passed, undefined],
22
+ ["Principles ", checks.principles.passed, undefined],
23
+ ["Tests + lint ", checks["tests-lint"].passed, undefined],
24
+ ];
25
+ for (const [label, passed, pending] of rows) {
26
+ process.stdout.write(`${checkStatus(passed, pending)} ${label}\n`);
27
+ }
28
+ const allViolations = [
29
+ ...checks.spec.violations,
30
+ ...checks.architecture.violations,
31
+ ...checks.principles.violations,
32
+ ...checks["tests-lint"].violations,
33
+ ];
34
+ if (allViolations.length > 0) {
35
+ process.stdout.write("\n");
36
+ process.stdout.write(pc.bold("Violations\n"));
37
+ process.stdout.write(pc.dim("─".repeat(50) + "\n"));
38
+ for (const v of allViolations) {
39
+ const loc = v.file ? pc.dim(` (${v.file})`) : "";
40
+ const node = v.nodeId ? pc.dim(` [node: ${v.nodeId}]`) : "";
41
+ process.stdout.write(`${severityLabel(v.severity)} ${v.message}${loc}${node}\n`);
42
+ }
43
+ }
44
+ process.stdout.write("\n");
45
+ if (result.exitCode === 0) {
46
+ process.stdout.write(pc.green(pc.bold("✓ All checks passed\n")));
47
+ }
48
+ else if (result.exitCode === 1) {
49
+ process.stdout.write(pc.yellow(pc.bold("⚠ Warnings — review before merging\n")));
50
+ }
51
+ else {
52
+ process.stdout.write(pc.red(pc.bold("✗ Critical violations — merge blocked\n")));
53
+ }
54
+ process.stdout.write("\n");
55
+ }
56
+ //# sourceMappingURL=report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { CommandRuleSet, RuleDecision } from "@keel_flow/core";
2
+ export declare function rulesFilePath(cwd: string): string;
3
+ export declare function loadCommandRules(cwd: string): Promise<CommandRuleSet>;
4
+ export declare function parsePattern(input: string): string[][];
5
+ export declare function renderRulesFile(set: CommandRuleSet): string;
6
+ export declare function patternLabel(pattern: string[][]): string;
7
+ export declare function runRulesList(opts: {
8
+ cwd: string;
9
+ }): Promise<void>;
10
+ export declare function runRulesAdd(opts: {
11
+ cwd: string;
12
+ pattern: string;
13
+ decision: RuleDecision;
14
+ justification: string;
15
+ }): Promise<void>;
16
+ //# sourceMappingURL=rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAc,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAKhF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAK3E;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAQtD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAe3D;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAExD;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAcvE;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,YAAY,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAchB"}
package/dist/rules.js ADDED
@@ -0,0 +1,65 @@
1
+ import { existsSync, mkdirSync, writeFileSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { pathToFileURL } from "node:url";
4
+ import pc from "picocolors";
5
+ import { prefixRule, coerceCommandRuleSet } from "@keel_flow/core";
6
+ import { importTsConfig } from "./load-ts.js";
7
+ const RULES_PATH = "rules/commands.ts";
8
+ export function rulesFilePath(cwd) {
9
+ return join(cwd, RULES_PATH);
10
+ }
11
+ export async function loadCommandRules(cwd) {
12
+ const file = rulesFilePath(cwd);
13
+ if (!existsSync(file))
14
+ return { rules: [] };
15
+ const mod = await importTsConfig(pathToFileURL(file).href);
16
+ return coerceCommandRuleSet(mod);
17
+ }
18
+ export function parsePattern(input) {
19
+ const positions = input.trim().split(/\s+/).filter(Boolean);
20
+ return positions.map((pos) => pos
21
+ .split(/[,|]/)
22
+ .map((s) => s.trim())
23
+ .filter(Boolean));
24
+ }
25
+ export function renderRulesFile(set) {
26
+ const body = set.rules
27
+ .map((r) => ` prefixRule({\n` +
28
+ ` pattern: ${JSON.stringify(r.pattern)},\n` +
29
+ ` decision: ${JSON.stringify(r.decision)},\n` +
30
+ ` justification: ${JSON.stringify(r.justification)},\n` +
31
+ ` }),`)
32
+ .join("\n");
33
+ return (`import { defineCommandRules, prefixRule } from "@keel_flow/core";\n\n` +
34
+ `export default defineCommandRules(\n${body}\n);\n`);
35
+ }
36
+ export function patternLabel(pattern) {
37
+ return pattern.map((p) => p.join("|")).join(" ");
38
+ }
39
+ export async function runRulesList(opts) {
40
+ const set = await loadCommandRules(opts.cwd);
41
+ if (set.rules.length === 0) {
42
+ process.stdout.write(pc.dim(`No command rules. Add one with \`keel rules add "<pattern>" --justification "..."\`.\n`));
43
+ return;
44
+ }
45
+ for (const r of set.rules) {
46
+ const tag = r.decision === "forbidden" ? pc.red(r.decision) : pc.yellow(r.decision);
47
+ process.stdout.write(` ${pc.bold(patternLabel(r.pattern))} [${tag}]\n`);
48
+ process.stdout.write(` ${r.justification}\n`);
49
+ }
50
+ process.stdout.write(`\n${set.rules.length} rule(s) in ${RULES_PATH}\n`);
51
+ }
52
+ export async function runRulesAdd(opts) {
53
+ const set = await loadCommandRules(opts.cwd);
54
+ const rule = prefixRule({
55
+ pattern: parsePattern(opts.pattern),
56
+ decision: opts.decision,
57
+ justification: opts.justification,
58
+ });
59
+ const next = { rules: [...set.rules, rule] };
60
+ const targetPath = rulesFilePath(opts.cwd);
61
+ mkdirSync(dirname(targetPath), { recursive: true });
62
+ writeFileSync(targetPath, renderRulesFile(next), "utf-8");
63
+ process.stdout.write(pc.green(`Added ${rule.decision} rule for \`${patternLabel(rule.pattern)}\` to ${RULES_PATH}\n`));
64
+ }
65
+ //# sourceMappingURL=rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { type TelemetryEmitter } from "@keel_flow/telemetry";
2
+ export interface CreateCliEmitterOptions {
3
+ command: string;
4
+ disable?: boolean;
5
+ cwd?: string;
6
+ }
7
+ export interface CliEmitterHandle {
8
+ emitter: TelemetryEmitter | undefined;
9
+ sessionId: string;
10
+ }
11
+ export declare function createCliEmitter(opts: CreateCliEmitterOptions): CliEmitterHandle;
12
+ //# sourceMappingURL=telemetry-helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-helper.d.ts","sourceRoot":"","sources":["../src/telemetry-helper.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;CACnB;AAiBD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,GAAG,gBAAgB,CA4BhF"}
@@ -0,0 +1,40 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { join } from "node:path";
3
+ import { createApiForwarder, createEmitter, } from "@keel_flow/telemetry";
4
+ const TRIGGER_KINDS = new Set(["user", "schedule", "event", "test"]);
5
+ function resolveTriggeredBy() {
6
+ const raw = process.env["KEEL_TRIGGER_KIND"];
7
+ if (raw && TRIGGER_KINDS.has(raw)) {
8
+ return { kind: raw };
9
+ }
10
+ return { kind: "user" };
11
+ }
12
+ function isUuid(value) {
13
+ if (!value)
14
+ return false;
15
+ return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(value);
16
+ }
17
+ export function createCliEmitter(opts) {
18
+ const sessionId = randomUUID();
19
+ const cwd = opts.cwd ?? process.cwd();
20
+ const disabled = opts.disable ?? process.env["KEEL_TELEMETRY"] === "off";
21
+ if (disabled) {
22
+ return { emitter: undefined, sessionId };
23
+ }
24
+ const jsonlPath = join(cwd, ".keel", "sessions", `${sessionId}.jsonl`);
25
+ const workspaceIdRaw = process.env["KEEL_WORKSPACE_ID"];
26
+ const workspaceId = isUuid(workspaceIdRaw) ? workspaceIdRaw : null;
27
+ const apiUrl = process.env["KEEL_API_URL"];
28
+ const onForward = apiUrl && workspaceId
29
+ ? createApiForwarder({ apiUrl, workspaceId })
30
+ : undefined;
31
+ const emitter = createEmitter({
32
+ sessionId,
33
+ workspaceId,
34
+ triggeredBy: resolveTriggeredBy(),
35
+ jsonlPath,
36
+ ...(onForward ? { onForward } : {}),
37
+ });
38
+ return { emitter, sessionId };
39
+ }
40
+ //# sourceMappingURL=telemetry-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-helper.js","sourceRoot":"","sources":["../src/telemetry-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,kBAAkB,EAClB,aAAa,GAGd,MAAM,sBAAsB,CAAC;AAa9B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAErE,SAAS,kBAAkB;IACzB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC7C,IAAI,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,IAAI,EAAE,GAA0B,EAAE,CAAC;IAC9C,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,MAAM,CAAC,KAAyB;IACvC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,OAAO,iEAAiE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAA6B;IAC5D,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEtC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,KAAK,CAAC;IACzE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IAC3C,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,SAAS,QAAQ,CAAC,CAAC;IACvE,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAE3C,MAAM,SAAS,GACb,MAAM,IAAI,WAAW;QACnB,CAAC,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAC7C,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,OAAO,GAAG,aAAa,CAAC;QAC5B,SAAS;QACT,WAAW;QACX,WAAW,EAAE,kBAAkB,EAAE;QACjC,SAAS;QACT,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpC,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC"}
package/dist/up.d.ts ADDED
@@ -0,0 +1,97 @@
1
+ import { type ChildProcess } from "child_process";
2
+ export declare function parseDotEnvContent(content: string): Record<string, string>;
3
+ export declare function loadDotEnv(repoRoot: string): void;
4
+ export declare function warnMissingKeys(): void;
5
+ export declare const DEFAULTS: {
6
+ readonly API_PORT: 3001;
7
+ readonly UI_PORT: 3000;
8
+ readonly DB_PORT: 5432;
9
+ readonly DB_USER: "keel";
10
+ readonly DB_PASSWORD: "keel_local";
11
+ readonly DB_NAME: "keel";
12
+ readonly DOCKER_CONTAINER: "keel-postgres-up";
13
+ readonly HEALTH_TIMEOUT_MS: 60000;
14
+ readonly HEALTH_POLL_INTERVAL_MS: 1000;
15
+ };
16
+ export interface UpConfig {
17
+ apiPort: number;
18
+ uiPort: number;
19
+ dbPort: number;
20
+ dbUser: string;
21
+ dbPassword: string;
22
+ dbName: string;
23
+ databaseUrl: string;
24
+ apiUrl: string;
25
+ uiUrl: string;
26
+ dockerContainer: string;
27
+ repoRoot: string;
28
+ }
29
+ export interface ParsedPgCredentials {
30
+ user?: string | undefined;
31
+ password?: string | undefined;
32
+ database?: string | undefined;
33
+ }
34
+ export declare function parsePgConnectionString(connectionString: string): ParsedPgCredentials;
35
+ export declare function resolveConfig(): UpConfig;
36
+ export declare function checkWorkspacePreflight(repoRoot: string): void;
37
+ export type DockerStatus = "running" | "not-running" | "unavailable";
38
+ export declare function detectDocker(): DockerStatus;
39
+ export declare function hasExternalDb(): boolean;
40
+ export declare function preflightFail(reason: string): never;
41
+ export declare function checkPreflight(): "docker" | "external-db";
42
+ export type Spawner = (cmd: string, args: string[], opts: {
43
+ env: NodeJS.ProcessEnv;
44
+ cwd?: string;
45
+ }) => ChildProcess;
46
+ export declare const defaultSpawner: Spawner;
47
+ export declare function startPostgres(config: UpConfig, spawner?: Spawner): Promise<void>;
48
+ export declare function isPortFree(port: number): Promise<boolean>;
49
+ export declare function assertPortsFree(ports: Array<{
50
+ port: number;
51
+ label: string;
52
+ envVar: string;
53
+ }>): Promise<void>;
54
+ export declare function pollUrl(url: string, timeoutMs?: number, intervalMs?: number, waitingLabel?: string): Promise<void>;
55
+ export declare function waitForPostgres(config: UpConfig, timeoutMs?: number): Promise<void>;
56
+ export declare function buildApiEnv(config: UpConfig): NodeJS.ProcessEnv;
57
+ export declare function buildUiEnv(config: UpConfig): NodeJS.ProcessEnv;
58
+ export declare function runMigrationsViaScript(config: UpConfig, spawner?: Spawner): Promise<void>;
59
+ export declare function openBrowser(url: string): void;
60
+ export declare const KEEL_API_SERVICE = "keel-api";
61
+ export declare function detectKeelApi(apiUrl: string, timeoutMs?: number): Promise<boolean>;
62
+ export interface UpServices {
63
+ dockerContainer: string | null;
64
+ apiProc: ChildProcess | null;
65
+ uiProc: ChildProcess | null;
66
+ }
67
+ export declare function makeTeardown(services: UpServices, stopContainer: (name: string) => void, apiPort?: number): () => Promise<void>;
68
+ export declare function runUp(opts?: {
69
+ config?: UpConfig;
70
+ spawner?: Spawner;
71
+ skipBrowser?: boolean;
72
+ skipLogin?: boolean;
73
+ }): Promise<void>;
74
+ export interface KeelStatus {
75
+ apiUp: boolean;
76
+ uiUp: boolean;
77
+ dbStatus: "running" | "exited" | "absent";
78
+ }
79
+ export declare function probeStatus(config: UpConfig): Promise<KeelStatus>;
80
+ export declare function runStatus(opts?: {
81
+ config?: UpConfig;
82
+ }): Promise<boolean>;
83
+ export interface DownResult {
84
+ wasRunning: boolean;
85
+ warnings: string[];
86
+ }
87
+ export declare function runDown(opts?: {
88
+ config?: UpConfig;
89
+ }): Promise<DownResult>;
90
+ export declare function runOpen(opts?: {
91
+ config?: UpConfig;
92
+ }): Promise<boolean>;
93
+ export declare function runRestart(opts?: {
94
+ config?: UpConfig;
95
+ skipBrowser?: boolean;
96
+ }): Promise<void>;
97
+ //# sourceMappingURL=up.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../src/up.ts"],"names":[],"mappings":"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"}