shreni 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/ARCHITECTURE.md +260 -0
- package/LICENSE +201 -0
- package/README.md +519 -0
- package/TRADEMARK.md +97 -0
- package/dist/agents/parikshaka.d.ts +11 -0
- package/dist/agents/parikshaka.d.ts.map +1 -0
- package/dist/agents/parikshaka.js +80 -0
- package/dist/agents/parikshaka.js.map +1 -0
- package/dist/agents/providers/claude.d.ts +3 -0
- package/dist/agents/providers/claude.d.ts.map +1 -0
- package/dist/agents/providers/claude.js +100 -0
- package/dist/agents/providers/claude.js.map +1 -0
- package/dist/agents/providers/codex.d.ts +3 -0
- package/dist/agents/providers/codex.d.ts.map +1 -0
- package/dist/agents/providers/codex.js +123 -0
- package/dist/agents/providers/codex.js.map +1 -0
- package/dist/agents/providers/gemini.d.ts +3 -0
- package/dist/agents/providers/gemini.d.ts.map +1 -0
- package/dist/agents/providers/gemini.js +77 -0
- package/dist/agents/providers/gemini.js.map +1 -0
- package/dist/agents/providers/index.d.ts +6 -0
- package/dist/agents/providers/index.d.ts.map +1 -0
- package/dist/agents/providers/index.js +35 -0
- package/dist/agents/providers/index.js.map +1 -0
- package/dist/agents/providers/registry.d.ts +20 -0
- package/dist/agents/providers/registry.d.ts.map +1 -0
- package/dist/agents/providers/registry.js +91 -0
- package/dist/agents/providers/registry.js.map +1 -0
- package/dist/agents/providers/types.d.ts +42 -0
- package/dist/agents/providers/types.d.ts.map +1 -0
- package/dist/agents/providers/types.js +61 -0
- package/dist/agents/providers/types.js.map +1 -0
- package/dist/agents/runner.d.ts +6 -0
- package/dist/agents/runner.d.ts.map +1 -0
- package/dist/agents/runner.js +159 -0
- package/dist/agents/runner.js.map +1 -0
- package/dist/agents/silpi.d.ts +3 -0
- package/dist/agents/silpi.d.ts.map +1 -0
- package/dist/agents/silpi.js +101 -0
- package/dist/agents/silpi.js.map +1 -0
- package/dist/agents/viharapala.d.ts +5 -0
- package/dist/agents/viharapala.d.ts.map +1 -0
- package/dist/agents/viharapala.js +128 -0
- package/dist/agents/viharapala.js.map +1 -0
- package/dist/cli/agents.d.ts +14 -0
- package/dist/cli/agents.d.ts.map +1 -0
- package/dist/cli/agents.js +47 -0
- package/dist/cli/agents.js.map +1 -0
- package/dist/cli/detect-toolchain.d.ts +10 -0
- package/dist/cli/detect-toolchain.d.ts.map +1 -0
- package/dist/cli/detect-toolchain.js +77 -0
- package/dist/cli/detect-toolchain.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +342 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init-kshetra.d.ts +59 -0
- package/dist/cli/init-kshetra.d.ts.map +1 -0
- package/dist/cli/init-kshetra.js +531 -0
- package/dist/cli/init-kshetra.js.map +1 -0
- package/dist/cli/list.d.ts +11 -0
- package/dist/cli/list.d.ts.map +1 -0
- package/dist/cli/list.js +45 -0
- package/dist/cli/list.js.map +1 -0
- package/dist/cli/logs.d.ts +20 -0
- package/dist/cli/logs.d.ts.map +1 -0
- package/dist/cli/logs.js +144 -0
- package/dist/cli/logs.js.map +1 -0
- package/dist/cli/migrate.d.ts +8 -0
- package/dist/cli/migrate.d.ts.map +1 -0
- package/dist/cli/migrate.js +116 -0
- package/dist/cli/migrate.js.map +1 -0
- package/dist/cli/pause.d.ts +24 -0
- package/dist/cli/pause.d.ts.map +1 -0
- package/dist/cli/pause.js +41 -0
- package/dist/cli/pause.js.map +1 -0
- package/dist/cli/phalaka-autostart.d.ts +11 -0
- package/dist/cli/phalaka-autostart.d.ts.map +1 -0
- package/dist/cli/phalaka-autostart.js +28 -0
- package/dist/cli/phalaka-autostart.js.map +1 -0
- package/dist/cli/phalaka-server.d.ts +2 -0
- package/dist/cli/phalaka-server.d.ts.map +1 -0
- package/dist/cli/phalaka-server.js +20 -0
- package/dist/cli/phalaka-server.js.map +1 -0
- package/dist/cli/phalaka.d.ts +30 -0
- package/dist/cli/phalaka.d.ts.map +1 -0
- package/dist/cli/phalaka.js +60 -0
- package/dist/cli/phalaka.js.map +1 -0
- package/dist/cli/pid.d.ts +9 -0
- package/dist/cli/pid.d.ts.map +1 -0
- package/dist/cli/pid.js +66 -0
- package/dist/cli/pid.js.map +1 -0
- package/dist/cli/provider-preflight.d.ts +11 -0
- package/dist/cli/provider-preflight.d.ts.map +1 -0
- package/dist/cli/provider-preflight.js +70 -0
- package/dist/cli/provider-preflight.js.map +1 -0
- package/dist/cli/register.d.ts +8 -0
- package/dist/cli/register.d.ts.map +1 -0
- package/dist/cli/register.js +34 -0
- package/dist/cli/register.js.map +1 -0
- package/dist/cli/run.d.ts +3 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +40 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/start.d.ts +11 -0
- package/dist/cli/start.d.ts.map +1 -0
- package/dist/cli/start.js +26 -0
- package/dist/cli/start.js.map +1 -0
- package/dist/cli/status.d.ts +39 -0
- package/dist/cli/status.d.ts.map +1 -0
- package/dist/cli/status.js +207 -0
- package/dist/cli/status.js.map +1 -0
- package/dist/cli/stop.d.ts +13 -0
- package/dist/cli/stop.d.ts.map +1 -0
- package/dist/cli/stop.js +18 -0
- package/dist/cli/stop.js.map +1 -0
- package/dist/cli/sync.d.ts +6 -0
- package/dist/cli/sync.d.ts.map +1 -0
- package/dist/cli/sync.js +31 -0
- package/dist/cli/sync.js.map +1 -0
- package/dist/cli/tail.d.ts +6 -0
- package/dist/cli/tail.d.ts.map +1 -0
- package/dist/cli/tail.js +170 -0
- package/dist/cli/tail.js.map +1 -0
- package/dist/cli/telemetry.d.ts +2 -0
- package/dist/cli/telemetry.d.ts.map +1 -0
- package/dist/cli/telemetry.js +42 -0
- package/dist/cli/telemetry.js.map +1 -0
- package/dist/cli/verify-hooks.d.ts +12 -0
- package/dist/cli/verify-hooks.d.ts.map +1 -0
- package/dist/cli/verify-hooks.js +38 -0
- package/dist/cli/verify-hooks.js.map +1 -0
- package/dist/cli/worker.d.ts +2 -0
- package/dist/cli/worker.d.ts.map +1 -0
- package/dist/cli/worker.js +211 -0
- package/dist/cli/worker.js.map +1 -0
- package/dist/kshetra/config.d.ts +64 -0
- package/dist/kshetra/config.d.ts.map +1 -0
- package/dist/kshetra/config.js +173 -0
- package/dist/kshetra/config.js.map +1 -0
- package/dist/kshetra/registry.d.ts +5 -0
- package/dist/kshetra/registry.d.ts.map +1 -0
- package/dist/kshetra/registry.js +69 -0
- package/dist/kshetra/registry.js.map +1 -0
- package/dist/kshetra/state.d.ts +57 -0
- package/dist/kshetra/state.d.ts.map +1 -0
- package/dist/kshetra/state.js +195 -0
- package/dist/kshetra/state.js.map +1 -0
- package/dist/kshetra/toolchain.d.ts +20 -0
- package/dist/kshetra/toolchain.d.ts.map +1 -0
- package/dist/kshetra/toolchain.js +146 -0
- package/dist/kshetra/toolchain.js.map +1 -0
- package/dist/phalaka/api.d.ts +123 -0
- package/dist/phalaka/api.d.ts.map +1 -0
- package/dist/phalaka/api.js +196 -0
- package/dist/phalaka/api.js.map +1 -0
- package/dist/phalaka/beads-read.d.ts +49 -0
- package/dist/phalaka/beads-read.d.ts.map +1 -0
- package/dist/phalaka/beads-read.js +174 -0
- package/dist/phalaka/beads-read.js.map +1 -0
- package/dist/phalaka/pid.d.ts +6 -0
- package/dist/phalaka/pid.d.ts.map +1 -0
- package/dist/phalaka/pid.js +48 -0
- package/dist/phalaka/pid.js.map +1 -0
- package/dist/phalaka/server.d.ts +10 -0
- package/dist/phalaka/server.d.ts.map +1 -0
- package/dist/phalaka/server.js +30 -0
- package/dist/phalaka/server.js.map +1 -0
- package/dist/phalaka/token.d.ts +5 -0
- package/dist/phalaka/token.d.ts.map +1 -0
- package/dist/phalaka/token.js +40 -0
- package/dist/phalaka/token.js.map +1 -0
- package/dist/phalaka/ui.d.ts +15 -0
- package/dist/phalaka/ui.d.ts.map +1 -0
- package/dist/phalaka/ui.js +233 -0
- package/dist/phalaka/ui.js.map +1 -0
- package/dist/sthapathi/activity-log.d.ts +68 -0
- package/dist/sthapathi/activity-log.d.ts.map +1 -0
- package/dist/sthapathi/activity-log.js +57 -0
- package/dist/sthapathi/activity-log.js.map +1 -0
- package/dist/sthapathi/beads.d.ts +27 -0
- package/dist/sthapathi/beads.d.ts.map +1 -0
- package/dist/sthapathi/beads.js +153 -0
- package/dist/sthapathi/beads.js.map +1 -0
- package/dist/sthapathi/branch.d.ts +5 -0
- package/dist/sthapathi/branch.d.ts.map +1 -0
- package/dist/sthapathi/branch.js +20 -0
- package/dist/sthapathi/branch.js.map +1 -0
- package/dist/sthapathi/dispatch.d.ts +14 -0
- package/dist/sthapathi/dispatch.d.ts.map +1 -0
- package/dist/sthapathi/dispatch.js +326 -0
- package/dist/sthapathi/dispatch.js.map +1 -0
- package/dist/sthapathi/errors.d.ts +27 -0
- package/dist/sthapathi/errors.d.ts.map +1 -0
- package/dist/sthapathi/errors.js +174 -0
- package/dist/sthapathi/errors.js.map +1 -0
- package/dist/sthapathi/gh.d.ts +19 -0
- package/dist/sthapathi/gh.d.ts.map +1 -0
- package/dist/sthapathi/gh.js +69 -0
- package/dist/sthapathi/gh.js.map +1 -0
- package/dist/sthapathi/git.d.ts +41 -0
- package/dist/sthapathi/git.d.ts.map +1 -0
- package/dist/sthapathi/git.js +199 -0
- package/dist/sthapathi/git.js.map +1 -0
- package/dist/sthapathi/guard.d.ts +24 -0
- package/dist/sthapathi/guard.d.ts.map +1 -0
- package/dist/sthapathi/guard.js +64 -0
- package/dist/sthapathi/guard.js.map +1 -0
- package/dist/sthapathi/health.d.ts +23 -0
- package/dist/sthapathi/health.d.ts.map +1 -0
- package/dist/sthapathi/health.js +142 -0
- package/dist/sthapathi/health.js.map +1 -0
- package/dist/sthapathi/index.d.ts +21 -0
- package/dist/sthapathi/index.d.ts.map +1 -0
- package/dist/sthapathi/index.js +88 -0
- package/dist/sthapathi/index.js.map +1 -0
- package/dist/sthapathi/lifecycle.d.ts +7 -0
- package/dist/sthapathi/lifecycle.d.ts.map +1 -0
- package/dist/sthapathi/lifecycle.js +43 -0
- package/dist/sthapathi/lifecycle.js.map +1 -0
- package/dist/sthapathi/lint.d.ts +8 -0
- package/dist/sthapathi/lint.d.ts.map +1 -0
- package/dist/sthapathi/lint.js +33 -0
- package/dist/sthapathi/lint.js.map +1 -0
- package/dist/sthapathi/merge.d.ts +18 -0
- package/dist/sthapathi/merge.d.ts.map +1 -0
- package/dist/sthapathi/merge.js +259 -0
- package/dist/sthapathi/merge.js.map +1 -0
- package/dist/sthapathi/notifications.d.ts +14 -0
- package/dist/sthapathi/notifications.d.ts.map +1 -0
- package/dist/sthapathi/notifications.js +57 -0
- package/dist/sthapathi/notifications.js.map +1 -0
- package/dist/sthapathi/parikshaka-dispatch.d.ts +12 -0
- package/dist/sthapathi/parikshaka-dispatch.d.ts.map +1 -0
- package/dist/sthapathi/parikshaka-dispatch.js +0 -0
- package/dist/sthapathi/parikshaka-dispatch.js.map +1 -0
- package/dist/sthapathi/pickup.d.ts +13 -0
- package/dist/sthapathi/pickup.d.ts.map +1 -0
- package/dist/sthapathi/pickup.js +144 -0
- package/dist/sthapathi/pickup.js.map +1 -0
- package/dist/sthapathi/recover.d.ts +16 -0
- package/dist/sthapathi/recover.d.ts.map +1 -0
- package/dist/sthapathi/recover.js +149 -0
- package/dist/sthapathi/recover.js.map +1 -0
- package/dist/sthapathi/retry.d.ts +11 -0
- package/dist/sthapathi/retry.d.ts.map +1 -0
- package/dist/sthapathi/retry.js +42 -0
- package/dist/sthapathi/retry.js.map +1 -0
- package/dist/sthapathi/self-heal.d.ts +19 -0
- package/dist/sthapathi/self-heal.d.ts.map +1 -0
- package/dist/sthapathi/self-heal.js +46 -0
- package/dist/sthapathi/self-heal.js.map +1 -0
- package/dist/sthapathi/types.d.ts +56 -0
- package/dist/sthapathi/types.d.ts.map +1 -0
- package/dist/sthapathi/types.js +4 -0
- package/dist/sthapathi/types.js.map +1 -0
- package/dist/sthapathi/watchdog.d.ts +27 -0
- package/dist/sthapathi/watchdog.d.ts.map +1 -0
- package/dist/sthapathi/watchdog.js +145 -0
- package/dist/sthapathi/watchdog.js.map +1 -0
- package/dist/telemetry/telemetry.d.ts +42 -0
- package/dist/telemetry/telemetry.d.ts.map +1 -0
- package/dist/telemetry/telemetry.js +189 -0
- package/dist/telemetry/telemetry.js.map +1 -0
- package/dist/test-setup.d.ts +2 -0
- package/dist/test-setup.d.ts.map +1 -0
- package/dist/test-setup.js +16 -0
- package/dist/test-setup.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface DetectedStack {
|
|
2
|
+
language: string;
|
|
3
|
+
packageManager?: string;
|
|
4
|
+
buildCommand?: string;
|
|
5
|
+
testRunner?: string;
|
|
6
|
+
lintCommand?: string;
|
|
7
|
+
unknown: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function detectToolchain(repoPath: string): DetectedStack;
|
|
10
|
+
//# sourceMappingURL=detect-toolchain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-toolchain.d.ts","sourceRoot":"","sources":["../../src/cli/detect-toolchain.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,OAAO,EAAE,OAAO,CAAC;CAClB;AAoDD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAoB/D"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.detectToolchain = detectToolchain;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
function readJson(path) {
|
|
7
|
+
try {
|
|
8
|
+
return JSON.parse((0, fs_1.readFileSync)(path, 'utf8'));
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
// pnpm/npm/yarn from package.json's `packageManager` field, else the lockfile,
|
|
15
|
+
// else pnpm (the Shreni default).
|
|
16
|
+
function detectPackageManager(repoPath, pkg) {
|
|
17
|
+
const declared = typeof pkg['packageManager'] === 'string' ? pkg['packageManager'] : '';
|
|
18
|
+
const name = declared.split('@')[0].trim();
|
|
19
|
+
if (name === 'pnpm' || name === 'npm' || name === 'yarn')
|
|
20
|
+
return name;
|
|
21
|
+
if ((0, fs_1.existsSync)((0, path_1.join)(repoPath, 'pnpm-lock.yaml')))
|
|
22
|
+
return 'pnpm';
|
|
23
|
+
if ((0, fs_1.existsSync)((0, path_1.join)(repoPath, 'yarn.lock')))
|
|
24
|
+
return 'yarn';
|
|
25
|
+
if ((0, fs_1.existsSync)((0, path_1.join)(repoPath, 'package-lock.json')))
|
|
26
|
+
return 'npm';
|
|
27
|
+
return 'pnpm';
|
|
28
|
+
}
|
|
29
|
+
function hasDep(pkg, dep) {
|
|
30
|
+
const deps = (pkg['dependencies'] ?? {});
|
|
31
|
+
const devDeps = (pkg['devDependencies'] ?? {});
|
|
32
|
+
return dep in deps || dep in devDeps;
|
|
33
|
+
}
|
|
34
|
+
function detectNode(repoPath, pkg) {
|
|
35
|
+
const packageManager = detectPackageManager(repoPath, pkg);
|
|
36
|
+
const hasTs = (0, fs_1.existsSync)((0, path_1.join)(repoPath, 'tsconfig.json')) || hasDep(pkg, 'typescript');
|
|
37
|
+
const language = hasTs ? 'typescript' : 'javascript';
|
|
38
|
+
const scripts = (pkg['scripts'] ?? {});
|
|
39
|
+
// Point at the repo's own script when it exists (so a `test` script running
|
|
40
|
+
// jest becomes `pnpm test`, not a guessed `vitest`); an empty string means the
|
|
41
|
+
// repo has no such script, so that gate is explicitly skipped.
|
|
42
|
+
const cmd = (name) => (typeof scripts[name] === 'string' ? `${packageManager} ${name}` : '');
|
|
43
|
+
return {
|
|
44
|
+
language,
|
|
45
|
+
packageManager,
|
|
46
|
+
buildCommand: cmd('build'),
|
|
47
|
+
testRunner: cmd('test'),
|
|
48
|
+
lintCommand: cmd('lint'),
|
|
49
|
+
unknown: false,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
// Detect the toolchain from marker files in repoPath. Non-node ecosystems return
|
|
53
|
+
// just the language; their per-language command defaults come from the toolchain
|
|
54
|
+
// resolver, so the config stays minimal and drift-free.
|
|
55
|
+
function detectToolchain(repoPath) {
|
|
56
|
+
if ((0, fs_1.existsSync)((0, path_1.join)(repoPath, 'package.json'))) {
|
|
57
|
+
const pkg = readJson((0, path_1.join)(repoPath, 'package.json'));
|
|
58
|
+
if (pkg)
|
|
59
|
+
return detectNode(repoPath, pkg);
|
|
60
|
+
}
|
|
61
|
+
if ((0, fs_1.existsSync)((0, path_1.join)(repoPath, 'pyproject.toml')) || (0, fs_1.existsSync)((0, path_1.join)(repoPath, 'requirements.txt'))) {
|
|
62
|
+
return { language: 'python', unknown: false };
|
|
63
|
+
}
|
|
64
|
+
if ((0, fs_1.existsSync)((0, path_1.join)(repoPath, 'go.mod'))) {
|
|
65
|
+
return { language: 'go', unknown: false };
|
|
66
|
+
}
|
|
67
|
+
if ((0, fs_1.existsSync)((0, path_1.join)(repoPath, 'Cargo.toml'))) {
|
|
68
|
+
return { language: 'rust', unknown: false };
|
|
69
|
+
}
|
|
70
|
+
if ((0, fs_1.existsSync)((0, path_1.join)(repoPath, 'pom.xml')) || (0, fs_1.existsSync)((0, path_1.join)(repoPath, 'build.gradle'))) {
|
|
71
|
+
return { language: 'java', unknown: false };
|
|
72
|
+
}
|
|
73
|
+
// Unknown ecosystem: write empty commands (explicit skip) and let init print
|
|
74
|
+
// guidance on which fields to fill.
|
|
75
|
+
return { language: 'unknown', buildCommand: '', testRunner: '', lintCommand: '', unknown: true };
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=detect-toolchain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-toolchain.js","sourceRoot":"","sources":["../../src/cli/detect-toolchain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const start_1 = require("./start");
|
|
5
|
+
const stop_1 = require("./stop");
|
|
6
|
+
const status_1 = require("./status");
|
|
7
|
+
const registry_1 = require("../kshetra/registry");
|
|
8
|
+
const pause_1 = require("./pause");
|
|
9
|
+
const agents_1 = require("./agents");
|
|
10
|
+
const logs_1 = require("./logs");
|
|
11
|
+
const run_1 = require("./run");
|
|
12
|
+
const sync_1 = require("./sync");
|
|
13
|
+
const init_kshetra_1 = require("./init-kshetra");
|
|
14
|
+
const register_1 = require("./register");
|
|
15
|
+
const migrate_1 = require("./migrate");
|
|
16
|
+
const verify_hooks_1 = require("./verify-hooks");
|
|
17
|
+
const list_1 = require("./list");
|
|
18
|
+
const phalaka_1 = require("./phalaka");
|
|
19
|
+
const phalaka_autostart_1 = require("./phalaka-autostart");
|
|
20
|
+
const tail_1 = require("./tail");
|
|
21
|
+
const telemetry_1 = require("./telemetry");
|
|
22
|
+
const telemetry_2 = require("../telemetry/telemetry");
|
|
23
|
+
function parseFlag(argv, flag) {
|
|
24
|
+
const idx = argv.indexOf(flag);
|
|
25
|
+
return idx >= 0 ? argv[idx + 1] : undefined;
|
|
26
|
+
}
|
|
27
|
+
const [, , command, ...args] = process.argv;
|
|
28
|
+
switch (command) {
|
|
29
|
+
case 'start': {
|
|
30
|
+
const id = parseFlag(args, '--kshetra');
|
|
31
|
+
const registry = (0, registry_1.loadRegistry)();
|
|
32
|
+
const targets = id ? registry.filter(k => k.id === id) : registry;
|
|
33
|
+
if (registry.length === 0) {
|
|
34
|
+
console.error('No kshetras registered. Run `shreni register` first.');
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
else if (id && targets.length === 0) {
|
|
38
|
+
console.error(`Kshetra not found: ${id}`);
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
for (const k of targets) {
|
|
43
|
+
const result = (0, start_1.startWorker)(k.id);
|
|
44
|
+
if (result.status === 'already_running') {
|
|
45
|
+
console.log(`${k.id}: already running (pid ${result.pid})`);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
console.log(`${k.id}: started (pid ${result.pid})`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// Retention signal (yds.5) — opt-in + anonymous, a no-op unless enabled.
|
|
52
|
+
(0, telemetry_2.emit)('session_start', { kshetras: targets.length });
|
|
53
|
+
const dashboard = (0, phalaka_autostart_1.autoStartPhalaka)(args);
|
|
54
|
+
if (dashboard.status === 'already_running') {
|
|
55
|
+
console.log(`phalaka: already running (pid ${dashboard.pid})`);
|
|
56
|
+
console.log(`Dashboard: ${dashboard.url}`);
|
|
57
|
+
}
|
|
58
|
+
else if (dashboard.status === 'started') {
|
|
59
|
+
console.log(`phalaka: started (pid ${dashboard.pid})`);
|
|
60
|
+
console.log(`Dashboard: ${dashboard.url}`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
case 'stop': {
|
|
66
|
+
const id = parseFlag(args, '--kshetra');
|
|
67
|
+
const registry = (0, registry_1.loadRegistry)();
|
|
68
|
+
const targets = id ? registry.filter(k => k.id === id) : registry;
|
|
69
|
+
if (id && targets.length === 0) {
|
|
70
|
+
console.error(`Kshetra not found: ${id}`);
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
for (const k of targets) {
|
|
75
|
+
const result = (0, stop_1.stopWorker)(k.id);
|
|
76
|
+
if (result.status === 'stopped') {
|
|
77
|
+
console.log(`${k.id}: stopped (pid ${result.pid})`);
|
|
78
|
+
}
|
|
79
|
+
else if (result.status === 'stale_pid_cleared') {
|
|
80
|
+
console.log(`${k.id}: was not running (stale PID file cleared)`);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
console.log(`${k.id}: not running`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
const dashboard = (0, phalaka_autostart_1.autoStopPhalaka)(args);
|
|
87
|
+
if (dashboard.status === 'stopped') {
|
|
88
|
+
console.log(`phalaka: stopped (pid ${dashboard.pid})`);
|
|
89
|
+
}
|
|
90
|
+
else if (dashboard.status === 'stale_pid_cleared') {
|
|
91
|
+
console.log('phalaka: was not running (stale PID file cleared)');
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
case 'status': {
|
|
97
|
+
const all = args.includes('--all');
|
|
98
|
+
(0, status_1.runStatus)({ all, cwd: process.cwd() }).catch((err) => {
|
|
99
|
+
console.error(err.message);
|
|
100
|
+
process.exit(1);
|
|
101
|
+
});
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
case 'pause': {
|
|
105
|
+
const id = parseFlag(args, '--kshetra');
|
|
106
|
+
if (!id) {
|
|
107
|
+
console.error('Usage: shreni pause --kshetra <id>');
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
const result = (0, pause_1.pauseKshetraById)(id);
|
|
112
|
+
if (result.status === 'not_found') {
|
|
113
|
+
console.error(`Kshetra not found: ${id}`);
|
|
114
|
+
process.exit(1);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
console.log(`Kshetra "${id}" paused — daemon will stop picking tasks on next cycle`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
case 'resume': {
|
|
123
|
+
const id = parseFlag(args, '--kshetra');
|
|
124
|
+
if (!id) {
|
|
125
|
+
console.error('Usage: shreni resume --kshetra <id>');
|
|
126
|
+
process.exit(1);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
const result = (0, pause_1.resumeKshetraById)(id);
|
|
130
|
+
if (result.status === 'not_found') {
|
|
131
|
+
console.error(`Kshetra not found: ${id}`);
|
|
132
|
+
process.exit(1);
|
|
133
|
+
}
|
|
134
|
+
else if (result.status === 'resumed_self_heal') {
|
|
135
|
+
console.log(`Kshetra "${id}" resumed — worker is recovering the hung agent in-process`);
|
|
136
|
+
console.log('(aborting it, reconciling the work tree, and re-arming pickup).');
|
|
137
|
+
}
|
|
138
|
+
else if (result.status === 'resumed_needs_start') {
|
|
139
|
+
console.log(`Kshetra "${id}" un-paused, but no worker is running to recover the`);
|
|
140
|
+
console.log('stuck bead. Start it to reconcile and resume work:');
|
|
141
|
+
console.log(` ${result.hint}`);
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
console.log(`Kshetra "${id}" resumed — daemon will pick tasks on next cycle`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
case 'agents': {
|
|
150
|
+
(0, agents_1.runAgents)().catch((err) => {
|
|
151
|
+
console.error(err.message);
|
|
152
|
+
process.exit(1);
|
|
153
|
+
});
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
case 'logs': {
|
|
157
|
+
const kshetraId = parseFlag(args, '--kshetra');
|
|
158
|
+
const beadId = parseFlag(args, '--bead');
|
|
159
|
+
const all = args.includes('--all');
|
|
160
|
+
(0, logs_1.runLogs)({ kshetraId, beadId, all }).catch((err) => {
|
|
161
|
+
console.error(err.message);
|
|
162
|
+
process.exit(1);
|
|
163
|
+
});
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
case 'run': {
|
|
167
|
+
const id = parseFlag(args, '--kshetra');
|
|
168
|
+
if (!id) {
|
|
169
|
+
console.error('Usage: shreni run --kshetra <id>');
|
|
170
|
+
process.exit(1);
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
(0, run_1.runRun)(id).catch((err) => {
|
|
174
|
+
console.error(err.message);
|
|
175
|
+
process.exit(1);
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
case 'sync': {
|
|
181
|
+
const kshetraId = parseFlag(args, '--kshetra');
|
|
182
|
+
const all = args.includes('--all');
|
|
183
|
+
(0, sync_1.runSync)({ kshetraId, all }).catch((err) => {
|
|
184
|
+
console.error(err.message);
|
|
185
|
+
process.exit(1);
|
|
186
|
+
});
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
189
|
+
case 'init-kshetra': {
|
|
190
|
+
const slug = parseFlag(args, '--slug');
|
|
191
|
+
const path = parseFlag(args, '--path');
|
|
192
|
+
const org = parseFlag(args, '--org');
|
|
193
|
+
const language = parseFlag(args, '--language');
|
|
194
|
+
const beadsPath = parseFlag(args, '--beads-path');
|
|
195
|
+
const provider = parseFlag(args, '--provider');
|
|
196
|
+
const model = parseFlag(args, '--model');
|
|
197
|
+
const mergePolicy = parseFlag(args, '--merge-policy');
|
|
198
|
+
const dryRun = args.includes('--dry-run');
|
|
199
|
+
if (!slug || !path) {
|
|
200
|
+
console.error('Usage: shreni init-kshetra --slug <id> --path <repo-path> [--org <org>] [--language <lang>] [--beads-path <path>] [--provider claude|codex|gemini] [--model <id>] [--merge-policy push|pr] [--dry-run]');
|
|
201
|
+
process.exit(1);
|
|
202
|
+
}
|
|
203
|
+
else if (mergePolicy && mergePolicy !== 'push' && mergePolicy !== 'pr') {
|
|
204
|
+
console.error(`Invalid --merge-policy "${mergePolicy}": expected "push" or "pr".`);
|
|
205
|
+
process.exit(1);
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
(0, init_kshetra_1.initKshetra)({
|
|
209
|
+
slug, path, org, language,
|
|
210
|
+
beadsPath: beadsPath ?? undefined,
|
|
211
|
+
provider: provider ?? undefined,
|
|
212
|
+
model: model ?? undefined,
|
|
213
|
+
mergePolicy: mergePolicy ?? undefined,
|
|
214
|
+
dryRun,
|
|
215
|
+
}).catch((err) => {
|
|
216
|
+
console.error(err.message);
|
|
217
|
+
process.exit(1);
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
break;
|
|
221
|
+
}
|
|
222
|
+
case 'telemetry': {
|
|
223
|
+
(0, telemetry_1.runTelemetry)(args[0]);
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
case 'register': {
|
|
227
|
+
const kshetraPath = args[0];
|
|
228
|
+
if (!kshetraPath) {
|
|
229
|
+
console.error('Usage: shreni register <path>');
|
|
230
|
+
process.exit(1);
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
try {
|
|
234
|
+
const result = (0, register_1.runRegister)(kshetraPath);
|
|
235
|
+
console.log(`Kshetra "${result.id}" registered (${result.configPath})`);
|
|
236
|
+
}
|
|
237
|
+
catch (err) {
|
|
238
|
+
console.error(err.message);
|
|
239
|
+
process.exit(1);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
break;
|
|
243
|
+
}
|
|
244
|
+
case 'migrate': {
|
|
245
|
+
const kshetraPath = args[0];
|
|
246
|
+
if (!kshetraPath) {
|
|
247
|
+
console.error('Usage: shreni migrate <path>');
|
|
248
|
+
process.exit(1);
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
try {
|
|
252
|
+
const result = (0, migrate_1.runMigrate)(kshetraPath);
|
|
253
|
+
switch (result.status) {
|
|
254
|
+
case 'migrated':
|
|
255
|
+
console.log(`Migrated config to ${result.configPath}${result.id ? ` (kshetra "${result.id}" re-registered)` : ''}`);
|
|
256
|
+
break;
|
|
257
|
+
case 'already_canonical':
|
|
258
|
+
console.log(`Already canonical: ${result.configPath} — nothing to migrate`);
|
|
259
|
+
break;
|
|
260
|
+
case 'nothing_to_migrate':
|
|
261
|
+
console.error(`No config found to migrate at ${kshetraPath}`);
|
|
262
|
+
process.exit(1);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
catch (err) {
|
|
266
|
+
console.error(err.message);
|
|
267
|
+
process.exit(1);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
break;
|
|
271
|
+
}
|
|
272
|
+
case 'list': {
|
|
273
|
+
(0, list_1.runList)();
|
|
274
|
+
break;
|
|
275
|
+
}
|
|
276
|
+
case 'verify-hooks': {
|
|
277
|
+
const result = (0, verify_hooks_1.verifyHooks)();
|
|
278
|
+
const ok = (v) => v ? '✓' : '✗';
|
|
279
|
+
console.log(`SessionStart hook (bd prime): ${ok(result.sessionStart.present)}`);
|
|
280
|
+
console.log(`PreCompact hook (bd prime): ${ok(result.preCompact.present)}`);
|
|
281
|
+
if (!result.allPresent) {
|
|
282
|
+
console.error('\nOne or more hooks missing. Run `bd setup claude` in your Kshetra to install them.');
|
|
283
|
+
process.exit(1);
|
|
284
|
+
}
|
|
285
|
+
break;
|
|
286
|
+
}
|
|
287
|
+
case 'phalaka': {
|
|
288
|
+
const sub = args[0];
|
|
289
|
+
const port = parseFlag(args.slice(1), '--port');
|
|
290
|
+
const parsedPort = port ? parseInt(port, 10) : undefined;
|
|
291
|
+
if (sub === 'start') {
|
|
292
|
+
const result = (0, phalaka_1.startPhalaka)(parsedPort);
|
|
293
|
+
if (result.status === 'already_running') {
|
|
294
|
+
console.log(`phalaka is already running (pid ${result.pid})`);
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
console.log(`phalaka started (pid ${result.pid})`);
|
|
298
|
+
}
|
|
299
|
+
console.log(`Dashboard: ${result.url}`);
|
|
300
|
+
}
|
|
301
|
+
else if (sub === 'stop') {
|
|
302
|
+
const result = (0, phalaka_1.stopPhalaka)();
|
|
303
|
+
if (result.status === 'stopped') {
|
|
304
|
+
console.log(`phalaka stopped (pid ${result.pid})`);
|
|
305
|
+
}
|
|
306
|
+
else if (result.status === 'stale_pid_cleared') {
|
|
307
|
+
console.log('phalaka was not running (stale PID file cleared)');
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
console.log('phalaka is not running');
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
else if (sub === 'status') {
|
|
314
|
+
const result = (0, phalaka_1.statusPhalaka)(parsedPort);
|
|
315
|
+
if (result.running) {
|
|
316
|
+
console.log(`phalaka running (pid ${result.pid})`);
|
|
317
|
+
console.log(`Dashboard: ${result.url}`);
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
console.log('phalaka is not running');
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
console.error('Usage: shreni phalaka <start|stop|status> [--port <port>]');
|
|
325
|
+
process.exit(1);
|
|
326
|
+
}
|
|
327
|
+
break;
|
|
328
|
+
}
|
|
329
|
+
case 'tail': {
|
|
330
|
+
const kshetraId = parseFlag(args, '--kshetra');
|
|
331
|
+
const all = args.includes('--all');
|
|
332
|
+
(0, tail_1.runTail)({ kshetraId, all });
|
|
333
|
+
break;
|
|
334
|
+
}
|
|
335
|
+
default:
|
|
336
|
+
console.error(`Unknown command: ${command ?? '(none)'}`);
|
|
337
|
+
console.error('Usage: shreni <start|stop> [--kshetra <id>]');
|
|
338
|
+
console.error(' shreni <status|agents|logs|pause|resume|run|sync|init-kshetra|register|migrate|verify-hooks|phalaka|tail>');
|
|
339
|
+
console.error(' shreni telemetry <status|enable|disable>');
|
|
340
|
+
process.exit(1);
|
|
341
|
+
}
|
|
342
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { type DetectedStack } from './detect-toolchain';
|
|
2
|
+
import type { Provider } from '../agents/providers/types';
|
|
3
|
+
export declare const SHRENI_DIR = ".shreni";
|
|
4
|
+
export declare const STYLE_GUIDE_FILE: string;
|
|
5
|
+
export declare const ARCH_FILE: string;
|
|
6
|
+
export interface InitKshetraOpts {
|
|
7
|
+
slug: string;
|
|
8
|
+
path: string;
|
|
9
|
+
org?: string;
|
|
10
|
+
language?: string;
|
|
11
|
+
beadsPath?: string;
|
|
12
|
+
provider?: string;
|
|
13
|
+
model?: string;
|
|
14
|
+
mergePolicy?: 'push' | 'pr';
|
|
15
|
+
dryRun?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare function resolveAgents(opts: {
|
|
18
|
+
provider?: string;
|
|
19
|
+
model?: string;
|
|
20
|
+
}): {
|
|
21
|
+
provider: Provider;
|
|
22
|
+
model: string;
|
|
23
|
+
};
|
|
24
|
+
export declare function createGitHubRepo(org: string, slug: string): Promise<string>;
|
|
25
|
+
export declare function cloneBeadsRepo(remoteUrl: string, localPath: string): Promise<void>;
|
|
26
|
+
export declare function initBeadsDb(beadsPath: string): Promise<void>;
|
|
27
|
+
export declare function createBeadsSymlink(repoPath: string, beadsPath: string): void;
|
|
28
|
+
export declare function addToGitignore(repoPath: string): void;
|
|
29
|
+
export declare function setupClaudeHooks(repoPath: string, beadsPath: string): Promise<void>;
|
|
30
|
+
export declare function smokeCheckToolchain(stack: DetectedStack): string[];
|
|
31
|
+
export declare function generateKshetraYaml(opts: {
|
|
32
|
+
slug: string;
|
|
33
|
+
repoPath: string;
|
|
34
|
+
repoRemote: string;
|
|
35
|
+
beadsPath: string;
|
|
36
|
+
beadsRemote: string;
|
|
37
|
+
stack?: DetectedStack;
|
|
38
|
+
language?: string;
|
|
39
|
+
conventions?: {
|
|
40
|
+
styleGuide?: string;
|
|
41
|
+
architecture?: string;
|
|
42
|
+
};
|
|
43
|
+
agents?: {
|
|
44
|
+
provider: Provider;
|
|
45
|
+
model: string;
|
|
46
|
+
};
|
|
47
|
+
mergePolicy?: 'push' | 'pr';
|
|
48
|
+
}): string;
|
|
49
|
+
export declare function writeKshetraConfig(repoPath: string, content: string): string;
|
|
50
|
+
export declare function scaffoldConventions(repoPath: string): {
|
|
51
|
+
styleGuide: string;
|
|
52
|
+
architecture: string;
|
|
53
|
+
};
|
|
54
|
+
export declare const SHRENI_SECTION = "\n## SHRENI INTEGRATION\n\nThis project is managed by Shreni. The Sthapathi daemon picks up beads issues and\nimplements them via autonomous agents (Silpi, Viharapala, Parikshaka).\n\n**If your system prompt assigns you a Silpi/Viharapala/Parikshaka role for a\nspecific bead, this section does NOT apply to you** \u2014 do your assigned job\n(implement / review / analyze) with your tools. The rules below govern\ninteractive human sessions only.\n\n**Interactive sessions: task producer only.**\nCreate beads issues for the daemon to implement \u2014 do NOT implement tasks yourself.\n\nProhibited in interactive sessions:\n bd update --claim Sthapathi claims tasks, not interactive agents\n bd close Sthapathi closes tasks on completion\n git checkout -b / git branch Sthapathi owns all bead-* branches\n\nUseful commands:\n shreni status --all Show all kshetra states\n shreni agents Show live agent activity\n shreni logs --kshetra <id> Round-by-round agent logs\n shreni pause --kshetra <id> Pause task pickup\n shreni resume --kshetra <id> Resume task pickup\n\n### Toolchain config sync\n\nShreni runs build/test/lint from the pointers in `.shreni/kshetra.yaml` (stack.*),\nnot by re-discovering your toolchain. Whenever you add or change a toolchain\nconfig file \u2014 a new test runner (vitest/jest/pytest), linter (eslint), tsconfig,\na new package.json/Makefile script, or you switch package managers \u2014 update the\nmatching pointer in `.shreni/kshetra.yaml` in the same change:\n\n stack.buildCommand the build/compile gate (e.g. `pnpm build`)\n stack.testRunner the test command (e.g. `pnpm test`)\n stack.lintCommand the lint gate (e.g. `pnpm lint`); omit to skip lint\n\nPrefer pointing at a project script (`pnpm test`) over duplicating globs. The\nescape hatches stack.testFileGlobs / stack.failCountPattern are for non-standard\nsetups only \u2014 set them only when the harness must find tests WITHOUT running the\nrunner. A stale pointer means Shreni runs the wrong gate.\n";
|
|
55
|
+
export declare function appendShreniIntegration(repoPath: string): void;
|
|
56
|
+
export declare function createRagIndexStub(slug: string): void;
|
|
57
|
+
export declare function registerWithSthapathi(slug: string, configPath: string): void;
|
|
58
|
+
export declare function initKshetra(opts: InitKshetraOpts): Promise<void>;
|
|
59
|
+
//# sourceMappingURL=init-kshetra.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-kshetra.d.ts","sourceRoot":"","sources":["../../src/cli/init-kshetra.ts"],"names":[],"mappings":"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"}
|