@atbash/atbash-openclaw 0.1.16 → 0.1.17
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/dist/context-mapper.js +4 -1
- package/dist/index.js +2 -2
- package/package.json +1 -1
package/dist/context-mapper.js
CHANGED
|
@@ -114,9 +114,12 @@ export function mapEventToInput(event, ctx) {
|
|
|
114
114
|
ctx.name ??
|
|
115
115
|
"unknown";
|
|
116
116
|
const args = ev.params ?? ctx.params ?? ev.args ?? ctx.args ?? ev.arguments ?? ctx.arguments;
|
|
117
|
+
// sessionKey is an auth credential (not a correlation ID) — never include it
|
|
118
|
+
// in signed bytes the server inspects. The remaining fields are redacted
|
|
119
|
+
// defensively in case the installed SDK binary has older patterns than the
|
|
120
|
+
// server's TypeScript containsSecret gate.
|
|
117
121
|
const context = JSON.stringify({
|
|
118
122
|
tool_name: toolName,
|
|
119
|
-
session_id: redactValue(ctx.sessionKey ?? ""),
|
|
120
123
|
run_id: redactValue(ctx.runId ?? ""),
|
|
121
124
|
agent_id: redactValue(ctx.agentId ?? ""),
|
|
122
125
|
channel_id: redactValue(ctx.channelId ?? ""),
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var p=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var z=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var S=(r,e)=>{for(var a in e)p(r,a,{get:e[a],enumerable:!0})},R=(r,e,a,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of z(e))!C.call(r,n)&&n!==a&&p(r,n,{get:()=>e[n],enumerable:!(o=I(e,n))||o.enumerable});return r};var Z=r=>R(p({},"__esModule",{value:!0}),r);var O={};S(O,{default:()=>k});module.exports=Z(O);var E=require("os"),
|
|
2
|
-
`);return e.logger?.warn?.("[atbash] HOLD",{reason:l,toolCallId:u.toolCallId}),n?{block:!0,blockReason:
|
|
1
|
+
"use strict";var p=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var z=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var S=(r,e)=>{for(var a in e)p(r,a,{get:e[a],enumerable:!0})},R=(r,e,a,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of z(e))!C.call(r,n)&&n!==a&&p(r,n,{get:()=>e[n],enumerable:!(o=I(e,n))||o.enumerable});return r};var Z=r=>R(p({},"__esModule",{value:!0}),r);var O={};S(O,{default:()=>k});module.exports=Z(O);var E=require("os"),i=require("@atbash/sdk");var P="atbash-openclaw";function h(r){return r.config?.plugins?.entries?.[P]?.config??{}}var x=[/\bsk-ant-[A-Za-z0-9_-]{20,}/g,/\bsk-proj-[A-Za-z0-9_-]{20,}/g,/\bsk-[A-Za-z0-9]{20,}/g,/\b(?:gh[pousr]|github_pat)_[A-Za-z0-9_]{30,}/g,/\bAIza[0-9A-Za-z_-]{35}/g,/\bya29\.[0-9A-Za-z_-]{20,}/g,/\b(?:AKIA|ASIA|AGPA|AROA|ANPA|ANVA|ASCA|AIDA|AIPA)[0-9A-Z]{16}\b/g,/\b(?:sk|rk|pk)_(?:live|test)_[A-Za-z0-9]{20,}/g,/\bxox[abprseo]-[A-Za-z0-9-]{10,}/g,/\bSG\.[A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{20,}/g,/\bnpm_[A-Za-z0-9]{36,}\b/g,/\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}/g,/\b(?!0x[0-9a-fA-F])(?![0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\b)(?=[A-Za-z0-9_-]*[0-9])(?=[A-Za-z0-9_-]*[A-Za-z])(?![0-9a-fA-F]+$)[A-Za-z0-9_-]{32,}\b/g,/(?<![A-Za-z0-9+/])(?=[A-Za-z0-9+/]*[+/])(?=[A-Za-z0-9+/]*[0-9])(?=[A-Za-z0-9+/]*[A-Za-z])[A-Za-z0-9+/]{40,}={0,2}(?![A-Za-z0-9+/=])/g];function A(r){let e=r;for(let a of x)a.lastIndex=0,e=e.replace(a,"[REDACTED]");return e}var D={"0xdac17f958d2ee523a2206206994597c13d831ec7":"USDT","0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48":"USDC","0x6b175474e89094c44da98b954eedeac495271d0f":"DAI","0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2":"WETH","0x2260fac5e5542a773aa44fbcfedf7c193bc2c599":"WBTC","0x1f9840a85d5af5bf1d1762f925bdaddc4201f984":"UNI","0x514910771af9ca656af840dff83e8264ecf986ca":"LINK","0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9":"AAVE","0xb0df6379ba1692841965a0745ac1bd3046d79ba3":"ATBASH","0xe9c094187219d9a29382c1a36fc43619c9257777":"ATBASH","0xf8b071428558c657a7a9aa1c43e152e75dd77777":"ATBASH"},y=/\b(0x[a-fA-F0-9]{40})\b/,v=/(0x[a-fA-F0-9]{40})/,w=/\b(transfer|send|swap|approve|erc20)\b/i;function F(r){if(!r)return"ETH";let e=r.toLowerCase(),a=v.exec(e);return a?D[a[1].toLowerCase()]??"other":e==="c60"||e==="eth"?"ETH":e==="atbash"?"ATBASH":e==="usdt"||e==="tether"?"USDT":e==="usdc"?"USDC":"other"}function m(r,...e){for(let a of e){let o=r[a];if(typeof o=="string"&&o.trim())return o.trim()}}function N(r,e){let a=e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0,o=a?m(a,"command","cmd","shell_command"):void 0,n=w.test(r),g=o?w.test(o):!1,t=o?y.test(o):!1;if(!n&&!g&&!t)return;let d=b=>o?new RegExp(`--${b}[= ]+(\\S+)`).exec(o)?.[1]:void 0,f=(a?m(a,"token","token_address","asset","currency"):void 0)??d("token");if(!f&&o){let b=y.exec(o);b&&(f=b[1])}let u=(a?m(a,"to","recipient","destination"):void 0)??d("to")??d("recipient"),l=(a?m(a,"amount","value","qty"):void 0)??d("amount"),s=F(f??""),c=o??r;return{operation:/\bswap\b/i.test(c)?"swap":/\b(approve|erc20)\b/i.test(c)?"approve":"transfer",asset:s,amount:l,recipient_status:u?"external":"unspecified",note:"canonicalized pre-judge; raw 0x addresses omitted (redacted upstream)"}}function _(r,e){let a=r??{},o=a.toolName??e.tool?.name??e.toolName??e.name??"unknown",n=a.params??e.params??a.args??e.args??a.arguments??e.arguments,g=JSON.stringify({tool_name:o,run_id:A(e.runId??""),agent_id:A(e.agentId??""),channel_id:A(e.channelId??""),account_id:A(e.accountId??"")});return{toolName:o,args:n,context:g,resolved:N(o,n)}}function T(r){return r.replace(/^~(?=\/|$)/,(0,E.homedir)())}function j(r){return r.memoryWorkspaceDir?T(r.memoryWorkspaceDir):process.cwd()}function L(r){if(r.judgeEndpoint)return r.judgeEndpointPolicy==="self-hosted"?{policy:"self-hosted",endpoint:r.judgeEndpoint,verifyPubKey:r.judgeVerifyPubKey??""}:{policy:"default",endpoint:r.judgeEndpoint}}function k(r){let e=r,a=h(e);if(a.enabled===!1){e.logger?.info?.("[atbash] plugin disabled via config");return}(0,i.setupTelemetry)({enabled:!0,source:"plugin:openclaw"}),process.once("beforeExit",()=>(0,i.shutdownTelemetry)()),process.once("SIGINT",()=>(0,i.shutdownTelemetry)().finally(()=>process.exit(0))),process.once("SIGTERM",()=>(0,i.shutdownTelemetry)().finally(()=>process.exit(0)));let o;try{o=i.Atbash.fromConfig({judge:L(a),keyPath:a.chromiaSecretPath,orgName:a.orgName,failClosed:a.enforceDecision!==!1,logger:e.logger})}catch(t){let d=t instanceof Error?t.message:String(t);throw e.logger?.warn?.("[atbash] init failed",{error:d}),t}let n=a.enforceDecision!==!1;e.logger?.info?.("[atbash] plugin loaded",{enforceDecision:n});let g=(0,i.createMemoryGuardManager)({auth:o.auth,workspaceDir:j(a),memoryFilePath:a.memoryFilePath?T(a.memoryFilePath):void 0,ttlMs:a.memorySyncTTLMs,rollbackMinScore:a.memoryRollbackMinScore,memoryPathPatterns:a.memoryPathPatterns,judgeEndpoint:a.judgeEndpoint,judgeVerifyPubKey:a.judgeVerifyPubKey,orgName:a.orgName,enforce:n,debug:!!a.debug,hostLogger:e.logger});if(g.runBootProbe().catch(t=>{e.logger?.warn?.("[atbash] boot probe failed",{error:t instanceof Error?t.message:String(t)})}),!e.on){e.logger?.warn?.("[atbash] on() API not available");return}e.on("before_tool_call",async(t,d)=>{let f;try{f=await g.handleBeforeToolCall(t,d)}catch(s){let c=s instanceof Error?s.message:String(s);return e.logger?.warn?.("[atbash] memory guard error",{error:c}),s instanceof i.MemoryIntegrityError||n?{block:!0,blockReason:`Memory guard error: ${c}`,allow:!1,reason:`Memory guard error: ${c}`}:{allow:!0}}if(f)return f;let u;try{u=await o.auditToolCall(_(t,d))}catch(s){let c=s instanceof Error?s.message:String(s);return e.logger?.warn?.("[atbash] unexpected error",{error:c}),n?{block:!0,blockReason:`Atbash unavailable: ${c}`,allow:!1,reason:`Atbash unavailable: ${c}`}:{allow:!0}}let l=u.reason??"";switch(u.verdict){case"BLOCK":return e.logger?.warn?.("[atbash] BLOCK",{reason:l}),n?{block:!0,blockReason:l,allow:!1,reason:l}:{allow:!0};case"HOLD":{let s=["Action held for operator review. The agent will not be jailed \u2014 please approve or reject this request from the Atbash dashboard, then ask the agent to try again.",`Reason: ${l}`];u.toolCallId&&s.push(`Tool Call ID: ${u.toolCallId}`);let c=s.join(`
|
|
2
|
+
`);return e.logger?.warn?.("[atbash] HOLD",{reason:l,toolCallId:u.toolCallId}),n?{block:!0,blockReason:c,allow:!1,reason:c}:{allow:!0}}case"ERROR":return e.logger?.warn?.("[atbash] ERROR",{reason:l}),n?{block:!0,blockReason:l,allow:!1,reason:l}:{allow:!0};case"ALLOW":default:return e.logger?.info?.("[atbash] ALLOW",{reason:l}),{allow:!0}}})}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atbash/atbash-openclaw",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.17",
|
|
4
4
|
"description": "OpenClaw ATBASH tool-audit plugin. Thin adapter that maps OpenClaw's before_tool_call hook onto @atbash/sdk.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|