logicsrc/packages
Anthony Ettinger 64ff854bd8 Add SSH keys and config to credential sharing
Private keys have lived as plaintext-on-disk files guarded only by a
passphrase. This puts them in the same end-to-end-encrypted vaults as
.env secrets, and adds an agent path so a machine can use a key without
ever writing one to its disk.

- `ssh` provider: ~/.ssh as a value bag. Files are picked by sniffing
  contents (PRIVATE KEY blocks, ssh-*/ecdsa-*/sk-* public keys) plus
  config, config.d/* and allowed_signers. known_hosts and
  authorized_keys are host-specific and access-granting, so they need
  an explicit --include.
- Each file is one secret carrying a JSON envelope of path, mode and
  body. The engine only hands write() the secrets that CHANGED, so a
  separate manifest secret would be absent whenever a key's contents
  change but the file list doesn't — self-describing values keep every
  restore total.
- `logicsrc secrets ssh push|pull|list|agent`, addressed by PERSON not
  project: the vault is ssh--<username>, which teams vaults reads as
  project ssh, env <username>. One teammate's keys never land in
  another's restore; sharing stays a deliberate teams grant.
- Both directions hold back anything that would overwrite a file that
  already differs, and say what they skipped. --force opts in. A
  restore onto a machine with its own keys is otherwise a way to lose
  them.
- Restores chmod each file back to its recorded mode; writeFileSync's
  mode applies only on create, so an existing world-readable key would
  otherwise stay world-readable. The adapter declares delete:false.
- push warns about passphrase-less private keys before they go up.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-13 15:29:59 +00:00
..
account-core Handle non-finite policy risk scores (#75) 2026-06-15 01:23:47 -07:00
agentad feat(agentad): AgentAd Marketplace PRD + reference exchange (M5) 2026-07-01 10:29:36 +00:00
agentstack feat(agentstack): add delegation authority checks (#87) 2026-07-01 01:14:40 -07:00
agentswarm chore(agentswarm): make package publishable to npm 2026-06-25 17:57:32 +00:00
ans fix(ans): reject non-hex input in fromHex instead of silently decoding to 0 (#91) 2026-07-02 16:37:39 -07:00
cli Add SSH keys and config to credential sharing 2026-08-13 15:29:59 +00:00
logicsrc-mcp Add the LogicSRC OpenContext specification (#132) 2026-08-09 11:46:11 -07:00
opencontext Enforce OpenContext HTTP byte limit while streaming (#136) 2026-08-09 21:57:05 -07:00
openontology fix(openontology): migrate in one transaction, and stop timing out on slow disks (#124) 2026-08-03 06:38:05 -07:00
openprd feat(openprd): implement the OpenPRD standard — engine, CLI, conformance bundle (#100) 2026-07-28 04:11:07 -07:00
plugin-core Scaffold LogicSRC and CommandBoard plugins 2026-06-06 11:24:02 +00:00
schemas Make the @logicsrc packages publishable (#134) 2026-08-09 12:03:41 -07:00
sdk Implement OpenSpec artifacts and SDK contracts 2026-06-06 16:44:58 +00:00
tui feat(openontology): Phase 2 + Phase 3 — storage, REST/SSE, MCP, RDF/SHACL, adapters, TUI, explorer (#101) 2026-07-28 05:10:33 -07:00
validators Make the @logicsrc packages publishable (#134) 2026-08-09 12:03:41 -07:00