agentsecrets-cli 1.1.1__tar.gz → 3.1.2__tar.gz
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.
- {agentsecrets_cli-1.1.1 → agentsecrets_cli-3.1.2}/.gitignore +7 -2
- agentsecrets_cli-1.1.1/README.md → agentsecrets_cli-3.1.2/PKG-INFO +51 -20
- agentsecrets_cli-1.1.1/PKG-INFO → agentsecrets_cli-3.1.2/README.md +36 -35
- {agentsecrets_cli-1.1.1 → agentsecrets_cli-3.1.2}/pyproject.toml +36 -36
- {agentsecrets_cli-1.1.1 → agentsecrets_cli-3.1.2}/src/agentsecrets/binary.py +29 -18
- {agentsecrets_cli-1.1.1 → agentsecrets_cli-3.1.2}/src/agentsecrets/__init__.py +0 -0
- {agentsecrets_cli-1.1.1 → agentsecrets_cli-3.1.2}/src/agentsecrets/main.py +0 -0
|
@@ -44,7 +44,7 @@ config.json
|
|
|
44
44
|
# Build artifacts
|
|
45
45
|
dist/
|
|
46
46
|
build/
|
|
47
|
-
bin/
|
|
47
|
+
/bin/
|
|
48
48
|
*.egg-info/
|
|
49
49
|
node_modules/
|
|
50
50
|
.npm/
|
|
@@ -70,4 +70,9 @@ docs/learning/
|
|
|
70
70
|
proxy_spec.md
|
|
71
71
|
code_review.md
|
|
72
72
|
content/
|
|
73
|
-
specs/
|
|
73
|
+
specs/
|
|
74
|
+
|
|
75
|
+
# AgentSecrets environment files
|
|
76
|
+
.env.development
|
|
77
|
+
.env.staging
|
|
78
|
+
.env.production
|
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: agentsecrets-cli
|
|
3
|
+
Version: 3.1.2
|
|
4
|
+
Summary: AI-native zero-knowledge secrets manager
|
|
5
|
+
Author-email: The Seventeen <engineering@theseventeen.co>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Keywords: agents,ai,cli,credentials,secrets,security
|
|
8
|
+
Classifier: Development Status :: 4 - Beta
|
|
9
|
+
Classifier: Intended Audience :: Developers
|
|
10
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Topic :: Security
|
|
13
|
+
Requires-Python: >=3.8
|
|
14
|
+
Description-Content-Type: text/markdown
|
|
15
|
+
|
|
1
16
|
# AgentSecrets
|
|
2
17
|
|
|
3
18
|
> **Zero-knowledge secrets infrastructure built for AI agents to operate, not just consume.**
|
|
@@ -32,7 +47,7 @@ Your agent checks its own status. Notices a secret is out of sync. Pulls the lat
|
|
|
32
47
|
```bash
|
|
33
48
|
# An AI agent managing its own secrets workflow autonomously
|
|
34
49
|
|
|
35
|
-
agentsecrets status # what workspace, project, last sync?
|
|
50
|
+
agentsecrets status # what workspace, project, environment, last sync?
|
|
36
51
|
agentsecrets secrets diff # anything out of sync?
|
|
37
52
|
agentsecrets secrets pull # sync from cloud to keychain
|
|
38
53
|
agentsecrets secrets list # what keys are available?
|
|
@@ -96,7 +111,7 @@ pip install agentsecrets-cli
|
|
|
96
111
|
## Quick Start
|
|
97
112
|
|
|
98
113
|
```bash
|
|
99
|
-
#
|
|
114
|
+
# Set up your account (first time) or initialise a new project (returning user)
|
|
100
115
|
agentsecrets init
|
|
101
116
|
|
|
102
117
|
# Create a project
|
|
@@ -138,6 +153,7 @@ agentsecrets status
|
|
|
138
153
|
# Logged in as: steppa@theseventeen.co
|
|
139
154
|
# Workspace: Acme Engineering
|
|
140
155
|
# Project: payments-service
|
|
156
|
+
# Environment: development
|
|
141
157
|
# Last pull: 2 minutes ago
|
|
142
158
|
```
|
|
143
159
|
|
|
@@ -208,7 +224,7 @@ Allowlist modifications require admin role and password verification. Non-admins
|
|
|
208
224
|
|
|
209
225
|
```bash
|
|
210
226
|
agentsecrets proxy logs --last 5
|
|
211
|
-
# 14:23:01
|
|
227
|
+
# 14:23:01 * OK (REDACTED) GET httpbin.org/headers STRIPE_KEY bearer 200 credential_echo 245ms
|
|
212
228
|
```
|
|
213
229
|
|
|
214
230
|
### Role Management
|
|
@@ -390,8 +406,9 @@ response = as_client.call(
|
|
|
390
406
|
You pass a key name. The SDK resolves from the OS keychain, injects at the transport layer, returns only the API response. Every user of every tool built on the SDK gets zero-knowledge credential management automatically.
|
|
391
407
|
|
|
392
408
|
**Built on the SDK:**
|
|
393
|
-
- [
|
|
394
|
-
-
|
|
409
|
+
- [Zero-Knowledge MCP Server Template](https://github.com/The-17/zero-knowledge-mcp) — scaffold for building MCP servers with zero credential storage
|
|
410
|
+
- AgentSecrets for LangChain — zero-knowledge API calls in any LangChain agent *(coming soon)*
|
|
411
|
+
- AgentSecrets JS SDK — JavaScript/Node.js SDK *(coming soon)*
|
|
395
412
|
|
|
396
413
|
---
|
|
397
414
|
|
|
@@ -399,10 +416,10 @@ You pass a key name. The SDK resolves from the OS keychain, injects at the trans
|
|
|
399
416
|
|
|
400
417
|
### Account
|
|
401
418
|
```bash
|
|
402
|
-
agentsecrets init #
|
|
419
|
+
agentsecrets init # Set up account or initialise a new project
|
|
403
420
|
agentsecrets login # Login to existing account
|
|
404
421
|
agentsecrets logout # Clear session
|
|
405
|
-
agentsecrets status # Current user, workspace, project, last sync
|
|
422
|
+
agentsecrets status # Current user, workspace, project, environment, last sync
|
|
406
423
|
```
|
|
407
424
|
|
|
408
425
|
### Workspaces
|
|
@@ -422,6 +439,15 @@ agentsecrets project update my-app # Update project
|
|
|
422
439
|
agentsecrets project delete my-app # Delete project
|
|
423
440
|
```
|
|
424
441
|
|
|
442
|
+
### Environments
|
|
443
|
+
```bash
|
|
444
|
+
agentsecrets environment switch <name> # Switch active environment (development, staging, production)
|
|
445
|
+
agentsecrets environment list # List all environments and secret counts
|
|
446
|
+
agentsecrets environment copy <from> <to> # Copy all secrets from one env to another
|
|
447
|
+
agentsecrets environment merge <from> <to> # Merge secrets and prompt for new values
|
|
448
|
+
agentsecrets environment clean # Delete all secrets in current environment
|
|
449
|
+
```
|
|
450
|
+
|
|
425
451
|
### Secrets
|
|
426
452
|
```bash
|
|
427
453
|
agentsecrets secrets set KEY=value # Store a secret
|
|
@@ -430,7 +456,8 @@ agentsecrets secrets list # List key names — never values
|
|
|
430
456
|
agentsecrets secrets push # Upload .env to cloud (encrypted)
|
|
431
457
|
agentsecrets secrets pull # Download cloud secrets to keychain
|
|
432
458
|
agentsecrets secrets delete KEY # Remove a secret
|
|
433
|
-
agentsecrets secrets diff # Compare local vs cloud
|
|
459
|
+
agentsecrets secrets diff # Compare local vs cloud active environment
|
|
460
|
+
agentsecrets secrets diff --from X --to Y # Compare two environments directly
|
|
434
461
|
```
|
|
435
462
|
|
|
436
463
|
### Proxy & Calls
|
|
@@ -447,10 +474,10 @@ agentsecrets mcp install # Auto-configure AI tools
|
|
|
447
474
|
|
|
448
475
|
### Logging & Audit
|
|
449
476
|
```bash
|
|
450
|
-
agentsecrets
|
|
451
|
-
agentsecrets
|
|
452
|
-
agentsecrets
|
|
453
|
-
agentsecrets
|
|
477
|
+
agentsecrets logs list [--tail] # View or stream global backend logs
|
|
478
|
+
agentsecrets logs export --format csv # Export global logs to CSV/JSON
|
|
479
|
+
agentsecrets logs summary # View global statistics and usage metrics
|
|
480
|
+
agentsecrets logs detail <id> # Inspect a specific request deeply
|
|
454
481
|
```
|
|
455
482
|
|
|
456
483
|
### Agent Identity
|
|
@@ -490,6 +517,7 @@ agentsecrets workspace demote user@email.com # Revoke admin role
|
|
|
490
517
|
| **Domain allowlist enforcement** | ✅ Deny-by-default | ❌ | ❌ | ❌ | ❌ |
|
|
491
518
|
| **Response body redaction** | ✅ Echo exfiltration defense | ❌ | ❌ | ❌ | ❌ |
|
|
492
519
|
| **Prompt injection protection** | ✅ Structural | ❌ | ❌ | ❌ | ❌ |
|
|
520
|
+
| **Environment support (dev/staging/prod)** | ✅ Built-in | ⚠️ Manual | ⚠️ Manual | ✅ | ⚠️ Manual |
|
|
493
521
|
| **Env var injection (`run --`)** | ✅ `agentsecrets env` | ❌ | ❌ | ✅ `doppler run` | ✅ `op run` |
|
|
494
522
|
| **AI-native workflow** | ✅ Built for it | ❌ | ❌ | ❌ | ❌ |
|
|
495
523
|
| **SDK for building on top** | ✅ | ❌ | ❌ | ❌ | ❌ |
|
|
@@ -522,12 +550,12 @@ agentsecrets secrets pull
|
|
|
522
550
|
### Autonomous Agent Deployment
|
|
523
551
|
```bash
|
|
524
552
|
# Agent handles this entire flow without human intervention
|
|
525
|
-
agentsecrets secrets diff
|
|
526
|
-
agentsecrets secrets pull
|
|
527
|
-
agentsecrets
|
|
528
|
-
agentsecrets secrets pull
|
|
553
|
+
agentsecrets secrets diff # checks for drift
|
|
554
|
+
agentsecrets secrets pull # syncs if needed
|
|
555
|
+
agentsecrets environment switch production # switch to production environment
|
|
556
|
+
agentsecrets secrets pull # pull production secrets
|
|
529
557
|
agentsecrets env -- python deploy.py
|
|
530
|
-
agentsecrets proxy logs
|
|
558
|
+
agentsecrets proxy logs # audits what happened
|
|
531
559
|
```
|
|
532
560
|
|
|
533
561
|
### Incident Response at 2am
|
|
@@ -573,11 +601,14 @@ See [ARCHITECTURE.md](docs/ARCHITECTURE.md) and [PROXY.md](docs/PROXY.md) for de
|
|
|
573
601
|
- [x] Workspace role management (promote/demote)
|
|
574
602
|
- [x] `agentsecrets env` — environment variable injection
|
|
575
603
|
- [x] Python SDK (`pip install agentsecrets`)
|
|
576
|
-
- [
|
|
604
|
+
- [x] Zero-Knowledge MCP Server Template
|
|
605
|
+
- [x] Agent identity + token management
|
|
606
|
+
- [x] Governance audit log
|
|
607
|
+
- [x] Environment support (development / staging / production)
|
|
577
608
|
- [ ] AgentSecrets for LangChain
|
|
578
609
|
- [ ] AgentSecrets for CrewAI
|
|
610
|
+
- [ ] JavaScript / Node.js SDK
|
|
579
611
|
- [ ] Secret rotation
|
|
580
|
-
- [ ] Environment support (dev/staging/prod)
|
|
581
612
|
- [ ] Web dashboard
|
|
582
613
|
- [ ] Cloud resolver (serverless + production deployments)
|
|
583
614
|
- [ ] AgentSecrets Connect (multi-tenant credential delegation)
|
|
@@ -587,7 +618,7 @@ See [ARCHITECTURE.md](docs/ARCHITECTURE.md) and [PROXY.md](docs/PROXY.md) for de
|
|
|
587
618
|
## Security
|
|
588
619
|
|
|
589
620
|
Reporting vulnerabilities: do NOT open public issues.
|
|
590
|
-
Email:
|
|
621
|
+
Email: engineering@theseventeen.co — response within 24 hours.
|
|
591
622
|
|
|
592
623
|
---
|
|
593
624
|
|
|
@@ -1,18 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: agentsecrets-cli
|
|
3
|
-
Version: 1.1.1
|
|
4
|
-
Summary: AI-native zero-knowledge secrets manager
|
|
5
|
-
Author-email: The Seventeen <hello@theseventeen.co>
|
|
6
|
-
License-Expression: MIT
|
|
7
|
-
Keywords: agents,ai,cli,credentials,secrets,security
|
|
8
|
-
Classifier: Development Status :: 4 - Beta
|
|
9
|
-
Classifier: Intended Audience :: Developers
|
|
10
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
11
|
-
Classifier: Programming Language :: Python :: 3
|
|
12
|
-
Classifier: Topic :: Security
|
|
13
|
-
Requires-Python: >=3.8
|
|
14
|
-
Description-Content-Type: text/markdown
|
|
15
|
-
|
|
16
1
|
# AgentSecrets
|
|
17
2
|
|
|
18
3
|
> **Zero-knowledge secrets infrastructure built for AI agents to operate, not just consume.**
|
|
@@ -47,7 +32,7 @@ Your agent checks its own status. Notices a secret is out of sync. Pulls the lat
|
|
|
47
32
|
```bash
|
|
48
33
|
# An AI agent managing its own secrets workflow autonomously
|
|
49
34
|
|
|
50
|
-
agentsecrets status # what workspace, project, last sync?
|
|
35
|
+
agentsecrets status # what workspace, project, environment, last sync?
|
|
51
36
|
agentsecrets secrets diff # anything out of sync?
|
|
52
37
|
agentsecrets secrets pull # sync from cloud to keychain
|
|
53
38
|
agentsecrets secrets list # what keys are available?
|
|
@@ -111,7 +96,7 @@ pip install agentsecrets-cli
|
|
|
111
96
|
## Quick Start
|
|
112
97
|
|
|
113
98
|
```bash
|
|
114
|
-
#
|
|
99
|
+
# Set up your account (first time) or initialise a new project (returning user)
|
|
115
100
|
agentsecrets init
|
|
116
101
|
|
|
117
102
|
# Create a project
|
|
@@ -153,6 +138,7 @@ agentsecrets status
|
|
|
153
138
|
# Logged in as: steppa@theseventeen.co
|
|
154
139
|
# Workspace: Acme Engineering
|
|
155
140
|
# Project: payments-service
|
|
141
|
+
# Environment: development
|
|
156
142
|
# Last pull: 2 minutes ago
|
|
157
143
|
```
|
|
158
144
|
|
|
@@ -223,7 +209,7 @@ Allowlist modifications require admin role and password verification. Non-admins
|
|
|
223
209
|
|
|
224
210
|
```bash
|
|
225
211
|
agentsecrets proxy logs --last 5
|
|
226
|
-
# 14:23:01
|
|
212
|
+
# 14:23:01 * OK (REDACTED) GET httpbin.org/headers STRIPE_KEY bearer 200 credential_echo 245ms
|
|
227
213
|
```
|
|
228
214
|
|
|
229
215
|
### Role Management
|
|
@@ -405,8 +391,9 @@ response = as_client.call(
|
|
|
405
391
|
You pass a key name. The SDK resolves from the OS keychain, injects at the transport layer, returns only the API response. Every user of every tool built on the SDK gets zero-knowledge credential management automatically.
|
|
406
392
|
|
|
407
393
|
**Built on the SDK:**
|
|
408
|
-
- [
|
|
409
|
-
-
|
|
394
|
+
- [Zero-Knowledge MCP Server Template](https://github.com/The-17/zero-knowledge-mcp) — scaffold for building MCP servers with zero credential storage
|
|
395
|
+
- AgentSecrets for LangChain — zero-knowledge API calls in any LangChain agent *(coming soon)*
|
|
396
|
+
- AgentSecrets JS SDK — JavaScript/Node.js SDK *(coming soon)*
|
|
410
397
|
|
|
411
398
|
---
|
|
412
399
|
|
|
@@ -414,10 +401,10 @@ You pass a key name. The SDK resolves from the OS keychain, injects at the trans
|
|
|
414
401
|
|
|
415
402
|
### Account
|
|
416
403
|
```bash
|
|
417
|
-
agentsecrets init #
|
|
404
|
+
agentsecrets init # Set up account or initialise a new project
|
|
418
405
|
agentsecrets login # Login to existing account
|
|
419
406
|
agentsecrets logout # Clear session
|
|
420
|
-
agentsecrets status # Current user, workspace, project, last sync
|
|
407
|
+
agentsecrets status # Current user, workspace, project, environment, last sync
|
|
421
408
|
```
|
|
422
409
|
|
|
423
410
|
### Workspaces
|
|
@@ -437,6 +424,15 @@ agentsecrets project update my-app # Update project
|
|
|
437
424
|
agentsecrets project delete my-app # Delete project
|
|
438
425
|
```
|
|
439
426
|
|
|
427
|
+
### Environments
|
|
428
|
+
```bash
|
|
429
|
+
agentsecrets environment switch <name> # Switch active environment (development, staging, production)
|
|
430
|
+
agentsecrets environment list # List all environments and secret counts
|
|
431
|
+
agentsecrets environment copy <from> <to> # Copy all secrets from one env to another
|
|
432
|
+
agentsecrets environment merge <from> <to> # Merge secrets and prompt for new values
|
|
433
|
+
agentsecrets environment clean # Delete all secrets in current environment
|
|
434
|
+
```
|
|
435
|
+
|
|
440
436
|
### Secrets
|
|
441
437
|
```bash
|
|
442
438
|
agentsecrets secrets set KEY=value # Store a secret
|
|
@@ -445,7 +441,8 @@ agentsecrets secrets list # List key names — never values
|
|
|
445
441
|
agentsecrets secrets push # Upload .env to cloud (encrypted)
|
|
446
442
|
agentsecrets secrets pull # Download cloud secrets to keychain
|
|
447
443
|
agentsecrets secrets delete KEY # Remove a secret
|
|
448
|
-
agentsecrets secrets diff # Compare local vs cloud
|
|
444
|
+
agentsecrets secrets diff # Compare local vs cloud active environment
|
|
445
|
+
agentsecrets secrets diff --from X --to Y # Compare two environments directly
|
|
449
446
|
```
|
|
450
447
|
|
|
451
448
|
### Proxy & Calls
|
|
@@ -462,10 +459,10 @@ agentsecrets mcp install # Auto-configure AI tools
|
|
|
462
459
|
|
|
463
460
|
### Logging & Audit
|
|
464
461
|
```bash
|
|
465
|
-
agentsecrets
|
|
466
|
-
agentsecrets
|
|
467
|
-
agentsecrets
|
|
468
|
-
agentsecrets
|
|
462
|
+
agentsecrets logs list [--tail] # View or stream global backend logs
|
|
463
|
+
agentsecrets logs export --format csv # Export global logs to CSV/JSON
|
|
464
|
+
agentsecrets logs summary # View global statistics and usage metrics
|
|
465
|
+
agentsecrets logs detail <id> # Inspect a specific request deeply
|
|
469
466
|
```
|
|
470
467
|
|
|
471
468
|
### Agent Identity
|
|
@@ -505,6 +502,7 @@ agentsecrets workspace demote user@email.com # Revoke admin role
|
|
|
505
502
|
| **Domain allowlist enforcement** | ✅ Deny-by-default | ❌ | ❌ | ❌ | ❌ |
|
|
506
503
|
| **Response body redaction** | ✅ Echo exfiltration defense | ❌ | ❌ | ❌ | ❌ |
|
|
507
504
|
| **Prompt injection protection** | ✅ Structural | ❌ | ❌ | ❌ | ❌ |
|
|
505
|
+
| **Environment support (dev/staging/prod)** | ✅ Built-in | ⚠️ Manual | ⚠️ Manual | ✅ | ⚠️ Manual |
|
|
508
506
|
| **Env var injection (`run --`)** | ✅ `agentsecrets env` | ❌ | ❌ | ✅ `doppler run` | ✅ `op run` |
|
|
509
507
|
| **AI-native workflow** | ✅ Built for it | ❌ | ❌ | ❌ | ❌ |
|
|
510
508
|
| **SDK for building on top** | ✅ | ❌ | ❌ | ❌ | ❌ |
|
|
@@ -537,12 +535,12 @@ agentsecrets secrets pull
|
|
|
537
535
|
### Autonomous Agent Deployment
|
|
538
536
|
```bash
|
|
539
537
|
# Agent handles this entire flow without human intervention
|
|
540
|
-
agentsecrets secrets diff
|
|
541
|
-
agentsecrets secrets pull
|
|
542
|
-
agentsecrets
|
|
543
|
-
agentsecrets secrets pull
|
|
538
|
+
agentsecrets secrets diff # checks for drift
|
|
539
|
+
agentsecrets secrets pull # syncs if needed
|
|
540
|
+
agentsecrets environment switch production # switch to production environment
|
|
541
|
+
agentsecrets secrets pull # pull production secrets
|
|
544
542
|
agentsecrets env -- python deploy.py
|
|
545
|
-
agentsecrets proxy logs
|
|
543
|
+
agentsecrets proxy logs # audits what happened
|
|
546
544
|
```
|
|
547
545
|
|
|
548
546
|
### Incident Response at 2am
|
|
@@ -588,11 +586,14 @@ See [ARCHITECTURE.md](docs/ARCHITECTURE.md) and [PROXY.md](docs/PROXY.md) for de
|
|
|
588
586
|
- [x] Workspace role management (promote/demote)
|
|
589
587
|
- [x] `agentsecrets env` — environment variable injection
|
|
590
588
|
- [x] Python SDK (`pip install agentsecrets`)
|
|
591
|
-
- [
|
|
589
|
+
- [x] Zero-Knowledge MCP Server Template
|
|
590
|
+
- [x] Agent identity + token management
|
|
591
|
+
- [x] Governance audit log
|
|
592
|
+
- [x] Environment support (development / staging / production)
|
|
592
593
|
- [ ] AgentSecrets for LangChain
|
|
593
594
|
- [ ] AgentSecrets for CrewAI
|
|
595
|
+
- [ ] JavaScript / Node.js SDK
|
|
594
596
|
- [ ] Secret rotation
|
|
595
|
-
- [ ] Environment support (dev/staging/prod)
|
|
596
597
|
- [ ] Web dashboard
|
|
597
598
|
- [ ] Cloud resolver (serverless + production deployments)
|
|
598
599
|
- [ ] AgentSecrets Connect (multi-tenant credential delegation)
|
|
@@ -602,7 +603,7 @@ See [ARCHITECTURE.md](docs/ARCHITECTURE.md) and [PROXY.md](docs/PROXY.md) for de
|
|
|
602
603
|
## Security
|
|
603
604
|
|
|
604
605
|
Reporting vulnerabilities: do NOT open public issues.
|
|
605
|
-
Email:
|
|
606
|
+
Email: engineering@theseventeen.co — response within 24 hours.
|
|
606
607
|
|
|
607
608
|
---
|
|
608
609
|
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
[build-system]
|
|
2
|
-
requires = ["hatchling"]
|
|
3
|
-
build-backend = "hatchling.build"
|
|
4
|
-
|
|
5
|
-
[project]
|
|
6
|
-
name = "agentsecrets-cli"
|
|
7
|
-
version = "
|
|
8
|
-
description = "AI-native zero-knowledge secrets manager"
|
|
9
|
-
readme = "README.md"
|
|
10
|
-
requires-python = ">=3.8"
|
|
11
|
-
license = "MIT"
|
|
12
|
-
authors = [
|
|
13
|
-
{ name = "The Seventeen", email = "
|
|
14
|
-
]
|
|
15
|
-
keywords = [
|
|
16
|
-
"ai",
|
|
17
|
-
"agents",
|
|
18
|
-
"secrets",
|
|
19
|
-
"security",
|
|
20
|
-
"credentials",
|
|
21
|
-
"cli",
|
|
22
|
-
]
|
|
23
|
-
classifiers = [
|
|
24
|
-
"Development Status :: 4 - Beta",
|
|
25
|
-
"Intended Audience :: Developers",
|
|
26
|
-
"License :: OSI Approved :: MIT License",
|
|
27
|
-
"Programming Language :: Python :: 3",
|
|
28
|
-
"Topic :: Security",
|
|
29
|
-
]
|
|
30
|
-
dependencies = []
|
|
31
|
-
|
|
32
|
-
[project.scripts]
|
|
33
|
-
agentsecrets = "agentsecrets.main:main"
|
|
34
|
-
|
|
35
|
-
[tool.hatch.build.targets.wheel]
|
|
36
|
-
packages = ["src/agentsecrets"]
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "agentsecrets-cli"
|
|
7
|
+
version = "3.1.2"
|
|
8
|
+
description = "AI-native zero-knowledge secrets manager"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.8"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
authors = [
|
|
13
|
+
{ name = "The Seventeen", email = "engineering@theseventeen.co" },
|
|
14
|
+
]
|
|
15
|
+
keywords = [
|
|
16
|
+
"ai",
|
|
17
|
+
"agents",
|
|
18
|
+
"secrets",
|
|
19
|
+
"security",
|
|
20
|
+
"credentials",
|
|
21
|
+
"cli",
|
|
22
|
+
]
|
|
23
|
+
classifiers = [
|
|
24
|
+
"Development Status :: 4 - Beta",
|
|
25
|
+
"Intended Audience :: Developers",
|
|
26
|
+
"License :: OSI Approved :: MIT License",
|
|
27
|
+
"Programming Language :: Python :: 3",
|
|
28
|
+
"Topic :: Security",
|
|
29
|
+
]
|
|
30
|
+
dependencies = []
|
|
31
|
+
|
|
32
|
+
[project.scripts]
|
|
33
|
+
agentsecrets = "agentsecrets.main:main"
|
|
34
|
+
|
|
35
|
+
[tool.hatch.build.targets.wheel]
|
|
36
|
+
packages = ["src/agentsecrets"]
|
|
@@ -8,28 +8,26 @@ import tempfile
|
|
|
8
8
|
import shutil
|
|
9
9
|
import stat
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
def _get_version():
|
|
13
|
-
try:
|
|
14
|
-
from importlib.metadata import version, PackageNotFoundError
|
|
15
|
-
except ImportError: # Python < 3.8
|
|
16
|
-
try:
|
|
17
|
-
from pkg_resources import get_distribution, DistributionNotFound
|
|
18
|
-
except ImportError:
|
|
19
|
-
# Fallback if pkg_resources is also not available
|
|
20
|
-
return "1.1.0"
|
|
11
|
+
import json
|
|
21
12
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
13
|
+
def get_latest_github_version():
|
|
14
|
+
"""Fetches the latest version tag from GitHub API."""
|
|
15
|
+
try:
|
|
16
|
+
url = "https://api.github.com/repos/The-17/agentsecrets/releases/latest"
|
|
17
|
+
req = urllib.request.Request(url, headers={'User-Agent': 'agentsecrets-pypi'})
|
|
18
|
+
with urllib.request.urlopen(req) as response:
|
|
19
|
+
data = json.loads(response.read().decode())
|
|
20
|
+
return data['tag_name'].lstrip('v')
|
|
21
|
+
except Exception:
|
|
22
|
+
return None
|
|
27
23
|
|
|
24
|
+
def _get_version():
|
|
28
25
|
try:
|
|
26
|
+
from importlib.metadata import version, PackageNotFoundError
|
|
29
27
|
return version("agentsecrets-cli")
|
|
30
|
-
except PackageNotFoundError:
|
|
31
|
-
|
|
32
|
-
return "1.1
|
|
28
|
+
except (ImportError, PackageNotFoundError):
|
|
29
|
+
latest = get_latest_github_version()
|
|
30
|
+
return latest if latest else "1.3.1"
|
|
33
31
|
|
|
34
32
|
VERSION = _get_version()
|
|
35
33
|
GITHUB_REPO = "The-17/agentsecrets"
|
|
@@ -126,6 +124,19 @@ def ensure_binary():
|
|
|
126
124
|
# Ensure executable
|
|
127
125
|
st = os.stat(binary_path)
|
|
128
126
|
os.chmod(binary_path, st.st_mode | stat.S_IEXEC | stat.S_IXGRP | stat.S_IXOTH)
|
|
127
|
+
|
|
128
|
+
# Pre-register with keychain-auth if available. This eliminates
|
|
129
|
+
# the one-time setup spinner on the user's first command.
|
|
130
|
+
import subprocess
|
|
131
|
+
kc = shutil.which("keychain-auth")
|
|
132
|
+
if kc:
|
|
133
|
+
try:
|
|
134
|
+
subprocess.run(
|
|
135
|
+
[kc, "register", binary_path],
|
|
136
|
+
timeout=5, capture_output=True,
|
|
137
|
+
)
|
|
138
|
+
except Exception:
|
|
139
|
+
pass # AutoSetup handles registration at runtime if needed
|
|
129
140
|
|
|
130
141
|
return binary_path
|
|
131
142
|
|
|
File without changes
|
|
File without changes
|