@troykelly/openclaw-projects 0.0.59 → 0.0.62
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 +78 -0
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +2 -2
- package/dist/api-client.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -17
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +44 -8
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +140 -26
- package/dist/logger.js.map +1 -1
- package/dist/register-openclaw.d.ts +10 -0
- package/dist/register-openclaw.d.ts.map +1 -1
- package/dist/register-openclaw.js +323 -162
- package/dist/register-openclaw.js.map +1 -1
- package/dist/secrets.d.ts +5 -2
- package/dist/secrets.d.ts.map +1 -1
- package/dist/secrets.js +16 -9
- package/dist/secrets.js.map +1 -1
- package/dist/startup.d.ts +39 -0
- package/dist/startup.d.ts.map +1 -0
- package/dist/startup.js +43 -0
- package/dist/startup.js.map +1 -0
- package/dist/tool-guidance/catalog.d.ts.map +1 -1
- package/dist/tool-guidance/catalog.js +43 -6
- package/dist/tool-guidance/catalog.js.map +1 -1
- package/dist/tools/index.d.ts +4 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +7 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/memory-digest.d.ts +98 -0
- package/dist/tools/memory-digest.d.ts.map +1 -0
- package/dist/tools/memory-digest.js +233 -0
- package/dist/tools/memory-digest.js.map +1 -0
- package/dist/tools/memory-forget.d.ts +2 -0
- package/dist/tools/memory-forget.d.ts.map +1 -1
- package/dist/tools/memory-forget.js +10 -8
- package/dist/tools/memory-forget.js.map +1 -1
- package/dist/tools/memory-list.d.ts +2 -0
- package/dist/tools/memory-list.d.ts.map +1 -1
- package/dist/tools/memory-list.js +3 -3
- package/dist/tools/memory-list.js.map +1 -1
- package/dist/tools/memory-promote.d.ts +85 -0
- package/dist/tools/memory-promote.d.ts.map +1 -0
- package/dist/tools/memory-promote.js +190 -0
- package/dist/tools/memory-promote.js.map +1 -0
- package/dist/tools/memory-reap.d.ts +66 -0
- package/dist/tools/memory-reap.d.ts.map +1 -0
- package/dist/tools/memory-reap.js +122 -0
- package/dist/tools/memory-reap.js.map +1 -0
- package/dist/tools/memory-recall.d.ts +2 -0
- package/dist/tools/memory-recall.d.ts.map +1 -1
- package/dist/tools/memory-recall.js +3 -3
- package/dist/tools/memory-recall.js.map +1 -1
- package/dist/tools/memory-store.d.ts +36 -3
- package/dist/tools/memory-store.d.ts.map +1 -1
- package/dist/tools/memory-store.js +137 -23
- package/dist/tools/memory-store.js.map +1 -1
- package/dist/tools/memory-update.d.ts +2 -0
- package/dist/tools/memory-update.d.ts.map +1 -1
- package/dist/tools/memory-update.js +3 -3
- package/dist/tools/memory-update.js.map +1 -1
- package/dist/tools/terminal-connections.d.ts +3 -3
- package/dist/tools/terminal-search.d.ts +2 -2
- package/dist/types/openclaw-api.d.ts +9 -3
- package/dist/types/openclaw-api.d.ts.map +1 -1
- package/dist/utils/nominatim.d.ts +2 -1
- package/dist/utils/nominatim.d.ts.map +1 -1
- package/dist/utils/nominatim.js +6 -3
- package/dist/utils/nominatim.js.map +1 -1
- package/dist/utils/temporal.d.ts +36 -0
- package/dist/utils/temporal.d.ts.map +1 -0
- package/dist/utils/temporal.js +165 -0
- package/dist/utils/temporal.js.map +1 -0
- package/openclaw.plugin.json +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -711,6 +711,84 @@ When an inbound SMS or email arrives, the plugin automatically links the message
|
|
|
711
711
|
- Secrets are never logged (config is redacted in logs)
|
|
712
712
|
- Error messages are sanitized to prevent information leakage
|
|
713
713
|
|
|
714
|
+
## Logging
|
|
715
|
+
|
|
716
|
+
The plugin uses a unified logging system that integrates with the OpenClaw host's `PluginLogger` interface. All log output is routed through the host logger for consistent formatting, routing, and level control.
|
|
717
|
+
|
|
718
|
+
### Using the Logger
|
|
719
|
+
|
|
720
|
+
The plugin provides a `Logger` interface with component-scoped child loggers:
|
|
721
|
+
|
|
722
|
+
```typescript
|
|
723
|
+
import { createPluginLogger, createFallbackLogger } from '@troykelly/openclaw-projects';
|
|
724
|
+
|
|
725
|
+
// During plugin registration, the host logger is available via api.logger:
|
|
726
|
+
const logger = createPluginLogger(api.logger);
|
|
727
|
+
|
|
728
|
+
// Create component-scoped child loggers:
|
|
729
|
+
const memoryLogger = logger.child('memory');
|
|
730
|
+
memoryLogger.info('Recall completed', { count: 5 });
|
|
731
|
+
// Output: [openclaw-projects:memory] Recall completed {"count":5}
|
|
732
|
+
|
|
733
|
+
// For tests or standalone use (no host logger available):
|
|
734
|
+
const testLogger = createPluginLogger(createFallbackLogger());
|
|
735
|
+
```
|
|
736
|
+
|
|
737
|
+
### Component Names
|
|
738
|
+
|
|
739
|
+
Each subsystem uses a canonical component name for scoped logging:
|
|
740
|
+
|
|
741
|
+
| Component | Used By |
|
|
742
|
+
|-----------|---------|
|
|
743
|
+
| `memory` | memory-store, recall, forget, list, update, digest, promote, reap |
|
|
744
|
+
| `hooks` | auto-recall, auto-capture, graph-aware recall |
|
|
745
|
+
| `api` | API client (requests, retries, rate limits) |
|
|
746
|
+
| `contacts` | contact search, create, get, update, merge |
|
|
747
|
+
| `projects` | project list, create, search |
|
|
748
|
+
| `todos` | todo list, create, complete, search |
|
|
749
|
+
| `comms` | email-send, sms-send, threads, message-search |
|
|
750
|
+
| `terminal` | terminal connections, sessions, tunnels, search |
|
|
751
|
+
| `dev` | dev sessions, dev prompts |
|
|
752
|
+
| `notes` | notes, notebooks |
|
|
753
|
+
| `skills` | skill-store operations |
|
|
754
|
+
| `links` | entity links, relationships |
|
|
755
|
+
| `files` | file-share |
|
|
756
|
+
| `namespace` | namespace resolution, refresh |
|
|
757
|
+
| `oauth` | OAuth gateway RPC methods |
|
|
758
|
+
| `gate` | inbound-gate (spam, rate limiting) |
|
|
759
|
+
| `autolinker` | auto-linker utility |
|
|
760
|
+
| `cli` | CLI commands |
|
|
761
|
+
|
|
762
|
+
### Adding a New Component Logger
|
|
763
|
+
|
|
764
|
+
To add logging for a new component:
|
|
765
|
+
|
|
766
|
+
1. In the registration function, create a child logger: `const myLogger = logger.child('mycomponent');`
|
|
767
|
+
2. Pass it to your tool/handler factory or use it directly in inline handlers.
|
|
768
|
+
3. All messages will automatically be prefixed with `[openclaw-projects:mycomponent]`.
|
|
769
|
+
|
|
770
|
+
### Rules
|
|
771
|
+
|
|
772
|
+
- **Never use raw `console.*` calls** in plugin source (except CLI user-facing output and the fallback logger). The biome `lint/suspicious/noConsole` rule enforces this.
|
|
773
|
+
- **Never manually add `[openclaw-projects]` or `[plugins]` prefixes** to log messages. The logger adapter handles prefixing automatically.
|
|
774
|
+
- Structured data passed as the second argument is flattened into the message string with sensitive fields redacted.
|
|
775
|
+
|
|
776
|
+
### API Migration (Breaking Change)
|
|
777
|
+
|
|
778
|
+
The `createLogger()` export is **deprecated**. Use `createPluginLogger()` + `createFallbackLogger()` instead:
|
|
779
|
+
|
|
780
|
+
```typescript
|
|
781
|
+
// Before (deprecated)
|
|
782
|
+
import { createLogger } from '@troykelly/openclaw-projects';
|
|
783
|
+
const logger = createLogger('my-component');
|
|
784
|
+
|
|
785
|
+
// After
|
|
786
|
+
import { createPluginLogger, createFallbackLogger } from '@troykelly/openclaw-projects';
|
|
787
|
+
const logger = createPluginLogger(createFallbackLogger(), 'my-component');
|
|
788
|
+
```
|
|
789
|
+
|
|
790
|
+
`createLogger()` is retained for backward compatibility but will be removed in a future version. The `Logger.namespace` property has been removed.
|
|
791
|
+
|
|
714
792
|
## Troubleshooting
|
|
715
793
|
|
|
716
794
|
> **First step for any issue:** Run `openclaw openclaw-projects status` to check connectivity, authentication, and latency. See [Health Check](#health-check-status-command) above for expected output.
|
package/dist/api-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
package/dist/api-client.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Handles authentication, request/response formatting, error handling,
|
|
4
4
|
* retry logic with exponential backoff, and timeout handling.
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { createPluginLogger, createFallbackLogger } from './logger.js';
|
|
7
7
|
/**
|
|
8
8
|
* Sleep for a specified duration.
|
|
9
9
|
*/
|
|
@@ -68,7 +68,7 @@ export class ApiClient {
|
|
|
68
68
|
// Ensure URL doesn't have trailing slash
|
|
69
69
|
this.baseUrl = options.config.apiUrl.replace(/\/$/, '');
|
|
70
70
|
this.apiKey = options.config.apiKey;
|
|
71
|
-
this.logger = options.logger ??
|
|
71
|
+
this.logger = options.logger ?? createPluginLogger(createFallbackLogger(), 'api');
|
|
72
72
|
this.timeout = options.config.timeout;
|
|
73
73
|
this.maxRetries = options.config.maxRetries;
|
|
74
74
|
}
|
package/dist/api-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAe,MAAM,aAAa,CAAC;AA2CpF;;GAEG;AACH,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACxB,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAEvC;;GAEG;AACH,SAAS,mBAAmB,CAAC,OAAe,EAAE,SAAS,GAAG,IAAI,EAAE,QAAQ,GAAG,KAAK;IAC9E,yCAAyC;IACzC,MAAM,gBAAgB,GAAG,SAAS,GAAG,CAAC,IAAI,OAAO,CAAC;IAClD,+CAA+C;IAC/C,MAAM,MAAM,GAAG,gBAAgB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,MAAc;IACvC,8EAA8E;IAC9E,OAAO,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,MAAc;IAClC,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,YAAY,CAAC;IAC1D,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,WAAW,CAAC;IACvC,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,cAAc,CAAC;IAC1C,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,cAAc,CAAC;IACzC,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,eAAe,CAAC;IACzC,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,SAAS;IACH,OAAO,CAAS;IAChB,MAAM,CAAqB;IAC3B,MAAM,CAAS;IACf,OAAO,CAAS;IAChB,UAAU,CAAS;IACpC,YAAY,OAAyB;QACnC,yCAAyC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,kBAAkB,CAAC,oBAAoB,EAAE,EAAE,KAAK,CAAC,CAAC;QAClF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;IAC9C,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CAAI,MAAc,EAAE,IAAY,EAAE,IAAc,EAAE,OAAwB;QAC7F,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;QAEjD,IAAI,SAAS,GAAoB,IAAI,CAAC;QAEtC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YAC5D,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,uEAAuE;gBACvE,mEAAmE;gBACnE,6DAA6D;gBAC7D,IAAI,SAAS,EAAE,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,GAAG,IAAI,GAAG,uBAAuB,EAAE,CAAC;oBAC/G,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6DAA6D,EAAE;wBAC9E,IAAI;wBACJ,UAAU,EAAE,SAAS,CAAC,UAAU;qBACjC,CAAC,CAAC;oBACH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBAC9C,CAAC;gBAED,MAAM,KAAK,GAAG,SAAS,EAAE,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBACjI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,EAAE;oBACpF,IAAI;oBACJ,KAAK;iBACN,CAAC,CAAC;gBACH,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAI,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBAE5F,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,OAAO,MAAM,CAAC;gBAChB,CAAC;gBAED,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;gBAEzB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC5C,OAAO,MAAM,CAAC;gBAChB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,mCAAmC;gBACnC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC;gBACtE,SAAS,GAAG;oBACV,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;oBACjE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe;iBAC5C,CAAC;gBAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE;oBACtC,MAAM;oBACN,IAAI;oBACJ,SAAS;oBACT,KAAK,EAAE,SAAS,CAAC,OAAO;iBACzB,CAAC,CAAC;gBAEH,iEAAiE;gBACjE,sEAAsE;gBACtE,IAAI,OAAO,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;oBACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,SAAS,IAAI;gBAClB,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,8BAA8B;gBACvC,IAAI,EAAE,eAAe;aACtB;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAC1B,MAAc,EACd,GAAW,EACX,IAAa,EACb,SAAiB,EACjB,OAAmC,EACnC,OAAe;QAEf,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;QAEhE,oEAAoE;QACpE,qEAAqE;QACrE,sEAAsE;QACtE,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC3B,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAA2B;gBACtC,cAAc,EAAE,SAAS;aAC1B,CAAC;YAEF,uDAAuD;YACvD,qEAAqE;YACrE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;YAC/C,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,aAAa,GAAG,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;YAClD,CAAC;YAED,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;gBACrB,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;YAC1C,CAAC;YAED,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;gBACxB,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;YAC/C,CAAC;YAED,oFAAoF;YACpF,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;YAC7C,CAAC;YAED,6DAA6D;YAC7D,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;gBACrB,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,OAAO,IAAI,cAAc,CAAC;YAClE,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM;gBACN,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC7C,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1D,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAEvD,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,MAAM,EAAE,QAAQ,CAAC,MAAM;wBACvB,OAAO,EAAE,SAAS,CAAC,OAAO,IAAI,QAAQ,CAAC,UAAU;wBACjD,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;wBACnC,OAAO,EAAE,SAAS,CAAC,OAAO;wBAC1B,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;qBACrE;iBACF,CAAC;YACJ,CAAC;YAED,oBAAoB;YACpB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAc,EAAE,CAAC;YACjD,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;YAC1C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,GAAG,CAAI,IAAY,EAAE,OAAwB;QACjD,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,mBAAmB;IACnB,KAAK,CAAC,IAAI,CAAI,IAAY,EAAE,IAAc,EAAE,OAAwB;QAClE,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,GAAG,CAAI,IAAY,EAAE,IAAc,EAAE,OAAwB;QACjE,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,oBAAoB;IACpB,KAAK,CAAC,KAAK,CAAI,IAAY,EAAE,IAAc,EAAE,OAAwB;QACnE,OAAO,IAAI,CAAC,OAAO,CAAI,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,qBAAqB;IACrB,KAAK,CAAC,MAAM,CAAI,IAAY,EAAE,OAAwB;QACpD,OAAO,IAAI,CAAC,OAAO,CAAI,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAqB,SAAS,CAAC,CAAC;QAE7D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QAErC,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS;SACV,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAyB;IACvD,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -76,8 +76,8 @@ export type { PluginConfig, RawPluginConfig, NamespaceConfig } from './config.js
|
|
|
76
76
|
export { validateConfig, safeValidateConfig, validateRawConfig, safeValidateRawConfig, resolveConfigSecrets, resolveConfigSecretsSync, redactConfig, resolveNamespaceConfig, } from './config.js';
|
|
77
77
|
export type { SecretConfig } from './secrets.js';
|
|
78
78
|
export { resolveSecret, resolveSecretSync, resolveSecrets, clearSecretCache, clearCachedSecret } from './secrets.js';
|
|
79
|
-
export type { Logger } from './logger.js';
|
|
80
|
-
export { createLogger, redactSensitive } from './logger.js';
|
|
79
|
+
export type { Logger, PluginLogger } from './logger.js';
|
|
80
|
+
export { createLogger, createPluginLogger, createFallbackLogger, redactSensitive } from './logger.js';
|
|
81
81
|
export type { ApiClient, ApiResponse, ApiError } from './api-client.js';
|
|
82
82
|
export { createApiClient } from './api-client.js';
|
|
83
83
|
export type { PluginContext, UserContext, AgentContext, SessionContext, } from './context.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAG5E,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,cAAc,EACd,+BAA+B,EAC/B,sBAAsB,EACtB,gCAAgC,EAChC,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
// Re-export the OpenClaw 2026 API default export
|
|
12
12
|
export { default, registerOpenClaw, schemas } from './register-openclaw.js';
|
|
13
13
|
import { validateConfig, validateRawConfig, redactConfig } from './config.js';
|
|
14
|
-
import {
|
|
14
|
+
import { createPluginLogger, createFallbackLogger } from './logger.js';
|
|
15
15
|
import { createApiClient } from './api-client.js';
|
|
16
16
|
import { extractContext, getUserScopeKey } from './context.js';
|
|
17
17
|
import { createAutoRecallHook, createAutoCaptureHook, createHealthCheck, } from './hooks.js';
|
|
@@ -31,89 +31,94 @@ function createPluginInstance(config, logger, runtime) {
|
|
|
31
31
|
agentId: context.agent.agentId,
|
|
32
32
|
sessionKey: context.session.sessionId,
|
|
33
33
|
}, config.userScoping ?? 'agent');
|
|
34
|
+
// Create component-scoped child loggers
|
|
35
|
+
const memoryLogger = logger.child('memory');
|
|
36
|
+
const projectsLogger = logger.child('projects');
|
|
37
|
+
const todosLogger = logger.child('todos');
|
|
38
|
+
const contactsLogger = logger.child('contacts');
|
|
34
39
|
// Create tools
|
|
35
40
|
const tools = {
|
|
36
41
|
memoryRecall: createMemoryRecallTool({
|
|
37
42
|
client: apiClient,
|
|
38
|
-
logger,
|
|
43
|
+
logger: memoryLogger,
|
|
39
44
|
config,
|
|
40
45
|
user_id,
|
|
41
46
|
}),
|
|
42
47
|
memoryStore: createMemoryStoreTool({
|
|
43
48
|
client: apiClient,
|
|
44
|
-
logger,
|
|
49
|
+
logger: memoryLogger,
|
|
45
50
|
config,
|
|
46
51
|
user_id,
|
|
47
52
|
}),
|
|
48
53
|
memoryForget: createMemoryForgetTool({
|
|
49
54
|
client: apiClient,
|
|
50
|
-
logger,
|
|
55
|
+
logger: memoryLogger,
|
|
51
56
|
config,
|
|
52
57
|
user_id,
|
|
53
58
|
}),
|
|
54
59
|
memoryList: createMemoryListTool({
|
|
55
60
|
client: apiClient,
|
|
56
|
-
logger,
|
|
61
|
+
logger: memoryLogger,
|
|
57
62
|
config,
|
|
58
63
|
user_id,
|
|
59
64
|
}),
|
|
60
65
|
memoryUpdate: createMemoryUpdateTool({
|
|
61
66
|
client: apiClient,
|
|
62
|
-
logger,
|
|
67
|
+
logger: memoryLogger,
|
|
63
68
|
config,
|
|
64
69
|
user_id,
|
|
65
70
|
}),
|
|
66
71
|
projectList: createProjectListTool({
|
|
67
72
|
client: apiClient,
|
|
68
|
-
logger,
|
|
73
|
+
logger: projectsLogger,
|
|
69
74
|
config,
|
|
70
75
|
user_id,
|
|
71
76
|
}),
|
|
72
77
|
projectGet: createProjectGetTool({
|
|
73
78
|
client: apiClient,
|
|
74
|
-
logger,
|
|
79
|
+
logger: projectsLogger,
|
|
75
80
|
config,
|
|
76
81
|
user_id,
|
|
77
82
|
}),
|
|
78
83
|
projectCreate: createProjectCreateTool({
|
|
79
84
|
client: apiClient,
|
|
80
|
-
logger,
|
|
85
|
+
logger: projectsLogger,
|
|
81
86
|
config,
|
|
82
87
|
user_id,
|
|
83
88
|
}),
|
|
84
89
|
todoList: createTodoListTool({
|
|
85
90
|
client: apiClient,
|
|
86
|
-
logger,
|
|
91
|
+
logger: todosLogger,
|
|
87
92
|
config,
|
|
88
93
|
user_id,
|
|
89
94
|
}),
|
|
90
95
|
todoCreate: createTodoCreateTool({
|
|
91
96
|
client: apiClient,
|
|
92
|
-
logger,
|
|
97
|
+
logger: todosLogger,
|
|
93
98
|
config,
|
|
94
99
|
user_id,
|
|
95
100
|
}),
|
|
96
101
|
todoComplete: createTodoCompleteTool({
|
|
97
102
|
client: apiClient,
|
|
98
|
-
logger,
|
|
103
|
+
logger: todosLogger,
|
|
99
104
|
config,
|
|
100
105
|
user_id,
|
|
101
106
|
}),
|
|
102
107
|
contactSearch: createContactSearchTool({
|
|
103
108
|
client: apiClient,
|
|
104
|
-
logger,
|
|
109
|
+
logger: contactsLogger,
|
|
105
110
|
config,
|
|
106
111
|
user_id,
|
|
107
112
|
}),
|
|
108
113
|
contactGet: createContactGetTool({
|
|
109
114
|
client: apiClient,
|
|
110
|
-
logger,
|
|
115
|
+
logger: contactsLogger,
|
|
111
116
|
config,
|
|
112
117
|
user_id,
|
|
113
118
|
}),
|
|
114
119
|
contactCreate: createContactCreateTool({
|
|
115
120
|
client: apiClient,
|
|
116
|
-
logger,
|
|
121
|
+
logger: contactsLogger,
|
|
117
122
|
config,
|
|
118
123
|
user_id,
|
|
119
124
|
}),
|
|
@@ -168,7 +173,7 @@ function createPluginInstance(config, logger, runtime) {
|
|
|
168
173
|
* to produce a fully initialized plugin instance.
|
|
169
174
|
*/
|
|
170
175
|
export function register(ctx) {
|
|
171
|
-
const logger = ctx.logger ??
|
|
176
|
+
const logger = ctx.logger ?? createPluginLogger(createFallbackLogger());
|
|
172
177
|
// Validate as raw config first to check structure
|
|
173
178
|
const rawConfig = validateRawConfig(ctx.config);
|
|
174
179
|
// For sync registration, we require direct values - file/command refs won't work
|
|
@@ -202,7 +207,7 @@ export const plugin = {
|
|
|
202
207
|
};
|
|
203
208
|
export { validateConfig, safeValidateConfig, validateRawConfig, safeValidateRawConfig, resolveConfigSecrets, resolveConfigSecretsSync, redactConfig, resolveNamespaceConfig, } from './config.js';
|
|
204
209
|
export { resolveSecret, resolveSecretSync, resolveSecrets, clearSecretCache, clearCachedSecret } from './secrets.js';
|
|
205
|
-
export { createLogger, redactSensitive } from './logger.js';
|
|
210
|
+
export { createLogger, createPluginLogger, createFallbackLogger, redactSensitive } from './logger.js';
|
|
206
211
|
export { createApiClient } from './api-client.js';
|
|
207
212
|
export { extractContext, getUserScopeKey } from './context.js';
|
|
208
213
|
export { createMemoryRecallTool, createMemoryStoreTool, createMemoryForgetTool, createMemoryListTool, createMemoryUpdateTool, createProjectListTool, createProjectGetTool, createProjectCreateTool, createTodoListTool, createTodoCreateTool, createTodoCompleteTool, createContactSearchTool, createContactGetTool, createContactCreateTool, MemoryRecallParamsSchema, MemoryStoreParamsSchema, MemoryForgetParamsSchema, MemoryListParamsSchema, MemoryUpdateParamsSchema, MemoryCategory, ProjectListParamsSchema, ProjectGetParamsSchema, ProjectCreateParamsSchema, ProjectStatus, TodoListParamsSchema, TodoCreateParamsSchema, TodoCompleteParamsSchema, ContactSearchParamsSchema, ContactGetParamsSchema, ContactCreateParamsSchema, } from './tools/index.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,iDAAiD;AACjD,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAyB5E,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/logger.d.ts
CHANGED
|
@@ -1,22 +1,58 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Logger
|
|
3
|
-
*
|
|
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
11
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
12
|
+
* PluginLogger — matches the OpenClaw SDK spec.
|
|
13
|
+
* This is what the host provides via `api.logger`.
|
|
14
|
+
*/
|
|
15
|
+
export type PluginLogger = {
|
|
16
|
+
debug?: (message: string) => void;
|
|
17
|
+
info: (message: string) => void;
|
|
18
|
+
warn: (message: string) => void;
|
|
19
|
+
error: (message: string) => void;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Logger — the richer interface used internally by the plugin.
|
|
23
|
+
* Accepts optional structured data and supports child scoping.
|
|
8
24
|
*/
|
|
9
|
-
export declare function redactSensitive<T>(value: T): T;
|
|
10
|
-
/** Logger interface */
|
|
11
25
|
export interface Logger {
|
|
12
|
-
namespace: string;
|
|
13
26
|
info(message: string, data?: Record<string, unknown>): void;
|
|
14
27
|
warn(message: string, data?: Record<string, unknown>): void;
|
|
15
28
|
error(message: string, data?: Record<string, unknown>): void;
|
|
16
29
|
debug(message: string, data?: Record<string, unknown>): void;
|
|
30
|
+
child(component: string): Logger;
|
|
17
31
|
}
|
|
18
32
|
/**
|
|
19
|
-
*
|
|
33
|
+
* Recursively redacts sensitive fields from an object.
|
|
34
|
+
* Creates a deep copy to avoid modifying the original.
|
|
35
|
+
*
|
|
36
|
+
* Redacts by:
|
|
37
|
+
* 1. Field name matching (case-insensitive) against SENSITIVE_FIELDS
|
|
38
|
+
* 2. Value pattern matching against SENSITIVE_VALUE_PATTERNS
|
|
39
|
+
*/
|
|
40
|
+
export declare function redactSensitive<T>(value: T, seen?: WeakSet<object>): T;
|
|
41
|
+
/**
|
|
42
|
+
* Creates a Logger that wraps a host PluginLogger.
|
|
43
|
+
*
|
|
44
|
+
* @param hostLogger - The host-provided PluginLogger (string-only methods)
|
|
45
|
+
* @param component - Optional component name for scoped prefixes
|
|
46
|
+
*/
|
|
47
|
+
export declare function createPluginLogger(hostLogger: PluginLogger, component?: string): Logger;
|
|
48
|
+
/**
|
|
49
|
+
* Creates a console-based fallback PluginLogger for tests or standalone use.
|
|
50
|
+
* Does NOT add timestamps or level prefixes — mirrors the host's behavior.
|
|
51
|
+
*/
|
|
52
|
+
export declare function createFallbackLogger(): PluginLogger;
|
|
53
|
+
/**
|
|
54
|
+
* @deprecated Use `createPluginLogger()` instead. This is retained for
|
|
55
|
+
* backward compatibility during migration. Will be removed in a future version.
|
|
20
56
|
*/
|
|
21
57
|
export declare function createLogger(namespace: string): Logger;
|
|
22
58
|
//# sourceMappingURL=logger.d.ts.map
|
package/dist/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA2CH;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7D,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CAClC;AAID;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CA8CtE;AA0CD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CA6BvF;AAID;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,YAAY,CAWnD;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGtD"}
|
package/dist/logger.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Logger
|
|
3
|
-
*
|
|
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
|
-
|
|
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
|
-
*
|
|
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
|
-
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|