@skillrecordings/cli 0.18.1 → 0.18.2
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 +41 -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 +1225 -946
- 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,28 @@ 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
|
+
|
|
17
53
|
## Adaptive Hints
|
|
18
54
|
|
|
19
55
|
The CLI prints adaptive onboarding/discovery hints to `stderr` for new users.
|
|
@@ -206,7 +242,7 @@ The CLI uses a layered secrets system:
|
|
|
206
242
|
1Password (OP_SERVICE_ACCOUNT_TOKEN set?)
|
|
207
243
|
↓ yes → resolve from 1Password vault
|
|
208
244
|
↓ no
|
|
209
|
-
.env.encrypted exists +
|
|
245
|
+
.env.encrypted exists + SKILL_AGE_KEY available?
|
|
210
246
|
↓ yes → decrypt and load
|
|
211
247
|
↓ no
|
|
212
248
|
.env.local exists?
|
|
@@ -241,7 +277,7 @@ op item edit "skill-cli" --vault "Support" "MY_NEW_KEY=your-secret-value"
|
|
|
241
277
|
|
|
242
278
|
```bash
|
|
243
279
|
# Decrypt current secrets
|
|
244
|
-
AGE_KEY=$(op read "op://Support/skill-cli-age-key/
|
|
280
|
+
AGE_KEY=$(op read "op://Support/skill-cli-age-key/private_key")
|
|
245
281
|
age -d -i <(echo "$AGE_KEY") .env.encrypted > .env.local
|
|
246
282
|
|
|
247
283
|
# Add new secret to .env.local
|
|
@@ -269,7 +305,7 @@ git commit -m "chore(cli): add MY_NEW_KEY secret"
|
|
|
269
305
|
op item edit "skill-cli" --vault "Support" "MY_KEY=new-value"
|
|
270
306
|
|
|
271
307
|
# 2. Update .env.encrypted (same process as adding)
|
|
272
|
-
AGE_KEY=$(op read "op://Support/skill-cli-age-key/
|
|
308
|
+
AGE_KEY=$(op read "op://Support/skill-cli-age-key/private_key")
|
|
273
309
|
age -d -i <(echo "$AGE_KEY") .env.encrypted > .env.local
|
|
274
310
|
|
|
275
311
|
# Edit .env.local with new value
|
|
@@ -301,7 +337,7 @@ skill auth setup
|
|
|
301
337
|
| Item | Location |
|
|
302
338
|
|------|----------|
|
|
303
339
|
| Secrets | `op://Support/skill-cli/*` |
|
|
304
|
-
| Age keypair | `op://Support/skill-cli-age-key/
|
|
340
|
+
| Age keypair | `op://Support/skill-cli-age-key/private_key` |
|
|
305
341
|
| Encrypted env | `packages/cli/.env.encrypted` |
|
|
306
342
|
| Secret refs | `packages/cli/src/core/secret-refs.ts` |
|
|
307
343
|
|
|
@@ -311,7 +347,7 @@ For CI environments without 1Password:
|
|
|
311
347
|
|
|
312
348
|
```bash
|
|
313
349
|
# Set age key as CI secret, then:
|
|
314
|
-
echo "$
|
|
350
|
+
echo "$SKILL_AGE_KEY" > /tmp/age.key
|
|
315
351
|
age -d -i /tmp/age.key .env.encrypted > .env.local
|
|
316
352
|
rm /tmp/age.key
|
|
317
353
|
```
|
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
|