@skillrecordings/cli 0.18.1 → 0.19.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/README.md +51 -5
- package/bin/skill.mjs +0 -0
- package/dist/{chunk-ZCWCT4ES.js → chunk-F3WI3BN5.js} +3 -3
- package/dist/{chunk-LV53JZHC.js → chunk-GNPR4OKX.js} +2 -2
- package/dist/{chunk-KEV3QKXP.js → chunk-HKRLO2GE.js} +20 -2
- package/dist/chunk-HKRLO2GE.js.map +1 -0
- package/dist/{config-6PEJQQJY.js → config-HHQF5U6R.js} +3 -3
- package/dist/index.js +2067 -964
- package/dist/index.js.map +1 -1
- package/dist/{pipeline-JPI7ITZN.js → pipeline-L72KB4SP.js} +3 -3
- package/package.json +1 -1
- package/dist/chunk-KEV3QKXP.js.map +0 -1
- /package/dist/{chunk-ZCWCT4ES.js.map → chunk-F3WI3BN5.js.map} +0 -0
- /package/dist/{chunk-LV53JZHC.js.map → chunk-GNPR4OKX.js.map} +0 -0
- /package/dist/{config-6PEJQQJY.js.map → config-HHQF5U6R.js.map} +0 -0
- /package/dist/{pipeline-JPI7ITZN.js.map → pipeline-L72KB4SP.js.map} +0 -0
package/README.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
CLI for the support platform. Agent-friendly with non-interactive defaults.
|
|
4
4
|
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
curl -fsSL https://raw.githubusercontent.com/skillrecordings/support/main/packages/cli/install.sh | bash
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Installs to `~/.local/bin/skill`. Add to your PATH if needed:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
After install, run `skill auth setup` to configure credentials.
|
|
18
|
+
|
|
5
19
|
## Usage
|
|
6
20
|
|
|
7
21
|
```bash
|
|
@@ -14,6 +28,38 @@ skill <command> [options]
|
|
|
14
28
|
All commands support `--json` for machine-readable output and reliable exit
|
|
15
29
|
codes.
|
|
16
30
|
|
|
31
|
+
## 1Password Quickstart (60 seconds)
|
|
32
|
+
|
|
33
|
+
If you already have access to the Support vault:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# 1) Install required CLI
|
|
37
|
+
brew install 1password-cli
|
|
38
|
+
|
|
39
|
+
# 2) Optional but recommended: cache OP token in local secrets CLI
|
|
40
|
+
secrets add skill_support_1password_service_account_token
|
|
41
|
+
|
|
42
|
+
# 3) Run one setup command
|
|
43
|
+
skill auth setup
|
|
44
|
+
|
|
45
|
+
# 4) Verify
|
|
46
|
+
skill doctor
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Notes:
|
|
50
|
+
- `secrets` CLI is optional. If missing, `skill auth setup` falls back to `op signin`.
|
|
51
|
+
- Setup writes `SKILL_AGE_KEY` to `~/.config/skill/age.key` so `.env.encrypted` works without keychain.
|
|
52
|
+
|
|
53
|
+
## OAuth Broker Spike
|
|
54
|
+
|
|
55
|
+
Use this to inspect the planned GitHub OAuth + broker auth model that reduces
|
|
56
|
+
local dependencies for team members:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
skill auth oauth-spike
|
|
60
|
+
skill auth oauth-spike --json
|
|
61
|
+
```
|
|
62
|
+
|
|
17
63
|
## Adaptive Hints
|
|
18
64
|
|
|
19
65
|
The CLI prints adaptive onboarding/discovery hints to `stderr` for new users.
|
|
@@ -206,7 +252,7 @@ The CLI uses a layered secrets system:
|
|
|
206
252
|
1Password (OP_SERVICE_ACCOUNT_TOKEN set?)
|
|
207
253
|
↓ yes → resolve from 1Password vault
|
|
208
254
|
↓ no
|
|
209
|
-
.env.encrypted exists +
|
|
255
|
+
.env.encrypted exists + SKILL_AGE_KEY available?
|
|
210
256
|
↓ yes → decrypt and load
|
|
211
257
|
↓ no
|
|
212
258
|
.env.local exists?
|
|
@@ -241,7 +287,7 @@ op item edit "skill-cli" --vault "Support" "MY_NEW_KEY=your-secret-value"
|
|
|
241
287
|
|
|
242
288
|
```bash
|
|
243
289
|
# Decrypt current secrets
|
|
244
|
-
AGE_KEY=$(op read "op://Support/skill-cli-age-key/
|
|
290
|
+
AGE_KEY=$(op read "op://Support/skill-cli-age-key/private_key")
|
|
245
291
|
age -d -i <(echo "$AGE_KEY") .env.encrypted > .env.local
|
|
246
292
|
|
|
247
293
|
# Add new secret to .env.local
|
|
@@ -269,7 +315,7 @@ git commit -m "chore(cli): add MY_NEW_KEY secret"
|
|
|
269
315
|
op item edit "skill-cli" --vault "Support" "MY_KEY=new-value"
|
|
270
316
|
|
|
271
317
|
# 2. Update .env.encrypted (same process as adding)
|
|
272
|
-
AGE_KEY=$(op read "op://Support/skill-cli-age-key/
|
|
318
|
+
AGE_KEY=$(op read "op://Support/skill-cli-age-key/private_key")
|
|
273
319
|
age -d -i <(echo "$AGE_KEY") .env.encrypted > .env.local
|
|
274
320
|
|
|
275
321
|
# Edit .env.local with new value
|
|
@@ -301,7 +347,7 @@ skill auth setup
|
|
|
301
347
|
| Item | Location |
|
|
302
348
|
|------|----------|
|
|
303
349
|
| Secrets | `op://Support/skill-cli/*` |
|
|
304
|
-
| Age keypair | `op://Support/skill-cli-age-key/
|
|
350
|
+
| Age keypair | `op://Support/skill-cli-age-key/private_key` |
|
|
305
351
|
| Encrypted env | `packages/cli/.env.encrypted` |
|
|
306
352
|
| Secret refs | `packages/cli/src/core/secret-refs.ts` |
|
|
307
353
|
|
|
@@ -311,7 +357,7 @@ For CI environments without 1Password:
|
|
|
311
357
|
|
|
312
358
|
```bash
|
|
313
359
|
# Set age key as CI secret, then:
|
|
314
|
-
echo "$
|
|
360
|
+
echo "$SKILL_AGE_KEY" > /tmp/age.key
|
|
315
361
|
age -d -i /tmp/age.key .env.encrypted > .env.local
|
|
316
362
|
rm /tmp/age.key
|
|
317
363
|
```
|
package/bin/skill.mjs
CHANGED
|
File without changes
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
import {
|
|
12
12
|
Redis2,
|
|
13
13
|
log
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-HKRLO2GE.js";
|
|
15
15
|
import {
|
|
16
16
|
queryVectors
|
|
17
17
|
} from "./chunk-H3D6VCME.js";
|
|
@@ -3560,7 +3560,7 @@ ${message.body}
|
|
|
3560
3560
|
---
|
|
3561
3561
|
Write your response:`;
|
|
3562
3562
|
if (useAgentMode && appId) {
|
|
3563
|
-
const { runSupportAgent } = await import("./config-
|
|
3563
|
+
const { runSupportAgent } = await import("./config-HHQF5U6R.js");
|
|
3564
3564
|
await log("debug", "draft using agent mode", {
|
|
3565
3565
|
workflow: "pipeline",
|
|
3566
3566
|
step: "draft",
|
|
@@ -7096,4 +7096,4 @@ export {
|
|
|
7096
7096
|
runPipeline,
|
|
7097
7097
|
runThreadPipeline
|
|
7098
7098
|
};
|
|
7099
|
-
//# sourceMappingURL=chunk-
|
|
7099
|
+
//# sourceMappingURL=chunk-F3WI3BN5.js.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
traceMemoryStore,
|
|
6
6
|
traceMemoryVote,
|
|
7
7
|
traceWorkflowStep
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-HKRLO2GE.js";
|
|
9
9
|
import {
|
|
10
10
|
MemoryService,
|
|
11
11
|
VotingService,
|
|
@@ -15606,4 +15606,4 @@ export {
|
|
|
15606
15606
|
DEFAULT_AGENT_MODEL,
|
|
15607
15607
|
runSupportAgent
|
|
15608
15608
|
};
|
|
15609
|
-
//# sourceMappingURL=chunk-
|
|
15609
|
+
//# sourceMappingURL=chunk-GNPR4OKX.js.map
|
|
@@ -6,6 +6,24 @@ import {
|
|
|
6
6
|
init_esm_shims();
|
|
7
7
|
import { Axiom } from "@axiomhq/js";
|
|
8
8
|
var axiomClient = null;
|
|
9
|
+
var hasLoggedTransientAxiomIngestWarning = false;
|
|
10
|
+
function isTransientAxiomIngestError(error) {
|
|
11
|
+
if (!(error instanceof Error)) return false;
|
|
12
|
+
const message = error.message || "";
|
|
13
|
+
return error instanceof SyntaxError && message.includes("Unexpected end of JSON input") || error.name === "TimeoutError" || message.includes("The operation timed out");
|
|
14
|
+
}
|
|
15
|
+
function handleAxiomError(error, context) {
|
|
16
|
+
if (isTransientAxiomIngestError(error)) {
|
|
17
|
+
if (!hasLoggedTransientAxiomIngestWarning) {
|
|
18
|
+
hasLoggedTransientAxiomIngestWarning = true;
|
|
19
|
+
console.warn(
|
|
20
|
+
"[Axiom] Transient ingest response issue detected; suppressing repeated warnings"
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
console.error(`[Axiom] Failed to ${context}:`, error);
|
|
26
|
+
}
|
|
9
27
|
async function sendTrace(trace) {
|
|
10
28
|
if (!axiomClient) {
|
|
11
29
|
return;
|
|
@@ -17,7 +35,7 @@ async function sendTrace(trace) {
|
|
|
17
35
|
...trace
|
|
18
36
|
});
|
|
19
37
|
} catch (error) {
|
|
20
|
-
|
|
38
|
+
handleAxiomError(error, "send trace");
|
|
21
39
|
}
|
|
22
40
|
}
|
|
23
41
|
async function log(level, message, metadata) {
|
|
@@ -4492,4 +4510,4 @@ export {
|
|
|
4492
4510
|
traceMemoryCite,
|
|
4493
4511
|
Redis2
|
|
4494
4512
|
};
|
|
4495
|
-
//# sourceMappingURL=chunk-
|
|
4513
|
+
//# sourceMappingURL=chunk-HKRLO2GE.js.map
|