Compare commits

...

105 Commits
v0.1.3 ... main

Author SHA1 Message Date
dependabot[bot]
bfe6f8aa0c
chore(deps): bump plugins/opik-openclaw from f898726 to 0f62b10 (#43)
Some checks failed
Check / Static checks (${{ matrix.os }}) (macos-latest) (push) Has been cancelled
Check / Static checks (${{ matrix.os }}) (ubuntu-latest) (push) Has been cancelled
Check / Static checks (${{ matrix.os }}) (windows-latest) (push) Has been cancelled
Check / Container static checks (push) Has been cancelled
Check / Resolve changed fixture matrix (push) Has been cancelled
Check / Isolated changed fixture ${{ matrix.id }} (push) Has been cancelled
Check / dashboard (push) Has been cancelled
* chore(deps): bump plugins/opik-openclaw from `f898726` to `0f62b10`

Bumps [plugins/opik-openclaw](https://github.com/comet-ml/opik-openclaw) from `f898726` to `0f62b10`.
- [Release notes](https://github.com/comet-ml/opik-openclaw/releases)
- [Commits](f8987269d3...0f62b10688)

---
updated-dependencies:
- dependency-name: plugins/opik-openclaw
  dependency-version: 0f62b10688428f288eaff9b99e0ee7a9334137e7
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(reports): refresh dependabot compatibility reports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-07 09:36:13 +00:00
dependabot[bot]
7746354b22
chore(deps): bump plugins/nemoclaw from 2d6dd4d to 3351fbd (#42)
* chore(deps): bump plugins/nemoclaw from `2d6dd4d` to `3351fbd`

Bumps [plugins/nemoclaw](https://github.com/NVIDIA/NemoClaw) from `2d6dd4d` to `3351fbd`.
- [Commits](2d6dd4dbd8...3351fbdd4e)

---
updated-dependencies:
- dependency-name: plugins/nemoclaw
  dependency-version: 3351fbdd4eb7d9b80ec471545083956327da2b10
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(reports): refresh dependabot compatibility reports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-07 09:30:56 +00:00
github-actions[bot]
85f562d5e3 chore(readme): update crabpot dashboard [skip ci] 2026-05-06 09:59:12 +00:00
Vincent Koc
98c24dbb02
fix(reports): accept packaged runtime entrypoints 2026-05-06 02:48:20 -07:00
dependabot[bot]
d4ad88dc5a
chore(deps): bump plugins/nemoclaw from 0f13026 to 2d6dd4d (#41)
* chore(deps): bump plugins/nemoclaw from `0f13026` to `2d6dd4d`

Bumps [plugins/nemoclaw](https://github.com/NVIDIA/NemoClaw) from `0f13026` to `2d6dd4d`.
- [Commits](0f13026c89...2d6dd4dbd8)

---
updated-dependencies:
- dependency-name: plugins/nemoclaw
  dependency-version: 2d6dd4dbd80edad6b552c4c891b033784470bddb
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(reports): refresh dependabot compatibility reports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-06 09:33:28 +00:00
dependabot[bot]
cad03ae202
chore(deps): bump plugins/memos-cloud from 03fcc33 to e931499 (#39)
* chore(deps): bump plugins/memos-cloud from `03fcc33` to `e931499`

Bumps [plugins/memos-cloud](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin) from `03fcc33` to `e931499`.
- [Release notes](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin/releases)
- [Commits](03fcc33c5f...e931499a25)

---
updated-dependencies:
- dependency-name: plugins/memos-cloud
  dependency-version: e931499a2589af06ee543ce07df2bdda29ac8085
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(reports): refresh dependabot compatibility reports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-06 09:29:46 +00:00
dependabot[bot]
b9d60777cf
chore(deps): bump plugins/clawrouter from 44bc6be to bb72bdd (#23)
* chore(deps): bump plugins/clawrouter from `44bc6be` to `bb72bdd`

Bumps [plugins/clawrouter](https://github.com/BlockRunAI/ClawRouter) from `44bc6be` to `bb72bdd`.
- [Release notes](https://github.com/BlockRunAI/ClawRouter/releases)
- [Commits](44bc6beced...bb72bddae4)

---
updated-dependencies:
- dependency-name: plugins/clawrouter
  dependency-version: d8eacc744a5e441e76931d7ec52594cd6b51f27e
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(reports): refresh dependabot compatibility reports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-06 08:33:46 +00:00
dependabot[bot]
a7fb812de3
chore(deps): bump plugins/lossless-claw from 4724d3f to 4fc60c9 (#28)
* chore(deps): bump plugins/lossless-claw from `4724d3f` to `4fc60c9`

Bumps [plugins/lossless-claw](https://github.com/Martian-Engineering/lossless-claw) from `4724d3f` to `4fc60c9`.
- [Release notes](https://github.com/Martian-Engineering/lossless-claw/releases)
- [Commits](4724d3fe6c...4fc60c925c)

---
updated-dependencies:
- dependency-name: plugins/lossless-claw
  dependency-version: 46d1b0316245e7c3b6f940ca3eb124539ba2180c
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(reports): refresh dependabot compatibility reports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-06 08:30:02 +00:00
Vincent Koc
9d8c0f473d
fix(ci): require green checks before dependabot merge 2026-05-06 01:24:45 -07:00
dependabot[bot]
f6d13d63ed
chore(deps): bump plugins/honcho from 9580d37 to e9f0145 (#25)
* chore(deps): bump plugins/honcho from `9580d37` to `e9f0145`

Bumps [plugins/honcho](https://github.com/plastic-labs/openclaw-honcho) from `9580d37` to `e9f0145`.
- [Commits](9580d37d95...e9f01452b7)

---
updated-dependencies:
- dependency-name: plugins/honcho
  dependency-version: e9f01452b781d24b38336ef0738f2c97353c541e
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(reports): refresh dependabot compatibility reports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-06 08:20:05 +00:00
dependabot[bot]
c7cebf32cb
chore(deps): bump plugins/nemoclaw from 32d3ab3 to 0f13026 (#36)
* chore(deps): bump plugins/nemoclaw from `32d3ab3` to `0f13026`

Bumps [plugins/nemoclaw](https://github.com/NVIDIA/NemoClaw) from `32d3ab3` to `0f13026`.
- [Commits](32d3ab3e85...0f13026c89)

---
updated-dependencies:
- dependency-name: plugins/nemoclaw
  dependency-version: 0f13026c895ce56f667022b372b1cc967d118765
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(reports): refresh dependabot compatibility reports

* chore(reports): refresh dependabot compatibility reports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-06 07:40:30 +00:00
Vincent Koc
8f99590e5e
fix(ci): allow dependabot generated reports 2026-05-06 00:36:24 -07:00
Vincent Koc
8611b53dfa
fix(ci): wait for dependabot mergeability 2026-05-06 00:33:42 -07:00
Vincent Koc
066e916c05
fix(ci): skip stale dependabot merge after report push 2026-05-06 00:31:46 -07:00
dependabot[bot]
964df22b64
chore(deps): bump plugins/connectclaw from 6cd5166 to 7a4e264 (#37)
* chore(deps): bump plugins/connectclaw from `6cd5166` to `7a4e264`

Bumps [plugins/connectclaw](https://github.com/osipov-anton/connectclaw) from `6cd5166` to `7a4e264`.
- [Commits](6cd5166501...7a4e2646e9)

---
updated-dependencies:
- dependency-name: plugins/connectclaw
  dependency-version: 7a4e2646e914de075435b3837123cc03c3edae36
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(reports): refresh dependabot compatibility reports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-06 07:22:51 +00:00
Vincent Koc
1235161e0f
fix(ci): let dependabot auto-merge settle 2026-05-06 00:18:58 -07:00
github-actions[bot]
ef0d662915 chore(readme): update crabpot dashboard [skip ci] 2026-05-06 07:10:21 +00:00
Vincent Koc
e566d83b1e
fix(ci): pass OpenClaw checkout to fixture sync 2026-05-05 23:59:22 -07:00
George Zhang
1b06b1208b
Merge pull request #38 from openclaw/add-weixin-catalog-discovery
test: track Weixin catalog discovery fixture
2026-05-05 16:06:08 -07:00
George Zhang
5b04665a44
test: track Weixin catalog discovery fixture 2026-05-05 15:44:56 -07:00
Vincent Koc
7d8d2c1e88
chore(reports): refresh plugin-inspector P0 classification
Some checks failed
Check / Static checks (${{ matrix.os }}) (macos-latest) (push) Has been cancelled
Check / Static checks (${{ matrix.os }}) (ubuntu-latest) (push) Has been cancelled
Check / Static checks (${{ matrix.os }}) (windows-latest) (push) Has been cancelled
Check / Container static checks (push) Has been cancelled
Check / Resolve changed fixture matrix (push) Has been cancelled
Check / Isolated changed fixture ${{ matrix.id }} (push) Has been cancelled
Check / dashboard (push) Has been cancelled
Refresh Crabpot reports after plugin-inspector stopped reporting resolved package entrypoints as live P0s.
2026-05-05 01:05:30 -07:00
github-actions[bot]
ba681dbd5b chore(readme): refresh latest dashboard [skip ci] 2026-05-05 03:27:46 +00:00
Vincent Koc
d68c82e8d7
fix(reports): flag missing externalized OpenClaw npm artifacts
Handle missing npm artifacts as P0s for externalized OpenClaw fixtures while source-packing bundled Matrix/Mattermost from the resolved OpenClaw checkout.
2026-05-04 20:21:43 -07:00
github-actions[bot]
92ff0d2fc6 chore(readme): refresh latest dashboard [skip ci] 2026-05-05 02:46:19 +00:00
dependabot[bot]
176dedc832
chore(deps): bump openclaw-plugin-yuanbao from 2.12.0 to 3.0.1 in /plugins/yuanbao (#32)
Some checks are pending
Check / Static checks (${{ matrix.os }}) (macos-latest) (push) Waiting to run
Check / Static checks (${{ matrix.os }}) (ubuntu-latest) (push) Waiting to run
Check / Static checks (${{ matrix.os }}) (windows-latest) (push) Waiting to run
Check / Container static checks (push) Waiting to run
Check / Resolve changed fixture matrix (push) Waiting to run
Check / Isolated changed fixture ${{ matrix.id }} (push) Blocked by required conditions
Check / dashboard (push) Blocked by required conditions
* chore(deps): bump openclaw-plugin-yuanbao in /plugins/yuanbao

Bumps openclaw-plugin-yuanbao from 2.12.0 to 3.0.1.

---
updated-dependencies:
- dependency-name: openclaw-plugin-yuanbao
  dependency-version: 3.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(reports): refresh dependabot compatibility reports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-04 11:36:46 +00:00
dependabot[bot]
b211955d63
chore(deps): bump plugins/clawmetry from d747787 to 7b03924 (#30)
* chore(deps): bump plugins/clawmetry from `d747787` to `7b03924`

Bumps [plugins/clawmetry](https://github.com/vivekchand/clawmetry) from `d747787` to `7b03924`.
- [Release notes](https://github.com/vivekchand/clawmetry/releases)
- [Commits](d747787e33...7b03924c02)

---
updated-dependencies:
- dependency-name: plugins/clawmetry
  dependency-version: 7b03924c02a50ddb096407e823e48a6d369247a7
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(reports): refresh dependabot compatibility reports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-04 11:27:39 +00:00
dependabot[bot]
8d541192c0
chore(deps): bump plugins/nemoclaw from f9d21af to 32d3ab3 (#29)
* chore(deps): bump plugins/nemoclaw from `f9d21af` to `32d3ab3`

Bumps [plugins/nemoclaw](https://github.com/NVIDIA/NemoClaw) from `f9d21af` to `32d3ab3`.
- [Commits](f9d21afa19...32d3ab3e85)

---
updated-dependencies:
- dependency-name: plugins/nemoclaw
  dependency-version: 32d3ab3e85ba5648daf8a31c41af293f8d6214ca
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(reports): refresh dependabot compatibility reports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-04 11:23:38 +00:00
dependabot[bot]
ce1eeec7bc
chore(deps): bump plugins/web-search-plus from 6e4c765 to dd3cab6 (#31)
* chore(deps): bump plugins/web-search-plus from `6e4c765` to `dd3cab6`

Bumps [plugins/web-search-plus](https://github.com/robbyczgw-cla/web-search-plus-plugin) from `6e4c765` to `dd3cab6`.
- [Release notes](https://github.com/robbyczgw-cla/web-search-plus-plugin/releases)
- [Commits](6e4c765cd0...dd3cab6e11)

---
updated-dependencies:
- dependency-name: plugins/web-search-plus
  dependency-version: dd3cab6e11f16eaa3fcee0ce67d3a809b155341a
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(reports): refresh dependabot compatibility reports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-04 11:18:54 +00:00
github-actions[bot]
2763e7e5ac chore(readme): update crabpot dashboard [skip ci] 2026-05-03 08:28:29 +00:00
Vincent Koc
b1729769ea
fix(dashboard): execute beta fixture set 2026-05-03 01:18:02 -07:00
github-actions[bot]
3024edb959 chore(readme): update crabpot dashboard [skip ci] 2026-05-03 07:27:45 +00:00
Vincent Koc
bae69dcaf9
fix(dashboard): runtime-cover memory lancedb dev gap 2026-05-03 00:16:36 -07:00
github-actions[bot]
c54bcc89d2 chore(readme): update crabpot dashboard [skip ci] 2026-05-03 06:00:51 +00:00
Vincent Koc
83033f6608
fix(report): soften registration capture gaps 2026-05-02 22:50:02 -07:00
github-actions[bot]
c59a52aa76 chore(readme): refresh latest dashboard [skip ci] 2026-05-03 05:25:32 +00:00
Vincent Koc
cd140f89e3
fix(tracks): force official plugin dist-tags 2026-05-02 22:20:24 -07:00
github-actions[bot]
7dca9228df chore(readme): update crabpot dashboard [skip ci] 2026-05-03 02:46:42 +00:00
Vincent Koc
08b5cf96b7
fix(readme): update generated track frame 2026-05-02 19:35:45 -07:00
Vincent Koc
621c66e787
docs(readme): clarify crabpot tracks 2026-05-02 19:29:36 -07:00
github-actions[bot]
deee92ae5c chore(readme): update crabpot dashboard [skip ci] 2026-05-03 02:26:39 +00:00
Vincent Koc
f28b483488
feat(tracks): source-pack development plugins 2026-05-02 19:16:09 -07:00
github-actions[bot]
d62d1da317 chore(readme): update crabpot dashboard [skip ci] 2026-05-03 01:43:03 +00:00
Vincent Koc
2e8fac3fc7
chore(fixtures): refresh kitchen sink metadata reports (#27)
* chore(fixtures): refresh kitchen sink metadata reports

* fix(ci): harden kitchen sink surface checks

* fix(ci): classify kitchen sink isolated probes

* fix(ci): pin merged plugin inspector source
2026-05-02 18:32:03 -07:00
Vincent Koc
7644287646
fix(report): ignore retired bundle metadata false positives
Some checks failed
Check / Static checks (${{ matrix.os }}) (macos-latest) (push) Has been cancelled
Check / Static checks (${{ matrix.os }}) (ubuntu-latest) (push) Has been cancelled
Check / Static checks (${{ matrix.os }}) (windows-latest) (push) Has been cancelled
Check / Container static checks (push) Has been cancelled
Check / Resolve changed fixture matrix (push) Has been cancelled
Check / Isolated changed fixture ${{ matrix.id }} (push) Has been cancelled
Check / dashboard (push) Has been cancelled
2026-05-02 11:51:39 -07:00
Vincent Koc
877c217437
chore(report): pin plugin-inspector bundle metadata check 2026-05-02 11:32:10 -07:00
Vincent Koc
743e2d686e
feat(report): reconcile runtime evidence 2026-05-02 11:24:07 -07:00
Vincent Koc
f5f922b502
fix(runtime): honor mock SDK capture 2026-05-02 10:53:02 -07:00
Vincent Koc
6eebf29555
feat(reports): add OpenClaw beta plugin lane 2026-05-02 10:23:20 -07:00
github-actions[bot]
06e8215f62 chore(readme): update crabpot dashboard [skip ci] 2026-05-02 17:07:18 +00:00
Vincent Koc
614b3209ea
feat(fixtures): add OpenClaw npm plugin packages 2026-05-02 09:54:56 -07:00
github-actions[bot]
39e9f1565d chore(readme): update crabpot dashboard [skip ci] 2026-05-02 16:19:06 +00:00
Vincent Koc
dae2654661
fix(reports): pin npm pack readiness checks 2026-05-02 09:14:29 -07:00
Vincent Koc
c00b25a7eb
fix(fixtures): refresh kitchen sink package metadata 2026-05-02 08:56:44 -07:00
dependabot[bot]
84c3fb61a9
chore(deps): bump plugins/telnyx-sms from 66dba9e to dee5677 (#26)
Some checks are pending
Check / Container static checks (push) Waiting to run
Check / Static checks (${{ matrix.os }}) (macos-latest) (push) Waiting to run
Check / Static checks (${{ matrix.os }}) (ubuntu-latest) (push) Waiting to run
Check / Static checks (${{ matrix.os }}) (windows-latest) (push) Waiting to run
Check / Resolve changed fixture matrix (push) Waiting to run
Check / Isolated changed fixture ${{ matrix.id }} (push) Blocked by required conditions
Check / dashboard (push) Blocked by required conditions
* chore(deps): bump plugins/telnyx-sms from `66dba9e` to `dee5677`

Bumps [plugins/telnyx-sms](https://github.com/team-telnyx/telnyx-openclaw-sms-channel) from `66dba9e` to `dee5677`.
- [Commits](66dba9edf2...dee567716c)

---
updated-dependencies:
- dependency-name: plugins/telnyx-sms
  dependency-version: dee567716ca56d49464bf6354393f3656d92a2b3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(reports): refresh dependabot compatibility reports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-01 10:39:02 +00:00
dependabot[bot]
36b6f982c1
chore(deps): bump plugins/clawmetry from d6b8c92 to d747787 (#21)
* chore(deps): bump plugins/clawmetry from `d6b8c92` to `d747787`

Bumps [plugins/clawmetry](https://github.com/vivekchand/clawmetry) from `d6b8c92` to `d747787`.
- [Release notes](https://github.com/vivekchand/clawmetry/releases)
- [Commits](d6b8c926d0...d747787e33)

---
updated-dependencies:
- dependency-name: plugins/clawmetry
  dependency-version: d747787e334cc39dd1192e4af03be8adf8260361
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(reports): refresh dependabot compatibility reports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-01 09:00:23 +00:00
Vincent Koc
aa19cc68f0
feat(fixtures): add NemoClaw
Add NVIDIA/NemoClaw as a first-class Crabpot fixture and refresh the generated fixture reports.
2026-05-01 01:57:20 -07:00
github-actions[bot]
19cc3355dc chore(readme): update crabpot dashboard [skip ci] 2026-04-30 09:53:35 +00:00
Vincent Koc
6a07de21c8
fix(security): escape generated code literals 2026-04-30 02:49:14 -07:00
Vincent Koc
aad4b80897
fix(security): validate generated surface names 2026-04-30 02:45:20 -07:00
dependabot[bot]
fd975183ea
chore(deps): bump plugins/kitchen-sink from dcfec9e to f24c6ae (#20)
* chore(deps): bump plugins/kitchen-sink from `dcfec9e` to `f24c6ae`

Bumps [plugins/kitchen-sink](https://github.com/openclaw/kitchen-sink) from `dcfec9e` to `f24c6ae`.
- [Release notes](https://github.com/openclaw/kitchen-sink/releases)
- [Commits](dcfec9ecef...f24c6aea64)

---
updated-dependencies:
- dependency-name: plugins/kitchen-sink
  dependency-version: f24c6aea640e6a141543af308dd4a20f929c6d9e
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(reports): refresh dependabot compatibility reports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-30 09:23:38 +00:00
Vincent Koc
40eddcda1f
fix(deps): harden yuanbao fixture lock 2026-04-30 02:22:17 -07:00
Vincent Koc
fd9e456239
fix(deps): refresh lightclawbot fixture lock 2026-04-30 02:22:11 -07:00
github-actions[bot]
5983713a34 chore(readme): update crabpot dashboard [skip ci] 2026-04-30 06:02:01 +00:00
Vincent Koc
634bdb1492
fix(ci): require lifecycle dashboard profiles (#19) 2026-04-29 22:57:26 -07:00
github-actions[bot]
24370b0e49 chore(readme): update crabpot dashboard [skip ci] 2026-04-30 05:28:13 +00:00
Vincent Koc
7673e48b22
chore(fixtures): add community plugin projects (#18)
* chore(fixtures): add community plugin projects

* fix(ci): sandbox isolated fixture probes

* fix(ci): profile import loop against openclaw

* fix(ci): keep import profile matrix cheap
2026-04-29 22:24:16 -07:00
github-actions[bot]
b25f8cf560 chore(readme): update crabpot dashboard [skip ci] 2026-04-30 04:52:11 +00:00
Vincent Koc
603039f34e
chore(readme): show dashboard deltas for profile rows 2026-04-29 21:48:26 -07:00
github-actions[bot]
dfeb674dcb chore(readme): update crabpot dashboard [skip ci] 2026-04-30 03:57:16 +00:00
Vincent Koc
a02928bc44
chore(readme): show openclaw lifecycle profile 2026-04-29 20:53:40 -07:00
github-actions[bot]
b293a5a773 chore(readme): update crabpot dashboard [skip ci] 2026-04-30 02:45:26 +00:00
Vincent Koc
b1e3a61dc0
feat: profile openclaw plugin lifecycle 2026-04-29 19:41:11 -07:00
Vincent Koc
27bf452906
chore: show import-loop plugin deltas 2026-04-29 19:26:46 -07:00
Vincent Koc
9834e2bdcf
test: cover security manifest findings 2026-04-29 19:18:16 -07:00
github-actions[bot]
ca97245e90 chore(readme): update crabpot dashboard [skip ci] 2026-04-29 21:08:15 +00:00
Vincent Koc
830ab612ad
chore(release): v0.1.4 2026-04-29 14:04:26 -07:00
github-actions[bot]
441958657e chore(readme): update crabpot dashboard [skip ci] 2026-04-29 21:00:09 +00:00
Vincent Koc
7b1f8a9979
chore(inspector): pin v0.3.5 package 2026-04-29 13:56:06 -07:00
Vincent Koc
692cd40bca
chore(inspector): pin v0.3.5 source ref 2026-04-29 13:51:57 -07:00
github-actions[bot]
10a7a80d9c chore(readme): refresh latest dashboard [skip ci] 2026-04-29 20:33:27 +00:00
github-actions[bot]
9e17bc0d08 chore(readme): update crabpot dashboard [skip ci] 2026-04-29 20:29:22 +00:00
Vincent Koc
da5a84e9a4
fix(profile): clarify dashboard sampling 2026-04-29 13:24:40 -07:00
github-actions[bot]
2f7a12f56f chore(readme): update crabpot dashboard [skip ci] 2026-04-29 17:15:56 +00:00
Vincent Koc
58264d3e35
fix(fixtures): align yuanbao channel expectation 2026-04-29 10:12:43 -07:00
Vincent Koc
564761a30e
fix(inspector): pin advertised source ref 2026-04-29 10:04:36 -07:00
Vincent Koc
5f64b98182
chore(inspector): refresh source ref 2026-04-29 06:34:08 -07:00
dependabot[bot]
062d5494d6
chore(deps): bump openclaw-plugin-yuanbao to 2.12.0 (#16)
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-29 06:29:46 -07:00
Vincent Koc
b05316d156
fix(test): keep runtime profile fixture sampled 2026-04-29 06:27:32 -07:00
Vincent Koc
0389929569
fix(ci): tolerate stale dashboard pushes 2026-04-29 06:24:38 -07:00
dependabot[bot]
02f8976e6c
chore(deps): bump plugins/honcho from f1ac095 to 9580d37 (#14)
* chore(deps): bump plugins/honcho from `f1ac095` to `9580d37`

Bumps [plugins/honcho](https://github.com/plastic-labs/openclaw-honcho) from `f1ac095` to `9580d37`.
- [Commits](f1ac095b5d...9580d37d95)

---
updated-dependencies:
- dependency-name: plugins/honcho
  dependency-version: 9580d37d95ef63b0e8b64578fbfc8abfcfc745e4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(reports): refresh dependabot compatibility reports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-29 13:20:16 +00:00
Vincent Koc
dda88a9de0
fix(ci): serialize dependabot automerge 2026-04-29 06:18:36 -07:00
dependabot[bot]
87c9568e4f
chore(deps): bump plugins/lossless-claw from f2574ed to 4724d3f (#15)
* chore(deps): bump plugins/lossless-claw from `f2574ed` to `4724d3f`

Bumps [plugins/lossless-claw](https://github.com/Martian-Engineering/lossless-claw) from `f2574ed` to `4724d3f`.
- [Release notes](https://github.com/Martian-Engineering/lossless-claw/releases)
- [Commits](f2574ed958...4724d3fe6c)

---
updated-dependencies:
- dependency-name: plugins/lossless-claw
  dependency-version: 4724d3fe6ccfd85f275aad732f3b01551d909e5a
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(reports): refresh dependabot compatibility reports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-29 13:13:31 +00:00
github-actions[bot]
f0c7f8d996 chore(readme): update crabpot dashboard [skip ci] 2026-04-29 13:09:10 +00:00
Vincent Koc
3f15ddba42
fix(ci): force-with-lease track dashboard branches 2026-04-29 06:05:16 -07:00
Vincent Koc
f301dc8290
fix(ci): refresh track branches from main 2026-04-29 06:02:27 -07:00
github-actions[bot]
4f32d40eba chore(readme): update crabpot dashboard [skip ci] 2026-04-29 12:57:52 +00:00
Vincent Koc
8ce5ef46f7
fix(ci): keep isolated fixture runs advisory 2026-04-29 05:54:09 -07:00
Vincent Koc
eed94ee91c
fix(ci): configure dependabot merge author 2026-04-29 05:51:57 -07:00
dependabot[bot]
66a4cb550b
chore(deps): bump plugins/kitchen-sink from 6dc166f to dcfec9e (#13)
* chore(deps): bump plugins/kitchen-sink from `6dc166f` to `dcfec9e`

Bumps [plugins/kitchen-sink](https://github.com/openclaw/kitchen-sink) from `6dc166f` to `dcfec9e`.
- [Release notes](https://github.com/openclaw/kitchen-sink/releases)
- [Commits](6dc166f898...dcfec9ecef)

---
updated-dependencies:
- dependency-name: plugins/kitchen-sink
  dependency-version: dcfec9ecef20b2c6335b97b2366e58eb072e3ec0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(reports): refresh kitchen-sink dashboard

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-29 05:48:36 -07:00
dependabot[bot]
440e4d27bc
chore(deps): bump @tencent-weixin/openclaw-weixin from 2.1.10 to 2.3.1 in /plugins/openclaw-weixin (#17)
Some checks failed
Check / Static checks (${{ matrix.os }}) (macos-latest) (push) Has been cancelled
Check / Static checks (${{ matrix.os }}) (ubuntu-latest) (push) Has been cancelled
Check / Static checks (${{ matrix.os }}) (windows-latest) (push) Has been cancelled
Check / Container static checks (push) Has been cancelled
Check / Resolve changed fixture matrix (push) Has been cancelled
Check / Isolated changed fixture ${{ matrix.id }} (push) Has been cancelled
Check / dashboard (push) Has been cancelled
* chore(deps): bump @tencent-weixin/openclaw-weixin

Bumps @tencent-weixin/openclaw-weixin from 2.1.10 to 2.3.1.

---
updated-dependencies:
- dependency-name: "@tencent-weixin/openclaw-weixin"
  dependency-version: 2.3.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(reports): refresh dependabot compatibility reports

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-29 09:43:23 +00:00
github-actions[bot]
dca0f80bc2 chore(readme): update crabpot dashboard [skip ci] 2026-04-29 07:07:59 +00:00
Vincent Koc
1c4d027af3
fix(ci): keep dashboard caches node24-clean 2026-04-29 00:04:21 -07:00
github-actions[bot]
bcb42ec7b7 chore(readme): update crabpot dashboard [skip ci] 2026-04-29 07:01:44 +00:00
Vincent Koc
eb73e9cc1f
feat(dashboard): compare track metrics to main 2026-04-28 23:58:14 -07:00
github-actions[bot]
f1858da20e chore(readme): update crabpot dashboard [skip ci] 2026-04-29 05:49:02 +00:00
148 changed files with 116632 additions and 14349 deletions

264
.github/dependabot.yml vendored
View File

@ -55,3 +55,267 @@ updates:
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/bluebubbles"
schedule:
interval: "cron"
cronjob: "01 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/diagnostics-otel"
schedule:
interval: "cron"
cronjob: "02 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/discord"
schedule:
interval: "cron"
cronjob: "03 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/lobster"
schedule:
interval: "cron"
cronjob: "04 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/matrix"
schedule:
interval: "cron"
cronjob: "05 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/msteams"
schedule:
interval: "cron"
cronjob: "06 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/nextcloud-talk"
schedule:
interval: "cron"
cronjob: "07 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/nostr"
schedule:
interval: "cron"
cronjob: "08 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/voice-call"
schedule:
interval: "cron"
cronjob: "09 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/zalo"
schedule:
interval: "cron"
cronjob: "10 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/zalouser"
schedule:
interval: "cron"
cronjob: "11 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/feishu"
schedule:
interval: "cron"
cronjob: "12 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/tlon"
schedule:
interval: "cron"
cronjob: "13 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/twitch"
schedule:
interval: "cron"
cronjob: "14 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/mattermost"
schedule:
interval: "cron"
cronjob: "15 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/synology-chat"
schedule:
interval: "cron"
cronjob: "16 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/brave-plugin"
schedule:
interval: "cron"
cronjob: "17 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/codex"
schedule:
interval: "cron"
cronjob: "18 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/diagnostics-prometheus"
schedule:
interval: "cron"
cronjob: "19 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/google-meet"
schedule:
interval: "cron"
cronjob: "20 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/diffs"
schedule:
interval: "cron"
cronjob: "21 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/memory-lancedb"
schedule:
interval: "cron"
cronjob: "22 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/openclaw-qqbot"
schedule:
interval: "cron"
cronjob: "23 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: "npm"
directory: "/plugins/whatsapp"
schedule:
interval: "cron"
cronjob: "24 9,21 * * *"
timezone: "Etc/UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "chore"
include: "scope"

View File

@ -26,6 +26,9 @@ jobs:
- uses: actions/setup-node@v6
with:
node-version: 22
cache: npm
cache-dependency-path: |
plugins/**/package-lock.json
- name: Resolve OpenClaw track
id: openclaw-track
run: node scripts/resolve-openclaw-track.mjs --github-output
@ -34,10 +37,21 @@ jobs:
repository: openclaw/openclaw
ref: ${{ steps.openclaw-track.outputs.ref }}
path: openclaw
- run: node scripts/run-static-suite.mjs --openclaw ./openclaw --policy dashboard --plugin-inspector-smoke
- shell: bash
run: |
plugin_track="${{ steps.openclaw-track.outputs.track }}"
extra_args=(--openclaw-track "${{ steps.openclaw-track.outputs.track }}" --plugin-track "${plugin_track}")
if [ "${{ steps.openclaw-track.outputs.track }}" = "development" ]; then
extra_args=(--openclaw-track "${{ steps.openclaw-track.outputs.track }}" --fixture-set openclaw-beta --plugin-track source-pack)
fi
node scripts/run-static-suite.mjs --openclaw ./openclaw --policy dashboard --profile-runs 3 --plugin-inspector-smoke "${extra_args[@]}"
- name: Write CI summary artifacts
if: always()
continue-on-error: true
env:
CRABPOT_FIXTURE_SET: ${{ steps.openclaw-track.outputs.track == 'development' && 'openclaw-beta' || '' }}
CRABPOT_OPENCLAW_TRACK: ${{ steps.openclaw-track.outputs.track }}
CRABPOT_PLUGIN_TRACK: ${{ steps.openclaw-track.outputs.track == 'development' && 'source-pack' || steps.openclaw-track.outputs.track }}
run: |
node scripts/generate-report.mjs --openclaw ./openclaw
node scripts/capture-contracts.mjs --openclaw ./openclaw
@ -47,7 +61,7 @@ jobs:
node scripts/platform-probes.mjs --openclaw ./openclaw
node scripts/check-generated-surface-fixture.mjs --openclaw ./openclaw
node scripts/import-loop-profile.mjs
node scripts/profile-contract-runtime.mjs --openclaw ./openclaw
node scripts/profile-contract-runtime.mjs --openclaw ./openclaw --runs 3
node scripts/compare-runtime-profile.mjs
node scripts/check-ci-policy.mjs
node scripts/write-ci-summary.mjs --mode check --openclaw-label "${{ steps.openclaw-track.outputs.label }}" --github-step-summary
@ -77,7 +91,14 @@ jobs:
ref: ${{ steps.openclaw-track.outputs.ref }}
path: openclaw
- run: node --version
- run: node scripts/run-static-suite.mjs --openclaw ./openclaw --policy dashboard --plugin-inspector-smoke
- shell: bash
run: |
plugin_track="${{ steps.openclaw-track.outputs.track }}"
extra_args=(--openclaw-track "${{ steps.openclaw-track.outputs.track }}" --plugin-track "${plugin_track}")
if [ "${{ steps.openclaw-track.outputs.track }}" = "development" ]; then
extra_args=(--openclaw-track "${{ steps.openclaw-track.outputs.track }}" --fixture-set openclaw-beta --plugin-track source-pack)
fi
node scripts/run-static-suite.mjs --openclaw ./openclaw --policy dashboard --profile-runs 3 --plugin-inspector-smoke "${extra_args[@]}"
changed-fixture-plan:
name: Resolve changed fixture matrix
@ -95,6 +116,9 @@ jobs:
- uses: actions/setup-node@v6
with:
node-version: 22
cache: npm
cache-dependency-path: |
plugins/**/package-lock.json
- name: Resolve OpenClaw track
id: openclaw-track
run: node scripts/resolve-openclaw-track.mjs --github-output
@ -149,6 +173,9 @@ jobs:
- uses: actions/setup-node@v6
with:
node-version: 22
cache: npm
cache-dependency-path: |
plugins/**/package-lock.json
- name: Resolve OpenClaw track
id: openclaw-track
run: node scripts/resolve-openclaw-track.mjs --github-output
@ -169,6 +196,10 @@ jobs:
if: always()
continue-on-error: true
run: npm run execution:report
- name: Reconcile compatibility report with runtime evidence
if: always()
continue-on-error: true
run: node scripts/generate-report.mjs --openclaw ./openclaw --execution-results reports/crabpot-execution-results.json --fixture-set "${{ matrix.id }}"
- name: Run execution policy
id: policy
if: always()
@ -185,12 +216,14 @@ jobs:
name: crabpot-changed-isolated-${{ matrix.id }}
path: |
.crabpot/results/
reports/crabpot-report.*
reports/crabpot-issues.*
reports/crabpot-execution-results.*
reports/crabpot-ci-policy.*
reports/crabpot-ci-summary.*
if-no-files-found: warn
- name: Fail if isolated execution failed
if: ${{ steps.execute.outcome == 'failure' || steps.policy.outcome == 'failure' }}
- name: Fail if isolated policy failed
if: ${{ steps.policy.outcome == 'failure' }}
run: exit 1
dashboard:
@ -206,6 +239,9 @@ jobs:
- uses: actions/setup-node@v6
with:
node-version: 22
cache: npm
cache-dependency-path: |
plugins/**/package-lock.json
- name: Resolve OpenClaw track
id: openclaw-track
run: node scripts/resolve-openclaw-track.mjs --github-output
@ -214,9 +250,25 @@ jobs:
repository: openclaw/openclaw
ref: ${{ steps.openclaw-track.outputs.ref }}
path: openclaw
- run: node scripts/sync-fixtures.mjs --materialize
- run: node scripts/sync-fixtures.mjs --materialize --openclaw ./openclaw
env:
CRABPOT_FIXTURE_SET: ${{ steps.openclaw-track.outputs.track == 'development' && 'openclaw-beta' || '' }}
CRABPOT_PLUGIN_TRACK: ${{ steps.openclaw-track.outputs.track == 'development' && 'source-pack' || steps.openclaw-track.outputs.track }}
- name: Install OpenClaw lifecycle dependencies
run: |
corepack enable
pnpm --dir openclaw install --frozen-lockfile --ignore-scripts
- name: Fetch main dashboard baseline
if: ${{ steps.openclaw-track.outputs.track != 'latest' }}
run: |
mkdir -p .crabpot/baseline
git fetch --no-tags --depth=1 origin main
git show origin/main:reports/crabpot-dashboard-data.json > .crabpot/baseline/main-dashboard-data.json || true
- name: Write README dashboard
env:
CRABPOT_FIXTURE_SET: ${{ steps.openclaw-track.outputs.track == 'development' && 'openclaw-beta' || '' }}
CRABPOT_OPENCLAW_TRACK: ${{ steps.openclaw-track.outputs.track }}
CRABPOT_PLUGIN_TRACK: ${{ steps.openclaw-track.outputs.track == 'development' && 'source-pack' || steps.openclaw-track.outputs.track }}
CRABPOT_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
run: |
export CRABPOT_SUMMARY_GENERATED_AT="$(date -u +"%Y-%m-%dT%H:%M:%SZ")"
@ -226,17 +278,21 @@ jobs:
node scripts/cold-import-readiness.mjs --openclaw ./openclaw
node scripts/workspace-plan.mjs --openclaw ./openclaw
node scripts/platform-probes.mjs --openclaw ./openclaw
node scripts/import-loop-profile.mjs
node scripts/profile-contract-runtime.mjs --openclaw ./openclaw
node scripts/import-loop-profile.mjs --openclaw ./openclaw --runs 3
node scripts/profile-contract-runtime.mjs --openclaw ./openclaw --runs 3
node scripts/compare-runtime-profile.mjs
node scripts/check-ci-policy.mjs
node scripts/write-ci-summary.mjs --mode check --openclaw-label "${{ steps.openclaw-track.outputs.label }}"
node scripts/update-track-metadata.mjs
node scripts/update-readme-summary.mjs
baseline_arg=""
if [ -f .crabpot/baseline/main-dashboard-data.json ]; then
baseline_arg="--baseline-data .crabpot/baseline/main-dashboard-data.json"
fi
node scripts/update-readme-summary.mjs ${baseline_arg}
git add README.md reports/
if ! git diff --cached --quiet; then
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git commit -m "chore(readme): update crabpot dashboard [skip ci]"
git push
git push || echo "::notice::Skipped stale dashboard push because ${GITHUB_REF_NAME} moved; a newer check run will refresh it."
fi

View File

@ -10,6 +10,10 @@ permissions:
contents: write
pull-requests: write
concurrency:
group: crabpot-dependabot-automerge-${{ github.event.pull_request.base.ref }}
cancel-in-progress: false
jobs:
refresh-and-automerge:
name: Refresh reports and enable auto-merge
@ -28,6 +32,14 @@ jobs:
- uses: actions/setup-node@v6
with:
node-version: 22
cache: npm
cache-dependency-path: |
plugins/**/package-lock.json
- name: Configure git author
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
- name: Resolve OpenClaw track
id: openclaw-track
@ -47,7 +59,14 @@ jobs:
git fetch origin "${{ github.event.pull_request.base.ref }}"
git merge --no-edit "origin/${{ github.event.pull_request.base.ref }}"
- name: Verify Dependabot changed only fixture pins
- name: Fetch main dashboard baseline
if: ${{ github.event.pull_request.base.ref != 'main' }}
run: |
mkdir -p .crabpot/baseline
git fetch --no-tags --depth=1 origin main
git show origin/main:reports/crabpot-dashboard-data.json > .crabpot/baseline/main-dashboard-data.json || true
- name: Verify Dependabot changed only fixture pins and generated reports
env:
GH_TOKEN: ${{ github.token }}
PR_NUMBER: ${{ github.event.pull_request.number }}
@ -60,19 +79,25 @@ jobs:
exit 1
fi
while IFS= read -r file; do
if [[ "$file" == ".gitmodules" || "$file" =~ ^plugins/[^/]+$ || "$file" =~ ^plugins/[^/]+/package(-lock)?\.json$ ]]; then
if [[ "$file" == ".gitmodules" || "$file" == "README.md" || "$file" =~ ^reports/ || "$file" =~ ^plugins/[^/]+$ || "$file" =~ ^plugins/[^/]+/package(-lock)?\.json$ ]]; then
continue
fi
echo "::error file=${file}::Dependabot auto-merge only accepts fixture pin changes"
echo "::error file=${file}::Dependabot auto-merge only accepts fixture pin changes and generated report updates"
exit 1
done < /tmp/crabpot-dependabot-files.txt
- name: Install OpenClaw lifecycle dependencies
run: |
corepack enable
pnpm --dir openclaw install --frozen-lockfile --ignore-scripts
- name: Refresh compatibility reports
env:
CRABPOT_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
run: |
export CRABPOT_SUMMARY_GENERATED_AT="$(date -u +"%Y-%m-%dT%H:%M:%SZ")"
node scripts/sync-fixtures.mjs --materialize
CRABPOT_SUMMARY_GENERATED_AT="$(date -u +"%Y-%m-%dT%H:%M:%SZ")"
export CRABPOT_SUMMARY_GENERATED_AT
node scripts/sync-fixtures.mjs --materialize --openclaw ./openclaw
npm test
node scripts/sync-fixtures.mjs --check
node scripts/run-contract-smoke.mjs --strict --openclaw ./openclaw
@ -83,19 +108,21 @@ jobs:
node scripts/cold-import-readiness.mjs --openclaw ./openclaw
node scripts/workspace-plan.mjs --openclaw ./openclaw
node scripts/platform-probes.mjs --openclaw ./openclaw
node scripts/import-loop-profile.mjs
node scripts/profile-contract-runtime.mjs --openclaw ./openclaw
node scripts/import-loop-profile.mjs --openclaw ./openclaw --runs 3
node scripts/profile-contract-runtime.mjs --openclaw ./openclaw --runs 3
node scripts/compare-runtime-profile.mjs
node scripts/check-ci-policy.mjs
node scripts/write-ci-summary.mjs --mode dependabot --openclaw-label "${{ steps.openclaw-track.outputs.label }}"
node scripts/update-track-metadata.mjs
node scripts/update-readme-summary.mjs
baseline_args=()
if [ -f .crabpot/baseline/main-dashboard-data.json ]; then
baseline_args=(--baseline-data .crabpot/baseline/main-dashboard-data.json)
fi
node scripts/update-readme-summary.mjs "${baseline_args[@]}"
- name: Commit refreshed reports
run: |
if ! git diff --quiet README.md reports/; then
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add README.md reports/
git commit -m "chore(reports): refresh dependabot compatibility reports"
git push
@ -105,4 +132,36 @@ jobs:
env:
GH_TOKEN: ${{ github.token }}
PR_NUMBER: ${{ github.event.pull_request.number }}
run: gh pr merge "${PR_NUMBER}" --squash --delete-branch
shell: bash
run: |
set -euo pipefail
for attempt in {1..18}; do
state="$(gh pr view "${PR_NUMBER}" --json mergeable,mergeStateStatus,statusCheckRollup --jq '
[
.mergeable,
.mergeStateStatus,
([.statusCheckRollup[]?
| select((.workflowName // "") != "Dependabot Auto Merge")
| select((.status // .state // "") == "IN_PROGRESS" or (.status // .state // "") == "QUEUED" or (.status // .state // "") == "PENDING" or (.status // .state // "") == "EXPECTED")
] | length),
([.statusCheckRollup[]?
| select((.workflowName // "") != "Dependabot Auto Merge")
| select((.conclusion // .state // "") == "FAILURE" or (.conclusion // .state // "") == "ERROR" or (.conclusion // .state // "") == "TIMED_OUT" or (.conclusion // .state // "") == "ACTION_REQUIRED" or (.conclusion // .state // "") == "CANCELLED")
] | length)
] | @tsv
')"
read -r mergeable merge_state pending_checks failed_checks <<< "${state}"
if [ "${failed_checks}" != "0" ]; then
echo "::error::PR ${PR_NUMBER} has ${failed_checks} failed status check(s); refusing auto-merge"
gh pr view "${PR_NUMBER}" --json url,mergeable,mergeStateStatus,statusCheckRollup
exit 1
fi
if [ "${mergeable}" = "MERGEABLE" ] && [ "${pending_checks}" = "0" ]; then
gh pr merge "${PR_NUMBER}" --squash --delete-branch
exit 0
fi
echo "PR ${PR_NUMBER} mergeable=${mergeable} mergeStateStatus=${merge_state} pendingChecks=${pending_checks}; waiting for mergeability and green checks (${attempt}/18)"
sleep 10
done
gh pr view "${PR_NUMBER}" --json url,mergeable,mergeStateStatus,statusCheckRollup
exit 1

View File

@ -105,6 +105,10 @@ jobs:
- name: Run runtime profile policy
run: node scripts/compare-runtime-profile.mjs ${{ inputs.strict_perf && '--strict' || '' }}
- run: node scripts/check-contract-coverage.mjs --openclaw ./openclaw
- name: Install OpenClaw lifecycle dependencies
run: |
corepack enable
pnpm --dir openclaw install --frozen-lockfile --ignore-scripts
- name: Write report artifacts
if: always()
@ -117,7 +121,7 @@ jobs:
node scripts/workspace-plan.mjs --openclaw ./openclaw
node scripts/platform-probes.mjs --openclaw ./openclaw
node scripts/check-generated-surface-fixture.mjs --openclaw ./openclaw
node scripts/import-loop-profile.mjs
node scripts/import-loop-profile.mjs --openclaw ./openclaw --runs "${PROFILE_RUNS}"
node scripts/profile-contract-runtime.mjs --openclaw ./openclaw --runs "${PROFILE_RUNS}"
node scripts/compare-runtime-profile.mjs ${{ inputs.strict_perf && '--strict' || '' }}
node scripts/check-ci-policy.mjs ${{ inputs.strict_contract && '--strict' || '' }}
@ -171,7 +175,7 @@ jobs:
with:
node-version: 22
- run: node scripts/sync-fixtures.mjs --materialize
- run: node scripts/sync-fixtures.mjs --materialize --openclaw ./openclaw
- run: npm test
- name: Compare OpenClaw refs
run: |
@ -301,6 +305,11 @@ jobs:
continue-on-error: true
run: npm run execution:report
- name: Reconcile compatibility report with runtime evidence
if: always()
continue-on-error: true
run: node scripts/generate-report.mjs --openclaw ./openclaw --execution-results reports/crabpot-execution-results.json --fixture-set "${{ matrix.id }}"
- name: Run execution policy
id: policy
if: always()
@ -319,6 +328,8 @@ jobs:
name: crabpot-openclaw-ref-isolated-${{ matrix.id }}
path: |
.crabpot/results/
reports/crabpot-report.*
reports/crabpot-issues.*
reports/crabpot-execution-results.*
reports/crabpot-ci-policy.*
reports/crabpot-ci-summary.*

View File

@ -3,8 +3,9 @@ name: Track Dashboard
on:
schedule:
# Development follows OpenClaw main, so refresh it often enough to catch
# contract drift without turning Crabpot into a constant runner.
- cron: "37 */6 * * *"
# contract drift. The job usually finishes in a few minutes; concurrency
# below keeps slower runs from stacking up.
- cron: "7,22,37,52 * * * *"
workflow_dispatch:
inputs:
track:
@ -25,16 +26,25 @@ jobs:
dashboard:
name: Refresh ${{ matrix.track }} dashboard
runs-on: ubuntu-latest
concurrency:
group: crabpot-track-dashboard-${{ matrix.track }}
cancel-in-progress: true
strategy:
fail-fast: false
matrix:
include:
- track: latest
branch: main
fixture_set: ""
plugin_track: latest
- track: beta
branch: crab-beta
fixture_set: ""
plugin_track: beta
- track: development
branch: crab-development
fixture_set: openclaw-beta
plugin_track: source-pack
steps:
- name: Select requested track
id: select
@ -52,13 +62,16 @@ jobs:
- uses: actions/checkout@v6
if: ${{ steps.select.outputs.run == 'true' }}
with:
ref: ${{ matrix.branch }}
ref: main
submodules: recursive
- uses: actions/setup-node@v6
if: ${{ steps.select.outputs.run == 'true' }}
with:
node-version: 22
cache: npm
cache-dependency-path: |
plugins/**/package-lock.json
- name: Resolve OpenClaw track
if: ${{ steps.select.outputs.run == 'true' }}
@ -73,35 +86,74 @@ jobs:
path: openclaw
- if: ${{ steps.select.outputs.run == 'true' }}
run: node scripts/run-static-suite.mjs --openclaw ./openclaw --policy dashboard --plugin-inspector-smoke
run: |
node scripts/run-static-suite.mjs \
--openclaw ./openclaw \
--policy dashboard \
--profile-runs 3 \
--plugin-inspector-smoke \
--openclaw-track "${{ matrix.track }}" \
--fixture-set "${{ matrix.fixture_set }}" \
--plugin-track "${{ matrix.plugin_track }}"
- name: Install OpenClaw lifecycle dependencies
if: ${{ steps.select.outputs.run == 'true' }}
run: |
corepack enable
pnpm --dir openclaw install --frozen-lockfile --ignore-scripts
- name: Fetch main dashboard baseline
if: ${{ steps.select.outputs.run == 'true' && matrix.track != 'latest' }}
run: |
mkdir -p .crabpot/baseline
git fetch --no-tags --depth=1 origin main
git show origin/main:reports/crabpot-dashboard-data.json > .crabpot/baseline/main-dashboard-data.json || true
- name: Write branch dashboard
if: ${{ steps.select.outputs.run == 'true' }}
env:
CRABPOT_FIXTURE_SET: ${{ matrix.fixture_set }}
CRABPOT_OPENCLAW_TRACK: ${{ matrix.track }}
CRABPOT_PLUGIN_TRACK: ${{ matrix.plugin_track }}
CRABPOT_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
run: |
export CRABPOT_SUMMARY_GENERATED_AT="$(date -u +"%Y-%m-%dT%H:%M:%SZ")"
node scripts/generate-report.mjs --openclaw ./openclaw
execution_results_arg=""
if [ "${{ matrix.track }}" = "development" ]; then
CRABPOT_EXECUTE_ISOLATED=1 node scripts/execute-workspace-plan.mjs --fixture-set openclaw-beta --openclaw ./openclaw --continue-on-error
node scripts/summarize-execution-results.mjs --write
execution_results_arg="--execution-results reports/crabpot-execution-results.json"
fi
node scripts/generate-report.mjs --openclaw ./openclaw ${execution_results_arg}
node scripts/capture-contracts.mjs --openclaw ./openclaw
node scripts/synthetic-probes.mjs --openclaw ./openclaw
node scripts/cold-import-readiness.mjs --openclaw ./openclaw
node scripts/workspace-plan.mjs --openclaw ./openclaw
node scripts/platform-probes.mjs --openclaw ./openclaw
node scripts/check-generated-surface-fixture.mjs --openclaw ./openclaw
node scripts/import-loop-profile.mjs
node scripts/profile-contract-runtime.mjs --openclaw ./openclaw
node scripts/import-loop-profile.mjs --openclaw ./openclaw --runs 3
node scripts/profile-contract-runtime.mjs --openclaw ./openclaw --runs 3
node scripts/compare-runtime-profile.mjs
node scripts/check-ci-policy.mjs
node scripts/write-ci-summary.mjs --mode "track:${{ matrix.track }}" --openclaw-label "${{ steps.openclaw-track.outputs.label }}"
node scripts/update-track-metadata.mjs
node scripts/update-readme-summary.mjs
node scripts/update-track-metadata.mjs --track "${{ matrix.track }}"
baseline_arg=""
if [ -f .crabpot/baseline/main-dashboard-data.json ]; then
baseline_arg="--baseline-data .crabpot/baseline/main-dashboard-data.json"
fi
node scripts/update-readme-summary.mjs ${baseline_arg}
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add README.md reports/
if ! git diff --cached --quiet; then
git commit -m "chore(readme): refresh ${{ matrix.track }} dashboard [skip ci]"
git push origin HEAD:${{ matrix.branch }}
if [ "${{ matrix.branch }}" = "main" ]; then
git push origin HEAD:${{ matrix.branch }}
else
git fetch --no-tags --depth=1 origin "${{ matrix.branch }}"
git push --force-with-lease="refs/heads/${{ matrix.branch }}" origin HEAD:${{ matrix.branch }}
fi
fi
- name: Upload track reports

16
.gitmodules vendored
View File

@ -98,3 +98,19 @@
path = plugins/kitchen-sink
url = https://github.com/openclaw/kitchen-sink.git
shallow = true
[submodule "plugins/openclaw-telemetry"]
path = plugins/openclaw-telemetry
url = https://github.com/knostic/openclaw-telemetry.git
shallow = true
[submodule "plugins/telnyx-sms"]
path = plugins/telnyx-sms
url = https://github.com/team-telnyx/telnyx-openclaw-sms-channel.git
shallow = true
[submodule "plugins/clawrouter"]
path = plugins/clawrouter
url = https://github.com/BlockRunAI/ClawRouter.git
shallow = true
[submodule "plugins/nemoclaw"]
path = plugins/nemoclaw
url = https://github.com/NVIDIA/NemoClaw.git
shallow = true

4
.rgignore Normal file
View File

@ -0,0 +1,4 @@
# External plugin submodule history/comments that mention retired OpenClaw
# metadata. Crabpot-owned files are checked by npm run check:contracts.
plugins/agentchat/integrations/openclaw-channel/CHANGELOG.md
plugins/nemoclaw/scripts/generate-openclaw-config.py

104
README.md
View File

@ -9,61 +9,69 @@
## Reporting Data
`main` follows the latest published npm package. `crab-beta` follows the beta npm dist-tag. `crab-development` follows the latest `openclaw/openclaw` main commit.
- **Last dashboard update:** Apr 29, 2026, 04:41 UTC
`main` follows the latest published npm package and npm `latest` plugin artifacts, with bundled OpenClaw fixtures source-packed from the matching checkout. `crab-beta` follows beta npm dist-tags for externalized packages and source-packs bundled fixtures. `crab-development` checks `openclaw/openclaw` main against source-packed official plugin artifacts from that same OpenClaw checkout.
- **Last dashboard update:** May 07, 2026, 09:32 UTC
<!-- crabpot-tracks:start -->
- **Source:** `npm-latest`
- **OpenClaw version:** `2026.4.26`
- **OpenClaw SHA:** `be8c24633aaa`
- **Dashboard target:** `openclaw@latest`
- **GitHub report run:** [25091204138](https://github.com/openclaw/crabpot/actions/runs/25091204138)
- **OpenClaw version:** `2026.5.6`
- **OpenClaw SHA:** `c97b9f79ec43`
- **Dashboard target:** `openclaw@latest + @openclaw/*@latest + bundled source fixtures`
- **Plugin artifacts:** `npm latest fixture set plus bundled source-packed fixtures`
- **GitHub report run:** [25487512981](https://github.com/openclaw/crabpot/actions/runs/25487512981)
<!-- crabpot-tracks:end -->
<!-- crabpot-summary:start -->
## Dashboard
| Metric | Result |
| ---------------------- | ---------------------------------------------------- |
| Fixtures | 29 |
| Hard breakages | 0 |
| Warnings | 60 |
| Suggestions | 135 |
| Issues | 195 |
| P0 issues | [🔴 P0 2](reports/crabpot-issues.md#p0-live-issues) |
| P1 issues | [🟠 P1 72](reports/crabpot-issues.md#triage-summary) |
| Live issues | 2 total / 2 P0 |
| Compat gaps | 40 |
| Deprecation warnings | 24 |
| Inspector gaps | 102 |
| Upstream metadata | 27 |
| Contract probes | 154 |
| Policy failures | 0 |
| Policy warnings | 3 |
| Ref diff failures | 0 |
| Profile failures | 0 |
| Execution probes | 6 pass / 0 fail / 2 blocked |
| Synthetic probes | 240 ready / 0 blocked / 240 total |
| Cold import | 3 ready / 31 blocked / 34 entrypoints |
| Workspace plan | 34 entrypoints / 17 installs / 8 builds |
| Platform risks | 165 Windows / 48 container |
| Jiti loader candidates | 18 |
| Import loop | p50 153ms / p95 165ms / max RSS 46.3MB / CPU 27ms |
| Runtime profile | p50 649ms / p95 1329ms / max RSS 68.7MB |
| Metric | Result |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Fixtures | 57 |
| Hard breakages | 0 |
| Warnings | 126 |
| Suggestions | 155 |
| Issues | 281 |
| P0 issues | [🔴 P0 0](reports/crabpot-issues.md#p0-live-issues) |
| P1 issues | [🟠 P1 15](reports/crabpot-issues.md#triage-summary) |
| Live issues | 0 total / 0 P0 |
| Compat gaps | 2 |
| Deprecation warnings | 42 |
| Inspector gaps | 163 |
| Upstream metadata | 74 |
| Contract probes | 277 |
| Policy failures | 0 |
| Policy warnings | 19 |
| Ref diff failures | 0 |
| Profile failures | 0 |
| Execution probes | 12 pass / 0 fail / 18 blocked |
| Synthetic probes | 434 ready / 0 blocked / 434 total |
| Cold import | 6 ready / 97 blocked / 103 entrypoints |
| Workspace plan | 103 entrypoints / 43 installs / 11 builds |
| Platform risks | 14 Windows / 14 container |
| Jiti loader candidates | 25 |
| Import loop | p50 2421ms / p95 2471ms / plugin delta RSS 13.3MB / plugin delta CPU 35ms / OpenClaw import 84ms / activate 0.3ms |
| Runtime profile | p50 2337ms / command p95 2391ms / max RSS 455.4MB / 3 samples/command |
### OpenClaw Lifecycle Probe
| Phase | p50 | p95 |
| -------------------------- | ----- | ------ |
| Import (`full`) | 84ms | 88.6ms |
| Activate (`full:register`) | 0.3ms | 1.2ms |
### Top Discovered Issues
| Severity | Class | Fixture | Code | Decision | Title |
| -------- | ----------------- | ---------------- | ------------------------ | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| 🔴 P0 | live-issue | codex-app-server | sdk-export-missing | core-compat-adapter | [codex-app-server: plugin SDK import aliases are missing from target package exports](reports/crabpot-issues.md#p0-live-issues) |
| 🔴 P0 | live-issue | hyperspell | unknown-hook-name | core-compat-adapter | [hyperspell: fixture uses a hook missing from target OpenClaw](reports/crabpot-issues.md#p0-live-issues) |
| 🟠 P1 | compat-gap | a2a-gateway | missing-compat-record | core-compat-adapter | [a2a-gateway: compat-dependent behavior lacks registry coverage](reports/crabpot-issues.md#compat-gaps) |
| 🟠 P1 | inspector-gap | a2a-gateway | registration-capture-gap | inspector-follow-up | [a2a-gateway: runtime registrations need capture before contract judgment](reports/crabpot-issues.md#inspector-proof-gaps) |
| 🟠 P1 | compat-gap | agentchat | missing-compat-record | core-compat-adapter | [agentchat: compat-dependent behavior lacks registry coverage](reports/crabpot-issues.md#compat-gaps) |
| 🟠 P1 | compat-gap | clawmetry | missing-compat-record | core-compat-adapter | [clawmetry: compat-dependent behavior lacks registry coverage](reports/crabpot-issues.md#compat-gaps) |
| 🟠 P1 | inspector-gap | clawmetry | registration-capture-gap | inspector-follow-up | [clawmetry: runtime registrations need capture before contract judgment](reports/crabpot-issues.md#inspector-proof-gaps) |
| 🟠 P1 | upstream-metadata | clawmetry | reserved-sdk-import | plugin-upstream-fix | [clawmetry: plugin imports reserved bundled-plugin SDK compatibility subpaths](reports/crabpot-issues.md#upstream-metadata-issues) |
| 🟠 P1 | compat-gap | codex-app-server | missing-compat-record | core-compat-adapter | [codex-app-server: compat-dependent behavior lacks registry coverage](reports/crabpot-issues.md#compat-gaps) |
| 🟠 P1 | compat-gap | codex-app-server | missing-compat-record | core-compat-adapter | [codex-app-server: compat-dependent behavior lacks registry coverage](reports/crabpot-issues.md#compat-gaps) |
| Severity | Class | Fixture | Code | Decision | Title |
| -------- | ------------- | ----------------- | ------------------------ | ------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| 🟠 P1 | compat-gap | clawmetry | sdk-export-missing | core-compat-adapter | [clawmetry: plugin SDK import aliases are missing from target package exports](reports/crabpot-issues.md#compat-gaps) |
| 🟠 P1 | inspector-gap | honcho | conversation-access-hook | inspector-follow-up | [honcho: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-gaps) |
| 🟠 P1 | compat-gap | honcho | sdk-export-missing | core-compat-adapter | [honcho: plugin SDK import aliases are missing from target package exports](reports/crabpot-issues.md#compat-gaps) |
| 🟠 P1 | inspector-gap | kitchen-sink | before-tool-call-probe | inspector-follow-up | [kitchen-sink: before_tool_call needs terminal/block/approval probes](reports/crabpot-issues.md#inspector-proof-gaps) |
| 🟠 P1 | inspector-gap | kitchen-sink | conversation-access-hook | inspector-follow-up | [kitchen-sink: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-gaps) |
| 🟠 P1 | inspector-gap | llm-trace-phoenix | conversation-access-hook | inspector-follow-up | [llm-trace-phoenix: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-gaps) |
| 🟠 P1 | inspector-gap | memory-lancedb | conversation-access-hook | inspector-follow-up | [memory-lancedb: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-gaps) |
| 🟠 P1 | inspector-gap | memory-tencentdb | conversation-access-hook | inspector-follow-up | [memory-tencentdb: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-gaps) |
| 🟠 P1 | inspector-gap | memos-cloud | conversation-access-hook | inspector-follow-up | [memos-cloud: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-gaps) |
| 🟠 P1 | inspector-gap | nemoclaw | before-tool-call-probe | inspector-follow-up | [nemoclaw: before_tool_call needs terminal/block/approval probes](reports/crabpot-issues.md#inspector-proof-gaps) |
<!-- crabpot-summary:end -->
## What this tests
@ -135,11 +143,13 @@ For deeper review, open the reports in this order:
| Isolated install/build/capture commands Crabpot would run | `npm run workspace:plan` | `reports/crabpot-workspace-plan.md` |
| Results from opt-in isolated fixture execution | `npm run execution:report` | `reports/crabpot-execution-results.md` |
| Boot time and RSS against the target OpenClaw registry surface | `npm run profile` | `reports/crabpot-runtime-profile.md` |
| README dashboard refresh from all generated JSON reports | `npm run readme:summary` | `README.md` |
| README dashboard refresh from all generated JSON reports | `npm run readme:summary` | `README.md`, `reports/crabpot-dashboard-data.json` |
Each Markdown report has a matching JSON file beside it for CI, dashboards, and
future inspector tooling. The JSON is the contract; the Markdown is the review
surface.
surface. `reports/crabpot-dashboard-data.json` is the compact machine-readable
dashboard card used to compare `crab-beta` and `crab-development` against
`main`.
Use the main compatibility report like this:

View File

@ -22,6 +22,27 @@
"reasonIncludes": "includeProviderCapabilities=true",
"decision": "allowed-blocked",
"until": "provider capability harness lands"
},
{
"id": "live-network-tool-probes",
"seam": "registerTool",
"reasonIncludes": "live network access",
"decision": "allowed-blocked",
"until": "network-capability harness lands"
},
{
"id": "generated-surface-hook-stubs",
"seam": "*",
"reasonIncludes": "captured hook has no callable handler",
"decision": "allowed-blocked",
"until": "generated surface runtime harness lands"
},
{
"id": "generated-surface-registration-stubs",
"seam": "*",
"reasonIncludes": "captured registration has no supported callable probe",
"decision": "allowed-blocked",
"until": "generated surface runtime harness lands"
}
],
"expectedWarnings": [
@ -41,6 +62,16 @@
},
"fixtureSets": {
"smoke": ["wecom", "llm-trace-phoenix", "codex-app-server", "opik-openclaw"],
"openclaw-beta": [
"brave-plugin",
"codex",
"diagnostics-prometheus",
"google-meet",
"diffs",
"memory-lancedb",
"openclaw-qqbot",
"whatsapp"
],
"sdk-alias": ["codex-app-server"],
"side-effect-review": ["hasdata", "llm-trace-phoenix", "web-search-plus"],
"build": ["agentchat", "clawmetry", "opik-openclaw"]

View File

@ -124,6 +124,26 @@
},
"why": "Opik trace exporter covering LLM spans, tool spans, subagent spans, stale trace cleanup, CLI setup, and persisted tool-result sanitization."
},
{
"id": "openclaw-telemetry",
"name": "OpenClaw Telemetry",
"repo": "https://github.com/knostic/openclaw-telemetry.git",
"path": "plugins/openclaw-telemetry",
"priority": "high",
"seams": ["diagnostics", "llm-observer", "tool-runtime", "message-lifecycle", "gateway-service"],
"expect": {
"hooks": [
"before_tool_call",
"after_tool_call",
"message_received",
"message_sent",
"before_agent_start",
"agent_end"
],
"registrations": ["registerService"]
},
"why": "Telemetry fixture covering high-volume lifecycle hooks, tool-call capture, message events, JSONL/syslog sinks, redaction, rate limiting, and integrity hash chains."
},
{
"id": "lossless-claw",
"name": "Lossless Claw (LCM)",
@ -157,12 +177,11 @@
"repo": "https://github.com/hyperspell/hyperspell-openclaw.git",
"path": "plugins/hyperspell",
"priority": "high",
"seams": ["memory-runtime", "prompt-mutation", "session-lifecycle", "file-watch", "cli"],
"seams": ["dynamic-tool", "external-memory", "cli"],
"expect": {
"hooks": ["before_agent_start", "after_compaction", "session_end", "agent_end", "file_changed"],
"registrations": ["registerCli", "registerCommand", "registerService", "registerTool"]
"registrations": ["registerCli", "registerCommand", "registerTool"]
},
"why": "Memory and context fixture covering legacy startup hooks, compaction/session hooks, file-change sync, CLI setup, command handlers, and tool-backed external memory search/write."
"why": "Memory and context fixture covering CLI setup, command handlers, and tool-backed external memory search/write."
},
{
"id": "honcho",
@ -318,6 +337,741 @@
},
"why": "Credential-free generated fixture covering the public OpenClaw plugin API surface across hooks, registrars, provider capabilities, setup metadata, manifest contracts, and SDK import compatibility."
},
{
"id": "bluebubbles",
"name": "OpenClaw BlueBubbles channel plugin",
"package": {
"name": "@openclaw/bluebubbles",
"tag": "latest"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/bluebubbles",
"ref": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
},
"path": "plugins/bluebubbles",
"priority": "medium",
"seams": [
"channel",
"account-auth",
"media",
"macos-bridge",
"npm-artifact"
],
"why": "Official OpenClaw BlueBubbles channel package covering macOS/iMessage bridge assumptions, account auth, media-capable channel metadata, and npm artifact packaging from the monorepo.",
"expect": {
"registrations": [
"registerChannel"
]
}
},
{
"id": "diagnostics-otel",
"name": "OpenClaw diagnostics OpenTelemetry exporter",
"package": {
"name": "@openclaw/diagnostics-otel",
"tag": "latest"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/diagnostics-otel",
"ref": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
},
"path": "plugins/diagnostics-otel",
"priority": "medium",
"seams": [
"diagnostics",
"telemetry",
"otel-export",
"service",
"npm-artifact"
],
"expect": {
"registrations": [
"registerService"
]
},
"why": "Official OpenClaw OpenTelemetry diagnostics package covering service registration, telemetry exporter setup, and npm package metadata mapped back to the monorepo source."
},
{
"id": "discord",
"name": "OpenClaw Discord channel plugin",
"package": {
"name": "@openclaw/discord",
"tag": "latest"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/discord",
"ref": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
},
"path": "plugins/discord",
"priority": "medium",
"seams": [
"channel",
"subagent-routing",
"message-policy",
"account-auth",
"npm-artifact"
],
"expect": {
"hooks": [
"subagent_delivery_target",
"subagent_ended",
"subagent_spawning"
],
"registrations": [
"registerChannel"
]
},
"why": "Official OpenClaw Discord channel package covering subagent routing hooks, message policy, account auth, and npm artifact packaging from the monorepo."
},
{
"id": "lobster",
"name": "Lobster workflow tool plugin (typed pipelines + resumable approvals)",
"package": {
"name": "@openclaw/lobster",
"tag": "latest"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/lobster",
"ref": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
},
"path": "plugins/lobster",
"priority": "medium",
"seams": [
"tool",
"workflow",
"approval",
"async-job",
"npm-artifact"
],
"expect": {
"registrations": [
"registerTool"
]
},
"why": "Official Lobster workflow package covering typed pipeline tools, resumable approval semantics, manifest tool contracts, and npm artifact packaging."
},
{
"id": "matrix",
"name": "OpenClaw Matrix channel plugin",
"package": {
"name": "@openclaw/matrix",
"tag": "latest",
"artifactSource": "source-pack"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/matrix",
"ref": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
},
"path": "plugins/matrix",
"priority": "medium",
"seams": [
"channel",
"gateway-method",
"subagent-routing",
"cli"
],
"expect": {
"registrations": [
"registerChannel"
]
},
"why": "Official bundled OpenClaw Matrix channel package covering CLI setup, gateway methods, and subagent routing hooks; Crabpot source-packs it from the OpenClaw monorepo instead of requiring a separate npm dist-tag."
},
{
"id": "msteams",
"name": "OpenClaw Microsoft Teams channel plugin",
"package": {
"name": "@openclaw/msteams",
"tag": "latest"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/msteams",
"ref": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
},
"path": "plugins/msteams",
"priority": "medium",
"seams": [
"channel",
"account-auth",
"enterprise-chat",
"message-policy",
"npm-artifact"
],
"expect": {
"registrations": [
"registerChannel"
]
},
"why": "Official Microsoft Teams channel package covering enterprise chat auth, channel factory metadata, message policy, and npm artifact packaging."
},
{
"id": "nextcloud-talk",
"name": "OpenClaw Nextcloud Talk channel plugin",
"package": {
"name": "@openclaw/nextcloud-talk",
"tag": "latest"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/nextcloud-talk",
"ref": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
},
"path": "plugins/nextcloud-talk",
"priority": "medium",
"seams": [
"channel",
"account-auth",
"self-hosted-chat",
"message-policy",
"npm-artifact"
],
"expect": {
"registrations": [
"registerChannel"
]
},
"why": "Official Nextcloud Talk channel package covering self-hosted chat setup, account auth, channel factory metadata, and npm artifact packaging."
},
{
"id": "nostr",
"name": "OpenClaw Nostr channel plugin for NIP-04 encrypted DMs",
"package": {
"name": "@openclaw/nostr",
"tag": "latest"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/nostr",
"ref": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
},
"path": "plugins/nostr",
"priority": "medium",
"seams": [
"channel",
"encrypted-dm",
"http-routes",
"account-auth",
"npm-artifact"
],
"expect": {
"registrations": [
"registerChannel",
"registerHttpRoute"
]
},
"why": "Official Nostr channel package covering encrypted DM channel behavior, HTTP route registration, account auth, and npm artifact packaging."
},
{
"id": "voice-call",
"name": "OpenClaw voice-call plugin",
"package": {
"name": "@openclaw/voice-call",
"tag": "latest"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/voice-call",
"ref": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
},
"path": "plugins/voice-call",
"priority": "medium",
"seams": [
"tool",
"gateway-method",
"service",
"config-migration",
"cli"
],
"expect": {
"registrations": [
"registerCli",
"registerGatewayMethod",
"registerService",
"registerTool"
]
},
"why": "Official voice-call package covering gateway methods, service lifecycle, tool registration, config migration, CLI setup, and npm artifact packaging."
},
{
"id": "zalo",
"name": "OpenClaw Zalo channel plugin",
"package": {
"name": "@openclaw/zalo",
"tag": "latest"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/zalo",
"ref": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
},
"path": "plugins/zalo",
"priority": "medium",
"seams": [
"channel",
"account-auth",
"media",
"message-policy",
"npm-artifact"
],
"expect": {
"registrations": [
"registerChannel"
]
},
"why": "Official Zalo channel package covering account auth, media-capable channel metadata, channel factory registration, and npm artifact packaging."
},
{
"id": "zalouser",
"name": "OpenClaw Zalo Personal Account plugin via native zca-js integration",
"package": {
"name": "@openclaw/zalouser",
"tag": "latest"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/zalouser",
"ref": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
},
"path": "plugins/zalouser",
"priority": "medium",
"seams": [
"channel",
"native-integration",
"account-auth",
"tool",
"npm-artifact"
],
"expect": {
"registrations": [
"registerChannel",
"registerTool"
]
},
"why": "Official Zalo personal account package covering native zca-js integration, channel factory registration, tool contracts, and npm artifact packaging."
},
{
"id": "feishu",
"name": "OpenClaw Feishu/Lark channel plugin (community maintained by @m1heng)",
"package": {
"name": "@openclaw/feishu",
"tag": "latest"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/feishu",
"ref": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
},
"path": "plugins/feishu",
"priority": "medium",
"seams": [
"channel",
"subagent-routing",
"tool",
"account-auth",
"npm-artifact"
],
"expect": {
"registrations": [
"registerChannel",
"registerTool"
]
},
"why": "Official Feishu/Lark channel package covering subagent routing hooks, account auth, tool contracts, and npm artifact packaging."
},
{
"id": "tlon",
"name": "OpenClaw Tlon/Urbit channel plugin",
"package": {
"name": "@openclaw/tlon",
"tag": "latest"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/tlon",
"ref": "35a57bc940833a6c1f594b2308e349e5ee0148db"
},
"path": "plugins/tlon",
"priority": "medium",
"seams": [
"channel",
"federated-network",
"account-auth",
"tool",
"npm-artifact"
],
"expect": {
"registrations": [
"registerChannel"
]
},
"why": "Official Tlon/Urbit channel package covering federated-network account setup, channel factory registration, tool contracts, and npm artifact packaging."
},
{
"id": "twitch",
"name": "OpenClaw Twitch channel plugin",
"package": {
"name": "@openclaw/twitch",
"tag": "latest"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/twitch",
"ref": "35a57bc940833a6c1f594b2308e349e5ee0148db"
},
"path": "plugins/twitch",
"priority": "medium",
"seams": [
"channel",
"streaming-chat",
"account-auth",
"message-policy",
"npm-artifact"
],
"why": "Official Twitch channel package covering streaming-chat channel metadata, account auth, message policy, and npm artifact packaging.",
"expect": {
"registrations": [
"registerChannel"
]
}
},
{
"id": "mattermost",
"name": "OpenClaw Mattermost channel plugin",
"package": {
"name": "@openclaw/mattermost",
"tag": "latest",
"artifactSource": "source-pack"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/mattermost",
"ref": "35a57bc940833a6c1f594b2308e349e5ee0148db"
},
"path": "plugins/mattermost",
"priority": "medium",
"seams": [
"channel",
"http-routes",
"self-hosted-chat",
"account-auth"
],
"expect": {
"registrations": [
"registerChannel"
]
},
"why": "Official bundled Mattermost channel package covering self-hosted chat auth, HTTP route registration, and channel factory metadata; Crabpot source-packs it from the OpenClaw monorepo instead of requiring a separate npm dist-tag."
},
{
"id": "synology-chat",
"name": "Synology Chat channel plugin for OpenClaw",
"package": {
"name": "@openclaw/synology-chat",
"tag": "latest"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/synology-chat",
"ref": "b19a6ee62db342d400a233903adcaf17f67246c5"
},
"path": "plugins/synology-chat",
"priority": "medium",
"seams": [
"channel",
"self-hosted-chat",
"account-auth",
"message-policy",
"npm-artifact"
],
"expect": {
"registrations": [
"registerChannel"
]
},
"why": "Official Synology Chat channel package covering self-hosted chat setup, channel factory registration, account auth, and npm artifact packaging."
},
{
"id": "brave-plugin",
"name": "OpenClaw Brave plugin",
"package": {
"name": "@openclaw/brave-plugin",
"tag": "beta"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/brave",
"ref": "a22f06504376e7203a2bec8fde094b7cdcb06c02"
},
"path": "plugins/brave-plugin",
"priority": "medium",
"seams": [
"provider-capability",
"web-search-provider",
"external-api",
"env-auth",
"npm-artifact"
],
"expect": {
"registrations": [
"definePluginEntry",
"registerWebSearchProvider"
],
"manifestContracts": [
"webSearchProviders"
]
},
"why": "Official Brave search package covering web search provider registration, external API/env auth metadata, manifest provider contracts, and npm artifact packaging."
},
{
"id": "codex",
"name": "OpenClaw Codex harness and model provider plugin",
"package": {
"name": "@openclaw/codex",
"tag": "beta"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/codex",
"ref": "a22f06504376e7203a2bec8fde094b7cdcb06c02"
},
"path": "plugins/codex",
"priority": "medium",
"seams": [
"agent-harness",
"provider-capability",
"media-understanding",
"migration-provider",
"channel-bridge"
],
"expect": {
"hooks": [
"inbound_claim"
],
"registrations": [
"definePluginEntry",
"registerAgentHarness",
"registerCommand",
"registerMediaUnderstandingProvider",
"registerMigrationProvider",
"registerProvider"
],
"manifestContracts": [
"mediaUnderstandingProviders",
"migrationProviders"
]
},
"why": "Official Codex package covering agent harness registration, model provider wiring, media understanding, migrations, inbound claims, and npm artifact packaging."
},
{
"id": "diagnostics-prometheus",
"name": "OpenClaw diagnostics Prometheus exporter",
"package": {
"name": "@openclaw/diagnostics-prometheus",
"tag": "beta"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/diagnostics-prometheus",
"ref": "f4ef1bf04e9637958418428db0ff9e75e6698159"
},
"path": "plugins/diagnostics-prometheus",
"priority": "medium",
"seams": [
"diagnostics",
"telemetry",
"prometheus-export",
"http-routes",
"service"
],
"expect": {
"registrations": [
"definePluginEntry",
"registerHttpRoute",
"registerService"
]
},
"why": "Official Prometheus diagnostics package covering service lifecycle, metrics HTTP routes, telemetry export, and monorepo-backed npm packaging."
},
{
"id": "google-meet",
"name": "OpenClaw Google Meet participant plugin",
"package": {
"name": "@openclaw/google-meet",
"tag": "beta"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/google-meet",
"ref": "f4ef1bf04e9637958418428db0ff9e75e6698159"
},
"path": "plugins/google-meet",
"priority": "medium",
"seams": [
"tool",
"gateway-method",
"node-host-command",
"meeting",
"cli"
],
"expect": {
"registrations": [
"definePluginEntry",
"registerCli",
"registerGatewayMethod",
"registerNodeHostCommand",
"registerTool"
]
},
"why": "Official Google Meet package covering meeting tools, gateway methods, node host commands, CLI setup, and npm artifact packaging."
},
{
"id": "diffs",
"name": "OpenClaw diff viewer plugin",
"package": {
"name": "@openclaw/diffs",
"tag": "beta"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/diffs",
"ref": "355680f1f21af3782c8ffbb5f3cec281dc584af6"
},
"path": "plugins/diffs",
"priority": "medium",
"seams": [
"tool",
"http-routes",
"prompt-mutation",
"diff-viewer",
"npm-artifact"
],
"expect": {
"hooks": [
"before_prompt_build"
],
"registrations": [
"definePluginEntry",
"registerHttpRoute",
"registerTool"
]
},
"why": "Official diff viewer package covering prompt mutation, HTTP route UI surface, tool registration, manifest tool contracts, and npm artifact packaging."
},
{
"id": "memory-lancedb",
"name": "OpenClaw LanceDB-backed long-term memory plugin with auto-recall/capture",
"package": {
"name": "@openclaw/memory-lancedb",
"tag": "beta"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/memory-lancedb",
"ref": "355680f1f21af3782c8ffbb5f3cec281dc584af6"
},
"path": "plugins/memory-lancedb",
"priority": "medium",
"seams": [
"memory-runtime",
"prompt-mutation",
"session-lifecycle",
"vector-store",
"cli"
],
"expect": {
"hooks": [
"agent_end",
"before_prompt_build",
"session_end"
],
"registrations": [
"definePluginEntry",
"registerCli",
"registerService",
"registerTool"
]
},
"why": "Official LanceDB memory package covering automatic recall/capture hooks, vector-store lifecycle, service/CLI setup, tool contracts, and npm artifact packaging."
},
{
"id": "openclaw-qqbot",
"name": "OpenClaw QQ Bot channel plugin",
"package": {
"name": "@openclaw/qqbot",
"tag": "beta"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/qqbot",
"ref": "355680f1f21af3782c8ffbb5f3cec281dc584af6"
},
"path": "plugins/openclaw-qqbot",
"priority": "medium",
"seams": [
"channel",
"command",
"tool",
"media",
"npm-artifact"
],
"expect": {
"registrations": [
"registerCommand",
"registerTool"
]
},
"why": "Official OpenClaw QQ Bot npm package covering command/tool registration, channel manifest metadata, media-capable messaging, and monorepo source mapping without replacing the external QQBot fixture."
},
{
"id": "whatsapp",
"name": "OpenClaw WhatsApp channel plugin",
"package": {
"name": "@openclaw/whatsapp",
"tag": "beta"
},
"source": {
"repo": "https://github.com/openclaw/openclaw.git",
"path": "extensions/whatsapp",
"ref": "355680f1f21af3782c8ffbb5f3cec281dc584af6"
},
"path": "plugins/whatsapp",
"priority": "medium",
"seams": [
"channel",
"account-auth",
"media",
"message-policy",
"npm-artifact"
],
"why": "Official WhatsApp channel package covering account auth, media-capable channel metadata, message policy, and npm artifact packaging from the monorepo."
},
{
"id": "nemoclaw",
"name": "NemoClaw",
"repo": "https://github.com/NVIDIA/NemoClaw.git",
"path": "plugins/nemoclaw",
"subdir": "nemoclaw",
"priority": "high",
"seams": [
"provider-capability",
"prompt-mutation",
"security-audit",
"process-spawn",
"command",
"config-schema"
],
"expect": {
"hooks": ["before_agent_start", "before_tool_call"],
"registrations": ["registerCommand", "registerProvider"]
},
"why": "NVIDIA OpenShell fixture covering sandbox-aware runtime context injection, managed inference provider registration, slash-command migration/status flows, OpenShell CLI probing, and secret-blocking tool-call policy."
},
{
"id": "memory-tencentdb",
"name": "TencentDB Agent Memory",
@ -382,7 +1136,7 @@
"priority": "high",
"seams": ["channel", "media", "command", "account-auth", "sdk-compat"],
"expect": {
"registrations": ["registerChannel", "registerTool", "registerCommand"]
"registrations": ["createChatChannelPlugin", "registerTool", "registerCommand"]
},
"why": "NPM-pinned Yuanbao channel fixture covering bot auth, media messaging, built-in commands, command queue state compatibility, and root SDK imports."
},
@ -395,11 +1149,11 @@
},
"path": "plugins/openclaw-weixin",
"priority": "high",
"seams": ["channel", "media", "account-auth", "pairing", "sdk-subpaths"],
"seams": ["channel", "media", "account-auth", "pairing", "sdk-subpaths", "catalog-discovery"],
"expect": {
"registrations": ["registerChannel"]
},
"why": "NPM-pinned Weixin channel fixture covering scan-login pairing, account isolation, media upload/download, and narrow SDK subpath usage."
"why": "NPM-pinned Weixin channel fixture covering scan-login pairing, account isolation, media upload/download, narrow SDK subpath usage, and npm-installed channel catalog discovery."
},
{
"id": "lightclawbot",
@ -416,6 +1170,49 @@
},
"why": "NPM-pinned channel fixture covering cron/proactive messaging metadata, file upload tooling, bundled Socket.IO dependencies, and built JavaScript-only plugin packages."
},
{
"id": "telnyx-sms",
"name": "Telnyx SMS",
"repo": "https://github.com/team-telnyx/telnyx-openclaw-sms-channel.git",
"path": "plugins/telnyx-sms",
"priority": "medium",
"seams": ["channel", "media", "account-auth", "http-routes", "cli"],
"expect": {
"registrations": ["defineChannelPluginEntry", "registerCli", "registerHttpRoute"]
},
"why": "Telnyx-owned SMS/MMS channel fixture covering channel setup entries, multi-account phone-number auth, inbound webhook verification, HTTP route registration, MMS handling, and auto-exposure flows."
},
{
"id": "clawrouter",
"name": "ClawRouter",
"repo": "https://github.com/BlockRunAI/ClawRouter.git",
"path": "plugins/clawrouter",
"priority": "medium",
"seams": ["provider-capability", "gateway-service", "process-spawn", "command", "dynamic-tool"],
"expect": {
"registrations": [
"registerProvider",
"registerImageGenerationProvider",
"registerMusicGenerationProvider",
"registerVideoGenerationProvider",
"registerWebSearchProvider",
"registerTool",
"registerCommand",
"registerService"
]
},
"execution": {
"blockedFailures": [
{
"id": "clawrouter-live-network-tools",
"seam": "registerTool",
"errorIncludes": "fetch failed",
"reason": "captured tool requires live network access"
}
]
},
"why": "Model-router fixture covering provider registration, generation/search provider capabilities, proxy sidecar lifecycle, x402 wallet/auth setup, command registration, partner tool surfacing, and config mutation edge cases."
},
{
"id": "memu-engine",
"name": "MemU Engine",

View File

@ -34,7 +34,18 @@
"properties": {
"name": { "type": "string", "minLength": 1 },
"version": { "type": "string", "minLength": 1 },
"tag": { "type": "string", "minLength": 1 }
"tag": { "type": "string", "minLength": 1 },
"artifactSource": { "enum": ["npm", "source-pack"] }
}
},
"source": {
"type": "object",
"required": ["repo", "path", "ref"],
"additionalProperties": false,
"properties": {
"repo": { "type": "string", "pattern": "^https://github.com/.+\\.git$" },
"path": { "type": "string", "pattern": "^[^/].*" },
"ref": { "type": "string", "minLength": 1 }
}
},
"path": { "type": "string", "pattern": "^plugins/[a-z0-9][a-z0-9-]*$" },

View File

@ -1,6 +1,6 @@
{
"name": "crabpot",
"version": "0.1.3",
"version": "0.1.4",
"private": true,
"description": "Compatibility testbed for OpenClaw community plugins and plugin seams.",
"type": "module",
@ -9,6 +9,7 @@
},
"scripts": {
"check": "node scripts/run-static-suite.mjs --policy dashboard",
"check:contracts": "node scripts/check-openclaw-plugin-contracts.mjs",
"check:release": "node scripts/run-static-suite.mjs --policy release",
"ci:policy": "node scripts/check-ci-policy.mjs",
"ci:summary": "node scripts/write-ci-summary.mjs",
@ -24,6 +25,7 @@
"fixtures:inspect": "node scripts/inspect-fixtures.mjs",
"fixtures:sync": "node scripts/sync-fixtures.mjs --materialize",
"import:profile": "node scripts/import-loop-profile.mjs",
"import:profile:openclaw": "node scripts/import-loop-profile.mjs --openclaw ../openclaw",
"plugin-inspector:smoke": "node scripts/run-plugin-inspector-smoke.mjs --check",
"profile": "node scripts/profile-contract-runtime.mjs",
"profile:compare": "node scripts/compare-runtime-profile.mjs",

View File

@ -4,7 +4,9 @@ Crabpot keeps external plugins under `plugins/`. Most fixtures are git
submodules. Npm-only fixtures use committed `plugins/<id>/package.json` shim
packages with one exact dependency pin; `node scripts/sync-fixtures.mjs --materialize`
unpacks the package payload into ignored `plugins/<id>/.crabpot-package/`
directories for static inspection. The parent repo owns only pins, fixture
directories for static inspection. OpenClaw monorepo npm fixtures also declare
`source.repo`, `source.path`, and `source.ref` so report evidence links point at
the owning `openclaw/openclaw` source tree. The parent repo owns only pins, fixture
metadata, generated reports, and tests. Plugin source stays upstream-owned.
Dependabot watches `.gitmodules` with the `gitsubmodule` ecosystem and the npm
@ -32,6 +34,8 @@ directory: "/plugins/<id>"
- Npm fixtures use `crabpot.config.json` for package identity and
`plugins/<id>/package.json` for the exact dependency pin; materialization
unpacks the package into ignored `plugins/<id>/.crabpot-package/`.
- Monorepo npm fixtures add `source.repo`, `source.path`, and `source.ref`;
generated report links map packed payload paths back to the owning source path.
- `scripts/inspect-fixtures.mjs` reads source statically and checks expected
hooks, registrations, manifests, packages, and SDK imports.
- `scripts/generate-report.mjs` compares observed plugin seams with the target
@ -52,19 +56,47 @@ directory: "/plugins/<id>"
| `mcp-adapter` | `plugins/mcp-adapter` | git | high | dynamic tool, MCP transport, schema passthrough | Dynamic tool discovery from MCP servers with stdio/http transports and schema passthrough. |
| `llm-trace-phoenix` | `plugins/llm-trace-phoenix` | git | high | LLM observer, telemetry | Small sharp fixture for `llm_input`/`llm_output` access and raw prompt/output privacy boundaries. |
| `opik-openclaw` | `plugins/opik-openclaw` | git | high | LLM observer, tools, subagents | Trace exporter covering LLM spans, tool spans, subagent spans, cleanup, CLI setup, and persisted tool-result sanitization. |
| `openclaw-telemetry` | `plugins/openclaw-telemetry` | git | high | diagnostics, lifecycle hooks, telemetry | Telemetry fixture covering lifecycle hooks, tool-call capture, message events, JSONL/syslog sinks, redaction, rate limiting, and integrity hashes. |
| `lossless-claw` | `plugins/lossless-claw` | git | high | context engine, prompt mutation, lifecycle | Lossless context-management fixture covering context engine registration, DAG compaction tools, prompt assembly hooks, session cleanup, and gateway lifecycle. |
| `connectclaw` | `plugins/connectclaw` | git | high | dynamic tool, gateway service, Hono relay | Contacts/messaging plugin with dynamic tool factories, commands, polling service wakeups, and a Hono relay package. |
| `hyperspell` | `plugins/hyperspell` | git | high | memory runtime, prompt mutation, file watch | Memory/context fixture covering startup, compaction/session hooks, file-change sync, CLI, commands, and memory tools. |
| `honcho` | `plugins/honcho` | git | high | memory runtime, gateway lifecycle, subagents | Memory-runtime fixture covering plugin-entry aliases, memory runtime/prompt sections, gateway lifecycle, subagent capture, and external memory tools. |
| `composio` | `plugins/composio` | git | high | dynamic tool, MCP, external API | NPM-installed dynamic tool fixture for Composio/MCP, prompt context injection, CLI setup, external API auth, and remote tool catalogs. |
| `kitchen-sink` | `plugins/kitchen-sink` | git | high | plugin API surface, hooks, manifest contracts | Credential-free generated fixture covering hooks, registrars, provider capabilities, setup metadata, manifest contracts, and SDK import compatibility. |
| `bluebubbles` | `plugins/bluebubbles` | npm + source | medium | channel, account auth, media | Official OpenClaw BlueBubbles channel package covering macOS/iMessage bridge assumptions, account auth, media-capable channel metadata, and npm artifact packaging from the monorepo. |
| `diagnostics-otel` | `plugins/diagnostics-otel` | npm + source | medium | diagnostics, telemetry, otel export | Official OpenClaw OpenTelemetry diagnostics package covering service registration, telemetry exporter setup, and npm package metadata mapped back to the monorepo source. |
| `discord` | `plugins/discord` | npm + source | medium | channel, subagent routing, message policy | Official OpenClaw Discord channel package covering subagent routing hooks, message policy, account auth, and npm artifact packaging from the monorepo. |
| `lobster` | `plugins/lobster` | npm + source | medium | tool, workflow, approval | Official Lobster workflow package covering typed pipeline tools, resumable approval semantics, manifest tool contracts, and npm artifact packaging. |
| `matrix` | `plugins/matrix` | npm + source | medium | channel, gateway method, subagent routing | Official OpenClaw Matrix channel package covering CLI setup, gateway methods, subagent routing hooks, and monorepo-backed npm packaging. |
| `msteams` | `plugins/msteams` | npm + source | medium | channel, account auth, enterprise chat | Official Microsoft Teams channel package covering enterprise chat auth, channel factory metadata, message policy, and npm artifact packaging. |
| `nextcloud-talk` | `plugins/nextcloud-talk` | npm + source | medium | channel, account auth, self hosted chat | Official Nextcloud Talk channel package covering self-hosted chat setup, account auth, channel factory metadata, and npm artifact packaging. |
| `nostr` | `plugins/nostr` | npm + source | medium | channel, encrypted dm, http routes | Official Nostr channel package covering encrypted DM channel behavior, HTTP route registration, account auth, and npm artifact packaging. |
| `voice-call` | `plugins/voice-call` | npm + source | medium | tool, gateway method, service | Official voice-call package covering gateway methods, service lifecycle, tool registration, config migration, CLI setup, and npm artifact packaging. |
| `zalo` | `plugins/zalo` | npm + source | medium | channel, account auth, media | Official Zalo channel package covering account auth, media-capable channel metadata, channel factory registration, and npm artifact packaging. |
| `zalouser` | `plugins/zalouser` | npm + source | medium | channel, native integration, account auth | Official Zalo personal account package covering native zca-js integration, channel factory registration, tool contracts, and npm artifact packaging. |
| `feishu` | `plugins/feishu` | npm + source | medium | channel, subagent routing, tool | Official Feishu/Lark channel package covering subagent routing hooks, account auth, tool contracts, and npm artifact packaging. |
| `tlon` | `plugins/tlon` | npm + source | medium | channel, federated network, account auth | Official Tlon/Urbit channel package covering federated-network account setup, channel factory registration, tool contracts, and npm artifact packaging. |
| `twitch` | `plugins/twitch` | npm + source | medium | channel, streaming chat, account auth | Official Twitch channel package covering streaming-chat channel metadata, account auth, message policy, and npm artifact packaging. |
| `mattermost` | `plugins/mattermost` | npm + source | medium | channel, http routes, self hosted chat | Official Mattermost channel package covering self-hosted chat auth, HTTP route registration, channel factory metadata, and npm artifact packaging. |
| `synology-chat` | `plugins/synology-chat` | npm + source | medium | channel, self hosted chat, account auth | Official Synology Chat channel package covering self-hosted chat setup, channel factory registration, account auth, and npm artifact packaging. |
| `brave-plugin` | `plugins/brave-plugin` | npm + source | medium | provider capability, web search provider, external api | Official Brave search package covering web search provider registration, external API/env auth metadata, manifest provider contracts, and npm artifact packaging. |
| `codex` | `plugins/codex` | npm + source | medium | agent harness, provider capability, media understanding | Official Codex package covering agent harness registration, model provider wiring, media understanding, migrations, inbound claims, and npm artifact packaging. |
| `diagnostics-prometheus` | `plugins/diagnostics-prometheus` | npm + source | medium | diagnostics, telemetry, prometheus export | Official Prometheus diagnostics package covering service lifecycle, metrics HTTP routes, telemetry export, and monorepo-backed npm packaging. |
| `google-meet` | `plugins/google-meet` | npm + source | medium | tool, gateway method, node host command | Official Google Meet package covering meeting tools, gateway methods, node host commands, CLI setup, and npm artifact packaging. |
| `diffs` | `plugins/diffs` | npm + source | medium | tool, http routes, prompt mutation | Official diff viewer package covering prompt mutation, HTTP route UI surface, tool registration, manifest tool contracts, and npm artifact packaging. |
| `memory-lancedb` | `plugins/memory-lancedb` | npm + source | medium | memory runtime, prompt mutation, session lifecycle | Official LanceDB memory package covering automatic recall/capture hooks, vector-store lifecycle, service/CLI setup, tool contracts, and npm artifact packaging. |
| `openclaw-qqbot` | `plugins/openclaw-qqbot` | npm + source | medium | channel, command, tool | Official OpenClaw QQ Bot npm package covering command/tool registration, channel manifest metadata, media-capable messaging, and monorepo source mapping without replacing the external QQBot fixture. |
| `whatsapp` | `plugins/whatsapp` | npm + source | medium | channel, account auth, media | Official WhatsApp channel package covering account auth, media-capable channel metadata, message policy, and npm artifact packaging from the monorepo. |
| `nemoclaw` | `plugins/nemoclaw` | git | high | provider capability, runtime context, security policy | NVIDIA OpenShell fixture covering sandbox-aware runtime context injection, managed inference provider registration, slash-command migration/status flows, OpenShell CLI probing, and secret-blocking tool-call policy. |
| `memory-tencentdb` | `plugins/memory-tencentdb` | npm | high | memory runtime, vector store, lifecycle | TencentDB memory fixture covering recall/capture hooks, SQLite/TCVDB storage, cleanup lifecycle, and seed/export CLI commands. |
| `ddingtalk` | `plugins/ddingtalk` | git | high | channel, media, webhook | DingTalk channel fixture covering enterprise IM auth, channel setup, media handling, and webhook-style ingress. |
| `dingtalk-connector` | `plugins/dingtalk-connector` | git | high | channel, streaming, gateway methods | Official DingTalk connector fixture covering Stream-mode ingress, AI Card replies, multi-account access policy, gateway RPC methods, and packaged channel skills. |
| `mocrane-wecom` | `plugins/mocrane-wecom` | git | high | channel, MCP, SDK compat | Latest @mocrane/wecom-backed fixture covering WeCom routing, MCP tooling, skill bundles, HTTP routes, and SDK shims. |
| `yuanbao` | `plugins/yuanbao` | npm | high | channel, command, SDK compat | Yuanbao bot fixture covering auth, media, tools, command queue compatibility, and root SDK imports. |
| `openclaw-weixin` | `plugins/openclaw-weixin` | npm | high | channel, pairing, SDK subpaths | Weixin channel fixture covering scan-login pairing, account isolation, media, and narrow SDK subpath usage. |
| `openclaw-weixin` | `plugins/openclaw-weixin` | npm | high | channel, pairing, SDK subpaths, catalog discovery | Weixin channel fixture covering scan-login pairing, account isolation, media, narrow SDK subpath usage, and npm-installed channel catalog discovery. |
| `lightclawbot` | `plugins/lightclawbot` | npm | medium | channel, cron, bundled deps | Channel fixture covering cron/proactive messaging metadata, upload tooling, bundled Socket.IO dependencies, and JS-only packages. |
| `telnyx-sms` | `plugins/telnyx-sms` | git | medium | channel, HTTP routes, media | Telnyx-owned SMS/MMS channel fixture covering channel setup, multi-account auth, webhook verification, route registration, and auto-exposure flows. |
| `clawrouter` | `plugins/clawrouter` | git | medium | provider capability, proxy, commands | Model-router fixture covering provider registration, generation/search capabilities, sidecar lifecycle, x402 wallet setup, commands, and partner tools. |
| `memu-engine` | `plugins/memu-engine` | git | medium | memory runtime, Python sidecar | Memory tool fixture with a Python sidecar, session ingestion, filesystem storage migration, and local memory data layout assumptions. |
| `secureclaw` | `plugins/secureclaw` | git | medium | security audit, config hardening, gateway lifecycle | Security fixture covering gateway-start scanning, config/credential hardening, filesystem audit behavior, and CLI remediation/reporting. |
| `memos-cloud` | `plugins/memos-cloud` | git | medium | memory runtime, legacy hooks, external API | Cloud memory fixture covering legacy `registerHook`, startup/session-end hooks, config UI, env/config precedence, and MemOS API calls. |
@ -100,6 +132,7 @@ directory: "/plugins/<id>"
6. Add a fixture entry to `crabpot.config.json` with:
- `id`, `name`, `path`, and optional `subdir`
- exactly one of `repo` or `package: { name, tag }`
- optional `source: { repo, path, ref }` for npm packages published from a monorepo
- `priority`
- seam labels
- expected hooks, registrations, or manifest contracts

33
plugins/bluebubbles/package-lock.json generated Normal file
View File

@ -0,0 +1,33 @@
{
"name": "@crabpot/fixture-bluebubbles",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@crabpot/fixture-bluebubbles",
"version": "0.0.0",
"dependencies": {
"@openclaw/bluebubbles": "2026.3.13"
}
},
"node_modules/@openclaw/bluebubbles": {
"version": "2026.3.13",
"resolved": "https://registry.npmjs.org/@openclaw/bluebubbles/-/bluebubbles-2026.3.13.tgz",
"integrity": "sha512-yfLftVZDZFMjJJGbg1SObi4G81lEHXnlNXnT4Ezx0y0UDw3y11NYj21qNMaz+K1DUYNBQomFVLS6NZ6c74RF7g==",
"deprecated": "Deprecated: obsolete OpenClaw plugin package version. Use current OpenClaw bundled/plugin distribution; newer npm releases may return later.",
"dependencies": {
"zod": "^4.3.6"
}
},
"node_modules/zod": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/zod/-/zod-4.4.2.tgz",
"integrity": "sha512-IynmDyxsEsb9RKzO3J9+4SxXnl2FTFSzNBaKKaMV6tsSk0rw9gYw9gs+JFCq/qk2LCZ78KDwyj+Z289TijSkUw==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
}
}
}

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-bluebubbles",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw BlueBubbles channel plugin.",
"dependencies": {
"@openclaw/bluebubbles": "2026.3.13"
},
"crabpot": {
"fixture": "bluebubbles",
"source": "npm",
"package": "@openclaw/bluebubbles",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/bluebubbles",
"sourceRef": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
}
}

20
plugins/brave-plugin/package-lock.json generated Normal file
View File

@ -0,0 +1,20 @@
{
"name": "@crabpot/fixture-brave-plugin",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@crabpot/fixture-brave-plugin",
"version": "0.0.0",
"dependencies": {
"@openclaw/brave-plugin": "2026.5.1-beta.1"
}
},
"node_modules/@openclaw/brave-plugin": {
"version": "2026.5.1-beta.1",
"resolved": "https://registry.npmjs.org/@openclaw/brave-plugin/-/brave-plugin-2026.5.1-beta.1.tgz",
"integrity": "sha512-lPHMp61vX7+q5k6E+qhzJJaUXh+ZtzP4ummCj7t0lR+x7cRqohezSZxTJLM2GlC3UNsnLSxjf30HpvduloOAhA=="
}
}
}

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-brave-plugin",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw Brave plugin.",
"dependencies": {
"@openclaw/brave-plugin": "2026.5.1-beta.1"
},
"crabpot": {
"fixture": "brave-plugin",
"source": "npm",
"package": "@openclaw/brave-plugin",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/brave",
"sourceRef": "a22f06504376e7203a2bec8fde094b7cdcb06c02"
}
}

@ -1 +1 @@
Subproject commit d6b8c926d0aadcf4f428843f3757ce0fb0825143
Subproject commit 7b03924c02a50ddb096407e823e48a6d369247a7

1
plugins/clawrouter Submodule

@ -0,0 +1 @@
Subproject commit bb72bddae4da7fd285e4804a5716f2a226a6f103

3720
plugins/codex/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-codex",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw Codex harness and model provider plugin.",
"dependencies": {
"@openclaw/codex": "2026.5.1-beta.1"
},
"crabpot": {
"fixture": "codex",
"source": "npm",
"package": "@openclaw/codex",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/codex",
"sourceRef": "a22f06504376e7203a2bec8fde094b7cdcb06c02"
}
}

@ -1 +1 @@
Subproject commit 6cd516650168890e9b850064afaaa5fe24df5950
Subproject commit 7a4e2646e914de075435b3837123cc03c3edae36

1464
plugins/diagnostics-otel/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-diagnostics-otel",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw diagnostics OpenTelemetry exporter.",
"dependencies": {
"@openclaw/diagnostics-otel": "2026.3.13"
},
"crabpot": {
"fixture": "diagnostics-otel",
"source": "npm",
"package": "@openclaw/diagnostics-otel",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/diagnostics-otel",
"sourceRef": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
}
}

View File

@ -0,0 +1,20 @@
{
"name": "@crabpot/fixture-diagnostics-prometheus",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@crabpot/fixture-diagnostics-prometheus",
"version": "0.0.0",
"dependencies": {
"@openclaw/diagnostics-prometheus": "2026.5.1-beta.2"
}
},
"node_modules/@openclaw/diagnostics-prometheus": {
"version": "2026.5.1-beta.2",
"resolved": "https://registry.npmjs.org/@openclaw/diagnostics-prometheus/-/diagnostics-prometheus-2026.5.1-beta.2.tgz",
"integrity": "sha512-R0iQAXYT3OFNBDqUxOFnH3TUHVWBvSJqbMC3rZvjdfBJP5q1dEYsoogOJF7wwzACARRaZP3GvOZ9RTwdgqmmdw=="
}
}
}

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-diagnostics-prometheus",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw diagnostics Prometheus exporter.",
"dependencies": {
"@openclaw/diagnostics-prometheus": "2026.5.1-beta.2"
},
"crabpot": {
"fixture": "diagnostics-prometheus",
"source": "npm",
"package": "@openclaw/diagnostics-prometheus",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/diagnostics-prometheus",
"sourceRef": "f4ef1bf04e9637958418428db0ff9e75e6698159"
}
}

657
plugins/diffs/package-lock.json generated Normal file
View File

@ -0,0 +1,657 @@
{
"name": "@crabpot/fixture-diffs",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@crabpot/fixture-diffs",
"version": "0.0.0",
"dependencies": {
"@openclaw/diffs": "2026.5.1-beta.1"
}
},
"node_modules/@openclaw/diffs": {
"version": "2026.5.1-beta.1",
"resolved": "https://registry.npmjs.org/@openclaw/diffs/-/diffs-2026.5.1-beta.1.tgz",
"integrity": "sha512-OSb+QCBJ+vUY/GGjRsiB+UiTi58m02nR/dVdOjlrLKCQkh7Q5rewDzCgACtwMW9gqjvh4TMZH2xRQccwM9FhDw==",
"dependencies": {
"@pierre/diffs": "1.1.20",
"@pierre/theme": "0.0.29",
"playwright-core": "1.59.1",
"typebox": "1.1.37"
}
},
"node_modules/@pierre/diffs": {
"version": "1.1.20",
"resolved": "https://registry.npmjs.org/@pierre/diffs/-/diffs-1.1.20.tgz",
"integrity": "sha512-lLi+3sLCm3QDd5/aLO9pw+WbF6UzhrkWm2oTZ5WZJTGemOyUNRJ4DDhcEKmVusu4C4bXx9Nssh6fF+wQcapb5w==",
"license": "apache-2.0",
"dependencies": {
"@pierre/theme": "0.0.28",
"@shikijs/transformers": "^3.0.0",
"diff": "8.0.3",
"hast-util-to-html": "9.0.5",
"lru_map": "0.4.1",
"shiki": "^3.0.0"
},
"peerDependencies": {
"react": "^18.3.1 || ^19.0.0",
"react-dom": "^18.3.1 || ^19.0.0"
}
},
"node_modules/@pierre/diffs/node_modules/@pierre/theme": {
"version": "0.0.28",
"resolved": "https://registry.npmjs.org/@pierre/theme/-/theme-0.0.28.tgz",
"integrity": "sha512-1j/H/fECBuc9dEvntdWI+l435HZapw+RCJTlqCA6BboQ5TjlnE005j/ROWutXIs8aq5OAc82JI2Kwk4A1WWBgw==",
"license": "MIT",
"engines": {
"vscode": "^1.0.0"
}
},
"node_modules/@pierre/theme": {
"version": "0.0.29",
"resolved": "https://registry.npmjs.org/@pierre/theme/-/theme-0.0.29.tgz",
"integrity": "sha512-ZXce2GikoXHNThHdkaxA2X4ISnzSTL/LmKDYaTwqP1bQqENs+l7B+PheF9RsUWgx4GbphW5GU1i1vO4ttAzCUA==",
"license": "MIT",
"engines": {
"vscode": "^1.0.0"
}
},
"node_modules/@shikijs/core": {
"version": "3.23.0",
"resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.23.0.tgz",
"integrity": "sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==",
"license": "MIT",
"dependencies": {
"@shikijs/types": "3.23.0",
"@shikijs/vscode-textmate": "^10.0.2",
"@types/hast": "^3.0.4",
"hast-util-to-html": "^9.0.5"
}
},
"node_modules/@shikijs/engine-javascript": {
"version": "3.23.0",
"resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.23.0.tgz",
"integrity": "sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==",
"license": "MIT",
"dependencies": {
"@shikijs/types": "3.23.0",
"@shikijs/vscode-textmate": "^10.0.2",
"oniguruma-to-es": "^4.3.4"
}
},
"node_modules/@shikijs/engine-oniguruma": {
"version": "3.23.0",
"resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.23.0.tgz",
"integrity": "sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==",
"license": "MIT",
"dependencies": {
"@shikijs/types": "3.23.0",
"@shikijs/vscode-textmate": "^10.0.2"
}
},
"node_modules/@shikijs/langs": {
"version": "3.23.0",
"resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.23.0.tgz",
"integrity": "sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==",
"license": "MIT",
"dependencies": {
"@shikijs/types": "3.23.0"
}
},
"node_modules/@shikijs/themes": {
"version": "3.23.0",
"resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.23.0.tgz",
"integrity": "sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==",
"license": "MIT",
"dependencies": {
"@shikijs/types": "3.23.0"
}
},
"node_modules/@shikijs/transformers": {
"version": "3.23.0",
"resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-3.23.0.tgz",
"integrity": "sha512-F9msZVxdF+krQNSdQ4V+Ja5QemeAoTQ2jxt7nJCwhDsdF1JWS3KxIQXA3lQbyKwS3J61oHRUSv4jYWv3CkaKTQ==",
"license": "MIT",
"dependencies": {
"@shikijs/core": "3.23.0",
"@shikijs/types": "3.23.0"
}
},
"node_modules/@shikijs/types": {
"version": "3.23.0",
"resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.23.0.tgz",
"integrity": "sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==",
"license": "MIT",
"dependencies": {
"@shikijs/vscode-textmate": "^10.0.2",
"@types/hast": "^3.0.4"
}
},
"node_modules/@shikijs/vscode-textmate": {
"version": "10.0.2",
"resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz",
"integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==",
"license": "MIT"
},
"node_modules/@types/hast": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
"integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
"license": "MIT",
"dependencies": {
"@types/unist": "*"
}
},
"node_modules/@types/mdast": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
"integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
"license": "MIT",
"dependencies": {
"@types/unist": "*"
}
},
"node_modules/@types/unist": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
"integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
"license": "MIT"
},
"node_modules/@ungap/structured-clone": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
"integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
"license": "ISC"
},
"node_modules/ccount": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
"integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/character-entities-html4": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
"integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/character-entities-legacy": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
"integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/comma-separated-tokens": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
"integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/dequal": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
"integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/devlop": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
"integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
"license": "MIT",
"dependencies": {
"dequal": "^2.0.0"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/diff": {
"version": "8.0.3",
"resolved": "https://registry.npmjs.org/diff/-/diff-8.0.3.tgz",
"integrity": "sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==",
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.3.1"
}
},
"node_modules/hast-util-to-html": {
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz",
"integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==",
"license": "MIT",
"dependencies": {
"@types/hast": "^3.0.0",
"@types/unist": "^3.0.0",
"ccount": "^2.0.0",
"comma-separated-tokens": "^2.0.0",
"hast-util-whitespace": "^3.0.0",
"html-void-elements": "^3.0.0",
"mdast-util-to-hast": "^13.0.0",
"property-information": "^7.0.0",
"space-separated-tokens": "^2.0.0",
"stringify-entities": "^4.0.0",
"zwitch": "^2.0.4"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/hast-util-whitespace": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
"integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
"license": "MIT",
"dependencies": {
"@types/hast": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/html-void-elements": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz",
"integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/lru_map": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.4.1.tgz",
"integrity": "sha512-I+lBvqMMFfqaV8CJCISjI3wbjmwVu/VyOoU7+qtu9d7ioW5klMgsTTiUOUp+DJvfTTzKXoPbyC6YfgkNcyPSOg==",
"license": "MIT"
},
"node_modules/mdast-util-to-hast": {
"version": "13.2.1",
"resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz",
"integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==",
"license": "MIT",
"dependencies": {
"@types/hast": "^3.0.0",
"@types/mdast": "^4.0.0",
"@ungap/structured-clone": "^1.0.0",
"devlop": "^1.0.0",
"micromark-util-sanitize-uri": "^2.0.0",
"trim-lines": "^3.0.0",
"unist-util-position": "^5.0.0",
"unist-util-visit": "^5.0.0",
"vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/micromark-util-character": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
"integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
"funding": [
{
"type": "GitHub Sponsors",
"url": "https://github.com/sponsors/unifiedjs"
},
{
"type": "OpenCollective",
"url": "https://opencollective.com/unified"
}
],
"license": "MIT",
"dependencies": {
"micromark-util-symbol": "^2.0.0",
"micromark-util-types": "^2.0.0"
}
},
"node_modules/micromark-util-encode": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz",
"integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==",
"funding": [
{
"type": "GitHub Sponsors",
"url": "https://github.com/sponsors/unifiedjs"
},
{
"type": "OpenCollective",
"url": "https://opencollective.com/unified"
}
],
"license": "MIT"
},
"node_modules/micromark-util-sanitize-uri": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz",
"integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==",
"funding": [
{
"type": "GitHub Sponsors",
"url": "https://github.com/sponsors/unifiedjs"
},
{
"type": "OpenCollective",
"url": "https://opencollective.com/unified"
}
],
"license": "MIT",
"dependencies": {
"micromark-util-character": "^2.0.0",
"micromark-util-encode": "^2.0.0",
"micromark-util-symbol": "^2.0.0"
}
},
"node_modules/micromark-util-symbol": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
"integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
"funding": [
{
"type": "GitHub Sponsors",
"url": "https://github.com/sponsors/unifiedjs"
},
{
"type": "OpenCollective",
"url": "https://opencollective.com/unified"
}
],
"license": "MIT"
},
"node_modules/micromark-util-types": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz",
"integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==",
"funding": [
{
"type": "GitHub Sponsors",
"url": "https://github.com/sponsors/unifiedjs"
},
{
"type": "OpenCollective",
"url": "https://opencollective.com/unified"
}
],
"license": "MIT"
},
"node_modules/oniguruma-parser": {
"version": "0.12.2",
"resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.2.tgz",
"integrity": "sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==",
"license": "MIT"
},
"node_modules/oniguruma-to-es": {
"version": "4.3.6",
"resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.6.tgz",
"integrity": "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==",
"license": "MIT",
"dependencies": {
"oniguruma-parser": "^0.12.2",
"regex": "^6.1.0",
"regex-recursion": "^6.0.2"
}
},
"node_modules/playwright-core": {
"version": "1.59.1",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.59.1.tgz",
"integrity": "sha512-HBV/RJg81z5BiiZ9yPzIiClYV/QMsDCKUyogwH9p3MCP6IYjUFu/MActgYAvK0oWyV9NlwM3GLBjADyWgydVyg==",
"license": "Apache-2.0",
"bin": {
"playwright-core": "cli.js"
},
"engines": {
"node": ">=18"
}
},
"node_modules/property-information": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz",
"integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/react": {
"version": "19.2.5",
"resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz",
"integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/react-dom": {
"version": "19.2.5",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz",
"integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==",
"license": "MIT",
"peer": true,
"dependencies": {
"scheduler": "^0.27.0"
},
"peerDependencies": {
"react": "^19.2.5"
}
},
"node_modules/regex": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz",
"integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==",
"license": "MIT",
"dependencies": {
"regex-utilities": "^2.3.0"
}
},
"node_modules/regex-recursion": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz",
"integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==",
"license": "MIT",
"dependencies": {
"regex-utilities": "^2.3.0"
}
},
"node_modules/regex-utilities": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz",
"integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==",
"license": "MIT"
},
"node_modules/scheduler": {
"version": "0.27.0",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
"integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
"license": "MIT",
"peer": true
},
"node_modules/shiki": {
"version": "3.23.0",
"resolved": "https://registry.npmjs.org/shiki/-/shiki-3.23.0.tgz",
"integrity": "sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==",
"license": "MIT",
"dependencies": {
"@shikijs/core": "3.23.0",
"@shikijs/engine-javascript": "3.23.0",
"@shikijs/engine-oniguruma": "3.23.0",
"@shikijs/langs": "3.23.0",
"@shikijs/themes": "3.23.0",
"@shikijs/types": "3.23.0",
"@shikijs/vscode-textmate": "^10.0.2",
"@types/hast": "^3.0.4"
}
},
"node_modules/space-separated-tokens": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
"integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/stringify-entities": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
"integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
"license": "MIT",
"dependencies": {
"character-entities-html4": "^2.0.0",
"character-entities-legacy": "^3.0.0"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/trim-lines": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
"integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/typebox": {
"version": "1.1.37",
"resolved": "https://registry.npmjs.org/typebox/-/typebox-1.1.37.tgz",
"integrity": "sha512-jb7jp6KvOvvy5sd+11AfJ0/e0F0AS9RcOXd55oGi2ZnRHIGmFvrTaNF+ZidRmGBmmNTkM5KKl0Z37KzxJ+owEQ==",
"license": "MIT"
},
"node_modules/unist-util-is": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz",
"integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==",
"license": "MIT",
"dependencies": {
"@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/unist-util-position": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
"integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"license": "MIT",
"dependencies": {
"@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/unist-util-stringify-position": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
"integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"license": "MIT",
"dependencies": {
"@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/unist-util-visit": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz",
"integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==",
"license": "MIT",
"dependencies": {
"@types/unist": "^3.0.0",
"unist-util-is": "^6.0.0",
"unist-util-visit-parents": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/unist-util-visit-parents": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz",
"integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==",
"license": "MIT",
"dependencies": {
"@types/unist": "^3.0.0",
"unist-util-is": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/vfile": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
"integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
"license": "MIT",
"dependencies": {
"@types/unist": "^3.0.0",
"vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/vfile-message": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz",
"integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
"license": "MIT",
"dependencies": {
"@types/unist": "^3.0.0",
"unist-util-stringify-position": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/zwitch": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
"integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
}
}
}

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-diffs",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw diff viewer plugin.",
"dependencies": {
"@openclaw/diffs": "2026.5.1-beta.1"
},
"crabpot": {
"fixture": "diffs",
"source": "npm",
"package": "@openclaw/diffs",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/diffs",
"sourceRef": "355680f1f21af3782c8ffbb5f3cec281dc584af6"
}
}

21
plugins/discord/package-lock.json generated Normal file
View File

@ -0,0 +1,21 @@
{
"name": "@crabpot/fixture-discord",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@crabpot/fixture-discord",
"version": "0.0.0",
"dependencies": {
"@openclaw/discord": "2026.3.13"
}
},
"node_modules/@openclaw/discord": {
"version": "2026.3.13",
"resolved": "https://registry.npmjs.org/@openclaw/discord/-/discord-2026.3.13.tgz",
"integrity": "sha512-uYCzMmpYVhFPD0TstMmnTNBk9N3Uk/VsZivjr8V/B7g7ajI5HPgsiHBjCLrTmmJZKsVnauo0pAIx/aBcKejYpQ==",
"deprecated": "Deprecated: obsolete OpenClaw plugin package version. Use current OpenClaw bundled/plugin distribution; newer npm releases may return later."
}
}
}

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-discord",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw Discord channel plugin.",
"dependencies": {
"@openclaw/discord": "2026.3.13"
},
"crabpot": {
"fixture": "discord",
"source": "npm",
"package": "@openclaw/discord",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/discord",
"sourceRef": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
}
}

644
plugins/feishu/package-lock.json generated Normal file
View File

@ -0,0 +1,644 @@
{
"name": "@crabpot/fixture-feishu",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@crabpot/fixture-feishu",
"version": "0.0.0",
"dependencies": {
"@openclaw/feishu": "2026.3.13"
}
},
"node_modules/@larksuiteoapi/node-sdk": {
"version": "1.62.1",
"resolved": "https://registry.npmjs.org/@larksuiteoapi/node-sdk/-/node-sdk-1.62.1.tgz",
"integrity": "sha512-o9oAjv5Ffnp/6iXIJLHrO6N0US/r2ZZy3xmO6ylGegjuVSC05cx0fADA38Dc1h0FV8T9BDK+ariWk84TNMGbKg==",
"license": "MIT",
"dependencies": {
"axios": "~1.13.3",
"lodash.identity": "^3.0.0",
"lodash.merge": "^4.6.2",
"lodash.pickby": "^4.6.0",
"protobufjs": "^7.2.6",
"qs": "^6.14.2",
"ws": "^8.19.0"
}
},
"node_modules/@openclaw/feishu": {
"version": "2026.3.13",
"resolved": "https://registry.npmjs.org/@openclaw/feishu/-/feishu-2026.3.13.tgz",
"integrity": "sha512-D5vPkgGZ9lfCQnDFlGrQN6NCSUYRgYW9k7amW3qlm9zBI4Sp+alRZVqLZ4yZ2eCXHjw9RVp/L75wjJ7NBQyfEw==",
"deprecated": "Deprecated: obsolete OpenClaw plugin package version. Use current OpenClaw bundled/plugin distribution; newer npm releases may return later.",
"dependencies": {
"@larksuiteoapi/node-sdk": "^1.59.0",
"@sinclair/typebox": "0.34.48",
"https-proxy-agent": "^8.0.0",
"zod": "^4.3.6"
}
},
"node_modules/@protobufjs/aspromise": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
"integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==",
"license": "BSD-3-Clause"
},
"node_modules/@protobufjs/base64": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
"integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
"license": "BSD-3-Clause"
},
"node_modules/@protobufjs/codegen": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.5.tgz",
"integrity": "sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==",
"license": "BSD-3-Clause"
},
"node_modules/@protobufjs/eventemitter": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
"integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==",
"license": "BSD-3-Clause"
},
"node_modules/@protobufjs/fetch": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
"integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
"license": "BSD-3-Clause",
"dependencies": {
"@protobufjs/aspromise": "^1.1.1",
"@protobufjs/inquire": "^1.1.0"
}
},
"node_modules/@protobufjs/float": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
"integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==",
"license": "BSD-3-Clause"
},
"node_modules/@protobufjs/inquire": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.1.tgz",
"integrity": "sha512-mnzgDV26ueAvk7rsbt9L7bE0SuAoqyuys/sMMrmVcN5x9VsxpcG3rqAUSgDyLp0UZlmNfIbQ4fHfCtreVBk8Ew==",
"license": "BSD-3-Clause"
},
"node_modules/@protobufjs/path": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
"integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==",
"license": "BSD-3-Clause"
},
"node_modules/@protobufjs/pool": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
"integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==",
"license": "BSD-3-Clause"
},
"node_modules/@protobufjs/utf8": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.1.tgz",
"integrity": "sha512-oOAWABowe8EAbMyWKM0tYDKi8Yaox52D+HWZhAIJqQXbqe0xI/GV7FhLWqlEKreMkfDjshR5FKgi3mnle0h6Eg==",
"license": "BSD-3-Clause"
},
"node_modules/@sinclair/typebox": {
"version": "0.34.48",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
"integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
"license": "MIT"
},
"node_modules/@types/node": {
"version": "25.6.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz",
"integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==",
"license": "MIT",
"dependencies": {
"undici-types": "~7.19.0"
}
},
"node_modules/agent-base": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-8.0.0.tgz",
"integrity": "sha512-QT8i0hCz6C/KQ+KTAbSNwCHDGdmUJl2tp2ZpNlGSWCfhUNVbYG2WLE3MdZGBAgXPV4GAvjGMxo+C1hroyxmZEg==",
"license": "MIT",
"engines": {
"node": ">= 14"
}
},
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
"license": "MIT"
},
"node_modules/axios": {
"version": "1.13.6",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.13.6.tgz",
"integrity": "sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.11",
"form-data": "^4.0.5",
"proxy-from-env": "^1.1.0"
}
},
"node_modules/call-bind-apply-helpers": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
"integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"function-bind": "^1.1.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/call-bound": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
"integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
"get-intrinsic": "^1.3.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"license": "MIT",
"dependencies": {
"delayed-stream": "~1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/debug": {
"version": "4.4.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"license": "MIT",
"dependencies": {
"ms": "^2.1.3"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"license": "MIT",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/dunder-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
"integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.1",
"es-errors": "^1.3.0",
"gopd": "^1.2.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-define-property": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
"integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-errors": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-object-atoms": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
"integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-set-tostringtag": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
"integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.6",
"has-tostringtag": "^1.0.2",
"hasown": "^2.0.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/follow-redirects": {
"version": "1.16.0",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz",
"integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==",
"funding": [
{
"type": "individual",
"url": "https://github.com/sponsors/RubenVerborgh"
}
],
"license": "MIT",
"engines": {
"node": ">=4.0"
},
"peerDependenciesMeta": {
"debug": {
"optional": true
}
}
},
"node_modules/form-data": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
"integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
"license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"es-set-tostringtag": "^2.1.0",
"hasown": "^2.0.2",
"mime-types": "^2.1.12"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/get-intrinsic": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
"integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
"es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
"es-object-atoms": "^1.1.1",
"function-bind": "^1.1.2",
"get-proto": "^1.0.1",
"gopd": "^1.2.0",
"has-symbols": "^1.1.0",
"hasown": "^2.0.2",
"math-intrinsics": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/get-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
"integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
"license": "MIT",
"dependencies": {
"dunder-proto": "^1.0.1",
"es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/gopd": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
"integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-symbols": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
"integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-tostringtag": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
"integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"license": "MIT",
"dependencies": {
"has-symbols": "^1.0.3"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/hasown": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz",
"integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==",
"license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/https-proxy-agent": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-8.0.0.tgz",
"integrity": "sha512-YYeW+iCnAS3xhvj2dvVoWgsbca3RfQy/IlaNHHOtDmU0jMqPI9euIq3Y9BJETdxk16h9NHHCKqp/KB9nIMStCQ==",
"license": "MIT",
"dependencies": {
"agent-base": "8.0.0",
"debug": "^4.3.4"
},
"engines": {
"node": ">= 14"
}
},
"node_modules/lodash.identity": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/lodash.identity/-/lodash.identity-3.0.0.tgz",
"integrity": "sha512-AupTIzdLQxJS5wIYUQlgGyk2XRTfGXA+MCghDHqZk0pzUNYvd3EESS6dkChNauNYVIutcb0dfHw1ri9Q1yPV8Q==",
"license": "MIT"
},
"node_modules/lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
"license": "MIT"
},
"node_modules/lodash.pickby": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz",
"integrity": "sha512-AZV+GsS/6ckvPOVQPXSiFFacKvKB4kOQu6ynt9wz0F3LO4R9Ij4K1ddYsIytDpSgLz88JHd9P+oaLeej5/Sl7Q==",
"license": "MIT"
},
"node_modules/long": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz",
"integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==",
"license": "Apache-2.0"
},
"node_modules/math-intrinsics": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
"integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime-types": {
"version": "2.1.35",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"license": "MIT",
"dependencies": {
"mime-db": "1.52.0"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"license": "MIT"
},
"node_modules/object-inspect": {
"version": "1.13.4",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
"integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/protobufjs": {
"version": "7.5.6",
"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.6.tgz",
"integrity": "sha512-M71sTMB146U3u0di3yup8iM+zv8yPRNQVr1KK4tyBitl3qFvEGucq/rGDRShD2rsJhtN02RJaJ7j5X5hmy8SJg==",
"hasInstallScript": true,
"license": "BSD-3-Clause",
"dependencies": {
"@protobufjs/aspromise": "^1.1.2",
"@protobufjs/base64": "^1.1.2",
"@protobufjs/codegen": "^2.0.5",
"@protobufjs/eventemitter": "^1.1.0",
"@protobufjs/fetch": "^1.1.0",
"@protobufjs/float": "^1.0.2",
"@protobufjs/inquire": "^1.1.1",
"@protobufjs/path": "^1.1.2",
"@protobufjs/pool": "^1.1.0",
"@protobufjs/utf8": "^1.1.1",
"@types/node": ">=13.7.0",
"long": "^5.0.0"
},
"engines": {
"node": ">=12.0.0"
}
},
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
"license": "MIT"
},
"node_modules/qs": {
"version": "6.15.1",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.15.1.tgz",
"integrity": "sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==",
"license": "BSD-3-Clause",
"dependencies": {
"side-channel": "^1.1.0"
},
"engines": {
"node": ">=0.6"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/side-channel": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
"integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"object-inspect": "^1.13.3",
"side-channel-list": "^1.0.0",
"side-channel-map": "^1.0.1",
"side-channel-weakmap": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/side-channel-list": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz",
"integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"object-inspect": "^1.13.4"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/side-channel-map": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
"integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.5",
"object-inspect": "^1.13.3"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/side-channel-weakmap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
"integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.5",
"object-inspect": "^1.13.3",
"side-channel-map": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/undici-types": {
"version": "7.19.2",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz",
"integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==",
"license": "MIT"
},
"node_modules/ws": {
"version": "8.20.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz",
"integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": ">=5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
},
"node_modules/zod": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/zod/-/zod-4.4.2.tgz",
"integrity": "sha512-IynmDyxsEsb9RKzO3J9+4SxXnl2FTFSzNBaKKaMV6tsSk0rw9gYw9gs+JFCq/qk2LCZ78KDwyj+Z289TijSkUw==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
}
}
}

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-feishu",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw Feishu/Lark channel plugin (community maintained by @m1heng).",
"dependencies": {
"@openclaw/feishu": "2026.3.13"
},
"crabpot": {
"fixture": "feishu",
"source": "npm",
"package": "@openclaw/feishu",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/feishu",
"sourceRef": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
}
}

47
plugins/google-meet/package-lock.json generated Normal file
View File

@ -0,0 +1,47 @@
{
"name": "@crabpot/fixture-google-meet",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@crabpot/fixture-google-meet",
"version": "0.0.0",
"dependencies": {
"@openclaw/google-meet": "2026.5.1-beta.2"
}
},
"node_modules/@openclaw/google-meet": {
"version": "2026.5.1-beta.2",
"resolved": "https://registry.npmjs.org/@openclaw/google-meet/-/google-meet-2026.5.1-beta.2.tgz",
"integrity": "sha512-Kfd0V4vrjL4T1XqHVJZKgydI2GdQpH+jziF100a/+rirYK6i7DKIkKJK/i0IFNq5gf90edkzUlyKMlWrZIJXsA==",
"dependencies": {
"commander": "^14.0.3",
"typebox": "1.1.37"
},
"peerDependencies": {
"openclaw": ">=2026.4.25"
},
"peerDependenciesMeta": {
"openclaw": {
"optional": true
}
}
},
"node_modules/commander": {
"version": "14.0.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz",
"integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==",
"license": "MIT",
"engines": {
"node": ">=20"
}
},
"node_modules/typebox": {
"version": "1.1.37",
"resolved": "https://registry.npmjs.org/typebox/-/typebox-1.1.37.tgz",
"integrity": "sha512-jb7jp6KvOvvy5sd+11AfJ0/e0F0AS9RcOXd55oGi2ZnRHIGmFvrTaNF+ZidRmGBmmNTkM5KKl0Z37KzxJ+owEQ==",
"license": "MIT"
}
}
}

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-google-meet",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw Google Meet participant plugin.",
"dependencies": {
"@openclaw/google-meet": "2026.5.1-beta.2"
},
"crabpot": {
"fixture": "google-meet",
"source": "npm",
"package": "@openclaw/google-meet",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/google-meet",
"sourceRef": "f4ef1bf04e9637958418428db0ff9e75e6698159"
}
}

@ -1 +1 @@
Subproject commit f1ac095b5d633d463d57c5cc9735547a73ff9199
Subproject commit e9f01452b781d24b38336ef0738f2c97353c541e

@ -1 +1 @@
Subproject commit 6dc166f89809def9338625de9f8beb0557c75e5c
Subproject commit 6995e72caacdcab1aedc74f20d2118465eaf976e

File diff suppressed because it is too large Load Diff

View File

@ -6,6 +6,9 @@
"dependencies": {
"lightclawbot": "1.1.2"
},
"overrides": {
"@anthropic-ai/sdk": "0.91.1"
},
"crabpot": {
"fixture": "lightclawbot",
"source": "npm",

30
plugins/lobster/package-lock.json generated Normal file
View File

@ -0,0 +1,30 @@
{
"name": "@crabpot/fixture-lobster",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@crabpot/fixture-lobster",
"version": "0.0.0",
"dependencies": {
"@openclaw/lobster": "2026.3.13"
}
},
"node_modules/@openclaw/lobster": {
"version": "2026.3.13",
"resolved": "https://registry.npmjs.org/@openclaw/lobster/-/lobster-2026.3.13.tgz",
"integrity": "sha512-4ezsGiYPANwzEJ0QAZ0TqhaMfhvdBcXupTc4TPqEALk+0lbuO9+y5MQkeDCZKaRGQfKmeX0yhgHhqOWLTdGwww==",
"deprecated": "Deprecated: obsolete OpenClaw plugin package version. Use current OpenClaw bundled/plugin distribution; newer npm releases may return later.",
"dependencies": {
"@sinclair/typebox": "0.34.48"
}
},
"node_modules/@sinclair/typebox": {
"version": "0.34.48",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
"integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
"license": "MIT"
}
}
}

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-lobster",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for Lobster workflow tool plugin (typed pipelines + resumable approvals).",
"dependencies": {
"@openclaw/lobster": "2026.3.13"
},
"crabpot": {
"fixture": "lobster",
"source": "npm",
"package": "@openclaw/lobster",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/lobster",
"sourceRef": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
}
}

@ -1 +1 @@
Subproject commit f2574ed9585ebba46b3574d9d2541444766cab19
Subproject commit 4fc60c925c1eed730a73c6bb62144f7af905687f

4907
plugins/matrix/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-matrix",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw Matrix channel plugin.",
"dependencies": {
"@openclaw/matrix": "2026.3.13"
},
"crabpot": {
"fixture": "matrix",
"source": "npm",
"package": "@openclaw/matrix",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/matrix",
"sourceRef": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
}
}

21
plugins/mattermost/package-lock.json generated Normal file
View File

@ -0,0 +1,21 @@
{
"name": "@crabpot/fixture-mattermost",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@crabpot/fixture-mattermost",
"version": "0.0.0",
"dependencies": {
"@openclaw/mattermost": "2026.2.21"
}
},
"node_modules/@openclaw/mattermost": {
"version": "2026.2.21",
"resolved": "https://registry.npmjs.org/@openclaw/mattermost/-/mattermost-2026.2.21.tgz",
"integrity": "sha512-FUQsyJ3YMRXjFCzjEmtET0hrfUJSDi//GVaAUkixrH6aC0tS/j23rXfaZW4LkT1N+d046jXCl+tmWiieUAa6QA==",
"deprecated": "Deprecated: obsolete OpenClaw plugin package version. Use current OpenClaw bundled/plugin distribution; newer npm releases may return later."
}
}
}

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-mattermost",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw Mattermost channel plugin.",
"dependencies": {
"@openclaw/mattermost": "2026.2.21"
},
"crabpot": {
"fixture": "mattermost",
"source": "npm",
"package": "@openclaw/mattermost",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/mattermost",
"sourceRef": "35a57bc940833a6c1f594b2308e349e5ee0148db"
}
}

518
plugins/memory-lancedb/package-lock.json generated Normal file
View File

@ -0,0 +1,518 @@
{
"name": "@crabpot/fixture-memory-lancedb",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@crabpot/fixture-memory-lancedb",
"version": "0.0.0",
"dependencies": {
"@openclaw/memory-lancedb": "2026.5.1-beta.1"
}
},
"node_modules/@lancedb/lancedb": {
"version": "0.27.2",
"resolved": "https://registry.npmjs.org/@lancedb/lancedb/-/lancedb-0.27.2.tgz",
"integrity": "sha512-JQpZHV5KzUzDI3flYCjtZcfHlEbL8lM54E0NT+jrRYe29aKYegfavvPsAsuZp0VdcMwFMZcpMkaBhjQMo/fwvg==",
"cpu": [
"x64",
"arm64"
],
"license": "Apache-2.0",
"os": [
"darwin",
"linux",
"win32"
],
"dependencies": {
"reflect-metadata": "^0.2.2"
},
"engines": {
"node": ">= 18"
},
"optionalDependencies": {
"@lancedb/lancedb-darwin-arm64": "0.27.2",
"@lancedb/lancedb-linux-arm64-gnu": "0.27.2",
"@lancedb/lancedb-linux-arm64-musl": "0.27.2",
"@lancedb/lancedb-linux-x64-gnu": "0.27.2",
"@lancedb/lancedb-linux-x64-musl": "0.27.2",
"@lancedb/lancedb-win32-arm64-msvc": "0.27.2",
"@lancedb/lancedb-win32-x64-msvc": "0.27.2"
},
"peerDependencies": {
"apache-arrow": ">=15.0.0 <=18.1.0"
}
},
"node_modules/@lancedb/lancedb-darwin-arm64": {
"version": "0.27.2",
"resolved": "https://registry.npmjs.org/@lancedb/lancedb-darwin-arm64/-/lancedb-darwin-arm64-0.27.2.tgz",
"integrity": "sha512-+XM68V/Rou8kKWDnUeKvg9ChKS0zGeQC2sKAop+06Ty4LwIjEGkeYBYrK0vMhZkBN5EFaOjTOp8E8hGQxdFwXA==",
"cpu": [
"arm64"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 18"
}
},
"node_modules/@lancedb/lancedb-linux-arm64-gnu": {
"version": "0.27.2",
"resolved": "https://registry.npmjs.org/@lancedb/lancedb-linux-arm64-gnu/-/lancedb-linux-arm64-gnu-0.27.2.tgz",
"integrity": "sha512-laiTTDeMUTzm7t+t6ME5nNQMDoERjmkeuWAFWekbXiFdmp62Dqu34Lvf2BvpWnKwxLMZ5JcBJFIw32WS8/8Jnw==",
"cpu": [
"arm64"
],
"libc": [
"glibc"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 18"
}
},
"node_modules/@lancedb/lancedb-linux-arm64-musl": {
"version": "0.27.2",
"resolved": "https://registry.npmjs.org/@lancedb/lancedb-linux-arm64-musl/-/lancedb-linux-arm64-musl-0.27.2.tgz",
"integrity": "sha512-bK5Mc50EvwGZaaiym5CoPu8Y4GNSyEEvTQ0dTC2AUIm83qdQu1rGw6kkYtc/rTH/hbvAvPQot4agHDZfMVxfYw==",
"cpu": [
"arm64"
],
"libc": [
"musl"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 18"
}
},
"node_modules/@lancedb/lancedb-linux-x64-gnu": {
"version": "0.27.2",
"resolved": "https://registry.npmjs.org/@lancedb/lancedb-linux-x64-gnu/-/lancedb-linux-x64-gnu-0.27.2.tgz",
"integrity": "sha512-qe+ML0YmPru0o84f33RBHqoNk6zsHBjiXTLKsEBDiiFYKks/XMsrkKy9NQYcTxShBrg/nx/MLzCzd7dihqgNYw==",
"cpu": [
"x64"
],
"libc": [
"glibc"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 18"
}
},
"node_modules/@lancedb/lancedb-linux-x64-musl": {
"version": "0.27.2",
"resolved": "https://registry.npmjs.org/@lancedb/lancedb-linux-x64-musl/-/lancedb-linux-x64-musl-0.27.2.tgz",
"integrity": "sha512-ZpX6Oxn06qvzAdm+D/gNb3SRp/A9lgRAPvPg6nnMmSQk5XamC/hbGO07uK1wwop7nlqXUH/thk4is2y2ieWdTw==",
"cpu": [
"x64"
],
"libc": [
"musl"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 18"
}
},
"node_modules/@lancedb/lancedb-win32-arm64-msvc": {
"version": "0.27.2",
"resolved": "https://registry.npmjs.org/@lancedb/lancedb-win32-arm64-msvc/-/lancedb-win32-arm64-msvc-0.27.2.tgz",
"integrity": "sha512-4ffpFvh49MiUtkdFJOmBytXEbgUPXORphTOuExnJAgT1VAKwQcu4ZzdsgNoK6mumKBaU+pYQU/MedNkgTzx/Lw==",
"cpu": [
"arm64"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 18"
}
},
"node_modules/@lancedb/lancedb-win32-x64-msvc": {
"version": "0.27.2",
"resolved": "https://registry.npmjs.org/@lancedb/lancedb-win32-x64-msvc/-/lancedb-win32-x64-msvc-0.27.2.tgz",
"integrity": "sha512-XlwiI6CK2Gkqq+FFVAStHojao/XjIJpDPTm7Tb9SpLL64IlwGw3yaT2hnWKTm90W4KlSrpfSldPly+s+y4U7JQ==",
"cpu": [
"x64"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 18"
}
},
"node_modules/@openclaw/memory-lancedb": {
"version": "2026.5.1-beta.1",
"resolved": "https://registry.npmjs.org/@openclaw/memory-lancedb/-/memory-lancedb-2026.5.1-beta.1.tgz",
"integrity": "sha512-PRnMSgplR5+xdOuCMERxemdaGiMTYTgg7dSHz/uLo8B54mf3BHcuKxFQ60755Tc1QzGtrzA8MqPElf07Pn0JsQ==",
"dependencies": {
"@lancedb/lancedb": "^0.27.2",
"openai": "^6.35.0",
"typebox": "1.1.37"
}
},
"node_modules/@swc/helpers": {
"version": "0.5.21",
"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.21.tgz",
"integrity": "sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg==",
"license": "Apache-2.0",
"peer": true,
"dependencies": {
"tslib": "^2.8.0"
}
},
"node_modules/@types/command-line-args": {
"version": "5.2.3",
"resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.3.tgz",
"integrity": "sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==",
"license": "MIT",
"peer": true
},
"node_modules/@types/command-line-usage": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.4.tgz",
"integrity": "sha512-BwR5KP3Es/CSht0xqBcUXS3qCAUVXwpRKsV2+arxeb65atasuXG9LykC9Ab10Cw3s2raH92ZqOeILaQbsB2ACg==",
"license": "MIT",
"peer": true
},
"node_modules/@types/node": {
"version": "20.19.39",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.39.tgz",
"integrity": "sha512-orrrD74MBUyK8jOAD/r0+lfa1I2MO6I+vAkmAWzMYbCcgrN4lCrmK52gRFQq/JRxfYPfonkr4b0jcY7Olqdqbw==",
"license": "MIT",
"peer": true,
"dependencies": {
"undici-types": "~6.21.0"
}
},
"node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"license": "MIT",
"peer": true,
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/apache-arrow": {
"version": "18.1.0",
"resolved": "https://registry.npmjs.org/apache-arrow/-/apache-arrow-18.1.0.tgz",
"integrity": "sha512-v/ShMp57iBnBp4lDgV8Jx3d3Q5/Hac25FWmQ98eMahUiHPXcvwIMKJD0hBIgclm/FCG+LwPkAKtkRO1O/W0YGg==",
"license": "Apache-2.0",
"peer": true,
"dependencies": {
"@swc/helpers": "^0.5.11",
"@types/command-line-args": "^5.2.3",
"@types/command-line-usage": "^5.0.4",
"@types/node": "^20.13.0",
"command-line-args": "^5.2.1",
"command-line-usage": "^7.0.1",
"flatbuffers": "^24.3.25",
"json-bignum": "^0.0.3",
"tslib": "^2.6.2"
},
"bin": {
"arrow2csv": "bin/arrow2csv.js"
}
},
"node_modules/array-back": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
"integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=6"
}
},
"node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"license": "MIT",
"peer": true,
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/chalk-template": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz",
"integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==",
"license": "MIT",
"peer": true,
"dependencies": {
"chalk": "^4.1.2"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/chalk/chalk-template?sponsor=1"
}
},
"node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"license": "MIT",
"peer": true,
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"license": "MIT",
"peer": true
},
"node_modules/command-line-args": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz",
"integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==",
"license": "MIT",
"peer": true,
"dependencies": {
"array-back": "^3.1.0",
"find-replace": "^3.0.0",
"lodash.camelcase": "^4.3.0",
"typical": "^4.0.0"
},
"engines": {
"node": ">=4.0.0"
}
},
"node_modules/command-line-usage": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.4.tgz",
"integrity": "sha512-85UdvzTNx/+s5CkSgBm/0hzP80RFHAa7PsfeADE5ezZF3uHz3/Tqj9gIKGT9PTtpycc3Ua64T0oVulGfKxzfqg==",
"license": "MIT",
"peer": true,
"dependencies": {
"array-back": "^6.2.2",
"chalk-template": "^0.4.0",
"table-layout": "^4.1.1",
"typical": "^7.3.0"
},
"engines": {
"node": ">=12.20.0"
}
},
"node_modules/command-line-usage/node_modules/array-back": {
"version": "6.2.3",
"resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.3.tgz",
"integrity": "sha512-SGDvmg6QTYiTxCBkYVmThcoa67uLl35pyzRHdpCGBOcqFy6BtwnphoFPk7LhJshD+Yk1Kt35WGWeZPTgwR4Fhw==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=12.17"
}
},
"node_modules/command-line-usage/node_modules/typical": {
"version": "7.3.0",
"resolved": "https://registry.npmjs.org/typical/-/typical-7.3.0.tgz",
"integrity": "sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=12.17"
}
},
"node_modules/find-replace": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz",
"integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==",
"license": "MIT",
"peer": true,
"dependencies": {
"array-back": "^3.0.1"
},
"engines": {
"node": ">=4.0.0"
}
},
"node_modules/flatbuffers": {
"version": "24.12.23",
"resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-24.12.23.tgz",
"integrity": "sha512-dLVCAISd5mhls514keQzmEG6QHmUUsNuWsb4tFafIUwvvgDjXhtfAYSKOzt5SWOy+qByV5pbsDZ+Vb7HUOBEdA==",
"license": "Apache-2.0",
"peer": true
},
"node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=8"
}
},
"node_modules/json-bignum": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/json-bignum/-/json-bignum-0.0.3.tgz",
"integrity": "sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg==",
"peer": true,
"engines": {
"node": ">=0.8"
}
},
"node_modules/lodash.camelcase": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
"integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
"license": "MIT",
"peer": true
},
"node_modules/openai": {
"version": "6.35.0",
"resolved": "https://registry.npmjs.org/openai/-/openai-6.35.0.tgz",
"integrity": "sha512-L/skwIGnt5xQZHb0UfTu9uAUKbis3ehKypOuJKi20QvG7UStV6C8IC3myGYHcdiF4kms/bAvOJ9UqqNWqi8x/Q==",
"license": "Apache-2.0",
"bin": {
"openai": "bin/cli"
},
"peerDependencies": {
"ws": "^8.18.0",
"zod": "^3.25 || ^4.0"
},
"peerDependenciesMeta": {
"ws": {
"optional": true
},
"zod": {
"optional": true
}
}
},
"node_modules/reflect-metadata": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz",
"integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==",
"license": "Apache-2.0"
},
"node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"license": "MIT",
"peer": true,
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/table-layout": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/table-layout/-/table-layout-4.1.1.tgz",
"integrity": "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==",
"license": "MIT",
"peer": true,
"dependencies": {
"array-back": "^6.2.2",
"wordwrapjs": "^5.1.0"
},
"engines": {
"node": ">=12.17"
}
},
"node_modules/table-layout/node_modules/array-back": {
"version": "6.2.3",
"resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.3.tgz",
"integrity": "sha512-SGDvmg6QTYiTxCBkYVmThcoa67uLl35pyzRHdpCGBOcqFy6BtwnphoFPk7LhJshD+Yk1Kt35WGWeZPTgwR4Fhw==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=12.17"
}
},
"node_modules/tslib": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"license": "0BSD",
"peer": true
},
"node_modules/typebox": {
"version": "1.1.37",
"resolved": "https://registry.npmjs.org/typebox/-/typebox-1.1.37.tgz",
"integrity": "sha512-jb7jp6KvOvvy5sd+11AfJ0/e0F0AS9RcOXd55oGi2ZnRHIGmFvrTaNF+ZidRmGBmmNTkM5KKl0Z37KzxJ+owEQ==",
"license": "MIT"
},
"node_modules/typical": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz",
"integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=8"
}
},
"node_modules/undici-types": {
"version": "6.21.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
"integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
"license": "MIT",
"peer": true
},
"node_modules/wordwrapjs": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.1.tgz",
"integrity": "sha512-0yweIbkINJodk27gX9LBGMzyQdBDan3s/dEAiwBOj+Mf0PPyWL6/rikalkv8EeD0E8jm4o5RXEOrFTP3NXbhJg==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=12.17"
}
}
}
}

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-memory-lancedb",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw LanceDB-backed long-term memory plugin with auto-recall/capture.",
"dependencies": {
"@openclaw/memory-lancedb": "2026.5.1-beta.1"
},
"crabpot": {
"fixture": "memory-lancedb",
"source": "npm",
"package": "@openclaw/memory-lancedb",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/memory-lancedb",
"sourceRef": "355680f1f21af3782c8ffbb5f3cec281dc584af6"
}
}

@ -1 +1 @@
Subproject commit 03fcc33c5fd285971d4b3dbaa8bbb31cb727db7c
Subproject commit e931499a2589af06ee543ce07df2bdda29ac8085

1404
plugins/msteams/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-msteams",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw Microsoft Teams channel plugin.",
"dependencies": {
"@openclaw/msteams": "2026.3.13"
},
"crabpot": {
"fixture": "msteams",
"source": "npm",
"package": "@openclaw/msteams",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/msteams",
"sourceRef": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
}
}

1
plugins/nemoclaw Submodule

@ -0,0 +1 @@
Subproject commit 3351fbdd4eb7d9b80ec471545083956327da2b10

33
plugins/nextcloud-talk/package-lock.json generated Normal file
View File

@ -0,0 +1,33 @@
{
"name": "@crabpot/fixture-nextcloud-talk",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@crabpot/fixture-nextcloud-talk",
"version": "0.0.0",
"dependencies": {
"@openclaw/nextcloud-talk": "2026.3.13"
}
},
"node_modules/@openclaw/nextcloud-talk": {
"version": "2026.3.13",
"resolved": "https://registry.npmjs.org/@openclaw/nextcloud-talk/-/nextcloud-talk-2026.3.13.tgz",
"integrity": "sha512-zw5uy5FZd6PFp2LqrAR9R9Pn610DHHHbk1p5ZlIadCyW5ECuXDYsEpUzJpcL0P7MN5vCMOkVL+5QDbKGB6R4gQ==",
"deprecated": "Deprecated: obsolete OpenClaw plugin package version. Use current OpenClaw bundled/plugin distribution; newer npm releases may return later.",
"dependencies": {
"zod": "^4.3.6"
}
},
"node_modules/zod": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/zod/-/zod-4.4.2.tgz",
"integrity": "sha512-IynmDyxsEsb9RKzO3J9+4SxXnl2FTFSzNBaKKaMV6tsSk0rw9gYw9gs+JFCq/qk2LCZ78KDwyj+Z289TijSkUw==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
}
}
}

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-nextcloud-talk",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw Nextcloud Talk channel plugin.",
"dependencies": {
"@openclaw/nextcloud-talk": "2026.3.13"
},
"crabpot": {
"fixture": "nextcloud-talk",
"source": "npm",
"package": "@openclaw/nextcloud-talk",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/nextcloud-talk",
"sourceRef": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
}
}

138
plugins/nostr/package-lock.json generated Normal file
View File

@ -0,0 +1,138 @@
{
"name": "@crabpot/fixture-nostr",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@crabpot/fixture-nostr",
"version": "0.0.0",
"dependencies": {
"@openclaw/nostr": "2026.3.13"
}
},
"node_modules/@noble/ciphers": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-2.1.1.tgz",
"integrity": "sha512-bysYuiVfhxNJuldNXlFEitTVdNnYUc+XNJZd7Qm2a5j1vZHgY+fazadNFWFaMK/2vye0JVlxV3gHmC0WDfAOQw==",
"license": "MIT",
"engines": {
"node": ">= 20.19.0"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@noble/curves": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@noble/curves/-/curves-2.0.1.tgz",
"integrity": "sha512-vs1Az2OOTBiP4q0pwjW5aF0xp9n4MxVrmkFBxc6EKZc6ddYx5gaZiAsZoq0uRRXWbi3AT/sBqn05eRPtn1JCPw==",
"license": "MIT",
"dependencies": {
"@noble/hashes": "2.0.1"
},
"engines": {
"node": ">= 20.19.0"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@noble/hashes": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.0.1.tgz",
"integrity": "sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==",
"license": "MIT",
"engines": {
"node": ">= 20.19.0"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@openclaw/nostr": {
"version": "2026.3.13",
"resolved": "https://registry.npmjs.org/@openclaw/nostr/-/nostr-2026.3.13.tgz",
"integrity": "sha512-5KLRCPbQ/K5O7Qk7yFDTr/MeJI73SHYnRN3vA6Te3IbfWiCrcJN8dn3r/ZdZF6IGyZI3McNnmR622xo0AiDs8w==",
"deprecated": "Deprecated: obsolete OpenClaw plugin package version. Use current OpenClaw bundled/plugin distribution; newer npm releases may return later.",
"dependencies": {
"nostr-tools": "^2.23.3",
"zod": "^4.3.6"
}
},
"node_modules/@scure/base": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@scure/base/-/base-2.0.0.tgz",
"integrity": "sha512-3E1kpuZginKkek01ovG8krQ0Z44E3DHPjc5S2rjJw9lZn3KSQOs8S7wqikF/AH7iRanHypj85uGyxk0XAyC37w==",
"license": "MIT",
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@scure/bip32": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-2.0.1.tgz",
"integrity": "sha512-4Md1NI5BzoVP+bhyJaY3K6yMesEFzNS1sE/cP+9nuvE7p/b0kx9XbpDHHFl8dHtufcbdHRUUQdRqLIPHN/s7yA==",
"license": "MIT",
"dependencies": {
"@noble/curves": "2.0.1",
"@noble/hashes": "2.0.1",
"@scure/base": "2.0.0"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@scure/bip39": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-2.0.1.tgz",
"integrity": "sha512-PsxdFj/d2AcJcZDX1FXN3dDgitDDTmwf78rKZq1a6c1P1Nan1X/Sxc7667zU3U+AN60g7SxxP0YCVw2H/hBycg==",
"license": "MIT",
"dependencies": {
"@noble/hashes": "2.0.1",
"@scure/base": "2.0.0"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/nostr-tools": {
"version": "2.23.3",
"resolved": "https://registry.npmjs.org/nostr-tools/-/nostr-tools-2.23.3.tgz",
"integrity": "sha512-AALyt9k8xPdF4UV2mlLJ2mgCn4kpTB0DZ8t2r6wjdUh6anfx2cTVBsHUlo9U0EY/cKC5wcNyiMAmRJV5OVEalA==",
"license": "Unlicense",
"dependencies": {
"@noble/ciphers": "2.1.1",
"@noble/curves": "2.0.1",
"@noble/hashes": "2.0.1",
"@scure/base": "2.0.0",
"@scure/bip32": "2.0.1",
"@scure/bip39": "2.0.1",
"nostr-wasm": "0.1.0"
},
"peerDependencies": {
"typescript": ">=5.0.0"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/nostr-wasm": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/nostr-wasm/-/nostr-wasm-0.1.0.tgz",
"integrity": "sha512-78BTryCLcLYv96ONU8Ws3Q1JzjlAt+43pWQhIl86xZmWeegYCNLPml7yQ+gG3vR6V5h4XGj+TxO+SS5dsThQIA==",
"license": "MIT"
},
"node_modules/zod": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/zod/-/zod-4.4.2.tgz",
"integrity": "sha512-IynmDyxsEsb9RKzO3J9+4SxXnl2FTFSzNBaKKaMV6tsSk0rw9gYw9gs+JFCq/qk2LCZ78KDwyj+Z289TijSkUw==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
}
}
}

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-nostr",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw Nostr channel plugin for NIP-04 encrypted DMs.",
"dependencies": {
"@openclaw/nostr": "2026.3.13"
},
"crabpot": {
"fixture": "nostr",
"source": "npm",
"package": "@openclaw/nostr",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/nostr",
"sourceRef": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
}
}

133
plugins/openclaw-qqbot/package-lock.json generated Normal file
View File

@ -0,0 +1,133 @@
{
"name": "@crabpot/fixture-openclaw-qqbot",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@crabpot/fixture-openclaw-qqbot",
"version": "0.0.0",
"dependencies": {
"@openclaw/qqbot": "2026.5.1-beta.1"
}
},
"node_modules/@eshaz/web-worker": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/@eshaz/web-worker/-/web-worker-1.2.2.tgz",
"integrity": "sha512-WxXiHFmD9u/owrzempiDlBB1ZYqiLnm9s6aPc8AlFQalq2tKmqdmMr9GXOupDgzXtqnBipj8Un0gkIm7Sjf8mw==",
"license": "Apache-2.0"
},
"node_modules/@openclaw/qqbot": {
"version": "2026.5.1-beta.1",
"resolved": "https://registry.npmjs.org/@openclaw/qqbot/-/qqbot-2026.5.1-beta.1.tgz",
"integrity": "sha512-TNG40RLtcvUIqd397YBIUICugtgZ+8jHVyPHt2homG6d5Ola/uVrurkZFcs9mq4JcB0VFhKyXXqXzLGy+GG/Zw==",
"dependencies": {
"@tencent-connect/qqbot-connector": "^1.1.0",
"mpg123-decoder": "^1.0.3",
"silk-wasm": "^3.7.1",
"ws": "^8.20.0",
"zod": "^4.4.1"
},
"peerDependencies": {
"openclaw": ">=2026.4.27"
},
"peerDependenciesMeta": {
"openclaw": {
"optional": true
}
}
},
"node_modules/@tencent-connect/qqbot-connector": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@tencent-connect/qqbot-connector/-/qqbot-connector-1.1.0.tgz",
"integrity": "sha512-3nQ2mdyzPRKpBHjd3QiKZDwNzw1F7fBN+rSq8Xms2gg+JWZR4SY2Zdf+doqTyXdyVjG4Y0QM7IA4U42zT9xxzw==",
"license": "UNLICENSED",
"dependencies": {
"qrcode-terminal": "^0.12"
},
"engines": {
"node": ">=18.0.0"
}
},
"node_modules/@wasm-audio-decoders/common": {
"version": "9.0.7",
"resolved": "https://registry.npmjs.org/@wasm-audio-decoders/common/-/common-9.0.7.tgz",
"integrity": "sha512-WRaUuWSKV7pkttBygml/a6dIEpatq2nnZGFIoPTc5yPLkxL6Wk4YaslPM98OPQvWacvNZ+Py9xROGDtrFBDzag==",
"license": "MIT",
"dependencies": {
"@eshaz/web-worker": "1.2.2",
"simple-yenc": "^1.0.4"
}
},
"node_modules/mpg123-decoder": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/mpg123-decoder/-/mpg123-decoder-1.0.3.tgz",
"integrity": "sha512-+fjxnWigodWJm3+4pndi+KUg9TBojgn31DPk85zEsim7C6s0X5Ztc/hQYdytXkwuGXH+aB0/aEkG40Emukv6oQ==",
"license": "MIT",
"dependencies": {
"@wasm-audio-decoders/common": "9.0.7"
},
"funding": {
"type": "individual",
"url": "https://github.com/sponsors/eshaz"
}
},
"node_modules/qrcode-terminal": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz",
"integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==",
"bin": {
"qrcode-terminal": "bin/qrcode-terminal.js"
}
},
"node_modules/silk-wasm": {
"version": "3.7.1",
"resolved": "https://registry.npmjs.org/silk-wasm/-/silk-wasm-3.7.1.tgz",
"integrity": "sha512-mXPwLRtZxrYV3TZx41jMAeKc80wvmyrcXIcs8HctFxK15Ahz2OJQENYhNgEPeCEOdI6Mbx1NxQsqxzwc3DKerw==",
"license": "MIT",
"engines": {
"node": ">=16.11.0"
}
},
"node_modules/simple-yenc": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/simple-yenc/-/simple-yenc-1.0.4.tgz",
"integrity": "sha512-5gvxpSd79e9a3V4QDYUqnqxeD4HGlhCakVpb6gMnDD7lexJggSBJRBO5h52y/iJrdXRilX9UCuDaIJhSWm5OWw==",
"license": "MIT",
"funding": {
"type": "individual",
"url": "https://github.com/sponsors/eshaz"
}
},
"node_modules/ws": {
"version": "8.20.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz",
"integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": ">=5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
},
"node_modules/zod": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/zod/-/zod-4.4.2.tgz",
"integrity": "sha512-IynmDyxsEsb9RKzO3J9+4SxXnl2FTFSzNBaKKaMV6tsSk0rw9gYw9gs+JFCq/qk2LCZ78KDwyj+Z289TijSkUw==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
}
}
}

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-openclaw-qqbot",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw QQ Bot channel plugin.",
"dependencies": {
"@openclaw/qqbot": "2026.5.1-beta.1"
},
"crabpot": {
"fixture": "openclaw-qqbot",
"source": "npm",
"package": "@openclaw/qqbot",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/qqbot",
"sourceRef": "355680f1f21af3782c8ffbb5f3cec281dc584af6"
}
}

@ -0,0 +1 @@
Subproject commit 86c2458a0dfe82d639c208c5220396feb9d53c45

View File

@ -8,13 +8,13 @@
"name": "@crabpot/fixture-openclaw-weixin",
"version": "0.0.0",
"dependencies": {
"@tencent-weixin/openclaw-weixin": "2.1.10"
"@tencent-weixin/openclaw-weixin": "2.3.1"
}
},
"node_modules/@tencent-weixin/openclaw-weixin": {
"version": "2.1.10",
"resolved": "https://registry.npmjs.org/@tencent-weixin/openclaw-weixin/-/openclaw-weixin-2.1.10.tgz",
"integrity": "sha512-cEG6Iw5g2qqlA+8/TcmV+E8aFUEX0ruxF0+a5LgVy5wv56/qP07KoapfRa7YTRPzhRW5UDaz6zsZQArt/4ZNnA==",
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/@tencent-weixin/openclaw-weixin/-/openclaw-weixin-2.3.1.tgz",
"integrity": "sha512-plOrZq5Oj4YkmP2/yclVnlPuPruUfXxk7BmHfnJFcFPmaXpt9X3gMF1WyQ6ebnEqtCvIpAIsntufgKShZemxCA==",
"license": "MIT",
"dependencies": {
"qrcode-terminal": "0.12.0",

View File

@ -4,7 +4,7 @@
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw Weixin.",
"dependencies": {
"@tencent-weixin/openclaw-weixin": "2.1.10"
"@tencent-weixin/openclaw-weixin": "2.3.1"
},
"crabpot": {
"fixture": "openclaw-weixin",

@ -1 +1 @@
Subproject commit f8987269d3f2121f52ace4f60c80629266c0dfd7
Subproject commit 0f62b10688428f288eaff9b99e0ee7a9334137e7

33
plugins/synology-chat/package-lock.json generated Normal file
View File

@ -0,0 +1,33 @@
{
"name": "@crabpot/fixture-synology-chat",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@crabpot/fixture-synology-chat",
"version": "0.0.0",
"dependencies": {
"@openclaw/synology-chat": "2026.2.22"
}
},
"node_modules/@openclaw/synology-chat": {
"version": "2026.2.22",
"resolved": "https://registry.npmjs.org/@openclaw/synology-chat/-/synology-chat-2026.2.22.tgz",
"integrity": "sha512-MtNiSs5wIDoQ1k/5PH6qRBYkydZTzjjhfp/4RpIiI0q1cBLl8l8qUASvXSDwm8iUxsCgLDizirxgYh3CyHBOqw==",
"deprecated": "Deprecated: obsolete OpenClaw plugin package version. Use current OpenClaw bundled/plugin distribution; newer npm releases may return later.",
"dependencies": {
"zod": "^4.3.6"
}
},
"node_modules/zod": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/zod/-/zod-4.4.2.tgz",
"integrity": "sha512-IynmDyxsEsb9RKzO3J9+4SxXnl2FTFSzNBaKKaMV6tsSk0rw9gYw9gs+JFCq/qk2LCZ78KDwyj+Z289TijSkUw==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
}
}
}

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-synology-chat",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for Synology Chat channel plugin for OpenClaw.",
"dependencies": {
"@openclaw/synology-chat": "2026.2.22"
},
"crabpot": {
"fixture": "synology-chat",
"source": "npm",
"package": "@openclaw/synology-chat",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/synology-chat",
"sourceRef": "b19a6ee62db342d400a233903adcaf17f67246c5"
}
}

1
plugins/telnyx-sms Submodule

@ -0,0 +1 @@
Subproject commit dee567716ca56d49464bf6354393f3656d92a2b3

34
plugins/tlon/package-lock.json generated Normal file
View File

@ -0,0 +1,34 @@
{
"name": "@crabpot/fixture-tlon",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@crabpot/fixture-tlon",
"version": "0.0.0",
"dependencies": {
"@openclaw/tlon": "2026.2.21"
}
},
"node_modules/@openclaw/tlon": {
"version": "2026.2.21",
"resolved": "https://registry.npmjs.org/@openclaw/tlon/-/tlon-2026.2.21.tgz",
"integrity": "sha512-RTm9SFRwabR36jdVm7YZpZcpqf3m+Yu2AsGRsmWLK2qVmz6RLWrv1fWRapirL2LlUYJTEPJkYwanhjrQqssHrg==",
"deprecated": "Deprecated: obsolete OpenClaw plugin package version. Use current OpenClaw bundled/plugin distribution; newer npm releases may return later.",
"dependencies": {
"@urbit/aura": "^3.0.0"
}
},
"node_modules/@urbit/aura": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@urbit/aura/-/aura-3.0.0.tgz",
"integrity": "sha512-N8/FHc/lmlMDCumMuTXyRHCxlov5KZY6unmJ9QR2GOw+OpROZMBsXYGwE+ZMtvN21ql9+Xb8KhGNBj08IrG3Wg==",
"license": "MIT",
"engines": {
"node": ">=16",
"npm": ">=8"
}
}
}
}

17
plugins/tlon/package.json Normal file
View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-tlon",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw Tlon/Urbit channel plugin.",
"dependencies": {
"@openclaw/tlon": "2026.2.21"
},
"crabpot": {
"fixture": "tlon",
"source": "npm",
"package": "@openclaw/tlon",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/tlon",
"sourceRef": "35a57bc940833a6c1f594b2308e349e5ee0148db"
}
}

326
plugins/twitch/package-lock.json generated Normal file
View File

@ -0,0 +1,326 @@
{
"name": "@crabpot/fixture-twitch",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@crabpot/fixture-twitch",
"version": "0.0.0",
"dependencies": {
"@openclaw/twitch": "2026.2.21"
}
},
"node_modules/@d-fischer/cache-decorators": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@d-fischer/cache-decorators/-/cache-decorators-4.0.1.tgz",
"integrity": "sha512-HNYLBLWs/t28GFZZeqdIBqq8f37mqDIFO6xNPof94VjpKvuP6ROqCZGafx88dk5zZUlBfViV9jD8iNNlXfc4CA==",
"license": "MIT",
"dependencies": {
"@d-fischer/shared-utils": "^3.6.3",
"tslib": "^2.6.2"
}
},
"node_modules/@d-fischer/connection": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/@d-fischer/connection/-/connection-10.0.1.tgz",
"integrity": "sha512-CRP/azUPxwWpR4yT8wOQoM9XFliTVWVAJ8h1SlFnVRAgMlPNyg88/vbDEqZ+udtSB5m8uS10XafZxMUcegMBlQ==",
"license": "MIT",
"dependencies": {
"@d-fischer/isomorphic-ws": "^7.0.0",
"@d-fischer/logger": "^4.2.1",
"@d-fischer/shared-utils": "^3.5.0",
"@d-fischer/typed-event-emitter": "^3.3.0",
"@types/node": "^20.19.37",
"@types/ws": "^8.5.4",
"tslib": "^2.4.1",
"ws": "^8.11.0"
},
"funding": {
"url": "https://github.com/sponsors/d-fischer"
}
},
"node_modules/@d-fischer/deprecate": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@d-fischer/deprecate/-/deprecate-2.0.2.tgz",
"integrity": "sha512-wlw3HwEanJFJKctwLzhfOM6LKwR70FPfGZGoKOhWBKyOPXk+3a9Cc6S9zhm6tka7xKtpmfxVIReGUwPnMbIaZg==",
"license": "MIT"
},
"node_modules/@d-fischer/detect-node": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@d-fischer/detect-node/-/detect-node-3.0.1.tgz",
"integrity": "sha512-0Rf3XwTzuTh8+oPZW9SfxTIiL+26RRJ0BRPwj5oVjZFyFKmsj9RGfN2zuTRjOuA3FCK/jYm06HOhwNK+8Pfv8w==",
"license": "MIT"
},
"node_modules/@d-fischer/escape-string-regexp": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/@d-fischer/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
"integrity": "sha512-7eoxnxcto5eVPW5h1T+ePnVFukmI9f/ZR9nlBLh1t3kyzJDUNor2C+YW9H/Terw3YnbZSDgDYrpCJCHtOtAQHw==",
"license": "MIT",
"engines": {
"node": ">=10"
}
},
"node_modules/@d-fischer/isomorphic-ws": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@d-fischer/isomorphic-ws/-/isomorphic-ws-7.0.2.tgz",
"integrity": "sha512-xK+qIJUF0ne3dsjq5Y3BviQ4M+gx9dzkN+dPP7abBMje4YRfow+X9jBgeEoTe5e+Q6+8hI9R0b37Okkk8Vf0hQ==",
"license": "MIT",
"peerDependencies": {
"ws": "^8.2.0"
}
},
"node_modules/@d-fischer/logger": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/@d-fischer/logger/-/logger-4.2.4.tgz",
"integrity": "sha512-TFMZ/SVW8xyQtyJw9Rcuci4betSKy0qbQn2B5+1+72vVXeO8Qb1pYvuwF5qr0vDGundmSWq7W8r19nVPnXXSvA==",
"license": "MIT",
"dependencies": {
"@d-fischer/detect-node": "^3.0.1",
"@d-fischer/shared-utils": "^3.6.1",
"tslib": "^2.5.0"
},
"funding": {
"url": "https://github.com/sponsors/d-fischer"
}
},
"node_modules/@d-fischer/rate-limiter": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@d-fischer/rate-limiter/-/rate-limiter-1.1.0.tgz",
"integrity": "sha512-O5HgACwApyCZhp4JTEBEtbv/W3eAwEkrARFvgWnEsDmXgCMWjIHwohWoHre5BW6IYXFSHBGsuZB/EvNL3942kQ==",
"license": "MIT",
"dependencies": {
"@d-fischer/logger": "^4.2.3",
"@d-fischer/shared-utils": "^3.6.3",
"tslib": "^2.6.2"
},
"funding": {
"url": "https://github.com/sponsors/d-fischer"
}
},
"node_modules/@d-fischer/shared-utils": {
"version": "3.6.4",
"resolved": "https://registry.npmjs.org/@d-fischer/shared-utils/-/shared-utils-3.6.4.tgz",
"integrity": "sha512-BPkVLHfn2Lbyo/ENDBwtEB8JVQ+9OzkjJhUunLaxkw4k59YFlQxUUwlDBejVSFcpQT0t+D3CQlX+ySZnQj0wxw==",
"license": "MIT",
"dependencies": {
"tslib": "^2.4.1"
},
"funding": {
"url": "https://github.com/sponsors/d-fischer"
}
},
"node_modules/@d-fischer/typed-event-emitter": {
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/@d-fischer/typed-event-emitter/-/typed-event-emitter-3.3.3.tgz",
"integrity": "sha512-OvSEOa8icfdWDqcRtjSEZtgJTFOFNgTjje7zaL0+nAtu2/kZtRCSK5wUMrI/aXtCH8o0Qz2vA8UqkhWUTARFQQ==",
"license": "MIT",
"dependencies": {
"tslib": "^2.4.0"
},
"funding": {
"url": "https://github.com/sponsors/d-fischer"
}
},
"node_modules/@openclaw/twitch": {
"version": "2026.2.21",
"resolved": "https://registry.npmjs.org/@openclaw/twitch/-/twitch-2026.2.21.tgz",
"integrity": "sha512-uCtkUVUqj08LMwfBF2E6c0S6Pyu/kvLy/kWelsIqrpMJwzUgFrcsAwVb8YuRdmrQxFzQqZ5QQ8KEbYk7R9orPg==",
"deprecated": "Deprecated: obsolete OpenClaw plugin package version. Use current OpenClaw bundled/plugin distribution; newer npm releases may return later.",
"dependencies": {
"@twurple/api": "^8.0.3",
"@twurple/auth": "^8.0.3",
"@twurple/chat": "^8.0.3",
"zod": "^4.3.6"
}
},
"node_modules/@twurple/api": {
"version": "8.1.3",
"resolved": "https://registry.npmjs.org/@twurple/api/-/api-8.1.3.tgz",
"integrity": "sha512-DTa/VX+h7kciDz3ZBQmrpVy1nPIepRMv4BtldaXKfDERlXRQBt4V2d6KfNn/hdUkRkxJ2Xi8x4PfBFE79VSrBw==",
"license": "MIT",
"dependencies": {
"@d-fischer/cache-decorators": "^4.0.0",
"@d-fischer/detect-node": "^3.0.1",
"@d-fischer/logger": "^4.2.1",
"@d-fischer/rate-limiter": "^1.1.0",
"@d-fischer/shared-utils": "^3.6.1",
"@d-fischer/typed-event-emitter": "^3.3.3",
"@twurple/api-call": "8.1.3",
"@twurple/common": "8.1.3",
"retry": "^0.13.1",
"tslib": "^2.0.3"
},
"funding": {
"url": "https://github.com/sponsors/d-fischer"
},
"peerDependencies": {
"@twurple/auth": "8.1.3"
}
},
"node_modules/@twurple/api-call": {
"version": "8.1.3",
"resolved": "https://registry.npmjs.org/@twurple/api-call/-/api-call-8.1.3.tgz",
"integrity": "sha512-eKIoIRHyPsyJwCOpofE+/J+C5O+bPnxtq3bPUzMsS4EzZOF268WocbkaKLW1Fh3tepyxj3TvTNxEvKA6jbJr0A==",
"license": "MIT",
"dependencies": {
"@d-fischer/shared-utils": "^3.6.1",
"@twurple/common": "8.1.3",
"tslib": "^2.0.3"
},
"funding": {
"url": "https://github.com/sponsors/d-fischer"
}
},
"node_modules/@twurple/auth": {
"version": "8.1.3",
"resolved": "https://registry.npmjs.org/@twurple/auth/-/auth-8.1.3.tgz",
"integrity": "sha512-UklOtXzQUnZskFsvt3h3kmkjXsILqNXe4NCMR1SYPicsYVnVMElS1uMiVI/H5mzJhVR5MFx5wQQyI15b5YtBxw==",
"license": "MIT",
"dependencies": {
"@d-fischer/logger": "^4.2.1",
"@d-fischer/shared-utils": "^3.6.1",
"@d-fischer/typed-event-emitter": "^3.3.3",
"@twurple/api-call": "8.1.3",
"@twurple/common": "8.1.3",
"tslib": "^2.0.3"
},
"funding": {
"url": "https://github.com/sponsors/d-fischer"
}
},
"node_modules/@twurple/chat": {
"version": "8.1.3",
"resolved": "https://registry.npmjs.org/@twurple/chat/-/chat-8.1.3.tgz",
"integrity": "sha512-BTamweCTlv8Bdkx1um0dSn0sDXBm3CX4js0GbatWPsX6mrMWljny2pQgIj+PSkTtHfsR4fmGEIayAticEydxnQ==",
"license": "MIT",
"dependencies": {
"@d-fischer/cache-decorators": "^4.0.0",
"@d-fischer/deprecate": "^2.0.2",
"@d-fischer/logger": "^4.2.1",
"@d-fischer/rate-limiter": "^1.1.0",
"@d-fischer/shared-utils": "^3.6.1",
"@d-fischer/typed-event-emitter": "^3.3.3",
"@twurple/common": "8.1.3",
"ircv3": "^0.33.0",
"tslib": "^2.0.3"
},
"funding": {
"url": "https://github.com/sponsors/d-fischer"
},
"peerDependencies": {
"@twurple/auth": "8.1.3"
}
},
"node_modules/@twurple/common": {
"version": "8.1.3",
"resolved": "https://registry.npmjs.org/@twurple/common/-/common-8.1.3.tgz",
"integrity": "sha512-B2BT42fJAEYqSPGjTd6qyZoUv6kgFzIvUJuTIrOUcBiJxcvZh8tD+WLRd5xfMKhtLbUFgesYlHxdPhmdar8/zw==",
"license": "MIT",
"dependencies": {
"@d-fischer/shared-utils": "^3.6.1",
"klona": "^2.0.4",
"tslib": "^2.0.3"
},
"funding": {
"url": "https://github.com/sponsors/d-fischer"
}
},
"node_modules/@types/node": {
"version": "20.19.39",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.39.tgz",
"integrity": "sha512-orrrD74MBUyK8jOAD/r0+lfa1I2MO6I+vAkmAWzMYbCcgrN4lCrmK52gRFQq/JRxfYPfonkr4b0jcY7Olqdqbw==",
"license": "MIT",
"dependencies": {
"undici-types": "~6.21.0"
}
},
"node_modules/@types/ws": {
"version": "8.18.1",
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz",
"integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==",
"license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/ircv3": {
"version": "0.33.1",
"resolved": "https://registry.npmjs.org/ircv3/-/ircv3-0.33.1.tgz",
"integrity": "sha512-FPUj/q6zsLgIX6QDdLMjPRBObw0xK+k6eiI62dcTRwdl5aezYV0nuMhpmafyHOD6ZDqfw8DW4ayrvDfmYO65JQ==",
"license": "MIT",
"dependencies": {
"@d-fischer/connection": "^10.0.1",
"@d-fischer/escape-string-regexp": "^5.0.0",
"@d-fischer/logger": "^4.2.1",
"@d-fischer/shared-utils": "^3.5.0",
"@d-fischer/typed-event-emitter": "^3.3.0",
"klona": "^2.0.5",
"tslib": "^2.4.1"
},
"funding": {
"url": "https://github.com/sponsors/d-fischer"
}
},
"node_modules/klona": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz",
"integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==",
"license": "MIT",
"engines": {
"node": ">= 8"
}
},
"node_modules/retry": {
"version": "0.13.1",
"resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
"integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
"license": "MIT",
"engines": {
"node": ">= 4"
}
},
"node_modules/tslib": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"license": "0BSD"
},
"node_modules/undici-types": {
"version": "6.21.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
"integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
"license": "MIT"
},
"node_modules/ws": {
"version": "8.20.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz",
"integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": ">=5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
},
"node_modules/zod": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/zod/-/zod-4.4.2.tgz",
"integrity": "sha512-IynmDyxsEsb9RKzO3J9+4SxXnl2FTFSzNBaKKaMV6tsSk0rw9gYw9gs+JFCq/qk2LCZ78KDwyj+Z289TijSkUw==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
}
}
}

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-twitch",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw Twitch channel plugin.",
"dependencies": {
"@openclaw/twitch": "2026.2.21"
},
"crabpot": {
"fixture": "twitch",
"source": "npm",
"package": "@openclaw/twitch",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/twitch",
"sourceRef": "35a57bc940833a6c1f594b2308e349e5ee0148db"
}
}

72
plugins/voice-call/package-lock.json generated Normal file
View File

@ -0,0 +1,72 @@
{
"name": "@crabpot/fixture-voice-call",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@crabpot/fixture-voice-call",
"version": "0.0.0",
"dependencies": {
"@openclaw/voice-call": "2026.3.13"
}
},
"node_modules/@openclaw/voice-call": {
"version": "2026.3.13",
"resolved": "https://registry.npmjs.org/@openclaw/voice-call/-/voice-call-2026.3.13.tgz",
"integrity": "sha512-AgXSfIn4KnX3b851z9FQ3dMora02CxAL0EJOTmbj1Pxxe8XMHjISORfaR82VEmQ7MLjSUek63QDYL8k6754MdQ==",
"deprecated": "Deprecated: obsolete OpenClaw plugin package version. Use current OpenClaw bundled/plugin distribution; newer npm releases may return later.",
"dependencies": {
"@sinclair/typebox": "0.34.48",
"commander": "^14.0.3",
"ws": "^8.19.0",
"zod": "^4.3.6"
}
},
"node_modules/@sinclair/typebox": {
"version": "0.34.48",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
"integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
"license": "MIT"
},
"node_modules/commander": {
"version": "14.0.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz",
"integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==",
"license": "MIT",
"engines": {
"node": ">=20"
}
},
"node_modules/ws": {
"version": "8.20.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz",
"integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": ">=5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
},
"node_modules/zod": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/zod/-/zod-4.4.2.tgz",
"integrity": "sha512-IynmDyxsEsb9RKzO3J9+4SxXnl2FTFSzNBaKKaMV6tsSk0rw9gYw9gs+JFCq/qk2LCZ78KDwyj+Z289TijSkUw==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
}
}
}

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-voice-call",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw voice-call plugin.",
"dependencies": {
"@openclaw/voice-call": "2026.3.13"
},
"crabpot": {
"fixture": "voice-call",
"source": "npm",
"package": "@openclaw/voice-call",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/voice-call",
"sourceRef": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
}
}

@ -1 +1 @@
Subproject commit 6e4c765cd04eb449c806748c3130793fe0b05e5e
Subproject commit dd3cab6e11f16eaa3fcee0ce67d3a809b155341a

2068
plugins/whatsapp/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-whatsapp",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw WhatsApp channel plugin.",
"dependencies": {
"@openclaw/whatsapp": "2026.5.1-beta.1"
},
"crabpot": {
"fixture": "whatsapp",
"source": "npm",
"package": "@openclaw/whatsapp",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/whatsapp",
"sourceRef": "355680f1f21af3782c8ffbb5f3cec281dc584af6"
}
}

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,17 @@
"private": true,
"description": "Crabpot npm fixture shim for Tencent Yuanbao Bot.",
"dependencies": {
"openclaw-plugin-yuanbao": "2.11.0"
"openclaw-plugin-yuanbao": "3.0.1"
},
"overrides": {
"@anthropic-ai/sdk": "0.91.1",
"conf": "10.2.0",
"cos-nodejs-sdk-v5": "2.16.0-beta.8",
"fast-xml-parser": "5.7.2",
"form-data": "4.0.5",
"qs": "6.15.1",
"tough-cookie": "6.0.1",
"uuid": "14.0.0"
},
"crabpot": {
"fixture": "yuanbao",

43
plugins/zalo/package-lock.json generated Normal file
View File

@ -0,0 +1,43 @@
{
"name": "@crabpot/fixture-zalo",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@crabpot/fixture-zalo",
"version": "0.0.0",
"dependencies": {
"@openclaw/zalo": "2026.3.13"
}
},
"node_modules/@openclaw/zalo": {
"version": "2026.3.13",
"resolved": "https://registry.npmjs.org/@openclaw/zalo/-/zalo-2026.3.13.tgz",
"integrity": "sha512-v/NQezfoCpFxIlOpLXJHdT1zkldql1D/E0lccqCfbu2OeldePMNpgOgA7B5TDHsC1FlNMR+M2FR5pU212k+wLw==",
"deprecated": "Deprecated: obsolete OpenClaw plugin package version. Use current OpenClaw bundled/plugin distribution; newer npm releases may return later.",
"dependencies": {
"undici": "7.24.1",
"zod": "^4.3.6"
}
},
"node_modules/undici": {
"version": "7.24.1",
"resolved": "https://registry.npmjs.org/undici/-/undici-7.24.1.tgz",
"integrity": "sha512-5xoBibbmnjlcR3jdqtY2Lnx7WbrD/tHlT01TmvqZUFVc9Q1w4+j5hbnapTqbcXITMH1ovjq/W7BkqBilHiVAaA==",
"license": "MIT",
"engines": {
"node": ">=20.18.1"
}
},
"node_modules/zod": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/zod/-/zod-4.4.2.tgz",
"integrity": "sha512-IynmDyxsEsb9RKzO3J9+4SxXnl2FTFSzNBaKKaMV6tsSk0rw9gYw9gs+JFCq/qk2LCZ78KDwyj+Z289TijSkUw==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
}
}
}

17
plugins/zalo/package.json Normal file
View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-zalo",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw Zalo channel plugin.",
"dependencies": {
"@openclaw/zalo": "2026.3.13"
},
"crabpot": {
"fixture": "zalo",
"source": "npm",
"package": "@openclaw/zalo",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/zalo",
"sourceRef": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
}
}

401
plugins/zalouser/package-lock.json generated Normal file
View File

@ -0,0 +1,401 @@
{
"name": "@crabpot/fixture-zalouser",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@crabpot/fixture-zalouser",
"version": "0.0.0",
"dependencies": {
"@openclaw/zalouser": "2026.3.13"
}
},
"node_modules/@openclaw/zalouser": {
"version": "2026.3.13",
"resolved": "https://registry.npmjs.org/@openclaw/zalouser/-/zalouser-2026.3.13.tgz",
"integrity": "sha512-bhgN94P/LYwD8Xdj7bapG9AfhNz5Y4GPKi9X5prVbwaiP71BXezbs6SRxnLlu9B9KWjUDnyAwoOCFD2cnlTE/w==",
"deprecated": "Deprecated: obsolete OpenClaw plugin package version. Use current OpenClaw bundled/plugin distribution; newer npm releases may return later.",
"dependencies": {
"@sinclair/typebox": "0.34.48",
"zca-js": "2.1.1",
"zod": "^4.3.6"
}
},
"node_modules/@sinclair/typebox": {
"version": "0.34.48",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
"integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
"license": "MIT"
},
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
"license": "MIT"
},
"node_modules/bignumber.js": {
"version": "9.3.1",
"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz",
"integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==",
"license": "MIT",
"engines": {
"node": "*"
}
},
"node_modules/call-bind-apply-helpers": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
"integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"function-bind": "^1.1.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"license": "MIT",
"dependencies": {
"delayed-stream": "~1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/crypto-js": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
"integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==",
"license": "MIT"
},
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"license": "MIT",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/dunder-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
"integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.1",
"es-errors": "^1.3.0",
"gopd": "^1.2.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-define-property": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
"integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-errors": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-object-atoms": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
"integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-set-tostringtag": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
"integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.6",
"has-tostringtag": "^1.0.2",
"hasown": "^2.0.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/form-data": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
"integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
"license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"es-set-tostringtag": "^2.1.0",
"hasown": "^2.0.2",
"mime-types": "^2.1.12"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/get-intrinsic": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
"integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
"es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
"es-object-atoms": "^1.1.1",
"function-bind": "^1.1.2",
"get-proto": "^1.0.1",
"gopd": "^1.2.0",
"has-symbols": "^1.1.0",
"hasown": "^2.0.2",
"math-intrinsics": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/get-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
"integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
"license": "MIT",
"dependencies": {
"dunder-proto": "^1.0.1",
"es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/gopd": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
"integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-symbols": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
"integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-tostringtag": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
"integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"license": "MIT",
"dependencies": {
"has-symbols": "^1.0.3"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/hasown": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz",
"integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==",
"license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/json-bigint": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz",
"integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
"license": "MIT",
"dependencies": {
"bignumber.js": "^9.0.0"
}
},
"node_modules/math-intrinsics": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
"integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime-types": {
"version": "2.1.35",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"license": "MIT",
"dependencies": {
"mime-db": "1.52.0"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/pako": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz",
"integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==",
"license": "(MIT AND Zlib)"
},
"node_modules/semver": {
"version": "7.7.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
"integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/spark-md5": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz",
"integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==",
"license": "(WTFPL OR MIT)"
},
"node_modules/tldts": {
"version": "6.1.86",
"resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz",
"integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==",
"license": "MIT",
"dependencies": {
"tldts-core": "^6.1.86"
},
"bin": {
"tldts": "bin/cli.js"
}
},
"node_modules/tldts-core": {
"version": "6.1.86",
"resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz",
"integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==",
"license": "MIT"
},
"node_modules/tough-cookie": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz",
"integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==",
"license": "BSD-3-Clause",
"dependencies": {
"tldts": "^6.1.32"
},
"engines": {
"node": ">=16"
}
},
"node_modules/ws": {
"version": "8.20.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz",
"integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": ">=5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
},
"node_modules/zca-js": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/zca-js/-/zca-js-2.1.1.tgz",
"integrity": "sha512-6zCmaIIWg/1eYlvCvO4rVsFt6SQ8MRodro3dCzMkk+LNgB3MyaEMBywBJfsw44WhODmOh8iMlPv4xDTNTMWDWA==",
"license": "MIT",
"dependencies": {
"crypto-js": "^4.2.0",
"form-data": "^4.0.4",
"json-bigint": "^1.0.0",
"pako": "^2.1.0",
"semver": "^7.6.3",
"spark-md5": "^3.0.2",
"tough-cookie": "^5.0.0",
"ws": "^8.18.0"
},
"engines": {
"node": ">=18.0.0"
}
},
"node_modules/zod": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/zod/-/zod-4.4.2.tgz",
"integrity": "sha512-IynmDyxsEsb9RKzO3J9+4SxXnl2FTFSzNBaKKaMV6tsSk0rw9gYw9gs+JFCq/qk2LCZ78KDwyj+Z289TijSkUw==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
}
}
}

View File

@ -0,0 +1,17 @@
{
"name": "@crabpot/fixture-zalouser",
"version": "0.0.0",
"private": true,
"description": "Crabpot npm fixture shim for OpenClaw Zalo Personal Account plugin via native zca-js integration.",
"dependencies": {
"@openclaw/zalouser": "2026.3.13"
},
"crabpot": {
"fixture": "zalouser",
"source": "npm",
"package": "@openclaw/zalouser",
"sourceRepo": "https://github.com/openclaw/openclaw.git",
"sourcePath": "extensions/zalouser",
"sourceRef": "2ce6b77205187c76ce7cde6cb0913de14d4452fa"
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -3,10 +3,11 @@
"status": "pass",
"strict": false,
"policy": {
"allowedBlocked": 3,
"allowedBlocked": 6,
"expectedWarnings": 1,
"fixtureSets": [
"build",
"openclaw-beta",
"sdk-alias",
"side-effect-review",
"smoke"
@ -19,41 +20,216 @@
}
},
"summary": {
"checkCount": 9,
"checkCount": 25,
"failCount": 0,
"warnCount": 3,
"warnCount": 19,
"passCount": 6
},
"checks": [
{
"id": "compatibility-report.live-p0-issues",
"id": "execution-results.audit-findings",
"action": "warn",
"message": "2 live P0 issues tracked",
"message": "12 package audit findings",
"evidence": [
"codex-app-server:sdk-export-missing:untracked",
"hyperspell:unknown-hook-name:none"
"clawrouter:12"
]
},
{
"id": "execution-results.blocked.wecom.registerChannel.0",
"id": "execution-results.blocked.clawrouter.registerService.29",
"action": "warn",
"message": "allowed-blocked: captured registration requires includeChannelRuntime=true",
"message": "allowed-blocked: captured registration requires includeLifecycle=true",
"evidence": [
".crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json",
"registerChannel",
"captured registration requires includeChannelRuntime=true",
"channel-runtime-harness"
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerService",
"captured registration requires includeLifecycle=true",
"service-lifecycle-harness"
]
},
{
"id": "execution-results.blocked.wecom.registerTool.2",
"id": "execution-results.blocked.clawrouter.registerTool.10",
"action": "warn",
"message": "expected-warning: captured registration has no object descriptor",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json",
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured registration has no object descriptor",
"tool-factory-descriptor"
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.11",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.12",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.13",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.14",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.15",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.16",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.17",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.18",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.19",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.20",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.21",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.5",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.6",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.7",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.8",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.9",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
@ -65,70 +241,73 @@
{
"id": "compatibility-report.deprecation-warnings",
"action": "pass",
"message": "24 deprecated compat seams tracked",
"message": "42 deprecated compat seams tracked",
"evidence": [
"a2a-gateway:legacy-root-sdk-import",
"agentchat:channel-env-vars",
"apify:legacy-root-sdk-import",
"brave-plugin:provider-auth-env-vars",
"codex-app-server:legacy-root-sdk-import",
"composio:legacy-root-sdk-import",
"connectclaw:legacy-before-agent-start",
"connectclaw:legacy-root-sdk-import",
"dingtalk-connector:legacy-root-sdk-import",
"discord:channel-env-vars",
"feishu:channel-env-vars",
"hasdata:provider-auth-env-vars",
"honcho:legacy-before-agent-start",
"honcho:legacy-root-sdk-import",
"hyperspell:legacy-before-agent-start",
"hyperspell:legacy-root-sdk-import",
"inworld-tts:provider-auth-env-vars",
"kitchen-sink:legacy-before-agent-start",
"kitchen-sink:legacy-root-sdk-import",
"llm-trace-phoenix:legacy-root-sdk-import",
"lossless-claw:legacy-root-sdk-import",
"matrix:channel-env-vars",
"mattermost:channel-env-vars",
"memory-tencentdb:legacy-root-sdk-import",
"memos-cloud:legacy-before-agent-start",
"memu-engine:legacy-root-sdk-import",
"mocrane-wecom:legacy-root-sdk-import",
"msteams:channel-env-vars",
"nemoclaw:legacy-before-agent-start",
"nextcloud-talk:channel-env-vars",
"nostr:channel-env-vars",
"openclaw-qqbot:channel-env-vars",
"openclaw-telemetry:legacy-before-agent-start",
"openclaw-telemetry:legacy-root-sdk-import",
"opik-openclaw:legacy-root-sdk-import",
"qqbot:legacy-root-sdk-import",
"yuanbao:legacy-root-sdk-import"
"synology-chat:channel-env-vars",
"telnyx-sms:channel-env-vars",
"twitch:channel-env-vars",
"voice-call:channel-env-vars",
"yuanbao:channel-env-vars",
"zalo:channel-env-vars",
"zalouser:channel-env-vars"
]
},
{
"id": "compatibility-report.inspector-gaps",
"action": "pass",
"message": "102 inspector proof gaps tracked",
"message": "163 inspector proof gaps tracked",
"evidence": [
"a2a-gateway:registration-capture-gap",
"clawmetry:registration-capture-gap",
"codex-app-server:registration-capture-gap",
"connectclaw:registration-capture-gap",
"dingtalk-connector:registration-capture-gap",
"honcho:conversation-access-hook",
"honcho:registration-capture-gap",
"hyperspell:conversation-access-hook",
"hyperspell:registration-capture-gap",
"kitchen-sink:before-tool-call-probe",
"kitchen-sink:conversation-access-hook",
"kitchen-sink:registration-capture-gap",
"lightclawbot:registration-capture-gap",
"llm-trace-phoenix:conversation-access-hook",
"lossless-claw:registration-capture-gap",
"mcp-adapter:registration-capture-gap",
"memory-lancedb:conversation-access-hook",
"memory-tencentdb:conversation-access-hook",
"memos-cloud:conversation-access-hook",
"memos-cloud:registration-capture-gap",
"mocrane-wecom:registration-capture-gap",
"openclaw-weixin:registration-capture-gap",
"nemoclaw:before-tool-call-probe",
"openclaw-telemetry:before-tool-call-probe",
"openclaw-telemetry:conversation-access-hook",
"opik-openclaw:before-tool-call-probe",
"opik-openclaw:conversation-access-hook",
"opik-openclaw:registration-capture-gap",
"qqbot:registration-capture-gap",
"secureclaw:registration-capture-gap",
"wecom:before-tool-call-probe",
"wecom:registration-capture-gap",
"yuanbao:registration-capture-gap",
"a2a-gateway:package-dependency-install-required",
"a2a-gateway:package-typescript-source-entrypoint",
"a2a-gateway:registration-capture-gap",
"a2a-gateway:runtime-tool-capture",
"agentchat:channel-contract-probe",
"agentchat:package-build-artifact-entrypoint",
@ -136,157 +315,176 @@
"apify:package-dependency-install-required",
"apify:package-typescript-source-entrypoint",
"apify:runtime-tool-capture",
"bluebubbles:channel-contract-probe",
"clawmetry:package-build-artifact-entrypoint",
"clawmetry:package-dependency-install-required",
"clawmetry:package-typescript-source-entrypoint",
"clawmetry:registration-capture-gap",
"clawrouter:package-dependency-install-required",
"clawrouter:registration-capture-gap",
"clawrouter:runtime-tool-capture",
"codex:package-dependency-install-required",
"codex:registration-capture-gap",
"codex-app-server:package-dependency-install-required",
"codex-app-server:package-typescript-source-entrypoint",
"codex-app-server:registration-capture-gap",
"composio:package-dependency-install-required",
"composio:package-typescript-source-entrypoint",
"composio:runtime-tool-capture",
"connectclaw:package-typescript-source-entrypoint",
"connectclaw:registration-capture-gap",
"connectclaw:runtime-tool-capture",
"ddingtalk:channel-contract-probe",
"ddingtalk:package-dependency-install-required",
"ddingtalk:package-typescript-source-entrypoint",
"diagnostics-otel:package-dependency-install-required",
"diagnostics-otel:registration-capture-gap",
"diagnostics-prometheus:registration-capture-gap",
"diffs:package-dependency-install-required",
"diffs:registration-capture-gap",
"dingtalk-connector:channel-contract-probe",
"dingtalk-connector:package-build-artifact-entrypoint",
"dingtalk-connector:package-dependency-install-required",
"dingtalk-connector:registration-capture-gap",
"discord:channel-contract-probe",
"discord:package-dependency-install-required",
"feishu:channel-contract-probe",
"feishu:package-dependency-install-required",
"google-meet:package-dependency-install-required",
"google-meet:registration-capture-gap",
"hasdata:package-dependency-install-required",
"hasdata:package-typescript-source-entrypoint",
"honcho:package-build-artifact-entrypoint",
"honcho:package-dependency-install-required",
"honcho:registration-capture-gap",
"honcho:runtime-tool-capture",
"hyperspell:package-dependency-install-required",
"hyperspell:package-typescript-source-entrypoint",
"hyperspell:registration-capture-gap",
"hyperspell:runtime-tool-capture",
"inworld-tts:package-typescript-source-entrypoint",
"kitchen-sink:channel-contract-probe",
"kitchen-sink:registration-capture-gap",
"lightclawbot:channel-contract-probe",
"lightclawbot:package-dependency-install-required",
"lightclawbot:registration-capture-gap",
"lightclawbot:runtime-tool-capture",
"llm-trace-phoenix:package-typescript-source-entrypoint",
"lobster:package-dependency-install-required",
"lossless-claw:package-build-artifact-entrypoint",
"lossless-claw:package-dependency-install-required",
"lossless-claw:runtime-tool-capture",
"lossless-claw:registration-capture-gap",
"matrix:package-dependency-install-required",
"matrix:package-typescript-source-entrypoint",
"matrix:registration-capture-gap",
"mattermost:channel-contract-probe",
"mattermost:package-dependency-install-required",
"mattermost:package-typescript-source-entrypoint",
"mattermost:registration-capture-gap",
"mcp-adapter:package-dependency-install-required",
"mcp-adapter:package-typescript-source-entrypoint",
"mcp-adapter:registration-capture-gap",
"mcp-adapter:runtime-tool-capture",
"memory-lancedb:package-dependency-install-required",
"memory-lancedb:registration-capture-gap",
"memory-tencentdb:package-dependency-install-required",
"memory-tencentdb:package-typescript-source-entrypoint",
"memory-tencentdb:runtime-tool-capture",
"memory-tencentdb:registration-capture-gap",
"memos-cloud:registration-capture-gap",
"memu-engine:package-typescript-source-entrypoint",
"memu-engine:runtime-tool-capture",
"mocrane-wecom:channel-contract-probe",
"mocrane-wecom:package-dependency-install-required",
"mocrane-wecom:package-typescript-source-entrypoint",
"mocrane-wecom:registration-capture-gap",
"mocrane-wecom:runtime-tool-capture",
"msteams:channel-contract-probe",
"msteams:package-dependency-install-required",
"nemoclaw:package-build-artifact-entrypoint",
"nemoclaw:package-dependency-install-required",
"nemoclaw:registration-capture-gap",
"nextcloud-talk:channel-contract-probe",
"nextcloud-talk:package-dependency-install-required",
"nostr:channel-contract-probe",
"nostr:package-dependency-install-required",
"nostr:registration-capture-gap",
"openclaw-qqbot:package-dependency-install-required",
"openclaw-qqbot:registration-capture-gap",
"openclaw-telemetry:package-typescript-source-entrypoint",
"openclaw-telemetry:registration-capture-gap",
"openclaw-weixin:channel-contract-probe",
"openclaw-weixin:package-dependency-install-required",
"openclaw-weixin:package-typescript-source-entrypoint",
"openclaw-weixin:registration-capture-gap",
"opik-openclaw:package-build-artifact-entrypoint",
"opik-openclaw:package-dependency-install-required",
"opik-openclaw:package-typescript-source-entrypoint",
"opik-openclaw:registration-capture-gap",
"qqbot:channel-contract-probe",
"qqbot:package-dependency-install-required",
"qqbot:registration-capture-gap",
"qqbot:runtime-tool-capture",
"secureclaw:package-build-artifact-entrypoint",
"secureclaw:package-dependency-install-required",
"secureclaw:registration-capture-gap",
"synology-chat:channel-contract-probe",
"synology-chat:package-dependency-install-required",
"telnyx-sms:channel-contract-probe",
"telnyx-sms:package-build-artifact-entrypoint",
"telnyx-sms:registration-capture-gap",
"tlon:channel-contract-probe",
"tlon:package-dependency-install-required",
"twitch:channel-contract-probe",
"twitch:package-dependency-install-required",
"voice-call:package-dependency-install-required",
"voice-call:registration-capture-gap",
"web-search-plus:package-typescript-source-entrypoint",
"web-search-plus:runtime-tool-capture",
"wecom:channel-contract-probe",
"wecom:package-dependency-install-required",
"wecom:registration-capture-gap",
"wecom:runtime-tool-capture",
"whatsapp:channel-contract-probe",
"whatsapp:package-dependency-install-required",
"yuanbao:channel-contract-probe",
"yuanbao:package-dependency-install-required",
"yuanbao:runtime-tool-capture"
"yuanbao:package-typescript-source-entrypoint",
"yuanbao:registration-capture-gap",
"yuanbao:runtime-tool-capture",
"zalo:channel-contract-probe",
"zalo:package-dependency-install-required",
"zalouser:channel-contract-probe",
"zalouser:package-dependency-install-required"
]
},
{
"id": "compatibility-report.live-p0-issues",
"action": "pass",
"message": "0 live P0 issues tracked",
"evidence": []
},
{
"id": "compatibility-report.p1-issues",
"action": "pass",
"message": "72 P1 issues tracked",
"message": "15 P1 issues tracked",
"evidence": [
"a2a-gateway:missing-compat-record",
"a2a-gateway:registration-capture-gap",
"agentchat:missing-compat-record",
"clawmetry:missing-compat-record",
"clawmetry:registration-capture-gap",
"clawmetry:reserved-sdk-import",
"codex-app-server:missing-compat-record",
"codex-app-server:missing-compat-record",
"codex-app-server:registration-capture-gap",
"connectclaw:missing-compat-record",
"connectclaw:registration-capture-gap",
"ddingtalk:missing-compat-record",
"dingtalk-connector:missing-compat-record",
"dingtalk-connector:missing-compat-record",
"dingtalk-connector:registration-capture-gap",
"clawmetry:sdk-export-missing",
"honcho:conversation-access-hook",
"honcho:missing-compat-record",
"honcho:missing-compat-record",
"honcho:registration-capture-gap",
"honcho:reserved-sdk-import",
"hyperspell:conversation-access-hook",
"hyperspell:missing-compat-record",
"hyperspell:missing-compat-record",
"hyperspell:registration-capture-gap",
"honcho:sdk-export-missing",
"kitchen-sink:before-tool-call-probe",
"kitchen-sink:conversation-access-hook",
"kitchen-sink:missing-compat-record",
"kitchen-sink:missing-compat-record",
"kitchen-sink:missing-compat-record",
"kitchen-sink:missing-compat-record",
"kitchen-sink:registration-capture-gap",
"lightclawbot:missing-compat-record",
"lightclawbot:missing-compat-record",
"lightclawbot:registration-capture-gap",
"llm-trace-phoenix:conversation-access-hook",
"llm-trace-phoenix:missing-compat-record",
"lossless-claw:missing-compat-record",
"lossless-claw:registration-capture-gap",
"mcp-adapter:missing-compat-record",
"mcp-adapter:registration-capture-gap",
"memory-lancedb:conversation-access-hook",
"memory-tencentdb:conversation-access-hook",
"memory-tencentdb:missing-compat-record",
"memos-cloud:conversation-access-hook",
"memos-cloud:missing-compat-record",
"memos-cloud:missing-compat-record",
"memos-cloud:registration-capture-gap",
"mocrane-wecom:missing-compat-record",
"mocrane-wecom:missing-compat-record",
"mocrane-wecom:registration-capture-gap",
"openclaw-weixin:missing-compat-record",
"openclaw-weixin:missing-compat-record",
"openclaw-weixin:registration-capture-gap",
"nemoclaw:before-tool-call-probe",
"openclaw-telemetry:before-tool-call-probe",
"openclaw-telemetry:conversation-access-hook",
"opik-openclaw:before-tool-call-probe",
"opik-openclaw:conversation-access-hook",
"opik-openclaw:missing-compat-record",
"opik-openclaw:missing-compat-record",
"opik-openclaw:missing-compat-record",
"opik-openclaw:registration-capture-gap",
"qqbot:missing-compat-record",
"qqbot:missing-compat-record",
"qqbot:registration-capture-gap",
"secureclaw:missing-compat-record",
"secureclaw:registration-capture-gap",
"wecom:before-tool-call-probe",
"wecom:missing-compat-record",
"wecom:missing-compat-record",
"wecom:missing-compat-record",
"wecom:registration-capture-gap",
"yuanbao:missing-compat-record",
"yuanbao:missing-compat-record",
"yuanbao:registration-capture-gap",
"yuanbao:reserved-sdk-import"
"wecom:before-tool-call-probe"
]
},
{
"id": "execution-results.audit-findings",
"action": "pass",
"message": "0 package audit findings",
"evidence": []
},
{
"id": "execution-results.failures",
"action": "pass",

File diff suppressed because one or more lines are too long

View File

@ -1,120 +1,54 @@
{
"generatedAt": "deterministic",
"title": "Crabpot CI Summary",
"mode": "local",
"openclawLabel": "",
"mode": "dependabot",
"openclawLabel": "openclaw@latest (2026.5.6, c97b9f79ec43)",
"status": "pass",
"summary": {
"breakages": 0,
"warnings": 59,
"suggestions": 98,
"issues": 157,
"p0Issues": 4,
"p1Issues": 32,
"liveIssues": 4,
"liveP0Issues": 4,
"compatGaps": 3,
"deprecationWarnings": 24,
"inspectorGaps": 102,
"upstreamIssues": 24,
"warnings": 126,
"suggestions": 155,
"issues": 281,
"p0Issues": 0,
"p1Issues": 15,
"liveIssues": 0,
"liveP0Issues": 0,
"compatGaps": 2,
"deprecationWarnings": 42,
"inspectorGaps": 163,
"upstreamIssues": 74,
"refDiffFailures": 0,
"refDiffWarnings": 0,
"policyFailures": 0,
"policyWarnings": 3,
"policyWarnings": 19,
"profileFailures": 0,
"profileWarnings": 0,
"executionPass": 6,
"profileWarnings": 2,
"executionPass": 12,
"executionFail": 0,
"executionBlocked": 2,
"platformWindowsRisks": 165,
"platformContainerRisks": 48,
"loaderJitiCandidates": 18,
"importLoopP50Ms": 73,
"importLoopP95Ms": 75,
"importLoopMaxRssMb": 0,
"importLoopMaxCpuMs": 0
"executionBlocked": 18,
"platformWindowsRisks": 14,
"platformContainerRisks": 14,
"loaderJitiCandidates": 25,
"importLoopP50Ms": 2421,
"importLoopP95Ms": 2471,
"importLoopOpenClawLifecycleCount": 3,
"importLoopOpenClawImportP50Ms": 84,
"importLoopOpenClawActivationP50Ms": 0.3,
"importLoopMetricBasis": "baseline-adjusted",
"importLoopMaxRssMb": 13.3,
"importLoopMaxCpuMs": 35,
"importLoopRssSampleCount": 287,
"importLoopCpuSampleCount": 287
},
"topIssues": [
{
"severity": "P0",
"issueClass": "live-issue",
"fixture": "clawmetry",
"code": "sdk-export-missing",
"title": "clawmetry: plugin SDK import aliases are missing from target package exports",
"decision": "core-compat-adapter"
},
{
"severity": "P0",
"issueClass": "live-issue",
"fixture": "honcho",
"code": "sdk-export-missing",
"title": "honcho: plugin SDK import aliases are missing from target package exports",
"decision": "core-compat-adapter"
},
{
"severity": "P0",
"issueClass": "live-issue",
"fixture": "hyperspell",
"code": "unknown-hook-name",
"title": "hyperspell: fixture uses a hook missing from target OpenClaw",
"decision": "core-compat-adapter"
},
{
"severity": "P0",
"issueClass": "live-issue",
"fixture": "yuanbao",
"code": "sdk-export-missing",
"title": "yuanbao: plugin SDK import aliases are missing from target package exports",
"decision": "core-compat-adapter"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "a2a-gateway",
"code": "registration-capture-gap",
"title": "a2a-gateway: runtime registrations need capture before contract judgment",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "compat-gap",
"fixture": "clawmetry",
"code": "missing-compat-record",
"title": "clawmetry: compat-dependent behavior lacks registry coverage",
"code": "sdk-export-missing",
"title": "clawmetry: plugin SDK import aliases are missing from target package exports",
"decision": "core-compat-adapter"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "clawmetry",
"code": "registration-capture-gap",
"title": "clawmetry: runtime registrations need capture before contract judgment",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "codex-app-server",
"code": "registration-capture-gap",
"title": "codex-app-server: runtime registrations need capture before contract judgment",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "connectclaw",
"code": "registration-capture-gap",
"title": "connectclaw: runtime registrations need capture before contract judgment",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "dingtalk-connector",
"code": "registration-capture-gap",
"title": "dingtalk-connector: runtime registrations need capture before contract judgment",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
@ -127,34 +61,10 @@
"severity": "P1",
"issueClass": "compat-gap",
"fixture": "honcho",
"code": "missing-compat-record",
"title": "honcho: compat-dependent behavior lacks registry coverage",
"code": "sdk-export-missing",
"title": "honcho: plugin SDK import aliases are missing from target package exports",
"decision": "core-compat-adapter"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "honcho",
"code": "registration-capture-gap",
"title": "honcho: runtime registrations need capture before contract judgment",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "hyperspell",
"code": "conversation-access-hook",
"title": "hyperspell: conversation-access hooks need privacy-boundary probes",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "hyperspell",
"code": "registration-capture-gap",
"title": "hyperspell: runtime registrations need capture before contract judgment",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
@ -171,22 +81,6 @@
"title": "kitchen-sink: conversation-access hooks need privacy-boundary probes",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "kitchen-sink",
"code": "registration-capture-gap",
"title": "kitchen-sink: runtime registrations need capture before contract judgment",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "lightclawbot",
"code": "registration-capture-gap",
"title": "lightclawbot: runtime registrations need capture before contract judgment",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
@ -194,43 +88,310 @@
"code": "conversation-access-hook",
"title": "llm-trace-phoenix: conversation-access hooks need privacy-boundary probes",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "memory-lancedb",
"code": "conversation-access-hook",
"title": "memory-lancedb: conversation-access hooks need privacy-boundary probes",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "memory-tencentdb",
"code": "conversation-access-hook",
"title": "memory-tencentdb: conversation-access hooks need privacy-boundary probes",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "memos-cloud",
"code": "conversation-access-hook",
"title": "memos-cloud: conversation-access hooks need privacy-boundary probes",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "nemoclaw",
"code": "before-tool-call-probe",
"title": "nemoclaw: before_tool_call needs terminal/block/approval probes",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "openclaw-telemetry",
"code": "before-tool-call-probe",
"title": "openclaw-telemetry: before_tool_call needs terminal/block/approval probes",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "openclaw-telemetry",
"code": "conversation-access-hook",
"title": "openclaw-telemetry: conversation-access hooks need privacy-boundary probes",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "opik-openclaw",
"code": "before-tool-call-probe",
"title": "opik-openclaw: before_tool_call needs terminal/block/approval probes",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "opik-openclaw",
"code": "conversation-access-hook",
"title": "opik-openclaw: conversation-access hooks need privacy-boundary probes",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "wecom",
"code": "before-tool-call-probe",
"title": "wecom: before_tool_call needs terminal/block/approval probes",
"decision": "inspector-follow-up"
}
],
"refRegressions": [],
"policyFindings": [
{
"id": "compatibility-report.live-p0-issues",
"id": "execution-results.audit-findings",
"action": "warn",
"message": "2 live P0 issues tracked",
"message": "12 package audit findings",
"evidence": [
"codex-app-server:sdk-export-missing:untracked",
"hyperspell:unknown-hook-name:none"
"clawrouter:12"
]
},
{
"id": "execution-results.blocked.wecom.registerChannel.0",
"id": "execution-results.blocked.clawrouter.registerService.29",
"action": "warn",
"message": "allowed-blocked: captured registration requires includeChannelRuntime=true",
"message": "allowed-blocked: captured registration requires includeLifecycle=true",
"evidence": [
".crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json",
"registerChannel",
"captured registration requires includeChannelRuntime=true",
"channel-runtime-harness"
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerService",
"captured registration requires includeLifecycle=true",
"service-lifecycle-harness"
]
},
{
"id": "execution-results.blocked.wecom.registerTool.2",
"id": "execution-results.blocked.clawrouter.registerTool.10",
"action": "warn",
"message": "expected-warning: captured registration has no object descriptor",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json",
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured registration has no object descriptor",
"tool-factory-descriptor"
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.11",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.12",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.13",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.14",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.15",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.16",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.17",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.18",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.19",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.20",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.21",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.5",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.6",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.7",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.8",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
},
{
"id": "execution-results.blocked.clawrouter.registerTool.9",
"action": "warn",
"message": "allowed-blocked: captured tool requires live network access",
"evidence": [
".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"registerTool",
"captured tool requires live network access",
"live-network-tool-probes"
]
}
],
"profileFindings": [],
"profileFindings": [
{
"id": "profile.wall-p95",
"action": "warn",
"metric": "p95WallMs",
"message": "p95WallMs regressed 87.8% over baseline",
"baseline": 1273,
"current": 2391,
"delta": 1118,
"percent": 87.8
},
{
"id": "profile.peak-rss",
"action": "warn",
"metric": "maxPeakRssMb",
"message": "maxPeakRssMb regressed 390.29999999999995 over baseline",
"baseline": 65.1,
"current": 455.4,
"delta": 390.29999999999995
}
],
"artifacts": {
"compatibility": "reports/crabpot-report.json",
"capture": "reports/crabpot-capture.json",

View File

@ -1,64 +1,59 @@
# Crabpot CI Summary
Generated: deterministic
Mode: local
OpenClaw: -
Mode: dependabot
OpenClaw: openclaw@latest (2026.5.6, c97b9f79ec43)
Status: PASS
## Counts
| Metric | Value |
| --------------------------- | ----------------------------------------------- |
| Breakages | 0 |
| Warnings | 59 |
| Suggestions | 98 |
| Issues | 157 |
| P0 issues | 4 |
| P1 issues | 32 |
| Live issues | 4 |
| Live P0 issues | 4 |
| Compat gaps | 3 |
| Deprecation warnings | 24 |
| Inspector gaps | 102 |
| Upstream metadata | 24 |
| Ref diff failures | 0 |
| Ref diff warnings | 0 |
| Policy failures | 0 |
| Policy warnings | 3 |
| Profile failures | 0 |
| Profile warnings | 0 |
| Execution pass | 6 |
| Execution fail | 0 |
| Execution blocked | 2 |
| Windows portability risks | 165 |
| Container portability risks | 48 |
| Jiti loader candidates | 18 |
| Import loop | p50 73 ms / p95 75 ms / max RSS 0 MB / CPU 0 ms |
| Metric | Value |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| Breakages | 0 |
| Warnings | 126 |
| Suggestions | 155 |
| Issues | 281 |
| P0 issues | 0 |
| P1 issues | 15 |
| Live issues | 0 |
| Live P0 issues | 0 |
| Compat gaps | 2 |
| Deprecation warnings | 42 |
| Inspector gaps | 163 |
| Upstream metadata | 74 |
| Ref diff failures | 0 |
| Ref diff warnings | 0 |
| Policy failures | 0 |
| Policy warnings | 19 |
| Profile failures | 0 |
| Profile warnings | 2 |
| Execution pass | 12 |
| Execution fail | 0 |
| Execution blocked | 18 |
| Windows portability risks | 14 |
| Container portability risks | 14 |
| Jiti loader candidates | 25 |
| Import loop | p50 2421 ms / p95 2471 ms / plugin delta RSS 13.3 MB / plugin delta CPU 35 ms / OpenClaw import 84 ms / activate 0.3 ms |
## Top Issues
| Severity | Class | Fixture | Code | Decision | Title |
| -------- | ------------- | ------------------ | ------------------------ | ------------------- | ------------------------------------------------------------------------------- |
| P0 | live-issue | clawmetry | sdk-export-missing | core-compat-adapter | clawmetry: plugin SDK import aliases are missing from target package exports |
| P0 | live-issue | honcho | sdk-export-missing | core-compat-adapter | honcho: plugin SDK import aliases are missing from target package exports |
| P0 | live-issue | hyperspell | unknown-hook-name | core-compat-adapter | hyperspell: fixture uses a hook missing from target OpenClaw |
| P0 | live-issue | yuanbao | sdk-export-missing | core-compat-adapter | yuanbao: plugin SDK import aliases are missing from target package exports |
| P1 | inspector-gap | a2a-gateway | registration-capture-gap | inspector-follow-up | a2a-gateway: runtime registrations need capture before contract judgment |
| P1 | compat-gap | clawmetry | missing-compat-record | core-compat-adapter | clawmetry: compat-dependent behavior lacks registry coverage |
| P1 | inspector-gap | clawmetry | registration-capture-gap | inspector-follow-up | clawmetry: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | codex-app-server | registration-capture-gap | inspector-follow-up | codex-app-server: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | connectclaw | registration-capture-gap | inspector-follow-up | connectclaw: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | dingtalk-connector | registration-capture-gap | inspector-follow-up | dingtalk-connector: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | honcho | conversation-access-hook | inspector-follow-up | honcho: conversation-access hooks need privacy-boundary probes |
| P1 | compat-gap | honcho | missing-compat-record | core-compat-adapter | honcho: compat-dependent behavior lacks registry coverage |
| P1 | inspector-gap | honcho | registration-capture-gap | inspector-follow-up | honcho: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | hyperspell | conversation-access-hook | inspector-follow-up | hyperspell: conversation-access hooks need privacy-boundary probes |
| P1 | inspector-gap | hyperspell | registration-capture-gap | inspector-follow-up | hyperspell: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | kitchen-sink | before-tool-call-probe | inspector-follow-up | kitchen-sink: before_tool_call needs terminal/block/approval probes |
| P1 | inspector-gap | kitchen-sink | conversation-access-hook | inspector-follow-up | kitchen-sink: conversation-access hooks need privacy-boundary probes |
| P1 | inspector-gap | kitchen-sink | registration-capture-gap | inspector-follow-up | kitchen-sink: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | lightclawbot | registration-capture-gap | inspector-follow-up | lightclawbot: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | llm-trace-phoenix | conversation-access-hook | inspector-follow-up | llm-trace-phoenix: conversation-access hooks need privacy-boundary probes |
| Severity | Class | Fixture | Code | Decision | Title |
| -------- | ------------- | ------------------ | ------------------------ | ------------------- | ---------------------------------------------------------------------------- |
| P1 | compat-gap | clawmetry | sdk-export-missing | core-compat-adapter | clawmetry: plugin SDK import aliases are missing from target package exports |
| P1 | inspector-gap | honcho | conversation-access-hook | inspector-follow-up | honcho: conversation-access hooks need privacy-boundary probes |
| P1 | compat-gap | honcho | sdk-export-missing | core-compat-adapter | honcho: plugin SDK import aliases are missing from target package exports |
| P1 | inspector-gap | kitchen-sink | before-tool-call-probe | inspector-follow-up | kitchen-sink: before_tool_call needs terminal/block/approval probes |
| P1 | inspector-gap | kitchen-sink | conversation-access-hook | inspector-follow-up | kitchen-sink: conversation-access hooks need privacy-boundary probes |
| P1 | inspector-gap | llm-trace-phoenix | conversation-access-hook | inspector-follow-up | llm-trace-phoenix: conversation-access hooks need privacy-boundary probes |
| P1 | inspector-gap | memory-lancedb | conversation-access-hook | inspector-follow-up | memory-lancedb: conversation-access hooks need privacy-boundary probes |
| P1 | inspector-gap | memory-tencentdb | conversation-access-hook | inspector-follow-up | memory-tencentdb: conversation-access hooks need privacy-boundary probes |
| P1 | inspector-gap | memos-cloud | conversation-access-hook | inspector-follow-up | memos-cloud: conversation-access hooks need privacy-boundary probes |
| P1 | inspector-gap | nemoclaw | before-tool-call-probe | inspector-follow-up | nemoclaw: before_tool_call needs terminal/block/approval probes |
| P1 | inspector-gap | openclaw-telemetry | before-tool-call-probe | inspector-follow-up | openclaw-telemetry: before_tool_call needs terminal/block/approval probes |
| P1 | inspector-gap | openclaw-telemetry | conversation-access-hook | inspector-follow-up | openclaw-telemetry: conversation-access hooks need privacy-boundary probes |
| P1 | inspector-gap | opik-openclaw | before-tool-call-probe | inspector-follow-up | opik-openclaw: before_tool_call needs terminal/block/approval probes |
| P1 | inspector-gap | opik-openclaw | conversation-access-hook | inspector-follow-up | opik-openclaw: conversation-access hooks need privacy-boundary probes |
| P1 | inspector-gap | wecom | before-tool-call-probe | inspector-follow-up | wecom: before_tool_call needs terminal/block/approval probes |
## Ref Regressions
@ -66,15 +61,34 @@ _none_
## Policy Findings
| Action | ID | Message | Evidence |
| ------ | ------------------------------------------------- | -------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| warn | compatibility-report.live-p0-issues | 2 live P0 issues tracked | codex-app-server:sdk-export-missing:untracked, hyperspell:unknown-hook-name:none |
| warn | execution-results.blocked.wecom.registerChannel.0 | allowed-blocked: captured registration requires includeChannelRuntime=true | .crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json, registerChannel, captured registration requires includeChannelRuntime=true, channel-runtime-harness |
| warn | execution-results.blocked.wecom.registerTool.2 | expected-warning: captured registration has no object descriptor | .crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json, registerTool, captured registration has no object descriptor, tool-factory-descriptor |
| Action | ID | Message | Evidence |
| ------ | ------------------------------------------------------- | --------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| warn | execution-results.audit-findings | 12 package audit findings | clawrouter:12 |
| warn | execution-results.blocked.clawrouter.registerService.29 | allowed-blocked: captured registration requires includeLifecycle=true | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerService, captured registration requires includeLifecycle=true, service-lifecycle-harness |
| warn | execution-results.blocked.clawrouter.registerTool.10 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes |
| warn | execution-results.blocked.clawrouter.registerTool.11 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes |
| warn | execution-results.blocked.clawrouter.registerTool.12 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes |
| warn | execution-results.blocked.clawrouter.registerTool.13 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes |
| warn | execution-results.blocked.clawrouter.registerTool.14 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes |
| warn | execution-results.blocked.clawrouter.registerTool.15 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes |
| warn | execution-results.blocked.clawrouter.registerTool.16 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes |
| warn | execution-results.blocked.clawrouter.registerTool.17 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes |
| warn | execution-results.blocked.clawrouter.registerTool.18 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes |
| warn | execution-results.blocked.clawrouter.registerTool.19 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes |
| warn | execution-results.blocked.clawrouter.registerTool.20 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes |
| warn | execution-results.blocked.clawrouter.registerTool.21 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes |
| warn | execution-results.blocked.clawrouter.registerTool.5 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes |
| warn | execution-results.blocked.clawrouter.registerTool.6 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes |
| warn | execution-results.blocked.clawrouter.registerTool.7 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes |
| warn | execution-results.blocked.clawrouter.registerTool.8 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes |
| warn | execution-results.blocked.clawrouter.registerTool.9 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes |
## Profile Findings
_none_
| Action | ID | Metric | Baseline | Current | Message |
| ------ | ---------------- | ------------ | -------- | ------- | ------------------------------------------------------- |
| warn | profile.wall-p95 | p95WallMs | 1273 | 2391 | p95WallMs regressed 87.8% over baseline |
| warn | profile.peak-rss | maxPeakRssMb | 65.1 | 455.4 | maxPeakRssMb regressed 390.29999999999995 over baseline |
## Artifacts

File diff suppressed because it is too large Load Diff

View File

@ -6,50 +6,119 @@ Generated: deterministic
| Metric | Value |
| --------------------------- | ----- |
| Fixtures | 29 |
| Entrypoints | 34 |
| Ready | 3 |
| Blocked | 31 |
| TypeScript loader required | 17 |
| Build required | 6 |
| Dependency install required | 17 |
| SDK alias required | 4 |
| Fixtures | 57 |
| Entrypoints | 103 |
| Ready | 6 |
| Blocked | 97 |
| TypeScript loader required | 24 |
| Build required | 9 |
| Dependency install required | 43 |
| SDK alias required | 3 |
## Entrypoints
| Fixture | Kind | Status | Path | Blockers | Assertions |
| ------------------ | ---------------- | --------------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| agentchat | extension | build-required | plugins/agentchat/integrations/openclaw-channel/dist/index.js | build-required | plugin build or source alias resolution runs before cold import |
| agentchat | setupEntry | build-required | plugins/agentchat/integrations/openclaw-channel/dist/setup-entry.js | build-required | plugin build or source alias resolution runs before cold import |
| wecom | extension | dependency-install-required | plugins/wecom/index.js | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| qqbot | extension | dependency-install-required | plugins/qqbot/preload.cjs | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| a2a-gateway | extension | ts-loader-required | plugins/a2a-gateway/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| hasdata | extension | ts-loader-required | plugins/hasdata/src/index.ts | ts-loader-required, top-level-side-effect-review, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; cold import sandbox blocks network/process side effects before register capture; fixture dependencies are installed in an isolated workspace before cold import |
| mcp-adapter | extension | ts-loader-required | plugins/mcp-adapter/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| llm-trace-phoenix | extension | ts-loader-required | plugins/llm-trace-phoenix/index.ts | ts-loader-required, top-level-side-effect-review | TypeScript source entrypoint is compiled or loaded before cold import; cold import sandbox blocks network/process side effects before register capture |
| opik-openclaw | extension | ts-loader-required | plugins/opik-openclaw/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| opik-openclaw | runtimeExtension | build-required | plugins/opik-openclaw/dist/index.js | build-required | plugin build or source alias resolution runs before cold import |
| lossless-claw | extension | build-required | plugins/lossless-claw/dist/index.js | build-required | plugin build or source alias resolution runs before cold import |
| connectclaw | extension | ts-loader-required | plugins/connectclaw/packages/plugin/index.ts | ts-loader-required | TypeScript source entrypoint is compiled or loaded before cold import |
| hyperspell | extension | ts-loader-required | plugins/hyperspell/index.ts | ts-loader-required, top-level-side-effect-review, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; cold import sandbox blocks network/process side effects before register capture; fixture dependencies are installed in an isolated workspace before cold import |
| honcho | extension | sdk-alias-required | plugins/honcho/dist/index.js | build-required, sdk-alias-required | plugin build or source alias resolution runs before cold import; target OpenClaw exports the imported SDK alias or provides a migration shim |
| composio | extension | ts-loader-required | plugins/composio/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| kitchen-sink | extension | ready | plugins/kitchen-sink/src/index.js | - | entrypoint can be imported by Node without fixture credentials; registration capture shim receives plugin registrations |
| kitchen-sink | runtimeExtension | ready | plugins/kitchen-sink/src/index.js | - | entrypoint can be imported by Node without fixture credentials; registration capture shim receives plugin registrations |
| kitchen-sink | setupEntry | ready | plugins/kitchen-sink/src/setup.js | - | entrypoint can be imported by Node without fixture credentials; registration capture shim receives plugin registrations |
| memory-tencentdb | extension | ts-loader-required | plugins/memory-tencentdb/.crabpot-package/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| ddingtalk | extension | ts-loader-required | plugins/ddingtalk/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| dingtalk-connector | extension | build-required | plugins/dingtalk-connector/dist/index.mjs | build-required | plugin build or source alias resolution runs before cold import |
| mocrane-wecom | extension | ts-loader-required | plugins/mocrane-wecom/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| yuanbao | extension | sdk-alias-required | plugins/yuanbao/.crabpot-package/dist/index.js | dependency-install-required, sdk-alias-required, sdk-alias-required, sdk-alias-required, sdk-alias-required | fixture dependencies are installed in an isolated workspace before cold import; target OpenClaw exports the imported SDK alias or provides a migration shim; target OpenClaw exports the imported SDK alias or provides a migration shim; target OpenClaw exports the imported SDK alias or provides a migration shim; target OpenClaw exports the imported SDK alias or provides a migration shim |
| openclaw-weixin | extension | ts-loader-required | plugins/openclaw-weixin/.crabpot-package/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| lightclawbot | extension | dependency-install-required | plugins/lightclawbot/.crabpot-package/dist/index.js | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| memu-engine | extension | ts-loader-required | plugins/memu-engine/index.ts | ts-loader-required, top-level-side-effect-review | TypeScript source entrypoint is compiled or loaded before cold import; cold import sandbox blocks network/process side effects before register capture |
| secureclaw | extension | build-required | plugins/secureclaw/secureclaw/dist/index.js | build-required | plugin build or source alias resolution runs before cold import |
| memos-cloud | extension | review-required | plugins/memos-cloud/index.js | top-level-side-effect-review | cold import sandbox blocks network/process side effects before register capture |
| clawmetry | extension | sdk-alias-required | plugins/clawmetry/clawhub-plugin/index.ts | ts-loader-required, dependency-install-required, sdk-alias-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import; target OpenClaw exports the imported SDK alias or provides a migration shim |
| clawmetry | runtimeExtension | sdk-alias-required | plugins/clawmetry/clawhub-plugin/dist/index.js | build-required, sdk-alias-required | plugin build or source alias resolution runs before cold import; target OpenClaw exports the imported SDK alias or provides a migration shim |
| codex-app-server | extension | ts-loader-required | plugins/codex-app-server/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| web-search-plus | extension | ts-loader-required | plugins/web-search-plus/index.ts | ts-loader-required, top-level-side-effect-review | TypeScript source entrypoint is compiled or loaded before cold import; cold import sandbox blocks network/process side effects before register capture |
| apify | extension | ts-loader-required | plugins/apify/src/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| inworld-tts | extension | ts-loader-required | plugins/inworld-tts/index.ts | ts-loader-required | TypeScript source entrypoint is compiled or loaded before cold import |
| Fixture | Kind | Status | Path | Blockers | Assertions |
| ---------------------- | ---------------- | --------------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| agentchat | extension | build-required | plugins/agentchat/integrations/openclaw-channel/dist/index.js | build-required | plugin build or source alias resolution runs before cold import |
| agentchat | setupEntry | build-required | plugins/agentchat/integrations/openclaw-channel/dist/setup-entry.js | build-required | plugin build or source alias resolution runs before cold import |
| wecom | extension | dependency-install-required | plugins/wecom/index.js | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| qqbot | extension | dependency-install-required | plugins/qqbot/preload.cjs | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| a2a-gateway | extension | ts-loader-required | plugins/a2a-gateway/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| hasdata | extension | ts-loader-required | plugins/hasdata/src/index.ts | ts-loader-required, top-level-side-effect-review, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; cold import sandbox blocks network/process side effects before register capture; fixture dependencies are installed in an isolated workspace before cold import |
| mcp-adapter | extension | ts-loader-required | plugins/mcp-adapter/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| llm-trace-phoenix | extension | ts-loader-required | plugins/llm-trace-phoenix/index.ts | ts-loader-required, top-level-side-effect-review | TypeScript source entrypoint is compiled or loaded before cold import; cold import sandbox blocks network/process side effects before register capture |
| opik-openclaw | extension | ts-loader-required | plugins/opik-openclaw/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| opik-openclaw | runtimeExtension | build-required | plugins/opik-openclaw/dist/index.js | build-required | plugin build or source alias resolution runs before cold import |
| openclaw-telemetry | extension | ts-loader-required | plugins/openclaw-telemetry/index.ts | ts-loader-required | TypeScript source entrypoint is compiled or loaded before cold import |
| lossless-claw | extension | build-required | plugins/lossless-claw/dist/index.js | build-required | plugin build or source alias resolution runs before cold import |
| connectclaw | extension | ts-loader-required | plugins/connectclaw/packages/plugin/index.ts | ts-loader-required | TypeScript source entrypoint is compiled or loaded before cold import |
| hyperspell | extension | ts-loader-required | plugins/hyperspell/index.ts | ts-loader-required, top-level-side-effect-review, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; cold import sandbox blocks network/process side effects before register capture; fixture dependencies are installed in an isolated workspace before cold import |
| honcho | extension | sdk-alias-required | plugins/honcho/dist/index.js | build-required, sdk-alias-required | plugin build or source alias resolution runs before cold import; target OpenClaw exports the imported SDK alias or provides a migration shim |
| composio | extension | ts-loader-required | plugins/composio/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| kitchen-sink | extension | ready | plugins/kitchen-sink/src/index.js | - | entrypoint can be imported by Node without fixture credentials; registration capture shim receives plugin registrations |
| kitchen-sink | runtimeExtension | ready | plugins/kitchen-sink/src/index.js | - | entrypoint can be imported by Node without fixture credentials; registration capture shim receives plugin registrations |
| kitchen-sink | setupEntry | ready | plugins/kitchen-sink/src/setup.js | - | entrypoint can be imported by Node without fixture credentials; registration capture shim receives plugin registrations |
| bluebubbles | extension | missing | plugins/bluebubbles/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| bluebubbles | runtimeExtension | ready | plugins/bluebubbles/.crabpot-package/dist/index.js | - | entrypoint can be imported by Node without fixture credentials; registration capture shim receives plugin registrations |
| bluebubbles | setupEntry | missing | plugins/bluebubbles/.crabpot-package/setup-entry.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| diagnostics-otel | extension | missing | plugins/diagnostics-otel/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| diagnostics-otel | runtimeExtension | dependency-install-required | plugins/diagnostics-otel/.crabpot-package/dist/index.js | top-level-side-effect-review, dependency-install-required | cold import sandbox blocks network/process side effects before register capture; fixture dependencies are installed in an isolated workspace before cold import |
| discord | extension | missing | plugins/discord/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| discord | runtimeExtension | dependency-install-required | plugins/discord/.crabpot-package/dist/index.js | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| discord | setupEntry | missing | plugins/discord/.crabpot-package/setup-entry.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| lobster | extension | missing | plugins/lobster/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| lobster | runtimeExtension | dependency-install-required | plugins/lobster/.crabpot-package/dist/index.js | top-level-side-effect-review, dependency-install-required | cold import sandbox blocks network/process side effects before register capture; fixture dependencies are installed in an isolated workspace before cold import |
| matrix | extension | ts-loader-required | plugins/matrix/.crabpot-package/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| matrix | setupEntry | ts-loader-required | plugins/matrix/.crabpot-package/setup-entry.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| msteams | extension | missing | plugins/msteams/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| msteams | runtimeExtension | dependency-install-required | plugins/msteams/.crabpot-package/dist/index.js | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| msteams | setupEntry | missing | plugins/msteams/.crabpot-package/setup-entry.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| nextcloud-talk | extension | missing | plugins/nextcloud-talk/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| nextcloud-talk | runtimeExtension | dependency-install-required | plugins/nextcloud-talk/.crabpot-package/dist/index.js | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| nextcloud-talk | setupEntry | missing | plugins/nextcloud-talk/.crabpot-package/setup-entry.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| nostr | extension | missing | plugins/nostr/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| nostr | runtimeExtension | dependency-install-required | plugins/nostr/.crabpot-package/dist/index.js | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| nostr | setupEntry | missing | plugins/nostr/.crabpot-package/setup-entry.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| voice-call | extension | missing | plugins/voice-call/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| voice-call | runtimeExtension | dependency-install-required | plugins/voice-call/.crabpot-package/dist/index.js | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| zalo | extension | missing | plugins/zalo/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| zalo | runtimeExtension | dependency-install-required | plugins/zalo/.crabpot-package/dist/index.js | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| zalo | setupEntry | missing | plugins/zalo/.crabpot-package/setup-entry.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| zalouser | extension | missing | plugins/zalouser/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| zalouser | runtimeExtension | dependency-install-required | plugins/zalouser/.crabpot-package/dist/index.js | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| zalouser | setupEntry | missing | plugins/zalouser/.crabpot-package/setup-entry.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| feishu | extension | missing | plugins/feishu/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| feishu | runtimeExtension | dependency-install-required | plugins/feishu/.crabpot-package/dist/index.js | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| feishu | setupEntry | missing | plugins/feishu/.crabpot-package/setup-entry.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| tlon | extension | missing | plugins/tlon/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| tlon | runtimeExtension | dependency-install-required | plugins/tlon/.crabpot-package/dist/index.js | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| tlon | setupEntry | missing | plugins/tlon/.crabpot-package/setup-entry.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| twitch | extension | missing | plugins/twitch/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| twitch | runtimeExtension | dependency-install-required | plugins/twitch/.crabpot-package/dist/index.js | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| twitch | setupEntry | missing | plugins/twitch/.crabpot-package/setup-entry.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| mattermost | extension | ts-loader-required | plugins/mattermost/.crabpot-package/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| mattermost | setupEntry | ts-loader-required | plugins/mattermost/.crabpot-package/setup-entry.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| synology-chat | extension | missing | plugins/synology-chat/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| synology-chat | runtimeExtension | dependency-install-required | plugins/synology-chat/.crabpot-package/dist/index.js | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| synology-chat | setupEntry | missing | plugins/synology-chat/.crabpot-package/setup-entry.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| brave-plugin | extension | missing | plugins/brave-plugin/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| brave-plugin | runtimeExtension | ready | plugins/brave-plugin/.crabpot-package/dist/index.js | - | entrypoint can be imported by Node without fixture credentials; registration capture shim receives plugin registrations |
| codex | extension | missing | plugins/codex/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| codex | runtimeExtension | dependency-install-required | plugins/codex/.crabpot-package/dist/index.js | top-level-side-effect-review, dependency-install-required | cold import sandbox blocks network/process side effects before register capture; fixture dependencies are installed in an isolated workspace before cold import |
| diagnostics-prometheus | extension | missing | plugins/diagnostics-prometheus/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| diagnostics-prometheus | runtimeExtension | ready | plugins/diagnostics-prometheus/.crabpot-package/dist/index.js | - | entrypoint can be imported by Node without fixture credentials; registration capture shim receives plugin registrations |
| google-meet | extension | missing | plugins/google-meet/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| google-meet | runtimeExtension | dependency-install-required | plugins/google-meet/.crabpot-package/dist/index.js | top-level-side-effect-review, dependency-install-required | cold import sandbox blocks network/process side effects before register capture; fixture dependencies are installed in an isolated workspace before cold import |
| diffs | extension | missing | plugins/diffs/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| diffs | runtimeExtension | dependency-install-required | plugins/diffs/.crabpot-package/dist/index.js | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| memory-lancedb | extension | missing | plugins/memory-lancedb/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| memory-lancedb | runtimeExtension | dependency-install-required | plugins/memory-lancedb/.crabpot-package/dist/index.js | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| openclaw-qqbot | extension | missing | plugins/openclaw-qqbot/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| openclaw-qqbot | runtimeExtension | dependency-install-required | plugins/openclaw-qqbot/.crabpot-package/dist/index.js | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| openclaw-qqbot | setupEntry | missing | plugins/openclaw-qqbot/.crabpot-package/setup-entry.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| whatsapp | extension | missing | plugins/whatsapp/.crabpot-package/index.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| whatsapp | runtimeExtension | dependency-install-required | plugins/whatsapp/.crabpot-package/dist/index.js | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| whatsapp | setupEntry | missing | plugins/whatsapp/.crabpot-package/setup-entry.ts | missing-entrypoint | plugin package metadata points at an existing OpenClaw entrypoint |
| nemoclaw | extension | build-required | plugins/nemoclaw/nemoclaw/dist/index.js | build-required | plugin build or source alias resolution runs before cold import |
| memory-tencentdb | extension | ts-loader-required | plugins/memory-tencentdb/.crabpot-package/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| ddingtalk | extension | ts-loader-required | plugins/ddingtalk/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| dingtalk-connector | extension | build-required | plugins/dingtalk-connector/dist/index.mjs | build-required | plugin build or source alias resolution runs before cold import |
| mocrane-wecom | extension | ts-loader-required | plugins/mocrane-wecom/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| yuanbao | extension | ts-loader-required | plugins/yuanbao/.crabpot-package/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| yuanbao | setupEntry | ts-loader-required | plugins/yuanbao/.crabpot-package/setup-entry.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| openclaw-weixin | extension | ts-loader-required | plugins/openclaw-weixin/.crabpot-package/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| openclaw-weixin | runtimeExtension | dependency-install-required | plugins/openclaw-weixin/.crabpot-package/dist/index.js | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| lightclawbot | extension | dependency-install-required | plugins/lightclawbot/.crabpot-package/dist/index.js | dependency-install-required | fixture dependencies are installed in an isolated workspace before cold import |
| telnyx-sms | extension | build-required | plugins/telnyx-sms/dist/index.js | build-required | plugin build or source alias resolution runs before cold import |
| telnyx-sms | setupEntry | build-required | plugins/telnyx-sms/dist/setup-entry.js | build-required | plugin build or source alias resolution runs before cold import |
| clawrouter | extension | dependency-install-required | plugins/clawrouter/dist/index.js | top-level-side-effect-review, dependency-install-required | cold import sandbox blocks network/process side effects before register capture; fixture dependencies are installed in an isolated workspace before cold import |
| memu-engine | extension | ts-loader-required | plugins/memu-engine/index.ts | ts-loader-required, top-level-side-effect-review | TypeScript source entrypoint is compiled or loaded before cold import; cold import sandbox blocks network/process side effects before register capture |
| secureclaw | extension | build-required | plugins/secureclaw/secureclaw/dist/index.js | build-required | plugin build or source alias resolution runs before cold import |
| memos-cloud | extension | review-required | plugins/memos-cloud/index.js | top-level-side-effect-review | cold import sandbox blocks network/process side effects before register capture |
| clawmetry | extension | sdk-alias-required | plugins/clawmetry/clawhub-plugin/index.ts | ts-loader-required, dependency-install-required, sdk-alias-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import; target OpenClaw exports the imported SDK alias or provides a migration shim |
| clawmetry | runtimeExtension | sdk-alias-required | plugins/clawmetry/clawhub-plugin/dist/index.js | build-required, sdk-alias-required | plugin build or source alias resolution runs before cold import; target OpenClaw exports the imported SDK alias or provides a migration shim |
| codex-app-server | extension | ts-loader-required | plugins/codex-app-server/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| web-search-plus | extension | ts-loader-required | plugins/web-search-plus/index.ts | ts-loader-required, top-level-side-effect-review | TypeScript source entrypoint is compiled or loaded before cold import; cold import sandbox blocks network/process side effects before register capture |
| web-search-plus | runtimeExtension | review-required | plugins/web-search-plus/dist/index.js | top-level-side-effect-review | cold import sandbox blocks network/process side effects before register capture |
| apify | extension | ts-loader-required | plugins/apify/src/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
| inworld-tts | extension | ts-loader-required | plugins/inworld-tts/index.ts | ts-loader-required | TypeScript source entrypoint is compiled or loaded before cold import |

View File

@ -0,0 +1,169 @@
{
"schemaVersion": 1,
"generatedAt": "2026-05-07T09:32:17Z",
"runUrl": "https://github.com/openclaw/crabpot/actions/runs/25487512981",
"mode": "dependabot",
"openclawLabel": "openclaw@latest (2026.5.6, c97b9f79ec43)",
"status": "pass",
"metrics": {
"fixtures": 57,
"hardBreakages": 0,
"warnings": 126,
"suggestions": 155,
"issues": 281,
"p0Issues": 0,
"p1Issues": 15,
"liveIssues": 0,
"liveP0Issues": 0,
"compatGaps": 2,
"deprecationWarnings": 42,
"inspectorGaps": 163,
"upstreamIssues": 74,
"contractProbes": 277,
"policyFailures": 0,
"policyWarnings": 19,
"refDiffFailures": 0,
"profileFailures": 0,
"executionPass": 12,
"executionFail": 0,
"executionBlocked": 18,
"syntheticReady": 434,
"syntheticBlocked": 0,
"syntheticTotal": 434,
"coldReady": 6,
"coldBlocked": 97,
"coldTotal": 103,
"workspaceEntrypoints": 103,
"workspaceInstalls": 43,
"workspaceBuilds": 11,
"platformWindowsRisks": 14,
"platformContainerRisks": 14,
"loaderJitiCandidates": 25,
"importLoopP50Ms": 2421,
"importLoopP95Ms": 2471,
"importLoopOpenClawLifecycleCount": 3,
"importLoopOpenClawImportP50Ms": 84,
"importLoopOpenClawImportP95Ms": 88.6,
"importLoopOpenClawActivationP50Ms": 0.3,
"importLoopOpenClawActivationP95Ms": 1.2,
"importLoopMetricBasis": "baseline-adjusted",
"importLoopMaxRssMb": 13.3,
"importLoopMaxCpuMs": 35,
"importLoopRssSampleCount": 287,
"importLoopCpuSampleCount": 287,
"runtimeP50Ms": 2337,
"runtimeP95Ms": 2391,
"runtimeMaxRssMb": 455.4,
"runtimeRssSampleCount": 1993,
"runtimeCpuSampleCount": 1993,
"runtimeSamplesPerCommand": 3,
"runtimeWallTimeBasis": "command-median-p95"
},
"baseline": null,
"topIssues": [
{
"id": "CRABPOT-54E8B3D1",
"severity": "P1",
"issueClass": "compat-gap",
"fixture": "clawmetry",
"code": "sdk-export-missing",
"decision": "core-compat-adapter",
"title": "clawmetry: plugin SDK import aliases are missing from target package exports"
},
{
"id": "CRABPOT-2D165A73",
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "honcho",
"code": "conversation-access-hook",
"decision": "inspector-follow-up",
"title": "honcho: conversation-access hooks need privacy-boundary probes"
},
{
"id": "CRABPOT-85AD745B",
"severity": "P1",
"issueClass": "compat-gap",
"fixture": "honcho",
"code": "sdk-export-missing",
"decision": "core-compat-adapter",
"title": "honcho: plugin SDK import aliases are missing from target package exports"
},
{
"id": "CRABPOT-66F07BB5",
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "kitchen-sink",
"code": "before-tool-call-probe",
"decision": "inspector-follow-up",
"title": "kitchen-sink: before_tool_call needs terminal/block/approval probes"
},
{
"id": "CRABPOT-ADFE9067",
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "kitchen-sink",
"code": "conversation-access-hook",
"decision": "inspector-follow-up",
"title": "kitchen-sink: conversation-access hooks need privacy-boundary probes"
},
{
"id": "CRABPOT-5D9C0F25",
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "llm-trace-phoenix",
"code": "conversation-access-hook",
"decision": "inspector-follow-up",
"title": "llm-trace-phoenix: conversation-access hooks need privacy-boundary probes"
},
{
"id": "CRABPOT-0C34E538",
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "memory-lancedb",
"code": "conversation-access-hook",
"decision": "inspector-follow-up",
"title": "memory-lancedb: conversation-access hooks need privacy-boundary probes"
},
{
"id": "CRABPOT-5072796E",
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "memory-tencentdb",
"code": "conversation-access-hook",
"decision": "inspector-follow-up",
"title": "memory-tencentdb: conversation-access hooks need privacy-boundary probes"
},
{
"id": "CRABPOT-A1A9B1D2",
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "memos-cloud",
"code": "conversation-access-hook",
"decision": "inspector-follow-up",
"title": "memos-cloud: conversation-access hooks need privacy-boundary probes"
},
{
"id": "CRABPOT-120FF1E0",
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "nemoclaw",
"code": "before-tool-call-probe",
"decision": "inspector-follow-up",
"title": "nemoclaw: before_tool_call needs terminal/block/approval probes"
}
],
"artifactPaths": {
"compatibility": "reports/crabpot-report.json",
"ciSummary": "reports/crabpot-ci-summary.json",
"synthetic": "reports/crabpot-synthetic-probes.json",
"coldImport": "reports/crabpot-cold-import.json",
"workspace": "reports/crabpot-workspace-plan.json",
"platform": "reports/crabpot-platform-probes.json",
"importLoop": "reports/crabpot-import-loop-profile.json",
"execution": "reports/crabpot-execution-results.json",
"runtimeProfile": "reports/crabpot-runtime-profile.json",
"refDiff": "reports/crabpot-ref-diff.json",
"profileDiff": "reports/crabpot-profile-diff.json",
"ciPolicy": "reports/crabpot-ci-policy.json"
}
}

View File

@ -2,64 +2,362 @@
"generatedAt": "deterministic",
"resultsDir": ".crabpot/results",
"summary": {
"artifactCount": 2,
"artifactCount": 4,
"captureArtifactCount": 1,
"syntheticArtifactCount": 1,
"capturedRegistrationCount": 8,
"passCount": 6,
"auditArtifactCount": 1,
"profileArtifactCount": 1,
"capturedRegistrationCount": 30,
"auditFindingCount": 12,
"executionWallMs": 27807,
"maxPeakRssMb": 1123.9,
"maxCpuMsEstimate": 17790,
"passCount": 12,
"failCount": 0,
"blockedCount": 2
"blockedCount": 18
},
"artifacts": [
{
"artifactPath": ".crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.capture.json",
"fixture": "wecom",
"artifactPath": ".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.capture.json",
"fixture": "clawrouter",
"kind": "capture",
"entrypoint": ".crabpot/workspaces/wecom/index.js",
"entrypoint": ".crabpot/workspaces/clawrouter/dist/index.js",
"status": "captured",
"capturedCount": 8,
"capturedCount": 30,
"captured": [
"registration:registerChannel",
"registration:registerProvider",
"registration:registerImageGenerationProvider",
"registration:registerMusicGenerationProvider",
"registration:registerVideoGenerationProvider",
"registration:registerWebSearchProvider",
"registration:registerTool",
"registration:registerTool",
"hook:before_prompt_build",
"hook:subagent_delivery_target",
"hook:subagent_spawned",
"hook:subagent_ended",
"hook:before_tool_call"
"registration:registerTool",
"registration:registerTool",
"registration:registerTool",
"registration:registerTool",
"registration:registerTool",
"registration:registerTool",
"registration:registerTool",
"registration:registerTool",
"registration:registerTool",
"registration:registerTool",
"registration:registerTool",
"registration:registerTool",
"registration:registerTool",
"registration:registerTool",
"registration:registerTool",
"registration:registerCommand",
"registration:registerCommand",
"registration:registerCommand",
"registration:registerCommand",
"registration:registerCommand",
"registration:registerCommand",
"registration:registerCommand",
"registration:registerService"
]
},
{
"artifactPath": ".crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json",
"fixture": "wecom",
"artifactPath": ".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"fixture": "clawrouter",
"kind": "synthetic",
"entrypoint": ".crabpot/workspaces/wecom/index.js",
"entrypoint": ".crabpot/workspaces/clawrouter/dist/index.js",
"status": "captured",
"summary": {
"probeCount": 8,
"passCount": 6,
"probeCount": 30,
"passCount": 12,
"failCount": 0,
"blockedCount": 2
"blockedCount": 18
},
"failures": [],
"blocked": [
{
"captureIndex": 0,
"kind": "registration",
"seam": "registerChannel",
"label": "registerChannel",
"status": "blocked",
"reason": "captured registration requires includeChannelRuntime=true"
},
{
"captureIndex": 2,
"captureIndex": 5,
"kind": "registration",
"seam": "registerTool",
"label": "registerTool",
"label": "registerTool.execute",
"status": "blocked",
"reason": "captured registration has no object descriptor"
"error": "fetch failed",
"reason": "captured tool requires live network access",
"blockedBy": "clawrouter-live-network-tools"
},
{
"captureIndex": 6,
"kind": "registration",
"seam": "registerTool",
"label": "registerTool.execute",
"status": "blocked",
"error": "fetch failed",
"reason": "captured tool requires live network access",
"blockedBy": "clawrouter-live-network-tools"
},
{
"captureIndex": 7,
"kind": "registration",
"seam": "registerTool",
"label": "registerTool.execute",
"status": "blocked",
"error": "fetch failed",
"reason": "captured tool requires live network access",
"blockedBy": "clawrouter-live-network-tools"
},
{
"captureIndex": 8,
"kind": "registration",
"seam": "registerTool",
"label": "registerTool.execute",
"status": "blocked",
"error": "fetch failed",
"reason": "captured tool requires live network access",
"blockedBy": "clawrouter-live-network-tools"
},
{
"captureIndex": 9,
"kind": "registration",
"seam": "registerTool",
"label": "registerTool.execute",
"status": "blocked",
"error": "fetch failed",
"reason": "captured tool requires live network access",
"blockedBy": "clawrouter-live-network-tools"
},
{
"captureIndex": 10,
"kind": "registration",
"seam": "registerTool",
"label": "registerTool.execute",
"status": "blocked",
"error": "fetch failed",
"reason": "captured tool requires live network access",
"blockedBy": "clawrouter-live-network-tools"
},
{
"captureIndex": 11,
"kind": "registration",
"seam": "registerTool",
"label": "registerTool.execute",
"status": "blocked",
"error": "fetch failed",
"reason": "captured tool requires live network access",
"blockedBy": "clawrouter-live-network-tools"
},
{
"captureIndex": 12,
"kind": "registration",
"seam": "registerTool",
"label": "registerTool.execute",
"status": "blocked",
"error": "fetch failed",
"reason": "captured tool requires live network access",
"blockedBy": "clawrouter-live-network-tools"
},
{
"captureIndex": 13,
"kind": "registration",
"seam": "registerTool",
"label": "registerTool.execute",
"status": "blocked",
"error": "fetch failed",
"reason": "captured tool requires live network access",
"blockedBy": "clawrouter-live-network-tools"
},
{
"captureIndex": 14,
"kind": "registration",
"seam": "registerTool",
"label": "registerTool.execute",
"status": "blocked",
"error": "fetch failed",
"reason": "captured tool requires live network access",
"blockedBy": "clawrouter-live-network-tools"
},
{
"captureIndex": 15,
"kind": "registration",
"seam": "registerTool",
"label": "registerTool.execute",
"status": "blocked",
"error": "fetch failed",
"reason": "captured tool requires live network access",
"blockedBy": "clawrouter-live-network-tools"
},
{
"captureIndex": 16,
"kind": "registration",
"seam": "registerTool",
"label": "registerTool.execute",
"status": "blocked",
"error": "fetch failed",
"reason": "captured tool requires live network access",
"blockedBy": "clawrouter-live-network-tools"
},
{
"captureIndex": 17,
"kind": "registration",
"seam": "registerTool",
"label": "registerTool.execute",
"status": "blocked",
"error": "fetch failed",
"reason": "captured tool requires live network access",
"blockedBy": "clawrouter-live-network-tools"
},
{
"captureIndex": 18,
"kind": "registration",
"seam": "registerTool",
"label": "registerTool.execute",
"status": "blocked",
"error": "fetch failed",
"reason": "captured tool requires live network access",
"blockedBy": "clawrouter-live-network-tools"
},
{
"captureIndex": 19,
"kind": "registration",
"seam": "registerTool",
"label": "registerTool.execute",
"status": "blocked",
"error": "fetch failed",
"reason": "captured tool requires live network access",
"blockedBy": "clawrouter-live-network-tools"
},
{
"captureIndex": 20,
"kind": "registration",
"seam": "registerTool",
"label": "registerTool.execute",
"status": "blocked",
"error": "fetch failed",
"reason": "captured tool requires live network access",
"blockedBy": "clawrouter-live-network-tools"
},
{
"captureIndex": 21,
"kind": "registration",
"seam": "registerTool",
"label": "registerTool.execute",
"status": "blocked",
"error": "fetch failed",
"reason": "captured tool requires live network access",
"blockedBy": "clawrouter-live-network-tools"
},
{
"captureIndex": 29,
"kind": "registration",
"seam": "registerService",
"label": "registerService",
"status": "blocked",
"reason": "captured registration requires includeLifecycle=true"
}
]
},
{
"artifactPath": ".crabpot/results/clawrouter/execution-profile.json",
"fixture": "clawrouter",
"kind": "profile",
"entrypoint": "-",
"status": "pass",
"summary": {
"stepCount": 7,
"failCount": 0,
"totalWallMs": 27807,
"maxPeakRssMb": 1123.9,
"maxCpuMsEstimate": 17790
},
"slowestSteps": [
{
"fixture": "clawrouter",
"entrypoint": "cold-import.extension:clawrouter:plugins-clawrouter-dist-index-js",
"packagePath": "plugins/clawrouter/package.json",
"status": "dependency-install-required",
"kind": "synthetic-probe",
"command": "CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/synthetic-probes.mjs --entrypoint ./dist/index.js --mock-sdk --output ../../results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"cwd": ".crabpot/workspaces/clawrouter",
"artifactPath": ".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json",
"exitCode": 0,
"wallMs": 12125,
"peakRssMb": 139,
"peakCpuPercent": 42.3,
"cpuMsEstimate": 593
},
{
"fixture": "clawrouter",
"entrypoint": "cold-import.extension:clawrouter:plugins-clawrouter-dist-index-js",
"packagePath": "plugins/clawrouter/package.json",
"status": "dependency-install-required",
"kind": "install",
"command": "npm install --ignore-scripts",
"cwd": ".crabpot/workspaces/clawrouter",
"artifactPath": null,
"exitCode": 0,
"wallMs": 7565,
"peakRssMb": 1123.9,
"peakCpuPercent": 349.6,
"cpuMsEstimate": 17790
},
{
"fixture": "clawrouter",
"entrypoint": "cold-import.extension:clawrouter:plugins-clawrouter-dist-index-js",
"packagePath": "plugins/clawrouter/package.json",
"status": "dependency-install-required",
"kind": "prepare",
"command": "mkdir -p .crabpot/workspaces/clawrouter && rsync -a --delete plugins/clawrouter/ .crabpot/workspaces/clawrouter/",
"cwd": ".",
"artifactPath": null,
"exitCode": 0,
"wallMs": 4427,
"peakRssMb": 0,
"peakCpuPercent": 0,
"cpuMsEstimate": 0
},
{
"fixture": "clawrouter",
"entrypoint": "cold-import.extension:clawrouter:plugins-clawrouter-dist-index-js",
"packagePath": "plugins/clawrouter/package.json",
"status": "dependency-install-required",
"kind": "audit",
"command": "npm audit --json > ../../results/clawrouter/package-audit.json || true",
"cwd": ".crabpot/workspaces/clawrouter",
"artifactPath": ".crabpot/results/clawrouter/package-audit.json",
"exitCode": 0,
"rawExitCode": 1,
"wallMs": 1526,
"peakRssMb": 110.3,
"peakCpuPercent": 40.8,
"cpuMsEstimate": 477
},
{
"fixture": "clawrouter",
"entrypoint": "cold-import.extension:clawrouter:plugins-clawrouter-dist-index-js",
"packagePath": "plugins/clawrouter/package.json",
"status": "dependency-install-required",
"kind": "capture",
"command": "CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/run-cold-import-capture.mjs ./dist/index.js --mock-sdk --output ../../results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.capture.json",
"cwd": ".crabpot/workspaces/clawrouter",
"artifactPath": ".crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.capture.json",
"exitCode": 0,
"wallMs": 1225,
"peakRssMb": 78.7,
"peakCpuPercent": 16.8,
"cpuMsEstimate": 145
}
]
},
{
"artifactPath": ".crabpot/results/clawrouter/package-audit.json",
"fixture": "clawrouter",
"kind": "audit",
"entrypoint": "-",
"status": "warning",
"findingCount": 12,
"vulnerabilities": {
"info": 0,
"low": 0,
"moderate": 11,
"high": 1,
"critical": 0,
"total": 12
}
}
]
}

View File

@ -5,30 +5,70 @@ Results dir: .crabpot/results
## Summary
| Metric | Value |
| ---------------------------- | ----- |
| Artifacts | 2 |
| Capture artifacts | 1 |
| Synthetic artifacts | 1 |
| Captured registrations/hooks | 8 |
| Pass | 6 |
| Fail | 0 |
| Blocked | 2 |
| Metric | Value |
| ---------------------------- | --------- |
| Artifacts | 4 |
| Capture artifacts | 1 |
| Synthetic artifacts | 1 |
| Audit artifacts | 1 |
| Profile artifacts | 1 |
| Captured registrations/hooks | 30 |
| Audit findings | 12 |
| Execution wall | 27807 ms |
| Max peak RSS | 1123.9 MB |
| Max CPU estimate | 17790 ms |
| Pass | 12 |
| Fail | 0 |
| Blocked | 18 |
## Artifacts
| Fixture | Kind | Status | Entrypoint | Result | Artifact |
| ------- | --------- | -------- | ---------------------------------- | --------------------------- | ---------------------------------------------------------------------------------------- |
| wecom | capture | captured | .crabpot/workspaces/wecom/index.js | 8 captured | .crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.capture.json |
| wecom | synthetic | captured | .crabpot/workspaces/wecom/index.js | 6 pass / 0 fail / 2 blocked | .crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json |
| Fixture | Kind | Status | Entrypoint | Result | Artifact |
| ---------- | --------- | -------- | -------------------------------------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------ |
| clawrouter | capture | captured | .crabpot/workspaces/clawrouter/dist/index.js | 30 captured | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.capture.json |
| clawrouter | synthetic | captured | .crabpot/workspaces/clawrouter/dist/index.js | 12 pass / 0 fail / 18 blocked | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json |
| clawrouter | profile | pass | - | 7 steps / 27807 ms / 1123.9 MB | .crabpot/results/clawrouter/execution-profile.json |
| clawrouter | audit | warning | - | 12 audit findings | .crabpot/results/clawrouter/package-audit.json |
## Blocked Synthetic Probes
| Fixture | Kind | Seam | Label | Reason | Artifact |
| ------- | ------------ | --------------- | --------------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| wecom | registration | registerChannel | registerChannel | captured registration requires includeChannelRuntime=true | .crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json |
| wecom | registration | registerTool | registerTool | captured registration has no object descriptor | .crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json |
| Fixture | Kind | Seam | Label | Reason | Artifact |
| ---------- | ------------ | --------------- | -------------------- | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| clawrouter | registration | registerTool | registerTool.execute | captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json |
| clawrouter | registration | registerTool | registerTool.execute | captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json |
| clawrouter | registration | registerTool | registerTool.execute | captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json |
| clawrouter | registration | registerTool | registerTool.execute | captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json |
| clawrouter | registration | registerTool | registerTool.execute | captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json |
| clawrouter | registration | registerTool | registerTool.execute | captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json |
| clawrouter | registration | registerTool | registerTool.execute | captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json |
| clawrouter | registration | registerTool | registerTool.execute | captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json |
| clawrouter | registration | registerTool | registerTool.execute | captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json |
| clawrouter | registration | registerTool | registerTool.execute | captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json |
| clawrouter | registration | registerTool | registerTool.execute | captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json |
| clawrouter | registration | registerTool | registerTool.execute | captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json |
| clawrouter | registration | registerTool | registerTool.execute | captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json |
| clawrouter | registration | registerTool | registerTool.execute | captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json |
| clawrouter | registration | registerTool | registerTool.execute | captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json |
| clawrouter | registration | registerTool | registerTool.execute | captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json |
| clawrouter | registration | registerTool | registerTool.execute | captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json |
| clawrouter | registration | registerService | registerService | captured registration requires includeLifecycle=true | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json |
## Failed Synthetic Probes
_none_
## Dependency Audit Artifacts
| Fixture | Findings | Vulnerabilities | Artifact |
| ---------- | -------- | ----------------------------------------------------------------- | ---------------------------------------------- |
| clawrouter | 12 | {"info":0,"low":0,"moderate":11,"high":1,"critical":0,"total":12} | .crabpot/results/clawrouter/package-audit.json |
## Execution Profiles
| Fixture | Step | Wall | Peak RSS | CPU Estimate | Command |
| ---------- | --------------- | -------- | --------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| clawrouter | synthetic-probe | 12125 ms | 139 MB | 593 ms | CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/synthetic-probes.mjs --entrypoint ./dist/index.js --mock-sdk --output ../../results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json |
| clawrouter | install | 7565 ms | 1123.9 MB | 17790 ms | npm install --ignore-scripts |
| clawrouter | prepare | 4427 ms | 0 MB | 0 ms | mkdir -p .crabpot/workspaces/clawrouter && rsync -a --delete plugins/clawrouter/ .crabpot/workspaces/clawrouter/ |
| clawrouter | audit | 1526 ms | 110.3 MB | 477 ms | npm audit --json > ../../results/clawrouter/package-audit.json || true |
| clawrouter | capture | 1225 ms | 78.7 MB | 145 ms | CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/run-cold-import-capture.mjs ./dist/index.js --mock-sdk --output ../../results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.capture.json |

View File

@ -1,28 +1,28 @@
{
"generatedAt": "2026-04-29T00:29:15.829Z",
"generatedAt": "2026-05-05T03:26:53.567Z",
"status": "pass",
"pluginRoot": ".crabpot/generated-surface-plugin",
"targetOpenClaw": {
"status": "ok",
"configuredPath": "./openclaw",
"hookNameCount": 32,
"apiRegistrarCount": 41,
"sdkExportCount": 316,
"hookNameCount": 35,
"apiRegistrarCount": 49,
"sdkExportCount": 296,
"manifestContractFieldCount": 17,
"directCallbackCount": 1
},
"summary": {
"expectedHookCount": 32,
"expectedRegistrarCount": 41,
"expectedHookCount": 35,
"expectedRegistrarCount": 49,
"expectedDirectCallbackCount": 1,
"expectedSdkExportCount": 316,
"expectedSdkExportCount": 296,
"expectedManifestContractCount": 17,
"staticHookCount": 32,
"staticRegistrarCount": 41,
"staticSdkImportCount": 316,
"staticHookCount": 35,
"staticRegistrarCount": 49,
"staticSdkImportCount": 296,
"staticManifestContractCount": 17,
"runtimeHookCount": 32,
"runtimeRegistrarCount": 41,
"runtimeHookCount": 35,
"runtimeRegistrarCount": 49,
"runtimeDirectCallbackCount": 1,
"missingStaticCount": 0,
"missingRuntimeCount": 0
@ -32,6 +32,7 @@
"after_compaction",
"after_tool_call",
"agent_end",
"agent_turn_prepare",
"before_agent_finalize",
"before_agent_reply",
"before_agent_start",
@ -43,8 +44,10 @@
"before_prompt_build",
"before_reset",
"before_tool_call",
"cron_changed",
"gateway_start",
"gateway_stop",
"heartbeat_prompt_contribution",
"inbound_claim",
"llm_input",
"llm_output",
@ -63,6 +66,7 @@
"tool_result_persist"
],
"registrars": [
"registerAgentEventSubscription",
"registerAgentHarness",
"registerAgentToolResultMiddleware",
"registerAutoEnableProbe",
@ -74,6 +78,7 @@
"registerCompactionProvider",
"registerConfigMigration",
"registerContextEngine",
"registerControlUiDescriptor",
"registerDetachedTaskRuntime",
"registerGatewayDiscoveryService",
"registerGatewayMethod",
@ -92,15 +97,21 @@
"registerMigrationProvider",
"registerMusicGenerationProvider",
"registerNodeHostCommand",
"registerNodeInvokePolicy",
"registerProvider",
"registerRealtimeTranscriptionProvider",
"registerRealtimeVoiceProvider",
"registerReload",
"registerRuntimeLifecycle",
"registerSecurityAuditCollector",
"registerService",
"registerSessionExtension",
"registerSessionSchedulerJob",
"registerSpeechProvider",
"registerTextTransforms",
"registerTool",
"registerToolMetadata",
"registerTrustedToolPolicy",
"registerVideoGenerationProvider",
"registerWebFetchProvider",
"registerWebSearchProvider"
@ -118,11 +129,13 @@
"openclaw/plugin-sdk/acp-binding-resolve-runtime",
"openclaw/plugin-sdk/acp-binding-runtime",
"openclaw/plugin-sdk/acp-runtime",
"openclaw/plugin-sdk/acp-runtime-backend",
"openclaw/plugin-sdk/agent-config-primitives",
"openclaw/plugin-sdk/agent-harness",
"openclaw/plugin-sdk/agent-harness-runtime",
"openclaw/plugin-sdk/agent-media-payload",
"openclaw/plugin-sdk/agent-runtime",
"openclaw/plugin-sdk/agent-runtime-test-contracts",
"openclaw/plugin-sdk/allow-from",
"openclaw/plugin-sdk/allowlist-config-edit",
"openclaw/plugin-sdk/approval-auth-runtime",
@ -134,20 +147,12 @@
"openclaw/plugin-sdk/approval-native-runtime",
"openclaw/plugin-sdk/approval-reply-runtime",
"openclaw/plugin-sdk/approval-runtime",
"openclaw/plugin-sdk/bluebubbles",
"openclaw/plugin-sdk/bluebubbles-policy",
"openclaw/plugin-sdk/async-lock-runtime",
"openclaw/plugin-sdk/boolean-param",
"openclaw/plugin-sdk/browser-cdp",
"openclaw/plugin-sdk/browser-config",
"openclaw/plugin-sdk/browser-config-runtime",
"openclaw/plugin-sdk/browser-config-support",
"openclaw/plugin-sdk/browser-control-auth",
"openclaw/plugin-sdk/browser-node-runtime",
"openclaw/plugin-sdk/browser-profiles",
"openclaw/plugin-sdk/browser-security-runtime",
"openclaw/plugin-sdk/browser-setup-tools",
"openclaw/plugin-sdk/browser-support",
"openclaw/plugin-sdk/bundled-channel-config-schema",
"openclaw/plugin-sdk/channel-actions",
"openclaw/plugin-sdk/channel-activity-runtime",
"openclaw/plugin-sdk/channel-config-helpers",
"openclaw/plugin-sdk/channel-config-primitives",
"openclaw/plugin-sdk/channel-config-schema",
@ -172,6 +177,7 @@
"openclaw/plugin-sdk/channel-policy",
"openclaw/plugin-sdk/channel-reply-options-runtime",
"openclaw/plugin-sdk/channel-reply-pipeline",
"openclaw/plugin-sdk/channel-route",
"openclaw/plugin-sdk/channel-runtime",
"openclaw/plugin-sdk/channel-runtime-context",
"openclaw/plugin-sdk/channel-secret-basic-runtime",
@ -181,7 +187,9 @@
"openclaw/plugin-sdk/channel-setup",
"openclaw/plugin-sdk/channel-status",
"openclaw/plugin-sdk/channel-streaming",
"openclaw/plugin-sdk/channel-target-testing",
"openclaw/plugin-sdk/channel-targets",
"openclaw/plugin-sdk/channel-test-helpers",
"openclaw/plugin-sdk/cli-backend",
"openclaw/plugin-sdk/cli-runtime",
"openclaw/plugin-sdk/collection-runtime",
@ -194,6 +202,7 @@
"openclaw/plugin-sdk/command-status-runtime",
"openclaw/plugin-sdk/command-surface",
"openclaw/plugin-sdk/compat",
"openclaw/plugin-sdk/concurrency-runtime",
"openclaw/plugin-sdk/config-mutation",
"openclaw/plugin-sdk/config-runtime",
"openclaw/plugin-sdk/config-schema",
@ -204,32 +213,27 @@
"openclaw/plugin-sdk/core",
"openclaw/plugin-sdk/cron-store-runtime",
"openclaw/plugin-sdk/dangerous-name-runtime",
"openclaw/plugin-sdk/dedupe-runtime",
"openclaw/plugin-sdk/delivery-queue-runtime",
"openclaw/plugin-sdk/device-bootstrap",
"openclaw/plugin-sdk/diagnostic-runtime",
"openclaw/plugin-sdk/diagnostics-otel",
"openclaw/plugin-sdk/diagnostics-prometheus",
"openclaw/plugin-sdk/diffs",
"openclaw/plugin-sdk/direct-dm",
"openclaw/plugin-sdk/direct-dm-access",
"openclaw/plugin-sdk/direct-dm-guard-policy",
"openclaw/plugin-sdk/directory-config-runtime",
"openclaw/plugin-sdk/directory-runtime",
"openclaw/plugin-sdk/discord",
"openclaw/plugin-sdk/document-extractor",
"openclaw/plugin-sdk/error-runtime",
"openclaw/plugin-sdk/extension-shared",
"openclaw/plugin-sdk/feishu",
"openclaw/plugin-sdk/feishu-conversation",
"openclaw/plugin-sdk/feishu-setup",
"openclaw/plugin-sdk/fetch-runtime",
"openclaw/plugin-sdk/file-access-runtime",
"openclaw/plugin-sdk/file-lock",
"openclaw/plugin-sdk/gateway-runtime",
"openclaw/plugin-sdk/github-copilot-login",
"openclaw/plugin-sdk/github-copilot-token",
"openclaw/plugin-sdk/global-singleton",
"openclaw/plugin-sdk/googlechat",
"openclaw/plugin-sdk/googlechat-runtime-shared",
"openclaw/plugin-sdk/group-access",
"openclaw/plugin-sdk/group-activation",
"openclaw/plugin-sdk/heartbeat-runtime",
"openclaw/plugin-sdk/hook-runtime",
"openclaw/plugin-sdk/host-runtime",
"openclaw/plugin-sdk/image-generation",
@ -239,29 +243,15 @@
"openclaw/plugin-sdk/inbound-reply-dispatch",
"openclaw/plugin-sdk/infra-runtime",
"openclaw/plugin-sdk/interactive-runtime",
"openclaw/plugin-sdk/irc",
"openclaw/plugin-sdk/irc-surface",
"openclaw/plugin-sdk/json-store",
"openclaw/plugin-sdk/keyed-async-queue",
"openclaw/plugin-sdk/lazy-runtime",
"openclaw/plugin-sdk/line",
"openclaw/plugin-sdk/line-core",
"openclaw/plugin-sdk/line-runtime",
"openclaw/plugin-sdk/line-surface",
"openclaw/plugin-sdk/llm-task",
"openclaw/plugin-sdk/lmstudio",
"openclaw/plugin-sdk/lmstudio-runtime",
"openclaw/plugin-sdk/logging-core",
"openclaw/plugin-sdk/markdown-table-runtime",
"openclaw/plugin-sdk/matrix",
"openclaw/plugin-sdk/matrix-helper",
"openclaw/plugin-sdk/matrix-runtime-heavy",
"openclaw/plugin-sdk/matrix-runtime-shared",
"openclaw/plugin-sdk/matrix-runtime-surface",
"openclaw/plugin-sdk/matrix-surface",
"openclaw/plugin-sdk/matrix-thread-bindings",
"openclaw/plugin-sdk/mattermost",
"openclaw/plugin-sdk/mattermost-policy",
"openclaw/plugin-sdk/media-generation-runtime",
"openclaw/plugin-sdk/media-generation-runtime-shared",
"openclaw/plugin-sdk/media-mime",
@ -269,7 +259,6 @@
"openclaw/plugin-sdk/media-store",
"openclaw/plugin-sdk/media-understanding",
"openclaw/plugin-sdk/media-understanding-runtime",
"openclaw/plugin-sdk/memory-core",
"openclaw/plugin-sdk/memory-core-engine-runtime",
"openclaw/plugin-sdk/memory-core-host-engine-embeddings",
"openclaw/plugin-sdk/memory-core-host-engine-foundation",
@ -289,20 +278,16 @@
"openclaw/plugin-sdk/memory-host-markdown",
"openclaw/plugin-sdk/memory-host-search",
"openclaw/plugin-sdk/memory-host-status",
"openclaw/plugin-sdk/memory-lancedb",
"openclaw/plugin-sdk/messaging-targets",
"openclaw/plugin-sdk/migration",
"openclaw/plugin-sdk/migration-runtime",
"openclaw/plugin-sdk/model-session-runtime",
"openclaw/plugin-sdk/models-provider-runtime",
"openclaw/plugin-sdk/msteams",
"openclaw/plugin-sdk/music-generation",
"openclaw/plugin-sdk/music-generation-core",
"openclaw/plugin-sdk/native-command-config-runtime",
"openclaw/plugin-sdk/native-command-registry",
"openclaw/plugin-sdk/nextcloud-talk",
"openclaw/plugin-sdk/nostr",
"openclaw/plugin-sdk/opencode",
"openclaw/plugin-sdk/number-runtime",
"openclaw/plugin-sdk/outbound-media",
"openclaw/plugin-sdk/outbound-runtime",
"openclaw/plugin-sdk/outbound-send-deps",
@ -311,6 +296,9 @@
"openclaw/plugin-sdk/plugin-config-runtime",
"openclaw/plugin-sdk/plugin-entry",
"openclaw/plugin-sdk/plugin-runtime",
"openclaw/plugin-sdk/plugin-test-api",
"openclaw/plugin-sdk/plugin-test-contracts",
"openclaw/plugin-sdk/plugin-test-runtime",
"openclaw/plugin-sdk/poll-runtime",
"openclaw/plugin-sdk/process-runtime",
"openclaw/plugin-sdk/provider-auth",
@ -318,10 +306,12 @@
"openclaw/plugin-sdk/provider-auth-login",
"openclaw/plugin-sdk/provider-auth-result",
"openclaw/plugin-sdk/provider-auth-runtime",
"openclaw/plugin-sdk/provider-catalog-runtime",
"openclaw/plugin-sdk/provider-catalog-shared",
"openclaw/plugin-sdk/provider-entry",
"openclaw/plugin-sdk/provider-env-vars",
"openclaw/plugin-sdk/provider-http",
"openclaw/plugin-sdk/provider-http-test-mocks",
"openclaw/plugin-sdk/provider-model-shared",
"openclaw/plugin-sdk/provider-model-types",
"openclaw/plugin-sdk/provider-onboard",
@ -330,6 +320,7 @@
"openclaw/plugin-sdk/provider-stream",
"openclaw/plugin-sdk/provider-stream-family",
"openclaw/plugin-sdk/provider-stream-shared",
"openclaw/plugin-sdk/provider-test-contracts",
"openclaw/plugin-sdk/provider-tools",
"openclaw/plugin-sdk/provider-transport-runtime",
"openclaw/plugin-sdk/provider-usage",
@ -369,6 +360,7 @@
"openclaw/plugin-sdk/secret-input",
"openclaw/plugin-sdk/secret-input-runtime",
"openclaw/plugin-sdk/secret-ref-runtime",
"openclaw/plugin-sdk/secure-random-runtime",
"openclaw/plugin-sdk/security-runtime",
"openclaw/plugin-sdk/self-hosted-provider-setup",
"openclaw/plugin-sdk/session-binding-runtime",
@ -392,28 +384,29 @@
"openclaw/plugin-sdk/status-helpers",
"openclaw/plugin-sdk/string-coerce-runtime",
"openclaw/plugin-sdk/string-normalization-runtime",
"openclaw/plugin-sdk/system-event-runtime",
"openclaw/plugin-sdk/talk-config-runtime",
"openclaw/plugin-sdk/target-resolver-runtime",
"openclaw/plugin-sdk/telegram-account",
"openclaw/plugin-sdk/telegram-command-config",
"openclaw/plugin-sdk/telegram-command-ui",
"openclaw/plugin-sdk/temp-path",
"openclaw/plugin-sdk/test-env",
"openclaw/plugin-sdk/test-fixtures",
"openclaw/plugin-sdk/test-node-mocks",
"openclaw/plugin-sdk/testing",
"openclaw/plugin-sdk/text-autolink-runtime",
"openclaw/plugin-sdk/text-chunking",
"openclaw/plugin-sdk/text-runtime",
"openclaw/plugin-sdk/thread-bindings-runtime",
"openclaw/plugin-sdk/thread-bindings-session-runtime",
"openclaw/plugin-sdk/thread-ownership",
"openclaw/plugin-sdk/tlon",
"openclaw/plugin-sdk/time-runtime",
"openclaw/plugin-sdk/tool-payload",
"openclaw/plugin-sdk/tool-send",
"openclaw/plugin-sdk/transport-ready-runtime",
"openclaw/plugin-sdk/tts-runtime",
"openclaw/plugin-sdk/twitch",
"openclaw/plugin-sdk/video-generation",
"openclaw/plugin-sdk/video-generation-core",
"openclaw/plugin-sdk/video-generation-runtime",
"openclaw/plugin-sdk/voice-call",
"openclaw/plugin-sdk/volc-model-catalog-shared",
"openclaw/plugin-sdk/web-content-extractor",
"openclaw/plugin-sdk/web-media",
"openclaw/plugin-sdk/webhook-ingress",
@ -421,8 +414,6 @@
"openclaw/plugin-sdk/webhook-request-guards",
"openclaw/plugin-sdk/webhook-targets",
"openclaw/plugin-sdk/windows-spawn",
"openclaw/plugin-sdk/zalo",
"openclaw/plugin-sdk/zalo-setup",
"openclaw/plugin-sdk/zalouser",
"openclaw/plugin-sdk/zod"
],
@ -452,6 +443,7 @@
"after_compaction",
"after_tool_call",
"agent_end",
"agent_turn_prepare",
"before_agent_finalize",
"before_agent_reply",
"before_agent_start",
@ -463,8 +455,10 @@
"before_prompt_build",
"before_reset",
"before_tool_call",
"cron_changed",
"gateway_start",
"gateway_stop",
"heartbeat_prompt_contribution",
"inbound_claim",
"llm_input",
"llm_output",
@ -483,6 +477,7 @@
"tool_result_persist"
],
"registrars": [
"registerAgentEventSubscription",
"registerAgentHarness",
"registerAgentToolResultMiddleware",
"registerAutoEnableProbe",
@ -494,6 +489,7 @@
"registerCompactionProvider",
"registerConfigMigration",
"registerContextEngine",
"registerControlUiDescriptor",
"registerDetachedTaskRuntime",
"registerGatewayDiscoveryService",
"registerGatewayMethod",
@ -512,15 +508,21 @@
"registerMigrationProvider",
"registerMusicGenerationProvider",
"registerNodeHostCommand",
"registerNodeInvokePolicy",
"registerProvider",
"registerRealtimeTranscriptionProvider",
"registerRealtimeVoiceProvider",
"registerReload",
"registerRuntimeLifecycle",
"registerSecurityAuditCollector",
"registerService",
"registerSessionExtension",
"registerSessionSchedulerJob",
"registerSpeechProvider",
"registerTextTransforms",
"registerTool",
"registerToolMetadata",
"registerTrustedToolPolicy",
"registerVideoGenerationProvider",
"registerWebFetchProvider",
"registerWebSearchProvider"
@ -535,11 +537,13 @@
"openclaw/plugin-sdk/acp-binding-resolve-runtime",
"openclaw/plugin-sdk/acp-binding-runtime",
"openclaw/plugin-sdk/acp-runtime",
"openclaw/plugin-sdk/acp-runtime-backend",
"openclaw/plugin-sdk/agent-config-primitives",
"openclaw/plugin-sdk/agent-harness",
"openclaw/plugin-sdk/agent-harness-runtime",
"openclaw/plugin-sdk/agent-media-payload",
"openclaw/plugin-sdk/agent-runtime",
"openclaw/plugin-sdk/agent-runtime-test-contracts",
"openclaw/plugin-sdk/allow-from",
"openclaw/plugin-sdk/allowlist-config-edit",
"openclaw/plugin-sdk/approval-auth-runtime",
@ -551,20 +555,12 @@
"openclaw/plugin-sdk/approval-native-runtime",
"openclaw/plugin-sdk/approval-reply-runtime",
"openclaw/plugin-sdk/approval-runtime",
"openclaw/plugin-sdk/bluebubbles",
"openclaw/plugin-sdk/bluebubbles-policy",
"openclaw/plugin-sdk/async-lock-runtime",
"openclaw/plugin-sdk/boolean-param",
"openclaw/plugin-sdk/browser-cdp",
"openclaw/plugin-sdk/browser-config",
"openclaw/plugin-sdk/browser-config-runtime",
"openclaw/plugin-sdk/browser-config-support",
"openclaw/plugin-sdk/browser-control-auth",
"openclaw/plugin-sdk/browser-node-runtime",
"openclaw/plugin-sdk/browser-profiles",
"openclaw/plugin-sdk/browser-security-runtime",
"openclaw/plugin-sdk/browser-setup-tools",
"openclaw/plugin-sdk/browser-support",
"openclaw/plugin-sdk/bundled-channel-config-schema",
"openclaw/plugin-sdk/channel-actions",
"openclaw/plugin-sdk/channel-activity-runtime",
"openclaw/plugin-sdk/channel-config-helpers",
"openclaw/plugin-sdk/channel-config-primitives",
"openclaw/plugin-sdk/channel-config-schema",
@ -589,6 +585,7 @@
"openclaw/plugin-sdk/channel-policy",
"openclaw/plugin-sdk/channel-reply-options-runtime",
"openclaw/plugin-sdk/channel-reply-pipeline",
"openclaw/plugin-sdk/channel-route",
"openclaw/plugin-sdk/channel-runtime",
"openclaw/plugin-sdk/channel-runtime-context",
"openclaw/plugin-sdk/channel-secret-basic-runtime",
@ -598,7 +595,9 @@
"openclaw/plugin-sdk/channel-setup",
"openclaw/plugin-sdk/channel-status",
"openclaw/plugin-sdk/channel-streaming",
"openclaw/plugin-sdk/channel-target-testing",
"openclaw/plugin-sdk/channel-targets",
"openclaw/plugin-sdk/channel-test-helpers",
"openclaw/plugin-sdk/cli-backend",
"openclaw/plugin-sdk/cli-runtime",
"openclaw/plugin-sdk/collection-runtime",
@ -611,6 +610,7 @@
"openclaw/plugin-sdk/command-status-runtime",
"openclaw/plugin-sdk/command-surface",
"openclaw/plugin-sdk/compat",
"openclaw/plugin-sdk/concurrency-runtime",
"openclaw/plugin-sdk/config-mutation",
"openclaw/plugin-sdk/config-runtime",
"openclaw/plugin-sdk/config-schema",
@ -621,32 +621,27 @@
"openclaw/plugin-sdk/core",
"openclaw/plugin-sdk/cron-store-runtime",
"openclaw/plugin-sdk/dangerous-name-runtime",
"openclaw/plugin-sdk/dedupe-runtime",
"openclaw/plugin-sdk/delivery-queue-runtime",
"openclaw/plugin-sdk/device-bootstrap",
"openclaw/plugin-sdk/diagnostic-runtime",
"openclaw/plugin-sdk/diagnostics-otel",
"openclaw/plugin-sdk/diagnostics-prometheus",
"openclaw/plugin-sdk/diffs",
"openclaw/plugin-sdk/direct-dm",
"openclaw/plugin-sdk/direct-dm-access",
"openclaw/plugin-sdk/direct-dm-guard-policy",
"openclaw/plugin-sdk/directory-config-runtime",
"openclaw/plugin-sdk/directory-runtime",
"openclaw/plugin-sdk/discord",
"openclaw/plugin-sdk/document-extractor",
"openclaw/plugin-sdk/error-runtime",
"openclaw/plugin-sdk/extension-shared",
"openclaw/plugin-sdk/feishu",
"openclaw/plugin-sdk/feishu-conversation",
"openclaw/plugin-sdk/feishu-setup",
"openclaw/plugin-sdk/fetch-runtime",
"openclaw/plugin-sdk/file-access-runtime",
"openclaw/plugin-sdk/file-lock",
"openclaw/plugin-sdk/gateway-runtime",
"openclaw/plugin-sdk/github-copilot-login",
"openclaw/plugin-sdk/github-copilot-token",
"openclaw/plugin-sdk/global-singleton",
"openclaw/plugin-sdk/googlechat",
"openclaw/plugin-sdk/googlechat-runtime-shared",
"openclaw/plugin-sdk/group-access",
"openclaw/plugin-sdk/group-activation",
"openclaw/plugin-sdk/heartbeat-runtime",
"openclaw/plugin-sdk/hook-runtime",
"openclaw/plugin-sdk/host-runtime",
"openclaw/plugin-sdk/image-generation",
@ -656,29 +651,15 @@
"openclaw/plugin-sdk/inbound-reply-dispatch",
"openclaw/plugin-sdk/infra-runtime",
"openclaw/plugin-sdk/interactive-runtime",
"openclaw/plugin-sdk/irc",
"openclaw/plugin-sdk/irc-surface",
"openclaw/plugin-sdk/json-store",
"openclaw/plugin-sdk/keyed-async-queue",
"openclaw/plugin-sdk/lazy-runtime",
"openclaw/plugin-sdk/line",
"openclaw/plugin-sdk/line-core",
"openclaw/plugin-sdk/line-runtime",
"openclaw/plugin-sdk/line-surface",
"openclaw/plugin-sdk/llm-task",
"openclaw/plugin-sdk/lmstudio",
"openclaw/plugin-sdk/lmstudio-runtime",
"openclaw/plugin-sdk/logging-core",
"openclaw/plugin-sdk/markdown-table-runtime",
"openclaw/plugin-sdk/matrix",
"openclaw/plugin-sdk/matrix-helper",
"openclaw/plugin-sdk/matrix-runtime-heavy",
"openclaw/plugin-sdk/matrix-runtime-shared",
"openclaw/plugin-sdk/matrix-runtime-surface",
"openclaw/plugin-sdk/matrix-surface",
"openclaw/plugin-sdk/matrix-thread-bindings",
"openclaw/plugin-sdk/mattermost",
"openclaw/plugin-sdk/mattermost-policy",
"openclaw/plugin-sdk/media-generation-runtime",
"openclaw/plugin-sdk/media-generation-runtime-shared",
"openclaw/plugin-sdk/media-mime",
@ -686,7 +667,6 @@
"openclaw/plugin-sdk/media-store",
"openclaw/plugin-sdk/media-understanding",
"openclaw/plugin-sdk/media-understanding-runtime",
"openclaw/plugin-sdk/memory-core",
"openclaw/plugin-sdk/memory-core-engine-runtime",
"openclaw/plugin-sdk/memory-core-host-engine-embeddings",
"openclaw/plugin-sdk/memory-core-host-engine-foundation",
@ -706,20 +686,16 @@
"openclaw/plugin-sdk/memory-host-markdown",
"openclaw/plugin-sdk/memory-host-search",
"openclaw/plugin-sdk/memory-host-status",
"openclaw/plugin-sdk/memory-lancedb",
"openclaw/plugin-sdk/messaging-targets",
"openclaw/plugin-sdk/migration",
"openclaw/plugin-sdk/migration-runtime",
"openclaw/plugin-sdk/model-session-runtime",
"openclaw/plugin-sdk/models-provider-runtime",
"openclaw/plugin-sdk/msteams",
"openclaw/plugin-sdk/music-generation",
"openclaw/plugin-sdk/music-generation-core",
"openclaw/plugin-sdk/native-command-config-runtime",
"openclaw/plugin-sdk/native-command-registry",
"openclaw/plugin-sdk/nextcloud-talk",
"openclaw/plugin-sdk/nostr",
"openclaw/plugin-sdk/opencode",
"openclaw/plugin-sdk/number-runtime",
"openclaw/plugin-sdk/outbound-media",
"openclaw/plugin-sdk/outbound-runtime",
"openclaw/plugin-sdk/outbound-send-deps",
@ -728,6 +704,9 @@
"openclaw/plugin-sdk/plugin-config-runtime",
"openclaw/plugin-sdk/plugin-entry",
"openclaw/plugin-sdk/plugin-runtime",
"openclaw/plugin-sdk/plugin-test-api",
"openclaw/plugin-sdk/plugin-test-contracts",
"openclaw/plugin-sdk/plugin-test-runtime",
"openclaw/plugin-sdk/poll-runtime",
"openclaw/plugin-sdk/process-runtime",
"openclaw/plugin-sdk/provider-auth",
@ -735,10 +714,12 @@
"openclaw/plugin-sdk/provider-auth-login",
"openclaw/plugin-sdk/provider-auth-result",
"openclaw/plugin-sdk/provider-auth-runtime",
"openclaw/plugin-sdk/provider-catalog-runtime",
"openclaw/plugin-sdk/provider-catalog-shared",
"openclaw/plugin-sdk/provider-entry",
"openclaw/plugin-sdk/provider-env-vars",
"openclaw/plugin-sdk/provider-http",
"openclaw/plugin-sdk/provider-http-test-mocks",
"openclaw/plugin-sdk/provider-model-shared",
"openclaw/plugin-sdk/provider-model-types",
"openclaw/plugin-sdk/provider-onboard",
@ -747,6 +728,7 @@
"openclaw/plugin-sdk/provider-stream",
"openclaw/plugin-sdk/provider-stream-family",
"openclaw/plugin-sdk/provider-stream-shared",
"openclaw/plugin-sdk/provider-test-contracts",
"openclaw/plugin-sdk/provider-tools",
"openclaw/plugin-sdk/provider-transport-runtime",
"openclaw/plugin-sdk/provider-usage",
@ -786,6 +768,7 @@
"openclaw/plugin-sdk/secret-input",
"openclaw/plugin-sdk/secret-input-runtime",
"openclaw/plugin-sdk/secret-ref-runtime",
"openclaw/plugin-sdk/secure-random-runtime",
"openclaw/plugin-sdk/security-runtime",
"openclaw/plugin-sdk/self-hosted-provider-setup",
"openclaw/plugin-sdk/session-binding-runtime",
@ -809,28 +792,29 @@
"openclaw/plugin-sdk/status-helpers",
"openclaw/plugin-sdk/string-coerce-runtime",
"openclaw/plugin-sdk/string-normalization-runtime",
"openclaw/plugin-sdk/system-event-runtime",
"openclaw/plugin-sdk/talk-config-runtime",
"openclaw/plugin-sdk/target-resolver-runtime",
"openclaw/plugin-sdk/telegram-account",
"openclaw/plugin-sdk/telegram-command-config",
"openclaw/plugin-sdk/telegram-command-ui",
"openclaw/plugin-sdk/temp-path",
"openclaw/plugin-sdk/test-env",
"openclaw/plugin-sdk/test-fixtures",
"openclaw/plugin-sdk/test-node-mocks",
"openclaw/plugin-sdk/testing",
"openclaw/plugin-sdk/text-autolink-runtime",
"openclaw/plugin-sdk/text-chunking",
"openclaw/plugin-sdk/text-runtime",
"openclaw/plugin-sdk/thread-bindings-runtime",
"openclaw/plugin-sdk/thread-bindings-session-runtime",
"openclaw/plugin-sdk/thread-ownership",
"openclaw/plugin-sdk/tlon",
"openclaw/plugin-sdk/time-runtime",
"openclaw/plugin-sdk/tool-payload",
"openclaw/plugin-sdk/tool-send",
"openclaw/plugin-sdk/transport-ready-runtime",
"openclaw/plugin-sdk/tts-runtime",
"openclaw/plugin-sdk/twitch",
"openclaw/plugin-sdk/video-generation",
"openclaw/plugin-sdk/video-generation-core",
"openclaw/plugin-sdk/video-generation-runtime",
"openclaw/plugin-sdk/voice-call",
"openclaw/plugin-sdk/volc-model-catalog-shared",
"openclaw/plugin-sdk/web-content-extractor",
"openclaw/plugin-sdk/web-media",
"openclaw/plugin-sdk/webhook-ingress",
@ -838,8 +822,6 @@
"openclaw/plugin-sdk/webhook-request-guards",
"openclaw/plugin-sdk/webhook-targets",
"openclaw/plugin-sdk/windows-spawn",
"openclaw/plugin-sdk/zalo",
"openclaw/plugin-sdk/zalo-setup",
"openclaw/plugin-sdk/zalouser",
"openclaw/plugin-sdk/zod"
],
@ -853,11 +835,13 @@
"openclaw/plugin-sdk/acp-binding-resolve-runtime",
"openclaw/plugin-sdk/acp-binding-runtime",
"openclaw/plugin-sdk/acp-runtime",
"openclaw/plugin-sdk/acp-runtime-backend",
"openclaw/plugin-sdk/agent-config-primitives",
"openclaw/plugin-sdk/agent-harness",
"openclaw/plugin-sdk/agent-harness-runtime",
"openclaw/plugin-sdk/agent-media-payload",
"openclaw/plugin-sdk/agent-runtime",
"openclaw/plugin-sdk/agent-runtime-test-contracts",
"openclaw/plugin-sdk/allow-from",
"openclaw/plugin-sdk/allowlist-config-edit",
"openclaw/plugin-sdk/approval-auth-runtime",
@ -869,20 +853,12 @@
"openclaw/plugin-sdk/approval-native-runtime",
"openclaw/plugin-sdk/approval-reply-runtime",
"openclaw/plugin-sdk/approval-runtime",
"openclaw/plugin-sdk/bluebubbles",
"openclaw/plugin-sdk/bluebubbles-policy",
"openclaw/plugin-sdk/async-lock-runtime",
"openclaw/plugin-sdk/boolean-param",
"openclaw/plugin-sdk/browser-cdp",
"openclaw/plugin-sdk/browser-config",
"openclaw/plugin-sdk/browser-config-runtime",
"openclaw/plugin-sdk/browser-config-support",
"openclaw/plugin-sdk/browser-control-auth",
"openclaw/plugin-sdk/browser-node-runtime",
"openclaw/plugin-sdk/browser-profiles",
"openclaw/plugin-sdk/browser-security-runtime",
"openclaw/plugin-sdk/browser-setup-tools",
"openclaw/plugin-sdk/browser-support",
"openclaw/plugin-sdk/bundled-channel-config-schema",
"openclaw/plugin-sdk/channel-actions",
"openclaw/plugin-sdk/channel-activity-runtime",
"openclaw/plugin-sdk/channel-config-helpers",
"openclaw/plugin-sdk/channel-config-primitives",
"openclaw/plugin-sdk/channel-config-schema",
@ -907,6 +883,7 @@
"openclaw/plugin-sdk/channel-policy",
"openclaw/plugin-sdk/channel-reply-options-runtime",
"openclaw/plugin-sdk/channel-reply-pipeline",
"openclaw/plugin-sdk/channel-route",
"openclaw/plugin-sdk/channel-runtime",
"openclaw/plugin-sdk/channel-runtime-context",
"openclaw/plugin-sdk/channel-secret-basic-runtime",
@ -916,7 +893,9 @@
"openclaw/plugin-sdk/channel-setup",
"openclaw/plugin-sdk/channel-status",
"openclaw/plugin-sdk/channel-streaming",
"openclaw/plugin-sdk/channel-target-testing",
"openclaw/plugin-sdk/channel-targets",
"openclaw/plugin-sdk/channel-test-helpers",
"openclaw/plugin-sdk/cli-backend",
"openclaw/plugin-sdk/cli-runtime",
"openclaw/plugin-sdk/collection-runtime",
@ -929,6 +908,7 @@
"openclaw/plugin-sdk/command-status-runtime",
"openclaw/plugin-sdk/command-surface",
"openclaw/plugin-sdk/compat",
"openclaw/plugin-sdk/concurrency-runtime",
"openclaw/plugin-sdk/config-mutation",
"openclaw/plugin-sdk/config-runtime",
"openclaw/plugin-sdk/config-schema",
@ -939,32 +919,27 @@
"openclaw/plugin-sdk/core",
"openclaw/plugin-sdk/cron-store-runtime",
"openclaw/plugin-sdk/dangerous-name-runtime",
"openclaw/plugin-sdk/dedupe-runtime",
"openclaw/plugin-sdk/delivery-queue-runtime",
"openclaw/plugin-sdk/device-bootstrap",
"openclaw/plugin-sdk/diagnostic-runtime",
"openclaw/plugin-sdk/diagnostics-otel",
"openclaw/plugin-sdk/diagnostics-prometheus",
"openclaw/plugin-sdk/diffs",
"openclaw/plugin-sdk/direct-dm",
"openclaw/plugin-sdk/direct-dm-access",
"openclaw/plugin-sdk/direct-dm-guard-policy",
"openclaw/plugin-sdk/directory-config-runtime",
"openclaw/plugin-sdk/directory-runtime",
"openclaw/plugin-sdk/discord",
"openclaw/plugin-sdk/document-extractor",
"openclaw/plugin-sdk/error-runtime",
"openclaw/plugin-sdk/extension-shared",
"openclaw/plugin-sdk/feishu",
"openclaw/plugin-sdk/feishu-conversation",
"openclaw/plugin-sdk/feishu-setup",
"openclaw/plugin-sdk/fetch-runtime",
"openclaw/plugin-sdk/file-access-runtime",
"openclaw/plugin-sdk/file-lock",
"openclaw/plugin-sdk/gateway-runtime",
"openclaw/plugin-sdk/github-copilot-login",
"openclaw/plugin-sdk/github-copilot-token",
"openclaw/plugin-sdk/global-singleton",
"openclaw/plugin-sdk/googlechat",
"openclaw/plugin-sdk/googlechat-runtime-shared",
"openclaw/plugin-sdk/group-access",
"openclaw/plugin-sdk/group-activation",
"openclaw/plugin-sdk/heartbeat-runtime",
"openclaw/plugin-sdk/hook-runtime",
"openclaw/plugin-sdk/host-runtime",
"openclaw/plugin-sdk/image-generation",
@ -974,29 +949,15 @@
"openclaw/plugin-sdk/inbound-reply-dispatch",
"openclaw/plugin-sdk/infra-runtime",
"openclaw/plugin-sdk/interactive-runtime",
"openclaw/plugin-sdk/irc",
"openclaw/plugin-sdk/irc-surface",
"openclaw/plugin-sdk/json-store",
"openclaw/plugin-sdk/keyed-async-queue",
"openclaw/plugin-sdk/lazy-runtime",
"openclaw/plugin-sdk/line",
"openclaw/plugin-sdk/line-core",
"openclaw/plugin-sdk/line-runtime",
"openclaw/plugin-sdk/line-surface",
"openclaw/plugin-sdk/llm-task",
"openclaw/plugin-sdk/lmstudio",
"openclaw/plugin-sdk/lmstudio-runtime",
"openclaw/plugin-sdk/logging-core",
"openclaw/plugin-sdk/markdown-table-runtime",
"openclaw/plugin-sdk/matrix",
"openclaw/plugin-sdk/matrix-helper",
"openclaw/plugin-sdk/matrix-runtime-heavy",
"openclaw/plugin-sdk/matrix-runtime-shared",
"openclaw/plugin-sdk/matrix-runtime-surface",
"openclaw/plugin-sdk/matrix-surface",
"openclaw/plugin-sdk/matrix-thread-bindings",
"openclaw/plugin-sdk/mattermost",
"openclaw/plugin-sdk/mattermost-policy",
"openclaw/plugin-sdk/media-generation-runtime",
"openclaw/plugin-sdk/media-generation-runtime-shared",
"openclaw/plugin-sdk/media-mime",
@ -1004,7 +965,6 @@
"openclaw/plugin-sdk/media-store",
"openclaw/plugin-sdk/media-understanding",
"openclaw/plugin-sdk/media-understanding-runtime",
"openclaw/plugin-sdk/memory-core",
"openclaw/plugin-sdk/memory-core-engine-runtime",
"openclaw/plugin-sdk/memory-core-host-engine-embeddings",
"openclaw/plugin-sdk/memory-core-host-engine-foundation",
@ -1024,20 +984,16 @@
"openclaw/plugin-sdk/memory-host-markdown",
"openclaw/plugin-sdk/memory-host-search",
"openclaw/plugin-sdk/memory-host-status",
"openclaw/plugin-sdk/memory-lancedb",
"openclaw/plugin-sdk/messaging-targets",
"openclaw/plugin-sdk/migration",
"openclaw/plugin-sdk/migration-runtime",
"openclaw/plugin-sdk/model-session-runtime",
"openclaw/plugin-sdk/models-provider-runtime",
"openclaw/plugin-sdk/msteams",
"openclaw/plugin-sdk/music-generation",
"openclaw/plugin-sdk/music-generation-core",
"openclaw/plugin-sdk/native-command-config-runtime",
"openclaw/plugin-sdk/native-command-registry",
"openclaw/plugin-sdk/nextcloud-talk",
"openclaw/plugin-sdk/nostr",
"openclaw/plugin-sdk/opencode",
"openclaw/plugin-sdk/number-runtime",
"openclaw/plugin-sdk/outbound-media",
"openclaw/plugin-sdk/outbound-runtime",
"openclaw/plugin-sdk/outbound-send-deps",
@ -1046,6 +1002,9 @@
"openclaw/plugin-sdk/plugin-config-runtime",
"openclaw/plugin-sdk/plugin-entry",
"openclaw/plugin-sdk/plugin-runtime",
"openclaw/plugin-sdk/plugin-test-api",
"openclaw/plugin-sdk/plugin-test-contracts",
"openclaw/plugin-sdk/plugin-test-runtime",
"openclaw/plugin-sdk/poll-runtime",
"openclaw/plugin-sdk/process-runtime",
"openclaw/plugin-sdk/provider-auth",
@ -1053,10 +1012,12 @@
"openclaw/plugin-sdk/provider-auth-login",
"openclaw/plugin-sdk/provider-auth-result",
"openclaw/plugin-sdk/provider-auth-runtime",
"openclaw/plugin-sdk/provider-catalog-runtime",
"openclaw/plugin-sdk/provider-catalog-shared",
"openclaw/plugin-sdk/provider-entry",
"openclaw/plugin-sdk/provider-env-vars",
"openclaw/plugin-sdk/provider-http",
"openclaw/plugin-sdk/provider-http-test-mocks",
"openclaw/plugin-sdk/provider-model-shared",
"openclaw/plugin-sdk/provider-model-types",
"openclaw/plugin-sdk/provider-onboard",
@ -1065,6 +1026,7 @@
"openclaw/plugin-sdk/provider-stream",
"openclaw/plugin-sdk/provider-stream-family",
"openclaw/plugin-sdk/provider-stream-shared",
"openclaw/plugin-sdk/provider-test-contracts",
"openclaw/plugin-sdk/provider-tools",
"openclaw/plugin-sdk/provider-transport-runtime",
"openclaw/plugin-sdk/provider-usage",
@ -1104,6 +1066,7 @@
"openclaw/plugin-sdk/secret-input",
"openclaw/plugin-sdk/secret-input-runtime",
"openclaw/plugin-sdk/secret-ref-runtime",
"openclaw/plugin-sdk/secure-random-runtime",
"openclaw/plugin-sdk/security-runtime",
"openclaw/plugin-sdk/self-hosted-provider-setup",
"openclaw/plugin-sdk/session-binding-runtime",
@ -1127,28 +1090,29 @@
"openclaw/plugin-sdk/status-helpers",
"openclaw/plugin-sdk/string-coerce-runtime",
"openclaw/plugin-sdk/string-normalization-runtime",
"openclaw/plugin-sdk/system-event-runtime",
"openclaw/plugin-sdk/talk-config-runtime",
"openclaw/plugin-sdk/target-resolver-runtime",
"openclaw/plugin-sdk/telegram-account",
"openclaw/plugin-sdk/telegram-command-config",
"openclaw/plugin-sdk/telegram-command-ui",
"openclaw/plugin-sdk/temp-path",
"openclaw/plugin-sdk/test-env",
"openclaw/plugin-sdk/test-fixtures",
"openclaw/plugin-sdk/test-node-mocks",
"openclaw/plugin-sdk/testing",
"openclaw/plugin-sdk/text-autolink-runtime",
"openclaw/plugin-sdk/text-chunking",
"openclaw/plugin-sdk/text-runtime",
"openclaw/plugin-sdk/thread-bindings-runtime",
"openclaw/plugin-sdk/thread-bindings-session-runtime",
"openclaw/plugin-sdk/thread-ownership",
"openclaw/plugin-sdk/tlon",
"openclaw/plugin-sdk/time-runtime",
"openclaw/plugin-sdk/tool-payload",
"openclaw/plugin-sdk/tool-send",
"openclaw/plugin-sdk/transport-ready-runtime",
"openclaw/plugin-sdk/tts-runtime",
"openclaw/plugin-sdk/twitch",
"openclaw/plugin-sdk/video-generation",
"openclaw/plugin-sdk/video-generation-core",
"openclaw/plugin-sdk/video-generation-runtime",
"openclaw/plugin-sdk/voice-call",
"openclaw/plugin-sdk/volc-model-catalog-shared",
"openclaw/plugin-sdk/web-content-extractor",
"openclaw/plugin-sdk/web-media",
"openclaw/plugin-sdk/webhook-ingress",
@ -1156,8 +1120,6 @@
"openclaw/plugin-sdk/webhook-request-guards",
"openclaw/plugin-sdk/webhook-targets",
"openclaw/plugin-sdk/windows-spawn",
"openclaw/plugin-sdk/zalo",
"openclaw/plugin-sdk/zalo-setup",
"openclaw/plugin-sdk/zalouser",
"openclaw/plugin-sdk/zod"
],
@ -1186,6 +1148,7 @@
"after_compaction",
"after_tool_call",
"agent_end",
"agent_turn_prepare",
"before_agent_finalize",
"before_agent_reply",
"before_agent_start",
@ -1197,8 +1160,10 @@
"before_prompt_build",
"before_reset",
"before_tool_call",
"cron_changed",
"gateway_start",
"gateway_stop",
"heartbeat_prompt_contribution",
"inbound_claim",
"llm_input",
"llm_output",
@ -1217,6 +1182,7 @@
"tool_result_persist"
],
"registrars": [
"registerAgentEventSubscription",
"registerAgentHarness",
"registerAgentToolResultMiddleware",
"registerAutoEnableProbe",
@ -1228,6 +1194,7 @@
"registerCompactionProvider",
"registerConfigMigration",
"registerContextEngine",
"registerControlUiDescriptor",
"registerDetachedTaskRuntime",
"registerGatewayDiscoveryService",
"registerGatewayMethod",
@ -1246,15 +1213,21 @@
"registerMigrationProvider",
"registerMusicGenerationProvider",
"registerNodeHostCommand",
"registerNodeInvokePolicy",
"registerProvider",
"registerRealtimeTranscriptionProvider",
"registerRealtimeVoiceProvider",
"registerReload",
"registerRuntimeLifecycle",
"registerSecurityAuditCollector",
"registerService",
"registerSessionExtension",
"registerSessionSchedulerJob",
"registerSpeechProvider",
"registerTextTransforms",
"registerTool",
"registerToolMetadata",
"registerTrustedToolPolicy",
"registerVideoGenerationProvider",
"registerWebFetchProvider",
"registerWebSearchProvider"
@ -1279,14 +1252,14 @@
},
"inspector": {
"static": {
"command": "npm exec --yes --package @openclaw/plugin-inspector@0.3.3 -- plugin-inspector check --config plugin-inspector.config.json --no-openclaw --out reports --no-runtime",
"command": "npm exec --yes --package @openclaw/plugin-inspector@0.3.10 -- plugin-inspector check --config plugin-inspector.config.json --no-openclaw --out reports --no-runtime",
"status": 0,
"stdout": "Status: PASS\nFixtures: 1\nBreakages: 0\nIssues: 6\nLogs: 4\n\nReports:\n- json: ./.crabpot/generated-surface-plugin/reports/plugin-inspector-report.json\n- markdown: ./.crabpot/generated-surface-plugin/reports/plugin-inspector-report.md\n- issues: ./.crabpot/generated-surface-plugin/reports/plugin-inspector-issues.md\n",
"stderr": "",
"failures": []
},
"runtime": {
"command": "npm exec --yes --package @openclaw/plugin-inspector@0.3.3 -- plugin-inspector check --config plugin-inspector.config.json --no-openclaw --out reports --runtime --mock-sdk",
"command": "npm exec --yes --package @openclaw/plugin-inspector@0.3.10 -- plugin-inspector check --config plugin-inspector.config.json --no-openclaw --out reports --runtime --mock-sdk",
"status": 0,
"stdout": "Status: PASS\nFixtures: 1\nBreakages: 0\nIssues: 6\nLogs: 4\n\nReports:\n- json: ./.crabpot/generated-surface-plugin/reports/plugin-inspector-report.json\n- markdown: ./.crabpot/generated-surface-plugin/reports/plugin-inspector-report.md\n- issues: ./.crabpot/generated-surface-plugin/reports/plugin-inspector-issues.md\n",
"stderr": "",

View File

@ -1,23 +1,23 @@
# Crabpot Generated Surface Fixture
Generated: 2026-04-29T00:29:15.829Z
Generated: 2026-05-05T03:26:53.567Z
Status: PASS
## Summary
| Metric | Value |
| --------------------------- | ----- |
| Expected hooks | 32 |
| Expected registrars | 41 |
| Expected hooks | 35 |
| Expected registrars | 49 |
| Expected direct callbacks | 1 |
| Expected SDK exports | 316 |
| Expected SDK exports | 296 |
| Expected manifest contracts | 17 |
| Static hooks | 32 |
| Static registrars | 41 |
| Static SDK imports | 316 |
| Static hooks | 35 |
| Static registrars | 49 |
| Static SDK imports | 296 |
| Static manifest contracts | 17 |
| Runtime hooks | 32 |
| Runtime registrars | 41 |
| Runtime hooks | 35 |
| Runtime registrars | 49 |
| Runtime direct callbacks | 1 |
| Missing static surface | 0 |
| Missing runtime surface | 0 |

View File

@ -1,13 +1,162 @@
{
"generatedAt": "deterministic",
"mode": "subprocess-cold-import-loop",
"mode": "openclaw-loader-lifecycle-profile",
"entrypoint": "test/fixtures/lazy-import-plugin.mjs",
"baseline": {
"mode": "minimal-plugin-capture",
"runs": 3,
"entrypoint": ".crabpot/import-loop/baseline-plugin.mjs",
"reference": {
"wallMs": 2442,
"peakRssMb": 334.6,
"cpuMsEstimate": 4745
},
"max": {
"wallMs": 2958,
"peakRssMb": 347.9,
"cpuMsEstimate": 5384
},
"statSampleCount": 306,
"rssSampleCount": 306,
"cpuSampleCount": 306,
"failCount": 0,
"samples": [
{
"index": 0,
"exitCode": 0,
"status": "captured",
"capturedCount": 2,
"openClawLifecycle": {
"status": "loaded",
"pluginId": "crabpot-lifecycle-probe",
"importPhase": "full",
"activationPhase": "full:register",
"importMs": 84.8,
"activationMs": 0.3,
"openclawPath": "/home/runner/work/crabpot/crabpot/openclaw",
"phases": [
{
"phase": "full",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 84.8,
"source": "/tmp/crabpot-openclaw-plugin-g9AntI/index.mjs"
},
{
"phase": "full:register",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 0.3,
"source": "/tmp/crabpot-openclaw-plugin-g9AntI/index.mjs"
}
]
},
"wallMs": 2958,
"peakRssMb": 334.6,
"peakCpuPercent": 201,
"cpuMsEstimate": 5384,
"statSampleCount": 116,
"rssSampleCount": 116,
"cpuSampleCount": 116,
"stderrPreview": ""
},
{
"index": 1,
"exitCode": 0,
"status": "captured",
"capturedCount": 2,
"openClawLifecycle": {
"status": "loaded",
"pluginId": "crabpot-lifecycle-probe",
"importPhase": "full",
"activationPhase": "full:register",
"importMs": 80.5,
"activationMs": 0.3,
"openclawPath": "/home/runner/work/crabpot/crabpot/openclaw",
"phases": [
{
"phase": "full",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 80.5,
"source": "/tmp/crabpot-openclaw-plugin-xTmlDT/index.mjs"
},
{
"phase": "full:register",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 0.3,
"source": "/tmp/crabpot-openclaw-plugin-xTmlDT/index.mjs"
}
]
},
"wallMs": 2384,
"peakRssMb": 323.7,
"peakCpuPercent": 223,
"cpuMsEstimate": 4656,
"statSampleCount": 94,
"rssSampleCount": 94,
"cpuSampleCount": 94,
"stderrPreview": ""
},
{
"index": 2,
"exitCode": 0,
"status": "captured",
"capturedCount": 2,
"openClawLifecycle": {
"status": "loaded",
"pluginId": "crabpot-lifecycle-probe",
"importPhase": "full",
"activationPhase": "full:register",
"importMs": 93,
"activationMs": 0.4,
"openclawPath": "/home/runner/work/crabpot/crabpot/openclaw",
"phases": [
{
"phase": "full",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 93,
"source": "/tmp/crabpot-openclaw-plugin-AFW5fW/index.mjs"
},
{
"phase": "full:register",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 0.4,
"source": "/tmp/crabpot-openclaw-plugin-AFW5fW/index.mjs"
}
]
},
"wallMs": 2442,
"peakRssMb": 347.9,
"peakCpuPercent": 223,
"cpuMsEstimate": 4745,
"statSampleCount": 96,
"rssSampleCount": 96,
"cpuSampleCount": 96,
"stderrPreview": ""
}
]
},
"summary": {
"runs": 3,
"p50WallMs": 73,
"p95WallMs": 75,
"maxPeakRssMb": 0,
"maxCpuMsEstimate": 0,
"baselineRuns": 3,
"baselineFailCount": 0,
"p50WallMs": 2421,
"p95WallMs": 2471,
"p50PluginWallDeltaMs": 0,
"p95PluginWallDeltaMs": 29,
"openClawLifecycleCount": 3,
"p50OpenClawImportMs": 84,
"p95OpenClawImportMs": 88.6,
"p50OpenClawActivationMs": 0.3,
"p95OpenClawActivationMs": 1.2,
"maxPeakRssMb": 347.9,
"maxCpuMsEstimate": 4780,
"maxPluginPeakRssDeltaMb": 13.3,
"maxPluginCpuDeltaMsEstimate": 35,
"baselineReferenceWallMs": 2442,
"baselineReferencePeakRssMb": 334.6,
"baselineReferenceCpuMsEstimate": 4745,
"statSampleCount": 287,
"rssSampleCount": 287,
"cpuSampleCount": 287,
"capturedCount": 6,
"failCount": 0
},
@ -17,33 +166,120 @@
"exitCode": 0,
"status": "captured",
"capturedCount": 2,
"wallMs": 75,
"peakRssMb": 0,
"peakCpuPercent": 0,
"cpuMsEstimate": 0,
"stderrPreview": ""
"openClawLifecycle": {
"status": "loaded",
"pluginId": "crabpot-lifecycle-probe",
"importPhase": "full",
"activationPhase": "full:register",
"importMs": 84,
"activationMs": 0.3,
"openclawPath": "/home/runner/work/crabpot/crabpot/openclaw",
"phases": [
{
"phase": "full",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 84,
"source": "/tmp/crabpot-openclaw-plugin-3UJxq3/index.mjs"
},
{
"phase": "full:register",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 0.3,
"source": "/tmp/crabpot-openclaw-plugin-3UJxq3/index.mjs"
}
]
},
"wallMs": 2471,
"peakRssMb": 342.6,
"peakCpuPercent": 220,
"cpuMsEstimate": 4780,
"statSampleCount": 97,
"rssSampleCount": 97,
"cpuSampleCount": 97,
"stderrPreview": "",
"pluginWallDeltaMs": 29,
"pluginPeakRssDeltaMb": 8,
"pluginCpuDeltaMsEstimate": 35
},
{
"index": 1,
"exitCode": 0,
"status": "captured",
"capturedCount": 2,
"wallMs": 73,
"peakRssMb": 0,
"peakCpuPercent": 0,
"cpuMsEstimate": 0,
"stderrPreview": ""
"openClawLifecycle": {
"status": "loaded",
"pluginId": "crabpot-lifecycle-probe",
"importPhase": "full",
"activationPhase": "full:register",
"importMs": 81.8,
"activationMs": 0.3,
"openclawPath": "/home/runner/work/crabpot/crabpot/openclaw",
"phases": [
{
"phase": "full",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 81.8,
"source": "/tmp/crabpot-openclaw-plugin-gwHDg0/index.mjs"
},
{
"phase": "full:register",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 0.3,
"source": "/tmp/crabpot-openclaw-plugin-gwHDg0/index.mjs"
}
]
},
"wallMs": 2421,
"peakRssMb": 333.8,
"peakCpuPercent": 225,
"cpuMsEstimate": 4743,
"statSampleCount": 96,
"rssSampleCount": 96,
"cpuSampleCount": 96,
"stderrPreview": "",
"pluginWallDeltaMs": 0,
"pluginPeakRssDeltaMb": 0,
"pluginCpuDeltaMsEstimate": 0
},
{
"index": 2,
"exitCode": 0,
"status": "captured",
"capturedCount": 2,
"wallMs": 73,
"peakRssMb": 0,
"peakCpuPercent": 0,
"cpuMsEstimate": 0,
"stderrPreview": ""
"openClawLifecycle": {
"status": "loaded",
"pluginId": "crabpot-lifecycle-probe",
"importPhase": "full",
"activationPhase": "full:register",
"importMs": 88.6,
"activationMs": 1.2,
"openclawPath": "/home/runner/work/crabpot/crabpot/openclaw",
"phases": [
{
"phase": "full",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 88.6,
"source": "/tmp/crabpot-openclaw-plugin-78B9Ov/index.mjs"
},
{
"phase": "full:register",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 1.2,
"source": "/tmp/crabpot-openclaw-plugin-78B9Ov/index.mjs"
}
]
},
"wallMs": 2392,
"peakRssMb": 347.9,
"peakCpuPercent": 220,
"cpuMsEstimate": 4639,
"statSampleCount": 94,
"rssSampleCount": 94,
"cpuSampleCount": 94,
"stderrPreview": "",
"pluginWallDeltaMs": 0,
"pluginPeakRssDeltaMb": 13.3,
"pluginCpuDeltaMsEstimate": 0
}
]
}

View File

@ -1,25 +1,58 @@
# Crabpot Import Loop Profile
Generated: deterministic
Mode: subprocess-cold-import-loop
Mode: openclaw-loader-lifecycle-profile
Entrypoint: test/fixtures/lazy-import-plugin.mjs
## Summary
| Metric | Value |
| ---------------- | ----- |
| runs | 3 |
| p50WallMs | 73 |
| p95WallMs | 75 |
| maxPeakRssMb | 0 |
| maxCpuMsEstimate | 0 |
| capturedCount | 6 |
| failCount | 0 |
| Metric | Value |
| ------------------------------ | -------- |
| runs | 3 |
| baselineRuns | 3 |
| baselineFailCount | 0 |
| p50WallMs | 2421 |
| p95WallMs | 2471 |
| p50PluginWallDeltaMs | 0 |
| p95PluginWallDeltaMs | 29 |
| maxPluginPeakRssDeltaMb | 13.3 MB |
| maxPluginCpuDeltaMsEstimate | 35 ms |
| openClawLifecycleCount | 3 |
| p50OpenClawImportMs | 84 ms |
| p95OpenClawImportMs | 88.6 ms |
| p50OpenClawActivationMs | 0.3 ms |
| p95OpenClawActivationMs | 1.2 ms |
| maxPeakRssMb | 347.9 MB |
| maxCpuMsEstimate | 4780 ms |
| baselineReferenceWallMs | 2442 ms |
| baselineReferencePeakRssMb | 334.6 MB |
| baselineReferenceCpuMsEstimate | 4745 ms |
| statSampleCount | 287 |
| rssSampleCount | 287 |
| cpuSampleCount | 287 |
| capturedCount | 6 |
| failCount | 0 |
## Harness Baseline
| Metric | Value |
| ---------------------- | ---------------------------------------- |
| mode | minimal-plugin-capture |
| runs | 3 |
| entrypoint | .crabpot/import-loop/baseline-plugin.mjs |
| referenceWallMs | 2442 ms |
| referencePeakRssMb | 334.6 MB |
| referenceCpuMsEstimate | 4745 ms |
| maxWallMs | 2958 ms |
| maxPeakRssMb | 347.9 MB |
| maxCpuMsEstimate | 5384 ms |
| statSampleCount | 306 |
| failCount | 0 |
## Samples
| Run | Status | Captured | Wall | Peak RSS | CPU Estimate | Exit |
| --- | -------- | -------- | ----- | -------- | ------------ | ---- |
| 0 | captured | 2 | 75 ms | 0 MB | 0 ms | 0 |
| 1 | captured | 2 | 73 ms | 0 MB | 0 ms | 0 |
| 2 | captured | 2 | 73 ms | 0 MB | 0 ms | 0 |
| Run | Status | Captured | OpenClaw Import | OpenClaw Activate | Plugin Wall Delta | Plugin RSS Delta | Plugin CPU Delta | Raw Wall | Raw Peak RSS | Raw CPU Estimate | RSS/CPU samples | Exit |
| --- | -------- | -------- | --------------- | ----------------- | ----------------- | ---------------- | ---------------- | -------- | ------------ | ---------------- | --------------- | ---- |
| 0 | captured | 2 | 84 ms | 0.3 ms | 29 ms | 8 MB | 35 ms | 2471 ms | 342.6 MB | 4780 ms | 97/97 | 0 |
| 1 | captured | 2 | 81.8 ms | 0.3 ms | 0 ms | 0 MB | 0 ms | 2421 ms | 333.8 MB | 4743 ms | 96/96 | 0 |
| 2 | captured | 2 | 88.6 ms | 1.2 ms | 0 ms | 13.3 MB | 0 ms | 2392 ms | 347.9 MB | 4639 ms | 94/94 | 0 |

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,11 @@
{
"generatedAt": "2026-05-07T09:32:55.109Z",
"fixtureSet": "all",
"pluginTrack": "manifest",
"summary": {
"failureCount": 0,
"openclawFailureCount": 0,
"fallbackCount": 0
},
"failures": []
}

File diff suppressed because it is too large Load Diff

View File

@ -6,232 +6,609 @@ Targets: linux, macos, windows, container
## Summary
| Metric | Value |
| ----------------------- | ----- |
| fixtureCount | 29 |
| entrypointCount | 34 |
| tsLoaderEntrypointCount | 18 |
| jitiAlternativeCount | 18 |
| lazyImportProbeCount | 34 |
| portabilityFindingCount | 165 |
| windowsRiskStepCount | 165 |
| macosRiskStepCount | 14 |
| linuxRiskStepCount | 14 |
| containerRiskStepCount | 48 |
| Metric | Value |
| ------------------------------ | ----- |
| fixtureCount | 57 |
| entrypointCount | 103 |
| tsLoaderEntrypointCount | 25 |
| jitiAlternativeCount | 25 |
| lazyImportProbeCount | 103 |
| portabilityFindingCount | 14 |
| coveredPortabilityFindingCount | 455 |
| windowsRiskStepCount | 14 |
| macosRiskStepCount | 14 |
| linuxRiskStepCount | 14 |
| containerRiskStepCount | 14 |
## Loader Probes
| Fixture | Status | Primary | Alternatives | Capture TSX | Synthetic TSX | Entrypoint |
| ------------------ | --------------------------- | ------- | ------------ | ----------- | ------------- | ------------------------------------------------------------------- |
| agentchat | build-required | node | - | no | no | plugins/agentchat/integrations/openclaw-channel/dist/index.js |
| agentchat | build-required | node | - | no | no | plugins/agentchat/integrations/openclaw-channel/dist/setup-entry.js |
| wecom | dependency-install-required | node | - | no | no | plugins/wecom/index.js |
| qqbot | dependency-install-required | node | - | no | no | plugins/qqbot/preload.cjs |
| a2a-gateway | ts-loader-required | tsx | jiti | yes | yes | plugins/a2a-gateway/index.ts |
| hasdata | ts-loader-required | tsx | jiti | yes | yes | plugins/hasdata/src/index.ts |
| mcp-adapter | ts-loader-required | tsx | jiti | yes | yes | plugins/mcp-adapter/index.ts |
| llm-trace-phoenix | ts-loader-required | tsx | jiti | yes | yes | plugins/llm-trace-phoenix/index.ts |
| opik-openclaw | ts-loader-required | tsx | jiti | yes | yes | plugins/opik-openclaw/index.ts |
| opik-openclaw | build-required | node | - | no | no | plugins/opik-openclaw/dist/index.js |
| lossless-claw | build-required | node | - | no | no | plugins/lossless-claw/dist/index.js |
| connectclaw | ts-loader-required | tsx | jiti | yes | yes | plugins/connectclaw/packages/plugin/index.ts |
| hyperspell | ts-loader-required | tsx | jiti | yes | yes | plugins/hyperspell/index.ts |
| honcho | build-required | node | - | no | no | plugins/honcho/dist/index.js |
| composio | ts-loader-required | tsx | jiti | yes | yes | plugins/composio/index.ts |
| kitchen-sink | ready | node | - | no | no | plugins/kitchen-sink/src/index.js |
| kitchen-sink | ready | node | - | no | no | plugins/kitchen-sink/src/index.js |
| kitchen-sink | ready | node | - | no | no | plugins/kitchen-sink/src/setup.js |
| memory-tencentdb | ts-loader-required | tsx | jiti | yes | yes | plugins/memory-tencentdb/.crabpot-package/index.ts |
| ddingtalk | ts-loader-required | tsx | jiti | yes | yes | plugins/ddingtalk/index.ts |
| dingtalk-connector | build-required | node | - | no | no | plugins/dingtalk-connector/dist/index.mjs |
| mocrane-wecom | ts-loader-required | tsx | jiti | yes | yes | plugins/mocrane-wecom/index.ts |
| yuanbao | dependency-install-required | node | - | no | no | plugins/yuanbao/.crabpot-package/dist/index.js |
| openclaw-weixin | ts-loader-required | tsx | jiti | yes | yes | plugins/openclaw-weixin/.crabpot-package/index.ts |
| lightclawbot | dependency-install-required | node | - | no | no | plugins/lightclawbot/.crabpot-package/dist/index.js |
| memu-engine | ts-loader-required | tsx | jiti | yes | yes | plugins/memu-engine/index.ts |
| secureclaw | build-required | node | - | no | no | plugins/secureclaw/secureclaw/dist/index.js |
| memos-cloud | review-required | node | - | no | no | plugins/memos-cloud/index.js |
| clawmetry | ts-loader-required | tsx | jiti | yes | yes | plugins/clawmetry/clawhub-plugin/index.ts |
| clawmetry | build-required | node | - | no | no | plugins/clawmetry/clawhub-plugin/dist/index.js |
| codex-app-server | sdk-alias-required | tsx | jiti | yes | yes | plugins/codex-app-server/index.ts |
| web-search-plus | ts-loader-required | tsx | jiti | yes | yes | plugins/web-search-plus/index.ts |
| apify | ts-loader-required | tsx | jiti | yes | yes | plugins/apify/src/index.ts |
| inworld-tts | ts-loader-required | tsx | jiti | yes | yes | plugins/inworld-tts/index.ts |
| Fixture | Status | Primary | Alternatives | Capture TSX | Synthetic TSX | Capture Mock SDK | Synthetic Mock SDK | Entrypoint |
| ---------------------- | --------------------------- | ------- | ------------ | ----------- | ------------- | ---------------- | ------------------ | ------------------------------------------------------------------- |
| agentchat | build-required | node | - | no | no | yes | yes | plugins/agentchat/integrations/openclaw-channel/dist/index.js |
| agentchat | build-required | node | - | no | no | yes | yes | plugins/agentchat/integrations/openclaw-channel/dist/setup-entry.js |
| wecom | dependency-install-required | node | - | no | no | yes | yes | plugins/wecom/index.js |
| qqbot | dependency-install-required | node | - | no | no | yes | yes | plugins/qqbot/preload.cjs |
| a2a-gateway | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/a2a-gateway/index.ts |
| hasdata | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/hasdata/src/index.ts |
| mcp-adapter | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/mcp-adapter/index.ts |
| llm-trace-phoenix | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/llm-trace-phoenix/index.ts |
| opik-openclaw | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/opik-openclaw/index.ts |
| opik-openclaw | build-required | node | - | no | no | yes | yes | plugins/opik-openclaw/dist/index.js |
| openclaw-telemetry | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/openclaw-telemetry/index.ts |
| lossless-claw | build-required | node | - | no | no | yes | yes | plugins/lossless-claw/dist/index.js |
| connectclaw | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/connectclaw/packages/plugin/index.ts |
| hyperspell | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/hyperspell/index.ts |
| honcho | sdk-alias-required | node | - | no | no | yes | yes | plugins/honcho/dist/index.js |
| composio | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/composio/index.ts |
| kitchen-sink | ready | node | - | no | no | yes | yes | plugins/kitchen-sink/src/index.js |
| kitchen-sink | ready | node | - | no | no | yes | yes | plugins/kitchen-sink/src/index.js |
| kitchen-sink | ready | node | - | no | no | yes | yes | plugins/kitchen-sink/src/setup.js |
| bluebubbles | missing | node | - | no | no | yes | yes | plugins/bluebubbles/.crabpot-package/index.ts |
| bluebubbles | ready | node | - | no | no | yes | yes | plugins/bluebubbles/.crabpot-package/dist/index.js |
| bluebubbles | missing | node | - | no | no | yes | yes | plugins/bluebubbles/.crabpot-package/setup-entry.ts |
| diagnostics-otel | missing | node | - | no | no | yes | yes | plugins/diagnostics-otel/.crabpot-package/index.ts |
| diagnostics-otel | dependency-install-required | node | - | no | no | yes | yes | plugins/diagnostics-otel/.crabpot-package/dist/index.js |
| discord | missing | node | - | no | no | yes | yes | plugins/discord/.crabpot-package/index.ts |
| discord | dependency-install-required | node | - | no | no | yes | yes | plugins/discord/.crabpot-package/dist/index.js |
| discord | missing | node | - | no | no | yes | yes | plugins/discord/.crabpot-package/setup-entry.ts |
| lobster | missing | node | - | no | no | yes | yes | plugins/lobster/.crabpot-package/index.ts |
| lobster | dependency-install-required | node | - | no | no | yes | yes | plugins/lobster/.crabpot-package/dist/index.js |
| matrix | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/matrix/.crabpot-package/index.ts |
| matrix | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/matrix/.crabpot-package/setup-entry.ts |
| msteams | missing | node | - | no | no | yes | yes | plugins/msteams/.crabpot-package/index.ts |
| msteams | dependency-install-required | node | - | no | no | yes | yes | plugins/msteams/.crabpot-package/dist/index.js |
| msteams | missing | node | - | no | no | yes | yes | plugins/msteams/.crabpot-package/setup-entry.ts |
| nextcloud-talk | missing | node | - | no | no | yes | yes | plugins/nextcloud-talk/.crabpot-package/index.ts |
| nextcloud-talk | dependency-install-required | node | - | no | no | yes | yes | plugins/nextcloud-talk/.crabpot-package/dist/index.js |
| nextcloud-talk | missing | node | - | no | no | yes | yes | plugins/nextcloud-talk/.crabpot-package/setup-entry.ts |
| nostr | missing | node | - | no | no | yes | yes | plugins/nostr/.crabpot-package/index.ts |
| nostr | dependency-install-required | node | - | no | no | yes | yes | plugins/nostr/.crabpot-package/dist/index.js |
| nostr | missing | node | - | no | no | yes | yes | plugins/nostr/.crabpot-package/setup-entry.ts |
| voice-call | missing | node | - | no | no | yes | yes | plugins/voice-call/.crabpot-package/index.ts |
| voice-call | dependency-install-required | node | - | no | no | yes | yes | plugins/voice-call/.crabpot-package/dist/index.js |
| zalo | missing | node | - | no | no | yes | yes | plugins/zalo/.crabpot-package/index.ts |
| zalo | dependency-install-required | node | - | no | no | yes | yes | plugins/zalo/.crabpot-package/dist/index.js |
| zalo | missing | node | - | no | no | yes | yes | plugins/zalo/.crabpot-package/setup-entry.ts |
| zalouser | missing | node | - | no | no | yes | yes | plugins/zalouser/.crabpot-package/index.ts |
| zalouser | dependency-install-required | node | - | no | no | yes | yes | plugins/zalouser/.crabpot-package/dist/index.js |
| zalouser | missing | node | - | no | no | yes | yes | plugins/zalouser/.crabpot-package/setup-entry.ts |
| feishu | missing | node | - | no | no | yes | yes | plugins/feishu/.crabpot-package/index.ts |
| feishu | dependency-install-required | node | - | no | no | yes | yes | plugins/feishu/.crabpot-package/dist/index.js |
| feishu | missing | node | - | no | no | yes | yes | plugins/feishu/.crabpot-package/setup-entry.ts |
| tlon | missing | node | - | no | no | yes | yes | plugins/tlon/.crabpot-package/index.ts |
| tlon | dependency-install-required | node | - | no | no | yes | yes | plugins/tlon/.crabpot-package/dist/index.js |
| tlon | missing | node | - | no | no | yes | yes | plugins/tlon/.crabpot-package/setup-entry.ts |
| twitch | missing | node | - | no | no | yes | yes | plugins/twitch/.crabpot-package/index.ts |
| twitch | dependency-install-required | node | - | no | no | yes | yes | plugins/twitch/.crabpot-package/dist/index.js |
| twitch | missing | node | - | no | no | yes | yes | plugins/twitch/.crabpot-package/setup-entry.ts |
| mattermost | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/mattermost/.crabpot-package/index.ts |
| mattermost | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/mattermost/.crabpot-package/setup-entry.ts |
| synology-chat | missing | node | - | no | no | yes | yes | plugins/synology-chat/.crabpot-package/index.ts |
| synology-chat | dependency-install-required | node | - | no | no | yes | yes | plugins/synology-chat/.crabpot-package/dist/index.js |
| synology-chat | missing | node | - | no | no | yes | yes | plugins/synology-chat/.crabpot-package/setup-entry.ts |
| brave-plugin | missing | node | - | no | no | yes | yes | plugins/brave-plugin/.crabpot-package/index.ts |
| brave-plugin | ready | node | - | no | no | yes | yes | plugins/brave-plugin/.crabpot-package/dist/index.js |
| codex | missing | node | - | no | no | yes | yes | plugins/codex/.crabpot-package/index.ts |
| codex | dependency-install-required | node | - | no | no | yes | yes | plugins/codex/.crabpot-package/dist/index.js |
| diagnostics-prometheus | missing | node | - | no | no | yes | yes | plugins/diagnostics-prometheus/.crabpot-package/index.ts |
| diagnostics-prometheus | ready | node | - | no | no | yes | yes | plugins/diagnostics-prometheus/.crabpot-package/dist/index.js |
| google-meet | missing | node | - | no | no | yes | yes | plugins/google-meet/.crabpot-package/index.ts |
| google-meet | dependency-install-required | node | - | no | no | yes | yes | plugins/google-meet/.crabpot-package/dist/index.js |
| diffs | missing | node | - | no | no | yes | yes | plugins/diffs/.crabpot-package/index.ts |
| diffs | dependency-install-required | node | - | no | no | yes | yes | plugins/diffs/.crabpot-package/dist/index.js |
| memory-lancedb | missing | node | - | no | no | yes | yes | plugins/memory-lancedb/.crabpot-package/index.ts |
| memory-lancedb | dependency-install-required | node | - | no | no | yes | yes | plugins/memory-lancedb/.crabpot-package/dist/index.js |
| openclaw-qqbot | missing | node | - | no | no | yes | yes | plugins/openclaw-qqbot/.crabpot-package/index.ts |
| openclaw-qqbot | dependency-install-required | node | - | no | no | yes | yes | plugins/openclaw-qqbot/.crabpot-package/dist/index.js |
| openclaw-qqbot | missing | node | - | no | no | yes | yes | plugins/openclaw-qqbot/.crabpot-package/setup-entry.ts |
| whatsapp | missing | node | - | no | no | yes | yes | plugins/whatsapp/.crabpot-package/index.ts |
| whatsapp | dependency-install-required | node | - | no | no | yes | yes | plugins/whatsapp/.crabpot-package/dist/index.js |
| whatsapp | missing | node | - | no | no | yes | yes | plugins/whatsapp/.crabpot-package/setup-entry.ts |
| nemoclaw | build-required | node | - | no | no | yes | yes | plugins/nemoclaw/nemoclaw/dist/index.js |
| memory-tencentdb | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/memory-tencentdb/.crabpot-package/index.ts |
| ddingtalk | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/ddingtalk/index.ts |
| dingtalk-connector | build-required | node | - | no | no | yes | yes | plugins/dingtalk-connector/dist/index.mjs |
| mocrane-wecom | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/mocrane-wecom/index.ts |
| yuanbao | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/yuanbao/.crabpot-package/index.ts |
| yuanbao | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/yuanbao/.crabpot-package/setup-entry.ts |
| openclaw-weixin | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/openclaw-weixin/.crabpot-package/index.ts |
| openclaw-weixin | dependency-install-required | node | - | no | no | yes | yes | plugins/openclaw-weixin/.crabpot-package/dist/index.js |
| lightclawbot | dependency-install-required | node | - | no | no | yes | yes | plugins/lightclawbot/.crabpot-package/dist/index.js |
| telnyx-sms | build-required | node | - | no | no | yes | yes | plugins/telnyx-sms/dist/index.js |
| telnyx-sms | build-required | node | - | no | no | yes | yes | plugins/telnyx-sms/dist/setup-entry.js |
| clawrouter | dependency-install-required | node | - | no | no | yes | yes | plugins/clawrouter/dist/index.js |
| memu-engine | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/memu-engine/index.ts |
| secureclaw | build-required | node | - | no | no | yes | yes | plugins/secureclaw/secureclaw/dist/index.js |
| memos-cloud | review-required | node | - | no | no | yes | yes | plugins/memos-cloud/index.js |
| clawmetry | sdk-alias-required | tsx | jiti | no | no | yes | yes | plugins/clawmetry/clawhub-plugin/index.ts |
| clawmetry | sdk-alias-required | node | - | no | no | yes | yes | plugins/clawmetry/clawhub-plugin/dist/index.js |
| codex-app-server | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/codex-app-server/index.ts |
| web-search-plus | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/web-search-plus/index.ts |
| web-search-plus | review-required | node | - | no | no | yes | yes | plugins/web-search-plus/dist/index.js |
| apify | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/apify/src/index.ts |
| inworld-tts | ts-loader-required | tsx | jiti | no | no | yes | yes | plugins/inworld-tts/index.ts |
## Portability Findings
| Fixture | Step | Platforms | Risks | Mitigation |
| ------------------ | ----------------- | -------------------------------- | ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| agentchat | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| agentchat | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| agentchat | link-openclaw | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| agentchat | build | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| agentchat | capture | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| agentchat | synthetic-probe | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| agentchat | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| agentchat | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| agentchat | link-openclaw | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| agentchat | build | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| agentchat | capture | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| agentchat | synthetic-probe | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| wecom | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| wecom | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| wecom | audit | windows | posix-null-failure, shell-redirection | capture audit failures in the executor instead of relying on shell fallthrough; write audit JSON from the executor instead of shell redirection |
| wecom | capture | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| wecom | synthetic-probe | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| qqbot | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| qqbot | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| qqbot | audit | windows | posix-null-failure, shell-redirection | capture audit failures in the executor instead of relying on shell fallthrough; write audit JSON from the executor instead of shell redirection |
| qqbot | capture | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| qqbot | synthetic-probe | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| a2a-gateway | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| a2a-gateway | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| a2a-gateway | audit | windows | posix-null-failure, shell-redirection | capture audit failures in the executor instead of relying on shell fallthrough; write audit JSON from the executor instead of shell redirection |
| a2a-gateway | capture | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| a2a-gateway | synthetic-probe | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| hasdata | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| hasdata | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| hasdata | audit | windows | posix-null-failure, shell-redirection | capture audit failures in the executor instead of relying on shell fallthrough; write audit JSON from the executor instead of shell redirection |
| hasdata | capture | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| hasdata | synthetic-probe | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| mcp-adapter | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| mcp-adapter | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| mcp-adapter | audit | windows | posix-null-failure, shell-redirection | capture audit failures in the executor instead of relying on shell fallthrough; write audit JSON from the executor instead of shell redirection |
| mcp-adapter | capture | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| mcp-adapter | synthetic-probe | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| llm-trace-phoenix | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| llm-trace-phoenix | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| llm-trace-phoenix | capture | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| llm-trace-phoenix | synthetic-probe | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| opik-openclaw | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| opik-openclaw | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| opik-openclaw | audit | windows | posix-null-failure, shell-redirection | capture audit failures in the executor instead of relying on shell fallthrough; write audit JSON from the executor instead of shell redirection |
| opik-openclaw | capture | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| opik-openclaw | synthetic-probe | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| opik-openclaw | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| opik-openclaw | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| opik-openclaw | capture | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| opik-openclaw | synthetic-probe | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| lossless-claw | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| lossless-claw | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| lossless-claw | capture | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| lossless-claw | synthetic-probe | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| connectclaw | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| connectclaw | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| connectclaw | link-openclaw | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| connectclaw | capture | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| connectclaw | synthetic-probe | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| hyperspell | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| hyperspell | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| hyperspell | audit | windows | posix-null-failure, shell-redirection | capture audit failures in the executor instead of relying on shell fallthrough; write audit JSON from the executor instead of shell redirection |
| hyperspell | capture | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| hyperspell | synthetic-probe | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| honcho | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| honcho | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| honcho | link-openclaw | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| honcho | build | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| honcho | capture | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| honcho | synthetic-probe | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| composio | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| composio | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| composio | audit | windows | posix-null-failure, shell-redirection | capture audit failures in the executor instead of relying on shell fallthrough; write audit JSON from the executor instead of shell redirection |
| composio | capture | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| composio | synthetic-probe | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| kitchen-sink | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| kitchen-sink | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| kitchen-sink | capture | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| kitchen-sink | synthetic-probe | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| kitchen-sink | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| kitchen-sink | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| kitchen-sink | capture | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| kitchen-sink | synthetic-probe | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| kitchen-sink | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| kitchen-sink | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| kitchen-sink | capture | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| kitchen-sink | synthetic-probe | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| memory-tencentdb | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| memory-tencentdb | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| memory-tencentdb | audit | windows | posix-null-failure, shell-redirection | capture audit failures in the executor instead of relying on shell fallthrough; write audit JSON from the executor instead of shell redirection |
| memory-tencentdb | capture | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| memory-tencentdb | synthetic-probe | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| ddingtalk | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| ddingtalk | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| ddingtalk | link-openclaw | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| ddingtalk | install | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| ddingtalk | audit | container, linux, macos, windows | package-manager-availability, posix-null-failure, shell-redirection | install the declared package manager before isolated execution; capture audit failures in the executor instead of relying on shell fallthrough; write audit JSON from the executor instead of shell redirection |
| ddingtalk | capture | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| ddingtalk | synthetic-probe | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| dingtalk-connector | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| dingtalk-connector | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| dingtalk-connector | capture | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| dingtalk-connector | synthetic-probe | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| mocrane-wecom | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| mocrane-wecom | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| mocrane-wecom | audit | windows | posix-null-failure, shell-redirection | capture audit failures in the executor instead of relying on shell fallthrough; write audit JSON from the executor instead of shell redirection |
| mocrane-wecom | capture | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| mocrane-wecom | synthetic-probe | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| yuanbao | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| yuanbao | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| yuanbao | audit | windows | posix-null-failure, shell-redirection | capture audit failures in the executor instead of relying on shell fallthrough; write audit JSON from the executor instead of shell redirection |
| yuanbao | capture | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| yuanbao | synthetic-probe | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| openclaw-weixin | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| openclaw-weixin | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| openclaw-weixin | audit | windows | posix-null-failure, shell-redirection | capture audit failures in the executor instead of relying on shell fallthrough; write audit JSON from the executor instead of shell redirection |
| openclaw-weixin | capture | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| openclaw-weixin | synthetic-probe | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| lightclawbot | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| lightclawbot | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| lightclawbot | audit | windows | posix-null-failure, shell-redirection | capture audit failures in the executor instead of relying on shell fallthrough; write audit JSON from the executor instead of shell redirection |
| lightclawbot | capture | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| lightclawbot | synthetic-probe | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| memu-engine | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| memu-engine | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| memu-engine | capture | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| memu-engine | synthetic-probe | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| secureclaw | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| secureclaw | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| secureclaw | capture | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| secureclaw | synthetic-probe | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| memos-cloud | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| memos-cloud | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| memos-cloud | capture | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| memos-cloud | synthetic-probe | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| clawmetry | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| clawmetry | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| clawmetry | audit | windows | posix-null-failure, shell-redirection | capture audit failures in the executor instead of relying on shell fallthrough; write audit JSON from the executor instead of shell redirection |
| clawmetry | capture | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| clawmetry | synthetic-probe | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| clawmetry | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| clawmetry | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| clawmetry | capture | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| clawmetry | synthetic-probe | windows | posix-env-prefix | run isolated commands through a Node wrapper or set env via the runner API |
| codex-app-server | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| codex-app-server | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| codex-app-server | link-openclaw | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| codex-app-server | install | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| codex-app-server | audit | container, linux, macos, windows | package-manager-availability, posix-null-failure, shell-redirection | install the declared package manager before isolated execution; capture audit failures in the executor instead of relying on shell fallthrough; write audit JSON from the executor instead of shell redirection |
| codex-app-server | capture | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| codex-app-server | synthetic-probe | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| web-search-plus | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| web-search-plus | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| web-search-plus | capture | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| web-search-plus | synthetic-probe | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| apify | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| apify | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| apify | audit | windows | posix-null-failure, shell-redirection | capture audit failures in the executor instead of relying on shell fallthrough; write audit JSON from the executor instead of shell redirection |
| apify | capture | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| apify | synthetic-probe | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| inworld-tts | prepare | container, windows | posix-mkdir, rsync-required | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor; copy workspaces with a Node fs.cp fallback before Windows/container lanes |
| inworld-tts | prepare-artifacts | windows | posix-mkdir | replace shell mkdir with fs.mkdir({ recursive: true }) in the executor |
| inworld-tts | link-openclaw | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| inworld-tts | capture | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| inworld-tts | synthetic-probe | windows | posix-env-prefix, tsx-loader-runtime | run isolated commands through a Node wrapper or set env via the runner API; verify TS source entrypoints with tsx and Jiti loader lanes |
| Fixture | Step | Platforms | Risks | Mitigation |
| ---------------- | ------------- | -------------------------------- | ---------------------------- | -------------------------------------------------------------- |
| agentchat | link-openclaw | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| agentchat | build | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| agentchat | link-openclaw | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| agentchat | build | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| connectclaw | link-openclaw | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| honcho | link-openclaw | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| honcho | build | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| ddingtalk | link-openclaw | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| ddingtalk | install | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| ddingtalk | audit | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| codex-app-server | link-openclaw | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| codex-app-server | install | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| codex-app-server | audit | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
| inworld-tts | link-openclaw | container, linux, macos, windows | package-manager-availability | install the declared package manager before isolated execution |
## Covered Portability Findings
| Fixture | Step | Platforms | Covered Risks | Coverage |
| ---------------------- | ----------------- | ------------------ | ------------------------------------- | -------------------------------------- |
| agentchat | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| agentchat | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| agentchat | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| agentchat | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| agentchat | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| agentchat | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| agentchat | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| agentchat | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| wecom | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| wecom | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| wecom | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| wecom | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| wecom | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| qqbot | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| qqbot | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| qqbot | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| qqbot | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| qqbot | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| a2a-gateway | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| a2a-gateway | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| a2a-gateway | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| a2a-gateway | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| a2a-gateway | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| hasdata | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| hasdata | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| hasdata | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| hasdata | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| hasdata | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| mcp-adapter | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| mcp-adapter | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| mcp-adapter | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| mcp-adapter | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| mcp-adapter | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| llm-trace-phoenix | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| llm-trace-phoenix | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| llm-trace-phoenix | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| llm-trace-phoenix | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| opik-openclaw | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| opik-openclaw | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| opik-openclaw | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| opik-openclaw | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| opik-openclaw | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| opik-openclaw | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| opik-openclaw | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| opik-openclaw | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| opik-openclaw | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| openclaw-telemetry | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| openclaw-telemetry | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| openclaw-telemetry | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| openclaw-telemetry | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| lossless-claw | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| lossless-claw | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| lossless-claw | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| lossless-claw | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| connectclaw | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| connectclaw | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| connectclaw | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| connectclaw | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| hyperspell | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| hyperspell | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| hyperspell | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| hyperspell | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| hyperspell | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| honcho | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| honcho | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| honcho | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| honcho | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| composio | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| composio | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| composio | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| composio | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| composio | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| kitchen-sink | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| kitchen-sink | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| kitchen-sink | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| kitchen-sink | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| kitchen-sink | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| kitchen-sink | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| kitchen-sink | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| kitchen-sink | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| kitchen-sink | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| kitchen-sink | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| kitchen-sink | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| kitchen-sink | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| bluebubbles | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| bluebubbles | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| bluebubbles | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| bluebubbles | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| bluebubbles | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| bluebubbles | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| bluebubbles | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| bluebubbles | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| bluebubbles | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| bluebubbles | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| bluebubbles | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| bluebubbles | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| diagnostics-otel | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| diagnostics-otel | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| diagnostics-otel | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| diagnostics-otel | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| diagnostics-otel | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| diagnostics-otel | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| diagnostics-otel | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| diagnostics-otel | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| diagnostics-otel | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| discord | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| discord | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| discord | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| discord | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| discord | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| discord | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| discord | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| discord | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| discord | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| discord | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| discord | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| discord | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| discord | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| lobster | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| lobster | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| lobster | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| lobster | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| lobster | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| lobster | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| lobster | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| lobster | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| lobster | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| matrix | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| matrix | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| matrix | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| matrix | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| matrix | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| matrix | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| matrix | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| matrix | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| matrix | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| matrix | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| msteams | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| msteams | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| msteams | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| msteams | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| msteams | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| msteams | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| msteams | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| msteams | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| msteams | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| msteams | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| msteams | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| msteams | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| msteams | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| nextcloud-talk | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| nextcloud-talk | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| nextcloud-talk | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| nextcloud-talk | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| nextcloud-talk | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| nextcloud-talk | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| nextcloud-talk | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| nextcloud-talk | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| nextcloud-talk | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| nextcloud-talk | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| nextcloud-talk | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| nextcloud-talk | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| nextcloud-talk | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| nostr | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| nostr | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| nostr | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| nostr | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| nostr | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| nostr | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| nostr | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| nostr | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| nostr | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| nostr | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| nostr | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| nostr | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| nostr | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| voice-call | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| voice-call | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| voice-call | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| voice-call | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| voice-call | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| voice-call | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| voice-call | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| voice-call | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| voice-call | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| zalo | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| zalo | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| zalo | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| zalo | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| zalo | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| zalo | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| zalo | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| zalo | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| zalo | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| zalo | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| zalo | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| zalo | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| zalo | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| zalouser | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| zalouser | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| zalouser | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| zalouser | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| zalouser | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| zalouser | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| zalouser | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| zalouser | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| zalouser | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| zalouser | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| zalouser | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| zalouser | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| zalouser | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| feishu | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| feishu | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| feishu | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| feishu | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| feishu | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| feishu | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| feishu | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| feishu | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| feishu | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| feishu | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| feishu | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| feishu | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| feishu | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| tlon | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| tlon | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| tlon | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| tlon | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| tlon | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| tlon | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| tlon | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| tlon | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| tlon | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| tlon | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| tlon | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| tlon | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| tlon | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| twitch | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| twitch | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| twitch | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| twitch | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| twitch | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| twitch | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| twitch | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| twitch | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| twitch | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| twitch | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| twitch | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| twitch | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| twitch | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| mattermost | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| mattermost | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| mattermost | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| mattermost | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| mattermost | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| mattermost | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| mattermost | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| mattermost | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| mattermost | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| mattermost | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| synology-chat | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| synology-chat | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| synology-chat | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| synology-chat | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| synology-chat | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| synology-chat | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| synology-chat | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| synology-chat | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| synology-chat | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| synology-chat | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| synology-chat | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| synology-chat | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| synology-chat | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| brave-plugin | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| brave-plugin | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| brave-plugin | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| brave-plugin | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| brave-plugin | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| brave-plugin | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| brave-plugin | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| brave-plugin | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| codex | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| codex | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| codex | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| codex | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| codex | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| codex | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| codex | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| codex | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| codex | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| diagnostics-prometheus | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| diagnostics-prometheus | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| diagnostics-prometheus | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| diagnostics-prometheus | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| diagnostics-prometheus | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| diagnostics-prometheus | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| diagnostics-prometheus | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| diagnostics-prometheus | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| google-meet | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| google-meet | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| google-meet | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| google-meet | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| google-meet | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| google-meet | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| google-meet | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| google-meet | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| google-meet | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| diffs | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| diffs | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| diffs | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| diffs | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| diffs | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| diffs | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| diffs | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| diffs | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| diffs | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| memory-lancedb | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| memory-lancedb | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| memory-lancedb | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| memory-lancedb | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| memory-lancedb | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| memory-lancedb | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| memory-lancedb | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| memory-lancedb | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| memory-lancedb | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| openclaw-qqbot | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| openclaw-qqbot | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| openclaw-qqbot | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| openclaw-qqbot | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| openclaw-qqbot | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| openclaw-qqbot | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| openclaw-qqbot | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| openclaw-qqbot | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| openclaw-qqbot | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| openclaw-qqbot | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| openclaw-qqbot | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| openclaw-qqbot | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| openclaw-qqbot | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| whatsapp | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| whatsapp | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| whatsapp | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| whatsapp | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| whatsapp | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| whatsapp | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| whatsapp | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| whatsapp | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| whatsapp | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| whatsapp | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| whatsapp | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| whatsapp | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| whatsapp | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| nemoclaw | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| nemoclaw | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| nemoclaw | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| nemoclaw | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| memory-tencentdb | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| memory-tencentdb | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| memory-tencentdb | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| memory-tencentdb | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| memory-tencentdb | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| ddingtalk | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| ddingtalk | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| ddingtalk | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| ddingtalk | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| ddingtalk | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| dingtalk-connector | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| dingtalk-connector | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| dingtalk-connector | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| dingtalk-connector | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| mocrane-wecom | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| mocrane-wecom | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| mocrane-wecom | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| mocrane-wecom | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| mocrane-wecom | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| yuanbao | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| yuanbao | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| yuanbao | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| yuanbao | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| yuanbao | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| yuanbao | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| yuanbao | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| yuanbao | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| yuanbao | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| yuanbao | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| openclaw-weixin | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| openclaw-weixin | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| openclaw-weixin | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| openclaw-weixin | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| openclaw-weixin | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| openclaw-weixin | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| openclaw-weixin | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| openclaw-weixin | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| openclaw-weixin | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| openclaw-weixin | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| lightclawbot | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| lightclawbot | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| lightclawbot | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| lightclawbot | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| lightclawbot | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| telnyx-sms | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| telnyx-sms | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| telnyx-sms | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| telnyx-sms | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| telnyx-sms | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| telnyx-sms | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| telnyx-sms | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| telnyx-sms | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| clawrouter | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| clawrouter | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| clawrouter | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| clawrouter | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| clawrouter | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| memu-engine | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| memu-engine | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| memu-engine | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| memu-engine | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| secureclaw | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| secureclaw | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| secureclaw | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| secureclaw | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| memos-cloud | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| memos-cloud | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| memos-cloud | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| memos-cloud | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| clawmetry | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| clawmetry | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| clawmetry | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| clawmetry | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| clawmetry | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| clawmetry | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| clawmetry | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| clawmetry | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| clawmetry | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| codex-app-server | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| codex-app-server | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| codex-app-server | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| codex-app-server | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| codex-app-server | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| web-search-plus | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| web-search-plus | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| web-search-plus | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| web-search-plus | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| web-search-plus | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| web-search-plus | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| web-search-plus | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| web-search-plus | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| apify | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| apify | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| apify | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
| apify | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| apify | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
| inworld-tts | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
| inworld-tts | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
| inworld-tts | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
| inworld-tts | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
## Recommendations
| Area | Action |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| loader | keep tsx as the source-entrypoint smoke path, add a Jiti execution lane before treating TS plugin source compatibility as covered |
| workspace-copy | move isolated workspace copy into Node fs.cp so Windows and slim containers do not depend on rsync |
| executor | replace shell env-prefix commands with structured spawn env for Windows parity |
| Area | Action |
| ------ | ---------------------------------------------------------------------------------------------------------------------------------- |
| loader | keep mock-SDK TypeScript capture green, add a real host-loader/Jiti lane before treating TS plugin source compatibility as covered |

View File

@ -32,35 +32,39 @@
}
},
"current": {
"runs": 1,
"runs": 3,
"summary": {
"commandCount": 9,
"p50WallMs": 423,
"p95WallMs": 444,
"maxPeakRssMb": 81.7,
"maxRssDeltaMb": 17.7,
"maxCpuMsEstimate": 469,
"maxHarnessHeapDeltaMb": 0.6
"sampleCount": 27,
"rssSampleCount": 1993,
"cpuSampleCount": 1993,
"wallTimeBasis": "command-median-p95",
"p50WallMs": 2337,
"p95WallMs": 2391,
"maxPeakRssMb": 455.4,
"maxRssDeltaMb": 425.7,
"maxCpuMsEstimate": 2657,
"maxHarnessHeapDeltaMb": 7.9
},
"targetOpenClaw": {
"status": "ok",
"configuredPath": "./openclaw",
"compatRecords": 51,
"hookNames": 32,
"apiRegistrars": 41,
"capturedRegistrars": 19,
"sdkExports": 316,
"manifestFields": 35,
"compatRecords": 60,
"hookNames": 35,
"apiRegistrars": 49,
"capturedRegistrars": 26,
"sdkExports": 296,
"manifestFields": 40,
"manifestContractFields": 17
},
"fixtureInventory": {
"fixtures": 29,
"sourceFiles": 750,
"observedHooks": 76,
"observedRegistrations": 100,
"observedSdkImports": 330,
"contractProbes": 154,
"issueFindings": 195
"fixtures": 57,
"sourceFiles": 1834,
"observedHooks": 97,
"observedRegistrations": 194,
"observedSdkImports": 1162,
"contractProbes": 277,
"issueFindings": 281
}
},
"thresholds": {
@ -72,28 +76,28 @@
"summary": {
"checkCount": 10,
"failCount": 0,
"warnCount": 0,
"passCount": 10
"warnCount": 2,
"passCount": 8
},
"checks": [
{
"id": "profile.wall-p95",
"action": "pass",
"action": "warn",
"metric": "p95WallMs",
"message": "p95WallMs stayed within 50% regression threshold",
"message": "p95WallMs regressed 87.8% over baseline",
"baseline": 1273,
"current": 444,
"delta": -829,
"percent": -65.1
"current": 2391,
"delta": 1118,
"percent": 87.8
},
{
"id": "profile.peak-rss",
"action": "pass",
"action": "warn",
"metric": "maxPeakRssMb",
"message": "maxPeakRssMb stayed within 50 absolute regression threshold",
"message": "maxPeakRssMb regressed 390.29999999999995 over baseline",
"baseline": 65.1,
"current": 81.7,
"delta": 16.60000000000001
"current": 455.4,
"delta": 390.29999999999995
},
{
"id": "profile.node-boot",
@ -101,8 +105,8 @@
"metric": "nodeBootWallMs",
"message": "nodeBootWallMs stayed within 500 absolute regression threshold",
"baseline": 917,
"current": 36,
"delta": -881
"current": 34,
"delta": -883
},
{
"id": "registry.compatRecords",
@ -110,8 +114,8 @@
"metric": "compatRecords",
"message": "registry surface delta is tracked as context",
"baseline": 19,
"current": 51,
"delta": 32
"current": 60,
"delta": 41
},
{
"id": "registry.hookNames",
@ -119,8 +123,8 @@
"metric": "hookNames",
"message": "registry surface delta is tracked as context",
"baseline": 31,
"current": 32,
"delta": 1
"current": 35,
"delta": 4
},
{
"id": "registry.apiRegistrars",
@ -128,8 +132,8 @@
"metric": "apiRegistrars",
"message": "registry surface delta is tracked as context",
"baseline": 40,
"current": 41,
"delta": 1
"current": 49,
"delta": 9
},
{
"id": "registry.capturedRegistrars",
@ -137,8 +141,8 @@
"metric": "capturedRegistrars",
"message": "registry surface delta is tracked as context",
"baseline": 18,
"current": 19,
"delta": 1
"current": 26,
"delta": 8
},
{
"id": "registry.sdkExports",
@ -146,8 +150,8 @@
"metric": "sdkExports",
"message": "registry surface delta is tracked as context",
"baseline": 307,
"current": 316,
"delta": 9
"current": 296,
"delta": -11
},
{
"id": "registry.manifestFields",
@ -155,8 +159,8 @@
"metric": "manifestFields",
"message": "registry surface delta is tracked as context",
"baseline": 32,
"current": 35,
"delta": 3
"current": 40,
"delta": 8
},
{
"id": "registry.manifestContractFields",

View File

@ -10,22 +10,22 @@ Strict: false
| ------------- | ----- |
| Checks | 10 |
| Fail | 0 |
| Warn | 0 |
| Pass | 10 |
| Current runs | 1 |
| Warn | 2 |
| Pass | 8 |
| Current runs | 3 |
| Baseline runs | 3 |
## Checks
| Action | ID | Metric | Baseline | Current | Delta | Percent | Message |
| ------ | ------------------------------- | ---------------------- | -------- | ------- | ----------------- | ------- | -------------------------------------------------------------- |
| pass | profile.wall-p95 | p95WallMs | 1273 | 444 | -829 | -65.1% | p95WallMs stayed within 50% regression threshold |
| pass | profile.peak-rss | maxPeakRssMb | 65.1 | 81.7 | 16.60000000000001 | - | maxPeakRssMb stayed within 50 absolute regression threshold |
| pass | profile.node-boot | nodeBootWallMs | 917 | 36 | -881 | - | nodeBootWallMs stayed within 500 absolute regression threshold |
| pass | registry.compatRecords | compatRecords | 19 | 51 | 32 | - | registry surface delta is tracked as context |
| pass | registry.hookNames | hookNames | 31 | 32 | 1 | - | registry surface delta is tracked as context |
| pass | registry.apiRegistrars | apiRegistrars | 40 | 41 | 1 | - | registry surface delta is tracked as context |
| pass | registry.capturedRegistrars | capturedRegistrars | 18 | 19 | 1 | - | registry surface delta is tracked as context |
| pass | registry.sdkExports | sdkExports | 307 | 316 | 9 | - | registry surface delta is tracked as context |
| pass | registry.manifestFields | manifestFields | 32 | 35 | 3 | - | registry surface delta is tracked as context |
| pass | registry.manifestContractFields | manifestContractFields | 16 | 17 | 1 | - | registry surface delta is tracked as context |
| Action | ID | Metric | Baseline | Current | Delta | Percent | Message |
| ------ | ------------------------------- | ---------------------- | -------- | ------- | ------------------ | ------- | -------------------------------------------------------------- |
| warn | profile.wall-p95 | p95WallMs | 1273 | 2391 | 1118 | 87.8% | p95WallMs regressed 87.8% over baseline |
| warn | profile.peak-rss | maxPeakRssMb | 65.1 | 455.4 | 390.29999999999995 | - | maxPeakRssMb regressed 390.29999999999995 over baseline |
| pass | profile.node-boot | nodeBootWallMs | 917 | 34 | -883 | - | nodeBootWallMs stayed within 500 absolute regression threshold |
| pass | registry.compatRecords | compatRecords | 19 | 60 | 41 | - | registry surface delta is tracked as context |
| pass | registry.hookNames | hookNames | 31 | 35 | 4 | - | registry surface delta is tracked as context |
| pass | registry.apiRegistrars | apiRegistrars | 40 | 49 | 9 | - | registry surface delta is tracked as context |
| pass | registry.capturedRegistrars | capturedRegistrars | 18 | 26 | 8 | - | registry surface delta is tracked as context |
| pass | registry.sdkExports | sdkExports | 307 | 296 | -11 | - | registry surface delta is tracked as context |
| pass | registry.manifestFields | manifestFields | 32 | 40 | 8 | - | registry surface delta is tracked as context |
| pass | registry.manifestContractFields | manifestContractFields | 16 | 17 | 1 | - | registry surface delta is tracked as context |

Some files were not shown because too many files have changed in this diff Show More