feat(fixtures): add NemoClaw
Add NVIDIA/NemoClaw as a first-class Crabpot fixture and refresh the generated fixture reports.
This commit is contained in:
parent
19cc3355dc
commit
aa19cc68f0
4
.gitmodules
vendored
4
.gitmodules
vendored
@ -110,3 +110,7 @@
|
||||
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
|
||||
|
||||
32
README.md
32
README.md
@ -24,27 +24,27 @@
|
||||
|
||||
| Metric | Result |
|
||||
| ---------------------- | ------------------------------------------------------------------------------------------------------------------- |
|
||||
| Fixtures | 32 |
|
||||
| Fixtures | 33 |
|
||||
| Hard breakages | 0 |
|
||||
| Warnings | 68 |
|
||||
| Suggestions | 154 |
|
||||
| Issues | 222 |
|
||||
| P0 issues | [🔴 P0 5](reports/crabpot-issues.md#p0-live-issues) |
|
||||
| P1 issues | [🟠 P1 83](reports/crabpot-issues.md#triage-summary) |
|
||||
| Live issues | 5 total / 5 P0 |
|
||||
| Compat gaps | 49 |
|
||||
| Deprecation warnings | 27 |
|
||||
| Inspector gaps | 113 |
|
||||
| Upstream metadata | 28 |
|
||||
| Contract probes | 170 |
|
||||
| Live issues | 4 total / 4 P0 |
|
||||
| Compat gaps | 3 |
|
||||
| Deprecation warnings | 28 |
|
||||
| Inspector gaps | 117 |
|
||||
| Upstream metadata | 29 |
|
||||
| Contract probes | 175 |
|
||||
| Policy failures | 0 |
|
||||
| Policy warnings | 20 |
|
||||
| Ref diff failures | 0 |
|
||||
| Profile failures | 0 |
|
||||
| Execution probes | 12 pass / 0 fail / 18 blocked |
|
||||
| Synthetic probes | 288 ready / 0 blocked / 288 total |
|
||||
| Cold import | 3 ready / 36 blocked / 39 entrypoints |
|
||||
| Workspace plan | 39 entrypoints / 19 installs / 10 builds |
|
||||
| Synthetic probes | 292 ready / 0 blocked / 292 total |
|
||||
| Cold import | 3 ready / 37 blocked / 40 entrypoints |
|
||||
| Workspace plan | 40 entrypoints / 19 installs / 11 builds |
|
||||
| Platform risks | 14 Windows / 14 container |
|
||||
| Jiti loader candidates | 21 |
|
||||
| Import loop | p50 1534ms / p95 1576ms / plugin delta RSS 1.5MB / plugin delta CPU 61ms / OpenClaw import 100.7ms / activate 0.3ms |
|
||||
@ -54,23 +54,23 @@
|
||||
|
||||
| Phase | p50 | p95 |
|
||||
| -------------------------- | ------- | ------- |
|
||||
| Import (`full`) | 100.7ms | 101.5ms |
|
||||
| Activate (`full:register`) | 0.3ms | 0.3ms |
|
||||
| Import (`full`) | 315.9ms | 316.1ms |
|
||||
| Activate (`full:register`) | 0.1ms | 0.2ms |
|
||||
|
||||
### Top Discovered Issues
|
||||
|
||||
| Severity | Class | Fixture | Code | Decision | Title |
|
||||
| -------- | ------------- | ---------------- | ------------------------ | ------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 🔴 P0 | live-issue | clawmetry | sdk-export-missing | core-compat-adapter | [clawmetry: plugin SDK import aliases are missing from target package exports](reports/crabpot-issues.md#p0-live-issues) |
|
||||
| 🔴 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 | honcho | sdk-export-missing | core-compat-adapter | [honcho: 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) |
|
||||
| 🔴 P0 | live-issue | yuanbao | sdk-export-missing | core-compat-adapter | [yuanbao: plugin SDK import aliases are missing from target package exports](reports/crabpot-issues.md#p0-live-issues) |
|
||||
| 🟠 P1 | compat-gap | a2a-gateway | missing-compat-record | core-compat-adapter | [a2a-gateway: compat-dependent behavior lacks registry coverage](reports/crabpot-issues.md#compat-gaps) |
|
||||
| 🟠 P1 | inspector-gap | a2a-gateway | registration-capture-gap | inspector-follow-up | [a2a-gateway: runtime registrations need capture before contract judgment](reports/crabpot-issues.md#inspector-proof-gaps) |
|
||||
| 🟠 P1 | compat-gap | agentchat | missing-compat-record | core-compat-adapter | [agentchat: compat-dependent behavior lacks registry coverage](reports/crabpot-issues.md#compat-gaps) |
|
||||
| 🟠 P1 | compat-gap | clawmetry | missing-compat-record | core-compat-adapter | [clawmetry: compat-dependent behavior lacks registry coverage](reports/crabpot-issues.md#compat-gaps) |
|
||||
| 🟠 P1 | compat-gap | clawmetry | missing-compat-record | core-compat-adapter | [clawmetry: compat-dependent behavior lacks registry coverage](reports/crabpot-issues.md#compat-gaps) |
|
||||
| 🟠 P1 | inspector-gap | clawmetry | registration-capture-gap | inspector-follow-up | [clawmetry: runtime registrations need capture before contract judgment](reports/crabpot-issues.md#inspector-proof-gaps) |
|
||||
| 🟠 P1 | inspector-gap | clawrouter | registration-capture-gap | inspector-follow-up | [clawrouter: runtime registrations need capture before contract judgment](reports/crabpot-issues.md#inspector-proof-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) |
|
||||
<!-- crabpot-summary:end -->
|
||||
## What this tests
|
||||
|
||||
|
||||
@ -338,6 +338,27 @@
|
||||
},
|
||||
"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": "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",
|
||||
|
||||
@ -59,6 +59,7 @@ directory: "/plugins/<id>"
|
||||
| `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. |
|
||||
| `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. |
|
||||
|
||||
1
plugins/nemoclaw
Submodule
1
plugins/nemoclaw
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit f9d21afa193c2b67cb55e79eca03db40f0fbe836
|
||||
@ -4,17 +4,17 @@
|
||||
"status": "ok",
|
||||
"configuredPath": "./openclaw",
|
||||
"capturedRegistrarCount": 26,
|
||||
"sdkExportCount": 291
|
||||
"sdkExportCount": 294
|
||||
},
|
||||
"summary": {
|
||||
"fixtureCount": 32,
|
||||
"registrationCount": 202,
|
||||
"hookCount": 86,
|
||||
"fixtureCount": 33,
|
||||
"registrationCount": 204,
|
||||
"hookCount": 88,
|
||||
"sdkImportCount": 549,
|
||||
"packageEntrypointCount": 39,
|
||||
"issueProbeCount": 170,
|
||||
"inspectorShimRequiredCount": 110,
|
||||
"compatAliasRequiredCount": 11
|
||||
"packageEntrypointCount": 40,
|
||||
"issueProbeCount": 175,
|
||||
"inspectorShimRequiredCount": 111,
|
||||
"compatAliasRequiredCount": 8
|
||||
},
|
||||
"fixtures": [
|
||||
{
|
||||
@ -7884,6 +7884,105 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "nemoclaw",
|
||||
"priority": "high",
|
||||
"registrations": [
|
||||
{
|
||||
"id": "registration.registerCommand:nemoclaw:plugins-nemoclaw-nemoclaw-src-index-ts-336",
|
||||
"fixture": "nemoclaw",
|
||||
"registrar": "registerCommand",
|
||||
"ref": "plugins/nemoclaw/nemoclaw/src/index.ts:336",
|
||||
"support": "inspector-shim-required",
|
||||
"assertions": [
|
||||
"command id is stable",
|
||||
"interactive command payload is captured"
|
||||
],
|
||||
"syntheticArguments": [
|
||||
{
|
||||
"name": "fixture-command",
|
||||
"handler": "function"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "registration.registerProvider:nemoclaw:plugins-nemoclaw-nemoclaw-src-index-ts-372",
|
||||
"fixture": "nemoclaw",
|
||||
"registrar": "registerProvider",
|
||||
"ref": "plugins/nemoclaw/nemoclaw/src/index.ts:372",
|
||||
"support": "target-captured",
|
||||
"assertions": [
|
||||
"registration arguments are captured"
|
||||
],
|
||||
"syntheticArguments": [
|
||||
{}
|
||||
]
|
||||
}
|
||||
],
|
||||
"hooks": [
|
||||
{
|
||||
"id": "hook.before_agent_start:nemoclaw:plugins-nemoclaw-nemoclaw-src-runtime-context-ts-474",
|
||||
"fixture": "nemoclaw",
|
||||
"hook": "before_agent_start",
|
||||
"ref": "plugins/nemoclaw/nemoclaw/src/runtime-context.ts:474",
|
||||
"support": "synthetic-event-required",
|
||||
"assertions": [
|
||||
"legacy startup hook payload is accepted",
|
||||
"migration metadata can map to prompt/model hooks"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"agentId": "agent-fixture",
|
||||
"runId": "run-fixture",
|
||||
"config": {
|
||||
"source": "plugin-inspector"
|
||||
}
|
||||
},
|
||||
"syntheticContext": {
|
||||
"runId": "run-fixture",
|
||||
"agentId": "agent-fixture",
|
||||
"sessionId": "session-fixture"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "hook.before_tool_call:nemoclaw:plugins-nemoclaw-nemoclaw-src-index-ts-384",
|
||||
"fixture": "nemoclaw",
|
||||
"hook": "before_tool_call",
|
||||
"ref": "plugins/nemoclaw/nemoclaw/src/index.ts:384",
|
||||
"support": "synthetic-event-required",
|
||||
"assertions": [
|
||||
"block/allow return shapes are preserved",
|
||||
"terminal and approval metadata are present"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"runId": "run-fixture",
|
||||
"toolName": "fixture_tool",
|
||||
"params": {},
|
||||
"toolCallId": "call-fixture"
|
||||
},
|
||||
"syntheticContext": {
|
||||
"runId": "run-fixture",
|
||||
"agentId": "agent-fixture",
|
||||
"sessionId": "session-fixture",
|
||||
"toolName": "fixture_tool"
|
||||
}
|
||||
}
|
||||
],
|
||||
"sdkImports": [],
|
||||
"packageEntrypoints": [
|
||||
{
|
||||
"id": "package.extension:nemoclaw:plugins-nemoclaw-nemoclaw-dist-index-js",
|
||||
"fixture": "nemoclaw",
|
||||
"kind": "extension",
|
||||
"specifier": "./dist/index.js",
|
||||
"ref": "plugins/nemoclaw/nemoclaw/dist/index.js",
|
||||
"support": "build-required",
|
||||
"assertions": [
|
||||
"entrypoint path resolves",
|
||||
"entrypoint can be cold-imported after required build step"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "memory-tencentdb",
|
||||
"priority": "high",
|
||||
@ -12060,7 +12159,7 @@
|
||||
"fixture": "codex-app-server",
|
||||
"specifier": "openclaw/plugin-sdk/discord",
|
||||
"ref": "plugins/codex-app-server/src/controller.ts:104",
|
||||
"support": "compat-alias-required",
|
||||
"support": "target-exported",
|
||||
"assertions": [
|
||||
"package export exists",
|
||||
"cold import resolves without plugin credentials"
|
||||
@ -12071,7 +12170,7 @@
|
||||
"fixture": "codex-app-server",
|
||||
"specifier": "openclaw/plugin-sdk/discord",
|
||||
"ref": "plugins/codex-app-server/src/controller.ts:106",
|
||||
"support": "compat-alias-required",
|
||||
"support": "target-exported",
|
||||
"assertions": [
|
||||
"package export exists",
|
||||
"cold import resolves without plugin credentials"
|
||||
@ -12082,7 +12181,7 @@
|
||||
"fixture": "codex-app-server",
|
||||
"specifier": "openclaw/plugin-sdk/telegram-account",
|
||||
"ref": "plugins/codex-app-server/src/controller.ts:105",
|
||||
"support": "compat-alias-required",
|
||||
"support": "target-exported",
|
||||
"assertions": [
|
||||
"package export exists",
|
||||
"cold import resolves without plugin credentials"
|
||||
@ -12649,6 +12748,19 @@
|
||||
"registered handler metadata is retained"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "api.capture.runtime-registrars:nemoclaw",
|
||||
"fixture": "nemoclaw",
|
||||
"priority": "P1",
|
||||
"target": "inspector-capture-api",
|
||||
"evidence": [
|
||||
"registerCommand @ plugins/nemoclaw/nemoclaw/src/index.ts:336"
|
||||
],
|
||||
"assertions": [
|
||||
"registration arguments are recorded",
|
||||
"registered handler metadata is retained"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "api.capture.runtime-registrars:openclaw-telemetry",
|
||||
"fixture": "openclaw-telemetry",
|
||||
@ -12774,6 +12886,19 @@
|
||||
"return semantics are preserved"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "hook.before_tool_call.terminal-block-approval:nemoclaw",
|
||||
"fixture": "nemoclaw",
|
||||
"priority": "P1",
|
||||
"target": "hook-runner",
|
||||
"evidence": [
|
||||
"before_tool_call @ plugins/nemoclaw/nemoclaw/src/index.ts:384"
|
||||
],
|
||||
"assertions": [
|
||||
"synthetic event payload is accepted",
|
||||
"return semantics are preserved"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "hook.before_tool_call.terminal-block-approval:openclaw-telemetry",
|
||||
"fixture": "openclaw-telemetry",
|
||||
@ -12937,21 +13062,6 @@
|
||||
"migration metadata is visible when alias is missing"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sdk.import.package-export-cold-import:codex-app-server",
|
||||
"fixture": "codex-app-server",
|
||||
"priority": "P1",
|
||||
"target": "sdk-alias",
|
||||
"evidence": [
|
||||
"openclaw/plugin-sdk/discord @ plugins/codex-app-server/src/controller.ts:104",
|
||||
"openclaw/plugin-sdk/discord @ plugins/codex-app-server/src/controller.ts:106",
|
||||
"openclaw/plugin-sdk/telegram-account @ plugins/codex-app-server/src/controller.ts:105"
|
||||
],
|
||||
"assertions": [
|
||||
"package export exists",
|
||||
"migration metadata is visible when alias is missing"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sdk.import.package-export-cold-import:honcho",
|
||||
"fixture": "honcho",
|
||||
@ -13155,6 +13265,19 @@
|
||||
"return semantics are preserved"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "hook.compat.before-agent-start-migration:nemoclaw",
|
||||
"fixture": "nemoclaw",
|
||||
"priority": "P2",
|
||||
"target": "hook-runner",
|
||||
"evidence": [
|
||||
"before_agent_start @ plugins/nemoclaw/nemoclaw/src/runtime-context.ts:474"
|
||||
],
|
||||
"assertions": [
|
||||
"synthetic event payload is accepted",
|
||||
"return semantics are preserved"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "hook.compat.before-agent-start-migration:openclaw-telemetry",
|
||||
"fixture": "openclaw-telemetry",
|
||||
@ -13354,6 +13477,19 @@
|
||||
"cold import failure mode is classified"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "package.compat.plugin-api-range:nemoclaw",
|
||||
"fixture": "nemoclaw",
|
||||
"priority": "P2",
|
||||
"target": "package-loader",
|
||||
"evidence": [
|
||||
"plugins/nemoclaw/nemoclaw/package.json"
|
||||
],
|
||||
"assertions": [
|
||||
"entrypoint metadata resolves",
|
||||
"cold import failure mode is classified"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "package.compat.plugin-api-range:openclaw-telemetry",
|
||||
"fixture": "openclaw-telemetry",
|
||||
@ -13472,6 +13608,19 @@
|
||||
"cold import failure mode is classified"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "package.entrypoint.build-before-cold-import:nemoclaw",
|
||||
"fixture": "nemoclaw",
|
||||
"priority": "P2",
|
||||
"target": "package-loader",
|
||||
"evidence": [
|
||||
"extension:./dist/index.js -> plugins/nemoclaw/nemoclaw/dist/index.js"
|
||||
],
|
||||
"assertions": [
|
||||
"entrypoint metadata resolves",
|
||||
"cold import failure mode is classified"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "package.entrypoint.build-before-cold-import:opik-openclaw",
|
||||
"fixture": "opik-openclaw",
|
||||
@ -13673,6 +13822,23 @@
|
||||
"cold import failure mode is classified"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "package.entrypoint.isolated-dependency-install:nemoclaw",
|
||||
"fixture": "nemoclaw",
|
||||
"priority": "P2",
|
||||
"target": "package-loader",
|
||||
"evidence": [
|
||||
"commander @ plugins/nemoclaw/nemoclaw/package.json",
|
||||
"execa @ plugins/nemoclaw/nemoclaw/package.json",
|
||||
"json5 @ plugins/nemoclaw/nemoclaw/package.json",
|
||||
"tar @ plugins/nemoclaw/nemoclaw/package.json",
|
||||
"yaml @ plugins/nemoclaw/nemoclaw/package.json"
|
||||
],
|
||||
"assertions": [
|
||||
"entrypoint metadata resolves",
|
||||
"cold import failure mode is classified"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "package.entrypoint.isolated-dependency-install:openclaw-weixin",
|
||||
"fixture": "openclaw-weixin",
|
||||
|
||||
@ -6,14 +6,14 @@ Generated: deterministic
|
||||
|
||||
| Metric | Value |
|
||||
| ----------------------- | ----- |
|
||||
| Fixtures | 32 |
|
||||
| Registrations | 202 |
|
||||
| Hooks | 86 |
|
||||
| Fixtures | 33 |
|
||||
| Registrations | 204 |
|
||||
| Hooks | 88 |
|
||||
| SDK imports | 549 |
|
||||
| Package entrypoints | 39 |
|
||||
| Issue probes | 170 |
|
||||
| Inspector shim required | 110 |
|
||||
| Compat aliases required | 11 |
|
||||
| Package entrypoints | 40 |
|
||||
| Issue probes | 175 |
|
||||
| Inspector shim required | 111 |
|
||||
| Compat aliases required | 8 |
|
||||
|
||||
## Registration Capture
|
||||
|
||||
@ -146,6 +146,8 @@ Generated: deterministic
|
||||
| kitchen-sink | registerWebFetchProvider | target-captured | plugins/kitchen-sink/src/kitchen-runtime.js:91 | registration arguments are captured |
|
||||
| kitchen-sink | registerWebSearchProvider | target-captured | plugins/kitchen-sink/src/generated-registrars.js:44 | registration arguments are captured |
|
||||
| kitchen-sink | registerWebSearchProvider | target-captured | plugins/kitchen-sink/src/kitchen-runtime.js:88 | registration arguments are captured |
|
||||
| nemoclaw | registerCommand | inspector-shim-required | plugins/nemoclaw/nemoclaw/src/index.ts:336 | command id is stable; interactive command payload is captured |
|
||||
| nemoclaw | registerProvider | target-captured | plugins/nemoclaw/nemoclaw/src/index.ts:372 | registration arguments are captured |
|
||||
| memory-tencentdb | registerCli | target-captured | plugins/memory-tencentdb/.crabpot-package/index.ts:957 | command name is stable; argument schema is captured |
|
||||
| memory-tencentdb | registerTool | target-captured | plugins/memory-tencentdb/.crabpot-package/index.ts:268 | tool name is stable; input schema is captured; result shape metadata is captured |
|
||||
| memory-tencentdb | registerTool | target-captured | plugins/memory-tencentdb/.crabpot-package/index.ts:365 | tool name is stable; input schema is captured; result shape metadata is captured |
|
||||
@ -303,6 +305,8 @@ Generated: deterministic
|
||||
| kitchen-sink | subagent_spawned | synthetic-event-required | plugins/kitchen-sink/src/generated-hooks.js:34 | spawn payload is preserved; parent/subagent metadata are present |
|
||||
| kitchen-sink | subagent_spawning | synthetic-event-required | plugins/kitchen-sink/src/generated-hooks.js:35 | hook payload and return value are captured |
|
||||
| kitchen-sink | tool_result_persist | synthetic-event-required | plugins/kitchen-sink/src/generated-hooks.js:36 | hook payload and return value are captured |
|
||||
| nemoclaw | before_agent_start | synthetic-event-required | plugins/nemoclaw/nemoclaw/src/runtime-context.ts:474 | legacy startup hook payload is accepted; migration metadata can map to prompt/model hooks |
|
||||
| nemoclaw | before_tool_call | synthetic-event-required | plugins/nemoclaw/nemoclaw/src/index.ts:384 | block/allow return shapes are preserved; terminal and approval metadata are present |
|
||||
| memory-tencentdb | agent_end | synthetic-event-required | plugins/memory-tencentdb/.crabpot-package/index.ts:820 | final conversation payload is redacted as expected; agent id and run metadata are present |
|
||||
| memory-tencentdb | before_prompt_build | synthetic-event-required | plugins/memory-tencentdb/.crabpot-package/index.ts:464 | prompt mutation result is preserved; agent and conversation metadata are present |
|
||||
| memory-tencentdb | gateway_stop | synthetic-event-required | plugins/memory-tencentdb/.crabpot-package/index.ts:745 | hook payload and return value are captured |
|
||||
@ -854,9 +858,9 @@ Generated: deterministic
|
||||
| codex-app-server | openclaw/plugin-sdk | target-exported | plugins/codex-app-server/src/client.ts:6 | package export exists; cold import resolves without plugin credentials |
|
||||
| codex-app-server | openclaw/plugin-sdk | target-exported | plugins/codex-app-server/src/controller.ts:18 | package export exists; cold import resolves without plugin credentials |
|
||||
| codex-app-server | openclaw/plugin-sdk | target-exported | plugins/codex-app-server/src/types.ts:1 | package export exists; cold import resolves without plugin credentials |
|
||||
| codex-app-server | openclaw/plugin-sdk/discord | compat-alias-required | plugins/codex-app-server/src/controller.ts:104 | package export exists; cold import resolves without plugin credentials |
|
||||
| codex-app-server | openclaw/plugin-sdk/discord | compat-alias-required | plugins/codex-app-server/src/controller.ts:106 | package export exists; cold import resolves without plugin credentials |
|
||||
| codex-app-server | openclaw/plugin-sdk/telegram-account | compat-alias-required | plugins/codex-app-server/src/controller.ts:105 | package export exists; cold import resolves without plugin credentials |
|
||||
| codex-app-server | openclaw/plugin-sdk/discord | target-exported | plugins/codex-app-server/src/controller.ts:104 | package export exists; cold import resolves without plugin credentials |
|
||||
| codex-app-server | openclaw/plugin-sdk/discord | target-exported | plugins/codex-app-server/src/controller.ts:106 | package export exists; cold import resolves without plugin credentials |
|
||||
| codex-app-server | openclaw/plugin-sdk/telegram-account | target-exported | plugins/codex-app-server/src/controller.ts:105 | package export exists; cold import resolves without plugin credentials |
|
||||
| apify | openclaw/plugin-sdk | target-exported | plugins/apify/src/cli.ts:2 | package export exists; cold import resolves without plugin credentials |
|
||||
| apify | openclaw/plugin-sdk | target-exported | plugins/apify/src/index.ts:1 | package export exists; cold import resolves without plugin credentials |
|
||||
| apify | openclaw/plugin-sdk | target-exported | plugins/apify/src/tools/apify-scraper-tool.ts:4 | package export exists; cold import resolves without plugin credentials |
|
||||
@ -885,6 +889,7 @@ Generated: deterministic
|
||||
| api.capture.runtime-registrars:mcp-adapter | P1 | mcp-adapter | inspector-capture-api | registration arguments are recorded; registered handler metadata is retained | registerService @ plugins/mcp-adapter/index.ts:15 |
|
||||
| api.capture.runtime-registrars:memos-cloud | P1 | memos-cloud | inspector-capture-api | registration arguments are recorded; registered handler metadata is retained | registerHook @ plugins/memos-cloud/index.js:467 |
|
||||
| api.capture.runtime-registrars:mocrane-wecom | P1 | mocrane-wecom | inspector-capture-api | registration arguments are recorded; registered handler metadata is retained | registerChannel @ plugins/mocrane-wecom/index.ts:31, registerHttpRoute @ plugins/mocrane-wecom/index.ts:34 |
|
||||
| api.capture.runtime-registrars:nemoclaw | P1 | nemoclaw | inspector-capture-api | registration arguments are recorded; registered handler metadata is retained | registerCommand @ plugins/nemoclaw/nemoclaw/src/index.ts:336 |
|
||||
| api.capture.runtime-registrars:openclaw-telemetry | P1 | openclaw-telemetry | inspector-capture-api | registration arguments are recorded; registered handler metadata is retained | registerService @ plugins/openclaw-telemetry/index.ts:10 |
|
||||
| api.capture.runtime-registrars:openclaw-weixin | P1 | openclaw-weixin | inspector-capture-api | registration arguments are recorded; registered handler metadata is retained | registerChannel @ plugins/openclaw-weixin/.crabpot-package/index.ts:22 |
|
||||
| api.capture.runtime-registrars:opik-openclaw | P1 | opik-openclaw | inspector-capture-api | registration arguments are recorded; registered handler metadata is retained | registerService @ plugins/opik-openclaw/index.ts:16 |
|
||||
@ -894,6 +899,7 @@ Generated: deterministic
|
||||
| api.capture.runtime-registrars:wecom | P1 | wecom | inspector-capture-api | registration arguments are recorded; registered handler metadata is retained | registerChannel @ plugins/wecom/index.js:27, registerHttpRoute @ plugins/wecom/index.js:56 |
|
||||
| api.capture.runtime-registrars:yuanbao | P1 | yuanbao | inspector-capture-api | registration arguments are recorded; registered handler metadata is retained | registerCommand @ plugins/yuanbao/.crabpot-package/dist/index.js:13, registerCommand @ plugins/yuanbao/.crabpot-package/dist/index.js:14, registerCommand @ plugins/yuanbao/.crabpot-package/dist/index.js:15, registerCommand @ plugins/yuanbao/.crabpot-package/index.ts:31, registerCommand @ plugins/yuanbao/.crabpot-package/index.ts:32, registerCommand @ plugins/yuanbao/.crabpot-package/index.ts:33 |
|
||||
| hook.before_tool_call.terminal-block-approval:kitchen-sink | P1 | kitchen-sink | hook-runner | synthetic event payload is accepted; return semantics are preserved | before_tool_call @ plugins/kitchen-sink/src/generated-hooks.js:18 |
|
||||
| hook.before_tool_call.terminal-block-approval:nemoclaw | P1 | nemoclaw | hook-runner | synthetic event payload is accepted; return semantics are preserved | before_tool_call @ plugins/nemoclaw/nemoclaw/src/index.ts:384 |
|
||||
| hook.before_tool_call.terminal-block-approval:openclaw-telemetry | P1 | openclaw-telemetry | hook-runner | synthetic event payload is accepted; return semantics are preserved | before_tool_call @ plugins/openclaw-telemetry/index.ts:12 |
|
||||
| hook.before_tool_call.terminal-block-approval:opik-openclaw | P1 | opik-openclaw | hook-runner | synthetic event payload is accepted; return semantics are preserved | before_tool_call @ plugins/opik-openclaw/src/service/hooks/tool.ts:34 |
|
||||
| hook.before_tool_call.terminal-block-approval:wecom | P1 | wecom | hook-runner | synthetic event payload is accepted; return semantics are preserved | before_tool_call @ plugins/wecom/index.js:76 |
|
||||
@ -906,7 +912,6 @@ Generated: deterministic
|
||||
| hook.llm-observer.privacy-payload:openclaw-telemetry | P1 | openclaw-telemetry | hook-runner | synthetic event payload is accepted; return semantics are preserved | agent_end @ plugins/openclaw-telemetry/index.ts:62 |
|
||||
| hook.llm-observer.privacy-payload:opik-openclaw | P1 | opik-openclaw | hook-runner | synthetic event payload is accepted; return semantics are preserved | agent_end @ plugins/opik-openclaw/src/service.ts:560, llm_input @ plugins/opik-openclaw/src/service/hooks/llm.ts:39, llm_output @ plugins/opik-openclaw/src/service/hooks/llm.ts:150 |
|
||||
| sdk.import.package-export-cold-import:clawmetry | P1 | clawmetry | sdk-alias | package export exists; migration metadata is visible when alias is missing | openclaw/plugin-sdk/diagnostics-otel @ plugins/clawmetry/clawhub-plugin/src/service.ts:2 |
|
||||
| sdk.import.package-export-cold-import:codex-app-server | P1 | codex-app-server | sdk-alias | package export exists; migration metadata is visible when alias is missing | openclaw/plugin-sdk/discord @ plugins/codex-app-server/src/controller.ts:104, openclaw/plugin-sdk/discord @ plugins/codex-app-server/src/controller.ts:106, openclaw/plugin-sdk/telegram-account @ plugins/codex-app-server/src/controller.ts:105 |
|
||||
| sdk.import.package-export-cold-import:honcho | P1 | honcho | sdk-alias | package export exists; migration metadata is visible when alias is missing | openclaw/plugin-sdk/memory-core @ plugins/honcho/index.ts:11 |
|
||||
| sdk.import.package-export-cold-import:yuanbao | P1 | yuanbao | sdk-alias | package export exists; migration metadata is visible when alias is missing | openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/dist/src/business/commands/log-upload/extractor.js:2, openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/dist/src/business/commands/upgrade/env.js:2, openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/dist/src/business/commands/upgrade/utils.js:1, openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/log-upload/extractor.ts:2, openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/env.ts:2, openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/utils.ts:2 |
|
||||
| channel.runtime.envelope-config-metadata:agentchat | P2 | agentchat | channel-runtime | message envelope is stable; sender/config metadata is preserved | defineChannelPluginEntry @ plugins/agentchat/integrations/openclaw-channel/src/channel.ts:333 |
|
||||
@ -922,6 +927,7 @@ Generated: deterministic
|
||||
| hook.compat.before-agent-start-migration:honcho | P2 | honcho | hook-runner | synthetic event payload is accepted; return semantics are preserved | before_agent_start @ plugins/honcho/hooks/subagent.ts:18 |
|
||||
| hook.compat.before-agent-start-migration:hyperspell | P2 | hyperspell | hook-runner | synthetic event payload is accepted; return semantics are preserved | before_agent_start @ plugins/hyperspell/index.ts:102, before_agent_start @ plugins/hyperspell/index.ts:111 |
|
||||
| hook.compat.before-agent-start-migration:kitchen-sink | P2 | kitchen-sink | hook-runner | synthetic event payload is accepted; return semantics are preserved | before_agent_start @ plugins/kitchen-sink/src/generated-hooks.js:10 |
|
||||
| hook.compat.before-agent-start-migration:nemoclaw | P2 | nemoclaw | hook-runner | synthetic event payload is accepted; return semantics are preserved | before_agent_start @ plugins/nemoclaw/nemoclaw/src/runtime-context.ts:474 |
|
||||
| hook.compat.before-agent-start-migration:openclaw-telemetry | P2 | openclaw-telemetry | hook-runner | synthetic event payload is accepted; return semantics are preserved | before_agent_start @ plugins/openclaw-telemetry/index.ts:53 |
|
||||
| manifest.compat.channel-env-vars:agentchat | P2 | agentchat | manifest-loader | metadata key is accepted; migration or compatibility mapping is visible | agentchat |
|
||||
| manifest.compat.channel-env-vars:yuanbao | P2 | yuanbao | manifest-loader | metadata key is accepted; migration or compatibility mapping is visible | yuanbao |
|
||||
@ -937,6 +943,7 @@ Generated: deterministic
|
||||
| package.compat.plugin-api-range:dingtalk-connector | P2 | dingtalk-connector | package-loader | entrypoint metadata resolves; cold import failure mode is classified | plugins/dingtalk-connector/package.json |
|
||||
| package.compat.plugin-api-range:mcp-adapter | P2 | mcp-adapter | package-loader | entrypoint metadata resolves; cold import failure mode is classified | plugins/mcp-adapter/package.json |
|
||||
| package.compat.plugin-api-range:mocrane-wecom | P2 | mocrane-wecom | package-loader | entrypoint metadata resolves; cold import failure mode is classified | plugins/mocrane-wecom/package.json |
|
||||
| package.compat.plugin-api-range:nemoclaw | P2 | nemoclaw | package-loader | entrypoint metadata resolves; cold import failure mode is classified | plugins/nemoclaw/nemoclaw/package.json |
|
||||
| package.compat.plugin-api-range:openclaw-telemetry | P2 | openclaw-telemetry | package-loader | entrypoint metadata resolves; cold import failure mode is classified | plugins/openclaw-telemetry/package.json |
|
||||
| package.compat.plugin-api-range:openclaw-weixin | P2 | openclaw-weixin | package-loader | entrypoint metadata resolves; cold import failure mode is classified | plugins/openclaw-weixin/.crabpot-package/package.json |
|
||||
| package.compat.plugin-api-range:qqbot | P2 | qqbot | package-loader | entrypoint metadata resolves; cold import failure mode is classified | plugins/qqbot/package.json |
|
||||
@ -946,6 +953,7 @@ Generated: deterministic
|
||||
| package.entrypoint.build-before-cold-import:dingtalk-connector | P2 | dingtalk-connector | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:./dist/index.mjs -> plugins/dingtalk-connector/dist/index.mjs |
|
||||
| package.entrypoint.build-before-cold-import:honcho | P2 | honcho | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:./dist/index.js -> plugins/honcho/dist/index.js |
|
||||
| package.entrypoint.build-before-cold-import:lossless-claw | P2 | lossless-claw | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:./dist/index.js -> plugins/lossless-claw/dist/index.js |
|
||||
| package.entrypoint.build-before-cold-import:nemoclaw | P2 | nemoclaw | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:./dist/index.js -> plugins/nemoclaw/nemoclaw/dist/index.js |
|
||||
| package.entrypoint.build-before-cold-import:opik-openclaw | P2 | opik-openclaw | package-loader | entrypoint metadata resolves; cold import failure mode is classified | runtimeExtension:./dist/index.js -> plugins/opik-openclaw/dist/index.js |
|
||||
| package.entrypoint.isolated-dependency-install:a2a-gateway | P2 | a2a-gateway | package-loader | entrypoint metadata resolves; cold import failure mode is classified | @a2a-js/sdk @ plugins/a2a-gateway/package.json, @bufbuild/protobuf @ plugins/a2a-gateway/package.json, @grpc/grpc-js @ plugins/a2a-gateway/package.json, express @ plugins/a2a-gateway/package.json, multicast-dns @ plugins/a2a-gateway/package.json, uuid @ plugins/a2a-gateway/package.json, ws @ plugins/a2a-gateway/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:agentchat | P2 | agentchat | package-loader | entrypoint metadata resolves; cold import failure mode is classified | @agentchatme/agentchat @ plugins/agentchat/integrations/openclaw-channel/package.json, @sinclair/typebox @ plugins/agentchat/integrations/openclaw-channel/package.json, pino @ plugins/agentchat/integrations/openclaw-channel/package.json, ws @ plugins/agentchat/integrations/openclaw-channel/package.json, zod @ plugins/agentchat/integrations/openclaw-channel/package.json |
|
||||
@ -959,6 +967,7 @@ Generated: deterministic
|
||||
| package.entrypoint.isolated-dependency-install:mcp-adapter | P2 | mcp-adapter | package-loader | entrypoint metadata resolves; cold import failure mode is classified | @modelcontextprotocol/sdk @ plugins/mcp-adapter/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:memory-tencentdb | P2 | memory-tencentdb | package-loader | entrypoint metadata resolves; cold import failure mode is classified | @node-rs/jieba @ plugins/memory-tencentdb/.crabpot-package/package.json, @tencentdb-agent-memory/tcvdb-text @ plugins/memory-tencentdb/.crabpot-package/package.json, json5 @ plugins/memory-tencentdb/.crabpot-package/package.json, sqlite-vec @ plugins/memory-tencentdb/.crabpot-package/package.json, undici @ plugins/memory-tencentdb/.crabpot-package/package.json, node-llama-cpp @ plugins/memory-tencentdb/.crabpot-package/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:mocrane-wecom | P2 | mocrane-wecom | package-loader | entrypoint metadata resolves; cold import failure mode is classified | @wecom/aibot-node-sdk @ plugins/mocrane-wecom/package.json, fast-xml-parser @ plugins/mocrane-wecom/package.json, file-type @ plugins/mocrane-wecom/package.json, undici @ plugins/mocrane-wecom/package.json, zod @ plugins/mocrane-wecom/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:nemoclaw | P2 | nemoclaw | package-loader | entrypoint metadata resolves; cold import failure mode is classified | commander @ plugins/nemoclaw/nemoclaw/package.json, execa @ plugins/nemoclaw/nemoclaw/package.json, json5 @ plugins/nemoclaw/nemoclaw/package.json, tar @ plugins/nemoclaw/nemoclaw/package.json, yaml @ plugins/nemoclaw/nemoclaw/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:openclaw-weixin | P2 | openclaw-weixin | package-loader | entrypoint metadata resolves; cold import failure mode is classified | qrcode-terminal @ plugins/openclaw-weixin/.crabpot-package/package.json, zod @ plugins/openclaw-weixin/.crabpot-package/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:opik-openclaw | P2 | opik-openclaw | package-loader | entrypoint metadata resolves; cold import failure mode is classified | @clack/prompts @ plugins/opik-openclaw/package.json, opik @ plugins/opik-openclaw/package.json, zod @ plugins/opik-openclaw/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:qqbot | P2 | qqbot | package-loader | entrypoint metadata resolves; cold import failure mode is classified | mpg123-decoder @ plugins/qqbot/package.json, silk-wasm @ plugins/qqbot/package.json, ws @ plugins/qqbot/package.json |
|
||||
|
||||
@ -28,10 +28,9 @@
|
||||
{
|
||||
"id": "compatibility-report.live-p0-issues",
|
||||
"action": "warn",
|
||||
"message": "5 live P0 issues tracked",
|
||||
"message": "4 live P0 issues tracked",
|
||||
"evidence": [
|
||||
"clawmetry:sdk-export-missing:untracked",
|
||||
"codex-app-server:sdk-export-missing:untracked",
|
||||
"honcho:sdk-export-missing:untracked",
|
||||
"hyperspell:unknown-hook-name:none",
|
||||
"yuanbao:sdk-export-missing:untracked"
|
||||
@ -252,7 +251,7 @@
|
||||
{
|
||||
"id": "compatibility-report.deprecation-warnings",
|
||||
"action": "pass",
|
||||
"message": "27 deprecated compat seams tracked",
|
||||
"message": "28 deprecated compat seams tracked",
|
||||
"evidence": [
|
||||
"a2a-gateway:legacy-root-sdk-import",
|
||||
"agentchat:channel-env-vars",
|
||||
@ -275,6 +274,7 @@
|
||||
"memos-cloud:legacy-before-agent-start",
|
||||
"memu-engine:legacy-root-sdk-import",
|
||||
"mocrane-wecom:legacy-root-sdk-import",
|
||||
"nemoclaw:legacy-before-agent-start",
|
||||
"openclaw-telemetry:legacy-before-agent-start",
|
||||
"openclaw-telemetry:legacy-root-sdk-import",
|
||||
"opik-openclaw:legacy-root-sdk-import",
|
||||
@ -286,7 +286,7 @@
|
||||
{
|
||||
"id": "compatibility-report.inspector-gaps",
|
||||
"action": "pass",
|
||||
"message": "113 inspector proof gaps tracked",
|
||||
"message": "117 inspector proof gaps tracked",
|
||||
"evidence": [
|
||||
"a2a-gateway:registration-capture-gap",
|
||||
"clawmetry:registration-capture-gap",
|
||||
@ -309,6 +309,8 @@
|
||||
"memos-cloud:conversation-access-hook",
|
||||
"memos-cloud:registration-capture-gap",
|
||||
"mocrane-wecom:registration-capture-gap",
|
||||
"nemoclaw:before-tool-call-probe",
|
||||
"nemoclaw:registration-capture-gap",
|
||||
"openclaw-telemetry:before-tool-call-probe",
|
||||
"openclaw-telemetry:conversation-access-hook",
|
||||
"openclaw-telemetry:registration-capture-gap",
|
||||
@ -378,6 +380,8 @@
|
||||
"mocrane-wecom:package-dependency-install-required",
|
||||
"mocrane-wecom:package-typescript-source-entrypoint",
|
||||
"mocrane-wecom:runtime-tool-capture",
|
||||
"nemoclaw:package-build-artifact-entrypoint",
|
||||
"nemoclaw:package-dependency-install-required",
|
||||
"openclaw-telemetry:package-typescript-source-entrypoint",
|
||||
"openclaw-weixin:channel-contract-probe",
|
||||
"openclaw-weixin:package-dependency-install-required",
|
||||
@ -406,90 +410,46 @@
|
||||
{
|
||||
"id": "compatibility-report.p1-issues",
|
||||
"action": "pass",
|
||||
"message": "83 P1 issues tracked",
|
||||
"message": "39 P1 issues tracked",
|
||||
"evidence": [
|
||||
"a2a-gateway:missing-compat-record",
|
||||
"a2a-gateway:registration-capture-gap",
|
||||
"agentchat:missing-compat-record",
|
||||
"clawmetry:missing-compat-record",
|
||||
"clawmetry:missing-compat-record",
|
||||
"clawmetry:registration-capture-gap",
|
||||
"clawrouter:missing-compat-record",
|
||||
"clawrouter:registration-capture-gap",
|
||||
"codex-app-server:missing-compat-record",
|
||||
"codex-app-server:missing-compat-record",
|
||||
"codex-app-server:registration-capture-gap",
|
||||
"connectclaw:missing-compat-record",
|
||||
"connectclaw:registration-capture-gap",
|
||||
"ddingtalk:missing-compat-record",
|
||||
"dingtalk-connector:missing-compat-record",
|
||||
"dingtalk-connector:missing-compat-record",
|
||||
"dingtalk-connector:registration-capture-gap",
|
||||
"honcho:conversation-access-hook",
|
||||
"honcho:missing-compat-record",
|
||||
"honcho:missing-compat-record",
|
||||
"honcho:missing-compat-record",
|
||||
"honcho:registration-capture-gap",
|
||||
"hyperspell:conversation-access-hook",
|
||||
"hyperspell:missing-compat-record",
|
||||
"hyperspell:missing-compat-record",
|
||||
"hyperspell:registration-capture-gap",
|
||||
"kitchen-sink:before-tool-call-probe",
|
||||
"kitchen-sink:conversation-access-hook",
|
||||
"kitchen-sink:missing-compat-record",
|
||||
"kitchen-sink:missing-compat-record",
|
||||
"kitchen-sink:missing-compat-record",
|
||||
"kitchen-sink:missing-compat-record",
|
||||
"kitchen-sink:registration-capture-gap",
|
||||
"lightclawbot:missing-compat-record",
|
||||
"lightclawbot:missing-compat-record",
|
||||
"lightclawbot:registration-capture-gap",
|
||||
"llm-trace-phoenix:conversation-access-hook",
|
||||
"llm-trace-phoenix:missing-compat-record",
|
||||
"lossless-claw:missing-compat-record",
|
||||
"lossless-claw:registration-capture-gap",
|
||||
"mcp-adapter:missing-compat-record",
|
||||
"mcp-adapter:registration-capture-gap",
|
||||
"memory-tencentdb:conversation-access-hook",
|
||||
"memory-tencentdb:missing-compat-record",
|
||||
"memos-cloud:conversation-access-hook",
|
||||
"memos-cloud:missing-compat-record",
|
||||
"memos-cloud:missing-compat-record",
|
||||
"memos-cloud:registration-capture-gap",
|
||||
"mocrane-wecom:missing-compat-record",
|
||||
"mocrane-wecom:missing-compat-record",
|
||||
"mocrane-wecom:registration-capture-gap",
|
||||
"nemoclaw:before-tool-call-probe",
|
||||
"nemoclaw:registration-capture-gap",
|
||||
"openclaw-telemetry:before-tool-call-probe",
|
||||
"openclaw-telemetry:conversation-access-hook",
|
||||
"openclaw-telemetry:missing-compat-record",
|
||||
"openclaw-telemetry:missing-compat-record",
|
||||
"openclaw-telemetry:missing-compat-record",
|
||||
"openclaw-telemetry:registration-capture-gap",
|
||||
"openclaw-weixin:missing-compat-record",
|
||||
"openclaw-weixin:missing-compat-record",
|
||||
"openclaw-weixin:registration-capture-gap",
|
||||
"opik-openclaw:before-tool-call-probe",
|
||||
"opik-openclaw:conversation-access-hook",
|
||||
"opik-openclaw:missing-compat-record",
|
||||
"opik-openclaw:missing-compat-record",
|
||||
"opik-openclaw:missing-compat-record",
|
||||
"opik-openclaw:registration-capture-gap",
|
||||
"qqbot:missing-compat-record",
|
||||
"qqbot:missing-compat-record",
|
||||
"qqbot:registration-capture-gap",
|
||||
"secureclaw:missing-compat-record",
|
||||
"secureclaw:registration-capture-gap",
|
||||
"telnyx-sms:missing-compat-record",
|
||||
"telnyx-sms:missing-compat-record",
|
||||
"telnyx-sms:registration-capture-gap",
|
||||
"wecom:before-tool-call-probe",
|
||||
"wecom:missing-compat-record",
|
||||
"wecom:missing-compat-record",
|
||||
"wecom:missing-compat-record",
|
||||
"wecom:registration-capture-gap",
|
||||
"yuanbao:missing-compat-record",
|
||||
"yuanbao:missing-compat-record",
|
||||
"yuanbao:missing-compat-record",
|
||||
"yuanbao:registration-capture-gap"
|
||||
]
|
||||
},
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -3,17 +3,17 @@
|
||||
"targetOpenClaw": {
|
||||
"status": "ok",
|
||||
"configuredPath": "./openclaw",
|
||||
"sdkExportCount": 291
|
||||
"sdkExportCount": 294
|
||||
},
|
||||
"summary": {
|
||||
"fixtureCount": 32,
|
||||
"entrypointCount": 39,
|
||||
"fixtureCount": 33,
|
||||
"entrypointCount": 40,
|
||||
"readyCount": 3,
|
||||
"blockedCount": 36,
|
||||
"tsLoaderRequiredCount": 17,
|
||||
"buildRequiredCount": 8,
|
||||
"blockedCount": 37,
|
||||
"tsLoaderRequiredCount": 18,
|
||||
"buildRequiredCount": 9,
|
||||
"dependencyInstallRequiredCount": 19,
|
||||
"sdkAliasRequiredCount": 6
|
||||
"sdkAliasRequiredCount": 5
|
||||
},
|
||||
"fixtures": [
|
||||
{
|
||||
@ -512,6 +512,31 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "nemoclaw",
|
||||
"priority": "high",
|
||||
"entrypoints": [
|
||||
{
|
||||
"id": "cold-import.extension:nemoclaw:plugins-nemoclaw-nemoclaw-dist-index-js",
|
||||
"fixture": "nemoclaw",
|
||||
"packagePath": "plugins/nemoclaw/nemoclaw/package.json",
|
||||
"kind": "extension",
|
||||
"specifier": "./dist/index.js",
|
||||
"path": "plugins/nemoclaw/nemoclaw/dist/index.js",
|
||||
"status": "build-required",
|
||||
"blockers": [
|
||||
{
|
||||
"code": "build-required",
|
||||
"message": "entrypoint points at build output that is absent in the fixture checkout",
|
||||
"evidence": "plugins/nemoclaw/nemoclaw/dist/index.js"
|
||||
}
|
||||
],
|
||||
"assertions": [
|
||||
"plugin build or source alias resolution runs before cold import"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "memory-tencentdb",
|
||||
"priority": "high",
|
||||
@ -1043,7 +1068,7 @@
|
||||
"kind": "extension",
|
||||
"specifier": "./index.ts",
|
||||
"path": "plugins/codex-app-server/index.ts",
|
||||
"status": "sdk-alias-required",
|
||||
"status": "ts-loader-required",
|
||||
"blockers": [
|
||||
{
|
||||
"code": "ts-loader-required",
|
||||
@ -1054,29 +1079,11 @@
|
||||
"code": "dependency-install-required",
|
||||
"message": "package declares runtime dependencies that must be installed before cold import",
|
||||
"evidence": "ws"
|
||||
},
|
||||
{
|
||||
"code": "sdk-alias-required",
|
||||
"message": "fixture imports an SDK alias missing from target OpenClaw package exports",
|
||||
"evidence": "openclaw/plugin-sdk/discord @ plugins/codex-app-server/src/controller.ts:104"
|
||||
},
|
||||
{
|
||||
"code": "sdk-alias-required",
|
||||
"message": "fixture imports an SDK alias missing from target OpenClaw package exports",
|
||||
"evidence": "openclaw/plugin-sdk/discord @ plugins/codex-app-server/src/controller.ts:106"
|
||||
},
|
||||
{
|
||||
"code": "sdk-alias-required",
|
||||
"message": "fixture imports an SDK alias missing from target OpenClaw package exports",
|
||||
"evidence": "openclaw/plugin-sdk/telegram-account @ plugins/codex-app-server/src/controller.ts:105"
|
||||
}
|
||||
],
|
||||
"assertions": [
|
||||
"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"
|
||||
"fixture dependencies are installed in an isolated workspace before cold import"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@ -6,14 +6,14 @@ Generated: deterministic
|
||||
|
||||
| Metric | Value |
|
||||
| --------------------------- | ----- |
|
||||
| Fixtures | 32 |
|
||||
| Entrypoints | 39 |
|
||||
| Fixtures | 33 |
|
||||
| Entrypoints | 40 |
|
||||
| Ready | 3 |
|
||||
| Blocked | 36 |
|
||||
| TypeScript loader required | 17 |
|
||||
| Build required | 8 |
|
||||
| Blocked | 37 |
|
||||
| TypeScript loader required | 18 |
|
||||
| Build required | 9 |
|
||||
| Dependency install required | 19 |
|
||||
| SDK alias required | 6 |
|
||||
| SDK alias required | 5 |
|
||||
|
||||
## Entrypoints
|
||||
|
||||
@ -38,6 +38,7 @@ Generated: deterministic
|
||||
| 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 |
|
||||
| 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 |
|
||||
@ -54,7 +55,7 @@ Generated: deterministic
|
||||
| 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 | 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 |
|
||||
| codex-app-server | extension | ts-loader-required | plugins/codex-app-server/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
|
||||
| web-search-plus | extension | ts-loader-required | plugins/web-search-plus/index.ts | ts-loader-required, top-level-side-effect-review | TypeScript source entrypoint is compiled or loaded before cold import; cold import sandbox blocks network/process side effects before register capture |
|
||||
| apify | extension | ts-loader-required | plugins/apify/src/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
|
||||
| inworld-tts | extension | ts-loader-required | plugins/inworld-tts/index.ts | ts-loader-required | TypeScript source entrypoint is compiled or loaded before cold import |
|
||||
|
||||
@ -1,25 +1,25 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"generatedAt": "2026-04-30T09:53:07Z",
|
||||
"runUrl": "https://github.com/openclaw/crabpot/actions/runs/25158883422",
|
||||
"generatedAt": "deterministic",
|
||||
"runUrl": "",
|
||||
"mode": "check",
|
||||
"openclawLabel": "openclaw@latest (2026.4.27, cbc2ba093146)",
|
||||
"status": "pass",
|
||||
"metrics": {
|
||||
"fixtures": 32,
|
||||
"fixtures": 33,
|
||||
"hardBreakages": 0,
|
||||
"warnings": 68,
|
||||
"suggestions": 154,
|
||||
"issues": 222,
|
||||
"p0Issues": 5,
|
||||
"p1Issues": 83,
|
||||
"liveIssues": 5,
|
||||
"liveP0Issues": 5,
|
||||
"compatGaps": 49,
|
||||
"deprecationWarnings": 27,
|
||||
"inspectorGaps": 113,
|
||||
"upstreamIssues": 28,
|
||||
"contractProbes": 170,
|
||||
"liveIssues": 4,
|
||||
"liveP0Issues": 4,
|
||||
"compatGaps": 3,
|
||||
"deprecationWarnings": 28,
|
||||
"inspectorGaps": 117,
|
||||
"upstreamIssues": 29,
|
||||
"contractProbes": 175,
|
||||
"policyFailures": 0,
|
||||
"policyWarnings": 20,
|
||||
"refDiffFailures": 0,
|
||||
@ -27,35 +27,35 @@
|
||||
"executionPass": 12,
|
||||
"executionFail": 0,
|
||||
"executionBlocked": 18,
|
||||
"syntheticReady": 288,
|
||||
"syntheticReady": 292,
|
||||
"syntheticBlocked": 0,
|
||||
"syntheticTotal": 288,
|
||||
"syntheticTotal": 292,
|
||||
"coldReady": 3,
|
||||
"coldBlocked": 36,
|
||||
"coldTotal": 39,
|
||||
"workspaceEntrypoints": 39,
|
||||
"coldBlocked": 37,
|
||||
"coldTotal": 40,
|
||||
"workspaceEntrypoints": 40,
|
||||
"workspaceInstalls": 19,
|
||||
"workspaceBuilds": 10,
|
||||
"workspaceBuilds": 11,
|
||||
"platformWindowsRisks": 14,
|
||||
"platformContainerRisks": 14,
|
||||
"loaderJitiCandidates": 21,
|
||||
"importLoopP50Ms": 1534,
|
||||
"importLoopP95Ms": 1576,
|
||||
"importLoopP50Ms": 2467,
|
||||
"importLoopP95Ms": 2484,
|
||||
"importLoopOpenClawLifecycleCount": 3,
|
||||
"importLoopOpenClawImportP50Ms": 100.7,
|
||||
"importLoopOpenClawImportP95Ms": 101.5,
|
||||
"importLoopOpenClawActivationP50Ms": 0.3,
|
||||
"importLoopOpenClawActivationP95Ms": 0.3,
|
||||
"importLoopOpenClawImportP50Ms": 315.9,
|
||||
"importLoopOpenClawImportP95Ms": 316.1,
|
||||
"importLoopOpenClawActivationP50Ms": 0.1,
|
||||
"importLoopOpenClawActivationP95Ms": 0.2,
|
||||
"importLoopMetricBasis": "baseline-adjusted",
|
||||
"importLoopMaxRssMb": 1.5,
|
||||
"importLoopMaxCpuMs": 61,
|
||||
"importLoopRssSampleCount": 183,
|
||||
"importLoopCpuSampleCount": 183,
|
||||
"runtimeP50Ms": 547,
|
||||
"runtimeP95Ms": 570,
|
||||
"runtimeMaxRssMb": 88.3,
|
||||
"runtimeRssSampleCount": 496,
|
||||
"runtimeCpuSampleCount": 496,
|
||||
"importLoopMaxRssMb": 3.5,
|
||||
"importLoopMaxCpuMs": 238,
|
||||
"importLoopRssSampleCount": 20,
|
||||
"importLoopCpuSampleCount": 20,
|
||||
"runtimeP50Ms": 2072,
|
||||
"runtimeP95Ms": 8684,
|
||||
"runtimeMaxRssMb": 80.5,
|
||||
"runtimeRssSampleCount": 181,
|
||||
"runtimeCpuSampleCount": 181,
|
||||
"runtimeSamplesPerCommand": 3,
|
||||
"runtimeWallTimeBasis": "command-median-p95"
|
||||
},
|
||||
@ -70,15 +70,6 @@
|
||||
"decision": "core-compat-adapter",
|
||||
"title": "clawmetry: plugin SDK import aliases are missing from target package exports"
|
||||
},
|
||||
{
|
||||
"id": "CRABPOT-62AC9404",
|
||||
"severity": "P0",
|
||||
"issueClass": "live-issue",
|
||||
"fixture": "codex-app-server",
|
||||
"code": "sdk-export-missing",
|
||||
"decision": "core-compat-adapter",
|
||||
"title": "codex-app-server: plugin SDK import aliases are missing from target package exports"
|
||||
},
|
||||
{
|
||||
"id": "CRABPOT-E2CB6C9A",
|
||||
"severity": "P0",
|
||||
@ -106,15 +97,6 @@
|
||||
"decision": "core-compat-adapter",
|
||||
"title": "yuanbao: plugin SDK import aliases are missing from target package exports"
|
||||
},
|
||||
{
|
||||
"id": "CRABPOT-DC39E00B",
|
||||
"severity": "P1",
|
||||
"issueClass": "compat-gap",
|
||||
"fixture": "a2a-gateway",
|
||||
"code": "missing-compat-record",
|
||||
"decision": "core-compat-adapter",
|
||||
"title": "a2a-gateway: compat-dependent behavior lacks registry coverage"
|
||||
},
|
||||
{
|
||||
"id": "CRABPOT-955F01E4",
|
||||
"severity": "P1",
|
||||
@ -124,24 +106,6 @@
|
||||
"decision": "inspector-follow-up",
|
||||
"title": "a2a-gateway: runtime registrations need capture before contract judgment"
|
||||
},
|
||||
{
|
||||
"id": "CRABPOT-B6F9FB5F",
|
||||
"severity": "P1",
|
||||
"issueClass": "compat-gap",
|
||||
"fixture": "agentchat",
|
||||
"code": "missing-compat-record",
|
||||
"decision": "core-compat-adapter",
|
||||
"title": "agentchat: compat-dependent behavior lacks registry coverage"
|
||||
},
|
||||
{
|
||||
"id": "CRABPOT-15A7C122",
|
||||
"severity": "P1",
|
||||
"issueClass": "compat-gap",
|
||||
"fixture": "clawmetry",
|
||||
"code": "missing-compat-record",
|
||||
"decision": "core-compat-adapter",
|
||||
"title": "clawmetry: compat-dependent behavior lacks registry coverage"
|
||||
},
|
||||
{
|
||||
"id": "CRABPOT-08C6582D",
|
||||
"severity": "P1",
|
||||
@ -150,6 +114,42 @@
|
||||
"code": "missing-compat-record",
|
||||
"decision": "core-compat-adapter",
|
||||
"title": "clawmetry: compat-dependent behavior lacks registry coverage"
|
||||
},
|
||||
{
|
||||
"id": "CRABPOT-CE344535",
|
||||
"severity": "P1",
|
||||
"issueClass": "inspector-gap",
|
||||
"fixture": "clawmetry",
|
||||
"code": "registration-capture-gap",
|
||||
"decision": "inspector-follow-up",
|
||||
"title": "clawmetry: runtime registrations need capture before contract judgment"
|
||||
},
|
||||
{
|
||||
"id": "CRABPOT-F69491D6",
|
||||
"severity": "P1",
|
||||
"issueClass": "inspector-gap",
|
||||
"fixture": "clawrouter",
|
||||
"code": "registration-capture-gap",
|
||||
"decision": "inspector-follow-up",
|
||||
"title": "clawrouter: runtime registrations need capture before contract judgment"
|
||||
},
|
||||
{
|
||||
"id": "CRABPOT-5F421FDE",
|
||||
"severity": "P1",
|
||||
"issueClass": "inspector-gap",
|
||||
"fixture": "codex-app-server",
|
||||
"code": "registration-capture-gap",
|
||||
"decision": "inspector-follow-up",
|
||||
"title": "codex-app-server: runtime registrations need capture before contract judgment"
|
||||
},
|
||||
{
|
||||
"id": "CRABPOT-FF26FA1F",
|
||||
"severity": "P1",
|
||||
"issueClass": "inspector-gap",
|
||||
"fixture": "connectclaw",
|
||||
"code": "registration-capture-gap",
|
||||
"decision": "inspector-follow-up",
|
||||
"title": "connectclaw: runtime registrations need capture before contract judgment"
|
||||
}
|
||||
],
|
||||
"artifactPaths": {
|
||||
|
||||
@ -7,18 +7,18 @@
|
||||
"runs": 3,
|
||||
"entrypoint": ".crabpot/import-loop/baseline-plugin.mjs",
|
||||
"reference": {
|
||||
"wallMs": 1558,
|
||||
"peakRssMb": 278.2,
|
||||
"cpuMsEstimate": 2791
|
||||
"wallMs": 2209,
|
||||
"peakRssMb": 348.7,
|
||||
"cpuMsEstimate": 1799
|
||||
},
|
||||
"max": {
|
||||
"wallMs": 2132,
|
||||
"peakRssMb": 300.1,
|
||||
"cpuMsEstimate": 3584
|
||||
"wallMs": 2442,
|
||||
"peakRssMb": 351.8,
|
||||
"cpuMsEstimate": 1838
|
||||
},
|
||||
"statSampleCount": 202,
|
||||
"rssSampleCount": 202,
|
||||
"cpuSampleCount": 202,
|
||||
"statSampleCount": 19,
|
||||
"rssSampleCount": 19,
|
||||
"cpuSampleCount": 19,
|
||||
"failCount": 0,
|
||||
"samples": [
|
||||
{
|
||||
@ -31,32 +31,32 @@
|
||||
"pluginId": "crabpot-lifecycle-probe",
|
||||
"importPhase": "full",
|
||||
"activationPhase": "full:register",
|
||||
"importMs": 97.9,
|
||||
"activationMs": 0.3,
|
||||
"openclawPath": "/home/runner/work/crabpot/crabpot/openclaw",
|
||||
"importMs": 349.2,
|
||||
"activationMs": 0.1,
|
||||
"openclawPath": "/Users/vincentkoc/GIT/_Perso/openclaw",
|
||||
"phases": [
|
||||
{
|
||||
"phase": "full",
|
||||
"pluginId": "crabpot-lifecycle-probe",
|
||||
"elapsedMs": 97.9,
|
||||
"source": "/tmp/crabpot-openclaw-plugin-rVrYPt/index.mjs"
|
||||
"elapsedMs": 349.2,
|
||||
"source": "/private/var/folders/1x/yqgflz6n61v5v5ynq_mtvb940000gn/T/crabpot-openclaw-plugin-5MQGTj/index.mjs"
|
||||
},
|
||||
{
|
||||
"phase": "full:register",
|
||||
"pluginId": "crabpot-lifecycle-probe",
|
||||
"elapsedMs": 0.3,
|
||||
"source": "/tmp/crabpot-openclaw-plugin-rVrYPt/index.mjs"
|
||||
"elapsedMs": 0.1,
|
||||
"source": "/var/folders/1x/yqgflz6n61v5v5ynq_mtvb940000gn/T/crabpot-openclaw-plugin-5MQGTj/index.mjs"
|
||||
}
|
||||
]
|
||||
},
|
||||
"wallMs": 2132,
|
||||
"peakRssMb": 300.1,
|
||||
"peakCpuPercent": 182,
|
||||
"cpuMsEstimate": 3584,
|
||||
"statSampleCount": 80,
|
||||
"rssSampleCount": 80,
|
||||
"cpuSampleCount": 80,
|
||||
"stderrPreview": ""
|
||||
"wallMs": 2442,
|
||||
"peakRssMb": 351.8,
|
||||
"peakCpuPercent": 116.4,
|
||||
"cpuMsEstimate": 1799,
|
||||
"statSampleCount": 7,
|
||||
"rssSampleCount": 7,
|
||||
"cpuSampleCount": 7,
|
||||
"stderrPreview": "(node:76928) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n(Use `node --trace-warnings ...` to show where the warning was created)"
|
||||
},
|
||||
{
|
||||
"index": 1,
|
||||
@ -68,32 +68,32 @@
|
||||
"pluginId": "crabpot-lifecycle-probe",
|
||||
"importPhase": "full",
|
||||
"activationPhase": "full:register",
|
||||
"importMs": 101,
|
||||
"activationMs": 0.2,
|
||||
"openclawPath": "/home/runner/work/crabpot/crabpot/openclaw",
|
||||
"importMs": 304.7,
|
||||
"activationMs": 0.1,
|
||||
"openclawPath": "/Users/vincentkoc/GIT/_Perso/openclaw",
|
||||
"phases": [
|
||||
{
|
||||
"phase": "full",
|
||||
"pluginId": "crabpot-lifecycle-probe",
|
||||
"elapsedMs": 101,
|
||||
"source": "/tmp/crabpot-openclaw-plugin-LH7bC9/index.mjs"
|
||||
"elapsedMs": 304.7,
|
||||
"source": "/private/var/folders/1x/yqgflz6n61v5v5ynq_mtvb940000gn/T/crabpot-openclaw-plugin-kCSGRi/index.mjs"
|
||||
},
|
||||
{
|
||||
"phase": "full:register",
|
||||
"pluginId": "crabpot-lifecycle-probe",
|
||||
"elapsedMs": 0.2,
|
||||
"source": "/tmp/crabpot-openclaw-plugin-LH7bC9/index.mjs"
|
||||
"elapsedMs": 0.1,
|
||||
"source": "/var/folders/1x/yqgflz6n61v5v5ynq_mtvb940000gn/T/crabpot-openclaw-plugin-kCSGRi/index.mjs"
|
||||
}
|
||||
]
|
||||
},
|
||||
"wallMs": 1514,
|
||||
"peakRssMb": 278.2,
|
||||
"peakCpuPercent": 205,
|
||||
"cpuMsEstimate": 2704,
|
||||
"statSampleCount": 60,
|
||||
"rssSampleCount": 60,
|
||||
"cpuSampleCount": 60,
|
||||
"stderrPreview": ""
|
||||
"wallMs": 2209,
|
||||
"peakRssMb": 330.8,
|
||||
"peakCpuPercent": 137.9,
|
||||
"cpuMsEstimate": 1772,
|
||||
"statSampleCount": 6,
|
||||
"rssSampleCount": 6,
|
||||
"cpuSampleCount": 6,
|
||||
"stderrPreview": "(node:77094) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n(Use `node --trace-warnings ...` to show where the warning was created)"
|
||||
},
|
||||
{
|
||||
"index": 2,
|
||||
@ -105,32 +105,32 @@
|
||||
"pluginId": "crabpot-lifecycle-probe",
|
||||
"importPhase": "full",
|
||||
"activationPhase": "full:register",
|
||||
"importMs": 93,
|
||||
"activationMs": 0.2,
|
||||
"openclawPath": "/home/runner/work/crabpot/crabpot/openclaw",
|
||||
"importMs": 317.6,
|
||||
"activationMs": 0.1,
|
||||
"openclawPath": "/Users/vincentkoc/GIT/_Perso/openclaw",
|
||||
"phases": [
|
||||
{
|
||||
"phase": "full",
|
||||
"pluginId": "crabpot-lifecycle-probe",
|
||||
"elapsedMs": 93,
|
||||
"source": "/tmp/crabpot-openclaw-plugin-2RkFCD/index.mjs"
|
||||
"elapsedMs": 317.6,
|
||||
"source": "/private/var/folders/1x/yqgflz6n61v5v5ynq_mtvb940000gn/T/crabpot-openclaw-plugin-2brs4W/index.mjs"
|
||||
},
|
||||
{
|
||||
"phase": "full:register",
|
||||
"pluginId": "crabpot-lifecycle-probe",
|
||||
"elapsedMs": 0.2,
|
||||
"source": "/tmp/crabpot-openclaw-plugin-2RkFCD/index.mjs"
|
||||
"elapsedMs": 0.1,
|
||||
"source": "/var/folders/1x/yqgflz6n61v5v5ynq_mtvb940000gn/T/crabpot-openclaw-plugin-2brs4W/index.mjs"
|
||||
}
|
||||
]
|
||||
},
|
||||
"wallMs": 1558,
|
||||
"peakRssMb": 275.6,
|
||||
"peakCpuPercent": 205,
|
||||
"cpuMsEstimate": 2791,
|
||||
"statSampleCount": 62,
|
||||
"rssSampleCount": 62,
|
||||
"cpuSampleCount": 62,
|
||||
"stderrPreview": ""
|
||||
"wallMs": 2195,
|
||||
"peakRssMb": 348.7,
|
||||
"peakCpuPercent": 130.7,
|
||||
"cpuMsEstimate": 1838,
|
||||
"statSampleCount": 6,
|
||||
"rssSampleCount": 6,
|
||||
"cpuSampleCount": 6,
|
||||
"stderrPreview": "(node:77206) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n(Use `node --trace-warnings ...` to show where the warning was created)"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -138,25 +138,25 @@
|
||||
"runs": 3,
|
||||
"baselineRuns": 3,
|
||||
"baselineFailCount": 0,
|
||||
"p50WallMs": 1534,
|
||||
"p95WallMs": 1576,
|
||||
"p50PluginWallDeltaMs": 0,
|
||||
"p95PluginWallDeltaMs": 18,
|
||||
"p50WallMs": 2467,
|
||||
"p95WallMs": 2484,
|
||||
"p50PluginWallDeltaMs": 258,
|
||||
"p95PluginWallDeltaMs": 275,
|
||||
"openClawLifecycleCount": 3,
|
||||
"p50OpenClawImportMs": 100.7,
|
||||
"p95OpenClawImportMs": 101.5,
|
||||
"p50OpenClawActivationMs": 0.3,
|
||||
"p95OpenClawActivationMs": 0.3,
|
||||
"maxPeakRssMb": 279.7,
|
||||
"maxCpuMsEstimate": 2852,
|
||||
"maxPluginPeakRssDeltaMb": 1.5,
|
||||
"maxPluginCpuDeltaMsEstimate": 61,
|
||||
"baselineReferenceWallMs": 1558,
|
||||
"baselineReferencePeakRssMb": 278.2,
|
||||
"baselineReferenceCpuMsEstimate": 2791,
|
||||
"statSampleCount": 183,
|
||||
"rssSampleCount": 183,
|
||||
"cpuSampleCount": 183,
|
||||
"p50OpenClawImportMs": 315.9,
|
||||
"p95OpenClawImportMs": 316.1,
|
||||
"p50OpenClawActivationMs": 0.1,
|
||||
"p95OpenClawActivationMs": 0.2,
|
||||
"maxPeakRssMb": 352.2,
|
||||
"maxCpuMsEstimate": 2037,
|
||||
"maxPluginPeakRssDeltaMb": 3.5,
|
||||
"maxPluginCpuDeltaMsEstimate": 238,
|
||||
"baselineReferenceWallMs": 2209,
|
||||
"baselineReferencePeakRssMb": 348.7,
|
||||
"baselineReferenceCpuMsEstimate": 1799,
|
||||
"statSampleCount": 20,
|
||||
"rssSampleCount": 20,
|
||||
"cpuSampleCount": 20,
|
||||
"capturedCount": 6,
|
||||
"failCount": 0
|
||||
},
|
||||
@ -171,35 +171,35 @@
|
||||
"pluginId": "crabpot-lifecycle-probe",
|
||||
"importPhase": "full",
|
||||
"activationPhase": "full:register",
|
||||
"importMs": 101.5,
|
||||
"importMs": 311.6,
|
||||
"activationMs": 0.2,
|
||||
"openclawPath": "/home/runner/work/crabpot/crabpot/openclaw",
|
||||
"openclawPath": "/Users/vincentkoc/GIT/_Perso/openclaw",
|
||||
"phases": [
|
||||
{
|
||||
"phase": "full",
|
||||
"pluginId": "crabpot-lifecycle-probe",
|
||||
"elapsedMs": 101.5,
|
||||
"source": "/tmp/crabpot-openclaw-plugin-eTELwq/index.mjs"
|
||||
"elapsedMs": 311.6,
|
||||
"source": "/private/var/folders/1x/yqgflz6n61v5v5ynq_mtvb940000gn/T/crabpot-openclaw-plugin-zDINf7/index.mjs"
|
||||
},
|
||||
{
|
||||
"phase": "full:register",
|
||||
"pluginId": "crabpot-lifecycle-probe",
|
||||
"elapsedMs": 0.2,
|
||||
"source": "/tmp/crabpot-openclaw-plugin-eTELwq/index.mjs"
|
||||
"source": "/var/folders/1x/yqgflz6n61v5v5ynq_mtvb940000gn/T/crabpot-openclaw-plugin-zDINf7/index.mjs"
|
||||
}
|
||||
]
|
||||
},
|
||||
"wallMs": 1576,
|
||||
"peakRssMb": 271.5,
|
||||
"peakCpuPercent": 205,
|
||||
"cpuMsEstimate": 2852,
|
||||
"statSampleCount": 62,
|
||||
"rssSampleCount": 62,
|
||||
"cpuSampleCount": 62,
|
||||
"stderrPreview": "",
|
||||
"pluginWallDeltaMs": 18,
|
||||
"pluginPeakRssDeltaMb": 0,
|
||||
"pluginCpuDeltaMsEstimate": 61
|
||||
"wallMs": 2484,
|
||||
"peakRssMb": 352.2,
|
||||
"peakCpuPercent": 122.5,
|
||||
"cpuMsEstimate": 2037,
|
||||
"statSampleCount": 7,
|
||||
"rssSampleCount": 7,
|
||||
"cpuSampleCount": 7,
|
||||
"stderrPreview": "(node:77323) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n(Use `node --trace-warnings ...` to show where the warning was created)",
|
||||
"pluginWallDeltaMs": 275,
|
||||
"pluginPeakRssDeltaMb": 3.5,
|
||||
"pluginCpuDeltaMsEstimate": 238
|
||||
},
|
||||
{
|
||||
"index": 1,
|
||||
@ -211,35 +211,35 @@
|
||||
"pluginId": "crabpot-lifecycle-probe",
|
||||
"importPhase": "full",
|
||||
"activationPhase": "full:register",
|
||||
"importMs": 99,
|
||||
"activationMs": 0.3,
|
||||
"openclawPath": "/home/runner/work/crabpot/crabpot/openclaw",
|
||||
"importMs": 316.1,
|
||||
"activationMs": 0.1,
|
||||
"openclawPath": "/Users/vincentkoc/GIT/_Perso/openclaw",
|
||||
"phases": [
|
||||
{
|
||||
"phase": "full",
|
||||
"pluginId": "crabpot-lifecycle-probe",
|
||||
"elapsedMs": 99,
|
||||
"source": "/tmp/crabpot-openclaw-plugin-2C6Jrl/index.mjs"
|
||||
"elapsedMs": 316.1,
|
||||
"source": "/private/var/folders/1x/yqgflz6n61v5v5ynq_mtvb940000gn/T/crabpot-openclaw-plugin-I5f3C4/index.mjs"
|
||||
},
|
||||
{
|
||||
"phase": "full:register",
|
||||
"pluginId": "crabpot-lifecycle-probe",
|
||||
"elapsedMs": 0.3,
|
||||
"source": "/tmp/crabpot-openclaw-plugin-2C6Jrl/index.mjs"
|
||||
"elapsedMs": 0.1,
|
||||
"source": "/var/folders/1x/yqgflz6n61v5v5ynq_mtvb940000gn/T/crabpot-openclaw-plugin-I5f3C4/index.mjs"
|
||||
}
|
||||
]
|
||||
},
|
||||
"wallMs": 1530,
|
||||
"peakRssMb": 279.7,
|
||||
"peakCpuPercent": 206,
|
||||
"cpuMsEstimate": 2733,
|
||||
"statSampleCount": 60,
|
||||
"rssSampleCount": 60,
|
||||
"cpuSampleCount": 60,
|
||||
"stderrPreview": "",
|
||||
"pluginWallDeltaMs": 0,
|
||||
"pluginPeakRssDeltaMb": 1.5,
|
||||
"pluginCpuDeltaMsEstimate": 0
|
||||
"wallMs": 2467,
|
||||
"peakRssMb": 351.1,
|
||||
"peakCpuPercent": 133.9,
|
||||
"cpuMsEstimate": 2023,
|
||||
"statSampleCount": 7,
|
||||
"rssSampleCount": 7,
|
||||
"cpuSampleCount": 7,
|
||||
"stderrPreview": "(node:77486) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n(Use `node --trace-warnings ...` to show where the warning was created)",
|
||||
"pluginWallDeltaMs": 258,
|
||||
"pluginPeakRssDeltaMb": 2.4,
|
||||
"pluginCpuDeltaMsEstimate": 224
|
||||
},
|
||||
{
|
||||
"index": 2,
|
||||
@ -251,34 +251,34 @@
|
||||
"pluginId": "crabpot-lifecycle-probe",
|
||||
"importPhase": "full",
|
||||
"activationPhase": "full:register",
|
||||
"importMs": 100.7,
|
||||
"activationMs": 0.3,
|
||||
"openclawPath": "/home/runner/work/crabpot/crabpot/openclaw",
|
||||
"importMs": 315.9,
|
||||
"activationMs": 0.1,
|
||||
"openclawPath": "/Users/vincentkoc/GIT/_Perso/openclaw",
|
||||
"phases": [
|
||||
{
|
||||
"phase": "full",
|
||||
"pluginId": "crabpot-lifecycle-probe",
|
||||
"elapsedMs": 100.7,
|
||||
"source": "/tmp/crabpot-openclaw-plugin-cSNOy7/index.mjs"
|
||||
"elapsedMs": 315.9,
|
||||
"source": "/private/var/folders/1x/yqgflz6n61v5v5ynq_mtvb940000gn/T/crabpot-openclaw-plugin-th2Hpp/index.mjs"
|
||||
},
|
||||
{
|
||||
"phase": "full:register",
|
||||
"pluginId": "crabpot-lifecycle-probe",
|
||||
"elapsedMs": 0.3,
|
||||
"source": "/tmp/crabpot-openclaw-plugin-cSNOy7/index.mjs"
|
||||
"elapsedMs": 0.1,
|
||||
"source": "/var/folders/1x/yqgflz6n61v5v5ynq_mtvb940000gn/T/crabpot-openclaw-plugin-th2Hpp/index.mjs"
|
||||
}
|
||||
]
|
||||
},
|
||||
"wallMs": 1534,
|
||||
"peakRssMb": 276.4,
|
||||
"peakCpuPercent": 204,
|
||||
"cpuMsEstimate": 2716,
|
||||
"statSampleCount": 61,
|
||||
"rssSampleCount": 61,
|
||||
"cpuSampleCount": 61,
|
||||
"stderrPreview": "",
|
||||
"wallMs": 2151,
|
||||
"peakRssMb": 351.6,
|
||||
"peakCpuPercent": 140.6,
|
||||
"cpuMsEstimate": 1757,
|
||||
"statSampleCount": 6,
|
||||
"rssSampleCount": 6,
|
||||
"cpuSampleCount": 6,
|
||||
"stderrPreview": "(node:77581) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n(Use `node --trace-warnings ...` to show where the warning was created)",
|
||||
"pluginWallDeltaMs": 0,
|
||||
"pluginPeakRssDeltaMb": 0,
|
||||
"pluginPeakRssDeltaMb": 2.9,
|
||||
"pluginCpuDeltaMsEstimate": 0
|
||||
}
|
||||
]
|
||||
|
||||
@ -11,25 +11,25 @@ Entrypoint: test/fixtures/lazy-import-plugin.mjs
|
||||
| runs | 3 |
|
||||
| baselineRuns | 3 |
|
||||
| baselineFailCount | 0 |
|
||||
| p50WallMs | 1534 |
|
||||
| p95WallMs | 1576 |
|
||||
| p50PluginWallDeltaMs | 0 |
|
||||
| p95PluginWallDeltaMs | 18 |
|
||||
| maxPluginPeakRssDeltaMb | 1.5 MB |
|
||||
| maxPluginCpuDeltaMsEstimate | 61 ms |
|
||||
| p50WallMs | 2467 |
|
||||
| p95WallMs | 2484 |
|
||||
| p50PluginWallDeltaMs | 258 |
|
||||
| p95PluginWallDeltaMs | 275 |
|
||||
| maxPluginPeakRssDeltaMb | 3.5 MB |
|
||||
| maxPluginCpuDeltaMsEstimate | 238 ms |
|
||||
| openClawLifecycleCount | 3 |
|
||||
| p50OpenClawImportMs | 100.7 ms |
|
||||
| p95OpenClawImportMs | 101.5 ms |
|
||||
| p50OpenClawActivationMs | 0.3 ms |
|
||||
| p95OpenClawActivationMs | 0.3 ms |
|
||||
| maxPeakRssMb | 279.7 MB |
|
||||
| maxCpuMsEstimate | 2852 ms |
|
||||
| baselineReferenceWallMs | 1558 ms |
|
||||
| baselineReferencePeakRssMb | 278.2 MB |
|
||||
| baselineReferenceCpuMsEstimate | 2791 ms |
|
||||
| statSampleCount | 183 |
|
||||
| rssSampleCount | 183 |
|
||||
| cpuSampleCount | 183 |
|
||||
| p50OpenClawImportMs | 315.9 ms |
|
||||
| p95OpenClawImportMs | 316.1 ms |
|
||||
| p50OpenClawActivationMs | 0.1 ms |
|
||||
| p95OpenClawActivationMs | 0.2 ms |
|
||||
| maxPeakRssMb | 352.2 MB |
|
||||
| maxCpuMsEstimate | 2037 ms |
|
||||
| baselineReferenceWallMs | 2209 ms |
|
||||
| baselineReferencePeakRssMb | 348.7 MB |
|
||||
| baselineReferenceCpuMsEstimate | 1799 ms |
|
||||
| statSampleCount | 20 |
|
||||
| rssSampleCount | 20 |
|
||||
| cpuSampleCount | 20 |
|
||||
| capturedCount | 6 |
|
||||
| failCount | 0 |
|
||||
|
||||
@ -40,19 +40,19 @@ Entrypoint: test/fixtures/lazy-import-plugin.mjs
|
||||
| mode | minimal-plugin-capture |
|
||||
| runs | 3 |
|
||||
| entrypoint | .crabpot/import-loop/baseline-plugin.mjs |
|
||||
| referenceWallMs | 1558 ms |
|
||||
| referencePeakRssMb | 278.2 MB |
|
||||
| referenceCpuMsEstimate | 2791 ms |
|
||||
| maxWallMs | 2132 ms |
|
||||
| maxPeakRssMb | 300.1 MB |
|
||||
| maxCpuMsEstimate | 3584 ms |
|
||||
| statSampleCount | 202 |
|
||||
| referenceWallMs | 2209 ms |
|
||||
| referencePeakRssMb | 348.7 MB |
|
||||
| referenceCpuMsEstimate | 1799 ms |
|
||||
| maxWallMs | 2442 ms |
|
||||
| maxPeakRssMb | 351.8 MB |
|
||||
| maxCpuMsEstimate | 1838 ms |
|
||||
| statSampleCount | 19 |
|
||||
| failCount | 0 |
|
||||
|
||||
## Samples
|
||||
|
||||
| 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 | 101.5 ms | 0.2 ms | 18 ms | 0 MB | 61 ms | 1576 ms | 271.5 MB | 2852 ms | 62/62 | 0 |
|
||||
| 1 | captured | 2 | 99 ms | 0.3 ms | 0 ms | 1.5 MB | 0 ms | 1530 ms | 279.7 MB | 2733 ms | 60/60 | 0 |
|
||||
| 2 | captured | 2 | 100.7 ms | 0.3 ms | 0 ms | 0 MB | 0 ms | 1534 ms | 276.4 MB | 2716 ms | 61/61 | 0 |
|
||||
| 0 | captured | 2 | 311.6 ms | 0.2 ms | 275 ms | 3.5 MB | 238 ms | 2484 ms | 352.2 MB | 2037 ms | 7/7 | 0 |
|
||||
| 1 | captured | 2 | 316.1 ms | 0.1 ms | 258 ms | 2.4 MB | 224 ms | 2467 ms | 351.1 MB | 2023 ms | 7/7 | 0 |
|
||||
| 2 | captured | 2 | 315.9 ms | 0.1 ms | 0 ms | 2.9 MB | 0 ms | 2151 ms | 351.6 MB | 1757 ms | 6/6 | 0 |
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -8,13 +8,13 @@
|
||||
"container"
|
||||
],
|
||||
"summary": {
|
||||
"fixtureCount": 32,
|
||||
"entrypointCount": 39,
|
||||
"fixtureCount": 33,
|
||||
"entrypointCount": 40,
|
||||
"tsLoaderEntrypointCount": 21,
|
||||
"jitiAlternativeCount": 21,
|
||||
"lazyImportProbeCount": 39,
|
||||
"lazyImportProbeCount": 40,
|
||||
"portabilityFindingCount": 56,
|
||||
"coveredPortabilityFindingCount": 175,
|
||||
"coveredPortabilityFindingCount": 179,
|
||||
"windowsRiskStepCount": 14,
|
||||
"macosRiskStepCount": 14,
|
||||
"linuxRiskStepCount": 14,
|
||||
@ -305,6 +305,20 @@
|
||||
"captureUsesTsx": false,
|
||||
"syntheticUsesTsx": false
|
||||
},
|
||||
{
|
||||
"fixture": "nemoclaw",
|
||||
"id": "cold-import.extension:nemoclaw:plugins-nemoclaw-nemoclaw-dist-index-js",
|
||||
"status": "build-required",
|
||||
"entrypoint": "plugins/nemoclaw/nemoclaw/dist/index.js",
|
||||
"packageManager": "npm",
|
||||
"loaderSource": "native-node",
|
||||
"loaderPrimary": "node",
|
||||
"loaderAlternatives": [],
|
||||
"capturePlanned": true,
|
||||
"syntheticProbePlanned": true,
|
||||
"captureUsesTsx": false,
|
||||
"syntheticUsesTsx": false
|
||||
},
|
||||
{
|
||||
"fixture": "memory-tencentdb",
|
||||
"id": "cold-import.extension:memory-tencentdb:plugins-memory-tencentdb-crabpot-package-index-ts",
|
||||
@ -548,7 +562,7 @@
|
||||
{
|
||||
"fixture": "codex-app-server",
|
||||
"id": "cold-import.extension:codex-app-server:plugins-codex-app-server-index-ts",
|
||||
"status": "sdk-alias-required",
|
||||
"status": "ts-loader-required",
|
||||
"entrypoint": "plugins/codex-app-server/index.ts",
|
||||
"packageManager": "pnpm",
|
||||
"loaderSource": "typescript-source",
|
||||
@ -2583,6 +2597,60 @@
|
||||
"posix-env-prefix"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fixture": "nemoclaw",
|
||||
"entrypoint": "cold-import.extension:nemoclaw:plugins-nemoclaw-nemoclaw-dist-index-js",
|
||||
"kind": "prepare",
|
||||
"command": "mkdir -p .crabpot/workspaces/nemoclaw && rsync -a --delete plugins/nemoclaw/nemoclaw/ .crabpot/workspaces/nemoclaw/",
|
||||
"coverage": "covered by Crabpot structured executor",
|
||||
"platforms": [
|
||||
"container",
|
||||
"windows"
|
||||
],
|
||||
"riskCodes": [
|
||||
"posix-mkdir",
|
||||
"rsync-required"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fixture": "nemoclaw",
|
||||
"entrypoint": "cold-import.extension:nemoclaw:plugins-nemoclaw-nemoclaw-dist-index-js",
|
||||
"kind": "prepare-artifacts",
|
||||
"command": "mkdir -p .crabpot/results/nemoclaw",
|
||||
"coverage": "covered by Crabpot structured executor",
|
||||
"platforms": [
|
||||
"windows"
|
||||
],
|
||||
"riskCodes": [
|
||||
"posix-mkdir"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fixture": "nemoclaw",
|
||||
"entrypoint": "cold-import.extension:nemoclaw:plugins-nemoclaw-nemoclaw-dist-index-js",
|
||||
"kind": "capture",
|
||||
"command": "CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/run-cold-import-capture.mjs ./dist/index.js --mock-sdk --output ../../results/nemoclaw/cold-import-extension-nemoclaw-plugins-nemoclaw-nemoclaw-dist-index-js.capture.json",
|
||||
"coverage": "covered by Crabpot structured executor",
|
||||
"platforms": [
|
||||
"windows"
|
||||
],
|
||||
"riskCodes": [
|
||||
"posix-env-prefix"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fixture": "nemoclaw",
|
||||
"entrypoint": "cold-import.extension:nemoclaw:plugins-nemoclaw-nemoclaw-dist-index-js",
|
||||
"kind": "synthetic-probe",
|
||||
"command": "CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/synthetic-probes.mjs --entrypoint ./dist/index.js --mock-sdk --output ../../results/nemoclaw/cold-import-extension-nemoclaw-plugins-nemoclaw-nemoclaw-dist-index-js.synthetic.json",
|
||||
"coverage": "covered by Crabpot structured executor",
|
||||
"platforms": [
|
||||
"windows"
|
||||
],
|
||||
"riskCodes": [
|
||||
"posix-env-prefix"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fixture": "memory-tencentdb",
|
||||
"entrypoint": "cold-import.extension:memory-tencentdb:plugins-memory-tencentdb-crabpot-package-index-ts",
|
||||
|
||||
@ -8,13 +8,13 @@ Targets: linux, macos, windows, container
|
||||
|
||||
| Metric | Value |
|
||||
| ------------------------------ | ----- |
|
||||
| fixtureCount | 32 |
|
||||
| entrypointCount | 39 |
|
||||
| fixtureCount | 33 |
|
||||
| entrypointCount | 40 |
|
||||
| tsLoaderEntrypointCount | 21 |
|
||||
| jitiAlternativeCount | 21 |
|
||||
| lazyImportProbeCount | 39 |
|
||||
| lazyImportProbeCount | 40 |
|
||||
| portabilityFindingCount | 56 |
|
||||
| coveredPortabilityFindingCount | 175 |
|
||||
| coveredPortabilityFindingCount | 179 |
|
||||
| windowsRiskStepCount | 14 |
|
||||
| macosRiskStepCount | 14 |
|
||||
| linuxRiskStepCount | 14 |
|
||||
@ -43,6 +43,7 @@ Targets: linux, macos, windows, container
|
||||
| kitchen-sink | ready | node | - | no | no | plugins/kitchen-sink/src/index.js |
|
||||
| kitchen-sink | ready | node | - | no | no | plugins/kitchen-sink/src/index.js |
|
||||
| kitchen-sink | ready | node | - | no | no | plugins/kitchen-sink/src/setup.js |
|
||||
| nemoclaw | build-required | node | - | no | no | plugins/nemoclaw/nemoclaw/dist/index.js |
|
||||
| memory-tencentdb | ts-loader-required | tsx | jiti | yes | yes | plugins/memory-tencentdb/.crabpot-package/index.ts |
|
||||
| ddingtalk | ts-loader-required | tsx | jiti | yes | yes | plugins/ddingtalk/index.ts |
|
||||
| dingtalk-connector | build-required | node | - | no | no | plugins/dingtalk-connector/dist/index.mjs |
|
||||
@ -59,7 +60,7 @@ Targets: linux, macos, windows, container
|
||||
| memos-cloud | review-required | node | - | no | no | plugins/memos-cloud/index.js |
|
||||
| clawmetry | sdk-alias-required | tsx | jiti | yes | yes | plugins/clawmetry/clawhub-plugin/index.ts |
|
||||
| clawmetry | sdk-alias-required | node | - | no | no | plugins/clawmetry/clawhub-plugin/dist/index.js |
|
||||
| codex-app-server | sdk-alias-required | tsx | jiti | yes | yes | plugins/codex-app-server/index.ts |
|
||||
| codex-app-server | ts-loader-required | tsx | jiti | yes | yes | plugins/codex-app-server/index.ts |
|
||||
| web-search-plus | ts-loader-required | tsx | jiti | yes | yes | plugins/web-search-plus/index.ts |
|
||||
| apify | ts-loader-required | tsx | jiti | yes | yes | plugins/apify/src/index.ts |
|
||||
| inworld-tts | ts-loader-required | tsx | jiti | yes | yes | plugins/inworld-tts/index.ts |
|
||||
@ -213,6 +214,10 @@ Targets: linux, macos, windows, container
|
||||
| kitchen-sink | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
|
||||
| kitchen-sink | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
|
||||
| kitchen-sink | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
|
||||
| nemoclaw | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
|
||||
| nemoclaw | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
|
||||
| nemoclaw | capture | windows | posix-env-prefix | covered by Crabpot structured executor |
|
||||
| nemoclaw | synthetic-probe | windows | posix-env-prefix | covered by Crabpot structured executor |
|
||||
| memory-tencentdb | prepare | container, windows | posix-mkdir, rsync-required | covered by Crabpot structured executor |
|
||||
| memory-tencentdb | prepare-artifacts | windows | posix-mkdir | covered by Crabpot structured executor |
|
||||
| memory-tencentdb | audit | windows | posix-null-failure, shell-redirection | covered by Crabpot structured executor |
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -8,16 +8,16 @@ Samples per command: 3
|
||||
| Metric | Value |
|
||||
| ---------------------- | ------------------ |
|
||||
| Commands | 9 |
|
||||
| P50 wall time | 547 ms |
|
||||
| Command P95 wall time | 570 ms |
|
||||
| P50 wall time | 2072 ms |
|
||||
| Command P95 wall time | 8684 ms |
|
||||
| Wall time basis | command-median-p95 |
|
||||
| Profile samples | 27 |
|
||||
| RSS samples | 496 |
|
||||
| CPU samples | 496 |
|
||||
| Max peak RSS | 88.3 MB |
|
||||
| Max RSS delta | 59.6 MB |
|
||||
| Max CPU estimate | 611 ms |
|
||||
| Max harness heap delta | 2.1 MB |
|
||||
| RSS samples | 181 |
|
||||
| CPU samples | 181 |
|
||||
| Max peak RSS | 80.5 MB |
|
||||
| Max RSS delta | 80.2 MB |
|
||||
| Max CPU estimate | 756 ms |
|
||||
| Max harness heap delta | 3.1 MB |
|
||||
|
||||
## Target OpenClaw Registry Surface
|
||||
|
||||
@ -25,11 +25,11 @@ Samples per command: 3
|
||||
| ---------------------- | ---------- |
|
||||
| status | ok |
|
||||
| configuredPath | ./openclaw |
|
||||
| compatRecords | 56 |
|
||||
| hookNames | 34 |
|
||||
| apiRegistrars | 48 |
|
||||
| compatRecords | 61 |
|
||||
| hookNames | 35 |
|
||||
| apiRegistrars | 49 |
|
||||
| capturedRegistrars | 26 |
|
||||
| sdkExports | 291 |
|
||||
| sdkExports | 294 |
|
||||
| manifestFields | 35 |
|
||||
| manifestContractFields | 17 |
|
||||
|
||||
@ -37,38 +37,38 @@ Samples per command: 3
|
||||
|
||||
| Metric | Value |
|
||||
| --------------------- | ----- |
|
||||
| fixtures | 32 |
|
||||
| sourceFiles | 979 |
|
||||
| observedHooks | 82 |
|
||||
| observedRegistrations | 112 |
|
||||
| fixtures | 33 |
|
||||
| sourceFiles | 998 |
|
||||
| observedHooks | 84 |
|
||||
| observedRegistrations | 114 |
|
||||
| observedSdkImports | 350 |
|
||||
| contractProbes | 170 |
|
||||
| issueFindings | 222 |
|
||||
| contractProbes | 175 |
|
||||
| issueFindings | 181 |
|
||||
|
||||
## Boot And Memory Samples
|
||||
|
||||
| ID | Label | Median wall | Max wall | Max peak RSS | Max RSS delta | CPU estimate | Heap delta | RSS/CPU samples | Exit codes |
|
||||
| ---------------------- | ----------------------------------------------- | ----------- | -------- | ------------ | ------------- | ------------ | ---------- | --------------- | ---------- |
|
||||
| node-boot | Node boot | 31 ms | 32 ms | 30.2 MB | 0 MB | 0 ms | 0.4 MB | 3/3 | 0 |
|
||||
| fixture-inspection | Fixture inspection | 474 ms | 480 ms | 85.6 MB | 56.9 MB | 490 ms | 1.9 MB | 56/56 | 0 |
|
||||
| compat-report-registry | Compatibility report plus target registry parse | 547 ms | 553 ms | 84.9 MB | 54.9 MB | 555 ms | 2.1 MB | 64/64 | 0 |
|
||||
| contract-capture | Contract capture inventory | 547 ms | 561 ms | 85.3 MB | 56 MB | 552 ms | 2.1 MB | 64/64 | 0 |
|
||||
| synthetic-probe-plan | Synthetic probe plan | 559 ms | 568 ms | 85.1 MB | 55.3 MB | 569 ms | 2 MB | 65/65 | 0 |
|
||||
| cold-import-readiness | Cold import readiness | 554 ms | 560 ms | 88.3 MB | 59.6 MB | 582 ms | 1.9 MB | 66/66 | 0 |
|
||||
| workspace-plan | Workspace execution plan | 570 ms | 570 ms | 88.1 MB | 59.4 MB | 594 ms | 2 MB | 66/66 | 0 |
|
||||
| platform-probes | Platform and loader probes | 570 ms | 598 ms | 86.2 MB | 57 MB | 611 ms | 1.9 MB | 67/67 | 0 |
|
||||
| import-loop-profile | Repeated cold import capture loop | 375 ms | 378 ms | 60.2 MB | 31.4 MB | 180 ms | 1.4 MB | 45/45 | 0 |
|
||||
| node-boot | Node boot | 793 ms | 809 ms | 0.3 MB | 0 MB | 0 ms | 1.1 MB | 3/3 | 0 |
|
||||
| fixture-inspection | Fixture inspection | 2891 ms | 3373 ms | 80.5 MB | 80.2 MB | 756 ms | 3.1 MB | 24/24 | 0 |
|
||||
| compat-report-registry | Compatibility report plus target registry parse | 1582 ms | 1924 ms | 74.2 MB | 73.8 MB | 335 ms | 1.8 MB | 13/13 | 0 |
|
||||
| contract-capture | Contract capture inventory | 2072 ms | 2145 ms | 79.3 MB | 79 MB | 304 ms | 2 MB | 17/17 | 0 |
|
||||
| synthetic-probe-plan | Synthetic probe plan | 3264 ms | 3282 ms | 78.7 MB | 78.4 MB | 341 ms | 3 MB | 27/27 | 0 |
|
||||
| cold-import-readiness | Cold import readiness | 1605 ms | 1644 ms | 76.3 MB | 76.1 MB | 308 ms | 0.7 MB | 12/12 | 0 |
|
||||
| workspace-plan | Workspace execution plan | 1623 ms | 1635 ms | 78.3 MB | 78.1 MB | 389 ms | -0.1 MB | 11/11 | 0 |
|
||||
| platform-probes | Platform and loader probes | 2708 ms | 3496 ms | 74.8 MB | 74.6 MB | 261 ms | 0 MB | 24/24 | 0 |
|
||||
| import-loop-profile | Repeated cold import capture loop | 8684 ms | 8922 ms | 60.7 MB | 60.5 MB | 224 ms | 0.4 MB | 50/50 | 0 |
|
||||
|
||||
## Category Rollups
|
||||
|
||||
| Category | Commands | P50 wall | P95 wall | Max peak RSS | CPU estimate | RSS/CPU samples | Command IDs |
|
||||
| ---------------- | -------- | -------- | -------- | ------------ | ------------ | --------------- | ---------------------- |
|
||||
| baseline | 1 | 31 ms | 32 ms | 30.2 MB | 0 ms | 3/3 | node-boot |
|
||||
| fixture-scan | 1 | 474 ms | 480 ms | 85.6 MB | 490 ms | 56/56 | fixture-inspection |
|
||||
| target-registry | 1 | 547 ms | 553 ms | 84.9 MB | 555 ms | 64/64 | compat-report-registry |
|
||||
| contract-capture | 1 | 547 ms | 561 ms | 85.3 MB | 552 ms | 64/64 | contract-capture |
|
||||
| synthetic-probes | 1 | 559 ms | 568 ms | 85.1 MB | 569 ms | 65/65 | synthetic-probe-plan |
|
||||
| cold-import | 1 | 554 ms | 560 ms | 88.3 MB | 582 ms | 66/66 | cold-import-readiness |
|
||||
| workspace-plan | 1 | 570 ms | 570 ms | 88.1 MB | 594 ms | 66/66 | workspace-plan |
|
||||
| platform-probes | 1 | 570 ms | 598 ms | 86.2 MB | 611 ms | 67/67 | platform-probes |
|
||||
| import-loop | 1 | 375 ms | 378 ms | 60.2 MB | 180 ms | 45/45 | import-loop-profile |
|
||||
| baseline | 1 | 793 ms | 809 ms | 0.3 MB | 0 ms | 3/3 | node-boot |
|
||||
| fixture-scan | 1 | 2891 ms | 3373 ms | 80.5 MB | 756 ms | 24/24 | fixture-inspection |
|
||||
| target-registry | 1 | 1582 ms | 1924 ms | 74.2 MB | 335 ms | 13/13 | compat-report-registry |
|
||||
| contract-capture | 1 | 2072 ms | 2145 ms | 79.3 MB | 304 ms | 17/17 | contract-capture |
|
||||
| synthetic-probes | 1 | 3264 ms | 3282 ms | 78.7 MB | 341 ms | 27/27 | synthetic-probe-plan |
|
||||
| cold-import | 1 | 1605 ms | 1644 ms | 76.3 MB | 308 ms | 12/12 | cold-import-readiness |
|
||||
| workspace-plan | 1 | 1623 ms | 1635 ms | 78.3 MB | 389 ms | 11/11 | workspace-plan |
|
||||
| platform-probes | 1 | 2708 ms | 3496 ms | 74.8 MB | 261 ms | 24/24 | platform-probes |
|
||||
| import-loop | 1 | 8684 ms | 8922 ms | 60.7 MB | 224 ms | 50/50 | import-loop-profile |
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
{
|
||||
"generatedAt": "deterministic",
|
||||
"summary": {
|
||||
"fixtureCount": 32,
|
||||
"probeCount": 288,
|
||||
"hookProbeCount": 86,
|
||||
"registrationProbeCount": 202,
|
||||
"readyCount": 288,
|
||||
"fixtureCount": 33,
|
||||
"probeCount": 292,
|
||||
"hookProbeCount": 88,
|
||||
"registrationProbeCount": 204,
|
||||
"readyCount": 292,
|
||||
"blockedCount": 0,
|
||||
"directExecutionCount": 111,
|
||||
"directExecutionCount": 112,
|
||||
"optInExecutionCount": 25,
|
||||
"metadataOnlyCount": 66
|
||||
"metadataOnlyCount": 67
|
||||
},
|
||||
"probes": [
|
||||
{
|
||||
@ -1833,6 +1833,56 @@
|
||||
},
|
||||
"source": "plugins/kitchen-sink/src/generated-hooks.js:36"
|
||||
},
|
||||
{
|
||||
"id": "hook.before_agent_start:nemoclaw:plugins-nemoclaw-nemoclaw-src-runtime-context-ts-474",
|
||||
"fixture": "nemoclaw",
|
||||
"kind": "hook",
|
||||
"seam": "before_agent_start",
|
||||
"status": "ready",
|
||||
"blocker": null,
|
||||
"assertions": [
|
||||
"legacy startup hook payload is accepted",
|
||||
"migration metadata can map to prompt/model hooks"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"agentId": "agent-fixture",
|
||||
"runId": "run-fixture",
|
||||
"config": {
|
||||
"source": "plugin-inspector"
|
||||
}
|
||||
},
|
||||
"syntheticContext": {
|
||||
"runId": "run-fixture",
|
||||
"agentId": "agent-fixture",
|
||||
"sessionId": "session-fixture"
|
||||
},
|
||||
"source": "plugins/nemoclaw/nemoclaw/src/runtime-context.ts:474"
|
||||
},
|
||||
{
|
||||
"id": "hook.before_tool_call:nemoclaw:plugins-nemoclaw-nemoclaw-src-index-ts-384",
|
||||
"fixture": "nemoclaw",
|
||||
"kind": "hook",
|
||||
"seam": "before_tool_call",
|
||||
"status": "ready",
|
||||
"blocker": null,
|
||||
"assertions": [
|
||||
"block/allow return shapes are preserved",
|
||||
"terminal and approval metadata are present"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"runId": "run-fixture",
|
||||
"toolName": "fixture_tool",
|
||||
"params": {},
|
||||
"toolCallId": "call-fixture"
|
||||
},
|
||||
"syntheticContext": {
|
||||
"runId": "run-fixture",
|
||||
"agentId": "agent-fixture",
|
||||
"sessionId": "session-fixture",
|
||||
"toolName": "fixture_tool"
|
||||
},
|
||||
"source": "plugins/nemoclaw/nemoclaw/src/index.ts:384"
|
||||
},
|
||||
{
|
||||
"id": "hook.agent_end:memory-tencentdb:plugins-memory-tencentdb-crabpot-package-index-ts-820",
|
||||
"fixture": "memory-tencentdb",
|
||||
@ -5413,6 +5463,53 @@
|
||||
},
|
||||
"source": "plugins/kitchen-sink/src/kitchen-runtime.js:88"
|
||||
},
|
||||
{
|
||||
"id": "registration.registerCommand:nemoclaw:plugins-nemoclaw-nemoclaw-src-index-ts-336",
|
||||
"fixture": "nemoclaw",
|
||||
"kind": "registration",
|
||||
"seam": "registerCommand",
|
||||
"status": "ready",
|
||||
"blocker": null,
|
||||
"assertions": [
|
||||
"command id is stable",
|
||||
"interactive command payload is captured"
|
||||
],
|
||||
"syntheticArguments": [
|
||||
{
|
||||
"name": "fixture-command",
|
||||
"handler": "function"
|
||||
}
|
||||
],
|
||||
"execution": {
|
||||
"mode": "direct",
|
||||
"callableProperties": [
|
||||
"handler",
|
||||
"run",
|
||||
"execute"
|
||||
]
|
||||
},
|
||||
"source": "plugins/nemoclaw/nemoclaw/src/index.ts:336"
|
||||
},
|
||||
{
|
||||
"id": "registration.registerProvider:nemoclaw:plugins-nemoclaw-nemoclaw-src-index-ts-372",
|
||||
"fixture": "nemoclaw",
|
||||
"kind": "registration",
|
||||
"seam": "registerProvider",
|
||||
"status": "ready",
|
||||
"blocker": null,
|
||||
"assertions": [
|
||||
"registration arguments are captured"
|
||||
],
|
||||
"syntheticArguments": [
|
||||
{}
|
||||
],
|
||||
"execution": {
|
||||
"mode": "metadata-only",
|
||||
"callableProperties": [],
|
||||
"reason": "provider descriptors are captured as registration metadata before provider runtime execution"
|
||||
},
|
||||
"source": "plugins/nemoclaw/nemoclaw/src/index.ts:372"
|
||||
},
|
||||
{
|
||||
"id": "registration.registerCli:memory-tencentdb:plugins-memory-tencentdb-crabpot-package-index-ts-957",
|
||||
"fixture": "memory-tencentdb",
|
||||
|
||||
@ -6,15 +6,15 @@ Generated: deterministic
|
||||
|
||||
| Metric | Value |
|
||||
| ------------------- | ----- |
|
||||
| Fixtures | 32 |
|
||||
| Probes | 288 |
|
||||
| Hook probes | 86 |
|
||||
| Registration probes | 202 |
|
||||
| Ready | 288 |
|
||||
| Fixtures | 33 |
|
||||
| Probes | 292 |
|
||||
| Hook probes | 88 |
|
||||
| Registration probes | 204 |
|
||||
| Ready | 292 |
|
||||
| Blocked | 0 |
|
||||
| Direct execution | 111 |
|
||||
| Direct execution | 112 |
|
||||
| Opt-in execution | 25 |
|
||||
| Metadata-only | 66 |
|
||||
| Metadata-only | 67 |
|
||||
|
||||
## Probe Inventory
|
||||
|
||||
@ -97,6 +97,8 @@ Generated: deterministic
|
||||
| kitchen-sink | hook | subagent_spawned | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:34 | spawn payload is preserved; parent/subagent metadata are present |
|
||||
| kitchen-sink | hook | subagent_spawning | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:35 | hook payload and return value are captured |
|
||||
| kitchen-sink | hook | tool_result_persist | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:36 | hook payload and return value are captured |
|
||||
| nemoclaw | hook | before_agent_start | ready | hook-direct | plugins/nemoclaw/nemoclaw/src/runtime-context.ts:474 | legacy startup hook payload is accepted; migration metadata can map to prompt/model hooks |
|
||||
| nemoclaw | hook | before_tool_call | ready | hook-direct | plugins/nemoclaw/nemoclaw/src/index.ts:384 | block/allow return shapes are preserved; terminal and approval metadata are present |
|
||||
| memory-tencentdb | hook | agent_end | ready | hook-direct | plugins/memory-tencentdb/.crabpot-package/index.ts:820 | final conversation payload is redacted as expected; agent id and run metadata are present |
|
||||
| memory-tencentdb | hook | before_prompt_build | ready | hook-direct | plugins/memory-tencentdb/.crabpot-package/index.ts:464 | prompt mutation result is preserved; agent and conversation metadata are present |
|
||||
| memory-tencentdb | hook | gateway_stop | ready | hook-direct | plugins/memory-tencentdb/.crabpot-package/index.ts:745 | hook payload and return value are captured |
|
||||
@ -233,6 +235,8 @@ Generated: deterministic
|
||||
| kitchen-sink | registration | registerWebFetchProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:91 | registration arguments are captured |
|
||||
| kitchen-sink | registration | registerWebSearchProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:44 | registration arguments are captured |
|
||||
| kitchen-sink | registration | registerWebSearchProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:88 | registration arguments are captured |
|
||||
| nemoclaw | registration | registerCommand | ready | direct | plugins/nemoclaw/nemoclaw/src/index.ts:336 | command id is stable; interactive command payload is captured |
|
||||
| nemoclaw | registration | registerProvider | ready | metadata-only | plugins/nemoclaw/nemoclaw/src/index.ts:372 | registration arguments are captured |
|
||||
| memory-tencentdb | registration | registerCli | ready | direct | plugins/memory-tencentdb/.crabpot-package/index.ts:957 | command name is stable; argument schema is captured |
|
||||
| memory-tencentdb | registration | registerTool | ready | direct | plugins/memory-tencentdb/.crabpot-package/index.ts:268 | tool name is stable; input schema is captured; result shape metadata is captured |
|
||||
| memory-tencentdb | registration | registerTool | ready | direct | plugins/memory-tencentdb/.crabpot-package/index.ts:365 | tool name is stable; input schema is captured; result shape metadata is captured |
|
||||
|
||||
@ -10,19 +10,19 @@
|
||||
"configuredPath": "./openclaw"
|
||||
},
|
||||
"summary": {
|
||||
"fixtureCount": 32,
|
||||
"entrypointCount": 39,
|
||||
"fixtureCount": 33,
|
||||
"entrypointCount": 40,
|
||||
"installStepCount": 19,
|
||||
"auditStepCount": 19,
|
||||
"buildStepCount": 10,
|
||||
"artifactStepCount": 39,
|
||||
"captureStepCount": 39,
|
||||
"syntheticProbeStepCount": 39,
|
||||
"buildStepCount": 11,
|
||||
"artifactStepCount": 40,
|
||||
"captureStepCount": 40,
|
||||
"syntheticProbeStepCount": 40,
|
||||
"targetOpenClawLinkStepCount": 27,
|
||||
"tsLoaderEntrypointCount": 21,
|
||||
"jitiAlternativeCount": 21,
|
||||
"missingBuildScriptCount": 0,
|
||||
"sdkAliasRequiredCount": 6
|
||||
"sdkAliasRequiredCount": 5
|
||||
},
|
||||
"fixtures": [
|
||||
{
|
||||
@ -1453,6 +1453,73 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "nemoclaw",
|
||||
"entrypoints": [
|
||||
{
|
||||
"id": "cold-import.extension:nemoclaw:plugins-nemoclaw-nemoclaw-dist-index-js",
|
||||
"fixture": "nemoclaw",
|
||||
"packagePath": "plugins/nemoclaw/nemoclaw/package.json",
|
||||
"packageName": "nemoclaw",
|
||||
"entrypoint": "plugins/nemoclaw/nemoclaw/dist/index.js",
|
||||
"status": "build-required",
|
||||
"packageManager": "npm",
|
||||
"lockfile": "plugins/nemoclaw/nemoclaw/package-lock.json",
|
||||
"loaderStrategy": {
|
||||
"source": "native-node",
|
||||
"primary": "node",
|
||||
"alternatives": [],
|
||||
"reason": "entrypoint extension can be loaded by Node without a TypeScript source loader"
|
||||
},
|
||||
"requiredCapabilities": [
|
||||
"build",
|
||||
"capture-shim",
|
||||
"synthetic-probes"
|
||||
],
|
||||
"blockers": [
|
||||
{
|
||||
"code": "build-required",
|
||||
"message": "entrypoint points at build output that is absent in the fixture checkout",
|
||||
"evidence": "plugins/nemoclaw/nemoclaw/dist/index.js"
|
||||
}
|
||||
],
|
||||
"steps": [
|
||||
{
|
||||
"kind": "prepare",
|
||||
"command": "mkdir -p .crabpot/workspaces/nemoclaw && rsync -a --delete plugins/nemoclaw/nemoclaw/ .crabpot/workspaces/nemoclaw/",
|
||||
"cwd": ".",
|
||||
"reason": "copy fixture package into an isolated mutable workspace"
|
||||
},
|
||||
{
|
||||
"kind": "prepare-artifacts",
|
||||
"command": "mkdir -p .crabpot/results/nemoclaw",
|
||||
"cwd": ".",
|
||||
"reason": "create a stable result directory for capture and synthetic probe artifacts"
|
||||
},
|
||||
{
|
||||
"kind": "build",
|
||||
"command": "npm run build",
|
||||
"cwd": ".crabpot/workspaces/nemoclaw",
|
||||
"reason": "produce missing OpenClaw build entrypoint"
|
||||
},
|
||||
{
|
||||
"kind": "capture",
|
||||
"command": "CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/run-cold-import-capture.mjs ./dist/index.js --mock-sdk --output ../../results/nemoclaw/cold-import-extension-nemoclaw-plugins-nemoclaw-nemoclaw-dist-index-js.capture.json",
|
||||
"cwd": ".crabpot/workspaces/nemoclaw",
|
||||
"artifactPath": ".crabpot/results/nemoclaw/cold-import-extension-nemoclaw-plugins-nemoclaw-nemoclaw-dist-index-js.capture.json",
|
||||
"reason": "cold import the entrypoint against the capture shim"
|
||||
},
|
||||
{
|
||||
"kind": "synthetic-probe",
|
||||
"command": "CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/synthetic-probes.mjs --entrypoint ./dist/index.js --mock-sdk --output ../../results/nemoclaw/cold-import-extension-nemoclaw-plugins-nemoclaw-nemoclaw-dist-index-js.synthetic.json",
|
||||
"cwd": ".crabpot/workspaces/nemoclaw",
|
||||
"artifactPath": ".crabpot/results/nemoclaw/cold-import-extension-nemoclaw-plugins-nemoclaw-nemoclaw-dist-index-js.synthetic.json",
|
||||
"reason": "invoke retained hook and registration handlers with synthetic payloads"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "memory-tencentdb",
|
||||
"entrypoints": [
|
||||
@ -2777,7 +2844,7 @@
|
||||
"packagePath": "plugins/codex-app-server/package.json",
|
||||
"packageName": "openclaw-codex-app-server",
|
||||
"entrypoint": "plugins/codex-app-server/index.ts",
|
||||
"status": "sdk-alias-required",
|
||||
"status": "ts-loader-required",
|
||||
"packageManager": "pnpm",
|
||||
"lockfile": "plugins/codex-app-server/pnpm-lock.yaml",
|
||||
"loaderStrategy": {
|
||||
@ -2791,7 +2858,6 @@
|
||||
"requiredCapabilities": [
|
||||
"capture-shim",
|
||||
"dependency-install",
|
||||
"sdk-alias-compat",
|
||||
"synthetic-probes",
|
||||
"target-openclaw-link",
|
||||
"ts-loader"
|
||||
@ -2806,21 +2872,6 @@
|
||||
"code": "dependency-install-required",
|
||||
"message": "package declares runtime dependencies that must be installed before cold import",
|
||||
"evidence": "ws"
|
||||
},
|
||||
{
|
||||
"code": "sdk-alias-required",
|
||||
"message": "fixture imports an SDK alias missing from target OpenClaw package exports",
|
||||
"evidence": "openclaw/plugin-sdk/discord @ plugins/codex-app-server/src/controller.ts:104"
|
||||
},
|
||||
{
|
||||
"code": "sdk-alias-required",
|
||||
"message": "fixture imports an SDK alias missing from target OpenClaw package exports",
|
||||
"evidence": "openclaw/plugin-sdk/discord @ plugins/codex-app-server/src/controller.ts:106"
|
||||
},
|
||||
{
|
||||
"code": "sdk-alias-required",
|
||||
"message": "fixture imports an SDK alias missing from target OpenClaw package exports",
|
||||
"evidence": "openclaw/plugin-sdk/telegram-account @ plugins/codex-app-server/src/controller.ts:105"
|
||||
}
|
||||
],
|
||||
"steps": [
|
||||
|
||||
@ -8,19 +8,19 @@ Opt-in: CRABPOT_EXECUTE_ISOLATED=1
|
||||
|
||||
| Metric | Value |
|
||||
| ----------------------------- | ----- |
|
||||
| Fixtures | 32 |
|
||||
| Entrypoints | 39 |
|
||||
| Artifact dirs | 39 |
|
||||
| Fixtures | 33 |
|
||||
| Entrypoints | 40 |
|
||||
| Artifact dirs | 40 |
|
||||
| Install steps | 19 |
|
||||
| Audit steps | 19 |
|
||||
| Build steps | 10 |
|
||||
| Capture steps | 39 |
|
||||
| Synthetic probe steps | 39 |
|
||||
| Build steps | 11 |
|
||||
| Capture steps | 40 |
|
||||
| Synthetic probe steps | 40 |
|
||||
| Target OpenClaw link steps | 27 |
|
||||
| TypeScript loader entrypoints | 21 |
|
||||
| Jiti fallback candidates | 21 |
|
||||
| Missing build scripts | 0 |
|
||||
| SDK alias required | 6 |
|
||||
| SDK alias required | 5 |
|
||||
|
||||
## Entrypoint Workspaces
|
||||
|
||||
@ -45,6 +45,7 @@ Opt-in: CRABPOT_EXECUTE_ISOLATED=1
|
||||
| kitchen-sink | npm | ready | node | plugins/kitchen-sink/src/index.js | capture-shim, synthetic-probes, target-openclaw-link | prepare: mkdir -p .crabpot/workspaces/kitchen-sink && rsync -a --delete plugins/kitchen-sink/ .crabpot/workspaces/kitchen-sink/; prepare-artifacts: mkdir -p .crabpot/results/kitchen-sink; link-openclaw: npm pkg set dependencies.openclaw="file:../../../openclaw"; capture: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/run-cold-import-capture.mjs ./src/index.js --mock-sdk --output ../../results/kitchen-sink/cold-import-extension-kitchen-sink-plugins-kitchen-sink-src-index-js.capture.json -> .crabpot/results/kitchen-sink/cold-import-extension-kitchen-sink-plugins-kitchen-sink-src-index-js.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/synthetic-probes.mjs --entrypoint ./src/index.js --mock-sdk --output ../../results/kitchen-sink/cold-import-extension-kitchen-sink-plugins-kitchen-sink-src-index-js.synthetic.json -> .crabpot/results/kitchen-sink/cold-import-extension-kitchen-sink-plugins-kitchen-sink-src-index-js.synthetic.json |
|
||||
| kitchen-sink | npm | ready | node | plugins/kitchen-sink/src/index.js | capture-shim, synthetic-probes, target-openclaw-link | prepare: mkdir -p .crabpot/workspaces/kitchen-sink && rsync -a --delete plugins/kitchen-sink/ .crabpot/workspaces/kitchen-sink/; prepare-artifacts: mkdir -p .crabpot/results/kitchen-sink; link-openclaw: npm pkg set dependencies.openclaw="file:../../../openclaw"; capture: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/run-cold-import-capture.mjs ./src/index.js --mock-sdk --output ../../results/kitchen-sink/cold-import-runtimeExtension-kitchen-sink-plugins-kitchen-sink-src-index-js.capture.json -> .crabpot/results/kitchen-sink/cold-import-runtimeExtension-kitchen-sink-plugins-kitchen-sink-src-index-js.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/synthetic-probes.mjs --entrypoint ./src/index.js --mock-sdk --output ../../results/kitchen-sink/cold-import-runtimeExtension-kitchen-sink-plugins-kitchen-sink-src-index-js.synthetic.json -> .crabpot/results/kitchen-sink/cold-import-runtimeExtension-kitchen-sink-plugins-kitchen-sink-src-index-js.synthetic.json |
|
||||
| kitchen-sink | npm | ready | node | plugins/kitchen-sink/src/setup.js | capture-shim, synthetic-probes, target-openclaw-link | prepare: mkdir -p .crabpot/workspaces/kitchen-sink && rsync -a --delete plugins/kitchen-sink/ .crabpot/workspaces/kitchen-sink/; prepare-artifacts: mkdir -p .crabpot/results/kitchen-sink; link-openclaw: npm pkg set dependencies.openclaw="file:../../../openclaw"; capture: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/run-cold-import-capture.mjs ./src/setup.js --mock-sdk --output ../../results/kitchen-sink/cold-import-setupEntry-kitchen-sink-plugins-kitchen-sink-src-setup-js.capture.json -> .crabpot/results/kitchen-sink/cold-import-setupEntry-kitchen-sink-plugins-kitchen-sink-src-setup-js.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/synthetic-probes.mjs --entrypoint ./src/setup.js --mock-sdk --output ../../results/kitchen-sink/cold-import-setupEntry-kitchen-sink-plugins-kitchen-sink-src-setup-js.synthetic.json -> .crabpot/results/kitchen-sink/cold-import-setupEntry-kitchen-sink-plugins-kitchen-sink-src-setup-js.synthetic.json |
|
||||
| nemoclaw | npm | build-required | node | plugins/nemoclaw/nemoclaw/dist/index.js | build, capture-shim, synthetic-probes | prepare: mkdir -p .crabpot/workspaces/nemoclaw && rsync -a --delete plugins/nemoclaw/nemoclaw/ .crabpot/workspaces/nemoclaw/; prepare-artifacts: mkdir -p .crabpot/results/nemoclaw; build: npm run build; capture: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/run-cold-import-capture.mjs ./dist/index.js --mock-sdk --output ../../results/nemoclaw/cold-import-extension-nemoclaw-plugins-nemoclaw-nemoclaw-dist-index-js.capture.json -> .crabpot/results/nemoclaw/cold-import-extension-nemoclaw-plugins-nemoclaw-nemoclaw-dist-index-js.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/synthetic-probes.mjs --entrypoint ./dist/index.js --mock-sdk --output ../../results/nemoclaw/cold-import-extension-nemoclaw-plugins-nemoclaw-nemoclaw-dist-index-js.synthetic.json -> .crabpot/results/nemoclaw/cold-import-extension-nemoclaw-plugins-nemoclaw-nemoclaw-dist-index-js.synthetic.json |
|
||||
| memory-tencentdb | npm | ts-loader-required | tsx (+jiti) | plugins/memory-tencentdb/.crabpot-package/index.ts | capture-shim, dependency-install, synthetic-probes, target-openclaw-link, ts-loader | prepare: mkdir -p .crabpot/workspaces/memory-tencentdb && rsync -a --delete plugins/memory-tencentdb/.crabpot-package/ .crabpot/workspaces/memory-tencentdb/; prepare-artifacts: mkdir -p .crabpot/results/memory-tencentdb; link-openclaw: npm pkg set dependencies.openclaw="file:../../../openclaw"; install: npm install --ignore-scripts; audit: npm audit --json > ../../results/memory-tencentdb/package-audit.json || true -> .crabpot/results/memory-tencentdb/package-audit.json; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --mock-sdk --output ../../results/memory-tencentdb/cold-import-extension-memory-tencentdb-plugins-memory-tencentdb-crabpot-package-index-ts.capture.json -> .crabpot/results/memory-tencentdb/cold-import-extension-memory-tencentdb-plugins-memory-tencentdb-crabpot-package-index-ts.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/synthetic-probes.mjs --entrypoint ./index.ts --mock-sdk --output ../../results/memory-tencentdb/cold-import-extension-memory-tencentdb-plugins-memory-tencentdb-crabpot-package-index-ts.synthetic.json -> .crabpot/results/memory-tencentdb/cold-import-extension-memory-tencentdb-plugins-memory-tencentdb-crabpot-package-index-ts.synthetic.json |
|
||||
| ddingtalk | pnpm | ts-loader-required | tsx (+jiti) | plugins/ddingtalk/index.ts | capture-shim, dependency-install, synthetic-probes, target-openclaw-link, ts-loader | prepare: mkdir -p .crabpot/workspaces/ddingtalk && rsync -a --delete plugins/ddingtalk/ .crabpot/workspaces/ddingtalk/; prepare-artifacts: mkdir -p .crabpot/results/ddingtalk; link-openclaw: pnpm pkg set dependencies.openclaw="file:../../../openclaw"; install: pnpm install --ignore-scripts; audit: pnpm audit --json > ../../results/ddingtalk/package-audit.json || true -> .crabpot/results/ddingtalk/package-audit.json; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --mock-sdk --output ../../results/ddingtalk/cold-import-extension-ddingtalk-plugins-ddingtalk-index-ts.capture.json -> .crabpot/results/ddingtalk/cold-import-extension-ddingtalk-plugins-ddingtalk-index-ts.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/synthetic-probes.mjs --entrypoint ./index.ts --mock-sdk --output ../../results/ddingtalk/cold-import-extension-ddingtalk-plugins-ddingtalk-index-ts.synthetic.json -> .crabpot/results/ddingtalk/cold-import-extension-ddingtalk-plugins-ddingtalk-index-ts.synthetic.json |
|
||||
| dingtalk-connector | npm | build-required | node | plugins/dingtalk-connector/dist/index.mjs | build, capture-shim, synthetic-probes, target-openclaw-link | prepare: mkdir -p .crabpot/workspaces/dingtalk-connector && rsync -a --delete plugins/dingtalk-connector/ .crabpot/workspaces/dingtalk-connector/; prepare-artifacts: mkdir -p .crabpot/results/dingtalk-connector; link-openclaw: npm pkg set dependencies.openclaw="file:../../../openclaw"; build: npm run build; capture: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/run-cold-import-capture.mjs ./dist/index.mjs --mock-sdk --output ../../results/dingtalk-connector/cold-import-extension-dingtalk-connector-plugins-dingtalk-connector-dist-index-mjs.capture.json -> .crabpot/results/dingtalk-connector/cold-import-extension-dingtalk-connector-plugins-dingtalk-connector-dist-index-mjs.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/synthetic-probes.mjs --entrypoint ./dist/index.mjs --mock-sdk --output ../../results/dingtalk-connector/cold-import-extension-dingtalk-connector-plugins-dingtalk-connector-dist-index-mjs.synthetic.json -> .crabpot/results/dingtalk-connector/cold-import-extension-dingtalk-connector-plugins-dingtalk-connector-dist-index-mjs.synthetic.json |
|
||||
@ -61,7 +62,7 @@ Opt-in: CRABPOT_EXECUTE_ISOLATED=1
|
||||
| memos-cloud | npm | review-required | node | plugins/memos-cloud/index.js | capture-shim, side-effect-sandbox, synthetic-probes | prepare: mkdir -p .crabpot/workspaces/memos-cloud && rsync -a --delete plugins/memos-cloud/ .crabpot/workspaces/memos-cloud/; prepare-artifacts: mkdir -p .crabpot/results/memos-cloud; capture: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/run-cold-import-capture.mjs ./index.js --mock-sdk --output ../../results/memos-cloud/cold-import-extension-memos-cloud-plugins-memos-cloud-index-js.capture.json -> .crabpot/results/memos-cloud/cold-import-extension-memos-cloud-plugins-memos-cloud-index-js.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/synthetic-probes.mjs --entrypoint ./index.js --mock-sdk --output ../../results/memos-cloud/cold-import-extension-memos-cloud-plugins-memos-cloud-index-js.synthetic.json -> .crabpot/results/memos-cloud/cold-import-extension-memos-cloud-plugins-memos-cloud-index-js.synthetic.json |
|
||||
| clawmetry | npm | sdk-alias-required | tsx (+jiti) | plugins/clawmetry/clawhub-plugin/index.ts | capture-shim, dependency-install, sdk-alias-compat, synthetic-probes, ts-loader | prepare: mkdir -p .crabpot/workspaces/clawmetry && rsync -a --delete plugins/clawmetry/clawhub-plugin/ .crabpot/workspaces/clawmetry/; prepare-artifacts: mkdir -p .crabpot/results/clawmetry; install: npm install --ignore-scripts; audit: npm audit --json > ../../results/clawmetry/package-audit.json || true -> .crabpot/results/clawmetry/package-audit.json; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --mock-sdk --output ../../results/clawmetry/cold-import-extension-clawmetry-plugins-clawmetry-clawhub-plugin-index-ts.capture.json -> .crabpot/results/clawmetry/cold-import-extension-clawmetry-plugins-clawmetry-clawhub-plugin-index-ts.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/synthetic-probes.mjs --entrypoint ./index.ts --mock-sdk --output ../../results/clawmetry/cold-import-extension-clawmetry-plugins-clawmetry-clawhub-plugin-index-ts.synthetic.json -> .crabpot/results/clawmetry/cold-import-extension-clawmetry-plugins-clawmetry-clawhub-plugin-index-ts.synthetic.json |
|
||||
| clawmetry | npm | sdk-alias-required | node | plugins/clawmetry/clawhub-plugin/dist/index.js | build, capture-shim, sdk-alias-compat, synthetic-probes | prepare: mkdir -p .crabpot/workspaces/clawmetry && rsync -a --delete plugins/clawmetry/clawhub-plugin/ .crabpot/workspaces/clawmetry/; prepare-artifacts: mkdir -p .crabpot/results/clawmetry; build: npm run build; capture: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/run-cold-import-capture.mjs ./dist/index.js --mock-sdk --output ../../results/clawmetry/cold-import-runtimeExtension-clawmetry-plugins-clawmetry-clawhub-plugin-dist-index-js.capture.json -> .crabpot/results/clawmetry/cold-import-runtimeExtension-clawmetry-plugins-clawmetry-clawhub-plugin-dist-index-js.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/synthetic-probes.mjs --entrypoint ./dist/index.js --mock-sdk --output ../../results/clawmetry/cold-import-runtimeExtension-clawmetry-plugins-clawmetry-clawhub-plugin-dist-index-js.synthetic.json -> .crabpot/results/clawmetry/cold-import-runtimeExtension-clawmetry-plugins-clawmetry-clawhub-plugin-dist-index-js.synthetic.json |
|
||||
| codex-app-server | pnpm | sdk-alias-required | tsx (+jiti) | plugins/codex-app-server/index.ts | capture-shim, dependency-install, sdk-alias-compat, synthetic-probes, target-openclaw-link, ts-loader | prepare: mkdir -p .crabpot/workspaces/codex-app-server && rsync -a --delete plugins/codex-app-server/ .crabpot/workspaces/codex-app-server/; prepare-artifacts: mkdir -p .crabpot/results/codex-app-server; link-openclaw: pnpm pkg set dependencies.openclaw="file:../../../openclaw"; install: pnpm install --ignore-scripts; audit: pnpm audit --json > ../../results/codex-app-server/package-audit.json || true -> .crabpot/results/codex-app-server/package-audit.json; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --mock-sdk --output ../../results/codex-app-server/cold-import-extension-codex-app-server-plugins-codex-app-server-index-ts.capture.json -> .crabpot/results/codex-app-server/cold-import-extension-codex-app-server-plugins-codex-app-server-index-ts.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/synthetic-probes.mjs --entrypoint ./index.ts --mock-sdk --output ../../results/codex-app-server/cold-import-extension-codex-app-server-plugins-codex-app-server-index-ts.synthetic.json -> .crabpot/results/codex-app-server/cold-import-extension-codex-app-server-plugins-codex-app-server-index-ts.synthetic.json |
|
||||
| codex-app-server | pnpm | ts-loader-required | tsx (+jiti) | plugins/codex-app-server/index.ts | capture-shim, dependency-install, synthetic-probes, target-openclaw-link, ts-loader | prepare: mkdir -p .crabpot/workspaces/codex-app-server && rsync -a --delete plugins/codex-app-server/ .crabpot/workspaces/codex-app-server/; prepare-artifacts: mkdir -p .crabpot/results/codex-app-server; link-openclaw: pnpm pkg set dependencies.openclaw="file:../../../openclaw"; install: pnpm install --ignore-scripts; audit: pnpm audit --json > ../../results/codex-app-server/package-audit.json || true -> .crabpot/results/codex-app-server/package-audit.json; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --mock-sdk --output ../../results/codex-app-server/cold-import-extension-codex-app-server-plugins-codex-app-server-index-ts.capture.json -> .crabpot/results/codex-app-server/cold-import-extension-codex-app-server-plugins-codex-app-server-index-ts.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/synthetic-probes.mjs --entrypoint ./index.ts --mock-sdk --output ../../results/codex-app-server/cold-import-extension-codex-app-server-plugins-codex-app-server-index-ts.synthetic.json -> .crabpot/results/codex-app-server/cold-import-extension-codex-app-server-plugins-codex-app-server-index-ts.synthetic.json |
|
||||
| web-search-plus | npm | ts-loader-required | tsx (+jiti) | plugins/web-search-plus/index.ts | capture-shim, side-effect-sandbox, synthetic-probes, target-openclaw-link, ts-loader | prepare: mkdir -p .crabpot/workspaces/web-search-plus && rsync -a --delete plugins/web-search-plus/ .crabpot/workspaces/web-search-plus/; prepare-artifacts: mkdir -p .crabpot/results/web-search-plus; link-openclaw: npm pkg set dependencies.openclaw="file:../../../openclaw"; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --mock-sdk --output ../../results/web-search-plus/cold-import-extension-web-search-plus-plugins-web-search-plus-index-ts.capture.json -> .crabpot/results/web-search-plus/cold-import-extension-web-search-plus-plugins-web-search-plus-index-ts.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/synthetic-probes.mjs --entrypoint ./index.ts --mock-sdk --output ../../results/web-search-plus/cold-import-extension-web-search-plus-plugins-web-search-plus-index-ts.synthetic.json -> .crabpot/results/web-search-plus/cold-import-extension-web-search-plus-plugins-web-search-plus-index-ts.synthetic.json |
|
||||
| apify | npm | ts-loader-required | tsx (+jiti) | plugins/apify/src/index.ts | capture-shim, dependency-install, synthetic-probes, target-openclaw-link, ts-loader | prepare: mkdir -p .crabpot/workspaces/apify && rsync -a --delete plugins/apify/ .crabpot/workspaces/apify/; prepare-artifacts: mkdir -p .crabpot/results/apify; link-openclaw: npm pkg set dependencies.openclaw="file:../../../openclaw"; install: npm install --ignore-scripts; audit: npm audit --json > ../../results/apify/package-audit.json || true -> .crabpot/results/apify/package-audit.json; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./src/index.ts --mock-sdk --output ../../results/apify/cold-import-extension-apify-plugins-apify-src-index-ts.capture.json -> .crabpot/results/apify/cold-import-extension-apify-plugins-apify-src-index-ts.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/synthetic-probes.mjs --entrypoint ./src/index.ts --mock-sdk --output ../../results/apify/cold-import-extension-apify-plugins-apify-src-index-ts.synthetic.json -> .crabpot/results/apify/cold-import-extension-apify-plugins-apify-src-index-ts.synthetic.json |
|
||||
| inworld-tts | pnpm | ts-loader-required | tsx (+jiti) | plugins/inworld-tts/index.ts | capture-shim, synthetic-probes, target-openclaw-link, ts-loader | prepare: mkdir -p .crabpot/workspaces/inworld-tts && rsync -a --delete plugins/inworld-tts/ .crabpot/workspaces/inworld-tts/; prepare-artifacts: mkdir -p .crabpot/results/inworld-tts; link-openclaw: pnpm pkg set dependencies.openclaw="file:../../../openclaw"; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --mock-sdk --output ../../results/inworld-tts/cold-import-extension-inworld-tts-plugins-inworld-tts-index-ts.capture.json -> .crabpot/results/inworld-tts/cold-import-extension-inworld-tts-plugins-inworld-tts-index-ts.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/synthetic-probes.mjs --entrypoint ./index.ts --mock-sdk --output ../../results/inworld-tts/cold-import-extension-inworld-tts-plugins-inworld-tts-index-ts.synthetic.json -> .crabpot/results/inworld-tts/cold-import-extension-inworld-tts-plugins-inworld-tts-index-ts.synthetic.json |
|
||||
|
||||
@ -14,7 +14,7 @@ test("cold import readiness classifies entrypoint blockers", async () => {
|
||||
assert.ok(readiness.summary.buildRequiredCount > 0);
|
||||
assert.ok(readiness.summary.dependencyInstallRequiredCount > 0);
|
||||
|
||||
assertHasStatus(readiness, "wecom", "dependency-install-required");
|
||||
assertHasBlocker(readiness, "wecom", "dependency-install-required");
|
||||
assertHasStatus(readiness, "agentchat", "build-required");
|
||||
assertHasStatus(readiness, "a2a-gateway", "ts-loader-required");
|
||||
if (report.issues.some((issue) => issue.code === "sdk-export-missing")) {
|
||||
@ -38,6 +38,14 @@ function assertHasStatus(readiness, fixtureId, status) {
|
||||
);
|
||||
}
|
||||
|
||||
function assertHasBlocker(readiness, fixtureId, code) {
|
||||
const fixture = readiness.fixtures.find((item) => item.id === fixtureId);
|
||||
assert.ok(
|
||||
fixture?.entrypoints.some((entrypoint) => entrypoint.blockers.some((blocker) => blocker.code === code)),
|
||||
`expected ${fixtureId} to have ${code} blocker`,
|
||||
);
|
||||
}
|
||||
|
||||
function assertHasAnyStatus(readiness, status) {
|
||||
assert.ok(
|
||||
readiness.fixtures.some((fixture) => fixture.entrypoints.some((entrypoint) => entrypoint.status === status)),
|
||||
|
||||
@ -42,7 +42,6 @@ test("compatibility report classifies current fixture seams", async () => {
|
||||
assertHasFinding(report.suggestions, "a2a-gateway", "registration-capture-gap");
|
||||
assertHasFinding(report.suggestions, "wecom", "before-tool-call-probe");
|
||||
assertHasFinding(report.warnings, "a2a-gateway", "package-manifest-version-drift");
|
||||
assertHasFinding(report.warnings, "agentchat", "manifest-unknown-fields");
|
||||
assertHasFinding(report.warnings, "connectclaw", "legacy-before-agent-start");
|
||||
assertHasFinding(report.warnings, "mcp-adapter", "package-plugin-api-compat-missing");
|
||||
assertHasFinding(report.suggestions, "agentchat", "package-build-artifact-entrypoint");
|
||||
@ -66,23 +65,25 @@ test("compatibility report classifies current fixture seams", async () => {
|
||||
assertHasIssue(report.issues, "P1", "conversation-access-hook");
|
||||
assertHasIssue(report.issues, "P2", "package-plugin-api-compat-missing");
|
||||
assertHasIssue(report.issues, "P2", "package-build-artifact-entrypoint");
|
||||
assertHasIssue(report.issues, "P2", "manifest-unknown-fields");
|
||||
assertHasIssue(report.issues, "P2", "package-typescript-source-entrypoint");
|
||||
assertHasIssue(report.issues, "P2", "package-dependency-install-required");
|
||||
assertHasIssueClass(report.issues, "deprecation-warning", "legacy-before-agent-start");
|
||||
assertHasIssueClass(report.issues, "inspector-gap", "registration-capture-gap");
|
||||
assertHasIssueClass(report.issues, "upstream-metadata", "package-plugin-api-compat-missing");
|
||||
if (hasTargetOpenClaw) {
|
||||
assertHasFinding(report.warnings, "agentchat", "manifest-unknown-fields");
|
||||
assertHasIssue(report.issues, "P1", "missing-compat-record");
|
||||
assertHasIssue(report.issues, "P0", "sdk-export-missing");
|
||||
assertHasIssue(report.issues, "P0", "unknown-hook-name");
|
||||
assertHasIssue(report.issues, "P2", "manifest-unknown-fields");
|
||||
assertHasIssueClass(report.issues, "live-issue", "sdk-export-missing");
|
||||
assertHasIssueClass(report.issues, "live-issue", "unknown-hook-name");
|
||||
assertHasIssueClass(report.issues, "compat-gap", "missing-compat-record");
|
||||
assertHasProbe(report.contractProbes, "manifest.schema.top-level-fields:agentchat");
|
||||
assertHasProbe(report.contractProbes, "manifest.schema.top-level-fields:memos-cloud");
|
||||
}
|
||||
assertHasProbe(report.contractProbes, "api.capture.runtime-registrars:wecom");
|
||||
assertHasProbe(report.contractProbes, "hook.before_tool_call.terminal-block-approval:wecom");
|
||||
assertHasProbe(report.contractProbes, "manifest.schema.top-level-fields:agentchat");
|
||||
if (hasTargetOpenClaw) {
|
||||
assertHasProbePrefix(report.contractProbes, "sdk.import.package-export-cold-import:");
|
||||
assertHasProbePrefix(report.contractProbes, "sdk.import.package-export-cold-import:", "P1");
|
||||
@ -94,7 +95,6 @@ test("compatibility report classifies current fixture seams", async () => {
|
||||
assertHasProbe(report.contractProbes, "api.capture.runtime-registrars:hyperspell");
|
||||
assertHasProbe(report.contractProbes, "hook.compat.before-agent-start-migration:honcho");
|
||||
assertHasProbe(report.contractProbes, "package.compat.plugin-api-range:secureclaw");
|
||||
assertHasProbe(report.contractProbes, "manifest.schema.top-level-fields:memos-cloud");
|
||||
});
|
||||
|
||||
test("markdown report includes review sections", async () => {
|
||||
@ -131,11 +131,14 @@ test("issue report preserves decision metadata for compat-layer work", async ()
|
||||
const report = await buildReport(testReportOptions());
|
||||
const sdkIssue = report.issues.find((issue) => issue.code === "sdk-export-missing");
|
||||
const manifestIssue = report.issues.find((issue) => issue.code === "manifest-unknown-fields");
|
||||
const pluginCompatIssue = report.issues.find((issue) => issue.code === "package-plugin-api-compat-missing");
|
||||
const markdown = renderIssuesReport(report);
|
||||
|
||||
if (report.targetOpenClaw.status !== "ok") {
|
||||
assert.equal(sdkIssue, undefined);
|
||||
assert.equal(manifestIssue.owner, "plugin");
|
||||
assert.equal(manifestIssue, undefined);
|
||||
assert.equal(pluginCompatIssue.owner, "plugin");
|
||||
assert.equal(pluginCompatIssue.decision, "plugin-upstream-fix");
|
||||
assert.match(markdown, /## Triage Summary/);
|
||||
return;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user