@de-otio/chaoskb-client 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.
- package/dist/cli/agent-registry/config-merger.d.ts +28 -0
- package/dist/cli/agent-registry/config-merger.d.ts.map +1 -0
- package/dist/cli/agent-registry/config-merger.js +90 -0
- package/dist/cli/agent-registry/config-merger.js.map +1 -0
- package/dist/cli/agent-registry/detector.d.ts +7 -0
- package/dist/cli/agent-registry/detector.d.ts.map +1 -0
- package/dist/cli/agent-registry/detector.js +100 -0
- package/dist/cli/agent-registry/detector.js.map +1 -0
- package/dist/cli/agent-registry/index.d.ts +26 -0
- package/dist/cli/agent-registry/index.d.ts.map +1 -0
- package/dist/cli/agent-registry/index.js +77 -0
- package/dist/cli/agent-registry/index.js.map +1 -0
- package/dist/cli/agent-registry/path-validator.d.ts +11 -0
- package/dist/cli/agent-registry/path-validator.d.ts.map +1 -0
- package/dist/cli/agent-registry/path-validator.js +69 -0
- package/dist/cli/agent-registry/path-validator.js.map +1 -0
- package/dist/cli/agent-registry/registry.json +108 -0
- package/dist/cli/agent-registry/types.d.ts +29 -0
- package/dist/cli/agent-registry/types.d.ts.map +1 -0
- package/dist/cli/agent-registry/types.js +2 -0
- package/dist/cli/agent-registry/types.js.map +1 -0
- package/dist/cli/bootstrap-lock.d.ts +7 -0
- package/dist/cli/bootstrap-lock.d.ts.map +1 -0
- package/dist/cli/bootstrap-lock.js +62 -0
- package/dist/cli/bootstrap-lock.js.map +1 -0
- package/dist/cli/bootstrap.d.ts +23 -0
- package/dist/cli/bootstrap.d.ts.map +1 -0
- package/dist/cli/bootstrap.js +438 -0
- package/dist/cli/bootstrap.js.map +1 -0
- package/dist/cli/commands/config.d.ts +13 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +244 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/devices.d.ts +21 -0
- package/dist/cli/commands/devices.d.ts.map +1 -0
- package/dist/cli/commands/devices.js +229 -0
- package/dist/cli/commands/devices.js.map +1 -0
- package/dist/cli/commands/export.d.ts +12 -0
- package/dist/cli/commands/export.d.ts.map +1 -0
- package/dist/cli/commands/export.js +183 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/import.d.ts +26 -0
- package/dist/cli/commands/import.d.ts.map +1 -0
- package/dist/cli/commands/import.js +311 -0
- package/dist/cli/commands/import.js.map +1 -0
- package/dist/cli/commands/kb.d.ts +39 -0
- package/dist/cli/commands/kb.d.ts.map +1 -0
- package/dist/cli/commands/kb.js +138 -0
- package/dist/cli/commands/kb.js.map +1 -0
- package/dist/cli/commands/project.d.ts +6 -0
- package/dist/cli/commands/project.d.ts.map +1 -0
- package/dist/cli/commands/project.js +115 -0
- package/dist/cli/commands/project.js.map +1 -0
- package/dist/cli/commands/projects.d.ts +33 -0
- package/dist/cli/commands/projects.d.ts.map +1 -0
- package/dist/cli/commands/projects.js +189 -0
- package/dist/cli/commands/projects.js.map +1 -0
- package/dist/cli/commands/register.d.ts +8 -0
- package/dist/cli/commands/register.d.ts.map +1 -0
- package/dist/cli/commands/register.js +146 -0
- package/dist/cli/commands/register.js.map +1 -0
- package/dist/cli/commands/rotate-key.d.ts +16 -0
- package/dist/cli/commands/rotate-key.d.ts.map +1 -0
- package/dist/cli/commands/rotate-key.js +197 -0
- package/dist/cli/commands/rotate-key.js.map +1 -0
- package/dist/cli/commands/setup-sync.d.ts +2 -0
- package/dist/cli/commands/setup-sync.d.ts.map +1 -0
- package/dist/cli/commands/setup-sync.js +165 -0
- package/dist/cli/commands/setup-sync.js.map +1 -0
- package/dist/cli/commands/setup.d.ts +12 -0
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +39 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/status.d.ts +5 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +96 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/uninstall.d.ts +4 -0
- package/dist/cli/commands/uninstall.d.ts.map +1 -0
- package/dist/cli/commands/uninstall.js +85 -0
- package/dist/cli/commands/uninstall.js.map +1 -0
- package/dist/cli/commands/unregister.d.ts +2 -0
- package/dist/cli/commands/unregister.d.ts.map +1 -0
- package/dist/cli/commands/unregister.js +46 -0
- package/dist/cli/commands/unregister.js.map +1 -0
- package/dist/cli/device-metadata.d.ts +15 -0
- package/dist/cli/device-metadata.d.ts.map +1 -0
- package/dist/cli/device-metadata.js +58 -0
- package/dist/cli/device-metadata.js.map +1 -0
- package/dist/cli/github.d.ts +38 -0
- package/dist/cli/github.d.ts.map +1 -0
- package/dist/cli/github.js +159 -0
- package/dist/cli/github.js.map +1 -0
- package/dist/cli/guide-hashes.json +13 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +226 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/mcp-server.d.ts +205 -0
- package/dist/cli/mcp-server.d.ts.map +1 -0
- package/dist/cli/mcp-server.js +366 -0
- package/dist/cli/mcp-server.js.map +1 -0
- package/dist/cli/tools/kb-delete.d.ts +10 -0
- package/dist/cli/tools/kb-delete.d.ts.map +1 -0
- package/dist/cli/tools/kb-delete.js +28 -0
- package/dist/cli/tools/kb-delete.js.map +1 -0
- package/dist/cli/tools/kb-ingest.d.ts +13 -0
- package/dist/cli/tools/kb-ingest.d.ts.map +1 -0
- package/dist/cli/tools/kb-ingest.js +72 -0
- package/dist/cli/tools/kb-ingest.js.map +1 -0
- package/dist/cli/tools/kb-list.d.ts +20 -0
- package/dist/cli/tools/kb-list.d.ts.map +1 -0
- package/dist/cli/tools/kb-list.js +24 -0
- package/dist/cli/tools/kb-list.js.map +1 -0
- package/dist/cli/tools/kb-query-shared.d.ts +27 -0
- package/dist/cli/tools/kb-query-shared.d.ts.map +1 -0
- package/dist/cli/tools/kb-query-shared.js +28 -0
- package/dist/cli/tools/kb-query-shared.js.map +1 -0
- package/dist/cli/tools/kb-query.d.ts +20 -0
- package/dist/cli/tools/kb-query.d.ts.map +1 -0
- package/dist/cli/tools/kb-query.js +109 -0
- package/dist/cli/tools/kb-query.js.map +1 -0
- package/dist/cli/tools/kb-summary.d.ts +29 -0
- package/dist/cli/tools/kb-summary.d.ts.map +1 -0
- package/dist/cli/tools/kb-summary.js +89 -0
- package/dist/cli/tools/kb-summary.js.map +1 -0
- package/dist/cli/tools/kb-sync-status.d.ts +7 -0
- package/dist/cli/tools/kb-sync-status.d.ts.map +1 -0
- package/dist/cli/tools/kb-sync-status.js +48 -0
- package/dist/cli/tools/kb-sync-status.js.map +1 -0
- package/dist/crypto/aad.d.ts +8 -0
- package/dist/crypto/aad.d.ts.map +1 -0
- package/dist/crypto/aad.js +11 -0
- package/dist/crypto/aad.js.map +1 -0
- package/dist/crypto/aead.d.ts +21 -0
- package/dist/crypto/aead.d.ts.map +1 -0
- package/dist/crypto/aead.js +43 -0
- package/dist/crypto/aead.js.map +1 -0
- package/dist/crypto/argon2.d.ts +11 -0
- package/dist/crypto/argon2.d.ts.map +1 -0
- package/dist/crypto/argon2.js +33 -0
- package/dist/crypto/argon2.js.map +1 -0
- package/dist/crypto/blob-id.d.ts +6 -0
- package/dist/crypto/blob-id.d.ts.map +1 -0
- package/dist/crypto/blob-id.js +33 -0
- package/dist/crypto/blob-id.js.map +1 -0
- package/dist/crypto/canonical-json.d.ts +6 -0
- package/dist/crypto/canonical-json.d.ts.map +1 -0
- package/dist/crypto/canonical-json.js +88 -0
- package/dist/crypto/canonical-json.js.map +1 -0
- package/dist/crypto/commitment.d.ts +12 -0
- package/dist/crypto/commitment.d.ts.map +1 -0
- package/dist/crypto/commitment.js +37 -0
- package/dist/crypto/commitment.js.map +1 -0
- package/dist/crypto/encryption-service.d.ts +19 -0
- package/dist/crypto/encryption-service.d.ts.map +1 -0
- package/dist/crypto/encryption-service.js +38 -0
- package/dist/crypto/encryption-service.js.map +1 -0
- package/dist/crypto/envelope-cbor.d.ts +37 -0
- package/dist/crypto/envelope-cbor.d.ts.map +1 -0
- package/dist/crypto/envelope-cbor.js +124 -0
- package/dist/crypto/envelope-cbor.js.map +1 -0
- package/dist/crypto/envelope.d.ts +34 -0
- package/dist/crypto/envelope.d.ts.map +1 -0
- package/dist/crypto/envelope.js +160 -0
- package/dist/crypto/envelope.js.map +1 -0
- package/dist/crypto/hkdf.d.ts +16 -0
- package/dist/crypto/hkdf.d.ts.map +1 -0
- package/dist/crypto/hkdf.js +33 -0
- package/dist/crypto/hkdf.js.map +1 -0
- package/dist/crypto/index.d.ts +15 -0
- package/dist/crypto/index.d.ts.map +1 -0
- package/dist/crypto/index.js +15 -0
- package/dist/crypto/index.js.map +1 -0
- package/dist/crypto/invite.d.ts +31 -0
- package/dist/crypto/invite.d.ts.map +1 -0
- package/dist/crypto/invite.js +137 -0
- package/dist/crypto/invite.js.map +1 -0
- package/dist/crypto/keyring.d.ts +37 -0
- package/dist/crypto/keyring.d.ts.map +1 -0
- package/dist/crypto/keyring.js +219 -0
- package/dist/crypto/keyring.js.map +1 -0
- package/dist/crypto/known-keys.d.ts +34 -0
- package/dist/crypto/known-keys.d.ts.map +1 -0
- package/dist/crypto/known-keys.js +106 -0
- package/dist/crypto/known-keys.js.map +1 -0
- package/dist/crypto/project-keys.d.ts +26 -0
- package/dist/crypto/project-keys.d.ts.map +1 -0
- package/dist/crypto/project-keys.js +69 -0
- package/dist/crypto/project-keys.js.map +1 -0
- package/dist/crypto/secure-buffer.d.ts +31 -0
- package/dist/crypto/secure-buffer.d.ts.map +1 -0
- package/dist/crypto/secure-buffer.js +61 -0
- package/dist/crypto/secure-buffer.js.map +1 -0
- package/dist/crypto/ssh-agent.d.ts +16 -0
- package/dist/crypto/ssh-agent.d.ts.map +1 -0
- package/dist/crypto/ssh-agent.js +225 -0
- package/dist/crypto/ssh-agent.js.map +1 -0
- package/dist/crypto/ssh-keys.d.ts +19 -0
- package/dist/crypto/ssh-keys.d.ts.map +1 -0
- package/dist/crypto/ssh-keys.js +121 -0
- package/dist/crypto/ssh-keys.js.map +1 -0
- package/dist/crypto/tiers/enhanced.d.ts +25 -0
- package/dist/crypto/tiers/enhanced.d.ts.map +1 -0
- package/dist/crypto/tiers/enhanced.js +56 -0
- package/dist/crypto/tiers/enhanced.js.map +1 -0
- package/dist/crypto/tiers/maximum.d.ts +19 -0
- package/dist/crypto/tiers/maximum.d.ts.map +1 -0
- package/dist/crypto/tiers/maximum.js +25 -0
- package/dist/crypto/tiers/maximum.js.map +1 -0
- package/dist/crypto/tiers/standard.d.ts +27 -0
- package/dist/crypto/tiers/standard.d.ts.map +1 -0
- package/dist/crypto/tiers/standard.js +147 -0
- package/dist/crypto/tiers/standard.js.map +1 -0
- package/dist/crypto/types.d.ts +169 -0
- package/dist/crypto/types.d.ts.map +1 -0
- package/dist/crypto/types.js +11 -0
- package/dist/crypto/types.js.map +1 -0
- package/dist/pipeline/chunker.d.ts +27 -0
- package/dist/pipeline/chunker.d.ts.map +1 -0
- package/dist/pipeline/chunker.js +96 -0
- package/dist/pipeline/chunker.js.map +1 -0
- package/dist/pipeline/content-pipeline.d.ts +24 -0
- package/dist/pipeline/content-pipeline.d.ts.map +1 -0
- package/dist/pipeline/content-pipeline.js +49 -0
- package/dist/pipeline/content-pipeline.js.map +1 -0
- package/dist/pipeline/embedder.d.ts +49 -0
- package/dist/pipeline/embedder.d.ts.map +1 -0
- package/dist/pipeline/embedder.js +195 -0
- package/dist/pipeline/embedder.js.map +1 -0
- package/dist/pipeline/extract.d.ts +17 -0
- package/dist/pipeline/extract.d.ts.map +1 -0
- package/dist/pipeline/extract.js +70 -0
- package/dist/pipeline/extract.js.map +1 -0
- package/dist/pipeline/fetch.d.ts +26 -0
- package/dist/pipeline/fetch.d.ts.map +1 -0
- package/dist/pipeline/fetch.js +91 -0
- package/dist/pipeline/fetch.js.map +1 -0
- package/dist/pipeline/index.d.ts +10 -0
- package/dist/pipeline/index.d.ts.map +1 -0
- package/dist/pipeline/index.js +10 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/pipeline/model-manager.d.ts +57 -0
- package/dist/pipeline/model-manager.d.ts.map +1 -0
- package/dist/pipeline/model-manager.js +234 -0
- package/dist/pipeline/model-manager.js.map +1 -0
- package/dist/pipeline/search.d.ts +37 -0
- package/dist/pipeline/search.d.ts.map +1 -0
- package/dist/pipeline/search.js +65 -0
- package/dist/pipeline/search.js.map +1 -0
- package/dist/pipeline/tokenizer.d.ts +29 -0
- package/dist/pipeline/tokenizer.d.ts.map +1 -0
- package/dist/pipeline/tokenizer.js +54 -0
- package/dist/pipeline/tokenizer.js.map +1 -0
- package/dist/pipeline/types.d.ts +86 -0
- package/dist/pipeline/types.d.ts.map +1 -0
- package/dist/pipeline/types.js +2 -0
- package/dist/pipeline/types.js.map +1 -0
- package/dist/pipeline/wordpiece-tokenizer.d.ts +60 -0
- package/dist/pipeline/wordpiece-tokenizer.d.ts.map +1 -0
- package/dist/pipeline/wordpiece-tokenizer.js +251 -0
- package/dist/pipeline/wordpiece-tokenizer.js.map +1 -0
- package/dist/storage/chunk-repo.d.ts +29 -0
- package/dist/storage/chunk-repo.d.ts.map +1 -0
- package/dist/storage/chunk-repo.js +115 -0
- package/dist/storage/chunk-repo.js.map +1 -0
- package/dist/storage/database-manager.d.ts +17 -0
- package/dist/storage/database-manager.d.ts.map +1 -0
- package/dist/storage/database-manager.js +100 -0
- package/dist/storage/database-manager.js.map +1 -0
- package/dist/storage/database.d.ts +10 -0
- package/dist/storage/database.d.ts.map +1 -0
- package/dist/storage/database.js +34 -0
- package/dist/storage/database.js.map +1 -0
- package/dist/storage/embedding-index.d.ts +22 -0
- package/dist/storage/embedding-index.d.ts.map +1 -0
- package/dist/storage/embedding-index.js +78 -0
- package/dist/storage/embedding-index.js.map +1 -0
- package/dist/storage/index.d.ts +10 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +10 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/kb-database.d.ts +11 -0
- package/dist/storage/kb-database.d.ts.map +1 -0
- package/dist/storage/kb-database.js +24 -0
- package/dist/storage/kb-database.js.map +1 -0
- package/dist/storage/schema.d.ts +6 -0
- package/dist/storage/schema.d.ts.map +1 -0
- package/dist/storage/schema.js +122 -0
- package/dist/storage/schema.js.map +1 -0
- package/dist/storage/source-repo.d.ts +20 -0
- package/dist/storage/source-repo.d.ts.map +1 -0
- package/dist/storage/source-repo.js +120 -0
- package/dist/storage/source-repo.js.map +1 -0
- package/dist/storage/sync-status-repo.d.ts +15 -0
- package/dist/storage/sync-status-repo.d.ts.map +1 -0
- package/dist/storage/sync-status-repo.js +40 -0
- package/dist/storage/sync-status-repo.js.map +1 -0
- package/dist/storage/types.d.ts +139 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +9 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/sync/canary.d.ts +14 -0
- package/dist/sync/canary.d.ts.map +1 -0
- package/dist/sync/canary.js +53 -0
- package/dist/sync/canary.js.map +1 -0
- package/dist/sync/full-sync.d.ts +16 -0
- package/dist/sync/full-sync.d.ts.map +1 -0
- package/dist/sync/full-sync.js +91 -0
- package/dist/sync/full-sync.js.map +1 -0
- package/dist/sync/http-client.d.ts +28 -0
- package/dist/sync/http-client.d.ts.map +1 -0
- package/dist/sync/http-client.js +90 -0
- package/dist/sync/http-client.js.map +1 -0
- package/dist/sync/incremental-sync.d.ts +17 -0
- package/dist/sync/incremental-sync.d.ts.map +1 -0
- package/dist/sync/incremental-sync.js +155 -0
- package/dist/sync/incremental-sync.js.map +1 -0
- package/dist/sync/index.d.ts +12 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +12 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/quota.d.ts +17 -0
- package/dist/sync/quota.d.ts.map +1 -0
- package/dist/sync/quota.js +48 -0
- package/dist/sync/quota.js.map +1 -0
- package/dist/sync/sequence.d.ts +21 -0
- package/dist/sync/sequence.d.ts.map +1 -0
- package/dist/sync/sequence.js +49 -0
- package/dist/sync/sequence.js.map +1 -0
- package/dist/sync/ssh-signer.d.ts +59 -0
- package/dist/sync/ssh-signer.d.ts.map +1 -0
- package/dist/sync/ssh-signer.js +241 -0
- package/dist/sync/ssh-signer.js.map +1 -0
- package/dist/sync/sync-service.d.ts +48 -0
- package/dist/sync/sync-service.d.ts.map +1 -0
- package/dist/sync/sync-service.js +116 -0
- package/dist/sync/sync-service.js.map +1 -0
- package/dist/sync/types.d.ts +106 -0
- package/dist/sync/types.d.ts.map +1 -0
- package/dist/sync/types.js +2 -0
- package/dist/sync/types.js.map +1 -0
- package/dist/sync/upload-queue.d.ts +40 -0
- package/dist/sync/upload-queue.d.ts.map +1 -0
- package/dist/sync/upload-queue.js +148 -0
- package/dist/sync/upload-queue.js.map +1 -0
- package/dist/sync/verification.d.ts +17 -0
- package/dist/sync/verification.d.ts.map +1 -0
- package/dist/sync/verification.js +25 -0
- package/dist/sync/verification.js.map +1 -0
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +16 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import * as os from 'node:os';
|
|
4
|
+
const CHAOSKB_DIR = path.join(os.homedir(), '.chaoskb');
|
|
5
|
+
/**
|
|
6
|
+
* F1.1: `chaoskb kb create <name> --key <path> [--github <username>]`
|
|
7
|
+
*/
|
|
8
|
+
export async function kbCreateCommand(name, options) {
|
|
9
|
+
if (!isValidKBName(name)) {
|
|
10
|
+
console.error('Invalid KB name. Use only alphanumeric characters, hyphens, and underscores.');
|
|
11
|
+
process.exit(1);
|
|
12
|
+
}
|
|
13
|
+
const kbDir = path.join(CHAOSKB_DIR, name);
|
|
14
|
+
if (fs.existsSync(kbDir)) {
|
|
15
|
+
console.error(`KB "${name}" already exists at ${kbDir}`);
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
// F1.2: Create directory structure
|
|
19
|
+
fs.mkdirSync(path.join(kbDir, 'db'), { recursive: true, mode: 0o700 });
|
|
20
|
+
fs.mkdirSync(path.join(kbDir, 'keys'), { recursive: true, mode: 0o700 });
|
|
21
|
+
const config = {
|
|
22
|
+
name,
|
|
23
|
+
sshKeyPath: options.key,
|
|
24
|
+
github: options.github,
|
|
25
|
+
createdAt: new Date().toISOString(),
|
|
26
|
+
};
|
|
27
|
+
// Write config
|
|
28
|
+
fs.writeFileSync(path.join(kbDir, 'config.json'), JSON.stringify(config, null, 2), { mode: 0o600 });
|
|
29
|
+
console.log(`KB "${name}" created at ${kbDir}`);
|
|
30
|
+
if (options.github) {
|
|
31
|
+
console.log(` GitHub: ${options.github}`);
|
|
32
|
+
}
|
|
33
|
+
if (options.key) {
|
|
34
|
+
console.log(` SSH key: ${options.key}`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* F1.5: `chaoskb kb list`
|
|
39
|
+
*/
|
|
40
|
+
export async function kbListCommand() {
|
|
41
|
+
const kbs = listKBs();
|
|
42
|
+
if (kbs.length === 0) {
|
|
43
|
+
console.log('No named KBs found.');
|
|
44
|
+
console.log('Use `chaoskb kb create <name>` to create one.');
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
console.log('');
|
|
48
|
+
console.log(' Knowledge Bases');
|
|
49
|
+
console.log(' ===============');
|
|
50
|
+
console.log('');
|
|
51
|
+
for (const kb of kbs) {
|
|
52
|
+
const keyInfo = kb.sshKeyPath ? ` (key: ${path.basename(kb.sshKeyPath)})` : '';
|
|
53
|
+
const ghInfo = kb.github ? ` [GitHub: ${kb.github}]` : '';
|
|
54
|
+
console.log(` ${kb.name}${keyInfo}${ghInfo}`);
|
|
55
|
+
console.log(` Created: ${new Date(kb.createdAt).toLocaleDateString()}`);
|
|
56
|
+
console.log('');
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* F1.6: `chaoskb kb delete <name>`
|
|
61
|
+
*/
|
|
62
|
+
export async function kbDeleteCommand(name) {
|
|
63
|
+
const kbDir = path.join(CHAOSKB_DIR, name);
|
|
64
|
+
if (!fs.existsSync(kbDir)) {
|
|
65
|
+
console.error(`KB "${name}" not found.`);
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
// Remove local data
|
|
69
|
+
fs.rmSync(kbDir, { recursive: true });
|
|
70
|
+
console.log(`KB "${name}" deleted.`);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* List all named KBs by reading config.json from each subdirectory.
|
|
74
|
+
*/
|
|
75
|
+
export function listKBs() {
|
|
76
|
+
const kbs = [];
|
|
77
|
+
try {
|
|
78
|
+
const entries = fs.readdirSync(CHAOSKB_DIR, { withFileTypes: true });
|
|
79
|
+
for (const entry of entries) {
|
|
80
|
+
if (!entry.isDirectory())
|
|
81
|
+
continue;
|
|
82
|
+
const configPath = path.join(CHAOSKB_DIR, entry.name, 'config.json');
|
|
83
|
+
try {
|
|
84
|
+
const raw = fs.readFileSync(configPath, 'utf-8');
|
|
85
|
+
const config = JSON.parse(raw);
|
|
86
|
+
kbs.push(config);
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
// Not a KB directory, skip
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
// ~/.chaoskb doesn't exist
|
|
95
|
+
}
|
|
96
|
+
return kbs;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* F1.7: Get the default KB path. Creates `~/.chaoskb/default/` if needed.
|
|
100
|
+
*/
|
|
101
|
+
export function getDefaultKBPath() {
|
|
102
|
+
return path.join(CHAOSKB_DIR, 'default');
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* F1.8: Migrate flat layout to `default/` subdirectory.
|
|
106
|
+
*
|
|
107
|
+
* If `~/.chaoskb/config.json` exists (flat layout), move everything
|
|
108
|
+
* into `~/.chaoskb/default/`.
|
|
109
|
+
*/
|
|
110
|
+
export function migrateToNamedKBLayout() {
|
|
111
|
+
const flatConfig = path.join(CHAOSKB_DIR, 'config.json');
|
|
112
|
+
if (!fs.existsSync(flatConfig))
|
|
113
|
+
return false;
|
|
114
|
+
const defaultDir = path.join(CHAOSKB_DIR, 'default');
|
|
115
|
+
if (fs.existsSync(defaultDir))
|
|
116
|
+
return false; // Already migrated
|
|
117
|
+
fs.mkdirSync(defaultDir, { recursive: true, mode: 0o700 });
|
|
118
|
+
// Move config.json, local.db, and key files
|
|
119
|
+
const filesToMove = ['config.json', 'local.db'];
|
|
120
|
+
for (const file of filesToMove) {
|
|
121
|
+
const src = path.join(CHAOSKB_DIR, file);
|
|
122
|
+
const dest = path.join(defaultDir, file);
|
|
123
|
+
if (fs.existsSync(src)) {
|
|
124
|
+
fs.renameSync(src, dest);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// Move key files if they exist
|
|
128
|
+
const masterKeyFile = path.join(CHAOSKB_DIR, 'master.key');
|
|
129
|
+
if (fs.existsSync(masterKeyFile)) {
|
|
130
|
+
fs.mkdirSync(path.join(defaultDir, 'keys'), { recursive: true, mode: 0o700 });
|
|
131
|
+
fs.renameSync(masterKeyFile, path.join(defaultDir, 'keys', 'master.key'));
|
|
132
|
+
}
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
function isValidKBName(name) {
|
|
136
|
+
return /^[a-zA-Z0-9_-]+$/.test(name) && name.length > 0 && name.length <= 64;
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=kb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kb.js","sourceRoot":"","sources":["../../../cli/commands/kb.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../cli/commands/project.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAUD,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB3E"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import * as readline from 'node:readline';
|
|
2
|
+
import { loadConfig, saveConfig } from './setup.js';
|
|
3
|
+
function prompt(rl, question) {
|
|
4
|
+
return new Promise((resolve) => {
|
|
5
|
+
rl.question(question, (answer) => {
|
|
6
|
+
resolve(answer.trim());
|
|
7
|
+
});
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
export async function projectCommand(options) {
|
|
11
|
+
const config = await loadConfig();
|
|
12
|
+
if (!config) {
|
|
13
|
+
console.error('ChaosKB is not set up. Run `chaoskb-mcp setup` first.');
|
|
14
|
+
process.exit(1);
|
|
15
|
+
return; // unreachable, but helps TypeScript
|
|
16
|
+
}
|
|
17
|
+
switch (options.action) {
|
|
18
|
+
case 'create':
|
|
19
|
+
await createProject(options.name, config);
|
|
20
|
+
break;
|
|
21
|
+
case 'list':
|
|
22
|
+
await listProjects(config);
|
|
23
|
+
break;
|
|
24
|
+
case 'delete':
|
|
25
|
+
await deleteProject(options.name, config);
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
async function createProject(name, config) {
|
|
30
|
+
// Validate name
|
|
31
|
+
if (!/^[a-zA-Z0-9_-]+$/.test(name)) {
|
|
32
|
+
console.error('Project name must contain only letters, numbers, hyphens, and underscores.');
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
// Check for duplicates
|
|
36
|
+
const existing = config.projects.find((p) => p.name === name);
|
|
37
|
+
if (existing) {
|
|
38
|
+
console.error(`Project "${name}" already exists.`);
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
console.log('');
|
|
42
|
+
console.log(` Creating project KB: ${name}`);
|
|
43
|
+
const { DatabaseManager } = await import('../../storage/database-manager.js');
|
|
44
|
+
const dbManager = new DatabaseManager();
|
|
45
|
+
dbManager.getProjectDb(name); // Creates the project DB
|
|
46
|
+
dbManager.closeAll();
|
|
47
|
+
config.projects.push({ name, createdAt: new Date().toISOString() });
|
|
48
|
+
await saveConfig(config);
|
|
49
|
+
console.log(` Project "${name}" created.`);
|
|
50
|
+
console.log('');
|
|
51
|
+
console.log(' To use with agents:');
|
|
52
|
+
console.log(` chaoskb-mcp register --project ${name}`);
|
|
53
|
+
console.log('');
|
|
54
|
+
}
|
|
55
|
+
async function listProjects(config) {
|
|
56
|
+
console.log('');
|
|
57
|
+
console.log(' Project KBs');
|
|
58
|
+
console.log(' ===========');
|
|
59
|
+
console.log('');
|
|
60
|
+
if (config.projects.length === 0) {
|
|
61
|
+
console.log(' No project KBs created.');
|
|
62
|
+
console.log('');
|
|
63
|
+
console.log(' Create one with:');
|
|
64
|
+
console.log(' chaoskb-mcp project create <name>');
|
|
65
|
+
console.log('');
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const { DatabaseManager } = await import('../../storage/database-manager.js');
|
|
69
|
+
const dbManager = new DatabaseManager();
|
|
70
|
+
for (const project of config.projects) {
|
|
71
|
+
let sourceCount = 0;
|
|
72
|
+
try {
|
|
73
|
+
const db = dbManager.getProjectDb(project.name);
|
|
74
|
+
sourceCount = db.sources.count();
|
|
75
|
+
}
|
|
76
|
+
catch { /* ignore */ }
|
|
77
|
+
console.log(` ${project.name}`);
|
|
78
|
+
console.log(` Created: ${project.createdAt}`);
|
|
79
|
+
console.log(` Articles: ${sourceCount}`);
|
|
80
|
+
}
|
|
81
|
+
dbManager.closeAll();
|
|
82
|
+
console.log('');
|
|
83
|
+
}
|
|
84
|
+
async function deleteProject(name, config) {
|
|
85
|
+
const index = config.projects.findIndex((p) => p.name === name);
|
|
86
|
+
if (index === -1) {
|
|
87
|
+
console.error(`Project "${name}" not found.`);
|
|
88
|
+
process.exit(1);
|
|
89
|
+
}
|
|
90
|
+
const rl = readline.createInterface({
|
|
91
|
+
input: process.stdin,
|
|
92
|
+
output: process.stdout,
|
|
93
|
+
});
|
|
94
|
+
try {
|
|
95
|
+
console.log('');
|
|
96
|
+
console.log(` This will permanently delete project "${name}" and all its data.`);
|
|
97
|
+
const answer = await prompt(rl, ` Type the project name to confirm: `);
|
|
98
|
+
if (answer !== name) {
|
|
99
|
+
console.log(' Confirmation failed. Deletion cancelled.');
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const { DatabaseManager } = await import('../../storage/database-manager.js');
|
|
103
|
+
const dbManager = new DatabaseManager();
|
|
104
|
+
dbManager.deleteProject(name);
|
|
105
|
+
dbManager.closeAll();
|
|
106
|
+
config.projects.splice(index, 1);
|
|
107
|
+
await saveConfig(config);
|
|
108
|
+
console.log(` Project "${name}" deleted.`);
|
|
109
|
+
console.log('');
|
|
110
|
+
}
|
|
111
|
+
finally {
|
|
112
|
+
rl.close();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../cli/commands/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ChaosKBConfig } from '../mcp-server.js';
|
|
2
|
+
export interface SharedProjectMeta {
|
|
3
|
+
name: string;
|
|
4
|
+
role: string;
|
|
5
|
+
owner: string;
|
|
6
|
+
itemCount: number;
|
|
7
|
+
}
|
|
8
|
+
export interface ProjectKeyResponse {
|
|
9
|
+
encryptedKey: string;
|
|
10
|
+
algorithm: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* List shared projects available to the current user.
|
|
14
|
+
* Calls GET /v1/projects/available (server returns metadata only).
|
|
15
|
+
*/
|
|
16
|
+
export declare function projectListAvailable(config: ChaosKBConfig): Promise<SharedProjectMeta[]>;
|
|
17
|
+
/**
|
|
18
|
+
* Enable a shared project locally: download key, create directory, add to config.
|
|
19
|
+
*/
|
|
20
|
+
export declare function projectEnable(config: ChaosKBConfig, projectName: string): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Disable a shared project: remove directory, keyring entry, and config entry.
|
|
23
|
+
*/
|
|
24
|
+
export declare function projectDisable(config: ChaosKBConfig, projectName: string): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Accept a project invite and enable the project.
|
|
27
|
+
*/
|
|
28
|
+
export declare function projectAccept(config: ChaosKBConfig, projectName: string): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Decline a project invite, optionally blocking the sender.
|
|
31
|
+
*/
|
|
32
|
+
export declare function projectDecline(config: ChaosKBConfig, projectName: string, block?: string): Promise<void>;
|
|
33
|
+
//# sourceMappingURL=projects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../../cli/commands/projects.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAgBtD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAmD9F;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsD7F;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B9F;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B7F;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import { saveConfig, CHAOSKB_DIR } from './setup.js';
|
|
4
|
+
import { SequenceCounter } from '../../sync/sequence.js';
|
|
5
|
+
const sequence = new SequenceCounter();
|
|
6
|
+
/** Convert signRequest result to fetch-compatible headers. */
|
|
7
|
+
function toHeaders(result, extra) {
|
|
8
|
+
return {
|
|
9
|
+
Authorization: result.authorization,
|
|
10
|
+
'X-ChaosKB-Timestamp': result.timestamp,
|
|
11
|
+
'X-ChaosKB-Sequence': String(result.sequence),
|
|
12
|
+
'X-ChaosKB-PublicKey': result.publicKey,
|
|
13
|
+
...extra,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* List shared projects available to the current user.
|
|
18
|
+
* Calls GET /v1/projects/available (server returns metadata only).
|
|
19
|
+
*/
|
|
20
|
+
export async function projectListAvailable(config) {
|
|
21
|
+
if (!config.endpoint) {
|
|
22
|
+
console.error('Sync is not configured. Run `chaoskb-mcp setup-sync` first.');
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
const { SSHSigner } = await import('../../sync/ssh-signer.js');
|
|
26
|
+
const signer = new SSHSigner(config.sshKeyPath);
|
|
27
|
+
const url = `${config.endpoint}/v1/projects/available`;
|
|
28
|
+
const signed = await signer.signRequest('GET', '/v1/projects/available', sequence.next());
|
|
29
|
+
const res = await fetch(url, { method: 'GET', headers: toHeaders(signed) });
|
|
30
|
+
if (!res.ok) {
|
|
31
|
+
const body = await res.text();
|
|
32
|
+
console.error(`Server error (${res.status}): ${body}`);
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
const data = (await res.json());
|
|
36
|
+
const projects = data.projects;
|
|
37
|
+
// Display as table
|
|
38
|
+
console.log('');
|
|
39
|
+
console.log(' Available Shared Projects');
|
|
40
|
+
console.log(' =========================');
|
|
41
|
+
console.log('');
|
|
42
|
+
if (projects.length === 0) {
|
|
43
|
+
console.log(' No shared projects available.');
|
|
44
|
+
console.log('');
|
|
45
|
+
return projects;
|
|
46
|
+
}
|
|
47
|
+
const nameWidth = Math.max(4, ...projects.map((p) => p.name.length));
|
|
48
|
+
const roleWidth = Math.max(4, ...projects.map((p) => p.role.length));
|
|
49
|
+
const ownerWidth = Math.max(5, ...projects.map((p) => p.owner.length));
|
|
50
|
+
const header = ` ${'NAME'.padEnd(nameWidth)} ${'ROLE'.padEnd(roleWidth)} ${'OWNER'.padEnd(ownerWidth)} ITEMS`;
|
|
51
|
+
console.log(header);
|
|
52
|
+
console.log(` ${'-'.repeat(header.length - 2)}`);
|
|
53
|
+
for (const p of projects) {
|
|
54
|
+
console.log(` ${p.name.padEnd(nameWidth)} ${p.role.padEnd(roleWidth)} ${p.owner.padEnd(ownerWidth)} ${p.itemCount}`);
|
|
55
|
+
}
|
|
56
|
+
console.log('');
|
|
57
|
+
return projects;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Enable a shared project locally: download key, create directory, add to config.
|
|
61
|
+
*/
|
|
62
|
+
export async function projectEnable(config, projectName) {
|
|
63
|
+
if (!config.endpoint) {
|
|
64
|
+
console.error('Sync is not configured. Run `chaoskb-mcp setup-sync` first.');
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
// Check if already enabled
|
|
68
|
+
const existing = config.projects.find((p) => p.name === projectName);
|
|
69
|
+
if (existing) {
|
|
70
|
+
console.log(`Project "${projectName}" is already enabled.`);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const { SSHSigner } = await import('../../sync/ssh-signer.js');
|
|
74
|
+
const signer = new SSHSigner(config.sshKeyPath);
|
|
75
|
+
// Download encrypted project key
|
|
76
|
+
const keyUrl = `${config.endpoint}/v1/projects/${encodeURIComponent(projectName)}/key`;
|
|
77
|
+
const keyHeaders = await signer.signRequest('GET', `/v1/projects/${encodeURIComponent(projectName)}/key`, sequence.next());
|
|
78
|
+
const keyRes = await fetch(keyUrl, { method: 'GET', headers: toHeaders(keyHeaders) });
|
|
79
|
+
if (!keyRes.ok) {
|
|
80
|
+
const body = await keyRes.text();
|
|
81
|
+
console.error(`Failed to download project key (${keyRes.status}): ${body}`);
|
|
82
|
+
process.exit(1);
|
|
83
|
+
}
|
|
84
|
+
const keyData = (await keyRes.json());
|
|
85
|
+
// Create project directory
|
|
86
|
+
const projectDir = path.join(CHAOSKB_DIR, 'projects', projectName);
|
|
87
|
+
fs.mkdirSync(projectDir, { recursive: true, mode: 0o700 });
|
|
88
|
+
// Store project key in keyring
|
|
89
|
+
// Stub: in production, we'd decrypt the project key using invite crypto
|
|
90
|
+
// and store the decrypted key. For now, store the encrypted key directly.
|
|
91
|
+
const { KeyringService } = await import('../../crypto/keyring.js');
|
|
92
|
+
const keyring = new KeyringService();
|
|
93
|
+
const { SecureBuffer } = await import('../../crypto/secure-buffer.js');
|
|
94
|
+
const keyBuf = SecureBuffer.from(Buffer.from(keyData.encryptedKey, 'base64'));
|
|
95
|
+
await keyring.store(`chaoskb/project-${projectName}`, 'key', keyBuf);
|
|
96
|
+
// Add to config
|
|
97
|
+
config.projects.push({ name: projectName, createdAt: new Date().toISOString() });
|
|
98
|
+
await saveConfig(config);
|
|
99
|
+
// Sync project data
|
|
100
|
+
console.log(`Syncing ${projectName}...`);
|
|
101
|
+
// Stub: actual sync would pull blobs and decrypt them.
|
|
102
|
+
// For now, count items from the project directory.
|
|
103
|
+
const itemCount = 0; // Placeholder — real sync happens in Phase 2+
|
|
104
|
+
console.log(`Syncing ${projectName}... done (${itemCount} items)`);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Disable a shared project: remove directory, keyring entry, and config entry.
|
|
108
|
+
*/
|
|
109
|
+
export async function projectDisable(config, projectName) {
|
|
110
|
+
const index = config.projects.findIndex((p) => p.name === projectName);
|
|
111
|
+
if (index === -1) {
|
|
112
|
+
console.error(`Project "${projectName}" is not enabled.`);
|
|
113
|
+
process.exit(1);
|
|
114
|
+
}
|
|
115
|
+
// Remove project directory
|
|
116
|
+
const projectDir = path.join(CHAOSKB_DIR, 'projects', projectName);
|
|
117
|
+
try {
|
|
118
|
+
fs.rmSync(projectDir, { recursive: true, force: true });
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
// Directory may not exist; that's fine
|
|
122
|
+
}
|
|
123
|
+
// Remove project key from keyring
|
|
124
|
+
try {
|
|
125
|
+
const { KeyringService } = await import('../../crypto/keyring.js');
|
|
126
|
+
const keyring = new KeyringService();
|
|
127
|
+
await keyring.delete(`chaoskb/project-${projectName}`, 'key');
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
// Key may not exist in keyring; that's fine
|
|
131
|
+
}
|
|
132
|
+
// Remove from config
|
|
133
|
+
config.projects.splice(index, 1);
|
|
134
|
+
await saveConfig(config);
|
|
135
|
+
console.log(`Stopped syncing ${projectName}. Local data removed.`);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Accept a project invite and enable the project.
|
|
139
|
+
*/
|
|
140
|
+
export async function projectAccept(config, projectName) {
|
|
141
|
+
if (!config.endpoint) {
|
|
142
|
+
console.error('Sync is not configured. Run `chaoskb-mcp setup-sync` first.');
|
|
143
|
+
process.exit(1);
|
|
144
|
+
}
|
|
145
|
+
const { SSHSigner } = await import('../../sync/ssh-signer.js');
|
|
146
|
+
const signer = new SSHSigner(config.sshKeyPath);
|
|
147
|
+
// Accept the invite via server
|
|
148
|
+
const acceptUrl = `${config.endpoint}/v1/invites/${encodeURIComponent(projectName)}/accept`;
|
|
149
|
+
const acceptHeaders = await signer.signRequest('POST', `/v1/invites/${encodeURIComponent(projectName)}/accept`, sequence.next());
|
|
150
|
+
const acceptRes = await fetch(acceptUrl, {
|
|
151
|
+
method: 'POST',
|
|
152
|
+
headers: toHeaders(acceptHeaders, { 'Content-Type': 'application/json' }),
|
|
153
|
+
body: JSON.stringify({}),
|
|
154
|
+
});
|
|
155
|
+
if (!acceptRes.ok) {
|
|
156
|
+
const body = await acceptRes.text();
|
|
157
|
+
console.error(`Failed to accept invite (${acceptRes.status}): ${body}`);
|
|
158
|
+
process.exit(1);
|
|
159
|
+
}
|
|
160
|
+
console.log(`Invite for "${projectName}" accepted.`);
|
|
161
|
+
// Now enable the project locally
|
|
162
|
+
await projectEnable(config, projectName);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Decline a project invite, optionally blocking the sender.
|
|
166
|
+
*/
|
|
167
|
+
export async function projectDecline(config, projectName, block) {
|
|
168
|
+
if (!config.endpoint) {
|
|
169
|
+
console.error('Sync is not configured. Run `chaoskb-mcp setup-sync` first.');
|
|
170
|
+
process.exit(1);
|
|
171
|
+
}
|
|
172
|
+
const { SSHSigner } = await import('../../sync/ssh-signer.js');
|
|
173
|
+
const signer = new SSHSigner(config.sshKeyPath);
|
|
174
|
+
const declineUrl = `${config.endpoint}/v1/invites/${encodeURIComponent(projectName)}/decline`;
|
|
175
|
+
const declineHeaders = await signer.signRequest('POST', `/v1/invites/${encodeURIComponent(projectName)}/decline`, sequence.next());
|
|
176
|
+
const declineRes = await fetch(declineUrl, {
|
|
177
|
+
method: 'POST',
|
|
178
|
+
headers: toHeaders(declineHeaders, { 'Content-Type': 'application/json' }),
|
|
179
|
+
body: JSON.stringify({ block: block ?? null }),
|
|
180
|
+
});
|
|
181
|
+
if (!declineRes.ok) {
|
|
182
|
+
const body = await declineRes.text();
|
|
183
|
+
console.error(`Failed to decline invite (${declineRes.status}): ${body}`);
|
|
184
|
+
process.exit(1);
|
|
185
|
+
}
|
|
186
|
+
const blockMsg = block ? ` (blocked ${block})` : '';
|
|
187
|
+
console.log(`Invite for "${projectName}" declined${blockMsg}.`);
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../../cli/commands/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAc,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;AAEvC,8DAA8D;AAC9D,SAAS,SAAS,CAAC,MAAyF,EAAE,KAA8B;IAC1I,OAAO;QACL,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,qBAAqB,EAAE,MAAM,CAAC,SAAS;QACvC,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC7C,qBAAqB,EAAE,MAAM,CAAC,SAAS;QACvC,GAAG,KAAK;KACT,CAAC;AACJ,CAAC;AAcD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAAqB;IAC9D,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,UAAW,CAAC,CAAC;IAEjD,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,wBAAwB,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,wBAAwB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAE1F,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAE5E,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,iBAAiB,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAsC,CAAC;IACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAE/B,mBAAmB;IACnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvE,MAAM,MAAM,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;IAClH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAElD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,CAC5G,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAqB,EAAE,WAAmB;IAC5E,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IACrE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,uBAAuB,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,UAAW,CAAC,CAAC;IAEjD,iCAAiC;IACjC,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,gBAAgB,kBAAkB,CAAC,WAAW,CAAC,MAAM,CAAC;IACvF,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,gBAAgB,kBAAkB,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAE3H,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAEtF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,mCAAmC,MAAM,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAuB,CAAC;IAE5D,2BAA2B;IAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACnE,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAE3D,+BAA+B;IAC/B,wEAAwE;IACxE,0EAA0E;IAC1E,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;IACrC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9E,MAAM,OAAO,CAAC,KAAK,CAAC,mBAAmB,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAErE,gBAAgB;IAChB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACjF,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;IAEzB,oBAAoB;IACpB,OAAO,CAAC,GAAG,CAAC,WAAW,WAAW,KAAK,CAAC,CAAC;IAEzC,uDAAuD;IACvD,mDAAmD;IACnD,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,8CAA8C;IACnE,OAAO,CAAC,GAAG,CAAC,WAAW,WAAW,aAAa,SAAS,SAAS,CAAC,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAqB,EAAE,WAAmB;IAC7E,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IACvE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,YAAY,WAAW,mBAAmB,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,2BAA2B;IAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACnE,IAAI,CAAC;QACH,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;IAED,kCAAkC;IAClC,IAAI,CAAC;QACH,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;QACrC,MAAM,OAAO,CAAC,MAAM,CAAC,mBAAmB,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,4CAA4C;IAC9C,CAAC;IAED,qBAAqB;IACrB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACjC,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;IAEzB,OAAO,CAAC,GAAG,CAAC,mBAAmB,WAAW,uBAAuB,CAAC,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAqB,EAAE,WAAmB;IAC5E,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,UAAW,CAAC,CAAC;IAEjD,+BAA+B;IAC/B,MAAM,SAAS,GAAG,GAAG,MAAM,CAAC,QAAQ,eAAe,kBAAkB,CAAC,WAAW,CAAC,SAAS,CAAC;IAC5F,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,eAAe,kBAAkB,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAEjI,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;QACvC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,SAAS,CAAC,aAAa,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QACzE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;KACzB,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,4BAA4B,SAAS,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,aAAa,CAAC,CAAC;IAErD,iCAAiC;IACjC,MAAM,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAqB,EACrB,WAAmB,EACnB,KAAc;IAEd,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,UAAW,CAAC,CAAC;IAEjD,MAAM,UAAU,GAAG,GAAG,MAAM,CAAC,QAAQ,eAAe,kBAAkB,CAAC,WAAW,CAAC,UAAU,CAAC;IAC9F,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,eAAe,kBAAkB,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAEnI,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE;QACzC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,SAAS,CAAC,cAAc,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAC1E,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;KAC/C,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,6BAA6B,UAAU,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,aAAa,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,aAAa,QAAQ,GAAG,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { removeAgentConfig } from '../agent-registry/config-merger.js';
|
|
2
|
+
export interface RegisterOptions {
|
|
3
|
+
agentName?: string;
|
|
4
|
+
projectName?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function registerCommand(options: RegisterOptions): Promise<void>;
|
|
7
|
+
export { removeAgentConfig };
|
|
8
|
+
//# sourceMappingURL=register.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../cli/commands/register.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,iBAAiB,EAElB,MAAM,oCAAoC,CAAC;AAiC5C,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAiI7E;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|