@troykelly/openclaw-projects 0.0.60 → 0.0.63

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/logger.js CHANGED
@@ -1,8 +1,14 @@
1
1
  /**
2
- * Logger utility with automatic sensitive data redaction.
3
- * Ensures API keys, tokens, and other secrets are never logged.
2
+ * Logger adapter for OpenClaw plugin integration.
3
+ *
4
+ * Wraps the host's PluginLogger (string-only methods) with a richer Logger
5
+ * interface that accepts structured data, handles redaction, and supports
6
+ * component-scoped child loggers.
7
+ *
8
+ * The host handles timestamps, levels, and `[plugins]` prefixes.
9
+ * This adapter adds `[openclaw-projects]` or `[openclaw-projects:component]`.
4
10
  */
5
- /** Fields that should be redacted from logs */
11
+ // ── Sensitive field names (case-insensitive match) ──────────────────────────
6
12
  const SENSITIVE_FIELDS = new Set([
7
13
  'apikey',
8
14
  'api_key',
@@ -18,28 +24,71 @@ const SENSITIVE_FIELDS = new Set([
18
24
  'privatekey',
19
25
  'access_token',
20
26
  'refresh_token',
27
+ 'share_token',
28
+ 'session_token',
29
+ 'id_token',
30
+ 'webhook_token',
31
+ 'connection_token',
32
+ 'otp',
33
+ 'postmarktoken',
34
+ 'twilioauthtoken',
35
+ 'twilioaccount',
36
+ 'twilioaccountsid',
21
37
  ]);
38
+ /** Patterns in string values that indicate a secret (regardless of field name). */
39
+ const SENSITIVE_VALUE_PATTERNS = [
40
+ /^Bearer\s+/i,
41
+ /^sk_live_/,
42
+ /^sk_test_/,
43
+ ];
44
+ /** Maximum component nesting depth for child loggers. */
45
+ const MAX_CHILD_DEPTH = 3;
46
+ // ── redactSensitive ─────────────────────────────────────────────────────────
22
47
  /**
23
48
  * Recursively redacts sensitive fields from an object.
24
49
  * Creates a deep copy to avoid modifying the original.
50
+ *
51
+ * Redacts by:
52
+ * 1. Field name matching (case-insensitive) against SENSITIVE_FIELDS
53
+ * 2. Value pattern matching against SENSITIVE_VALUE_PATTERNS
25
54
  */
26
- export function redactSensitive(value) {
55
+ export function redactSensitive(value, seen) {
27
56
  if (value === null || value === undefined) {
28
57
  return value;
29
58
  }
30
59
  if (typeof value !== 'object') {
31
60
  return value;
32
61
  }
62
+ // Circular reference protection
63
+ const visited = seen ?? new WeakSet();
64
+ if (visited.has(value)) {
65
+ return '[Circular]';
66
+ }
67
+ visited.add(value);
33
68
  if (Array.isArray(value)) {
34
- return value.map((item) => redactSensitive(item));
69
+ return value.map((item) => redactSensitive(item, visited));
70
+ }
71
+ // Error objects: extract message/stack/code before processing
72
+ if (value instanceof Error) {
73
+ const errorObj = { message: value.message };
74
+ if (value.stack) {
75
+ errorObj.stack = value.stack;
76
+ }
77
+ if ('code' in value && value.code !== undefined) {
78
+ errorObj.code = value.code;
79
+ }
80
+ return errorObj;
35
81
  }
36
82
  const result = {};
37
83
  for (const [key, val] of Object.entries(value)) {
38
84
  if (SENSITIVE_FIELDS.has(key.toLowerCase())) {
39
85
  result[key] = '[REDACTED]';
40
86
  }
87
+ else if (typeof val === 'string' && SENSITIVE_VALUE_PATTERNS.some((p) => p.test(val))) {
88
+ result[key] = '[REDACTED]';
89
+ }
41
90
  else if (typeof val === 'object' && val !== null) {
42
- result[key] = redactSensitive(val);
91
+ result[key] = redactSensitive(val, visited);
43
92
  }
44
93
  else {
45
94
  result[key] = val;
@@ -47,32 +96,97 @@ export function redactSensitive(value) {
47
96
  }
48
97
  return result;
49
98
  }
99
+ // ── Safe serialization ──────────────────────────────────────────────────────
50
100
  /**
51
- * Creates a namespaced logger that automatically redacts sensitive data.
101
+ * Safely serializes a value to JSON, handling:
102
+ * - Circular references → `"[Circular]"`
103
+ * - BigInt → string representation
104
+ * - Error objects → `{ message, stack?, code? }`
52
105
  */
53
- export function createLogger(namespace) {
54
- const formatMessage = (level, message, data) => {
55
- const timestamp = new Date().toISOString();
56
- const prefix = `[${timestamp}] [${level}] [${namespace}]`;
57
- if (data) {
58
- return `${prefix} ${message} ${JSON.stringify(redactSensitive(data))}`;
106
+ function safeStringify(value) {
107
+ const seen = new WeakSet();
108
+ return JSON.stringify(value, (_key, val) => {
109
+ if (typeof val === 'bigint') {
110
+ return val.toString();
111
+ }
112
+ if (val instanceof Error) {
113
+ const errorObj = { message: val.message };
114
+ if (val.stack) {
115
+ errorObj.stack = val.stack;
116
+ }
117
+ if ('code' in val && val.code !== undefined) {
118
+ errorObj.code = val.code;
119
+ }
120
+ return errorObj;
121
+ }
122
+ if (typeof val === 'object' && val !== null) {
123
+ if (seen.has(val)) {
124
+ return '[Circular]';
125
+ }
126
+ seen.add(val);
127
+ }
128
+ return val;
129
+ });
130
+ }
131
+ // ── createPluginLogger ──────────────────────────────────────────────────────
132
+ /**
133
+ * Creates a Logger that wraps a host PluginLogger.
134
+ *
135
+ * @param hostLogger - The host-provided PluginLogger (string-only methods)
136
+ * @param component - Optional component name for scoped prefixes
137
+ */
138
+ export function createPluginLogger(hostLogger, component) {
139
+ const prefix = component
140
+ ? `[openclaw-projects:${component}]`
141
+ : '[openclaw-projects]';
142
+ // Count current nesting depth (number of colons in component path)
143
+ const depth = component ? component.split(':').length : 0;
144
+ function format(message, data) {
145
+ if (data && Object.keys(data).length > 0) {
146
+ return `${prefix} ${message} ${safeStringify(redactSensitive(data))}`;
59
147
  }
60
148
  return `${prefix} ${message}`;
61
- };
149
+ }
62
150
  return {
63
- namespace,
64
- info(message, data) {
65
- console.info(formatMessage('INFO', message, data));
66
- },
67
- warn(message, data) {
68
- console.warn(formatMessage('WARN', message, data));
69
- },
70
- error(message, data) {
71
- console.error(formatMessage('ERROR', message, data));
72
- },
73
- debug(message, data) {
74
- console.debug(formatMessage('DEBUG', message, data));
151
+ info: (msg, data) => hostLogger.info(format(msg, data)),
152
+ warn: (msg, data) => hostLogger.warn(format(msg, data)),
153
+ error: (msg, data) => hostLogger.error(format(msg, data)),
154
+ debug: (msg, data) => { if (hostLogger.debug)
155
+ hostLogger.debug(format(msg, data)); },
156
+ child: (comp) => {
157
+ if (depth >= MAX_CHILD_DEPTH) {
158
+ // Return a logger at the current depth — do not nest further
159
+ return createPluginLogger(hostLogger, component);
160
+ }
161
+ const nested = component ? `${component}:${comp}` : comp;
162
+ return createPluginLogger(hostLogger, nested);
75
163
  },
76
164
  };
77
165
  }
166
+ // ── createFallbackLogger ────────────────────────────────────────────────────
167
+ /**
168
+ * Creates a console-based fallback PluginLogger for tests or standalone use.
169
+ * Does NOT add timestamps or level prefixes — mirrors the host's behavior.
170
+ */
171
+ export function createFallbackLogger() {
172
+ return {
173
+ // biome-ignore lint/suspicious/noConsole: fallback logger — no host logger available
174
+ info: (msg) => console.info(msg),
175
+ // biome-ignore lint/suspicious/noConsole: fallback logger — no host logger available
176
+ warn: (msg) => console.warn(msg),
177
+ // biome-ignore lint/suspicious/noConsole: fallback logger — no host logger available
178
+ error: (msg) => console.error(msg),
179
+ // biome-ignore lint/suspicious/noConsole: fallback logger — no host logger available
180
+ debug: (msg) => console.debug(msg),
181
+ };
182
+ }
183
+ // ── Deprecated: createLogger (backward compatibility) ───────────────────────
184
+ /**
185
+ * @deprecated Use `createPluginLogger()` instead. This is retained for
186
+ * backward compatibility during migration. Will be removed in a future version.
187
+ */
188
+ export function createLogger(namespace) {
189
+ const fallback = createFallbackLogger();
190
+ return createPluginLogger(fallback, namespace);
191
+ }
78
192
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,+CAA+C;AAC/C,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,QAAQ;IACR,SAAS;IACT,OAAO;IACP,UAAU;IACV,QAAQ;IACR,eAAe;IACf,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,aAAa;IACb,aAAa;IACb,YAAY;IACZ,cAAc;IACd,eAAe;CAChB,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAI,KAAQ;IACzC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAM,CAAC;IACzD,CAAC;IAED,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;QAC7B,CAAC;aAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACnD,MAAM,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,MAAW,CAAC;AACrB,CAAC;AAWD;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC5C,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,OAAe,EAAE,IAA8B,EAAU,EAAE;QAC/F,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,SAAS,MAAM,KAAK,MAAM,SAAS,GAAG,CAAC;QAC1D,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,GAAG,MAAM,IAAI,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACzE,CAAC;QACD,OAAO,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC;IAChC,CAAC,CAAC;IAEF,OAAO;QACL,SAAS;QACT,IAAI,CAAC,OAAe,EAAE,IAA8B;YAClD,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,OAAe,EAAE,IAA8B;YAClD,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,KAAK,CAAC,OAAe,EAAE,IAA8B;YACnD,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,KAAK,CAAC,OAAe,EAAE,IAA8B;YACnD,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,13 @@ import { type PluginConfig } from './config.js';
13
13
  import { type Logger } from './logger.js';
14
14
  import type { AgentToolResult, JSONSchema, PluginInitializer, ToolResult } from './types/openclaw-api.js';
15
15
  /** Plugin state stored during registration */
16
+ /**
17
+ * Internal plugin state.
18
+ *
19
+ * `logger` is the internal Logger (with `child()` support and structured data),
20
+ * NOT the raw PluginLogger from the host. The type flow is:
21
+ * `api.logger: PluginLogger` → `createPluginLogger(api.logger): Logger` → `PluginState.logger: Logger`
22
+ */
16
23
  interface PluginState {
17
24
  config: PluginConfig;
18
25
  logger: Logger;
@@ -1 +1 @@
1
- {"version":3,"file":"register-openclaw.d.ts","sourceRoot":"","sources":["../src/register-openclaw.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAY,MAAM,KAAK,CAAC;AAClC,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,KAAK,YAAY,EAA2G,MAAM,aAAa,CAAC;AAQzJ,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAkFxD,OAAO,KAAK,EACV,eAAe,EAEf,UAAU,EAcV,iBAAiB,EAGjB,UAAU,EACX,MAAM,yBAAyB,CAAC;AAcjC,8CAA8C;AAC9C,UAAU,WAAW;IACnB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,uGAAuG;IACvG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4GAA4G;IAC5G,iBAAiB,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACzD,oEAAoE;IACpE,eAAe,EAAE,OAAO,CAAC;IACzB,mEAAmE;IACnE,sBAAsB,EAAE,MAAM,CAAC;IAC/B,2DAA2D;IAC3D,eAAe,EAAE,OAAO,CAAC;IACzB,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sFAAsF;IACtF,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;iBAUhC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,eAAe,CA6CrE;AA2qDD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA6C9E;AAk/ED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,iBA8tD9B,CAAC;AAEF,yDAAyD;AACzD,eAAe,gBAAgB,CAAC;AAEhC,2CAA2C;AAC3C,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CnB,CAAC"}
1
+ {"version":3,"file":"register-openclaw.d.ts","sourceRoot":"","sources":["../src/register-openclaw.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAY,MAAM,KAAK,CAAC;AAClC,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,KAAK,YAAY,EAA2G,MAAM,aAAa,CAAC;AAQzJ,OAAO,EAA4C,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAmFpF,OAAO,KAAK,EACV,eAAe,EAEf,UAAU,EAcV,iBAAiB,EAGjB,UAAU,EACX,MAAM,yBAAyB,CAAC;AAqBjC,8CAA8C;AAC9C;;;;;;GAMG;AACH,UAAU,WAAW;IACnB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,uGAAuG;IACvG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4GAA4G;IAC5G,iBAAiB,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACzD,oEAAoE;IACpE,eAAe,EAAE,OAAO,CAAC;IACzB,mEAAmE;IACnE,sBAAsB,EAAE,MAAM,CAAC;IAC/B,2DAA2D;IAC3D,eAAe,EAAE,OAAO,CAAC;IACzB,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sFAAsF;IACtF,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;iBAUhC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,eAAe,CAgDrE;AA2qDD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA6C9E;AAogFD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,iBA+xD9B,CAAC;AAEF,yDAAyD;AACzD,eAAe,gBAAgB,CAAC;AAEhC,2CAA2C;AAC3C,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CnB,CAAC"}