@cyanautomation/kaseki-agent 1.32.0 ā 1.34.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/__test-utils/api-client-assertions.d.ts +15 -0
- package/dist/__test-utils/api-client-assertions.d.ts.map +1 -0
- package/dist/__test-utils/api-client-assertions.js +27 -0
- package/dist/__test-utils/api-client-assertions.js.map +1 -0
- package/dist/cli/KasekiCLI.d.ts +0 -4
- package/dist/cli/KasekiCLI.d.ts.map +1 -1
- package/dist/cli/KasekiCLI.js +0 -6
- package/dist/cli/KasekiCLI.js.map +1 -1
- package/dist/cli/bootstrappers/AgentsBootstrapper.d.ts +51 -0
- package/dist/cli/bootstrappers/AgentsBootstrapper.d.ts.map +1 -0
- package/dist/cli/bootstrappers/AgentsBootstrapper.js +130 -0
- package/dist/cli/bootstrappers/AgentsBootstrapper.js.map +1 -0
- package/dist/cli/commands/InitCommand.d.ts +7 -1
- package/dist/cli/commands/InitCommand.d.ts.map +1 -1
- package/dist/cli/commands/InitCommand.js +49 -20
- package/dist/cli/commands/InitCommand.js.map +1 -1
- package/dist/cli/commands/QuickstartCommand.d.ts +7 -11
- package/dist/cli/commands/QuickstartCommand.d.ts.map +1 -1
- package/dist/cli/commands/QuickstartCommand.js +44 -267
- package/dist/cli/commands/QuickstartCommand.js.map +1 -1
- package/dist/cli/commands/SecretsCommand.d.ts +5 -0
- package/dist/cli/commands/SecretsCommand.d.ts.map +1 -1
- package/dist/cli/commands/SecretsCommand.js +130 -3
- package/dist/cli/commands/SecretsCommand.js.map +1 -1
- package/dist/cli/commands/host-secrets-path.d.ts.map +1 -1
- package/dist/cli/commands/host-secrets-path.js +4 -0
- package/dist/cli/commands/host-secrets-path.js.map +1 -1
- package/dist/cli/launchers/ContainerLauncher.d.ts +38 -0
- package/dist/cli/launchers/ContainerLauncher.d.ts.map +1 -0
- package/dist/cli/launchers/ContainerLauncher.js +148 -0
- package/dist/cli/launchers/ContainerLauncher.js.map +1 -0
- package/dist/cli/resolvers/SecretResolver.d.ts +34 -0
- package/dist/cli/resolvers/SecretResolver.d.ts.map +1 -0
- package/dist/cli/resolvers/SecretResolver.js +90 -0
- package/dist/cli/resolvers/SecretResolver.js.map +1 -0
- package/dist/cli/validators/EnvironmentValidator.d.ts +37 -0
- package/dist/cli/validators/EnvironmentValidator.d.ts.map +1 -0
- package/dist/cli/validators/EnvironmentValidator.js +82 -0
- package/dist/cli/validators/EnvironmentValidator.js.map +1 -0
- package/dist/config/ConfigManager.d.ts +0 -17
- package/dist/config/ConfigManager.d.ts.map +1 -1
- package/dist/config/ConfigManager.js +1 -49
- package/dist/config/ConfigManager.js.map +1 -1
- package/dist/idempotency-store.d.ts +0 -4
- package/dist/idempotency-store.d.ts.map +1 -1
- package/dist/idempotency-store.js +0 -6
- package/dist/idempotency-store.js.map +1 -1
- package/dist/job-scheduler.d.ts.map +1 -1
- package/dist/job-scheduler.js +16 -13
- package/dist/job-scheduler.js.map +1 -1
- package/dist/kaseki-api-client.d.ts +3 -51
- package/dist/kaseki-api-client.d.ts.map +1 -1
- package/dist/kaseki-api-client.js +0 -267
- package/dist/kaseki-api-client.js.map +1 -1
- package/dist/kaseki-api-config.js +1 -1
- package/dist/kaseki-api-routes.d.ts.map +1 -1
- package/dist/kaseki-api-routes.js +37 -17
- package/dist/kaseki-api-routes.js.map +1 -1
- package/dist/secrets/SecretsManager.d.ts +32 -27
- package/dist/secrets/SecretsManager.d.ts.map +1 -1
- package/dist/secrets/SecretsManager.js +135 -247
- package/dist/secrets/SecretsManager.js.map +1 -1
- package/dist/secrets/host-secrets-reader.d.ts +21 -16
- package/dist/secrets/host-secrets-reader.d.ts.map +1 -1
- package/dist/secrets/host-secrets-reader.js +48 -42
- package/dist/secrets/host-secrets-reader.js.map +1 -1
- package/kaseki-agent.sh +3 -3
- package/package.json +10 -6
- package/scripts/docker-entrypoint.sh +2 -3
- package/scripts/kaseki-setup-host.sh +14 -2
- package/scripts/setup-secrets.sh +422 -0
- package/scripts/startup-checks.sh +174 -623
- package/dist/__test-utils/openapi-assertions.d.ts +0 -39
- package/dist/__test-utils/openapi-assertions.d.ts.map +0 -1
- package/dist/__test-utils/openapi-assertions.js +0 -101
- package/dist/__test-utils/openapi-assertions.js.map +0 -1
- package/scripts/kaseki-init-container.sh +0 -99
package/README.md
CHANGED
|
@@ -1385,7 +1385,7 @@ to opt out of GitHub publishing for a specific API run.
|
|
|
1385
1385
|
| `KASEKI_AGENT_TIMEOUT_SECONDS` | 1200 | Agent timeout (20 min) |
|
|
1386
1386
|
| `TASK_PROMPT` | *(code fix task)* | Agent instructions |
|
|
1387
1387
|
| `KASEKI_TASK_MODE` | patch | `patch` (require diff) or `inspect` (no diff) |
|
|
1388
|
-
| `KASEKI_PUBLISH_MODE` |
|
|
1388
|
+
| `KASEKI_PUBLISH_MODE` | pr | `pr` (normal PR), `draft_pr` (draft PR), `branch` (branch only), `auto` (legacy: PR if credentials found), or `none` (skip); controller API requests with omitted `publishMode` default to `pr`; direct worker/CLI execution defaults to `pr` if unchanged |
|
|
1389
1389
|
| `KASEKI_STARTUP_CHECK_MODE` | boot | Dry-run startup check depth: `boot` or `baseline-validation` |
|
|
1390
1390
|
|
|
1391
1391
|
### Validation and Quality Gates
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal OpenAPI test assertion helpers
|
|
3
|
+
* Extracted from patterns in openapi-spec-generator.test.ts
|
|
4
|
+
* Reduces boilerplate and improves test maintainability
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Iterate through all paths and methods in an OpenAPI spec, executing a callback for each
|
|
8
|
+
* Replaces nested Object.entries().forEach() patterns with a single helper call
|
|
9
|
+
*/
|
|
10
|
+
export declare function forEachPathOperation(paths: Record<string, Record<string, unknown>>, callback: (pathName: string, method: string, operation: Record<string, unknown>) => void): void;
|
|
11
|
+
/**
|
|
12
|
+
* Assert that all paths have at least one operation defined (GET, POST, etc.)
|
|
13
|
+
*/
|
|
14
|
+
export declare function assertAllPathsHaveOperations(paths: Record<string, Record<string, unknown>>): void;
|
|
15
|
+
//# sourceMappingURL=api-client-assertions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client-assertions.d.ts","sourceRoot":"","sources":["../../src/__test-utils/api-client-assertions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC9C,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GACvF,IAAI,CAMN;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAOjG"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal OpenAPI test assertion helpers
|
|
3
|
+
* Extracted from patterns in openapi-spec-generator.test.ts
|
|
4
|
+
* Reduces boilerplate and improves test maintainability
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Iterate through all paths and methods in an OpenAPI spec, executing a callback for each
|
|
8
|
+
* Replaces nested Object.entries().forEach() patterns with a single helper call
|
|
9
|
+
*/
|
|
10
|
+
export function forEachPathOperation(paths, callback) {
|
|
11
|
+
Object.entries(paths).forEach(([pathName, pathItem]) => {
|
|
12
|
+
Object.entries(pathItem).forEach(([method, operation]) => {
|
|
13
|
+
callback(pathName, method, operation);
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Assert that all paths have at least one operation defined (GET, POST, etc.)
|
|
19
|
+
*/
|
|
20
|
+
export function assertAllPathsHaveOperations(paths) {
|
|
21
|
+
const httpMethods = ['get', 'post', 'put', 'delete', 'patch', 'head', 'options'];
|
|
22
|
+
Object.entries(paths).forEach(([, pathItem]) => {
|
|
23
|
+
const hasOperation = httpMethods.some((method) => method in pathItem);
|
|
24
|
+
expect(hasOperation).toBe(true);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=api-client-assertions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client-assertions.js","sourceRoot":"","sources":["../../src/__test-utils/api-client-assertions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAA8C,EAC9C,QAAwF;IAExF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE;QACrD,MAAM,CAAC,OAAO,CAAC,QAAmC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE;YAClF,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAoC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAA8C;IACzF,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAEjF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE;QAC7C,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC;QACtE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/cli/KasekiCLI.d.ts
CHANGED
|
@@ -26,9 +26,5 @@ export declare class KasekiCLI {
|
|
|
26
26
|
* Print command-specific help without executing checks or API calls.
|
|
27
27
|
*/
|
|
28
28
|
private printCommandHelp;
|
|
29
|
-
/**
|
|
30
|
-
* Get list of available commands
|
|
31
|
-
*/
|
|
32
|
-
getCommands(): CLICommand[];
|
|
33
29
|
}
|
|
34
30
|
//# sourceMappingURL=KasekiCLI.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KasekiCLI.d.ts","sourceRoot":"","sources":["../../src/cli/KasekiCLI.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAIxD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAA0B;gBAE9B,aAAa,EAAE,aAAa;IAMxC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAoJxB;;OAEG;IACG,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAkC/E;;OAEG;IACH,OAAO,CAAC,gBAAgB;
|
|
1
|
+
{"version":3,"file":"KasekiCLI.d.ts","sourceRoot":"","sources":["../../src/cli/KasekiCLI.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAIxD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAA0B;gBAE9B,aAAa,EAAE,aAAa;IAMxC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAoJxB;;OAEG;IACG,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAkC/E;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAgGzB"}
|
package/dist/cli/KasekiCLI.js
CHANGED
|
@@ -282,11 +282,5 @@ REQUIRES
|
|
|
282
282
|
};
|
|
283
283
|
console.log(help[commandName] || `${commandName} - no detailed help available`);
|
|
284
284
|
}
|
|
285
|
-
/**
|
|
286
|
-
* Get list of available commands
|
|
287
|
-
*/
|
|
288
|
-
getCommands() {
|
|
289
|
-
return Array.from(this.commands.values());
|
|
290
|
-
}
|
|
291
285
|
}
|
|
292
286
|
//# sourceMappingURL=KasekiCLI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KasekiCLI.js","sourceRoot":"","sources":["../../src/cli/KasekiCLI.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"KasekiCLI.js","sourceRoot":"","sources":["../../src/cli/KasekiCLI.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentsBootstrapper - Creates and initializes the /agents directory structure
|
|
3
|
+
* Handles sudo fallback and sets proper permissions for container access
|
|
4
|
+
*/
|
|
5
|
+
import { ConfigManager } from '../../config/ConfigManager';
|
|
6
|
+
export interface BootstrapResult {
|
|
7
|
+
ok: boolean;
|
|
8
|
+
error?: string;
|
|
9
|
+
message?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare class AgentsBootstrapper {
|
|
12
|
+
private configManager;
|
|
13
|
+
constructor(configManager: ConfigManager);
|
|
14
|
+
/**
|
|
15
|
+
* Ensure /agents directory structure exists with proper permissions
|
|
16
|
+
*/
|
|
17
|
+
bootstrap(dryRun?: boolean): Promise<BootstrapResult>;
|
|
18
|
+
/**
|
|
19
|
+
* Write configuration file to ~/.kaseki/config.json
|
|
20
|
+
*/
|
|
21
|
+
writeConfig(secrets: {
|
|
22
|
+
openrouterKeyFile?: {
|
|
23
|
+
filePath: string;
|
|
24
|
+
} | null;
|
|
25
|
+
githubAppIdFile?: {
|
|
26
|
+
filePath: string;
|
|
27
|
+
} | null;
|
|
28
|
+
githubAppClientIdFile?: {
|
|
29
|
+
filePath: string;
|
|
30
|
+
} | null;
|
|
31
|
+
githubAppPrivateKeyFile?: {
|
|
32
|
+
filePath: string;
|
|
33
|
+
} | null;
|
|
34
|
+
kasekiApiKeysFile?: {
|
|
35
|
+
filePath: string;
|
|
36
|
+
} | null;
|
|
37
|
+
}): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Create directory, falling back to sudo if needed
|
|
40
|
+
*/
|
|
41
|
+
private createDirectoryWithSudoFallback;
|
|
42
|
+
/**
|
|
43
|
+
* Set ownership to CONTAINER_UID, falling back to sudo if needed
|
|
44
|
+
*/
|
|
45
|
+
private setOwnershipWithSudoFallback;
|
|
46
|
+
/**
|
|
47
|
+
* Set directory permissions, falling back to sudo if needed
|
|
48
|
+
*/
|
|
49
|
+
private setPermissionsWithSudoFallback;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=AgentsBootstrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentsBootstrapper.d.ts","sourceRoot":"","sources":["../../../src/cli/bootstrappers/AgentsBootstrapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAQ3D,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,kBAAkB;IAEjB,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEhD;;OAEG;IACG,SAAS,CAAC,MAAM,GAAE,OAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IA2ClE;;OAEG;IACG,WAAW,CACf,OAAO,EAAE;QACP,iBAAiB,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QAChD,eAAe,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QAC9C,qBAAqB,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QACpD,uBAAuB,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QACtD,iBAAiB,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;KACjD,GACA,OAAO,CAAC,IAAI,CAAC;IAuBhB;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAevC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAepC;;OAEG;IACH,OAAO,CAAC,8BAA8B;CAcvC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentsBootstrapper - Creates and initializes the /agents directory structure
|
|
3
|
+
* Handles sudo fallback and sets proper permissions for container access
|
|
4
|
+
*/
|
|
5
|
+
import { existsSync } from 'fs';
|
|
6
|
+
import fs from 'fs/promises';
|
|
7
|
+
import os from 'os';
|
|
8
|
+
import path from 'path';
|
|
9
|
+
import { spawnSync } from 'child_process';
|
|
10
|
+
import { createLogger } from '../../logger.js';
|
|
11
|
+
const logger = createLogger('agents-bootstrapper');
|
|
12
|
+
const AGENTS_SUBDIRS = ['kaseki-results', 'kaseki-runs', 'kaseki-cache'];
|
|
13
|
+
const CONTAINER_UID = 10000;
|
|
14
|
+
export class AgentsBootstrapper {
|
|
15
|
+
configManager;
|
|
16
|
+
// @ts-expect-error - configManager may be used in future extensions
|
|
17
|
+
constructor(configManager) {
|
|
18
|
+
this.configManager = configManager;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Ensure /agents directory structure exists with proper permissions
|
|
22
|
+
*/
|
|
23
|
+
async bootstrap(dryRun = false) {
|
|
24
|
+
// Check if already set up
|
|
25
|
+
const allReady = ['/agents', ...AGENTS_SUBDIRS.map((d) => `/agents/${d}`)].every((p) => existsSync(p));
|
|
26
|
+
if (allReady) {
|
|
27
|
+
logger.debug('/agents already initialized');
|
|
28
|
+
return { ok: true, message: 'ā /agents already set up' };
|
|
29
|
+
}
|
|
30
|
+
if (dryRun) {
|
|
31
|
+
logger.debug('[dry-run] would create /agents');
|
|
32
|
+
return { ok: true, message: '[dry-run] would create /agents with UID 10000 ownership' };
|
|
33
|
+
}
|
|
34
|
+
// Create directory structure
|
|
35
|
+
const dirsToCreate = ['/agents', ...AGENTS_SUBDIRS.map((d) => `/agents/${d}`)];
|
|
36
|
+
for (const dir of dirsToCreate) {
|
|
37
|
+
const result = this.createDirectoryWithSudoFallback(dir);
|
|
38
|
+
if (!result.ok) {
|
|
39
|
+
logger.error(`Failed to create ${dir}: ${result.error}`);
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Set ownership to CONTAINER_UID
|
|
44
|
+
const ownershipResult = this.setOwnershipWithSudoFallback('/agents');
|
|
45
|
+
if (!ownershipResult.ok) {
|
|
46
|
+
logger.error(`Failed to set ownership: ${ownershipResult.error}`);
|
|
47
|
+
return ownershipResult;
|
|
48
|
+
}
|
|
49
|
+
// Set permissions
|
|
50
|
+
const permissionResult = this.setPermissionsWithSudoFallback('/agents');
|
|
51
|
+
if (!permissionResult.ok) {
|
|
52
|
+
logger.error(`Failed to set permissions: ${permissionResult.error}`);
|
|
53
|
+
return permissionResult;
|
|
54
|
+
}
|
|
55
|
+
logger.info('/agents bootstrap completed successfully');
|
|
56
|
+
return { ok: true, message: 'ā /agents created with UID 10000 ownership' };
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Write configuration file to ~/.kaseki/config.json
|
|
60
|
+
*/
|
|
61
|
+
async writeConfig(secrets) {
|
|
62
|
+
const kasekiDir = path.join(os.homedir(), '.kaseki');
|
|
63
|
+
await fs.mkdir(kasekiDir, { recursive: true, mode: 0o700 });
|
|
64
|
+
const auth = {};
|
|
65
|
+
if (secrets.openrouterKeyFile)
|
|
66
|
+
auth.openrouter_api_key_file = secrets.openrouterKeyFile.filePath;
|
|
67
|
+
if (secrets.githubAppIdFile)
|
|
68
|
+
auth.github_app_id_file = secrets.githubAppIdFile.filePath;
|
|
69
|
+
if (secrets.githubAppClientIdFile)
|
|
70
|
+
auth.github_app_client_id_file = secrets.githubAppClientIdFile.filePath;
|
|
71
|
+
if (secrets.githubAppPrivateKeyFile)
|
|
72
|
+
auth.github_app_private_key_file = secrets.githubAppPrivateKeyFile.filePath;
|
|
73
|
+
const config = {
|
|
74
|
+
auth,
|
|
75
|
+
api: {
|
|
76
|
+
url: 'http://localhost:8080/api',
|
|
77
|
+
...(secrets.kasekiApiKeysFile ? { key_file: secrets.kasekiApiKeysFile.filePath } : {}),
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
const configPath = path.join(kasekiDir, 'config.json');
|
|
81
|
+
await fs.writeFile(configPath, JSON.stringify(config, null, 2), { mode: 0o600 });
|
|
82
|
+
logger.info(`Config written to ${configPath}`);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Create directory, falling back to sudo if needed
|
|
86
|
+
*/
|
|
87
|
+
createDirectoryWithSudoFallback(dir) {
|
|
88
|
+
const mkdirResult = spawnSync('mkdir', ['-p', dir], { stdio: 'pipe' });
|
|
89
|
+
if (mkdirResult.status === 0) {
|
|
90
|
+
return { ok: true };
|
|
91
|
+
}
|
|
92
|
+
// Try with sudo
|
|
93
|
+
const sudoResult = spawnSync('sudo', ['mkdir', '-p', dir], { stdio: 'inherit' });
|
|
94
|
+
if (sudoResult.status === 0) {
|
|
95
|
+
return { ok: true };
|
|
96
|
+
}
|
|
97
|
+
return { ok: false, error: `Failed to create directory: ${dir}` };
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Set ownership to CONTAINER_UID, falling back to sudo if needed
|
|
101
|
+
*/
|
|
102
|
+
setOwnershipWithSudoFallback(dir) {
|
|
103
|
+
const chownResult = spawnSync('chown', ['-R', `${CONTAINER_UID}:${CONTAINER_UID}`, dir], { stdio: 'pipe' });
|
|
104
|
+
if (chownResult.status === 0) {
|
|
105
|
+
return { ok: true };
|
|
106
|
+
}
|
|
107
|
+
// Try with sudo
|
|
108
|
+
const sudoResult = spawnSync('sudo', ['chown', '-R', `${CONTAINER_UID}:${CONTAINER_UID}`, dir], { stdio: 'inherit' });
|
|
109
|
+
if (sudoResult.status === 0) {
|
|
110
|
+
return { ok: true };
|
|
111
|
+
}
|
|
112
|
+
return { ok: false, error: 'Failed to set ownership on /agents' };
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Set directory permissions, falling back to sudo if needed
|
|
116
|
+
*/
|
|
117
|
+
setPermissionsWithSudoFallback(dir) {
|
|
118
|
+
const chmodResult = spawnSync('chmod', ['755', dir], { stdio: 'pipe' });
|
|
119
|
+
if (chmodResult.status === 0) {
|
|
120
|
+
return { ok: true };
|
|
121
|
+
}
|
|
122
|
+
// Try with sudo
|
|
123
|
+
const sudoResult = spawnSync('sudo', ['chmod', '755', dir], { stdio: 'inherit' });
|
|
124
|
+
if (sudoResult.status === 0) {
|
|
125
|
+
return { ok: true };
|
|
126
|
+
}
|
|
127
|
+
return { ok: false, error: 'Failed to set permissions on /agents' };
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=AgentsBootstrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentsBootstrapper.js","sourceRoot":"","sources":["../../../src/cli/bootstrappers/AgentsBootstrapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAC;AAEnD,MAAM,cAAc,GAAG,CAAC,gBAAgB,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;AACzE,MAAM,aAAa,GAAG,KAAK,CAAC;AAQ5B,MAAM,OAAO,kBAAkB;IAET;IADpB,oEAAoE;IACpE,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAEpD;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,SAAkB,KAAK;QACrC,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvG,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC5C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;QAC3D,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC/C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,yDAAyD,EAAE,CAAC;QAC1F,CAAC;QAED,6BAA6B;QAC7B,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QAE/E,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,oBAAoB,GAAG,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzD,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,MAAM,eAAe,GAAG,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,4BAA4B,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;YAClE,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,kBAAkB;QAClB,MAAM,gBAAgB,GAAG,IAAI,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,8BAA8B,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC;YACrE,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACxD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,OAMC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;QACrD,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAE5D,MAAM,IAAI,GAA2B,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,iBAAiB;YAAE,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC;QACjG,IAAI,OAAO,CAAC,eAAe;YAAE,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC;QACxF,IAAI,OAAO,CAAC,qBAAqB;YAAE,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC;QAC3G,IAAI,OAAO,CAAC,uBAAuB;YAAE,IAAI,CAAC,2BAA2B,GAAG,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC;QAEjH,MAAM,MAAM,GAAG;YACb,IAAI;YACJ,GAAG,EAAE;gBACH,GAAG,EAAE,2BAA2B;gBAChC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvF;SACF,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACvD,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACjF,MAAM,CAAC,IAAI,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACK,+BAA+B,CAAC,GAAW;QACjD,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACvE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QAED,gBAAgB;QAChB,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACjF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,GAAG,EAAE,EAAE,CAAC;IACpE,CAAC;IAED;;OAEG;IACK,4BAA4B,CAAC,GAAW;QAC9C,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,aAAa,IAAI,aAAa,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5G,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QAED,gBAAgB;QAChB,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,aAAa,IAAI,aAAa,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACtH,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC;IACpE,CAAC;IAED;;OAEG;IACK,8BAA8B,CAAC,GAAW;QAChD,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACxE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QAED,gBAAgB;QAChB,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAClF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC;IACtE,CAAC;CACF"}
|
|
@@ -3,13 +3,19 @@
|
|
|
3
3
|
* New unified setup wizard (replaces old setup command)
|
|
4
4
|
*
|
|
5
5
|
* Provides single entry point for all setup paths:
|
|
6
|
+
* - Docker Compose deployment
|
|
6
7
|
* - Single-run execution
|
|
7
8
|
* - Local API service
|
|
8
|
-
*
|
|
9
|
+
*
|
|
10
|
+
* Auto-configures secrets and permissions before wizard runs.
|
|
9
11
|
*/
|
|
10
12
|
import { BaseCommand } from '../BaseCommand';
|
|
11
13
|
export declare class InitCommand extends BaseCommand {
|
|
12
14
|
execute(args: string[]): Promise<number>;
|
|
15
|
+
/**
|
|
16
|
+
* Run setup-secrets.sh to configure secrets directories with proper permissions
|
|
17
|
+
*/
|
|
18
|
+
private runSecretsSetup;
|
|
13
19
|
/**
|
|
14
20
|
* Print command help
|
|
15
21
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InitCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/InitCommand.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"InitCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/InitCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAO7C,qBAAa,WAAY,SAAQ,WAAW;IACpC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAkD9C;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,OAAO,CAAC,SAAS;IA2CjB;;OAEG;IACH,OAAO,CAAC,cAAc;CA4DvB"}
|
|
@@ -3,13 +3,17 @@
|
|
|
3
3
|
* New unified setup wizard (replaces old setup command)
|
|
4
4
|
*
|
|
5
5
|
* Provides single entry point for all setup paths:
|
|
6
|
+
* - Docker Compose deployment
|
|
6
7
|
* - Single-run execution
|
|
7
8
|
* - Local API service
|
|
8
|
-
*
|
|
9
|
+
*
|
|
10
|
+
* Auto-configures secrets and permissions before wizard runs.
|
|
9
11
|
*/
|
|
10
12
|
import { SetupWizard } from '../../setup/SetupWizard.js';
|
|
11
13
|
import { BaseCommand } from '../BaseCommand.js';
|
|
12
14
|
import { createLogger } from '../../logger.js';
|
|
15
|
+
import { execSync } from 'child_process';
|
|
16
|
+
import path from 'path';
|
|
13
17
|
const logger = createLogger('init-cmd');
|
|
14
18
|
export class InitCommand extends BaseCommand {
|
|
15
19
|
async execute(args) {
|
|
@@ -18,12 +22,26 @@ export class InitCommand extends BaseCommand {
|
|
|
18
22
|
const dryRun = args.includes('--dry-run');
|
|
19
23
|
const importLegacy = args.includes('--import-legacy');
|
|
20
24
|
const force = args.includes('--force');
|
|
25
|
+
const skipSecretsSetup = args.includes('--skip-secrets-setup');
|
|
21
26
|
// Show help if requested
|
|
22
27
|
if (args.includes('--help') || args.includes('-h')) {
|
|
23
28
|
this.printHelp();
|
|
24
29
|
return 0;
|
|
25
30
|
}
|
|
26
|
-
//
|
|
31
|
+
// Step 1: Ensure secrets directories are properly configured
|
|
32
|
+
if (!skipSecretsSetup && !dryRun) {
|
|
33
|
+
console.log('\nš Setting up secrets directories...\n');
|
|
34
|
+
try {
|
|
35
|
+
this.runSecretsSetup();
|
|
36
|
+
console.log('ā Secrets directories ready\n');
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
logger.warn(`Secrets setup warning: ${error}`);
|
|
40
|
+
console.log('ā Secrets setup had issues; continuing with wizard\n');
|
|
41
|
+
// Don't fail; user can fix manually
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Step 2: Run the unified setup wizard
|
|
27
45
|
const wizard = new SetupWizard();
|
|
28
46
|
const context = await wizard.run({
|
|
29
47
|
dryRun,
|
|
@@ -44,6 +62,18 @@ export class InitCommand extends BaseCommand {
|
|
|
44
62
|
return 1;
|
|
45
63
|
}
|
|
46
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Run setup-secrets.sh to configure secrets directories with proper permissions
|
|
67
|
+
*/
|
|
68
|
+
runSecretsSetup() {
|
|
69
|
+
try {
|
|
70
|
+
const setupScript = path.join(__dirname, '../../..', 'scripts', 'setup-secrets.sh');
|
|
71
|
+
execSync(`bash "${setupScript}"`, { stdio: 'pipe' });
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
throw new Error(`Failed to run secrets setup: ${error}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
47
77
|
/**
|
|
48
78
|
* Print command help
|
|
49
79
|
*/
|
|
@@ -55,37 +85,36 @@ USAGE
|
|
|
55
85
|
kaseki-agent init [OPTIONS]
|
|
56
86
|
|
|
57
87
|
OPTIONS
|
|
58
|
-
--dry-run
|
|
59
|
-
--import-legacy
|
|
60
|
-
--
|
|
61
|
-
--
|
|
88
|
+
--dry-run Validate setup without saving configuration
|
|
89
|
+
--import-legacy Migrate configuration from old setup paths
|
|
90
|
+
--skip-secrets-setup Skip automatic secrets directory setup
|
|
91
|
+
--force Skip permission validation (advanced users only)
|
|
92
|
+
--help, -h Show this help message
|
|
62
93
|
|
|
63
94
|
DESCRIPTION
|
|
64
|
-
Interactive wizard for first-time configuration.
|
|
95
|
+
Interactive wizard for first-time configuration. Automatically:
|
|
65
96
|
|
|
66
|
-
1.
|
|
67
|
-
2.
|
|
68
|
-
3.
|
|
69
|
-
4.
|
|
70
|
-
5.
|
|
97
|
+
1. ā Sets up secrets directories with proper permissions (/home/pi/secrets, ~/.kaseki/secrets)
|
|
98
|
+
2. Detects environment (Docker, Node.js)
|
|
99
|
+
3. Guides you through execution path selection (Docker Compose or single-run)
|
|
100
|
+
4. Collects essential credentials (OpenRouter API key, etc.)
|
|
101
|
+
5. Saves configuration securely
|
|
71
102
|
|
|
72
|
-
Configuration
|
|
73
|
-
- ~/.kaseki/secrets
|
|
74
|
-
-
|
|
75
|
-
- .env (current directory, for Docker/source control)
|
|
103
|
+
Configuration files created:
|
|
104
|
+
- ~/.kaseki/secrets/{secretName} (API keys, mode 600/640)
|
|
105
|
+
- .env (environment variables, your repo)
|
|
76
106
|
|
|
77
107
|
EXAMPLES
|
|
78
|
-
# Interactive setup
|
|
108
|
+
# Interactive setup (recommended)
|
|
79
109
|
kaseki-agent init
|
|
80
110
|
|
|
81
|
-
# Dry-run
|
|
111
|
+
# Dry-run validation
|
|
82
112
|
kaseki-agent init --dry-run
|
|
83
113
|
|
|
84
|
-
# Migrate from old setup
|
|
114
|
+
# Migrate from old setup
|
|
85
115
|
kaseki-agent init --import-legacy
|
|
86
116
|
|
|
87
117
|
DOCUMENTATION
|
|
88
|
-
For more information:
|
|
89
118
|
- Quick start: https://github.com/CyanAutomation/kaseki-agent/blob/main/docs/QUICK_START.md
|
|
90
119
|
- Advanced config: https://github.com/CyanAutomation/kaseki-agent/blob/main/docs/ADVANCED_CONFIG.md
|
|
91
120
|
`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InitCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/InitCommand.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"InitCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/InitCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,23 +6,19 @@
|
|
|
6
6
|
* 2. Discover secrets at well-known locations
|
|
7
7
|
* 3. Write ~/.kaseki/config.json
|
|
8
8
|
* 4. Bootstrap /agents (with sudo if needed)
|
|
9
|
-
* 5. Start kaseki-api via docker
|
|
9
|
+
* 5. Start kaseki-api via docker (or docker run fallback)
|
|
10
10
|
* 6. Wait for /ready body to confirm the API is truly ready
|
|
11
11
|
* 7. Smoke-test the authenticated /api/runs endpoint
|
|
12
12
|
*/
|
|
13
13
|
import { BaseCommand } from '../BaseCommand';
|
|
14
|
+
import { ConfigManager } from '../../config/ConfigManager';
|
|
14
15
|
export declare class QuickstartCommand extends BaseCommand {
|
|
16
|
+
private environmentValidator;
|
|
17
|
+
private secretResolver;
|
|
18
|
+
private agentsBootstrapper;
|
|
19
|
+
private containerLauncher;
|
|
20
|
+
constructor(configManager: ConfigManager);
|
|
15
21
|
execute(args: string[]): Promise<number>;
|
|
16
|
-
private detectEnvironment;
|
|
17
|
-
private printEnvSummary;
|
|
18
|
-
private discoverSecrets;
|
|
19
|
-
private printSecretsSummary;
|
|
20
|
-
private writeConfig;
|
|
21
|
-
private bootstrapAgentsDir;
|
|
22
|
-
private startContainer;
|
|
23
|
-
private readApiKey;
|
|
24
|
-
private waitForReady;
|
|
25
|
-
private smokeTest;
|
|
26
22
|
private printSuccess;
|
|
27
23
|
private printHelp;
|
|
28
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuickstartCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/QuickstartCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"QuickstartCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/QuickstartCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAS3D,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,iBAAiB,CAAoB;gBAEjC,aAAa,EAAE,aAAa;IAQlC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAuI9C,OAAO,CAAC,YAAY;IA2BpB,OAAO,CAAC,SAAS;CA4BlB"}
|