@sponsio/sdk 0.2.0-alpha.4 → 0.2.0-alpha.8
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/contracts/capability/destructive.yaml +213 -0
- package/contracts/capability/factual-claims.yaml +79 -0
- package/contracts/capability/host-config-integrity.yaml +42 -9
- package/contracts/capability/self-modify.yaml +32 -1
- package/contracts/capability/shell.yaml +19 -10
- package/contracts/incident/claude-code-secret-bypass.yaml +46 -14
- package/contracts/incident/cursor-railway-wipe.yaml +60 -4
- package/contracts/incident/openclaw.yaml +9 -63
- package/dist/cli/cli.js +32 -0
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/packs.d.ts.map +1 -1
- package/dist/cli/packs.js +13 -7
- package/dist/cli/packs.js.map +1 -1
- package/dist/cloud/client.d.ts +76 -0
- package/dist/cloud/client.d.ts.map +1 -0
- package/dist/cloud/client.js +198 -0
- package/dist/cloud/client.js.map +1 -0
- package/dist/cloud/evidence.d.ts +108 -0
- package/dist/cloud/evidence.d.ts.map +1 -0
- package/dist/cloud/evidence.js +184 -0
- package/dist/cloud/evidence.js.map +1 -0
- package/dist/cloud/privacy.d.ts +67 -0
- package/dist/cloud/privacy.d.ts.map +1 -0
- package/dist/cloud/privacy.js +170 -0
- package/dist/cloud/privacy.js.map +1 -0
- package/dist/cloud/view-model.d.ts +49 -0
- package/dist/cloud/view-model.d.ts.map +1 -0
- package/dist/cloud/view-model.js +172 -0
- package/dist/cloud/view-model.js.map +1 -0
- package/dist/core/config-loader.js +16 -0
- package/dist/core/config-loader.js.map +1 -1
- package/dist/core/evaluator.d.ts +2 -0
- package/dist/core/evaluator.d.ts.map +1 -1
- package/dist/core/evaluator.js +90 -4
- package/dist/core/evaluator.js.map +1 -1
- package/dist/core/grounding.d.ts +43 -7
- package/dist/core/grounding.d.ts.map +1 -1
- package/dist/core/grounding.js +180 -25
- package/dist/core/grounding.js.map +1 -1
- package/dist/core/nl-parser.d.ts +1 -1
- package/dist/core/nl-parser.d.ts.map +1 -1
- package/dist/core/nl-parser.js +616 -40
- package/dist/core/nl-parser.js.map +1 -1
- package/dist/core/pattern-factory.d.ts.map +1 -1
- package/dist/core/pattern-factory.js +7 -1
- package/dist/core/pattern-factory.js.map +1 -1
- package/dist/core/patterns.d.ts +69 -0
- package/dist/core/patterns.d.ts.map +1 -1
- package/dist/core/patterns.js +133 -10
- package/dist/core/patterns.js.map +1 -1
- package/dist/core/tool-names.d.ts +59 -0
- package/dist/core/tool-names.d.ts.map +1 -0
- package/dist/core/tool-names.js +128 -0
- package/dist/core/tool-names.js.map +1 -0
- package/dist/index.d.ts +144 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +367 -32
- package/dist/index.js.map +1 -1
- package/dist/integrations/claude-agent.d.ts +5 -0
- package/dist/integrations/claude-agent.d.ts.map +1 -1
- package/dist/integrations/claude-agent.js +42 -13
- package/dist/integrations/claude-agent.js.map +1 -1
- package/dist/integrations/google-adk.d.ts +5 -3
- package/dist/integrations/google-adk.d.ts.map +1 -1
- package/dist/integrations/google-adk.js +9 -5
- package/dist/integrations/google-adk.js.map +1 -1
- package/dist/integrations/langchain.d.ts +7 -0
- package/dist/integrations/langchain.d.ts.map +1 -1
- package/dist/integrations/langchain.js +21 -3
- package/dist/integrations/langchain.js.map +1 -1
- package/dist/integrations/openai-agents.d.ts +22 -10
- package/dist/integrations/openai-agents.d.ts.map +1 -1
- package/dist/integrations/openai-agents.js +51 -12
- package/dist/integrations/openai-agents.js.map +1 -1
- package/dist/integrations/openai.d.ts +11 -0
- package/dist/integrations/openai.d.ts.map +1 -1
- package/dist/integrations/openai.js +130 -48
- package/dist/integrations/openai.js.map +1 -1
- package/dist/integrations/vercel-ai.d.ts +20 -9
- package/dist/integrations/vercel-ai.d.ts.map +1 -1
- package/dist/integrations/vercel-ai.js +131 -50
- package/dist/integrations/vercel-ai.js.map +1 -1
- package/package.json +12 -8
- package/prompts/onboard.md +17 -4
- package/contracts/core/llm_safety.yaml +0 -138
|
@@ -82,6 +82,15 @@ tools:
|
|
|
82
82
|
OpenClaw's native ``exec`` (no rename). Writing rules against
|
|
83
83
|
the canonical name lets one pack cover all three hosts.
|
|
84
84
|
params: "command: str"
|
|
85
|
+
- name: write
|
|
86
|
+
description: >-
|
|
87
|
+
File-write tool. Mapped to host-specific ``Write`` (Cursor /
|
|
88
|
+
Claude Code) via ``tool_rename``. We scan the ``content`` arg
|
|
89
|
+
for staged destructive shell commands so an agent that wraps
|
|
90
|
+
the deletion into a script and runs the script (the actual
|
|
91
|
+
observed evasion in trace ``conv-c407bfd9``) doesn't bypass
|
|
92
|
+
§ 1–3. See § 4.
|
|
93
|
+
params: "path: str, content: str"
|
|
85
94
|
|
|
86
95
|
agents:
|
|
87
96
|
"*":
|
|
@@ -91,8 +100,9 @@ agents:
|
|
|
91
100
|
# § 1 — Destructive HTTP verbs against Railway's control-plane API.
|
|
92
101
|
# =====================================================================
|
|
93
102
|
- desc: >-
|
|
94
|
-
|
|
95
|
-
|
|
103
|
+
🚨 BLOCKED: curl -X DELETE against Railway would destroy a
|
|
104
|
+
production volume (data + co-located backups, irreversible).
|
|
105
|
+
PocketOS lost everything in 9 seconds this way.
|
|
96
106
|
G:
|
|
97
107
|
pattern: arg_blacklist
|
|
98
108
|
args:
|
|
@@ -122,8 +132,9 @@ agents:
|
|
|
122
132
|
# delete`` are equally irreversible.
|
|
123
133
|
# =====================================================================
|
|
124
134
|
- desc: >-
|
|
125
|
-
|
|
126
|
-
|
|
135
|
+
🚨 BLOCKED: Railway CLI destructive verb (down / volume delete /
|
|
136
|
+
env delete / project delete) — would destroy production data
|
|
137
|
+
including co-located backups. Replay of PocketOS 9-second wipe.
|
|
127
138
|
G:
|
|
128
139
|
pattern: arg_blacklist
|
|
129
140
|
args:
|
|
@@ -162,3 +173,48 @@ agents:
|
|
|
162
173
|
"(?i)\\b(curl|wget|httpie|http)\\b[^|;&\\n]*(?:-X\\s*DELETE|--request\\s+DELETE)[^|;&\\n]*\\bmanagement\\.azure\\.com\\b",
|
|
163
174
|
]
|
|
164
175
|
source: "incident:cursor-railway-wipe.curl_paas_destroy_generic"
|
|
176
|
+
|
|
177
|
+
# =====================================================================
|
|
178
|
+
# § 4 — Script-staging evasion (file Write that contains the same
|
|
179
|
+
# destructive shell pattern § 1–3 watch for).
|
|
180
|
+
#
|
|
181
|
+
# Real-world observed in trace ``conv-c407bfd9-2333-450b-bb01-
|
|
182
|
+
# 0bea7798ae48`` (PocketOS demo replay, 2026-05-05): instead of
|
|
183
|
+
# emitting ``curl -X DELETE`` directly through Bash, the agent
|
|
184
|
+
# wrote ``ops/recover-staging-db.sh`` containing the destructive
|
|
185
|
+
# curl, then executed ``./ops/recover-staging-db.sh``. Because
|
|
186
|
+
# § 1–3 inspect the ``Bash.command`` literal, the regex sees
|
|
187
|
+
# ``./script.sh`` (no curl, no DELETE) and the call passes. This
|
|
188
|
+
# rule closes the staging surface — Write content is matched
|
|
189
|
+
# with the SAME regex set as § 1–3.
|
|
190
|
+
#
|
|
191
|
+
# Trade-off: catches legitimate ops scripts that genuinely do
|
|
192
|
+
# call Railway DELETE (the runbook itself, audit tooling, etc.).
|
|
193
|
+
# That's intentional — those scripts shouldn't be authored by
|
|
194
|
+
# an LLM agent on the spot; humans commit them out-of-band.
|
|
195
|
+
# =====================================================================
|
|
196
|
+
- desc: >-
|
|
197
|
+
🚨 BLOCKED: writing a script that contains a destructive
|
|
198
|
+
Railway / PaaS curl. Script-staging evasion — same blast
|
|
199
|
+
radius as direct curl, just hidden in a .sh file.
|
|
200
|
+
G:
|
|
201
|
+
pattern: arg_blacklist
|
|
202
|
+
args:
|
|
203
|
+
- write
|
|
204
|
+
- content
|
|
205
|
+
- [
|
|
206
|
+
# Mirrors § 1 on Write content.
|
|
207
|
+
"(?i)\\b(curl|wget|httpie|http)\\b[^|;&\\n]*\\b(api|backboard)\\.railway\\.(?:app|com)\\b[^|;&\\n]*(?:-X\\s*DELETE|--request\\s+DELETE)",
|
|
208
|
+
"(?i)\\b(curl|wget|httpie|http)\\b[^|;&\\n]*(?:-X\\s*DELETE|--request\\s+DELETE)[^|;&\\n]*\\b(api|backboard)\\.railway\\.(?:app|com)\\b",
|
|
209
|
+
"(?i)\\b(curl|wget|httpie|http)\\b[^|;&\\n]*backboard\\.railway\\.(?:app|com)[^|;&\\n]*(?:volumeDelete|volumeInstanceDelete|projectDelete|environmentDelete|serviceDelete|deploymentRemove)",
|
|
210
|
+
# Mirrors § 2 — Railway CLI verbs in script content.
|
|
211
|
+
"(?i)(?<!\\S)railway\\s+down(?:\\s|$)",
|
|
212
|
+
"(?i)(?<!\\S)railway\\s+volumes?\\s+delete\\b",
|
|
213
|
+
"(?i)(?<!\\S)railway\\s+environment\\s+delete\\b",
|
|
214
|
+
"(?i)(?<!\\S)railway\\s+project\\s+delete\\b",
|
|
215
|
+
"(?i)(?<!\\S)railway\\s+service\\s+delete\\b",
|
|
216
|
+
"(?i)(?<!\\S)railway\\s+destroy\\b",
|
|
217
|
+
# Mirrors § 3 — generic PaaS curl-DELETE.
|
|
218
|
+
"(?i)\\b(curl|wget|httpie|http)\\b[^|;&\\n]*(?:-X\\s*DELETE|--request\\s+DELETE)[^|;&\\n]*\\b(?:api|console|cloud|backboard|app)\\.(?:railway|fly|render|supabase|vercel|heroku|cloudflare|digitalocean|linode|hetzner|fastly|netlify)\\.(?:app|io|com|dev|net)\\b",
|
|
219
|
+
]
|
|
220
|
+
source: "incident:cursor-railway-wipe.write_script_staging"
|
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
# Sponsio contract pack for OpenClaw (née Clawdbot / Moltbot)
|
|
3
3
|
# Target: OpenClaw local gateway, v2026.2.12 or newer
|
|
4
4
|
#
|
|
5
|
-
#
|
|
6
|
-
# jailbreak_free, harmful, semantic_pii_free,
|
|
7
|
-
#
|
|
8
|
-
#
|
|
9
|
-
#
|
|
10
|
-
#
|
|
11
|
-
#
|
|
12
|
-
#
|
|
5
|
+
# Deterministic throughout. Eight LLM-judged contracts used to sit in §0
|
|
6
|
+
# and §9 (injection_free, jailbreak_free, harmful, semantic_pii_free,
|
|
7
|
+
# toxic_free, hallucination_free, scope_respect). No build resolves those
|
|
8
|
+
# names, so in enforce mode the loader refused the WHOLE config and this
|
|
9
|
+
# pack armed nothing: the 37 deterministic rules below went down with the
|
|
10
|
+
# eight. The header used to claim §1-§8 loaded "either way". They did not.
|
|
11
|
+
#
|
|
12
|
+
# Removed rather than skipped. A marker that lets enforce mode drop a
|
|
13
|
+
# declared rule is the one mechanism this product must not have.
|
|
13
14
|
#
|
|
14
15
|
# Schema conventions used in this file:
|
|
15
16
|
# - `desc:` — human-readable explanation (rendering only)
|
|
@@ -101,36 +102,6 @@ agents:
|
|
|
101
102
|
# § 0 — Tier 0 universal (portable; candidates for a future universal.yaml)
|
|
102
103
|
# =====================================================================
|
|
103
104
|
|
|
104
|
-
- desc: "No prompt injection in any LLM response"
|
|
105
|
-
G:
|
|
106
|
-
pattern: injection_free
|
|
107
|
-
context_scope: full_trace
|
|
108
|
-
source: "library:tier0.adversarial"
|
|
109
|
-
beta: 0.95
|
|
110
|
-
|
|
111
|
-
- desc: "No jailbreak compliance in any LLM response"
|
|
112
|
-
G:
|
|
113
|
-
pattern: jailbreak_free
|
|
114
|
-
source: "library:tier0.adversarial"
|
|
115
|
-
beta: 0.9
|
|
116
|
-
|
|
117
|
-
- desc: "No harmful advice or facilitation of real-world harm"
|
|
118
|
-
G:
|
|
119
|
-
pattern: harmful
|
|
120
|
-
source: "library:tier0.harm"
|
|
121
|
-
beta: 0.95
|
|
122
|
-
|
|
123
|
-
- desc: "Response free of contextual PII"
|
|
124
|
-
G:
|
|
125
|
-
pattern: semantic_pii_free
|
|
126
|
-
source: "library:tier0.privacy"
|
|
127
|
-
beta: 0.95
|
|
128
|
-
|
|
129
|
-
- desc: "Response free of toxic or harassing language"
|
|
130
|
-
G:
|
|
131
|
-
pattern: toxic_free
|
|
132
|
-
source: "library:tier0.harm"
|
|
133
|
-
beta: 0.9
|
|
134
105
|
|
|
135
106
|
- desc: "Total token usage bounded per session"
|
|
136
107
|
G:
|
|
@@ -462,31 +433,6 @@ agents:
|
|
|
462
433
|
ltl: "G(called(apply_patch) -> count(confirm_reconfirmed) >= count(apply_patch))"
|
|
463
434
|
source: "incident:CVE-2026-29607"
|
|
464
435
|
|
|
465
|
-
# =====================================================================
|
|
466
|
-
# § 9 — Capability-specific stochastic atoms
|
|
467
|
-
# =====================================================================
|
|
468
|
-
|
|
469
|
-
- desc: "After web_fetch, responses stay grounded in the fetched content"
|
|
470
|
-
A: "called `web_fetch`"
|
|
471
|
-
G:
|
|
472
|
-
pattern: hallucination_free
|
|
473
|
-
args: ["{fetched_content}"]
|
|
474
|
-
source: "library:tier1.browser"
|
|
475
|
-
beta: 0.9
|
|
476
|
-
|
|
477
|
-
- desc: "Agent stays within its declared scope"
|
|
478
|
-
G:
|
|
479
|
-
pattern: scope_respect
|
|
480
|
-
args: ["local personal assistant — file, shell, messaging, browsing on behalf of owner"]
|
|
481
|
-
source: "library:tier0.scope"
|
|
482
|
-
beta: 0.85
|
|
483
|
-
|
|
484
|
-
- desc: "Agent does not agree to disable its own safety constraints (anti-guilttrip)"
|
|
485
|
-
G:
|
|
486
|
-
pattern: jailbreak_free
|
|
487
|
-
source: "incident:wired-guilttrip"
|
|
488
|
-
beta: 0.95
|
|
489
|
-
|
|
490
436
|
# -----------------------------------------------------------------------------
|
|
491
437
|
# Notes on what this file deliberately does NOT cover
|
|
492
438
|
# -----------------------------------------------------------------------------
|
package/dist/cli/cli.js
CHANGED
|
@@ -59,6 +59,17 @@ const HELP = [
|
|
|
59
59
|
"ARGUMENTS:",
|
|
60
60
|
' <patterns...> Files or glob patterns to scan (default: "src/**/*.{ts,tsx,js,jsx}")',
|
|
61
61
|
"",
|
|
62
|
+
"COMMANDS:",
|
|
63
|
+
" init | onboard Write a sponsio.yaml for this project",
|
|
64
|
+
" scan | validate Mine contracts from code; check a config parses",
|
|
65
|
+
" mode | packs Flip observe/enforce; list the shipped contract packs",
|
|
66
|
+
" check | eval Judge one trace; judge a directory of them",
|
|
67
|
+
" report | replay What would have been blocked; re-run a recorded session",
|
|
68
|
+
" patterns | explain The pattern catalog; why one contract exists",
|
|
69
|
+
" doctor | skill Environment check; install the agent skill",
|
|
70
|
+
" prompt | export Authoring prompts; export a config or sessions",
|
|
71
|
+
" demo Run a packaged scenario",
|
|
72
|
+
"",
|
|
62
73
|
"OPTIONS:",
|
|
63
74
|
" -o, --out <file> Write output to <file> instead of stdout",
|
|
64
75
|
" -c, --config <yaml> Read defaults from sponsio.yaml's ``scan:`` section and",
|
|
@@ -339,6 +350,27 @@ async function main() {
|
|
|
339
350
|
}
|
|
340
351
|
return;
|
|
341
352
|
}
|
|
353
|
+
// Anything above returned. A first argument that is plainly meant as a
|
|
354
|
+
// command and matched none of them used to fall through to the scanner,
|
|
355
|
+
// which found no files, printed `{"tools":[]}` and exited 0. A typo
|
|
356
|
+
// therefore looked like a success — and the onboarding prompt tells
|
|
357
|
+
// coding agents to run these commands, so the agent reads the zero exit
|
|
358
|
+
// and moves on.
|
|
359
|
+
//
|
|
360
|
+
// A scan target is a path or a glob. A bare word that is neither, with
|
|
361
|
+
// no extension and no glob metacharacter and nothing on disk by that
|
|
362
|
+
// name, is a mistyped command.
|
|
363
|
+
const first = raw[0];
|
|
364
|
+
if (first !== undefined &&
|
|
365
|
+
!first.startsWith("-") &&
|
|
366
|
+
!/[*?[\]{}]/.test(first) &&
|
|
367
|
+
!first.includes("/") &&
|
|
368
|
+
!first.includes(".") &&
|
|
369
|
+
!(0, fs_1.existsSync)(first)) {
|
|
370
|
+
process.stderr.write(`sponsio: unknown command '${first}'\n` +
|
|
371
|
+
`Run 'sponsio --help' for the list, or pass a path or glob to scan.\n`);
|
|
372
|
+
process.exit(2);
|
|
373
|
+
}
|
|
342
374
|
const args = parseArgs(raw);
|
|
343
375
|
if (args.help) {
|
|
344
376
|
process.stdout.write(HELP);
|
package/dist/cli/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/packs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packs.d.ts","sourceRoot":"","sources":["../../src/cli/packs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"packs.d.ts","sourceRoot":"","sources":["../../src/cli/packs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAyJH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC/D"}
|
package/dist/cli/packs.js
CHANGED
|
@@ -20,13 +20,7 @@ const PACKS = [
|
|
|
20
20
|
name: "sponsio:core/universal",
|
|
21
21
|
rules: 0,
|
|
22
22
|
ruleType: "det",
|
|
23
|
-
description: "Empty stub in this build. The output-
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
name: "sponsio:core/llm_safety",
|
|
27
|
-
rules: 5,
|
|
28
|
-
ruleType: "sto",
|
|
29
|
-
description: "Not supported in this build (the engine is deterministic-only). LLM-judge safety net: injection_free / jailbreak_free / harmful / toxic_free / semantic_pii_free.",
|
|
23
|
+
description: "Empty stub in this build. The stochastic output-safety contracts it once shipped were removed (the engine is deterministic-only).",
|
|
30
24
|
},
|
|
31
25
|
{
|
|
32
26
|
name: "sponsio:core/runaway",
|
|
@@ -40,6 +34,18 @@ const PACKS = [
|
|
|
40
34
|
ruleType: "det",
|
|
41
35
|
description: "Any tool executing shell commands — dangerous verbs, force flags, rate caps.",
|
|
42
36
|
},
|
|
37
|
+
{
|
|
38
|
+
name: "sponsio:capability/destructive",
|
|
39
|
+
rules: 11,
|
|
40
|
+
ruleType: "det",
|
|
41
|
+
description: "Destructive / irreversible operations the other capability packs don't cover: unconditional denies plus count-gated confirmations.",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: "sponsio:capability/factual-claims",
|
|
45
|
+
rules: 3,
|
|
46
|
+
ruleType: "det",
|
|
47
|
+
description: "Evidence obligations for factual claims. Needs a Sponsio Cloud key: verdicts come from the cloud evidence API.",
|
|
48
|
+
},
|
|
43
49
|
{
|
|
44
50
|
name: "sponsio:capability/filesystem",
|
|
45
51
|
rules: 9,
|
package/dist/cli/packs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packs.js","sourceRoot":"","sources":["../../src/cli/packs.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;
|
|
1
|
+
{"version":3,"file":"packs.js","sourceRoot":"","sources":["../../src/cli/packs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Talking to the cloud.
|
|
3
|
+
*
|
|
4
|
+
* Port of ``sponsio/cloud/client.py`` narrowed to the two calls an agent
|
|
5
|
+
* makes at runtime: pull the book it should enforce, and upload what it
|
|
6
|
+
* did. Everything else in the Python client belongs to the CLI.
|
|
7
|
+
*
|
|
8
|
+
* Until this existed the TypeScript SDK enforced correctly and uploaded
|
|
9
|
+
* nothing, so a customer running a TypeScript agent showed up in the
|
|
10
|
+
* console with no runs at all: rules could not be rolled out to them and
|
|
11
|
+
* nothing they did could be seen.
|
|
12
|
+
*/
|
|
13
|
+
export declare class CloudError extends Error {
|
|
14
|
+
readonly status?: number;
|
|
15
|
+
constructor(message: string, status?: number);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* ``SPONSIO_API_KEY`` first, then ``~/.sponsio/credentials``. The
|
|
19
|
+
* environment wins so CI and one-off runs can override a logged-in
|
|
20
|
+
* machine without touching files.
|
|
21
|
+
*/
|
|
22
|
+
export declare function readApiKey(): string | null;
|
|
23
|
+
/**
|
|
24
|
+
* ``SPONSIO_PROJECT``, or null.
|
|
25
|
+
*
|
|
26
|
+
* Which customer a run belongs to is deployment configuration, not code.
|
|
27
|
+
* A platform running one agent for forty customers ships one image and
|
|
28
|
+
* varies the environment; naming the customer in the call would mean an
|
|
29
|
+
* image per customer.
|
|
30
|
+
*/
|
|
31
|
+
export declare function readProject(): string | null;
|
|
32
|
+
export declare function baseUrl(): string;
|
|
33
|
+
export interface PulledRulebook {
|
|
34
|
+
yamlText: string;
|
|
35
|
+
versions?: string;
|
|
36
|
+
sha?: string;
|
|
37
|
+
agent?: string;
|
|
38
|
+
channel?: string;
|
|
39
|
+
}
|
|
40
|
+
export interface CloudClientOptions {
|
|
41
|
+
apiKey?: string | null;
|
|
42
|
+
baseUrl?: string;
|
|
43
|
+
/** Milliseconds. A run must not wait on telemetry. */
|
|
44
|
+
timeoutMs?: number;
|
|
45
|
+
}
|
|
46
|
+
export declare class CloudClient {
|
|
47
|
+
readonly apiKey: string | null;
|
|
48
|
+
readonly base: string;
|
|
49
|
+
readonly timeoutMs: number;
|
|
50
|
+
constructor(opts?: CloudClientOptions);
|
|
51
|
+
/** Whether there is a credential to speak with at all. */
|
|
52
|
+
get configured(): boolean;
|
|
53
|
+
private request;
|
|
54
|
+
private static detail;
|
|
55
|
+
/**
|
|
56
|
+
* Fetch a project's rulebook.
|
|
57
|
+
*
|
|
58
|
+
* Without ``agent`` this returns every agent merged into one document:
|
|
59
|
+
* a guard binds by agent id and loads only its own section, so one
|
|
60
|
+
* request serves a whole repo.
|
|
61
|
+
*/
|
|
62
|
+
pullRulebook(project?: string | null, opts?: {
|
|
63
|
+
agent?: string;
|
|
64
|
+
version?: number;
|
|
65
|
+
}): Promise<PulledRulebook>;
|
|
66
|
+
/**
|
|
67
|
+
* Send a run to the cloud.
|
|
68
|
+
*
|
|
69
|
+
* Idempotent on the session key server-side, so a retry after a blip
|
|
70
|
+
* cannot double a run. Callers on the hot path must not wait on this:
|
|
71
|
+
* telemetry is outbound-only and best-effort, and losing it must never
|
|
72
|
+
* change what the agent does.
|
|
73
|
+
*/
|
|
74
|
+
ingestSession(project: string | null, payload: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/cloud/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AASH,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;gBACb,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;CAK7C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAkB1C;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,IAAI,MAAM,GAAG,IAAI,CAE3C;AAcD,wBAAgB,OAAO,IAAI,MAAM,CAGhC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,WAAW;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,IAAI,GAAE,kBAAuB;IAMzC,0DAA0D;IAC1D,IAAI,UAAU,IAAI,OAAO,CAExB;YAEa,OAAO;IA0BrB,OAAO,CAAC,MAAM,CAAC,MAAM;IAerB;;;;;;OAMG;IACG,YAAY,CAChB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,EACvB,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO,GAC9C,OAAO,CAAC,cAAc,CAAC;IAkC1B;;;;;;;OAOG;IACG,aAAa,CACjB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAsBpC"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Talking to the cloud.
|
|
3
|
+
*
|
|
4
|
+
* Port of ``sponsio/cloud/client.py`` narrowed to the two calls an agent
|
|
5
|
+
* makes at runtime: pull the book it should enforce, and upload what it
|
|
6
|
+
* did. Everything else in the Python client belongs to the CLI.
|
|
7
|
+
*
|
|
8
|
+
* Until this existed the TypeScript SDK enforced correctly and uploaded
|
|
9
|
+
* nothing, so a customer running a TypeScript agent showed up in the
|
|
10
|
+
* console with no runs at all: rules could not be rolled out to them and
|
|
11
|
+
* nothing they did could be seen.
|
|
12
|
+
*/
|
|
13
|
+
import { homedir } from "node:os";
|
|
14
|
+
import { join } from "node:path";
|
|
15
|
+
import { readFileSync } from "node:fs";
|
|
16
|
+
const DEFAULT_BASE_URL = "https://app.sponsio.dev";
|
|
17
|
+
const CREDENTIALS_PATH = join(homedir(), ".sponsio", "credentials");
|
|
18
|
+
export class CloudError extends Error {
|
|
19
|
+
status;
|
|
20
|
+
constructor(message, status) {
|
|
21
|
+
super(message);
|
|
22
|
+
this.name = "CloudError";
|
|
23
|
+
if (status !== undefined)
|
|
24
|
+
this.status = status;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* ``SPONSIO_API_KEY`` first, then ``~/.sponsio/credentials``. The
|
|
29
|
+
* environment wins so CI and one-off runs can override a logged-in
|
|
30
|
+
* machine without touching files.
|
|
31
|
+
*/
|
|
32
|
+
export function readApiKey() {
|
|
33
|
+
const env = (process.env.SPONSIO_API_KEY ?? "").trim();
|
|
34
|
+
if (env)
|
|
35
|
+
return env;
|
|
36
|
+
try {
|
|
37
|
+
for (const line of readFileSync(CREDENTIALS_PATH, "utf8").split("\n")) {
|
|
38
|
+
const t = line.trim();
|
|
39
|
+
if (!t || t.startsWith("#"))
|
|
40
|
+
continue;
|
|
41
|
+
const eq = t.indexOf("=");
|
|
42
|
+
if (eq < 0)
|
|
43
|
+
continue;
|
|
44
|
+
if (t.slice(0, eq).trim() === "api_key") {
|
|
45
|
+
const v = t.slice(eq + 1).trim();
|
|
46
|
+
if (v)
|
|
47
|
+
return v;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* ``SPONSIO_PROJECT``, or null.
|
|
58
|
+
*
|
|
59
|
+
* Which customer a run belongs to is deployment configuration, not code.
|
|
60
|
+
* A platform running one agent for forty customers ships one image and
|
|
61
|
+
* varies the environment; naming the customer in the call would mean an
|
|
62
|
+
* image per customer.
|
|
63
|
+
*/
|
|
64
|
+
export function readProject() {
|
|
65
|
+
return (process.env.SPONSIO_PROJECT ?? "").trim() || null;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Strip trailing slashes without a regex.
|
|
69
|
+
*
|
|
70
|
+
* ``/\/+$/`` is quadratic on a string that is mostly slashes, and the
|
|
71
|
+
* base URL comes from the environment on a machine we do not run.
|
|
72
|
+
*/
|
|
73
|
+
function trimSlashes(url) {
|
|
74
|
+
let end = url.length;
|
|
75
|
+
while (end > 0 && url.charCodeAt(end - 1) === 47)
|
|
76
|
+
end--;
|
|
77
|
+
return url.slice(0, end);
|
|
78
|
+
}
|
|
79
|
+
export function baseUrl() {
|
|
80
|
+
const explicit = (process.env.SPONSIO_API_URL ?? "").trim();
|
|
81
|
+
return trimSlashes(explicit || DEFAULT_BASE_URL);
|
|
82
|
+
}
|
|
83
|
+
export class CloudClient {
|
|
84
|
+
apiKey;
|
|
85
|
+
base;
|
|
86
|
+
timeoutMs;
|
|
87
|
+
constructor(opts = {}) {
|
|
88
|
+
this.apiKey = opts.apiKey === undefined ? readApiKey() : opts.apiKey;
|
|
89
|
+
this.base = trimSlashes(opts.baseUrl ?? baseUrl());
|
|
90
|
+
this.timeoutMs = opts.timeoutMs ?? 10_000;
|
|
91
|
+
}
|
|
92
|
+
/** Whether there is a credential to speak with at all. */
|
|
93
|
+
get configured() {
|
|
94
|
+
return Boolean(this.apiKey);
|
|
95
|
+
}
|
|
96
|
+
async request(method, path, body, contentType) {
|
|
97
|
+
if (!this.apiKey)
|
|
98
|
+
throw new CloudError("no API key configured");
|
|
99
|
+
const controller = new AbortController();
|
|
100
|
+
const timer = setTimeout(() => controller.abort(), this.timeoutMs);
|
|
101
|
+
try {
|
|
102
|
+
const headers = {
|
|
103
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
104
|
+
};
|
|
105
|
+
if (contentType)
|
|
106
|
+
headers["Content-Type"] = contentType;
|
|
107
|
+
const res = await fetch(this.base + path, {
|
|
108
|
+
method,
|
|
109
|
+
headers,
|
|
110
|
+
...(body === undefined ? {} : { body }),
|
|
111
|
+
signal: controller.signal,
|
|
112
|
+
});
|
|
113
|
+
return { status: res.status, text: await res.text(), headers: res.headers };
|
|
114
|
+
}
|
|
115
|
+
finally {
|
|
116
|
+
clearTimeout(timer);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
static detail(text, fallback) {
|
|
120
|
+
try {
|
|
121
|
+
const parsed = JSON.parse(text);
|
|
122
|
+
const d = parsed.detail;
|
|
123
|
+
if (typeof d === "string")
|
|
124
|
+
return d;
|
|
125
|
+
if (d && typeof d === "object") {
|
|
126
|
+
const o = d;
|
|
127
|
+
return o.message ?? o.error ?? fallback;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
/* not JSON; the fallback says what happened */
|
|
132
|
+
}
|
|
133
|
+
return fallback;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Fetch a project's rulebook.
|
|
137
|
+
*
|
|
138
|
+
* Without ``agent`` this returns every agent merged into one document:
|
|
139
|
+
* a guard binds by agent id and loads only its own section, so one
|
|
140
|
+
* request serves a whole repo.
|
|
141
|
+
*/
|
|
142
|
+
async pullRulebook(project, opts = {}) {
|
|
143
|
+
const q = [];
|
|
144
|
+
if (project)
|
|
145
|
+
q.push(`project=${encodeURIComponent(project)}`);
|
|
146
|
+
if (opts.agent)
|
|
147
|
+
q.push(`agent=${encodeURIComponent(opts.agent)}`);
|
|
148
|
+
if (opts.version !== undefined)
|
|
149
|
+
q.push(`version=${opts.version}`);
|
|
150
|
+
const path = "/v1/rulebook" + (q.length ? "?" + q.join("&") : "");
|
|
151
|
+
const { status, text, headers } = await this.request("GET", path);
|
|
152
|
+
if (status === 404) {
|
|
153
|
+
// "Nothing published yet" rather than a failure: the caller may
|
|
154
|
+
// publish its local yaml instead of giving up.
|
|
155
|
+
throw new CloudError(CloudClient.detail(text, "no rulebook published"), 404);
|
|
156
|
+
}
|
|
157
|
+
if (status !== 200) {
|
|
158
|
+
throw new CloudError(CloudClient.detail(text, `pull failed (${status})`), status);
|
|
159
|
+
}
|
|
160
|
+
const out = { yamlText: text };
|
|
161
|
+
const v = headers.get("x-rulebook-versions") ?? headers.get("x-rulebook-version");
|
|
162
|
+
if (v)
|
|
163
|
+
out.versions = v;
|
|
164
|
+
const sha = headers.get("x-rulebook-sha");
|
|
165
|
+
if (sha)
|
|
166
|
+
out.sha = sha;
|
|
167
|
+
const agent = headers.get("x-rulebook-agent");
|
|
168
|
+
if (agent)
|
|
169
|
+
out.agent = agent;
|
|
170
|
+
const channel = headers.get("x-rulebook-channel");
|
|
171
|
+
if (channel)
|
|
172
|
+
out.channel = channel;
|
|
173
|
+
return out;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Send a run to the cloud.
|
|
177
|
+
*
|
|
178
|
+
* Idempotent on the session key server-side, so a retry after a blip
|
|
179
|
+
* cannot double a run. Callers on the hot path must not wait on this:
|
|
180
|
+
* telemetry is outbound-only and best-effort, and losing it must never
|
|
181
|
+
* change what the agent does.
|
|
182
|
+
*/
|
|
183
|
+
async ingestSession(project, payload) {
|
|
184
|
+
const path = "/v1/sessions/ingest" +
|
|
185
|
+
(project ? `?project=${encodeURIComponent(project)}` : "");
|
|
186
|
+
const { status, text } = await this.request("POST", path, JSON.stringify(payload), "application/json");
|
|
187
|
+
if (status !== 200) {
|
|
188
|
+
throw new CloudError(CloudClient.detail(text, `ingest failed (${status})`), status);
|
|
189
|
+
}
|
|
190
|
+
try {
|
|
191
|
+
return JSON.parse(text);
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
throw new CloudError("ingest returned a non-JSON body", status);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/cloud/client.ts"],"names":[],"mappings":"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"}
|