@stoneforge/quarry 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/LICENSE +13 -0
- package/README.md +160 -0
- package/dist/api/index.d.ts +8 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +8 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/quarry-api.d.ts +268 -0
- package/dist/api/quarry-api.d.ts.map +1 -0
- package/dist/api/quarry-api.js +3905 -0
- package/dist/api/quarry-api.js.map +1 -0
- package/dist/api/types.d.ts +1359 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +204 -0
- package/dist/api/types.js.map +1 -0
- package/dist/bin/sf.d.ts +3 -0
- package/dist/bin/sf.d.ts.map +1 -0
- package/dist/bin/sf.js +9 -0
- package/dist/bin/sf.js.map +1 -0
- package/dist/cli/commands/admin.d.ts +11 -0
- package/dist/cli/commands/admin.d.ts.map +1 -0
- package/dist/cli/commands/admin.js +465 -0
- package/dist/cli/commands/admin.js.map +1 -0
- package/dist/cli/commands/alias.d.ts +8 -0
- package/dist/cli/commands/alias.d.ts.map +1 -0
- package/dist/cli/commands/alias.js +70 -0
- package/dist/cli/commands/alias.js.map +1 -0
- package/dist/cli/commands/channel.d.ts +13 -0
- package/dist/cli/commands/channel.d.ts.map +1 -0
- package/dist/cli/commands/channel.js +680 -0
- package/dist/cli/commands/channel.js.map +1 -0
- package/dist/cli/commands/completion.d.ts +8 -0
- package/dist/cli/commands/completion.d.ts.map +1 -0
- package/dist/cli/commands/completion.js +87 -0
- package/dist/cli/commands/completion.js.map +1 -0
- package/dist/cli/commands/config.d.ts +12 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +242 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/crud.d.ts +64 -0
- package/dist/cli/commands/crud.d.ts.map +1 -0
- package/dist/cli/commands/crud.js +805 -0
- package/dist/cli/commands/crud.js.map +1 -0
- package/dist/cli/commands/dep.d.ts +16 -0
- package/dist/cli/commands/dep.d.ts.map +1 -0
- package/dist/cli/commands/dep.js +499 -0
- package/dist/cli/commands/dep.js.map +1 -0
- package/dist/cli/commands/document.d.ts +12 -0
- package/dist/cli/commands/document.d.ts.map +1 -0
- package/dist/cli/commands/document.js +1039 -0
- package/dist/cli/commands/document.js.map +1 -0
- package/dist/cli/commands/embeddings.d.ts +12 -0
- package/dist/cli/commands/embeddings.d.ts.map +1 -0
- package/dist/cli/commands/embeddings.js +273 -0
- package/dist/cli/commands/embeddings.js.map +1 -0
- package/dist/cli/commands/entity.d.ts +16 -0
- package/dist/cli/commands/entity.d.ts.map +1 -0
- package/dist/cli/commands/entity.js +522 -0
- package/dist/cli/commands/entity.js.map +1 -0
- package/dist/cli/commands/gc.d.ts +10 -0
- package/dist/cli/commands/gc.d.ts.map +1 -0
- package/dist/cli/commands/gc.js +257 -0
- package/dist/cli/commands/gc.js.map +1 -0
- package/dist/cli/commands/help.d.ts +11 -0
- package/dist/cli/commands/help.d.ts.map +1 -0
- package/dist/cli/commands/help.js +169 -0
- package/dist/cli/commands/help.js.map +1 -0
- package/dist/cli/commands/history.d.ts +9 -0
- package/dist/cli/commands/history.d.ts.map +1 -0
- package/dist/cli/commands/history.js +160 -0
- package/dist/cli/commands/history.js.map +1 -0
- package/dist/cli/commands/identity.d.ts +18 -0
- package/dist/cli/commands/identity.d.ts.map +1 -0
- package/dist/cli/commands/identity.js +698 -0
- package/dist/cli/commands/identity.js.map +1 -0
- package/dist/cli/commands/inbox.d.ts +20 -0
- package/dist/cli/commands/inbox.d.ts.map +1 -0
- package/dist/cli/commands/inbox.js +493 -0
- package/dist/cli/commands/inbox.js.map +1 -0
- package/dist/cli/commands/init.d.ts +20 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +144 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/install.d.ts +9 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +200 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/library.d.ts +12 -0
- package/dist/cli/commands/library.d.ts.map +1 -0
- package/dist/cli/commands/library.js +665 -0
- package/dist/cli/commands/library.js.map +1 -0
- package/dist/cli/commands/message.d.ts +11 -0
- package/dist/cli/commands/message.d.ts.map +1 -0
- package/dist/cli/commands/message.js +608 -0
- package/dist/cli/commands/message.js.map +1 -0
- package/dist/cli/commands/plan.d.ts +17 -0
- package/dist/cli/commands/plan.d.ts.map +1 -0
- package/dist/cli/commands/plan.js +698 -0
- package/dist/cli/commands/plan.js.map +1 -0
- package/dist/cli/commands/playbook.d.ts +12 -0
- package/dist/cli/commands/playbook.d.ts.map +1 -0
- package/dist/cli/commands/playbook.js +730 -0
- package/dist/cli/commands/playbook.js.map +1 -0
- package/dist/cli/commands/reset.d.ts +12 -0
- package/dist/cli/commands/reset.d.ts.map +1 -0
- package/dist/cli/commands/reset.js +306 -0
- package/dist/cli/commands/reset.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +11 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +106 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/stats.d.ts +8 -0
- package/dist/cli/commands/stats.d.ts.map +1 -0
- package/dist/cli/commands/stats.js +82 -0
- package/dist/cli/commands/stats.js.map +1 -0
- package/dist/cli/commands/sync.d.ts +14 -0
- package/dist/cli/commands/sync.d.ts.map +1 -0
- package/dist/cli/commands/sync.js +370 -0
- package/dist/cli/commands/sync.js.map +1 -0
- package/dist/cli/commands/task.d.ts +25 -0
- package/dist/cli/commands/task.d.ts.map +1 -0
- package/dist/cli/commands/task.js +1153 -0
- package/dist/cli/commands/task.js.map +1 -0
- package/dist/cli/commands/team.d.ts +13 -0
- package/dist/cli/commands/team.d.ts.map +1 -0
- package/dist/cli/commands/team.js +471 -0
- package/dist/cli/commands/team.js.map +1 -0
- package/dist/cli/commands/workflow.d.ts +16 -0
- package/dist/cli/commands/workflow.d.ts.map +1 -0
- package/dist/cli/commands/workflow.js +753 -0
- package/dist/cli/commands/workflow.js.map +1 -0
- package/dist/cli/completion.d.ts +28 -0
- package/dist/cli/completion.d.ts.map +1 -0
- package/dist/cli/completion.js +295 -0
- package/dist/cli/completion.js.map +1 -0
- package/dist/cli/db.d.ts +38 -0
- package/dist/cli/db.d.ts.map +1 -0
- package/dist/cli/db.js +90 -0
- package/dist/cli/db.js.map +1 -0
- package/dist/cli/formatter.d.ts +87 -0
- package/dist/cli/formatter.d.ts.map +1 -0
- package/dist/cli/formatter.js +464 -0
- package/dist/cli/formatter.js.map +1 -0
- package/dist/cli/index.d.ts +33 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +38 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/parser.d.ts +45 -0
- package/dist/cli/parser.d.ts.map +1 -0
- package/dist/cli/parser.js +256 -0
- package/dist/cli/parser.js.map +1 -0
- package/dist/cli/plugin-loader.d.ts +39 -0
- package/dist/cli/plugin-loader.d.ts.map +1 -0
- package/dist/cli/plugin-loader.js +165 -0
- package/dist/cli/plugin-loader.js.map +1 -0
- package/dist/cli/plugin-registry.d.ts +50 -0
- package/dist/cli/plugin-registry.d.ts.map +1 -0
- package/dist/cli/plugin-registry.js +206 -0
- package/dist/cli/plugin-registry.js.map +1 -0
- package/dist/cli/plugin-types.d.ts +106 -0
- package/dist/cli/plugin-types.d.ts.map +1 -0
- package/dist/cli/plugin-types.js +103 -0
- package/dist/cli/plugin-types.js.map +1 -0
- package/dist/cli/runner.d.ts +35 -0
- package/dist/cli/runner.d.ts.map +1 -0
- package/dist/cli/runner.js +340 -0
- package/dist/cli/runner.js.map +1 -0
- package/dist/cli/suggest.d.ts +15 -0
- package/dist/cli/suggest.d.ts.map +1 -0
- package/dist/cli/suggest.js +49 -0
- package/dist/cli/suggest.js.map +1 -0
- package/dist/cli/types.d.ts +138 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +63 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/config/config.d.ts +86 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +348 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/defaults.d.ts +66 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +114 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/duration.d.ts +75 -0
- package/dist/config/duration.d.ts.map +1 -0
- package/dist/config/duration.js +190 -0
- package/dist/config/duration.js.map +1 -0
- package/dist/config/env.d.ts +67 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +207 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/file.d.ts +97 -0
- package/dist/config/file.d.ts.map +1 -0
- package/dist/config/file.js +365 -0
- package/dist/config/file.js.map +1 -0
- package/dist/config/index.d.ts +35 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +41 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/merge.d.ts +53 -0
- package/dist/config/merge.d.ts.map +1 -0
- package/dist/config/merge.js +226 -0
- package/dist/config/merge.js.map +1 -0
- package/dist/config/types.d.ts +257 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +72 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/validation.d.ts +55 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +251 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/http/index.d.ts +8 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +12 -0
- package/dist/http/index.js.map +1 -0
- package/dist/http/sync-handlers.d.ts +162 -0
- package/dist/http/sync-handlers.d.ts.map +1 -0
- package/dist/http/sync-handlers.js +271 -0
- package/dist/http/sync-handlers.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +69 -0
- package/dist/index.js.map +1 -0
- package/dist/server/index.d.ts +34 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +3329 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/static.d.ts +18 -0
- package/dist/server/static.d.ts.map +1 -0
- package/dist/server/static.js +71 -0
- package/dist/server/static.js.map +1 -0
- package/dist/server/ws/broadcaster.d.ts +8 -0
- package/dist/server/ws/broadcaster.d.ts.map +1 -0
- package/dist/server/ws/broadcaster.js +7 -0
- package/dist/server/ws/broadcaster.js.map +1 -0
- package/dist/server/ws/handler.d.ts +55 -0
- package/dist/server/ws/handler.d.ts.map +1 -0
- package/dist/server/ws/handler.js +160 -0
- package/dist/server/ws/handler.js.map +1 -0
- package/dist/services/blocked-cache.d.ts +297 -0
- package/dist/services/blocked-cache.d.ts.map +1 -0
- package/dist/services/blocked-cache.js +755 -0
- package/dist/services/blocked-cache.js.map +1 -0
- package/dist/services/dependency.d.ts +205 -0
- package/dist/services/dependency.d.ts.map +1 -0
- package/dist/services/dependency.js +566 -0
- package/dist/services/dependency.js.map +1 -0
- package/dist/services/embeddings/fusion.d.ts +33 -0
- package/dist/services/embeddings/fusion.d.ts.map +1 -0
- package/dist/services/embeddings/fusion.js +34 -0
- package/dist/services/embeddings/fusion.js.map +1 -0
- package/dist/services/embeddings/index.d.ts +12 -0
- package/dist/services/embeddings/index.d.ts.map +1 -0
- package/dist/services/embeddings/index.js +10 -0
- package/dist/services/embeddings/index.js.map +1 -0
- package/dist/services/embeddings/local-provider.d.ts +31 -0
- package/dist/services/embeddings/local-provider.d.ts.map +1 -0
- package/dist/services/embeddings/local-provider.js +80 -0
- package/dist/services/embeddings/local-provider.js.map +1 -0
- package/dist/services/embeddings/service.d.ts +76 -0
- package/dist/services/embeddings/service.d.ts.map +1 -0
- package/dist/services/embeddings/service.js +153 -0
- package/dist/services/embeddings/service.js.map +1 -0
- package/dist/services/embeddings/types.d.ts +70 -0
- package/dist/services/embeddings/types.d.ts.map +1 -0
- package/dist/services/embeddings/types.js +8 -0
- package/dist/services/embeddings/types.js.map +1 -0
- package/dist/services/id-length-cache.d.ts +156 -0
- package/dist/services/id-length-cache.d.ts.map +1 -0
- package/dist/services/id-length-cache.js +197 -0
- package/dist/services/id-length-cache.js.map +1 -0
- package/dist/services/inbox.d.ts +147 -0
- package/dist/services/inbox.d.ts.map +1 -0
- package/dist/services/inbox.js +428 -0
- package/dist/services/inbox.js.map +1 -0
- package/dist/services/index.d.ts +10 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +10 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/priority-service.d.ts +145 -0
- package/dist/services/priority-service.d.ts.map +1 -0
- package/dist/services/priority-service.js +272 -0
- package/dist/services/priority-service.js.map +1 -0
- package/dist/services/search-utils.d.ts +47 -0
- package/dist/services/search-utils.d.ts.map +1 -0
- package/dist/services/search-utils.js +83 -0
- package/dist/services/search-utils.js.map +1 -0
- package/dist/sync/hash.d.ts +48 -0
- package/dist/sync/hash.d.ts.map +1 -0
- package/dist/sync/hash.js +136 -0
- package/dist/sync/hash.js.map +1 -0
- package/dist/sync/index.d.ts +11 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +16 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/merge.d.ts +80 -0
- package/dist/sync/merge.d.ts.map +1 -0
- package/dist/sync/merge.js +310 -0
- package/dist/sync/merge.js.map +1 -0
- package/dist/sync/serialization.d.ts +132 -0
- package/dist/sync/serialization.d.ts.map +1 -0
- package/dist/sync/serialization.js +306 -0
- package/dist/sync/serialization.js.map +1 -0
- package/dist/sync/service.d.ts +102 -0
- package/dist/sync/service.d.ts.map +1 -0
- package/dist/sync/service.js +493 -0
- package/dist/sync/service.js.map +1 -0
- package/dist/sync/types.d.ts +275 -0
- package/dist/sync/types.d.ts.map +1 -0
- package/dist/sync/types.js +76 -0
- package/dist/sync/types.js.map +1 -0
- package/dist/systems/identity.d.ts +479 -0
- package/dist/systems/identity.d.ts.map +1 -0
- package/dist/systems/identity.js +817 -0
- package/dist/systems/identity.js.map +1 -0
- package/dist/systems/index.d.ts +8 -0
- package/dist/systems/index.d.ts.map +1 -0
- package/dist/systems/index.js +29 -0
- package/dist/systems/index.js.map +1 -0
- package/package.json +121 -0
- package/web/assets/charts-vendor-D1YcbGux.js +55 -0
- package/web/assets/dnd-vendor-DmxE-_ZH.js +5 -0
- package/web/assets/editor-vendor-BxraAWts.js +279 -0
- package/web/assets/index-B77vv208.js +341 -0
- package/web/assets/index-CF_XnVLh.css +1 -0
- package/web/assets/router-vendor-BCKpRBrB.js +41 -0
- package/web/assets/ui-vendor-DUahGnbT.js +45 -0
- package/web/assets/utils-vendor-CfYKiENT.js +813 -0
- package/web/favicon.ico +0 -0
- package/web/index.html +23 -0
- package/web/logo.png +0 -0
|
@@ -0,0 +1,522 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity Commands - Entity registration and listing
|
|
3
|
+
*
|
|
4
|
+
* Provides CLI commands for entity operations:
|
|
5
|
+
* - entity register: Register a new entity (agent, human, or system)
|
|
6
|
+
* - entity list: List all registered entities
|
|
7
|
+
*/
|
|
8
|
+
import { success, failure, ExitCode } from '../types.js';
|
|
9
|
+
import { getOutputMode } from '../formatter.js';
|
|
10
|
+
import { createEntity, EntityTypeValue } from '@stoneforge/core';
|
|
11
|
+
import { getFormatter } from '../formatter.js';
|
|
12
|
+
import { ValidationError, ConflictError } from '@stoneforge/core';
|
|
13
|
+
import { getValue, loadConfig } from '../../config/index.js';
|
|
14
|
+
import { isValidPublicKey } from '../../systems/identity.js';
|
|
15
|
+
import { createAPI as createSharedAPI } from '../db.js';
|
|
16
|
+
/**
|
|
17
|
+
* Get the current actor from options or config
|
|
18
|
+
*/
|
|
19
|
+
function getActor(options) {
|
|
20
|
+
if (options.actor) {
|
|
21
|
+
return options.actor;
|
|
22
|
+
}
|
|
23
|
+
loadConfig();
|
|
24
|
+
return getValue('actor') || 'anonymous';
|
|
25
|
+
}
|
|
26
|
+
async function entityRegisterHandler(args, options) {
|
|
27
|
+
if (args.length === 0) {
|
|
28
|
+
return failure('Usage: sf entity register <name> [--type <type>]\nExample: sf entity register claude --type agent', ExitCode.INVALID_ARGUMENTS);
|
|
29
|
+
}
|
|
30
|
+
const name = args[0];
|
|
31
|
+
const entityType = (options.type || 'agent');
|
|
32
|
+
// Validate entity type
|
|
33
|
+
const validTypes = Object.values(EntityTypeValue);
|
|
34
|
+
if (!validTypes.includes(entityType)) {
|
|
35
|
+
return failure(`Invalid entity type: ${entityType}. Must be one of: ${validTypes.join(', ')}`, ExitCode.VALIDATION);
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
const { api, error: dbError } = createSharedAPI(options, true);
|
|
39
|
+
if (dbError) {
|
|
40
|
+
return failure(dbError, ExitCode.NOT_FOUND);
|
|
41
|
+
}
|
|
42
|
+
const actor = getActor(options);
|
|
43
|
+
const tags = options.tag || [];
|
|
44
|
+
const publicKey = options['public-key'];
|
|
45
|
+
// Validate public key format if provided
|
|
46
|
+
if (publicKey !== undefined) {
|
|
47
|
+
if (!isValidPublicKey(publicKey)) {
|
|
48
|
+
return failure('Invalid public key format. Expected base64-encoded Ed25519 public key (44 characters ending with =)', ExitCode.VALIDATION);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const input = {
|
|
52
|
+
name,
|
|
53
|
+
entityType,
|
|
54
|
+
createdBy: actor,
|
|
55
|
+
...(publicKey && { publicKey }),
|
|
56
|
+
...(tags.length > 0 && { tags }),
|
|
57
|
+
};
|
|
58
|
+
// Create the entity
|
|
59
|
+
const entity = await createEntity(input);
|
|
60
|
+
// Persist to database
|
|
61
|
+
const created = await api.create(entity);
|
|
62
|
+
const mode = getOutputMode(options);
|
|
63
|
+
if (mode === 'json') {
|
|
64
|
+
return success(created);
|
|
65
|
+
}
|
|
66
|
+
if (mode === 'quiet') {
|
|
67
|
+
return success(created.id);
|
|
68
|
+
}
|
|
69
|
+
return success(created, `Registered ${entityType} entity: ${name} (${created.id})`);
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
if (err instanceof ValidationError) {
|
|
73
|
+
return failure(`Validation error: ${err.message}`, ExitCode.VALIDATION);
|
|
74
|
+
}
|
|
75
|
+
if (err instanceof ConflictError) {
|
|
76
|
+
return failure(`Entity already exists: ${err.message}`, ExitCode.VALIDATION);
|
|
77
|
+
}
|
|
78
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
79
|
+
return failure(`Failed to register entity: ${message}`, ExitCode.GENERAL_ERROR);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const registerOptions = [
|
|
83
|
+
{
|
|
84
|
+
name: 'type',
|
|
85
|
+
short: 't',
|
|
86
|
+
description: 'Entity type: agent, human, or system (default: agent)',
|
|
87
|
+
hasValue: true,
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
name: 'public-key',
|
|
91
|
+
description: 'Base64-encoded Ed25519 public key for cryptographic identity',
|
|
92
|
+
hasValue: true,
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
name: 'tag',
|
|
96
|
+
description: 'Tag to add to entity (can be repeated)',
|
|
97
|
+
hasValue: true,
|
|
98
|
+
array: true,
|
|
99
|
+
},
|
|
100
|
+
];
|
|
101
|
+
async function entityListHandler(_args, options) {
|
|
102
|
+
try {
|
|
103
|
+
const { api, error: dbError } = createSharedAPI(options, true);
|
|
104
|
+
if (dbError) {
|
|
105
|
+
return failure(dbError, ExitCode.NOT_FOUND);
|
|
106
|
+
}
|
|
107
|
+
// Build filter
|
|
108
|
+
const filter = {
|
|
109
|
+
type: 'entity',
|
|
110
|
+
};
|
|
111
|
+
if (options.limit) {
|
|
112
|
+
filter.limit = options.limit;
|
|
113
|
+
}
|
|
114
|
+
// Get entities
|
|
115
|
+
const entities = await api.list(filter);
|
|
116
|
+
// Filter by entity type if specified
|
|
117
|
+
let filteredEntities = entities;
|
|
118
|
+
if (options.type) {
|
|
119
|
+
filteredEntities = entities.filter((e) => e.entityType === options.type);
|
|
120
|
+
}
|
|
121
|
+
const mode = getOutputMode(options);
|
|
122
|
+
if (mode === 'json') {
|
|
123
|
+
return success(filteredEntities);
|
|
124
|
+
}
|
|
125
|
+
if (mode === 'quiet') {
|
|
126
|
+
return success(filteredEntities.map((e) => e.id).join('\n'));
|
|
127
|
+
}
|
|
128
|
+
if (filteredEntities.length === 0) {
|
|
129
|
+
return success(filteredEntities, 'No entities found.');
|
|
130
|
+
}
|
|
131
|
+
// Human-readable output
|
|
132
|
+
const lines = [];
|
|
133
|
+
lines.push('Entities:');
|
|
134
|
+
lines.push('');
|
|
135
|
+
for (const entity of filteredEntities) {
|
|
136
|
+
const typeIcon = getEntityTypeIcon(entity.entityType);
|
|
137
|
+
const keyIndicator = entity.publicKey ? ' 🔑' : '';
|
|
138
|
+
lines.push(`${typeIcon} ${entity.name} (${entity.id})${keyIndicator}`);
|
|
139
|
+
lines.push(` Type: ${entity.entityType}`);
|
|
140
|
+
if (entity.tags.length > 0) {
|
|
141
|
+
lines.push(` Tags: ${entity.tags.join(', ')}`);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
lines.push('');
|
|
145
|
+
lines.push(`Total: ${filteredEntities.length} entities`);
|
|
146
|
+
return success(filteredEntities, lines.join('\n'));
|
|
147
|
+
}
|
|
148
|
+
catch (err) {
|
|
149
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
150
|
+
return failure(`Failed to list entities: ${message}`, ExitCode.GENERAL_ERROR);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
function getEntityTypeIcon(entityType) {
|
|
154
|
+
switch (entityType) {
|
|
155
|
+
case EntityTypeValue.AGENT:
|
|
156
|
+
return '[A]';
|
|
157
|
+
case EntityTypeValue.HUMAN:
|
|
158
|
+
return '[H]';
|
|
159
|
+
case EntityTypeValue.SYSTEM:
|
|
160
|
+
return '[S]';
|
|
161
|
+
default:
|
|
162
|
+
return '[?]';
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
const listOptions = [
|
|
166
|
+
{
|
|
167
|
+
name: 'type',
|
|
168
|
+
short: 't',
|
|
169
|
+
description: 'Filter by entity type: agent, human, or system',
|
|
170
|
+
hasValue: true,
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
name: 'limit',
|
|
174
|
+
short: 'l',
|
|
175
|
+
description: 'Maximum number of entities to return',
|
|
176
|
+
hasValue: true,
|
|
177
|
+
},
|
|
178
|
+
];
|
|
179
|
+
// ============================================================================
|
|
180
|
+
// Entity Lookup Helper
|
|
181
|
+
// ============================================================================
|
|
182
|
+
/**
|
|
183
|
+
* Resolves an entity by ID or name.
|
|
184
|
+
* If the value starts with 'el-', it's treated as an ID.
|
|
185
|
+
* Otherwise, it's looked up by name.
|
|
186
|
+
*/
|
|
187
|
+
async function resolveEntity(api, idOrName) {
|
|
188
|
+
if (idOrName.startsWith('el-')) {
|
|
189
|
+
// Treat as ID
|
|
190
|
+
return api.get(idOrName);
|
|
191
|
+
}
|
|
192
|
+
// Look up by name
|
|
193
|
+
const entity = await api.lookupEntityByName(idOrName);
|
|
194
|
+
return entity;
|
|
195
|
+
}
|
|
196
|
+
// ============================================================================
|
|
197
|
+
// Set Manager Command
|
|
198
|
+
// ============================================================================
|
|
199
|
+
async function setManagerHandler(args, options) {
|
|
200
|
+
if (args.length < 2) {
|
|
201
|
+
return failure('Usage: sf entity set-manager <entity> <manager>\nExample: sf entity set-manager alice bob', ExitCode.INVALID_ARGUMENTS);
|
|
202
|
+
}
|
|
203
|
+
const [entityArg, managerArg] = args;
|
|
204
|
+
try {
|
|
205
|
+
const { api, error: dbError } = createSharedAPI(options, true);
|
|
206
|
+
if (dbError) {
|
|
207
|
+
return failure(dbError, ExitCode.NOT_FOUND);
|
|
208
|
+
}
|
|
209
|
+
// Resolve entity
|
|
210
|
+
const entity = await resolveEntity(api, entityArg);
|
|
211
|
+
if (!entity) {
|
|
212
|
+
return failure(`Entity not found: ${entityArg}`, ExitCode.NOT_FOUND);
|
|
213
|
+
}
|
|
214
|
+
// Resolve manager
|
|
215
|
+
const manager = await resolveEntity(api, managerArg);
|
|
216
|
+
if (!manager) {
|
|
217
|
+
return failure(`Manager entity not found: ${managerArg}`, ExitCode.NOT_FOUND);
|
|
218
|
+
}
|
|
219
|
+
const actor = getActor(options);
|
|
220
|
+
// Set the manager
|
|
221
|
+
const updated = await api.setEntityManager(entity.id, manager.id, actor);
|
|
222
|
+
const mode = getOutputMode(options);
|
|
223
|
+
if (mode === 'json') {
|
|
224
|
+
return success(updated);
|
|
225
|
+
}
|
|
226
|
+
if (mode === 'quiet') {
|
|
227
|
+
return success(updated.id);
|
|
228
|
+
}
|
|
229
|
+
return success(updated, `Set ${entity.name}'s manager to ${manager.name}`);
|
|
230
|
+
}
|
|
231
|
+
catch (err) {
|
|
232
|
+
if (err instanceof ValidationError) {
|
|
233
|
+
return failure(`Validation error: ${err.message}`, ExitCode.VALIDATION);
|
|
234
|
+
}
|
|
235
|
+
if (err instanceof ConflictError) {
|
|
236
|
+
return failure(`Conflict: ${err.message}`, ExitCode.VALIDATION);
|
|
237
|
+
}
|
|
238
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
239
|
+
return failure(`Failed to set manager: ${message}`, ExitCode.GENERAL_ERROR);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
export const setManagerCommand = {
|
|
243
|
+
name: 'set-manager',
|
|
244
|
+
description: 'Set an entity\'s manager',
|
|
245
|
+
usage: 'sf entity set-manager <entity> <manager>',
|
|
246
|
+
help: `Set the manager for an entity.
|
|
247
|
+
|
|
248
|
+
Arguments:
|
|
249
|
+
entity Entity ID or name to update
|
|
250
|
+
manager Manager entity ID or name
|
|
251
|
+
|
|
252
|
+
The entity will report to the specified manager.
|
|
253
|
+
Validates that:
|
|
254
|
+
- Both entities exist
|
|
255
|
+
- No self-reference
|
|
256
|
+
- No circular management chains
|
|
257
|
+
|
|
258
|
+
Examples:
|
|
259
|
+
sf entity set-manager alice bob
|
|
260
|
+
sf entity set-manager el-abc123 el-def456`,
|
|
261
|
+
options: [],
|
|
262
|
+
handler: setManagerHandler,
|
|
263
|
+
};
|
|
264
|
+
// ============================================================================
|
|
265
|
+
// Clear Manager Command
|
|
266
|
+
// ============================================================================
|
|
267
|
+
async function clearManagerHandler(args, options) {
|
|
268
|
+
if (args.length < 1) {
|
|
269
|
+
return failure('Usage: sf entity clear-manager <entity>\nExample: sf entity clear-manager alice', ExitCode.INVALID_ARGUMENTS);
|
|
270
|
+
}
|
|
271
|
+
const [entityArg] = args;
|
|
272
|
+
try {
|
|
273
|
+
const { api, error: dbError } = createSharedAPI(options, true);
|
|
274
|
+
if (dbError) {
|
|
275
|
+
return failure(dbError, ExitCode.NOT_FOUND);
|
|
276
|
+
}
|
|
277
|
+
// Resolve entity
|
|
278
|
+
const entity = await resolveEntity(api, entityArg);
|
|
279
|
+
if (!entity) {
|
|
280
|
+
return failure(`Entity not found: ${entityArg}`, ExitCode.NOT_FOUND);
|
|
281
|
+
}
|
|
282
|
+
const actor = getActor(options);
|
|
283
|
+
// Clear the manager
|
|
284
|
+
const updated = await api.clearEntityManager(entity.id, actor);
|
|
285
|
+
const mode = getOutputMode(options);
|
|
286
|
+
if (mode === 'json') {
|
|
287
|
+
return success(updated);
|
|
288
|
+
}
|
|
289
|
+
if (mode === 'quiet') {
|
|
290
|
+
return success(updated.id);
|
|
291
|
+
}
|
|
292
|
+
return success(updated, `Cleared manager for ${entity.name}`);
|
|
293
|
+
}
|
|
294
|
+
catch (err) {
|
|
295
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
296
|
+
return failure(`Failed to clear manager: ${message}`, ExitCode.GENERAL_ERROR);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
export const clearManagerCommand = {
|
|
300
|
+
name: 'clear-manager',
|
|
301
|
+
description: 'Clear an entity\'s manager',
|
|
302
|
+
usage: 'sf entity clear-manager <entity>',
|
|
303
|
+
help: `Clear the manager for an entity.
|
|
304
|
+
|
|
305
|
+
Arguments:
|
|
306
|
+
entity Entity ID or name to update
|
|
307
|
+
|
|
308
|
+
Removes the reporting relationship for the entity.
|
|
309
|
+
|
|
310
|
+
Examples:
|
|
311
|
+
sf entity clear-manager alice
|
|
312
|
+
sf entity clear-manager el-abc123`,
|
|
313
|
+
options: [],
|
|
314
|
+
handler: clearManagerHandler,
|
|
315
|
+
};
|
|
316
|
+
// ============================================================================
|
|
317
|
+
// Reports Command (Direct Reports)
|
|
318
|
+
// ============================================================================
|
|
319
|
+
async function reportsHandler(args, options) {
|
|
320
|
+
if (args.length < 1) {
|
|
321
|
+
return failure('Usage: sf entity reports <manager>\nExample: sf entity reports bob', ExitCode.INVALID_ARGUMENTS);
|
|
322
|
+
}
|
|
323
|
+
const [managerArg] = args;
|
|
324
|
+
try {
|
|
325
|
+
const { api, error: dbError } = createSharedAPI(options, true);
|
|
326
|
+
if (dbError) {
|
|
327
|
+
return failure(dbError, ExitCode.NOT_FOUND);
|
|
328
|
+
}
|
|
329
|
+
// Resolve manager
|
|
330
|
+
const manager = await resolveEntity(api, managerArg);
|
|
331
|
+
if (!manager) {
|
|
332
|
+
return failure(`Manager entity not found: ${managerArg}`, ExitCode.NOT_FOUND);
|
|
333
|
+
}
|
|
334
|
+
// Get direct reports
|
|
335
|
+
const reports = await api.getDirectReports(manager.id);
|
|
336
|
+
const mode = getOutputMode(options);
|
|
337
|
+
const formatter = getFormatter(mode);
|
|
338
|
+
if (mode === 'json') {
|
|
339
|
+
return success(reports);
|
|
340
|
+
}
|
|
341
|
+
if (mode === 'quiet') {
|
|
342
|
+
return success(reports.map((e) => e.id).join('\n'));
|
|
343
|
+
}
|
|
344
|
+
if (reports.length === 0) {
|
|
345
|
+
return success(reports, `No direct reports for ${manager.name}`);
|
|
346
|
+
}
|
|
347
|
+
// Human-readable table output
|
|
348
|
+
const headers = ['ID', 'NAME', 'TYPE'];
|
|
349
|
+
const rows = reports.map((entity) => {
|
|
350
|
+
const e = entity;
|
|
351
|
+
return [e.id, e.name, e.entityType];
|
|
352
|
+
});
|
|
353
|
+
const table = formatter.table(headers, rows);
|
|
354
|
+
const summary = `\n${reports.length} direct report(s) for ${manager.name}`;
|
|
355
|
+
return success(reports, table + summary);
|
|
356
|
+
}
|
|
357
|
+
catch (err) {
|
|
358
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
359
|
+
return failure(`Failed to get direct reports: ${message}`, ExitCode.GENERAL_ERROR);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
export const reportsCommand = {
|
|
363
|
+
name: 'reports',
|
|
364
|
+
description: 'List direct reports for a manager',
|
|
365
|
+
usage: 'sf entity reports <manager>',
|
|
366
|
+
help: `List entities that report directly to a manager.
|
|
367
|
+
|
|
368
|
+
Arguments:
|
|
369
|
+
manager Manager entity ID or name
|
|
370
|
+
|
|
371
|
+
Examples:
|
|
372
|
+
sf entity reports bob
|
|
373
|
+
sf entity reports el-abc123
|
|
374
|
+
sf entity reports bob --json`,
|
|
375
|
+
options: [],
|
|
376
|
+
handler: reportsHandler,
|
|
377
|
+
};
|
|
378
|
+
// ============================================================================
|
|
379
|
+
// Chain Command (Management Chain)
|
|
380
|
+
// ============================================================================
|
|
381
|
+
async function chainHandler(args, options) {
|
|
382
|
+
if (args.length < 1) {
|
|
383
|
+
return failure('Usage: sf entity chain <entity>\nExample: sf entity chain alice', ExitCode.INVALID_ARGUMENTS);
|
|
384
|
+
}
|
|
385
|
+
const [entityArg] = args;
|
|
386
|
+
try {
|
|
387
|
+
const { api, error: dbError } = createSharedAPI(options, true);
|
|
388
|
+
if (dbError) {
|
|
389
|
+
return failure(dbError, ExitCode.NOT_FOUND);
|
|
390
|
+
}
|
|
391
|
+
// Resolve entity
|
|
392
|
+
const entity = await resolveEntity(api, entityArg);
|
|
393
|
+
if (!entity) {
|
|
394
|
+
return failure(`Entity not found: ${entityArg}`, ExitCode.NOT_FOUND);
|
|
395
|
+
}
|
|
396
|
+
// Get management chain
|
|
397
|
+
const chain = await api.getManagementChain(entity.id);
|
|
398
|
+
const mode = getOutputMode(options);
|
|
399
|
+
if (mode === 'json') {
|
|
400
|
+
return success(chain);
|
|
401
|
+
}
|
|
402
|
+
if (mode === 'quiet') {
|
|
403
|
+
return success(chain.map((e) => e.id).join('\n'));
|
|
404
|
+
}
|
|
405
|
+
if (chain.length === 0) {
|
|
406
|
+
return success(chain, `${entity.name} has no manager`);
|
|
407
|
+
}
|
|
408
|
+
// Human-readable visual chain
|
|
409
|
+
const names = [entity.name, ...chain.map((e) => e.name)];
|
|
410
|
+
const chainDisplay = names.join(' -> ');
|
|
411
|
+
return success(chain, `Management chain: ${chainDisplay}`);
|
|
412
|
+
}
|
|
413
|
+
catch (err) {
|
|
414
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
415
|
+
return failure(`Failed to get management chain: ${message}`, ExitCode.GENERAL_ERROR);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
export const chainCommand = {
|
|
419
|
+
name: 'chain',
|
|
420
|
+
description: 'Show management chain for an entity',
|
|
421
|
+
usage: 'sf entity chain <entity>',
|
|
422
|
+
help: `Show the management chain for an entity.
|
|
423
|
+
|
|
424
|
+
Arguments:
|
|
425
|
+
entity Entity ID or name
|
|
426
|
+
|
|
427
|
+
Displays the chain from the entity up to the root (CEO/top-level).
|
|
428
|
+
Output format: entity -> manager -> manager's manager -> ... -> root
|
|
429
|
+
|
|
430
|
+
Examples:
|
|
431
|
+
sf entity chain alice
|
|
432
|
+
sf entity chain el-abc123
|
|
433
|
+
sf entity chain alice --json`,
|
|
434
|
+
options: [],
|
|
435
|
+
handler: chainHandler,
|
|
436
|
+
};
|
|
437
|
+
// ============================================================================
|
|
438
|
+
// Command Definitions
|
|
439
|
+
// ============================================================================
|
|
440
|
+
export const entityRegisterCommand = {
|
|
441
|
+
name: 'register',
|
|
442
|
+
description: 'Register a new entity',
|
|
443
|
+
usage: 'sf entity register <name> [--type <type>]',
|
|
444
|
+
help: `Register a new entity in the system.
|
|
445
|
+
|
|
446
|
+
Entities represent identities - AI agents, humans, or system processes.
|
|
447
|
+
They are the actors that create and interact with elements.
|
|
448
|
+
|
|
449
|
+
Options:
|
|
450
|
+
--type, -t Entity type: agent, human, or system (default: agent)
|
|
451
|
+
--public-key Base64-encoded Ed25519 public key for cryptographic identity
|
|
452
|
+
--tag Tag to add to entity (can be repeated)
|
|
453
|
+
|
|
454
|
+
Examples:
|
|
455
|
+
sf entity register claude --type agent
|
|
456
|
+
sf entity register bob --type human
|
|
457
|
+
sf entity register ci-system --type system
|
|
458
|
+
sf entity register alice --tag team-alpha --tag frontend`,
|
|
459
|
+
options: registerOptions,
|
|
460
|
+
handler: entityRegisterHandler,
|
|
461
|
+
};
|
|
462
|
+
export const entityListCommand = {
|
|
463
|
+
name: 'list',
|
|
464
|
+
description: 'List all registered entities',
|
|
465
|
+
usage: 'sf entity list [--type <type>]',
|
|
466
|
+
help: `List all registered entities.
|
|
467
|
+
|
|
468
|
+
Options:
|
|
469
|
+
--type, -t Filter by entity type: agent, human, or system
|
|
470
|
+
--limit, -n Maximum number of entities to return
|
|
471
|
+
|
|
472
|
+
Examples:
|
|
473
|
+
sf entity list
|
|
474
|
+
sf entity list --type agent
|
|
475
|
+
sf entity list --type human --limit 10
|
|
476
|
+
sf entity list --json`,
|
|
477
|
+
options: listOptions,
|
|
478
|
+
handler: entityListHandler,
|
|
479
|
+
};
|
|
480
|
+
export const entityCommand = {
|
|
481
|
+
name: 'entity',
|
|
482
|
+
description: 'Manage entities (agents, humans, systems)',
|
|
483
|
+
usage: 'sf entity <subcommand>',
|
|
484
|
+
help: `Manage entities in the system.
|
|
485
|
+
|
|
486
|
+
Entities represent identities - AI agents, humans, or system processes.
|
|
487
|
+
They are used for attribution, assignment, and access control.
|
|
488
|
+
|
|
489
|
+
Subcommands:
|
|
490
|
+
register Register a new entity
|
|
491
|
+
list List all registered entities
|
|
492
|
+
set-manager Set an entity's manager
|
|
493
|
+
clear-manager Clear an entity's manager
|
|
494
|
+
reports List direct reports for a manager
|
|
495
|
+
chain Show management chain for an entity
|
|
496
|
+
|
|
497
|
+
Examples:
|
|
498
|
+
sf entity register claude --type agent
|
|
499
|
+
sf entity list
|
|
500
|
+
sf entity list --type human
|
|
501
|
+
sf entity set-manager alice bob
|
|
502
|
+
sf entity reports bob
|
|
503
|
+
sf entity chain alice
|
|
504
|
+
|
|
505
|
+
Note: Use 'sf show <id>', 'sf update <id>', 'sf delete <id>' for any element.`,
|
|
506
|
+
handler: async (args, options) => {
|
|
507
|
+
// Default to list if no subcommand
|
|
508
|
+
return entityListHandler(args, options);
|
|
509
|
+
},
|
|
510
|
+
subcommands: {
|
|
511
|
+
register: entityRegisterCommand,
|
|
512
|
+
list: entityListCommand,
|
|
513
|
+
'set-manager': setManagerCommand,
|
|
514
|
+
'clear-manager': clearManagerCommand,
|
|
515
|
+
reports: reportsCommand,
|
|
516
|
+
chain: chainCommand,
|
|
517
|
+
// Aliases (hidden from --help via dedup in getCommandHelp)
|
|
518
|
+
ls: entityListCommand,
|
|
519
|
+
create: entityRegisterCommand,
|
|
520
|
+
},
|
|
521
|
+
};
|
|
522
|
+
//# sourceMappingURL=entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/cli/commands/entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Garbage Collection Commands - Clean up ephemeral data
|
|
3
|
+
*
|
|
4
|
+
* Provides commands for:
|
|
5
|
+
* - gc tasks: Garbage collect old ephemeral tasks
|
|
6
|
+
* - gc workflows: Garbage collect old ephemeral workflows
|
|
7
|
+
*/
|
|
8
|
+
import type { Command } from '../types.js';
|
|
9
|
+
export declare const gcCommand: Command;
|
|
10
|
+
//# sourceMappingURL=gc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gc.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/gc.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAA+C,MAAM,aAAa,CAAC;AAoRxF,eAAO,MAAM,SAAS,EAAE,OA0CvB,CAAC"}
|