mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2026-11-04 03:42:04 +00:00
- Python-compatible ~/.seedpass layout: fingerprints.json (same shape, indent=4), per-profile dirs with parent_seed.enc (kdf/ct wrapper; unlock honors argon2id metadata and falls back across pbkdf2 iteration counts), index-key-encrypted seedpass_config.json.enc with ConfigManager defaults. - CLI: fingerprint list/add/switch/remove (remove requires --yes), config get/set (JSON-parsed values, pin/password hashes redacted on read), profile-aware vault resolution (--vault override, else active profile). - Session agent (the chosen unlock model): unix-socket daemon holding unlocked seeds in memory with TTL, 0600 socket; agent start/status/stop, vault unlock (password -> parent seed -> agent, never argv) and vault lock. Seed resolution order: SEEDPASS_MNEMONIC env, then agent. This daemon is the designed enforcement point for the section-9.3 lease/token layer. - Tests cover the full no-env-mnemonic lifecycle: locked error -> unlock with password only -> provision/reveal through the agent -> status -> lock -> locked again. 148 core + 29 CLI tests green. Co-Authored-By: Claude Fable 5 <[email protected]>
46 lines
1.5 KiB
TypeScript
46 lines
1.5 KiB
TypeScript
/**
|
|
* Machine-readable capability map (`seedpass-js capabilities --format json`).
|
|
* Mirrors the intent of the Python `seedpass capabilities` surface: automation
|
|
* discovers what this build can do instead of guessing from the version.
|
|
*/
|
|
|
|
export function capabilities(): Record<string, unknown> {
|
|
return {
|
|
name: "seedpass-js",
|
|
port: "typescript",
|
|
protocol: {
|
|
password_gen_versions: [1, 2],
|
|
vault_payload_formats: ["V3", "V2", "fernet"],
|
|
entry_schema_version: 4,
|
|
portable_backup_format: 1,
|
|
nostr_event_kinds: { manifest: 30070, snapshot_chunk: 30071, delta: 30072 },
|
|
},
|
|
agent_surface: {
|
|
reference_scheme: "sp://entry/<id>",
|
|
reference_first_output: true,
|
|
plaintext_egress_commands: [
|
|
"entry reveal",
|
|
"entry totp-codes",
|
|
"util generate-password",
|
|
],
|
|
sinks: ["clipboard", "exec-env", "stdin-to"],
|
|
exec_env_var: "SEEDPASS_SECRET",
|
|
session_agent: {
|
|
transport: "unix-socket",
|
|
commands: ["agent start/status/stop", "vault unlock/lock"],
|
|
seed_resolution_order: ["SEEDPASS_MNEMONIC env", "session agent"],
|
|
},
|
|
},
|
|
profiles: {
|
|
layout: "python-compatible ~/.seedpass",
|
|
commands: ["fingerprint list/add/switch/remove", "config get/set"],
|
|
},
|
|
not_yet_ported: [
|
|
"ssh/pgp key material",
|
|
"relay sync commands",
|
|
"index0/atlas",
|
|
"leases and scoped tokens (design: plan section 9.3; enforcement point: session agent)",
|
|
],
|
|
};
|
|
}
|