Compare commits

..

294 Commits

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
Vincent Koc
c69ff730d1
fix(release): avoid npm shims in static runner 2026-04-28 22:46:05 -07:00
Vincent Koc
8a2544eedd
test(release): keep compat expectations target-stable 2026-04-28 22:40:39 -07:00
Vincent Koc
6b8bf190c2
fix(release): keep crabpot findings advisory 2026-04-28 22:29:09 -07:00
Vincent Koc
2c8d05a324
chore(plugin-inspector): pin package 0.3.4 2026-04-28 22:08:31 -07:00
Vincent Koc
7e33faf6e9
chore(plugin-inspector): pin 0.3.4 release prep 2026-04-28 22:01:25 -07:00
Vincent Koc
178775d4b9
chore(validation): track plugin-inspector source head 2026-04-28 21:57:06 -07:00
Vincent Koc
d7927fd40d
fix(validation): use pinned inspector source in static suite 2026-04-28 21:51:02 -07:00
github-actions[bot]
58c7deb8de chore(readme): update crabpot dashboard [skip ci] 2026-04-29 04:41:43 +00:00
Vincent Koc
aeef23a788
chore(plugin-inspector): refresh host-linked dependency reports 2026-04-28 21:38:41 -07:00
github-actions[bot]
8acd4b2faf chore(readme): update crabpot dashboard [skip ci] 2026-04-29 04:20:03 +00:00
Vincent Koc
655636fca5
chore(plugin-inspector): update probe compat reports 2026-04-28 21:16:34 -07:00
github-actions[bot]
4d5a402f0e chore(readme): update crabpot dashboard [skip ci] 2026-04-29 01:40:18 +00:00
Vincent Koc
7e3abf2ea7
chore(plugin-inspector): update source ref 2026-04-28 18:35:37 -07:00
github-actions[bot]
4b55c25dd6 chore(readme): update crabpot dashboard [skip ci] 2026-04-29 01:33:14 +00:00
Vincent Koc
02db0f6954
fix(readme): preserve compact dashboard spacing 2026-04-28 18:29:44 -07:00
Vincent Koc
8c53490583
fix(readme): keep crabpot track dashboard compact 2026-04-28 18:27:11 -07:00
github-actions[bot]
56f92bd6a3 chore(readme): update crabpot dashboard [skip ci] 2026-04-29 01:21:49 +00:00
Vincent Koc
312eb9933f
Update README.md 2026-04-28 18:18:21 -07:00
github-actions[bot]
e67afe28d6 chore(readme): refresh latest dashboard [skip ci] 2026-04-29 00:29:21 +00:00
github-actions[bot]
2ef004e30d chore(readme): update crabpot dashboard [skip ci] 2026-04-29 00:25:42 +00:00
Vincent Koc
06055e7e71
fix(ci): resolve OpenClaw tracks from registry 2026-04-28 17:21:50 -07:00
Vincent Koc
47998a041c
fix(ci): resolve npm command on windows 2026-04-28 17:17:30 -07:00
Vincent Koc
49189c184c
fix(ci): setup node before resolving crabpot tracks 2026-04-28 17:12:43 -07:00
Vincent Koc
9ea9404d5d
fix(ci): gate scheduled crabpot track refresh 2026-04-28 17:09:18 -07:00
Vincent Koc
0305d0704b
feat(ci): add crabpot OpenClaw track dashboards 2026-04-28 17:07:01 -07:00
github-actions[bot]
43e1bafa94 chore(readme): update crabpot dashboard [skip ci] 2026-04-28 23:36:58 +00:00
Vincent Koc
3b5131e345
chore(fixtures): refresh kitchen sink surface 2026-04-28 16:33:26 -07:00
github-actions[bot]
38d17951db chore(readme): update crabpot dashboard [skip ci] 2026-04-28 22:24:51 +00:00
Patrick Erichsen
5856c21c3b
test: add generated OpenClaw surface check
Adds a generated fixture that exercises the OpenClaw plugin API surface through plugin-inspector, wires it into default and manual compatibility workflows, and fixes the generated check to honor platform-specific CLI shell invocation.
2026-04-28 15:21:42 -07:00
github-actions[bot]
6c8d1153c6 chore(readme): update crabpot dashboard [skip ci] 2026-04-28 22:14:09 +00:00
Vincent Koc
6ee0f2ab05
fix(ci): update dependabot branches before merge 2026-04-28 15:10:24 -07:00
dependabot[bot]
d68749c073
chore(deps): bump plugins/clawmetry to d6b8c92
Bump plugins/clawmetry to d6b8c926d0aadcf4f428843f3757ce0fb0825143.
2026-04-28 15:08:24 -07:00
dependabot[bot]
8a751054d3
chore(deps): bump plugins/lossless-claw to f2574ed
Bump plugins/lossless-claw to f2574ed9585ebba46b3574d9d2541444766cab19.
2026-04-28 15:07:36 -07:00
dependabot[bot]
1678f39f2f
chore(deps): bump plugins/wecom to 503a1d5
Bump plugins/wecom to 503a1d5403bc3a57763b9ef17c60a9d5e31b53d9.
2026-04-28 15:06:38 -07:00
github-actions[bot]
b6fd069593 chore(readme): update crabpot dashboard [skip ci] 2026-04-28 20:45:55 +00:00
Vincent Koc
36f31fe624
fix(ci): classify kitchen-sink probe blockers 2026-04-28 13:41:50 -07:00
Vincent Koc
12462e49b5
chore(fixtures): add kitchen-sink 2026-04-28 13:34:00 -07:00
github-actions[bot]
072f911599 chore(readme): update crabpot dashboard [skip ci] 2026-04-28 09:32:41 +00:00
Vincent Koc
8b1ff6f63b
chore(deps): bump plugin-inspector to 0.3.2 2026-04-28 02:29:29 -07:00
github-actions[bot]
fec78d6592 chore(readme): update crabpot dashboard [skip ci] 2026-04-28 05:35:48 +00:00
Vincent Koc
1f5457ebde
chore: update plugin inspector source ref 2026-04-27 22:32:08 -07:00
github-actions[bot]
664fd6d677 chore(readme): update crabpot dashboard [skip ci] 2026-04-28 05:19:53 +00:00
Vincent Koc
76617763f8
chore: update plugin inspector package pin 2026-04-27 22:16:16 -07:00
Vincent Koc
3ef5df8f3f
chore: update plugin inspector source ref 2026-04-27 22:13:32 -07:00
github-actions[bot]
0db0d4356b chore(readme): update crabpot dashboard [skip ci] 2026-04-28 04:55:36 +00:00
Vincent Koc
a0fec9b35d
chore: update plugin inspector source ref 2026-04-27 21:52:14 -07:00
github-actions[bot]
6086500a5c chore(readme): update crabpot dashboard [skip ci] 2026-04-28 04:50:59 +00:00
Vincent Koc
f71bc9bb9f
chore: correct plugin inspector source ref 2026-04-27 21:47:55 -07:00
Vincent Koc
86ea4d6e7e
chore: update plugin inspector source ref 2026-04-27 21:46:46 -07:00
github-actions[bot]
fa65a864ed chore(readme): update crabpot dashboard [skip ci] 2026-04-28 04:40:17 +00:00
Vincent Koc
b99dd367f3
chore: update plugin inspector source ref 2026-04-27 21:35:55 -07:00
github-actions[bot]
cd8395dfad chore(readme): update crabpot dashboard [skip ci] 2026-04-28 04:35:03 +00:00
Vincent Koc
9e7edebb8d
chore: update plugin inspector source ref 2026-04-27 21:31:58 -07:00
Vincent Koc
f14c1657d6
chore: update plugin inspector source ref 2026-04-27 21:29:18 -07:00
github-actions[bot]
7b5c7c836f chore(readme): update crabpot dashboard [skip ci] 2026-04-28 04:27:46 +00:00
Vincent Koc
c918fd2632
chore: update plugin inspector source ref 2026-04-27 21:23:57 -07:00
github-actions[bot]
858aeec95e chore(readme): update crabpot dashboard [skip ci] 2026-04-28 04:15:43 +00:00
Vincent Koc
80d0b8cc21
chore: update plugin inspector source ref 2026-04-27 21:12:35 -07:00
github-actions[bot]
e95aa3dce0 chore(readme): update crabpot dashboard [skip ci] 2026-04-28 04:08:34 +00:00
Vincent Koc
b8d22ff1d6
refactor: use plugin inspector synthetic api 2026-04-27 21:05:20 -07:00
github-actions[bot]
70d853c9ab chore(readme): update crabpot dashboard [skip ci] 2026-04-28 04:01:38 +00:00
Vincent Koc
3062a15cee
refactor: use plugin inspector runtime api 2026-04-27 20:58:25 -07:00
github-actions[bot]
4800ab68e0 chore(readme): update crabpot dashboard [skip ci] 2026-04-28 03:54:09 +00:00
Vincent Koc
b995e57c62
refactor: use plugin inspector ci api 2026-04-27 20:50:36 -07:00
github-actions[bot]
658fc66984 chore(readme): update crabpot dashboard [skip ci] 2026-04-28 03:46:57 +00:00
Vincent Koc
2299f61724
refactor: use plugin inspector contract api 2026-04-27 20:44:16 -07:00
github-actions[bot]
a25408e154 chore(readme): update crabpot dashboard [skip ci] 2026-04-28 03:40:06 +00:00
Vincent Koc
8138ff870d
refactor: use plugin inspector report api 2026-04-27 20:36:57 -07:00
github-actions[bot]
31f7cf4790 chore(readme): update crabpot dashboard [skip ci] 2026-04-28 00:35:33 +00:00
Vincent Koc
42b174382d
refactor: use plugin inspector workspace api 2026-04-27 17:32:42 -07:00
github-actions[bot]
cdc8b69fb6 chore(readme): update crabpot dashboard [skip ci] 2026-04-28 00:29:40 +00:00
Vincent Koc
d0b60e55f9
refactor: use plugin inspector cold import api 2026-04-27 17:26:30 -07:00
github-actions[bot]
a5598d5d96 chore(readme): update crabpot dashboard [skip ci] 2026-04-28 00:15:40 +00:00
Vincent Koc
9e522e0ade
refactor: use plugin inspector public inspection api 2026-04-27 17:12:33 -07:00
github-actions[bot]
0cd5477338 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 23:28:05 +00:00
Vincent Koc
c2b9212aa4
chore: update plugin inspector package pin 2026-04-27 16:24:38 -07:00
github-actions[bot]
a2b311f020 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 22:49:11 +00:00
Vincent Koc
8125e08680
chore: update plugin inspector source ref 2026-04-27 15:46:04 -07:00
github-actions[bot]
07fb7856ea chore(readme): update crabpot dashboard [skip ci] 2026-04-27 22:36:34 +00:00
Vincent Koc
5549905713
chore: update plugin inspector source ref 2026-04-27 15:33:41 -07:00
github-actions[bot]
92ee26df37 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 22:31:39 +00:00
Vincent Koc
1a72e4ffe5
chore: update plugin inspector source ref 2026-04-27 15:28:32 -07:00
github-actions[bot]
c0c44d1c74 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 22:21:56 +00:00
Vincent Koc
3c73cff5d0
chore: update plugin inspector source ref 2026-04-27 15:19:03 -07:00
github-actions[bot]
8833296f49 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 22:13:39 +00:00
Vincent Koc
b97e3d6a2e
chore: update plugin inspector source ref 2026-04-27 15:10:03 -07:00
github-actions[bot]
454cce7ad7 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 22:08:03 +00:00
Vincent Koc
c5cb815352
chore: update plugin inspector source ref 2026-04-27 15:04:58 -07:00
github-actions[bot]
a8dee50391 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 21:58:49 +00:00
Vincent Koc
1912fb84aa
chore: update plugin inspector source ref 2026-04-27 14:55:35 -07:00
github-actions[bot]
c74efdae69 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 21:53:37 +00:00
Vincent Koc
603e092b76
chore: update plugin inspector source ref 2026-04-27 14:50:07 -07:00
github-actions[bot]
96897954f9 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 21:43:36 +00:00
Vincent Koc
34a3d3c520
chore: update plugin inspector source ref 2026-04-27 14:39:56 -07:00
github-actions[bot]
3a37d5b082 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 21:31:19 +00:00
Vincent Koc
4a23e49f99
chore: update plugin inspector source ref 2026-04-27 14:28:21 -07:00
github-actions[bot]
c0dafda3a8 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 21:17:24 +00:00
Vincent Koc
b382c6a0af
refactor: use plugin inspector synthetic plan API 2026-04-27 14:14:28 -07:00
github-actions[bot]
b921cd3086 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 21:03:30 +00:00
Vincent Koc
0bd1064a56
chore: update plugin inspector source ref 2026-04-27 13:59:06 -07:00
github-actions[bot]
367e894ec4 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 20:46:42 +00:00
Vincent Koc
bf92a7db22
refactor: use plugin inspector fixture report API 2026-04-27 13:42:29 -07:00
github-actions[bot]
3dbb86aeb9 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 20:02:22 +00:00
Vincent Koc
1745535708
chore: update plugin inspector source ref 2026-04-27 12:59:15 -07:00
github-actions[bot]
6c45a5fd82 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 19:53:50 +00:00
Vincent Koc
c05ca9c20a
chore: update plugin inspector source ref 2026-04-27 12:50:33 -07:00
github-actions[bot]
9b4b527c34 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 19:31:30 +00:00
Vincent Koc
44db8af401
chore: use plugin inspector 0.2.0 2026-04-27 12:28:19 -07:00
github-actions[bot]
21571313cf chore(readme): update crabpot dashboard [skip ci] 2026-04-27 19:17:34 +00:00
Vincent Koc
b9dfa3d2a2
chore: update plugin inspector source ref 2026-04-27 12:13:55 -07:00
github-actions[bot]
aac58d8358 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 19:05:10 +00:00
Vincent Koc
0365e66bb4
chore: update plugin inspector source ref 2026-04-27 12:02:11 -07:00
github-actions[bot]
332f7bc3df chore(readme): update crabpot dashboard [skip ci] 2026-04-27 18:34:20 +00:00
Vincent Koc
58b780eef6
chore: update plugin inspector source ref 2026-04-27 11:25:19 -07:00
github-actions[bot]
ac784ab84e chore(readme): update crabpot dashboard [skip ci] 2026-04-27 18:07:20 +00:00
Vincent Koc
3d316c0b3e
fix(ci): narrow fixture matrix for submodule additions 2026-04-27 11:03:49 -07:00
Vincent Koc
e5b69278d9
chore: refresh crabpot reports for dingtalk connector 2026-04-27 10:56:25 -07:00
Vincent Koc
ba1806258e
feat: add dingtalk connector fixture 2026-04-27 10:56:24 -07:00
github-actions[bot]
c1afaeff91 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 17:50:06 +00:00
Vincent Koc
b83e3b071d
chore: bump published plugin inspector smoke package 2026-04-27 10:46:53 -07:00
github-actions[bot]
7523705162 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 11:20:59 +00:00
Vincent Koc
3d3db8870c
chore: smoke published plugin inspector package
Use the published @openclaw/plugin-inspector package for the default crabpot smoke path, while keeping source and binary overrides for local development.
2026-04-27 04:17:56 -07:00
github-actions[bot]
8232bb9479 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 10:52:14 +00:00
Vincent Koc
f1e8bf8f6e
test: prune plugin inspector implementation checks
Removes crabpot tests that duplicated plugin-inspector parser, validation, capture API, and synthetic-probe unit coverage while keeping fixture/report orchestration and opt-in guard coverage.
2026-04-27 03:48:34 -07:00
github-actions[bot]
46ada25ebc chore(readme): update crabpot dashboard [skip ci] 2026-04-27 10:38:11 +00:00
Vincent Koc
ac20c8a679
chore: delegate compatibility reports to plugin inspector
Bumps crabpot to the merged plugin-inspector DX commit, loads the advanced inspector surface, delegates fixture/report assembly to plugin-inspector, and removes inspector-owned capture API assertions from crabpot tests.
2026-04-27 03:34:58 -07:00
github-actions[bot]
fbd2e4ecdd chore(readme): update crabpot dashboard [skip ci] 2026-04-27 08:12:17 +00:00
Vincent Koc
a0f54ea55b
chore: pin runtime capture inspector 2026-04-27 01:09:17 -07:00
github-actions[bot]
c9ad4ecbe9 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 07:58:27 +00:00
Vincent Koc
d3f35a7f89
chore: pin plugin inspector examples 2026-04-27 00:55:32 -07:00
github-actions[bot]
46438cf4e1 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 07:54:39 +00:00
Vincent Koc
a2371b7c21
chore: bump plugin inspector ref 2026-04-27 00:51:08 -07:00
github-actions[bot]
716f9d3389 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 07:46:21 +00:00
Vincent Koc
3accbc0e1f
refactor: delegate report assembly 2026-04-27 00:43:01 -07:00
github-actions[bot]
395f63a41e chore(readme): update crabpot dashboard [skip ci] 2026-04-27 07:20:29 +00:00
Vincent Koc
2439e1ef83
refactor: delegate fixture classification 2026-04-27 00:17:12 -07:00
github-actions[bot]
f96681756d chore(readme): update crabpot dashboard [skip ci] 2026-04-27 07:15:57 +00:00
Vincent Koc
e1b82ebc76
refactor: delegate target coverage checks 2026-04-27 00:12:52 -07:00
github-actions[bot]
d39422cbf7 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 07:11:23 +00:00
Vincent Koc
5ec1e3d8ee
refactor: delegate package contract checks 2026-04-27 00:08:33 -07:00
github-actions[bot]
6304f38dc5 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 07:07:11 +00:00
Vincent Koc
786f5ce1bf
refactor: delegate fixture summaries to plugin inspector 2026-04-27 00:04:16 -07:00
github-actions[bot]
06df5163da chore(readme): update crabpot dashboard [skip ci] 2026-04-27 07:02:05 +00:00
Vincent Koc
f55d1cd8b7
refactor: delegate report rendering to plugin inspector 2026-04-26 23:58:43 -07:00
github-actions[bot]
d9a0cf2222 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 06:25:10 +00:00
Vincent Koc
1a2be0a526
chore: bump plugin inspector pin 2026-04-26 23:21:19 -07:00
github-actions[bot]
f617060140 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 06:08:29 +00:00
Vincent Koc
7226fd6a29
chore: pin plugin inspector ref 2026-04-26 23:04:56 -07:00
github-actions[bot]
9c33b583eb chore(readme): update crabpot dashboard [skip ci] 2026-04-27 05:21:09 +00:00
Vincent Koc
549976d241
feat: delegate CI policy to plugin inspector 2026-04-26 22:18:21 -07:00
github-actions[bot]
637141985d chore(readme): update crabpot dashboard [skip ci] 2026-04-27 05:13:45 +00:00
Vincent Koc
d5cac1a4f0
feat: delegate ref diffs to plugin inspector 2026-04-26 22:09:56 -07:00
Vincent Koc
b0abd22135
feat: delegate runtime profiling to plugin inspector 2026-04-26 21:55:00 -07:00
github-actions[bot]
78d318c3bc chore(readme): update crabpot dashboard [skip ci] 2026-04-27 04:47:47 +00:00
Vincent Koc
dccca0fc5c
feat: delegate contract coverage to plugin inspector 2026-04-26 21:44:19 -07:00
github-actions[bot]
6240c54945 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 04:39:31 +00:00
Vincent Koc
f18ec7fea1
feat: delegate profile diffs to plugin inspector 2026-04-26 21:36:43 -07:00
github-actions[bot]
ddea95409f chore(readme): update crabpot dashboard [skip ci] 2026-04-27 04:34:07 +00:00
Vincent Koc
33210de854
feat: delegate import loop profiling to plugin inspector 2026-04-26 21:31:37 -07:00
github-actions[bot]
2994eb59a7 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 04:27:45 +00:00
Vincent Koc
cc43269c5d
feat: delegate execution results to plugin inspector 2026-04-26 21:23:57 -07:00
github-actions[bot]
40e68ae949 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 04:14:23 +00:00
Vincent Koc
f9361cdecc
fix: pin normalized workspace path handling 2026-04-26 21:11:23 -07:00
Vincent Koc
b61de3983e
fix: pin plugin inspector workspace lockfile detection 2026-04-26 21:05:22 -07:00
Vincent Koc
2d5c185714
feat: delegate OpenClaw target parsing to plugin inspector 2026-04-26 21:00:13 -07:00
Vincent Koc
0ab4d63c34
feat: delegate workspace plan to plugin inspector 2026-04-26 20:54:52 -07:00
github-actions[bot]
c4c837be8d chore(readme): update crabpot dashboard [skip ci] 2026-04-27 03:45:31 +00:00
Vincent Koc
aa8981f863
feat: delegate platform probes to plugin inspector 2026-04-26 20:42:48 -07:00
github-actions[bot]
3f7da22fca chore(readme): update crabpot dashboard [skip ci] 2026-04-27 03:37:14 +00:00
Vincent Koc
83a8d4c820
feat: delegate cold import readiness to plugin inspector 2026-04-26 20:34:20 -07:00
github-actions[bot]
03acb87387 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 03:27:18 +00:00
Vincent Koc
081de3335d
feat: delegate capture shim to plugin inspector 2026-04-26 20:24:29 -07:00
Vincent Koc
dd2c200707
feat: delegate contract capture to plugin inspector 2026-04-26 20:22:36 -07:00
github-actions[bot]
7488184f10 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 02:32:11 +00:00
Vincent Koc
d45606990b
feat: delegate cold import capture to plugin inspector 2026-04-26 19:29:13 -07:00
github-actions[bot]
29cfd075b0 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 02:29:00 +00:00
Vincent Koc
a513b0da53
feat: delegate synthetic probes to plugin inspector 2026-04-26 19:25:35 -07:00
github-actions[bot]
2cfa80f9c3 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 02:20:04 +00:00
Vincent Koc
4a17b11737
feat: delegate report artifacts to plugin inspector 2026-04-26 19:16:54 -07:00
github-actions[bot]
ee8ca38162 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 02:10:45 +00:00
Vincent Koc
979ea35fe6
feat: delegate contract probes to plugin inspector 2026-04-26 19:07:14 -07:00
github-actions[bot]
d14bee2609 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 01:58:23 +00:00
Vincent Koc
31cd715fcb
feat: delegate issue classification to plugin inspector 2026-04-26 18:55:30 -07:00
github-actions[bot]
74bee5b814 chore(readme): update crabpot dashboard [skip ci] 2026-04-27 01:48:13 +00:00
Vincent Koc
2be4c2da59
feat: delegate ci summary to plugin inspector 2026-04-26 18:45:23 -07:00
github-actions[bot]
baf7625965 chore(readme): update crabpot dashboard [skip ci] 2026-04-26 23:56:47 +00:00
Vincent Koc
582e0663ac
feat: delegate fixture inspection to plugin inspector
Delegate crabpot fixture static inspection to the pinned plugin-inspector package boundary and share the same resolver with the package smoke wrapper.
2026-04-26 16:54:04 -07:00
github-actions[bot]
010f80a02d chore(readme): update crabpot dashboard [skip ci] 2026-04-26 23:34:33 +00:00
Vincent Koc
f8a035d677
feat: add plugin inspector smoke (#3)
Landed smoke wiring for the external plugin-inspector package boundary.\n\nChecks: GitHub Check workflow green across ubuntu, macOS, Windows, and container lanes.
2026-04-26 16:32:08 -07:00
171 changed files with 132670 additions and 19114 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

@ -5,7 +5,7 @@ on:
# plugins/** must retest on Dependabot PRs and again after merge to main.
pull_request:
push:
branches: [main]
branches: [main, crab-beta, crab-development]
workflow_dispatch:
permissions:
@ -23,31 +23,35 @@ jobs:
- uses: actions/checkout@v6
with:
submodules: recursive
- uses: actions/checkout@v6
with:
repository: openclaw/openclaw
path: openclaw
- uses: actions/setup-node@v6
with:
node-version: 22
- run: node scripts/sync-fixtures.mjs --materialize
- run: npm test
- run: node scripts/sync-fixtures.mjs --check
- run: node scripts/run-contract-smoke.mjs --strict --openclaw ./openclaw
- run: node scripts/inspect-fixtures.mjs --check
- run: npm run plugin-inspector:smoke
- run: node scripts/generate-report.mjs --check --openclaw ./openclaw
- run: node scripts/capture-contracts.mjs --check --openclaw ./openclaw
- run: node scripts/synthetic-probes.mjs --check --openclaw ./openclaw
- run: node scripts/cold-import-readiness.mjs --check --openclaw ./openclaw
- run: node scripts/workspace-plan.mjs --check --openclaw ./openclaw
- run: node scripts/platform-probes.mjs --check --openclaw ./openclaw
- run: node scripts/import-loop-profile.mjs --check
- run: node scripts/profile-contract-runtime.mjs --check --openclaw ./openclaw
- run: node scripts/check-contract-coverage.mjs --openclaw ./openclaw
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
- uses: actions/checkout@v6
with:
repository: openclaw/openclaw
ref: ${{ steps.openclaw-track.outputs.ref }}
path: openclaw
- 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
@ -55,11 +59,12 @@ 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/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 openclaw/openclaw@main --github-step-summary
node scripts/write-ci-summary.mjs --mode check --openclaw-label "${{ steps.openclaw-track.outputs.label }}" --github-step-summary
- name: Upload CI reports
if: always()
uses: actions/upload-artifact@v7
@ -77,22 +82,23 @@ jobs:
- uses: actions/checkout@v6
with:
submodules: recursive
- name: Resolve OpenClaw track
id: openclaw-track
run: node scripts/resolve-openclaw-track.mjs --github-output
- uses: actions/checkout@v6
with:
repository: openclaw/openclaw
ref: ${{ steps.openclaw-track.outputs.ref }}
path: openclaw
- run: node --version
- run: node scripts/sync-fixtures.mjs --materialize
- run: npm test
- run: node scripts/sync-fixtures.mjs --check
- run: node scripts/inspect-fixtures.mjs --check
- run: npm run plugin-inspector:smoke
- run: node scripts/generate-report.mjs --check --openclaw ./openclaw
- run: node scripts/cold-import-readiness.mjs --check --openclaw ./openclaw
- run: node scripts/workspace-plan.mjs --check --openclaw ./openclaw
- run: node scripts/platform-probes.mjs --check --openclaw ./openclaw
- run: node scripts/import-loop-profile.mjs --check
- run: node scripts/profile-contract-runtime.mjs --check --openclaw ./openclaw
- 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
@ -107,13 +113,20 @@ jobs:
with:
fetch-depth: 1
submodules: recursive
- uses: actions/checkout@v6
with:
repository: openclaw/openclaw
path: openclaw
- 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
- uses: actions/checkout@v6
with:
repository: openclaw/openclaw
ref: ${{ steps.openclaw-track.outputs.ref }}
path: openclaw
- name: Resolve diff refs
id: refs
shell: bash
@ -157,13 +170,20 @@ jobs:
- uses: actions/checkout@v6
with:
submodules: recursive
- uses: actions/checkout@v6
with:
repository: openclaw/openclaw
path: openclaw
- 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
- uses: actions/checkout@v6
with:
repository: openclaw/openclaw
ref: ${{ steps.openclaw-track.outputs.ref }}
path: openclaw
- name: Validate workspace plan
run: node scripts/workspace-plan.mjs --check --openclaw ./openclaw
- name: Execute fixture lane
@ -176,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()
@ -184,7 +208,7 @@ jobs:
- name: Write isolated summary
if: always()
continue-on-error: true
run: node scripts/write-ci-summary.mjs --mode changed-isolated --openclaw-label openclaw/openclaw@main --github-step-summary
run: node scripts/write-ci-summary.mjs --mode changed-isolated --openclaw-label "${{ steps.openclaw-track.outputs.label }}" --github-step-summary
- name: Upload isolated execution artifacts
if: always()
uses: actions/upload-artifact@v7
@ -192,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:
@ -210,16 +236,39 @@ jobs:
- uses: actions/checkout@v6
with:
submodules: recursive
- uses: actions/checkout@v6
with:
repository: openclaw/openclaw
path: openclaw
- uses: actions/setup-node@v6
with:
node-version: 22
- run: node scripts/sync-fixtures.mjs --materialize
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
- uses: actions/checkout@v6
with:
repository: openclaw/openclaw
ref: ${{ steps.openclaw-track.outputs.ref }}
path: openclaw
- 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")"
@ -229,16 +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 openclaw/openclaw@main
node scripts/update-readme-summary.mjs
if ! git diff --quiet README.md; then
node scripts/write-ci-summary.mjs --mode check --openclaw-label "${{ steps.openclaw-track.outputs.label }}"
node scripts/update-track-metadata.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 add README.md
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
@ -25,17 +29,44 @@ jobs:
submodules: recursive
fetch-depth: 0
- 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
run: node scripts/resolve-openclaw-track.mjs --branch "${{ github.event.pull_request.base.ref }}" --github-output
- name: Checkout OpenClaw
uses: actions/checkout@v6
with:
repository: openclaw/openclaw
ref: ${{ steps.openclaw-track.outputs.ref }}
path: openclaw
- uses: actions/setup-node@v6
with:
node-version: 22
- name: Update Dependabot branch with base
shell: bash
run: |
set -euo pipefail
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 }}
@ -48,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
@ -71,25 +108,60 @@ 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 openclaw/openclaw@main
node scripts/update-readme-summary.mjs
node scripts/write-ci-summary.mjs --mode dependabot --openclaw-label "${{ steps.openclaw-track.outputs.label }}"
node scripts/update-track-metadata.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
fi
- name: Enable Dependabot auto-merge
- name: Merge Dependabot PR
env:
GH_TOKEN: ${{ github.token }}
PR_NUMBER: ${{ github.event.pull_request.number }}
run: gh pr merge "${PR_NUMBER}" --auto --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

@ -58,7 +58,7 @@ on:
description: "Fail on warning-level contract policy findings"
type: boolean
required: true
default: false
default: true
strict_perf:
description: "Fail on runtime profile threshold regressions when enough samples exist"
type: boolean
@ -77,6 +77,7 @@ jobs:
PROFILE_RUNS: ${{ inputs.profile_runs }}
STRICT_CONTRACT: ${{ inputs.strict_contract }}
STRICT_PERF: ${{ inputs.strict_perf }}
SUITE_POLICY: ${{ inputs.strict_contract && 'release' || 'dashboard' }}
steps:
- name: Checkout Crabpot
uses: actions/checkout@v6
@ -100,22 +101,14 @@ jobs:
with:
node-version: 22
- run: node scripts/sync-fixtures.mjs --materialize
- run: npm test
- run: node scripts/sync-fixtures.mjs --check
- run: node scripts/run-contract-smoke.mjs --strict --openclaw ./openclaw
- run: node scripts/inspect-fixtures.mjs --check
- run: node scripts/generate-report.mjs --check --openclaw ./openclaw
- run: node scripts/capture-contracts.mjs --check --openclaw ./openclaw
- run: node scripts/synthetic-probes.mjs --check --openclaw ./openclaw
- run: node scripts/cold-import-readiness.mjs --check --openclaw ./openclaw
- run: node scripts/workspace-plan.mjs --check --openclaw ./openclaw
- run: node scripts/platform-probes.mjs --check --openclaw ./openclaw
- run: node scripts/import-loop-profile.mjs --check
- run: node scripts/profile-contract-runtime.mjs --openclaw ./openclaw --runs "${PROFILE_RUNS}"
- run: node scripts/run-static-suite.mjs --openclaw ./openclaw --policy "${SUITE_POLICY}" --profile-runs "${PROFILE_RUNS}" --plugin-inspector-smoke
- 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()
@ -127,7 +120,8 @@ 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/check-generated-surface-fixture.mjs --openclaw ./openclaw
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' || '' }}
@ -181,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: |
@ -311,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()
@ -329,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.*

165
.github/workflows/track-dashboard.yml vendored Normal file
View File

@ -0,0 +1,165 @@
name: Track Dashboard
on:
schedule:
# Development follows OpenClaw main, so refresh it often enough to catch
# 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:
description: "Crabpot track to refresh"
required: true
default: development
type: choice
options:
- development
- beta
- latest
- all
permissions:
contents: write
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
shell: bash
run: |
run=false
if [ "${{ github.event_name }}" = "schedule" ] && [ "${{ matrix.track }}" = "development" ]; then
run=true
fi
if [ "${{ github.event_name }}" = "workflow_dispatch" ] && { [ "${{ inputs.track }}" = "all" ] || [ "${{ inputs.track }}" = "${{ matrix.track }}" ]; }; then
run=true
fi
echo "run=${run}" >> "$GITHUB_OUTPUT"
- uses: actions/checkout@v6
if: ${{ steps.select.outputs.run == 'true' }}
with:
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' }}
id: openclaw-track
run: node scripts/resolve-openclaw-track.mjs --track "${{ matrix.track }}" --github-output
- uses: actions/checkout@v6
if: ${{ steps.select.outputs.run == 'true' }}
with:
repository: openclaw/openclaw
ref: ${{ steps.openclaw-track.outputs.ref }}
path: openclaw
- if: ${{ steps.select.outputs.run == 'true' }}
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")"
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 --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 --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]"
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
if: ${{ always() && steps.select.outputs.run == 'true' }}
uses: actions/upload-artifact@v7
with:
name: crabpot-track-${{ matrix.track }}-reports
path: reports/
if-no-files-found: warn

24
.gitmodules vendored
View File

@ -90,3 +90,27 @@
path = plugins/mocrane-wecom
url = https://github.com/TencentCloud-Lighthouse/openclaw-wecom.git
shallow = true
[submodule "plugins/dingtalk-connector"]
path = plugins/dingtalk-connector
url = https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector.git
shallow = true
[submodule "plugins/kitchen-sink"]
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

View File

@ -8,5 +8,9 @@
opt-in and secrets.
- Prefer seam labels over product categories: `dynamic-tool`, `llm-observer`,
`gateway-service`, `provider-capability`, and similar.
- Treat `openclaw` package dependencies as host-linked inputs owned by the
inspector/workspace plan, not as upstream plugin install findings.
- When plugin-inspector behavior or package versions change, update both the
source ref and generated report/test expectations. After npm publish, update
the package pin and run both source-mode and package-mode smoke checks.
- When adding a fixture, explain the unique seam it covers in `why`.

122
README.md
View File

@ -1,69 +1,77 @@
# crabpot
# 🦀 crabpot
Compatibility trap for OpenClaw plugin contracts.
<img width="1376" height="768" alt="crabpot" src="https://github.com/user-attachments/assets/79eb0be1-0736-4a78-a62d-cb66ab080c60" />
<p></p>
`crabpot` keeps a curated set of real community plugins pinned under `plugins/`
and runs seam-focused compatibility checks against OpenClaw plugin APIs. The goal
is to catch contract drift before external plugin authors do.
**Goto: [Latest Published](https://github.com/openclaw/crabpot/tree/main) | [Latest Beta](https://github.com/openclaw/crabpot/tree/crab-beta) | [Main Development](https://github.com/openclaw/crabpot/tree/crab-development)**
**Compatibility trap for OpenClaw plugin contracts.** `crabpot` keeps a curated set of real community plugins pinned under `plugins/` and runs seam-focused compatibility checks against OpenClaw plugin APIs. The goal is to catch contract drift before external plugin authors do. Built on top of `plugin-inspector`, the testing harness for OpenClaw.
## Reporting Data
`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.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
Last dashboard update: Apr 26, 2026, 08:52 UTC
| 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 |
State: PASS
### OpenClaw Lifecycle Probe
Mode: check
OpenClaw: openclaw/openclaw@main
Run: https://github.com/openclaw/crabpot/actions/runs/24952631216
### Result Grid
| Metric | Result |
| ---------------------- | ---------------------------------------------------- |
| Fixtures | 27 |
| Hard breakages | 0 |
| Warnings | 51 |
| Suggestions | 92 |
| Issues | 143 |
| P0 issues | [🔴 P0 2](reports/crabpot-issues.md#p0-live-issues) |
| P1 issues | [🟠 P1 26](reports/crabpot-issues.md#triage-summary) |
| Live issues | 2 total / 2 P0 |
| Compat gaps | 1 |
| Deprecation warnings | 21 |
| Inspector gaps | 97 |
| Upstream metadata | 22 |
| Contract probes | 141 |
| Policy failures | 0 |
| Policy warnings | 3 |
| Ref diff failures | 0 |
| Profile failures | 0 |
| Execution probes | 6 pass / 0 fail / 2 blocked |
| Synthetic probes | 141 ready / 0 blocked / 141 total |
| Cold import | 0 ready / 30 blocked / 30 entrypoints |
| Workspace plan | 30 entrypoints / 20 installs / 7 builds |
| Platform risks | 153 Windows / 47 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 |
| 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 | 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 | 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 | 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 | inspector-gap | codex-app-server | registration-capture-gap | inspector-follow-up | [codex-app-server: runtime registrations need capture before contract judgment](reports/crabpot-issues.md#inspector-proof-gaps) |
| 🟠 P1 | inspector-gap | connectclaw | registration-capture-gap | inspector-follow-up | [connectclaw: runtime registrations need capture before contract judgment](reports/crabpot-issues.md#inspector-proof-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 | inspector-gap | honcho | registration-capture-gap | inspector-follow-up | [honcho: runtime registrations need capture before contract judgment](reports/crabpot-issues.md#inspector-proof-gaps) |
| 🟠 P1 | inspector-gap | hyperspell | conversation-access-hook | inspector-follow-up | [hyperspell: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-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

@ -12,9 +12,37 @@
{
"id": "service-lifecycle-harness",
"seam": "registerService",
"reasonIncludes": "lifecycle",
"reasonIncludes": "includeLifecycle=true",
"decision": "allowed-blocked",
"until": "service lifecycle harness lands"
},
{
"id": "provider-capability-harness",
"seam": "registerSpeechProvider",
"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": [
@ -34,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",
@ -204,6 +223,855 @@
},
"why": "NPM-installed dynamic tool fixture for Composio/MCP integration, prompt context injection, CLI setup, external API auth, and large remote tool catalogs."
},
{
"id": "kitchen-sink",
"name": "OpenClaw Kitchen Sink",
"repo": "https://github.com/openclaw/kitchen-sink.git",
"path": "plugins/kitchen-sink",
"priority": "high",
"seams": [
"plugin-api-surface",
"hook",
"registration-surface",
"manifest-contracts",
"provider-capability",
"credential-free"
],
"expect": {
"hooks": [
"after_compaction",
"after_tool_call",
"agent_end",
"before_agent_finalize",
"before_agent_reply",
"before_agent_start",
"before_compaction",
"before_dispatch",
"before_install",
"before_message_write",
"before_model_resolve",
"before_prompt_build",
"before_reset",
"before_tool_call",
"gateway_start",
"gateway_stop",
"inbound_claim",
"llm_input",
"llm_output",
"message_received",
"message_sending",
"message_sent",
"model_call_ended",
"model_call_started",
"reply_dispatch",
"session_end",
"session_start",
"subagent_delivery_target",
"subagent_ended",
"subagent_spawned",
"subagent_spawning",
"tool_result_persist"
],
"registrations": [
"registerAgentHarness",
"registerAgentToolResultMiddleware",
"registerAutoEnableProbe",
"registerChannel",
"registerCli",
"registerCliBackend",
"registerCodexAppServerExtensionFactory",
"registerCommand",
"registerCompactionProvider",
"registerConfigMigration",
"registerContextEngine",
"registerDetachedTaskRuntime",
"registerGatewayDiscoveryService",
"registerGatewayMethod",
"registerHook",
"registerHttpRoute",
"registerImageGenerationProvider",
"registerInteractiveHandler",
"registerMediaUnderstandingProvider",
"registerMemoryCapability",
"registerMemoryCorpusSupplement",
"registerMemoryEmbeddingProvider",
"registerMemoryFlushPlan",
"registerMemoryPromptSection",
"registerMemoryPromptSupplement",
"registerMemoryRuntime",
"registerMigrationProvider",
"registerMusicGenerationProvider",
"registerNodeHostCommand",
"registerProvider",
"registerRealtimeTranscriptionProvider",
"registerRealtimeVoiceProvider",
"registerReload",
"registerSecurityAuditCollector",
"registerService",
"registerSpeechProvider",
"registerTextTransforms",
"registerTool",
"registerVideoGenerationProvider",
"registerWebFetchProvider",
"registerWebSearchProvider"
],
"manifestContracts": [
"agentToolResultMiddleware",
"documentExtractors",
"embeddedExtensionFactories",
"externalAuthProviders",
"imageGenerationProviders",
"mediaUnderstandingProviders",
"memoryEmbeddingProviders",
"migrationProviders",
"musicGenerationProviders",
"realtimeTranscriptionProviders",
"realtimeVoiceProviders",
"speechProviders",
"tools",
"videoGenerationProviders",
"webContentExtractors",
"webFetchProviders",
"webSearchProviders"
]
},
"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",
@ -232,6 +1100,18 @@
},
"why": "DingTalk channel fixture from the latest npm-backed repo, covering enterprise IM auth, channel setup, media handling, and webhook-style message ingress."
},
{
"id": "dingtalk-connector",
"name": "DingTalk Connector",
"repo": "https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector.git",
"path": "plugins/dingtalk-connector",
"priority": "high",
"seams": ["channel", "streaming", "account-auth", "interactive-card", "gateway-method"],
"expect": {
"registrations": ["registerChannel", "registerGatewayMethod"]
},
"why": "Official DingTalk connector fixture covering Stream-mode channel ingress, AI Card replies, multi-account access policy, gateway RPC methods, and packaged channel skills."
},
{
"id": "mocrane-wecom",
"name": "Mocrane WeCom",
@ -256,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."
},
@ -269,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",
@ -290,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

@ -93,13 +93,17 @@ npm run plugin-inspector:smoke
```
The smoke writes ignored artifacts under `.crabpot/plugin-inspector-smoke/`.
For local development it uses a sibling `../plugin-inspector` checkout when one
exists. In CI or standalone checkouts it falls back to the pinned GitHub package
source checkout. This intentionally avoids npm publishing until the package
boundary is reviewed.
By default the smoke runs the published `@openclaw/plugin-inspector@0.1.3`
package through `npm exec`. For local plugin-inspector development, set
`CRABPOT_PLUGIN_INSPECTOR_CLI=source` to run the sibling or pinned source
checkout instead. Set `CRABPOT_PLUGIN_INSPECTOR_BIN=/path/to/plugin-inspector`
to test an arbitrary CLI binary.
Migration path: replace the local static scanner with the packaged inspector
while keeping `crabpot.config.json` as the fixture manifest.
Current migration state: `scripts/inspect-fixtures.mjs` delegates static source,
manifest, and package inspection to `plugin-inspector` while preserving
crabpot's existing command output and exported helper names. Crabpot keeps its
orchestration, report paths, fixture policy, and opt-in execution guards; the
reusable compatibility logic now lives in the published inspector package.
## Compatibility issue workflow

View File

@ -119,6 +119,11 @@ npm run profile -- --check
node scripts/check-contract-coverage.mjs --openclaw ../openclaw
```
`npm run plugin-inspector:smoke` uses the published
`@openclaw/plugin-inspector@0.1.3` package by default. Use
`CRABPOT_PLUGIN_INSPECTOR_CLI=source npm run plugin-inspector:smoke` only when
validating local inspector source changes.
Issue severity means:
- `P0`: current hard breakage.

View File

@ -1,6 +1,6 @@
{
"name": "crabpot",
"version": "0.1.0",
"version": "0.1.4",
"private": true,
"description": "Compatibility testbed for OpenClaw community plugins and plugin seams.",
"type": "module",
@ -8,7 +8,9 @@
"node": ">=22"
},
"scripts": {
"check": "node scripts/sync-fixtures.mjs --materialize && npm test && node scripts/sync-fixtures.mjs --check && node scripts/run-contract-smoke.mjs && node scripts/inspect-fixtures.mjs --check && node scripts/generate-report.mjs --check && node scripts/capture-contracts.mjs --check && node scripts/synthetic-probes.mjs --check && node scripts/cold-import-readiness.mjs --check && node scripts/workspace-plan.mjs --check && node scripts/platform-probes.mjs --check && node scripts/import-loop-profile.mjs --check && node scripts/profile-contract-runtime.mjs --check && node scripts/check-contract-coverage.mjs",
"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",
"contract:capture": "node scripts/capture-contracts.mjs",
@ -23,9 +25,12 @@
"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",
"track:metadata": "node scripts/update-track-metadata.mjs",
"track:metadata:check": "node scripts/update-track-metadata.mjs --check",
"platform:probes": "node scripts/platform-probes.mjs",
"readme:summary": "node scripts/update-readme-summary.mjs",
"ref:diff": "node scripts/compare-openclaw-refs.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,17 +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. |
@ -98,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 b329bb3ed18b651d369bf35321ec58bd47dc33b4
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"
}
}

@ -0,0 +1 @@
Subproject commit 3441bcffc4dee15936ede406ce001ffcf9e2efc3

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
plugins/kitchen-sink Submodule

@ -0,0 +1 @@
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 8d634cdf4b7544c9093c2e701fbbe5075d1e3de6
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

@ -1 +1 @@
Subproject commit b7849ac055c8fa699d01b48e83cf24028907307d
Subproject commit 503a1d5403bc3a57763b9ef17c60a9d5e31b53d9

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": 2,
"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,63 +241,73 @@
{
"id": "compatibility-report.deprecation-warnings",
"action": "pass",
"message": "21 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": "97 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",
"honcho:conversation-access-hook",
"honcho:registration-capture-gap",
"hyperspell:conversation-access-hook",
"hyperspell:registration-capture-gap",
"lightclawbot:registration-capture-gap",
"kitchen-sink:before-tool-call-probe",
"kitchen-sink:conversation-access-hook",
"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",
@ -129,110 +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-dependency-install-required",
"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-dependency-install-required",
"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",
"web-search-plus: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": "26 P1 issues tracked",
"message": "15 P1 issues tracked",
"evidence": [
"a2a-gateway:registration-capture-gap",
"clawmetry:registration-capture-gap",
"codex-app-server:missing-compat-record",
"codex-app-server:registration-capture-gap",
"connectclaw:registration-capture-gap",
"clawmetry:sdk-export-missing",
"honcho:conversation-access-hook",
"honcho:registration-capture-gap",
"hyperspell:conversation-access-hook",
"hyperspell:registration-capture-gap",
"lightclawbot:registration-capture-gap",
"honcho:sdk-export-missing",
"kitchen-sink:before-tool-call-probe",
"kitchen-sink:conversation-access-hook",
"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"
"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,95 +1,54 @@
{
"generatedAt": "deterministic",
"mode": "local",
"openclawLabel": "",
"title": "Crabpot CI Summary",
"mode": "dependabot",
"openclawLabel": "openclaw@latest (2026.5.6, c97b9f79ec43)",
"status": "pass",
"summary": {
"breakages": 0,
"warnings": 51,
"suggestions": 92,
"issues": 143,
"p0Issues": 2,
"p1Issues": 26,
"liveIssues": 2,
"liveP0Issues": 2,
"compatGaps": 1,
"deprecationWarnings": 21,
"inspectorGaps": 97,
"upstreamIssues": 22,
"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": 1,
"executionPass": 6,
"profileWarnings": 2,
"executionPass": 12,
"executionFail": 0,
"executionBlocked": 2,
"platformWindowsRisks": 153,
"platformContainerRisks": 47,
"loaderJitiCandidates": 18,
"importLoopP50Ms": 950,
"importLoopP95Ms": 1023,
"importLoopMaxRssMb": 45.5,
"importLoopMaxCpuMs": 208
"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": "codex-app-server",
"code": "sdk-export-missing",
"title": "codex-app-server: 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": "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": "inspector-gap",
"fixture": "clawmetry",
"code": "registration-capture-gap",
"title": "clawmetry: runtime registrations need capture before contract judgment",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "compat-gap",
"fixture": "codex-app-server",
"code": "missing-compat-record",
"title": "codex-app-server: compat-dependent behavior lacks registry coverage",
"fixture": "clawmetry",
"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": "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",
@ -100,34 +59,26 @@
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"issueClass": "compat-gap",
"fixture": "honcho",
"code": "registration-capture-gap",
"title": "honcho: runtime registrations need capture before contract judgment",
"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": "kitchen-sink",
"code": "before-tool-call-probe",
"title": "kitchen-sink: before_tool_call needs terminal/block/approval probes",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "hyperspell",
"fixture": "kitchen-sink",
"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",
"fixture": "lightclawbot",
"code": "registration-capture-gap",
"title": "lightclawbot: runtime registrations need capture before contract judgment",
"title": "kitchen-sink: conversation-access hooks need privacy-boundary probes",
"decision": "inspector-follow-up"
},
{
@ -141,17 +92,9 @@
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "lossless-claw",
"code": "registration-capture-gap",
"title": "lossless-claw: runtime registrations need capture before contract judgment",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "mcp-adapter",
"code": "registration-capture-gap",
"title": "mcp-adapter: runtime registrations need capture before contract judgment",
"fixture": "memory-lancedb",
"code": "conversation-access-hook",
"title": "memory-lancedb: conversation-access hooks need privacy-boundary probes",
"decision": "inspector-follow-up"
},
{
@ -173,59 +116,258 @@
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "memos-cloud",
"code": "registration-capture-gap",
"title": "memos-cloud: runtime registrations need capture before contract judgment",
"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": "mocrane-wecom",
"code": "registration-capture-gap",
"title": "mocrane-wecom: runtime registrations need capture before contract judgment",
"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-weixin",
"code": "registration-capture-gap",
"title": "openclaw-weixin: runtime registrations need capture before contract judgment",
"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"
]
}
],
@ -234,11 +376,20 @@
"id": "profile.wall-p95",
"action": "warn",
"metric": "p95WallMs",
"message": "p95WallMs regressed 262.5% over baseline",
"message": "p95WallMs regressed 87.8% over baseline",
"baseline": 1273,
"current": 4615,
"delta": 3342,
"percent": 262.5
"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": {

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 | 51 |
| Suggestions | 92 |
| Issues | 143 |
| P0 issues | 2 |
| P1 issues | 26 |
| Live issues | 2 |
| Live P0 issues | 2 |
| Compat gaps | 1 |
| Deprecation warnings | 21 |
| Inspector gaps | 97 |
| Upstream metadata | 22 |
| Ref diff failures | 0 |
| Ref diff warnings | 0 |
| Policy failures | 0 |
| Policy warnings | 3 |
| Profile failures | 0 |
| Profile warnings | 1 |
| Execution pass | 6 |
| Execution fail | 0 |
| Execution blocked | 2 |
| Windows portability risks | 153 |
| Container portability risks | 47 |
| Jiti loader candidates | 18 |
| Import loop | p50 950 ms / p95 1023 ms / max RSS 45.5 MB / CPU 208 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 | codex-app-server | sdk-export-missing | core-compat-adapter | codex-app-server: 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 |
| P1 | inspector-gap | a2a-gateway | registration-capture-gap | inspector-follow-up | a2a-gateway: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | clawmetry | registration-capture-gap | inspector-follow-up | clawmetry: runtime registrations need capture before contract judgment |
| P1 | compat-gap | codex-app-server | missing-compat-record | core-compat-adapter | codex-app-server: compat-dependent behavior lacks registry coverage |
| 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 | honcho | conversation-access-hook | inspector-follow-up | honcho: conversation-access hooks need privacy-boundary probes |
| 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 | 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 |
| P1 | inspector-gap | lossless-claw | registration-capture-gap | inspector-follow-up | lossless-claw: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | mcp-adapter | registration-capture-gap | inspector-follow-up | mcp-adapter: runtime registrations need capture before contract judgment |
| 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 | memos-cloud | registration-capture-gap | inspector-follow-up | memos-cloud: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | mocrane-wecom | registration-capture-gap | inspector-follow-up | mocrane-wecom: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | openclaw-weixin | registration-capture-gap | inspector-follow-up | openclaw-weixin: runtime registrations need capture before contract judgment |
| 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,17 +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
| Action | ID | Metric | Baseline | Current | Message |
| ------ | ---------------- | --------- | -------- | ------- | ---------------------------------------- |
| warn | profile.wall-p95 | p95WallMs | 1273 | 4615 | p95WallMs regressed 262.5% over baseline |
| 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,46 +6,119 @@ Generated: deterministic
| Metric | Value |
| --------------------------- | ----- |
| Fixtures | 27 |
| Entrypoints | 30 |
| Ready | 0 |
| Blocked | 30 |
| TypeScript loader required | 17 |
| Build required | 7 |
| Dependency install required | 20 |
| SDK alias required | 1 |
| 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, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace 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 | build-required | plugins/honcho/dist/index.js | build-required | plugin build or source alias resolution runs before cold import |
| 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 |
| 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 |
| 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 | dependency-install-required | plugins/yuanbao/.crabpot-package/dist/index.js | dependency-install-required | 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 |
| 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 | ts-loader-required | plugins/clawmetry/clawhub-plugin/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 |
| clawmetry | runtimeExtension | build-required | plugins/clawmetry/clawhub-plugin/dist/index.js | build-required | plugin build or source alias resolution runs before cold import |
| codex-app-server | extension | sdk-alias-required | plugins/codex-app-server/index.ts | ts-loader-required, dependency-install-required, sdk-alias-required, sdk-alias-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; target OpenClaw exports the imported SDK alias or provides a migration shim; target OpenClaw exports the imported SDK alias or provides a migration shim |
| web-search-plus | extension | ts-loader-required | plugins/web-search-plus/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 |
| 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, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace 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 |

File diff suppressed because it is too large Load Diff

View File

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

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": 950,
"p95WallMs": 1023,
"maxPeakRssMb": 45.5,
"maxCpuMsEstimate": 208,
"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": 950,
"peakRssMb": 44.2,
"peakCpuPercent": 21.9,
"cpuMsEstimate": 208,
"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": 1023,
"peakRssMb": 11.7,
"peakCpuPercent": 1.6,
"cpuMsEstimate": 16,
"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": 740,
"peakRssMb": 45.5,
"peakCpuPercent": 24.8,
"cpuMsEstimate": 184,
"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 | 950 |
| p95WallMs | 1023 |
| maxPeakRssMb | 45.5 |
| maxCpuMsEstimate | 208 |
| 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 | 950 ms | 44.2 MB | 208 ms | 0 |
| 1 | captured | 2 | 1023 ms | 11.7 MB | 16 ms | 0 |
| 2 | captured | 2 | 740 ms | 45.5 MB | 184 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

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