chore(reports): refresh compatibility artifacts
This commit is contained in:
parent
c8308efcf0
commit
8b677c1844
319
baselines/runtime/main.json
Normal file
319
baselines/runtime/main.json
Normal file
@ -0,0 +1,319 @@
|
||||
{
|
||||
"generatedAt": "deterministic",
|
||||
"runs": 3,
|
||||
"targetOpenClaw": {
|
||||
"status": "ok",
|
||||
"configuredPath": "../openclaw",
|
||||
"compatRecords": 19,
|
||||
"hookNames": 31,
|
||||
"apiRegistrars": 40,
|
||||
"capturedRegistrars": 18,
|
||||
"sdkExports": 307,
|
||||
"manifestFields": 32,
|
||||
"manifestContractFields": 16
|
||||
},
|
||||
"fixtureInventory": {
|
||||
"fixtures": 12,
|
||||
"sourceFiles": 201,
|
||||
"observedHooks": 18,
|
||||
"observedRegistrations": 22,
|
||||
"observedSdkImports": 20,
|
||||
"contractProbes": 57,
|
||||
"issueFindings": 58
|
||||
},
|
||||
"summary": {
|
||||
"commandCount": 7,
|
||||
"p50WallMs": 742,
|
||||
"p95WallMs": 1273,
|
||||
"maxPeakRssMb": 65.1
|
||||
},
|
||||
"commands": [
|
||||
{
|
||||
"id": "node-boot",
|
||||
"label": "Node boot",
|
||||
"command": "/opt/homebrew/Cellar/node/25.9.0_2/bin/node -e 0",
|
||||
"samples": [
|
||||
{
|
||||
"wallMs": 1134,
|
||||
"peakRssMb": 0.4,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 697,
|
||||
"peakRssMb": 0,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 917,
|
||||
"peakRssMb": 0,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "",
|
||||
"stderrPreview": ""
|
||||
}
|
||||
],
|
||||
"wallMs": {
|
||||
"min": 697,
|
||||
"median": 917,
|
||||
"max": 1134
|
||||
},
|
||||
"peakRssMb": {
|
||||
"min": 0,
|
||||
"median": 0,
|
||||
"max": 0.4
|
||||
},
|
||||
"exitCodes": [
|
||||
0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "fixture-inspection",
|
||||
"label": "Fixture inspection",
|
||||
"command": "/opt/homebrew/Cellar/node/25.9.0_2/bin/node scripts/inspect-fixtures.mjs --check",
|
||||
"samples": [
|
||||
{
|
||||
"wallMs": 1273,
|
||||
"peakRssMb": 51.8,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "│ 11 │ 'inworld-tts' │ 'ok' │ '' │ 'definePluginEntry,registerSpeechProvider' │ 'speechProviders' │\n└─────────┴─────────────────────┴────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────┴───────────────────┘",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 487,
|
||||
"peakRssMb": 43.1,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "│ 11 │ 'inworld-tts' │ 'ok' │ '' │ 'definePluginEntry,registerSpeechProvider' │ 'speechProviders' │\n└─────────┴─────────────────────┴────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────┴───────────────────┘",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 1397,
|
||||
"peakRssMb": 0,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "│ 11 │ 'inworld-tts' │ 'ok' │ '' │ 'definePluginEntry,registerSpeechProvider' │ 'speechProviders' │\n└─────────┴─────────────────────┴────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────┴───────────────────┘",
|
||||
"stderrPreview": ""
|
||||
}
|
||||
],
|
||||
"wallMs": {
|
||||
"min": 487,
|
||||
"median": 1273,
|
||||
"max": 1397
|
||||
},
|
||||
"peakRssMb": {
|
||||
"min": 0,
|
||||
"median": 43.1,
|
||||
"max": 51.8
|
||||
},
|
||||
"exitCodes": [
|
||||
0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "compat-report-registry",
|
||||
"label": "Compatibility report plus target registry parse",
|
||||
"command": "/opt/homebrew/Cellar/node/25.9.0_2/bin/node scripts/generate-report.mjs --check",
|
||||
"samples": [
|
||||
{
|
||||
"wallMs": 1956,
|
||||
"peakRssMb": 0,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "crabpot report check: pass; 0 breakages, 18 warnings, 40 suggestions, 58 issues\nreport targets: /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-report.md, /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-report.json, /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-issues.md",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 517,
|
||||
"peakRssMb": 65.1,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "crabpot report check: pass; 0 breakages, 18 warnings, 40 suggestions, 58 issues\nreport targets: /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-report.md, /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-report.json, /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-issues.md",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 424,
|
||||
"peakRssMb": 63.5,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "crabpot report check: pass; 0 breakages, 18 warnings, 40 suggestions, 58 issues\nreport targets: /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-report.md, /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-report.json, /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-issues.md",
|
||||
"stderrPreview": ""
|
||||
}
|
||||
],
|
||||
"wallMs": {
|
||||
"min": 424,
|
||||
"median": 517,
|
||||
"max": 1956
|
||||
},
|
||||
"peakRssMb": {
|
||||
"min": 0,
|
||||
"median": 63.5,
|
||||
"max": 65.1
|
||||
},
|
||||
"exitCodes": [
|
||||
0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "contract-capture",
|
||||
"label": "Contract capture inventory",
|
||||
"command": "/opt/homebrew/Cellar/node/25.9.0_2/bin/node scripts/capture-contracts.mjs --check",
|
||||
"samples": [
|
||||
{
|
||||
"wallMs": 483,
|
||||
"peakRssMb": 64.1,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "contract capture: 30 registrations, 18 hooks, 41 sdk imports, 57 issue probes",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 522,
|
||||
"peakRssMb": 63.6,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "contract capture: 30 registrations, 18 hooks, 41 sdk imports, 57 issue probes",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 471,
|
||||
"peakRssMb": 0,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "contract capture: 30 registrations, 18 hooks, 41 sdk imports, 57 issue probes",
|
||||
"stderrPreview": ""
|
||||
}
|
||||
],
|
||||
"wallMs": {
|
||||
"min": 471,
|
||||
"median": 483,
|
||||
"max": 522
|
||||
},
|
||||
"peakRssMb": {
|
||||
"min": 0,
|
||||
"median": 63.6,
|
||||
"max": 64.1
|
||||
},
|
||||
"exitCodes": [
|
||||
0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "synthetic-probe-plan",
|
||||
"label": "Synthetic probe plan",
|
||||
"command": "/opt/homebrew/Cellar/node/25.9.0_2/bin/node scripts/synthetic-probes.mjs --check",
|
||||
"samples": [
|
||||
{
|
||||
"wallMs": 821,
|
||||
"peakRssMb": 0,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "synthetic probes: 48 ready, 0 blocked, 48 total",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 874,
|
||||
"peakRssMb": 0,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "synthetic probes: 48 ready, 0 blocked, 48 total",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 2457,
|
||||
"peakRssMb": 0,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "synthetic probes: 48 ready, 0 blocked, 48 total",
|
||||
"stderrPreview": ""
|
||||
}
|
||||
],
|
||||
"wallMs": {
|
||||
"min": 821,
|
||||
"median": 874,
|
||||
"max": 2457
|
||||
},
|
||||
"peakRssMb": {
|
||||
"min": 0,
|
||||
"median": 0,
|
||||
"max": 0
|
||||
},
|
||||
"exitCodes": [
|
||||
0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "cold-import-readiness",
|
||||
"label": "Cold import readiness",
|
||||
"command": "/opt/homebrew/Cellar/node/25.9.0_2/bin/node scripts/cold-import-readiness.mjs --check",
|
||||
"samples": [
|
||||
{
|
||||
"wallMs": 444,
|
||||
"peakRssMb": 60.8,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "cold import readiness: 15 entrypoints, 0 ready, 15 blocked",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 364,
|
||||
"peakRssMb": 51.4,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "cold import readiness: 15 entrypoints, 0 ready, 15 blocked",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 604,
|
||||
"peakRssMb": 57.6,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "cold import readiness: 15 entrypoints, 0 ready, 15 blocked",
|
||||
"stderrPreview": ""
|
||||
}
|
||||
],
|
||||
"wallMs": {
|
||||
"min": 364,
|
||||
"median": 444,
|
||||
"max": 604
|
||||
},
|
||||
"peakRssMb": {
|
||||
"min": 51.4,
|
||||
"median": 57.6,
|
||||
"max": 60.8
|
||||
},
|
||||
"exitCodes": [
|
||||
0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "workspace-plan",
|
||||
"label": "Workspace execution plan",
|
||||
"command": "/opt/homebrew/Cellar/node/25.9.0_2/bin/node scripts/workspace-plan.mjs --check",
|
||||
"samples": [
|
||||
{
|
||||
"wallMs": 369,
|
||||
"peakRssMb": 0.3,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "workspace plan: 15 entrypoints, 10 installs, 4 builds, 15 captures, 15 synthetic probes, 15 artifact dirs",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 1554,
|
||||
"peakRssMb": 64,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "workspace plan: 15 entrypoints, 10 installs, 4 builds, 15 captures, 15 synthetic probes, 15 artifact dirs",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 742,
|
||||
"peakRssMb": 63.3,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "workspace plan: 15 entrypoints, 10 installs, 4 builds, 15 captures, 15 synthetic probes, 15 artifact dirs",
|
||||
"stderrPreview": ""
|
||||
}
|
||||
],
|
||||
"wallMs": {
|
||||
"min": 369,
|
||||
"median": 742,
|
||||
"max": 1554
|
||||
},
|
||||
"peakRssMb": {
|
||||
"min": 0.3,
|
||||
"median": 63.3,
|
||||
"max": 64
|
||||
},
|
||||
"exitCodes": [
|
||||
0
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -4,16 +4,16 @@
|
||||
"status": "ok",
|
||||
"configuredPath": "../openclaw",
|
||||
"capturedRegistrarCount": 18,
|
||||
"sdkExportCount": 306
|
||||
"sdkExportCount": 307
|
||||
},
|
||||
"summary": {
|
||||
"fixtureCount": 11,
|
||||
"registrationCount": 28,
|
||||
"hookCount": 8,
|
||||
"sdkImportCount": 32,
|
||||
"packageEntrypointCount": 13,
|
||||
"issueProbeCount": 50,
|
||||
"inspectorShimRequiredCount": 17,
|
||||
"fixtureCount": 12,
|
||||
"registrationCount": 30,
|
||||
"hookCount": 18,
|
||||
"sdkImportCount": 41,
|
||||
"packageEntrypointCount": 15,
|
||||
"issueProbeCount": 57,
|
||||
"inspectorShimRequiredCount": 18,
|
||||
"compatAliasRequiredCount": 3
|
||||
},
|
||||
"fixtures": [
|
||||
@ -809,6 +809,409 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "opik-openclaw",
|
||||
"priority": "high",
|
||||
"registrations": [
|
||||
{
|
||||
"id": "registration.registerCli:opik-openclaw:plugins-opik-openclaw-index-ts-17",
|
||||
"fixture": "opik-openclaw",
|
||||
"registrar": "registerCli",
|
||||
"ref": "plugins/opik-openclaw/index.ts:17",
|
||||
"support": "target-captured",
|
||||
"assertions": [
|
||||
"command name is stable",
|
||||
"argument schema is captured"
|
||||
],
|
||||
"syntheticArguments": [
|
||||
{
|
||||
"name": "fixture-command",
|
||||
"args": [
|
||||
{
|
||||
"name": "input",
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "registration.registerService:opik-openclaw:plugins-opik-openclaw-index-ts-16",
|
||||
"fixture": "opik-openclaw",
|
||||
"registrar": "registerService",
|
||||
"ref": "plugins/opik-openclaw/index.ts:16",
|
||||
"support": "inspector-shim-required",
|
||||
"assertions": [
|
||||
"service id is stable",
|
||||
"start/stop lifecycle handlers are captured"
|
||||
],
|
||||
"syntheticArguments": [
|
||||
{
|
||||
"name": "fixture-service",
|
||||
"start": "function",
|
||||
"stop": "function"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"hooks": [
|
||||
{
|
||||
"id": "hook.after_tool_call:opik-openclaw:plugins-opik-openclaw-src-service-hooks-tool-ts-100",
|
||||
"fixture": "opik-openclaw",
|
||||
"hook": "after_tool_call",
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/tool.ts:100",
|
||||
"support": "synthetic-event-required",
|
||||
"assertions": [
|
||||
"hook payload and return value are captured"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"hook": "after_tool_call",
|
||||
"fixture": "opik-openclaw"
|
||||
},
|
||||
"syntheticContext": {
|
||||
"hook": "after_tool_call",
|
||||
"fixture": "opik-openclaw"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "hook.agent_end:opik-openclaw:plugins-opik-openclaw-src-service-ts-560",
|
||||
"fixture": "opik-openclaw",
|
||||
"hook": "agent_end",
|
||||
"ref": "plugins/opik-openclaw/src/service.ts:560",
|
||||
"support": "synthetic-event-required",
|
||||
"assertions": [
|
||||
"final conversation payload is redacted as expected",
|
||||
"agent id and run metadata are present"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"runId": "run-fixture",
|
||||
"agentId": "agent-fixture",
|
||||
"conversationId": "conversation-fixture",
|
||||
"status": "completed",
|
||||
"transcript": [
|
||||
{
|
||||
"role": "assistant",
|
||||
"content": "[redacted fixture output]"
|
||||
}
|
||||
]
|
||||
},
|
||||
"syntheticContext": {
|
||||
"runId": "run-fixture",
|
||||
"agentId": "agent-fixture",
|
||||
"sessionId": "session-fixture",
|
||||
"channelId": "fixture-channel"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "hook.before_tool_call:opik-openclaw:plugins-opik-openclaw-src-service-hooks-tool-ts-34",
|
||||
"fixture": "opik-openclaw",
|
||||
"hook": "before_tool_call",
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/tool.ts:34",
|
||||
"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",
|
||||
"toolCallId": "call-fixture"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "hook.llm_input:opik-openclaw:plugins-opik-openclaw-src-service-hooks-llm-ts-39",
|
||||
"fixture": "opik-openclaw",
|
||||
"hook": "llm_input",
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/llm.ts:39",
|
||||
"support": "synthetic-event-required",
|
||||
"assertions": [
|
||||
"model input payload is redacted as expected",
|
||||
"model and agent metadata are present"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"agentId": "agent-fixture",
|
||||
"model": "gpt-5.4",
|
||||
"messages": [
|
||||
{
|
||||
"role": "user",
|
||||
"content": "[redacted fixture input]"
|
||||
}
|
||||
]
|
||||
},
|
||||
"syntheticContext": {
|
||||
"runId": "run-fixture",
|
||||
"agentId": "agent-fixture",
|
||||
"sessionId": "session-fixture",
|
||||
"channelId": "fixture-channel"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "hook.llm_output:opik-openclaw:plugins-opik-openclaw-src-service-hooks-llm-ts-150",
|
||||
"fixture": "opik-openclaw",
|
||||
"hook": "llm_output",
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/llm.ts:150",
|
||||
"support": "synthetic-event-required",
|
||||
"assertions": [
|
||||
"model output payload is redacted as expected",
|
||||
"model and agent metadata are present"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"agentId": "agent-fixture",
|
||||
"model": "gpt-5.4",
|
||||
"output": {
|
||||
"role": "assistant",
|
||||
"content": "[redacted fixture output]"
|
||||
}
|
||||
},
|
||||
"syntheticContext": {
|
||||
"runId": "run-fixture",
|
||||
"agentId": "agent-fixture",
|
||||
"sessionId": "session-fixture",
|
||||
"channelId": "fixture-channel"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "hook.subagent_delivery_target:opik-openclaw:plugins-opik-openclaw-src-service-hooks-subagent-ts-147",
|
||||
"fixture": "opik-openclaw",
|
||||
"hook": "subagent_delivery_target",
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/subagent.ts:147",
|
||||
"support": "synthetic-event-required",
|
||||
"assertions": [
|
||||
"target routing result is preserved",
|
||||
"parent/subagent metadata are present"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"childSessionKey": "child-session",
|
||||
"agentId": "agent-child",
|
||||
"label": "fixture child",
|
||||
"mode": "run",
|
||||
"requester": {
|
||||
"channel": "fixture-channel",
|
||||
"accountId": "fixture-account"
|
||||
}
|
||||
},
|
||||
"syntheticContext": {
|
||||
"runId": "run-fixture",
|
||||
"childSessionKey": "child-session",
|
||||
"requesterSessionKey": "parent-session"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "hook.subagent_ended:opik-openclaw:plugins-opik-openclaw-src-service-hooks-subagent-ts-222",
|
||||
"fixture": "opik-openclaw",
|
||||
"hook": "subagent_ended",
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/subagent.ts:222",
|
||||
"support": "synthetic-event-required",
|
||||
"assertions": [
|
||||
"subagent completion payload is preserved",
|
||||
"status metadata is present"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"childSessionKey": "child-session",
|
||||
"agentId": "agent-child",
|
||||
"status": "completed"
|
||||
},
|
||||
"syntheticContext": {
|
||||
"runId": "run-fixture",
|
||||
"childSessionKey": "child-session",
|
||||
"requesterSessionKey": "parent-session"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "hook.subagent_spawned:opik-openclaw:plugins-opik-openclaw-src-service-hooks-subagent-ts-89",
|
||||
"fixture": "opik-openclaw",
|
||||
"hook": "subagent_spawned",
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/subagent.ts:89",
|
||||
"support": "synthetic-event-required",
|
||||
"assertions": [
|
||||
"spawn payload is preserved",
|
||||
"parent/subagent metadata are present"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"childSessionKey": "child-session",
|
||||
"agentId": "agent-child",
|
||||
"label": "fixture child",
|
||||
"mode": "run"
|
||||
},
|
||||
"syntheticContext": {
|
||||
"runId": "run-fixture",
|
||||
"childSessionKey": "child-session",
|
||||
"requesterSessionKey": "parent-session"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "hook.subagent_spawning:opik-openclaw:plugins-opik-openclaw-src-service-hooks-subagent-ts-38",
|
||||
"fixture": "opik-openclaw",
|
||||
"hook": "subagent_spawning",
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/subagent.ts:38",
|
||||
"support": "synthetic-event-required",
|
||||
"assertions": [
|
||||
"hook payload and return value are captured"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"hook": "subagent_spawning",
|
||||
"fixture": "opik-openclaw"
|
||||
},
|
||||
"syntheticContext": {
|
||||
"hook": "subagent_spawning",
|
||||
"fixture": "opik-openclaw"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "hook.tool_result_persist:opik-openclaw:plugins-opik-openclaw-src-service-ts-541",
|
||||
"fixture": "opik-openclaw",
|
||||
"hook": "tool_result_persist",
|
||||
"ref": "plugins/opik-openclaw/src/service.ts:541",
|
||||
"support": "synthetic-event-required",
|
||||
"assertions": [
|
||||
"hook payload and return value are captured"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"hook": "tool_result_persist",
|
||||
"fixture": "opik-openclaw"
|
||||
},
|
||||
"syntheticContext": {
|
||||
"hook": "tool_result_persist",
|
||||
"fixture": "opik-openclaw"
|
||||
}
|
||||
}
|
||||
],
|
||||
"sdkImports": [
|
||||
{
|
||||
"id": "sdk.openclaw/plugin-sdk:opik-openclaw:plugins-opik-openclaw-index-ts-1",
|
||||
"fixture": "opik-openclaw",
|
||||
"specifier": "openclaw/plugin-sdk",
|
||||
"ref": "plugins/opik-openclaw/index.ts:1",
|
||||
"support": "target-exported",
|
||||
"assertions": [
|
||||
"package export exists",
|
||||
"cold import resolves without plugin credentials"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sdk.openclaw/plugin-sdk:opik-openclaw:plugins-opik-openclaw-index-ts-2",
|
||||
"fixture": "opik-openclaw",
|
||||
"specifier": "openclaw/plugin-sdk",
|
||||
"ref": "plugins/opik-openclaw/index.ts:2",
|
||||
"support": "target-exported",
|
||||
"assertions": [
|
||||
"package export exists",
|
||||
"cold import resolves without plugin credentials"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sdk.openclaw/plugin-sdk:opik-openclaw:plugins-opik-openclaw-src-cli-ts-1",
|
||||
"fixture": "opik-openclaw",
|
||||
"specifier": "openclaw/plugin-sdk",
|
||||
"ref": "plugins/opik-openclaw/src/cli.ts:1",
|
||||
"support": "target-exported",
|
||||
"assertions": [
|
||||
"package export exists",
|
||||
"cold import resolves without plugin credentials"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sdk.openclaw/plugin-sdk:opik-openclaw:plugins-opik-openclaw-src-configure-ts-2",
|
||||
"fixture": "opik-openclaw",
|
||||
"specifier": "openclaw/plugin-sdk",
|
||||
"ref": "plugins/opik-openclaw/src/configure.ts:2",
|
||||
"support": "target-exported",
|
||||
"assertions": [
|
||||
"package export exists",
|
||||
"cold import resolves without plugin credentials"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sdk.openclaw/plugin-sdk:opik-openclaw:plugins-opik-openclaw-src-service-ts-5",
|
||||
"fixture": "opik-openclaw",
|
||||
"specifier": "openclaw/plugin-sdk",
|
||||
"ref": "plugins/opik-openclaw/src/service.ts:5",
|
||||
"support": "target-exported",
|
||||
"assertions": [
|
||||
"package export exists",
|
||||
"cold import resolves without plugin credentials"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sdk.openclaw/plugin-sdk:opik-openclaw:plugins-opik-openclaw-src-service-ts-6",
|
||||
"fixture": "opik-openclaw",
|
||||
"specifier": "openclaw/plugin-sdk",
|
||||
"ref": "plugins/opik-openclaw/src/service.ts:6",
|
||||
"support": "target-exported",
|
||||
"assertions": [
|
||||
"package export exists",
|
||||
"cold import resolves without plugin credentials"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sdk.openclaw/plugin-sdk:opik-openclaw:plugins-opik-openclaw-src-service-hooks-llm-ts-1",
|
||||
"fixture": "opik-openclaw",
|
||||
"specifier": "openclaw/plugin-sdk",
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/llm.ts:1",
|
||||
"support": "target-exported",
|
||||
"assertions": [
|
||||
"package export exists",
|
||||
"cold import resolves without plugin credentials"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sdk.openclaw/plugin-sdk:opik-openclaw:plugins-opik-openclaw-src-service-hooks-subagent-ts-1",
|
||||
"fixture": "opik-openclaw",
|
||||
"specifier": "openclaw/plugin-sdk",
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/subagent.ts:1",
|
||||
"support": "target-exported",
|
||||
"assertions": [
|
||||
"package export exists",
|
||||
"cold import resolves without plugin credentials"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sdk.openclaw/plugin-sdk:opik-openclaw:plugins-opik-openclaw-src-service-hooks-tool-ts-1",
|
||||
"fixture": "opik-openclaw",
|
||||
"specifier": "openclaw/plugin-sdk",
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/tool.ts:1",
|
||||
"support": "target-exported",
|
||||
"assertions": [
|
||||
"package export exists",
|
||||
"cold import resolves without plugin credentials"
|
||||
]
|
||||
}
|
||||
],
|
||||
"packageEntrypoints": [
|
||||
{
|
||||
"id": "package.extension:opik-openclaw:plugins-opik-openclaw-index-ts",
|
||||
"fixture": "opik-openclaw",
|
||||
"kind": "extension",
|
||||
"specifier": "./index.ts",
|
||||
"ref": "plugins/opik-openclaw/index.ts",
|
||||
"support": "source-present",
|
||||
"assertions": [
|
||||
"entrypoint path resolves",
|
||||
"entrypoint can be cold-imported after required build step"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "package.runtimeExtension:opik-openclaw:plugins-opik-openclaw-dist-index-js",
|
||||
"fixture": "opik-openclaw",
|
||||
"kind": "runtimeExtension",
|
||||
"specifier": "./dist/index.js",
|
||||
"ref": "plugins/opik-openclaw/dist/index.js",
|
||||
"support": "build-required",
|
||||
"assertions": [
|
||||
"entrypoint path resolves",
|
||||
"entrypoint can be cold-imported after required build step"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "clawmetry",
|
||||
"priority": "medium",
|
||||
@ -1459,6 +1862,19 @@
|
||||
"registered handler metadata is retained"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "api.capture.runtime-registrars:opik-openclaw",
|
||||
"fixture": "opik-openclaw",
|
||||
"priority": "P1",
|
||||
"target": "inspector-capture-api",
|
||||
"evidence": [
|
||||
"registerService @ plugins/opik-openclaw/index.ts:16"
|
||||
],
|
||||
"assertions": [
|
||||
"registration arguments are recorded",
|
||||
"registered handler metadata is retained"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "api.capture.runtime-registrars:wecom",
|
||||
"fixture": "wecom",
|
||||
@ -1473,6 +1889,19 @@
|
||||
"registered handler metadata is retained"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "hook.before_tool_call.terminal-block-approval:opik-openclaw",
|
||||
"fixture": "opik-openclaw",
|
||||
"priority": "P1",
|
||||
"target": "hook-runner",
|
||||
"evidence": [
|
||||
"before_tool_call @ plugins/opik-openclaw/src/service/hooks/tool.ts:34"
|
||||
],
|
||||
"assertions": [
|
||||
"synthetic event payload is accepted",
|
||||
"return semantics are preserved"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "hook.before_tool_call.terminal-block-approval:wecom",
|
||||
"fixture": "wecom",
|
||||
@ -1500,6 +1929,21 @@
|
||||
"return semantics are preserved"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "hook.llm-observer.privacy-payload:opik-openclaw",
|
||||
"fixture": "opik-openclaw",
|
||||
"priority": "P1",
|
||||
"target": "hook-runner",
|
||||
"evidence": [
|
||||
"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"
|
||||
],
|
||||
"assertions": [
|
||||
"synthetic event payload is accepted",
|
||||
"return semantics are preserved"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sdk.import.package-export-cold-import:codex-app-server",
|
||||
"fixture": "codex-app-server",
|
||||
@ -1648,6 +2092,19 @@
|
||||
"cold import failure mode is classified"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "package.entrypoint.build-before-cold-import:opik-openclaw",
|
||||
"fixture": "opik-openclaw",
|
||||
"priority": "P2",
|
||||
"target": "package-loader",
|
||||
"evidence": [
|
||||
"runtimeExtension:./dist/index.js -> plugins/opik-openclaw/dist/index.js"
|
||||
],
|
||||
"assertions": [
|
||||
"entrypoint metadata resolves",
|
||||
"cold import failure mode is classified"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "package.entrypoint.isolated-dependency-install:a2a-gateway",
|
||||
"fixture": "a2a-gateway",
|
||||
@ -1712,6 +2169,22 @@
|
||||
"cold import failure mode is classified"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "package.entrypoint.isolated-dependency-install:opik-openclaw",
|
||||
"fixture": "opik-openclaw",
|
||||
"priority": "P2",
|
||||
"target": "package-loader",
|
||||
"evidence": [
|
||||
"@clack/prompts @ plugins/opik-openclaw/package.json",
|
||||
"opik @ plugins/opik-openclaw/package.json",
|
||||
"zod @ plugins/opik-openclaw/package.json",
|
||||
"openclaw @ plugins/opik-openclaw/package.json"
|
||||
],
|
||||
"assertions": [
|
||||
"entrypoint metadata resolves",
|
||||
"cold import failure mode is classified"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "package.entrypoint.isolated-dependency-install:wecom",
|
||||
"fixture": "wecom",
|
||||
@ -1781,6 +2254,19 @@
|
||||
"cold import failure mode is classified"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "package.entrypoint.typescript-loader:opik-openclaw",
|
||||
"fixture": "opik-openclaw",
|
||||
"priority": "P2",
|
||||
"target": "package-loader",
|
||||
"evidence": [
|
||||
"extension:plugins/opik-openclaw/index.ts"
|
||||
],
|
||||
"assertions": [
|
||||
"entrypoint metadata resolves",
|
||||
"cold import failure mode is classified"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "package.metadata.version-alignment:a2a-gateway",
|
||||
"fixture": "a2a-gateway",
|
||||
@ -1821,6 +2307,27 @@
|
||||
"migration metadata is visible when alias is missing"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sdk.import.root-barrel-cold-import:opik-openclaw",
|
||||
"fixture": "opik-openclaw",
|
||||
"priority": "P2",
|
||||
"target": "sdk-alias",
|
||||
"evidence": [
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:1",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:2",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/cli.ts:1",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/configure.ts:2",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:5",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:6",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/llm.ts:1",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/subagent.ts:1",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/tool.ts:1"
|
||||
],
|
||||
"assertions": [
|
||||
"package export exists",
|
||||
"migration metadata is visible when alias is missing"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "tool.registration.schema-capture:a2a-gateway",
|
||||
"fixture": "a2a-gateway",
|
||||
|
||||
@ -6,13 +6,13 @@ Generated: deterministic
|
||||
|
||||
| Metric | Value |
|
||||
| ----------------------- | ----- |
|
||||
| Fixtures | 11 |
|
||||
| Registrations | 28 |
|
||||
| Hooks | 8 |
|
||||
| SDK imports | 32 |
|
||||
| Package entrypoints | 13 |
|
||||
| Issue probes | 50 |
|
||||
| Inspector shim required | 17 |
|
||||
| Fixtures | 12 |
|
||||
| Registrations | 30 |
|
||||
| Hooks | 18 |
|
||||
| SDK imports | 41 |
|
||||
| Package entrypoints | 15 |
|
||||
| Issue probes | 57 |
|
||||
| Inspector shim required | 18 |
|
||||
| Compat aliases required | 3 |
|
||||
|
||||
## Registration Capture
|
||||
@ -35,6 +35,8 @@ Generated: deterministic
|
||||
| hasdata | registerTool | target-captured | plugins/hasdata/src/index.ts:43 | tool name is stable; input schema is captured; result shape metadata is captured |
|
||||
| mcp-adapter | registerService | inspector-shim-required | plugins/mcp-adapter/index.ts:15 | service id is stable; start/stop lifecycle handlers are captured |
|
||||
| mcp-adapter | registerTool | target-captured | plugins/mcp-adapter/index.ts:30 | tool name is stable; input schema is captured; result shape metadata is captured |
|
||||
| opik-openclaw | registerCli | target-captured | plugins/opik-openclaw/index.ts:17 | command name is stable; argument schema is captured |
|
||||
| opik-openclaw | registerService | inspector-shim-required | plugins/opik-openclaw/index.ts:16 | service id is stable; start/stop lifecycle handlers are captured |
|
||||
| clawmetry | definePluginEntry | inspector-shim-required | plugins/clawmetry/clawhub-plugin/index.ts:4 | entrypoint register function is callable; entrypoint metadata is preserved |
|
||||
| clawmetry | registerService | inspector-shim-required | plugins/clawmetry/clawhub-plugin/index.ts:9 | service id is stable; start/stop lifecycle handlers are captured |
|
||||
| codex-app-server | registerCommand | inspector-shim-required | plugins/codex-app-server/index.ts:48 | command id is stable; interactive command payload is captured |
|
||||
@ -50,16 +52,26 @@ Generated: deterministic
|
||||
|
||||
## Hook Probes
|
||||
|
||||
| Fixture | Hook | Support | Evidence | Assertions |
|
||||
| ----------------- | ------------------------ | ------------------------ | -------------------------------------- | ----------------------------------------------------------------------------------- |
|
||||
| wecom | before_prompt_build | synthetic-event-required | plugins/wecom/index.js:53 | prompt mutation result is preserved; agent and conversation metadata are present |
|
||||
| wecom | before_tool_call | synthetic-event-required | plugins/wecom/index.js:65 | block/allow return shapes are preserved; terminal and approval metadata are present |
|
||||
| wecom | subagent_delivery_target | synthetic-event-required | plugins/wecom/index.js:61 | target routing result is preserved; parent/subagent metadata are present |
|
||||
| wecom | subagent_ended | synthetic-event-required | plugins/wecom/index.js:63 | subagent completion payload is preserved; status metadata is present |
|
||||
| wecom | subagent_spawned | synthetic-event-required | plugins/wecom/index.js:62 | spawn payload is preserved; parent/subagent metadata are present |
|
||||
| llm-trace-phoenix | llm_input | synthetic-event-required | plugins/llm-trace-phoenix/index.ts:154 | model input payload is redacted as expected; model and agent metadata are present |
|
||||
| llm-trace-phoenix | llm_output | synthetic-event-required | plugins/llm-trace-phoenix/index.ts:168 | model output payload is redacted as expected; model and agent metadata are present |
|
||||
| codex-app-server | inbound_claim | synthetic-event-required | plugins/codex-app-server/index.ts:25 | claim payload preserves channel/source identity; routing metadata is present |
|
||||
| Fixture | Hook | Support | Evidence | Assertions |
|
||||
| ----------------- | ------------------------ | ------------------------ | ------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
|
||||
| wecom | before_prompt_build | synthetic-event-required | plugins/wecom/index.js:53 | prompt mutation result is preserved; agent and conversation metadata are present |
|
||||
| wecom | before_tool_call | synthetic-event-required | plugins/wecom/index.js:65 | block/allow return shapes are preserved; terminal and approval metadata are present |
|
||||
| wecom | subagent_delivery_target | synthetic-event-required | plugins/wecom/index.js:61 | target routing result is preserved; parent/subagent metadata are present |
|
||||
| wecom | subagent_ended | synthetic-event-required | plugins/wecom/index.js:63 | subagent completion payload is preserved; status metadata is present |
|
||||
| wecom | subagent_spawned | synthetic-event-required | plugins/wecom/index.js:62 | spawn payload is preserved; parent/subagent metadata are present |
|
||||
| llm-trace-phoenix | llm_input | synthetic-event-required | plugins/llm-trace-phoenix/index.ts:154 | model input payload is redacted as expected; model and agent metadata are present |
|
||||
| llm-trace-phoenix | llm_output | synthetic-event-required | plugins/llm-trace-phoenix/index.ts:168 | model output payload is redacted as expected; model and agent metadata are present |
|
||||
| opik-openclaw | after_tool_call | synthetic-event-required | plugins/opik-openclaw/src/service/hooks/tool.ts:100 | hook payload and return value are captured |
|
||||
| opik-openclaw | agent_end | synthetic-event-required | plugins/opik-openclaw/src/service.ts:560 | final conversation payload is redacted as expected; agent id and run metadata are present |
|
||||
| opik-openclaw | before_tool_call | synthetic-event-required | plugins/opik-openclaw/src/service/hooks/tool.ts:34 | block/allow return shapes are preserved; terminal and approval metadata are present |
|
||||
| opik-openclaw | llm_input | synthetic-event-required | plugins/opik-openclaw/src/service/hooks/llm.ts:39 | model input payload is redacted as expected; model and agent metadata are present |
|
||||
| opik-openclaw | llm_output | synthetic-event-required | plugins/opik-openclaw/src/service/hooks/llm.ts:150 | model output payload is redacted as expected; model and agent metadata are present |
|
||||
| opik-openclaw | subagent_delivery_target | synthetic-event-required | plugins/opik-openclaw/src/service/hooks/subagent.ts:147 | target routing result is preserved; parent/subagent metadata are present |
|
||||
| opik-openclaw | subagent_ended | synthetic-event-required | plugins/opik-openclaw/src/service/hooks/subagent.ts:222 | subagent completion payload is preserved; status metadata is present |
|
||||
| opik-openclaw | subagent_spawned | synthetic-event-required | plugins/opik-openclaw/src/service/hooks/subagent.ts:89 | spawn payload is preserved; parent/subagent metadata are present |
|
||||
| opik-openclaw | subagent_spawning | synthetic-event-required | plugins/opik-openclaw/src/service/hooks/subagent.ts:38 | hook payload and return value are captured |
|
||||
| opik-openclaw | tool_result_persist | synthetic-event-required | plugins/opik-openclaw/src/service.ts:541 | hook payload and return value are captured |
|
||||
| codex-app-server | inbound_claim | synthetic-event-required | plugins/codex-app-server/index.ts:25 | claim payload preserves channel/source identity; routing metadata is present |
|
||||
|
||||
## SDK Import Probes
|
||||
|
||||
@ -78,6 +90,15 @@ Generated: deterministic
|
||||
| wecom | openclaw/plugin-sdk/status-helpers | target-exported | plugins/wecom/wecom/channel-plugin.js:6 | package export exists; cold import resolves without plugin credentials |
|
||||
| a2a-gateway | openclaw/plugin-sdk | target-exported | plugins/a2a-gateway/src/types.ts:14 | package export exists; cold import resolves without plugin credentials |
|
||||
| llm-trace-phoenix | openclaw/plugin-sdk | target-exported | plugins/llm-trace-phoenix/index.ts:12 | package export exists; cold import resolves without plugin credentials |
|
||||
| opik-openclaw | openclaw/plugin-sdk | target-exported | plugins/opik-openclaw/index.ts:1 | package export exists; cold import resolves without plugin credentials |
|
||||
| opik-openclaw | openclaw/plugin-sdk | target-exported | plugins/opik-openclaw/index.ts:2 | package export exists; cold import resolves without plugin credentials |
|
||||
| opik-openclaw | openclaw/plugin-sdk | target-exported | plugins/opik-openclaw/src/cli.ts:1 | package export exists; cold import resolves without plugin credentials |
|
||||
| opik-openclaw | openclaw/plugin-sdk | target-exported | plugins/opik-openclaw/src/configure.ts:2 | package export exists; cold import resolves without plugin credentials |
|
||||
| opik-openclaw | openclaw/plugin-sdk | target-exported | plugins/opik-openclaw/src/service.ts:5 | package export exists; cold import resolves without plugin credentials |
|
||||
| opik-openclaw | openclaw/plugin-sdk | target-exported | plugins/opik-openclaw/src/service.ts:6 | package export exists; cold import resolves without plugin credentials |
|
||||
| opik-openclaw | openclaw/plugin-sdk | target-exported | plugins/opik-openclaw/src/service/hooks/llm.ts:1 | package export exists; cold import resolves without plugin credentials |
|
||||
| opik-openclaw | openclaw/plugin-sdk | target-exported | plugins/opik-openclaw/src/service/hooks/subagent.ts:1 | package export exists; cold import resolves without plugin credentials |
|
||||
| opik-openclaw | openclaw/plugin-sdk | target-exported | plugins/opik-openclaw/src/service/hooks/tool.ts:1 | package export exists; cold import resolves without plugin credentials |
|
||||
| clawmetry | openclaw/plugin-sdk/diagnostics-otel | target-exported | plugins/clawmetry/clawhub-plugin/src/service.ts:2 | package export exists; cold import resolves without plugin credentials |
|
||||
| clawmetry | openclaw/plugin-sdk/plugin-entry | target-exported | plugins/clawmetry/clawhub-plugin/index.ts:1 | package export exists; cold import resolves without plugin credentials |
|
||||
| clawmetry | openclaw/plugin-sdk/plugin-entry | target-exported | plugins/clawmetry/clawhub-plugin/src/service.ts:1 | package export exists; cold import resolves without plugin credentials |
|
||||
@ -100,55 +121,62 @@ Generated: deterministic
|
||||
|
||||
## Issue Probe Backlog
|
||||
|
||||
| ID | Priority | Fixture | Target | Assertions | Evidence |
|
||||
| --------------------------------------------------------------- | -------- | ----------------- | --------------------- | ---------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| api.capture.runtime-registrars:a2a-gateway | P1 | a2a-gateway | inspector-capture-api | registration arguments are recorded; registered handler metadata is retained | registerGatewayMethod @ plugins/a2a-gateway/index.ts:616, registerGatewayMethod @ plugins/a2a-gateway/index.ts:622, registerGatewayMethod @ plugins/a2a-gateway/index.ts:631, registerGatewayMethod @ plugins/a2a-gateway/index.ts:657, registerGatewayMethod @ plugins/a2a-gateway/index.ts:669, registerService @ plugins/a2a-gateway/index.ts:857 |
|
||||
| api.capture.runtime-registrars:clawmetry | P1 | clawmetry | inspector-capture-api | registration arguments are recorded; registered handler metadata is retained | registerService @ plugins/clawmetry/clawhub-plugin/index.ts:9 |
|
||||
| api.capture.runtime-registrars:codex-app-server | P1 | codex-app-server | inspector-capture-api | registration arguments are recorded; registered handler metadata is retained | registerCommand @ plugins/codex-app-server/index.ts:48, registerInteractiveHandler @ plugins/codex-app-server/index.ts:29, registerInteractiveHandler @ plugins/codex-app-server/index.ts:38, registerService @ plugins/codex-app-server/index.ts:12 |
|
||||
| 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: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:45 |
|
||||
| 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:65 |
|
||||
| hook.llm-observer.privacy-payload:llm-trace-phoenix | P1 | llm-trace-phoenix | hook-runner | synthetic event payload is accepted; return semantics are preserved | llm_input @ plugins/llm-trace-phoenix/index.ts:154, llm_output @ plugins/llm-trace-phoenix/index.ts:168 |
|
||||
| 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 |
|
||||
| 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 |
|
||||
| channel.runtime.envelope-config-metadata:wecom | P2 | wecom | channel-runtime | message envelope is stable; sender/config metadata is preserved | registerChannel @ plugins/wecom/index.js:27 |
|
||||
| manifest.compat.channel-env-vars:agentchat | P2 | agentchat | manifest-loader | metadata key is accepted; migration or compatibility mapping is visible | agentchat |
|
||||
| manifest.compat.provider-auth-env-vars:hasdata | P2 | hasdata | manifest-loader | metadata key is accepted; migration or compatibility mapping is visible | hasdata |
|
||||
| manifest.schema.top-level-fields:a2a-gateway | P2 | a2a-gateway | manifest-loader | metadata key is accepted; migration or compatibility mapping is visible | defaultConfig @ plugins/a2a-gateway/openclaw.plugin.json |
|
||||
| manifest.schema.top-level-fields:agentchat | P2 | agentchat | manifest-loader | metadata key is accepted; migration or compatibility mapping is visible | displayName @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, homepage @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, icon @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json |
|
||||
| package.compat.plugin-api-range:a2a-gateway | P2 | a2a-gateway | package-loader | entrypoint metadata resolves; cold import failure mode is classified | plugins/a2a-gateway/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:wecom | P2 | wecom | package-loader | entrypoint metadata resolves; cold import failure mode is classified | plugins/wecom/package.json |
|
||||
| package.entrypoint.build-before-cold-import:agentchat | P2 | agentchat | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:./dist/index.js -> plugins/agentchat/integrations/openclaw-channel/dist/index.js, setupEntry:./dist/setup-entry.js -> plugins/agentchat/integrations/openclaw-channel/dist/setup-entry.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, openclaw @ plugins/agentchat/integrations/openclaw-channel/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:hasdata | P2 | hasdata | package-loader | entrypoint metadata resolves; cold import failure mode is classified | @sinclair/typebox @ plugins/hasdata/package.json, openclaw @ plugins/hasdata/package.json |
|
||||
| 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:wecom | P2 | wecom | package-loader | entrypoint metadata resolves; cold import failure mode is classified | @wecom/aibot-node-sdk @ plugins/wecom/package.json, file-type @ plugins/wecom/package.json, pinyin-pro @ plugins/wecom/package.json, openclaw @ plugins/wecom/package.json, undici @ plugins/wecom/package.json |
|
||||
| package.entrypoint.typescript-loader:a2a-gateway | P2 | a2a-gateway | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:plugins/a2a-gateway/index.ts |
|
||||
| package.entrypoint.typescript-loader:hasdata | P2 | hasdata | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:plugins/hasdata/src/index.ts |
|
||||
| package.entrypoint.typescript-loader:llm-trace-phoenix | P2 | llm-trace-phoenix | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:plugins/llm-trace-phoenix/index.ts |
|
||||
| package.entrypoint.typescript-loader:mcp-adapter | P2 | mcp-adapter | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:plugins/mcp-adapter/index.ts |
|
||||
| package.metadata.version-alignment:a2a-gateway | P2 | a2a-gateway | package-loader | entrypoint metadata resolves; cold import failure mode is classified | package:1.4.0, manifest:1.3.0 |
|
||||
| sdk.import.root-barrel-cold-import:a2a-gateway | P2 | a2a-gateway | sdk-alias | package export exists; migration metadata is visible when alias is missing | openclaw/plugin-sdk @ plugins/a2a-gateway/src/types.ts:14 |
|
||||
| sdk.import.root-barrel-cold-import:llm-trace-phoenix | P2 | llm-trace-phoenix | sdk-alias | package export exists; migration metadata is visible when alias is missing | openclaw/plugin-sdk @ plugins/llm-trace-phoenix/index.ts:12 |
|
||||
| tool.registration.schema-capture:a2a-gateway | P2 | a2a-gateway | tool-runtime | tool schema is captured; tool result metadata is retained | registerTool @ plugins/a2a-gateway/index.ts:777 |
|
||||
| tool.registration.schema-capture:mcp-adapter | P2 | mcp-adapter | tool-runtime | tool schema is captured; tool result metadata is retained | registerTool @ plugins/mcp-adapter/index.ts:30 |
|
||||
| tool.registration.schema-capture:wecom | P2 | wecom | tool-runtime | tool schema is captured; tool result metadata is retained | registerTool @ plugins/wecom/index.js:28, registerTool @ plugins/wecom/index.js:29, registerTool @ plugins/wecom/index.js:33 |
|
||||
| manifest.compat.provider-auth-env-vars:inworld-tts | P3 | inworld-tts | manifest-loader | metadata key is accepted; migration or compatibility mapping is visible | inworld |
|
||||
| manifest.compat.provider-auth-env-vars:web-search-plus | P3 | web-search-plus | manifest-loader | metadata key is accepted; migration or compatibility mapping is visible | serper, tavily, linkup, querit, exa, firecrawl, perplexity, you, searxng |
|
||||
| package.entrypoint.build-before-cold-import:clawmetry | P3 | clawmetry | package-loader | entrypoint metadata resolves; cold import failure mode is classified | runtimeExtension:./dist/index.js -> plugins/clawmetry/clawhub-plugin/dist/index.js |
|
||||
| package.entrypoint.isolated-dependency-install:apify | P3 | apify | package-loader | entrypoint metadata resolves; cold import failure mode is classified | @sinclair/typebox @ plugins/apify/package.json, apify-client @ plugins/apify/package.json, openclaw @ plugins/apify/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:clawmetry | P3 | clawmetry | package-loader | entrypoint metadata resolves; cold import failure mode is classified | node-fetch @ plugins/clawmetry/clawhub-plugin/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:codex-app-server | P3 | codex-app-server | package-loader | entrypoint metadata resolves; cold import failure mode is classified | ws @ plugins/codex-app-server/package.json, openclaw @ plugins/codex-app-server/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:inworld-tts | P3 | inworld-tts | package-loader | entrypoint metadata resolves; cold import failure mode is classified | openclaw @ plugins/inworld-tts/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:web-search-plus | P3 | web-search-plus | package-loader | entrypoint metadata resolves; cold import failure mode is classified | openclaw @ plugins/web-search-plus/package.json |
|
||||
| package.entrypoint.typescript-loader:apify | P3 | apify | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:plugins/apify/src/index.ts |
|
||||
| package.entrypoint.typescript-loader:clawmetry | P3 | clawmetry | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:plugins/clawmetry/clawhub-plugin/index.ts |
|
||||
| package.entrypoint.typescript-loader:codex-app-server | P3 | codex-app-server | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:plugins/codex-app-server/index.ts |
|
||||
| package.entrypoint.typescript-loader:inworld-tts | P3 | inworld-tts | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:plugins/inworld-tts/index.ts |
|
||||
| package.entrypoint.typescript-loader:web-search-plus | P3 | web-search-plus | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:plugins/web-search-plus/index.ts |
|
||||
| sdk.import.root-barrel-cold-import:apify | P3 | apify | sdk-alias | package export exists; migration metadata is visible when alias is missing | openclaw/plugin-sdk @ plugins/apify/src/cli.ts:2, openclaw/plugin-sdk @ plugins/apify/src/index.ts:1, openclaw/plugin-sdk @ plugins/apify/src/tools/apify-scraper-tool.ts:4 |
|
||||
| sdk.import.root-barrel-cold-import:codex-app-server | P3 | codex-app-server | sdk-alias | package export exists; migration metadata is visible when alias is missing | openclaw/plugin-sdk @ plugins/codex-app-server/index.ts:1, openclaw/plugin-sdk @ plugins/codex-app-server/src/client.ts:6, openclaw/plugin-sdk @ plugins/codex-app-server/src/controller.ts:18, openclaw/plugin-sdk @ plugins/codex-app-server/src/types.ts:1 |
|
||||
| tool.registration.schema-capture:apify | P3 | apify | tool-runtime | tool schema is captured; tool result metadata is retained | registerTool @ plugins/apify/src/index.ts:13 |
|
||||
| tool.registration.schema-capture:web-search-plus | P3 | web-search-plus | tool-runtime | tool schema is captured; tool result metadata is retained | registerTool @ plugins/web-search-plus/index.ts:815, registerTool @ plugins/web-search-plus/index.ts:947 |
|
||||
| ID | Priority | Fixture | Target | Assertions | Evidence |
|
||||
| --------------------------------------------------------------- | -------- | ----------------- | --------------------- | ---------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| api.capture.runtime-registrars:a2a-gateway | P1 | a2a-gateway | inspector-capture-api | registration arguments are recorded; registered handler metadata is retained | registerGatewayMethod @ plugins/a2a-gateway/index.ts:616, registerGatewayMethod @ plugins/a2a-gateway/index.ts:622, registerGatewayMethod @ plugins/a2a-gateway/index.ts:631, registerGatewayMethod @ plugins/a2a-gateway/index.ts:657, registerGatewayMethod @ plugins/a2a-gateway/index.ts:669, registerService @ plugins/a2a-gateway/index.ts:857 |
|
||||
| api.capture.runtime-registrars:clawmetry | P1 | clawmetry | inspector-capture-api | registration arguments are recorded; registered handler metadata is retained | registerService @ plugins/clawmetry/clawhub-plugin/index.ts:9 |
|
||||
| api.capture.runtime-registrars:codex-app-server | P1 | codex-app-server | inspector-capture-api | registration arguments are recorded; registered handler metadata is retained | registerCommand @ plugins/codex-app-server/index.ts:48, registerInteractiveHandler @ plugins/codex-app-server/index.ts:29, registerInteractiveHandler @ plugins/codex-app-server/index.ts:38, registerService @ plugins/codex-app-server/index.ts:12 |
|
||||
| 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:opik-openclaw | P1 | opik-openclaw | inspector-capture-api | registration arguments are recorded; registered handler metadata is retained | registerService @ plugins/opik-openclaw/index.ts:16 |
|
||||
| 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:45 |
|
||||
| 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:65 |
|
||||
| hook.llm-observer.privacy-payload:llm-trace-phoenix | P1 | llm-trace-phoenix | hook-runner | synthetic event payload is accepted; return semantics are preserved | llm_input @ plugins/llm-trace-phoenix/index.ts:154, llm_output @ plugins/llm-trace-phoenix/index.ts:168 |
|
||||
| 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: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 |
|
||||
| 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 |
|
||||
| channel.runtime.envelope-config-metadata:wecom | P2 | wecom | channel-runtime | message envelope is stable; sender/config metadata is preserved | registerChannel @ plugins/wecom/index.js:27 |
|
||||
| manifest.compat.channel-env-vars:agentchat | P2 | agentchat | manifest-loader | metadata key is accepted; migration or compatibility mapping is visible | agentchat |
|
||||
| manifest.compat.provider-auth-env-vars:hasdata | P2 | hasdata | manifest-loader | metadata key is accepted; migration or compatibility mapping is visible | hasdata |
|
||||
| manifest.schema.top-level-fields:a2a-gateway | P2 | a2a-gateway | manifest-loader | metadata key is accepted; migration or compatibility mapping is visible | defaultConfig @ plugins/a2a-gateway/openclaw.plugin.json |
|
||||
| manifest.schema.top-level-fields:agentchat | P2 | agentchat | manifest-loader | metadata key is accepted; migration or compatibility mapping is visible | displayName @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, homepage @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, icon @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json |
|
||||
| package.compat.plugin-api-range:a2a-gateway | P2 | a2a-gateway | package-loader | entrypoint metadata resolves; cold import failure mode is classified | plugins/a2a-gateway/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:wecom | P2 | wecom | package-loader | entrypoint metadata resolves; cold import failure mode is classified | plugins/wecom/package.json |
|
||||
| package.entrypoint.build-before-cold-import:agentchat | P2 | agentchat | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:./dist/index.js -> plugins/agentchat/integrations/openclaw-channel/dist/index.js, setupEntry:./dist/setup-entry.js -> plugins/agentchat/integrations/openclaw-channel/dist/setup-entry.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, openclaw @ plugins/agentchat/integrations/openclaw-channel/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:hasdata | P2 | hasdata | package-loader | entrypoint metadata resolves; cold import failure mode is classified | @sinclair/typebox @ plugins/hasdata/package.json, openclaw @ plugins/hasdata/package.json |
|
||||
| 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: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, openclaw @ plugins/opik-openclaw/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:wecom | P2 | wecom | package-loader | entrypoint metadata resolves; cold import failure mode is classified | @wecom/aibot-node-sdk @ plugins/wecom/package.json, file-type @ plugins/wecom/package.json, pinyin-pro @ plugins/wecom/package.json, openclaw @ plugins/wecom/package.json, undici @ plugins/wecom/package.json |
|
||||
| package.entrypoint.typescript-loader:a2a-gateway | P2 | a2a-gateway | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:plugins/a2a-gateway/index.ts |
|
||||
| package.entrypoint.typescript-loader:hasdata | P2 | hasdata | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:plugins/hasdata/src/index.ts |
|
||||
| package.entrypoint.typescript-loader:llm-trace-phoenix | P2 | llm-trace-phoenix | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:plugins/llm-trace-phoenix/index.ts |
|
||||
| package.entrypoint.typescript-loader:mcp-adapter | P2 | mcp-adapter | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:plugins/mcp-adapter/index.ts |
|
||||
| package.entrypoint.typescript-loader:opik-openclaw | P2 | opik-openclaw | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:plugins/opik-openclaw/index.ts |
|
||||
| package.metadata.version-alignment:a2a-gateway | P2 | a2a-gateway | package-loader | entrypoint metadata resolves; cold import failure mode is classified | package:1.4.0, manifest:1.3.0 |
|
||||
| sdk.import.root-barrel-cold-import:a2a-gateway | P2 | a2a-gateway | sdk-alias | package export exists; migration metadata is visible when alias is missing | openclaw/plugin-sdk @ plugins/a2a-gateway/src/types.ts:14 |
|
||||
| sdk.import.root-barrel-cold-import:llm-trace-phoenix | P2 | llm-trace-phoenix | sdk-alias | package export exists; migration metadata is visible when alias is missing | openclaw/plugin-sdk @ plugins/llm-trace-phoenix/index.ts:12 |
|
||||
| sdk.import.root-barrel-cold-import:opik-openclaw | P2 | opik-openclaw | sdk-alias | package export exists; migration metadata is visible when alias is missing | openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:2, openclaw/plugin-sdk @ plugins/opik-openclaw/src/cli.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/configure.ts:2, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:5, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:6, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/llm.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/subagent.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/tool.ts:1 |
|
||||
| tool.registration.schema-capture:a2a-gateway | P2 | a2a-gateway | tool-runtime | tool schema is captured; tool result metadata is retained | registerTool @ plugins/a2a-gateway/index.ts:777 |
|
||||
| tool.registration.schema-capture:mcp-adapter | P2 | mcp-adapter | tool-runtime | tool schema is captured; tool result metadata is retained | registerTool @ plugins/mcp-adapter/index.ts:30 |
|
||||
| tool.registration.schema-capture:wecom | P2 | wecom | tool-runtime | tool schema is captured; tool result metadata is retained | registerTool @ plugins/wecom/index.js:28, registerTool @ plugins/wecom/index.js:29, registerTool @ plugins/wecom/index.js:33 |
|
||||
| manifest.compat.provider-auth-env-vars:inworld-tts | P3 | inworld-tts | manifest-loader | metadata key is accepted; migration or compatibility mapping is visible | inworld |
|
||||
| manifest.compat.provider-auth-env-vars:web-search-plus | P3 | web-search-plus | manifest-loader | metadata key is accepted; migration or compatibility mapping is visible | serper, tavily, linkup, querit, exa, firecrawl, perplexity, you, searxng |
|
||||
| package.entrypoint.build-before-cold-import:clawmetry | P3 | clawmetry | package-loader | entrypoint metadata resolves; cold import failure mode is classified | runtimeExtension:./dist/index.js -> plugins/clawmetry/clawhub-plugin/dist/index.js |
|
||||
| package.entrypoint.isolated-dependency-install:apify | P3 | apify | package-loader | entrypoint metadata resolves; cold import failure mode is classified | @sinclair/typebox @ plugins/apify/package.json, apify-client @ plugins/apify/package.json, openclaw @ plugins/apify/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:clawmetry | P3 | clawmetry | package-loader | entrypoint metadata resolves; cold import failure mode is classified | node-fetch @ plugins/clawmetry/clawhub-plugin/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:codex-app-server | P3 | codex-app-server | package-loader | entrypoint metadata resolves; cold import failure mode is classified | ws @ plugins/codex-app-server/package.json, openclaw @ plugins/codex-app-server/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:inworld-tts | P3 | inworld-tts | package-loader | entrypoint metadata resolves; cold import failure mode is classified | openclaw @ plugins/inworld-tts/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:web-search-plus | P3 | web-search-plus | package-loader | entrypoint metadata resolves; cold import failure mode is classified | openclaw @ plugins/web-search-plus/package.json |
|
||||
| package.entrypoint.typescript-loader:apify | P3 | apify | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:plugins/apify/src/index.ts |
|
||||
| package.entrypoint.typescript-loader:clawmetry | P3 | clawmetry | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:plugins/clawmetry/clawhub-plugin/index.ts |
|
||||
| package.entrypoint.typescript-loader:codex-app-server | P3 | codex-app-server | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:plugins/codex-app-server/index.ts |
|
||||
| package.entrypoint.typescript-loader:inworld-tts | P3 | inworld-tts | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:plugins/inworld-tts/index.ts |
|
||||
| package.entrypoint.typescript-loader:web-search-plus | P3 | web-search-plus | package-loader | entrypoint metadata resolves; cold import failure mode is classified | extension:plugins/web-search-plus/index.ts |
|
||||
| sdk.import.root-barrel-cold-import:apify | P3 | apify | sdk-alias | package export exists; migration metadata is visible when alias is missing | openclaw/plugin-sdk @ plugins/apify/src/cli.ts:2, openclaw/plugin-sdk @ plugins/apify/src/index.ts:1, openclaw/plugin-sdk @ plugins/apify/src/tools/apify-scraper-tool.ts:4 |
|
||||
| sdk.import.root-barrel-cold-import:codex-app-server | P3 | codex-app-server | sdk-alias | package export exists; migration metadata is visible when alias is missing | openclaw/plugin-sdk @ plugins/codex-app-server/index.ts:1, openclaw/plugin-sdk @ plugins/codex-app-server/src/client.ts:6, openclaw/plugin-sdk @ plugins/codex-app-server/src/controller.ts:18, openclaw/plugin-sdk @ plugins/codex-app-server/src/types.ts:1 |
|
||||
| tool.registration.schema-capture:apify | P3 | apify | tool-runtime | tool schema is captured; tool result metadata is retained | registerTool @ plugins/apify/src/index.ts:13 |
|
||||
| tool.registration.schema-capture:web-search-plus | P3 | web-search-plus | tool-runtime | tool schema is captured; tool result metadata is retained | registerTool @ plugins/web-search-plus/index.ts:815, registerTool @ plugins/web-search-plus/index.ts:947 |
|
||||
|
||||
88
reports/crabpot-ci-policy.json
Normal file
88
reports/crabpot-ci-policy.json
Normal file
@ -0,0 +1,88 @@
|
||||
{
|
||||
"generatedAt": "deterministic",
|
||||
"status": "pass",
|
||||
"strict": false,
|
||||
"policy": {
|
||||
"allowedBlocked": 2,
|
||||
"expectedWarnings": 1,
|
||||
"fixtureSets": [
|
||||
"build",
|
||||
"sdk-alias",
|
||||
"side-effect-review",
|
||||
"smoke"
|
||||
],
|
||||
"thresholds": {
|
||||
"wallP95RegressionPercent": 50,
|
||||
"peakRssRegressionMb": 50,
|
||||
"bootRegressionMs": 500,
|
||||
"strictMinimumSamples": 3
|
||||
}
|
||||
},
|
||||
"summary": {
|
||||
"checkCount": 6,
|
||||
"failCount": 0,
|
||||
"warnCount": 2,
|
||||
"passCount": 4
|
||||
},
|
||||
"checks": [
|
||||
{
|
||||
"id": "execution-results.blocked.wecom.registerChannel.0",
|
||||
"action": "warn",
|
||||
"message": "allowed-blocked: captured registration requires includeChannelRuntime=true",
|
||||
"evidence": [
|
||||
".crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json",
|
||||
"registerChannel",
|
||||
"captured registration requires includeChannelRuntime=true",
|
||||
"channel-runtime-harness"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "execution-results.blocked.wecom.registerTool.2",
|
||||
"action": "warn",
|
||||
"message": "expected-warning: captured registration has no object descriptor",
|
||||
"evidence": [
|
||||
".crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json",
|
||||
"registerTool",
|
||||
"captured registration has no object descriptor",
|
||||
"tool-factory-descriptor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "compatibility-report.breakages",
|
||||
"action": "pass",
|
||||
"message": "0 hard breakages",
|
||||
"evidence": []
|
||||
},
|
||||
{
|
||||
"id": "compatibility-report.p1-issues",
|
||||
"action": "pass",
|
||||
"message": "12 P1 issues tracked",
|
||||
"evidence": [
|
||||
"a2a-gateway:registration-capture-gap",
|
||||
"clawmetry:registration-capture-gap",
|
||||
"codex-app-server:missing-compat-record",
|
||||
"codex-app-server:registration-capture-gap",
|
||||
"codex-app-server:sdk-export-missing",
|
||||
"llm-trace-phoenix:conversation-access-hook",
|
||||
"mcp-adapter:registration-capture-gap",
|
||||
"opik-openclaw:before-tool-call-probe",
|
||||
"opik-openclaw:conversation-access-hook",
|
||||
"opik-openclaw:registration-capture-gap",
|
||||
"wecom:before-tool-call-probe",
|
||||
"wecom:registration-capture-gap"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "execution-results.audit-findings",
|
||||
"action": "pass",
|
||||
"message": "0 package audit findings",
|
||||
"evidence": []
|
||||
},
|
||||
{
|
||||
"id": "execution-results.failures",
|
||||
"action": "pass",
|
||||
"message": "0 failed synthetic probes",
|
||||
"evidence": []
|
||||
}
|
||||
]
|
||||
}
|
||||
28
reports/crabpot-ci-policy.md
Normal file
28
reports/crabpot-ci-policy.md
Normal file
@ -0,0 +1,28 @@
|
||||
# Crabpot CI Policy
|
||||
|
||||
Generated: deterministic
|
||||
Status: PASS
|
||||
Strict: false
|
||||
|
||||
## Summary
|
||||
|
||||
| Metric | Value |
|
||||
| ---------------------- | ------------------------------------------- |
|
||||
| Checks | 6 |
|
||||
| Fail | 0 |
|
||||
| Warn | 2 |
|
||||
| Pass | 4 |
|
||||
| Allowed blocked rules | 2 |
|
||||
| Expected warning rules | 1 |
|
||||
| Fixture sets | build, sdk-alias, side-effect-review, smoke |
|
||||
|
||||
## Checks
|
||||
|
||||
| Action | ID | Message | Evidence |
|
||||
| ------ | ------------------------------------------------- | -------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| warn | execution-results.blocked.wecom.registerChannel.0 | allowed-blocked: captured registration requires includeChannelRuntime=true | .crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json, registerChannel, captured registration requires includeChannelRuntime=true, channel-runtime-harness |
|
||||
| warn | execution-results.blocked.wecom.registerTool.2 | expected-warning: captured registration has no object descriptor | .crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json, registerTool, captured registration has no object descriptor, tool-factory-descriptor |
|
||||
| pass | compatibility-report.breakages | 0 hard breakages | - |
|
||||
| pass | compatibility-report.p1-issues | 12 P1 issues tracked | a2a-gateway:registration-capture-gap, clawmetry:registration-capture-gap, codex-app-server:missing-compat-record, codex-app-server:registration-capture-gap, codex-app-server:sdk-export-missing, llm-trace-phoenix:conversation-access-hook, mcp-adapter:registration-capture-gap, opik-openclaw:before-tool-call-probe, opik-openclaw:conversation-access-hook, opik-openclaw:registration-capture-gap, wecom:before-tool-call-probe, wecom:registration-capture-gap |
|
||||
| pass | execution-results.audit-findings | 0 package audit findings | - |
|
||||
| pass | execution-results.failures | 0 failed synthetic probes | - |
|
||||
145
reports/crabpot-ci-summary.json
Normal file
145
reports/crabpot-ci-summary.json
Normal file
@ -0,0 +1,145 @@
|
||||
{
|
||||
"generatedAt": "deterministic",
|
||||
"mode": "local",
|
||||
"openclawLabel": "../openclaw",
|
||||
"status": "pass",
|
||||
"summary": {
|
||||
"breakages": 0,
|
||||
"warnings": 18,
|
||||
"suggestions": 40,
|
||||
"issues": 58,
|
||||
"p1Issues": 12,
|
||||
"refDiffFailures": 0,
|
||||
"refDiffWarnings": 0,
|
||||
"policyFailures": 0,
|
||||
"policyWarnings": 2,
|
||||
"profileWarnings": 0,
|
||||
"executionPass": 6,
|
||||
"executionFail": 0,
|
||||
"executionBlocked": 2
|
||||
},
|
||||
"topIssues": [
|
||||
{
|
||||
"severity": "P1",
|
||||
"fixture": "a2a-gateway",
|
||||
"code": "registration-capture-gap",
|
||||
"title": "a2a-gateway: runtime registrations need capture before contract judgment",
|
||||
"decision": "inspector-follow-up"
|
||||
},
|
||||
{
|
||||
"severity": "P1",
|
||||
"fixture": "clawmetry",
|
||||
"code": "registration-capture-gap",
|
||||
"title": "clawmetry: runtime registrations need capture before contract judgment",
|
||||
"decision": "inspector-follow-up"
|
||||
},
|
||||
{
|
||||
"severity": "P1",
|
||||
"fixture": "codex-app-server",
|
||||
"code": "missing-compat-record",
|
||||
"title": "codex-app-server: compat-dependent behavior lacks registry coverage",
|
||||
"decision": "core-compat-adapter"
|
||||
},
|
||||
{
|
||||
"severity": "P1",
|
||||
"fixture": "codex-app-server",
|
||||
"code": "registration-capture-gap",
|
||||
"title": "codex-app-server: runtime registrations need capture before contract judgment",
|
||||
"decision": "inspector-follow-up"
|
||||
},
|
||||
{
|
||||
"severity": "P1",
|
||||
"fixture": "codex-app-server",
|
||||
"code": "sdk-export-missing",
|
||||
"title": "codex-app-server: plugin SDK import aliases are missing from target package exports",
|
||||
"decision": "core-compat-adapter"
|
||||
},
|
||||
{
|
||||
"severity": "P1",
|
||||
"fixture": "llm-trace-phoenix",
|
||||
"code": "conversation-access-hook",
|
||||
"title": "llm-trace-phoenix: conversation-access hooks need privacy-boundary probes",
|
||||
"decision": "inspector-follow-up"
|
||||
},
|
||||
{
|
||||
"severity": "P1",
|
||||
"fixture": "mcp-adapter",
|
||||
"code": "registration-capture-gap",
|
||||
"title": "mcp-adapter: runtime registrations need capture before contract judgment",
|
||||
"decision": "inspector-follow-up"
|
||||
},
|
||||
{
|
||||
"severity": "P1",
|
||||
"fixture": "opik-openclaw",
|
||||
"code": "before-tool-call-probe",
|
||||
"title": "opik-openclaw: before_tool_call needs terminal/block/approval probes",
|
||||
"decision": "inspector-follow-up"
|
||||
},
|
||||
{
|
||||
"severity": "P1",
|
||||
"fixture": "opik-openclaw",
|
||||
"code": "conversation-access-hook",
|
||||
"title": "opik-openclaw: conversation-access hooks need privacy-boundary probes",
|
||||
"decision": "inspector-follow-up"
|
||||
},
|
||||
{
|
||||
"severity": "P1",
|
||||
"fixture": "opik-openclaw",
|
||||
"code": "registration-capture-gap",
|
||||
"title": "opik-openclaw: runtime registrations need capture before contract judgment",
|
||||
"decision": "inspector-follow-up"
|
||||
},
|
||||
{
|
||||
"severity": "P1",
|
||||
"fixture": "wecom",
|
||||
"code": "before-tool-call-probe",
|
||||
"title": "wecom: before_tool_call needs terminal/block/approval probes",
|
||||
"decision": "inspector-follow-up"
|
||||
},
|
||||
{
|
||||
"severity": "P1",
|
||||
"fixture": "wecom",
|
||||
"code": "registration-capture-gap",
|
||||
"title": "wecom: runtime registrations need capture before contract judgment",
|
||||
"decision": "inspector-follow-up"
|
||||
}
|
||||
],
|
||||
"refRegressions": [],
|
||||
"policyFindings": [
|
||||
{
|
||||
"id": "execution-results.blocked.wecom.registerChannel.0",
|
||||
"action": "warn",
|
||||
"message": "allowed-blocked: captured registration requires includeChannelRuntime=true",
|
||||
"evidence": [
|
||||
".crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json",
|
||||
"registerChannel",
|
||||
"captured registration requires includeChannelRuntime=true",
|
||||
"channel-runtime-harness"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "execution-results.blocked.wecom.registerTool.2",
|
||||
"action": "warn",
|
||||
"message": "expected-warning: captured registration has no object descriptor",
|
||||
"evidence": [
|
||||
".crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json",
|
||||
"registerTool",
|
||||
"captured registration has no object descriptor",
|
||||
"tool-factory-descriptor"
|
||||
]
|
||||
}
|
||||
],
|
||||
"profileFindings": [],
|
||||
"artifacts": {
|
||||
"compatibility": "reports/crabpot-report.json",
|
||||
"capture": "reports/crabpot-capture.json",
|
||||
"synthetic": "reports/crabpot-synthetic-probes.json",
|
||||
"coldImport": "reports/crabpot-cold-import.json",
|
||||
"workspace": "reports/crabpot-workspace-plan.json",
|
||||
"execution": "reports/crabpot-execution-results.json",
|
||||
"runtimeProfile": "reports/crabpot-runtime-profile.json",
|
||||
"refDiff": "reports/crabpot-ref-diff.json",
|
||||
"profileDiff": "reports/crabpot-profile-diff.json",
|
||||
"ciPolicy": "reports/crabpot-ci-policy.json"
|
||||
}
|
||||
}
|
||||
71
reports/crabpot-ci-summary.md
Normal file
71
reports/crabpot-ci-summary.md
Normal file
@ -0,0 +1,71 @@
|
||||
# Crabpot CI Summary
|
||||
|
||||
Generated: deterministic
|
||||
Mode: local
|
||||
OpenClaw: ../openclaw
|
||||
Status: PASS
|
||||
|
||||
## Counts
|
||||
|
||||
| Metric | Value |
|
||||
| ----------------- | ----- |
|
||||
| Breakages | 0 |
|
||||
| Warnings | 18 |
|
||||
| Suggestions | 40 |
|
||||
| Issues | 58 |
|
||||
| P1 issues | 12 |
|
||||
| Ref diff failures | 0 |
|
||||
| Ref diff warnings | 0 |
|
||||
| Policy failures | 0 |
|
||||
| Policy warnings | 2 |
|
||||
| Profile warnings | 0 |
|
||||
| Execution pass | 6 |
|
||||
| Execution fail | 0 |
|
||||
| Execution blocked | 2 |
|
||||
|
||||
## Top Issues
|
||||
|
||||
| Severity | Fixture | Code | Decision | Title |
|
||||
| -------- | ----------------- | ------------------------ | ------------------- | ----------------------------------------------------------------------------------- |
|
||||
| P1 | a2a-gateway | registration-capture-gap | inspector-follow-up | a2a-gateway: runtime registrations need capture before contract judgment |
|
||||
| P1 | clawmetry | registration-capture-gap | inspector-follow-up | clawmetry: runtime registrations need capture before contract judgment |
|
||||
| P1 | codex-app-server | missing-compat-record | core-compat-adapter | codex-app-server: compat-dependent behavior lacks registry coverage |
|
||||
| P1 | codex-app-server | registration-capture-gap | inspector-follow-up | codex-app-server: runtime registrations need capture before contract judgment |
|
||||
| P1 | codex-app-server | sdk-export-missing | core-compat-adapter | codex-app-server: plugin SDK import aliases are missing from target package exports |
|
||||
| P1 | llm-trace-phoenix | conversation-access-hook | inspector-follow-up | llm-trace-phoenix: conversation-access hooks need privacy-boundary probes |
|
||||
| P1 | mcp-adapter | registration-capture-gap | inspector-follow-up | mcp-adapter: runtime registrations need capture before contract judgment |
|
||||
| P1 | opik-openclaw | before-tool-call-probe | inspector-follow-up | opik-openclaw: before_tool_call needs terminal/block/approval probes |
|
||||
| P1 | opik-openclaw | conversation-access-hook | inspector-follow-up | opik-openclaw: conversation-access hooks need privacy-boundary probes |
|
||||
| P1 | opik-openclaw | registration-capture-gap | inspector-follow-up | opik-openclaw: runtime registrations need capture before contract judgment |
|
||||
| P1 | wecom | before-tool-call-probe | inspector-follow-up | wecom: before_tool_call needs terminal/block/approval probes |
|
||||
| P1 | wecom | registration-capture-gap | inspector-follow-up | wecom: runtime registrations need capture before contract judgment |
|
||||
|
||||
## Ref Regressions
|
||||
|
||||
_none_
|
||||
|
||||
## Policy Findings
|
||||
|
||||
| Action | ID | Message | Evidence |
|
||||
| ------ | ------------------------------------------------- | -------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| warn | execution-results.blocked.wecom.registerChannel.0 | allowed-blocked: captured registration requires includeChannelRuntime=true | .crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json, registerChannel, captured registration requires includeChannelRuntime=true, channel-runtime-harness |
|
||||
| warn | execution-results.blocked.wecom.registerTool.2 | expected-warning: captured registration has no object descriptor | .crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json, registerTool, captured registration has no object descriptor, tool-factory-descriptor |
|
||||
|
||||
## Profile Findings
|
||||
|
||||
_none_
|
||||
|
||||
## Artifacts
|
||||
|
||||
| Artifact | Path |
|
||||
| -------------- | -------------------------------------- |
|
||||
| compatibility | reports/crabpot-report.json |
|
||||
| capture | reports/crabpot-capture.json |
|
||||
| synthetic | reports/crabpot-synthetic-probes.json |
|
||||
| coldImport | reports/crabpot-cold-import.json |
|
||||
| workspace | reports/crabpot-workspace-plan.json |
|
||||
| execution | reports/crabpot-execution-results.json |
|
||||
| runtimeProfile | reports/crabpot-runtime-profile.json |
|
||||
| refDiff | reports/crabpot-ref-diff.json |
|
||||
| profileDiff | reports/crabpot-profile-diff.json |
|
||||
| ciPolicy | reports/crabpot-ci-policy.json |
|
||||
@ -3,16 +3,16 @@
|
||||
"targetOpenClaw": {
|
||||
"status": "ok",
|
||||
"configuredPath": "../openclaw",
|
||||
"sdkExportCount": 306
|
||||
"sdkExportCount": 307
|
||||
},
|
||||
"summary": {
|
||||
"fixtureCount": 11,
|
||||
"entrypointCount": 13,
|
||||
"fixtureCount": 12,
|
||||
"entrypointCount": 15,
|
||||
"readyCount": 0,
|
||||
"blockedCount": 13,
|
||||
"tsLoaderRequiredCount": 8,
|
||||
"buildRequiredCount": 3,
|
||||
"dependencyInstallRequiredCount": 9,
|
||||
"blockedCount": 15,
|
||||
"tsLoaderRequiredCount": 9,
|
||||
"buildRequiredCount": 4,
|
||||
"dependencyInstallRequiredCount": 10,
|
||||
"sdkAliasRequiredCount": 1
|
||||
},
|
||||
"fixtures": [
|
||||
@ -215,6 +215,56 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "opik-openclaw",
|
||||
"priority": "high",
|
||||
"entrypoints": [
|
||||
{
|
||||
"id": "cold-import.extension:opik-openclaw:plugins-opik-openclaw-index-ts",
|
||||
"fixture": "opik-openclaw",
|
||||
"packagePath": "plugins/opik-openclaw/package.json",
|
||||
"kind": "extension",
|
||||
"specifier": "./index.ts",
|
||||
"path": "plugins/opik-openclaw/index.ts",
|
||||
"status": "ts-loader-required",
|
||||
"blockers": [
|
||||
{
|
||||
"code": "ts-loader-required",
|
||||
"message": "entrypoint is TypeScript source and needs a loader or build step before Node cold import",
|
||||
"evidence": "plugins/opik-openclaw/index.ts"
|
||||
},
|
||||
{
|
||||
"code": "dependency-install-required",
|
||||
"message": "package declares runtime dependencies that must be installed before cold import",
|
||||
"evidence": "@clack/prompts, opik, zod, openclaw"
|
||||
}
|
||||
],
|
||||
"assertions": [
|
||||
"TypeScript source entrypoint is compiled or loaded before cold import",
|
||||
"fixture dependencies are installed in an isolated workspace before cold import"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "cold-import.runtimeExtension:opik-openclaw:plugins-opik-openclaw-dist-index-js",
|
||||
"fixture": "opik-openclaw",
|
||||
"packagePath": "plugins/opik-openclaw/package.json",
|
||||
"kind": "runtimeExtension",
|
||||
"specifier": "./dist/index.js",
|
||||
"path": "plugins/opik-openclaw/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/opik-openclaw/dist/index.js"
|
||||
}
|
||||
],
|
||||
"assertions": [
|
||||
"plugin build or source alias resolution runs before cold import"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "clawmetry",
|
||||
"priority": "medium",
|
||||
|
||||
@ -6,13 +6,13 @@ Generated: deterministic
|
||||
|
||||
| Metric | Value |
|
||||
| --------------------------- | ----- |
|
||||
| Fixtures | 11 |
|
||||
| Entrypoints | 13 |
|
||||
| Fixtures | 12 |
|
||||
| Entrypoints | 15 |
|
||||
| Ready | 0 |
|
||||
| Blocked | 13 |
|
||||
| TypeScript loader required | 8 |
|
||||
| Build required | 3 |
|
||||
| Dependency install required | 9 |
|
||||
| Blocked | 15 |
|
||||
| TypeScript loader required | 9 |
|
||||
| Build required | 4 |
|
||||
| Dependency install required | 10 |
|
||||
| SDK alias required | 1 |
|
||||
|
||||
## Entrypoints
|
||||
@ -26,6 +26,8 @@ Generated: deterministic
|
||||
| hasdata | extension | ts-loader-required | plugins/hasdata/src/index.ts | ts-loader-required, top-level-side-effect-review, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; cold import sandbox blocks network/process side effects before register capture; fixture dependencies are installed in an isolated workspace before cold import |
|
||||
| mcp-adapter | extension | ts-loader-required | plugins/mcp-adapter/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
|
||||
| llm-trace-phoenix | extension | ts-loader-required | plugins/llm-trace-phoenix/index.ts | ts-loader-required, top-level-side-effect-review | TypeScript source entrypoint is compiled or loaded before cold import; cold import sandbox blocks network/process side effects before register capture |
|
||||
| opik-openclaw | extension | ts-loader-required | plugins/opik-openclaw/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
|
||||
| opik-openclaw | runtimeExtension | build-required | plugins/opik-openclaw/dist/index.js | build-required | plugin build or source alias resolution runs before cold import |
|
||||
| clawmetry | extension | ts-loader-required | plugins/clawmetry/clawhub-plugin/index.ts | ts-loader-required, dependency-install-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import |
|
||||
| clawmetry | runtimeExtension | build-required | plugins/clawmetry/clawhub-plugin/dist/index.js | build-required | plugin build or source alias resolution runs before cold import |
|
||||
| codex-app-server | extension | sdk-alias-required | plugins/codex-app-server/index.ts | ts-loader-required, dependency-install-required, sdk-alias-required, sdk-alias-required, sdk-alias-required | TypeScript source entrypoint is compiled or loaded before cold import; fixture dependencies are installed in an isolated workspace before cold import; target OpenClaw exports the imported SDK alias or provides a migration shim; target OpenClaw exports the imported SDK alias or provides a migration shim; target OpenClaw exports the imported SDK alias or provides a migration shim |
|
||||
|
||||
@ -7,118 +7,132 @@ Status: PASS
|
||||
|
||||
| Metric | Value |
|
||||
| --------------- | ----- |
|
||||
| Issue findings | 51 |
|
||||
| Issue findings | 58 |
|
||||
| P0 | 0 |
|
||||
| P1 | 9 |
|
||||
| Contract probes | 50 |
|
||||
| P1 | 12 |
|
||||
| Contract probes | 57 |
|
||||
|
||||
## Issues
|
||||
|
||||
| ID | Severity | Fixture | Owner | Decision | Status | Title | Evidence |
|
||||
| ---------------- | -------- | ----------------- | --------- | ------------------- | ------ | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| CRABPOT-37E8444D | P1 | a2a-gateway | inspector | inspector-follow-up | open | a2a-gateway: runtime registrations need capture before contract judgment | registerGatewayMethod @ plugins/a2a-gateway/index.ts:616, registerGatewayMethod @ plugins/a2a-gateway/index.ts:622, registerGatewayMethod @ plugins/a2a-gateway/index.ts:631, registerGatewayMethod @ plugins/a2a-gateway/index.ts:657, registerGatewayMethod @ plugins/a2a-gateway/index.ts:669, registerService @ plugins/a2a-gateway/index.ts:857 |
|
||||
| CRABPOT-9D5EE194 | P1 | clawmetry | inspector | inspector-follow-up | open | clawmetry: runtime registrations need capture before contract judgment | registerService @ plugins/clawmetry/clawhub-plugin/index.ts:9 |
|
||||
| CRABPOT-6D9E51D9 | P1 | codex-app-server | core | core-compat-adapter | open | codex-app-server: compat-dependent behavior lacks registry coverage | plugin-sdk-export-aliases |
|
||||
| CRABPOT-45CAC152 | P1 | codex-app-server | inspector | inspector-follow-up | open | codex-app-server: runtime registrations need capture before contract judgment | registerCommand @ plugins/codex-app-server/index.ts:48, registerInteractiveHandler @ plugins/codex-app-server/index.ts:29, registerInteractiveHandler @ plugins/codex-app-server/index.ts:38, registerService @ plugins/codex-app-server/index.ts:12 |
|
||||
| CRABPOT-C2331427 | P1 | codex-app-server | core | core-compat-adapter | open | codex-app-server: plugin SDK import aliases are missing from target package exports | 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 |
|
||||
| CRABPOT-D71B126E | P1 | llm-trace-phoenix | core | inspector-follow-up | open | llm-trace-phoenix: conversation-access hooks need privacy-boundary probes | llm_input @ plugins/llm-trace-phoenix/index.ts:154, llm_output @ plugins/llm-trace-phoenix/index.ts:168 |
|
||||
| CRABPOT-B91192E5 | P1 | mcp-adapter | inspector | inspector-follow-up | open | mcp-adapter: runtime registrations need capture before contract judgment | registerService @ plugins/mcp-adapter/index.ts:15 |
|
||||
| CRABPOT-B08DB79E | P1 | wecom | inspector | inspector-follow-up | open | wecom: before_tool_call needs terminal/block/approval probes | before_tool_call @ plugins/wecom/index.js:65 |
|
||||
| CRABPOT-9428734C | P1 | wecom | inspector | inspector-follow-up | open | wecom: runtime registrations need capture before contract judgment | registerChannel @ plugins/wecom/index.js:27, registerHttpRoute @ plugins/wecom/index.js:45 |
|
||||
| CRABPOT-6469330F | P2 | a2a-gateway | core | core-compat-adapter | open | a2a-gateway: root plugin SDK barrel is still used by fixtures | openclaw/plugin-sdk @ plugins/a2a-gateway/src/types.ts:14 |
|
||||
| CRABPOT-892CF14F | P2 | a2a-gateway | plugin | plugin-upstream-fix | open | a2a-gateway: manifest uses unsupported top-level fields | defaultConfig @ plugins/a2a-gateway/openclaw.plugin.json |
|
||||
| CRABPOT-F5185BE0 | P2 | a2a-gateway | inspector | inspector-follow-up | open | a2a-gateway: cold import requires isolated dependency installation | @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 |
|
||||
| CRABPOT-16E892BF | P2 | a2a-gateway | plugin | plugin-upstream-fix | open | a2a-gateway: package and manifest versions drift | package:1.4.0, manifest:1.3.0 |
|
||||
| CRABPOT-FDBB1C67 | P2 | a2a-gateway | plugin | plugin-upstream-fix | open | a2a-gateway: plugin API compatibility range is missing | plugins/a2a-gateway/package.json |
|
||||
| CRABPOT-96D2E9F4 | P2 | a2a-gateway | inspector | inspector-follow-up | open | a2a-gateway: cold import needs TypeScript source entrypoint support | extension:plugins/a2a-gateway/index.ts |
|
||||
| CRABPOT-654F01E7 | P2 | a2a-gateway | inspector | inspector-follow-up | open | a2a-gateway: runtime tool schema needs registration capture | registerTool @ plugins/a2a-gateway/index.ts:777 |
|
||||
| CRABPOT-74260BA0 | P2 | agentchat | inspector | inspector-follow-up | open | agentchat: channel runtime needs envelope/config probes | defineChannelPluginEntry @ plugins/agentchat/integrations/openclaw-channel/src/channel.ts:333 |
|
||||
| CRABPOT-90736EF4 | P2 | agentchat | core | core-compat-adapter | open | agentchat: channelEnvVars legacy manifest metadata must stay covered | agentchat |
|
||||
| CRABPOT-BEC462A4 | P2 | agentchat | plugin | plugin-upstream-fix | open | agentchat: manifest uses unsupported top-level fields | displayName @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, homepage @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, icon @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json |
|
||||
| CRABPOT-6A790CB4 | P2 | agentchat | inspector | inspector-follow-up | open | agentchat: cold import requires package build output | extension:./dist/index.js -> plugins/agentchat/integrations/openclaw-channel/dist/index.js, setupEntry:./dist/setup-entry.js -> plugins/agentchat/integrations/openclaw-channel/dist/setup-entry.js |
|
||||
| CRABPOT-2ED34BE8 | P2 | agentchat | inspector | inspector-follow-up | open | agentchat: cold import requires isolated dependency installation | @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, openclaw @ plugins/agentchat/integrations/openclaw-channel/package.json |
|
||||
| CRABPOT-0CFF8B6F | P2 | apify | core | core-compat-adapter | open | apify: root plugin SDK barrel is still used by fixtures | openclaw/plugin-sdk @ plugins/apify/src/cli.ts:2, openclaw/plugin-sdk @ plugins/apify/src/index.ts:1, openclaw/plugin-sdk @ plugins/apify/src/tools/apify-scraper-tool.ts:4 |
|
||||
| CRABPOT-74FAA2A2 | P2 | apify | inspector | inspector-follow-up | open | apify: cold import requires isolated dependency installation | @sinclair/typebox @ plugins/apify/package.json, apify-client @ plugins/apify/package.json, openclaw @ plugins/apify/package.json |
|
||||
| CRABPOT-18D12186 | P2 | apify | inspector | inspector-follow-up | open | apify: cold import needs TypeScript source entrypoint support | extension:plugins/apify/src/index.ts |
|
||||
| CRABPOT-93E9D53A | P2 | apify | inspector | inspector-follow-up | open | apify: runtime tool schema needs registration capture | registerTool @ plugins/apify/src/index.ts:13 |
|
||||
| CRABPOT-4BCB1F63 | P2 | clawmetry | inspector | inspector-follow-up | open | clawmetry: cold import requires package build output | runtimeExtension:./dist/index.js -> plugins/clawmetry/clawhub-plugin/dist/index.js |
|
||||
| CRABPOT-034E5504 | P2 | clawmetry | inspector | inspector-follow-up | open | clawmetry: cold import requires isolated dependency installation | node-fetch @ plugins/clawmetry/clawhub-plugin/package.json |
|
||||
| CRABPOT-EF6E7134 | P2 | clawmetry | inspector | inspector-follow-up | open | clawmetry: cold import needs TypeScript source entrypoint support | extension:plugins/clawmetry/clawhub-plugin/index.ts |
|
||||
| CRABPOT-A36ECE8E | P2 | codex-app-server | core | core-compat-adapter | open | codex-app-server: root plugin SDK barrel is still used by fixtures | openclaw/plugin-sdk @ plugins/codex-app-server/index.ts:1, openclaw/plugin-sdk @ plugins/codex-app-server/src/client.ts:6, openclaw/plugin-sdk @ plugins/codex-app-server/src/controller.ts:18, openclaw/plugin-sdk @ plugins/codex-app-server/src/types.ts:1 |
|
||||
| CRABPOT-DC637E99 | P2 | codex-app-server | inspector | inspector-follow-up | open | codex-app-server: cold import requires isolated dependency installation | ws @ plugins/codex-app-server/package.json, openclaw @ plugins/codex-app-server/package.json |
|
||||
| CRABPOT-F8C8F1CD | P2 | codex-app-server | inspector | inspector-follow-up | open | codex-app-server: cold import needs TypeScript source entrypoint support | extension:plugins/codex-app-server/index.ts |
|
||||
| CRABPOT-2C2BFD3C | P2 | hasdata | inspector | inspector-follow-up | open | hasdata: cold import requires isolated dependency installation | @sinclair/typebox @ plugins/hasdata/package.json, openclaw @ plugins/hasdata/package.json |
|
||||
| CRABPOT-1853BC94 | P2 | hasdata | inspector | inspector-follow-up | open | hasdata: cold import needs TypeScript source entrypoint support | extension:plugins/hasdata/src/index.ts |
|
||||
| CRABPOT-1ABECD7E | P2 | hasdata | core | core-compat-adapter | open | hasdata: providerAuthEnvVars legacy manifest metadata must stay covered | hasdata |
|
||||
| CRABPOT-0853EBDC | P2 | inworld-tts | inspector | inspector-follow-up | open | inworld-tts: cold import requires isolated dependency installation | openclaw @ plugins/inworld-tts/package.json |
|
||||
| CRABPOT-7C59D06F | P2 | inworld-tts | inspector | inspector-follow-up | open | inworld-tts: cold import needs TypeScript source entrypoint support | extension:plugins/inworld-tts/index.ts |
|
||||
| CRABPOT-CCABE384 | P2 | inworld-tts | core | core-compat-adapter | open | inworld-tts: providerAuthEnvVars legacy manifest metadata must stay covered | inworld |
|
||||
| CRABPOT-4CC6CA25 | P2 | llm-trace-phoenix | core | core-compat-adapter | open | llm-trace-phoenix: root plugin SDK barrel is still used by fixtures | openclaw/plugin-sdk @ plugins/llm-trace-phoenix/index.ts:12 |
|
||||
| CRABPOT-15F8300A | P2 | llm-trace-phoenix | inspector | inspector-follow-up | open | llm-trace-phoenix: cold import needs TypeScript source entrypoint support | extension:plugins/llm-trace-phoenix/index.ts |
|
||||
| CRABPOT-22E35E29 | P2 | mcp-adapter | inspector | inspector-follow-up | open | mcp-adapter: cold import requires isolated dependency installation | @modelcontextprotocol/sdk @ plugins/mcp-adapter/package.json |
|
||||
| CRABPOT-4511EE11 | P2 | mcp-adapter | plugin | plugin-upstream-fix | open | mcp-adapter: plugin API compatibility range is missing | plugins/mcp-adapter/package.json |
|
||||
| CRABPOT-6515DC5B | P2 | mcp-adapter | inspector | inspector-follow-up | open | mcp-adapter: cold import needs TypeScript source entrypoint support | extension:plugins/mcp-adapter/index.ts |
|
||||
| CRABPOT-B195BB7A | P2 | mcp-adapter | inspector | inspector-follow-up | open | mcp-adapter: runtime tool schema needs registration capture | registerTool @ plugins/mcp-adapter/index.ts:30 |
|
||||
| CRABPOT-D8910079 | P2 | web-search-plus | inspector | inspector-follow-up | open | web-search-plus: cold import requires isolated dependency installation | openclaw @ plugins/web-search-plus/package.json |
|
||||
| CRABPOT-E55C4521 | P2 | web-search-plus | inspector | inspector-follow-up | open | web-search-plus: cold import needs TypeScript source entrypoint support | extension:plugins/web-search-plus/index.ts |
|
||||
| CRABPOT-A3EA1186 | P2 | web-search-plus | core | core-compat-adapter | open | web-search-plus: providerAuthEnvVars legacy manifest metadata must stay covered | serper, tavily, linkup, querit, exa, firecrawl, perplexity, you, searxng |
|
||||
| CRABPOT-AF929F22 | P2 | web-search-plus | inspector | inspector-follow-up | open | web-search-plus: runtime tool schema needs registration capture | registerTool @ plugins/web-search-plus/index.ts:815, registerTool @ plugins/web-search-plus/index.ts:947 |
|
||||
| CRABPOT-848F09E3 | P2 | wecom | inspector | inspector-follow-up | open | wecom: channel runtime needs envelope/config probes | registerChannel @ plugins/wecom/index.js:27 |
|
||||
| CRABPOT-4734034D | P2 | wecom | inspector | inspector-follow-up | open | wecom: cold import requires isolated dependency installation | @wecom/aibot-node-sdk @ plugins/wecom/package.json, file-type @ plugins/wecom/package.json, pinyin-pro @ plugins/wecom/package.json, openclaw @ plugins/wecom/package.json, undici @ plugins/wecom/package.json |
|
||||
| CRABPOT-5E53BD07 | P2 | wecom | plugin | plugin-upstream-fix | open | wecom: plugin API compatibility range is missing | plugins/wecom/package.json |
|
||||
| CRABPOT-72021A36 | P2 | wecom | inspector | inspector-follow-up | open | wecom: runtime tool schema needs registration capture | registerTool @ plugins/wecom/index.js:28, registerTool @ plugins/wecom/index.js:29, registerTool @ plugins/wecom/index.js:33 |
|
||||
| ID | Severity | Fixture | Owner | Decision | Status | Title | Evidence |
|
||||
| ---------------- | -------- | ----------------- | --------- | ------------------- | ------ | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| CRABPOT-37E8444D | P1 | a2a-gateway | inspector | inspector-follow-up | open | a2a-gateway: runtime registrations need capture before contract judgment | registerGatewayMethod @ plugins/a2a-gateway/index.ts:616, registerGatewayMethod @ plugins/a2a-gateway/index.ts:622, registerGatewayMethod @ plugins/a2a-gateway/index.ts:631, registerGatewayMethod @ plugins/a2a-gateway/index.ts:657, registerGatewayMethod @ plugins/a2a-gateway/index.ts:669, registerService @ plugins/a2a-gateway/index.ts:857 |
|
||||
| CRABPOT-9D5EE194 | P1 | clawmetry | inspector | inspector-follow-up | open | clawmetry: runtime registrations need capture before contract judgment | registerService @ plugins/clawmetry/clawhub-plugin/index.ts:9 |
|
||||
| CRABPOT-6D9E51D9 | P1 | codex-app-server | core | core-compat-adapter | open | codex-app-server: compat-dependent behavior lacks registry coverage | plugin-sdk-export-aliases |
|
||||
| CRABPOT-45CAC152 | P1 | codex-app-server | inspector | inspector-follow-up | open | codex-app-server: runtime registrations need capture before contract judgment | registerCommand @ plugins/codex-app-server/index.ts:48, registerInteractiveHandler @ plugins/codex-app-server/index.ts:29, registerInteractiveHandler @ plugins/codex-app-server/index.ts:38, registerService @ plugins/codex-app-server/index.ts:12 |
|
||||
| CRABPOT-C2331427 | P1 | codex-app-server | core | core-compat-adapter | open | codex-app-server: plugin SDK import aliases are missing from target package exports | 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 |
|
||||
| CRABPOT-D71B126E | P1 | llm-trace-phoenix | core | inspector-follow-up | open | llm-trace-phoenix: conversation-access hooks need privacy-boundary probes | llm_input @ plugins/llm-trace-phoenix/index.ts:154, llm_output @ plugins/llm-trace-phoenix/index.ts:168 |
|
||||
| CRABPOT-B91192E5 | P1 | mcp-adapter | inspector | inspector-follow-up | open | mcp-adapter: runtime registrations need capture before contract judgment | registerService @ plugins/mcp-adapter/index.ts:15 |
|
||||
| CRABPOT-EE3B527C | P1 | opik-openclaw | inspector | inspector-follow-up | open | opik-openclaw: before_tool_call needs terminal/block/approval probes | before_tool_call @ plugins/opik-openclaw/src/service/hooks/tool.ts:34 |
|
||||
| CRABPOT-6FC4ED08 | P1 | opik-openclaw | core | inspector-follow-up | open | opik-openclaw: conversation-access hooks need privacy-boundary probes | 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 |
|
||||
| CRABPOT-5E85F236 | P1 | opik-openclaw | inspector | inspector-follow-up | open | opik-openclaw: runtime registrations need capture before contract judgment | registerService @ plugins/opik-openclaw/index.ts:16 |
|
||||
| CRABPOT-B08DB79E | P1 | wecom | inspector | inspector-follow-up | open | wecom: before_tool_call needs terminal/block/approval probes | before_tool_call @ plugins/wecom/index.js:65 |
|
||||
| CRABPOT-9428734C | P1 | wecom | inspector | inspector-follow-up | open | wecom: runtime registrations need capture before contract judgment | registerChannel @ plugins/wecom/index.js:27, registerHttpRoute @ plugins/wecom/index.js:45 |
|
||||
| CRABPOT-6469330F | P2 | a2a-gateway | core | core-compat-adapter | open | a2a-gateway: root plugin SDK barrel is still used by fixtures | openclaw/plugin-sdk @ plugins/a2a-gateway/src/types.ts:14 |
|
||||
| CRABPOT-892CF14F | P2 | a2a-gateway | plugin | plugin-upstream-fix | open | a2a-gateway: manifest uses unsupported top-level fields | defaultConfig @ plugins/a2a-gateway/openclaw.plugin.json |
|
||||
| CRABPOT-F5185BE0 | P2 | a2a-gateway | inspector | inspector-follow-up | open | a2a-gateway: cold import requires isolated dependency installation | @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 |
|
||||
| CRABPOT-16E892BF | P2 | a2a-gateway | plugin | plugin-upstream-fix | open | a2a-gateway: package and manifest versions drift | package:1.4.0, manifest:1.3.0 |
|
||||
| CRABPOT-FDBB1C67 | P2 | a2a-gateway | plugin | plugin-upstream-fix | open | a2a-gateway: plugin API compatibility range is missing | plugins/a2a-gateway/package.json |
|
||||
| CRABPOT-96D2E9F4 | P2 | a2a-gateway | inspector | inspector-follow-up | open | a2a-gateway: cold import needs TypeScript source entrypoint support | extension:plugins/a2a-gateway/index.ts |
|
||||
| CRABPOT-654F01E7 | P2 | a2a-gateway | inspector | inspector-follow-up | open | a2a-gateway: runtime tool schema needs registration capture | registerTool @ plugins/a2a-gateway/index.ts:777 |
|
||||
| CRABPOT-74260BA0 | P2 | agentchat | inspector | inspector-follow-up | open | agentchat: channel runtime needs envelope/config probes | defineChannelPluginEntry @ plugins/agentchat/integrations/openclaw-channel/src/channel.ts:333 |
|
||||
| CRABPOT-90736EF4 | P2 | agentchat | core | core-compat-adapter | open | agentchat: channelEnvVars legacy manifest metadata must stay covered | agentchat |
|
||||
| CRABPOT-BEC462A4 | P2 | agentchat | plugin | plugin-upstream-fix | open | agentchat: manifest uses unsupported top-level fields | displayName @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, homepage @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, icon @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json |
|
||||
| CRABPOT-6A790CB4 | P2 | agentchat | inspector | inspector-follow-up | open | agentchat: cold import requires package build output | extension:./dist/index.js -> plugins/agentchat/integrations/openclaw-channel/dist/index.js, setupEntry:./dist/setup-entry.js -> plugins/agentchat/integrations/openclaw-channel/dist/setup-entry.js |
|
||||
| CRABPOT-2ED34BE8 | P2 | agentchat | inspector | inspector-follow-up | open | agentchat: cold import requires isolated dependency installation | @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, openclaw @ plugins/agentchat/integrations/openclaw-channel/package.json |
|
||||
| CRABPOT-0CFF8B6F | P2 | apify | core | core-compat-adapter | open | apify: root plugin SDK barrel is still used by fixtures | openclaw/plugin-sdk @ plugins/apify/src/cli.ts:2, openclaw/plugin-sdk @ plugins/apify/src/index.ts:1, openclaw/plugin-sdk @ plugins/apify/src/tools/apify-scraper-tool.ts:4 |
|
||||
| CRABPOT-74FAA2A2 | P2 | apify | inspector | inspector-follow-up | open | apify: cold import requires isolated dependency installation | @sinclair/typebox @ plugins/apify/package.json, apify-client @ plugins/apify/package.json, openclaw @ plugins/apify/package.json |
|
||||
| CRABPOT-18D12186 | P2 | apify | inspector | inspector-follow-up | open | apify: cold import needs TypeScript source entrypoint support | extension:plugins/apify/src/index.ts |
|
||||
| CRABPOT-93E9D53A | P2 | apify | inspector | inspector-follow-up | open | apify: runtime tool schema needs registration capture | registerTool @ plugins/apify/src/index.ts:13 |
|
||||
| CRABPOT-4BCB1F63 | P2 | clawmetry | inspector | inspector-follow-up | open | clawmetry: cold import requires package build output | runtimeExtension:./dist/index.js -> plugins/clawmetry/clawhub-plugin/dist/index.js |
|
||||
| CRABPOT-034E5504 | P2 | clawmetry | inspector | inspector-follow-up | open | clawmetry: cold import requires isolated dependency installation | node-fetch @ plugins/clawmetry/clawhub-plugin/package.json |
|
||||
| CRABPOT-EF6E7134 | P2 | clawmetry | inspector | inspector-follow-up | open | clawmetry: cold import needs TypeScript source entrypoint support | extension:plugins/clawmetry/clawhub-plugin/index.ts |
|
||||
| CRABPOT-A36ECE8E | P2 | codex-app-server | core | core-compat-adapter | open | codex-app-server: root plugin SDK barrel is still used by fixtures | openclaw/plugin-sdk @ plugins/codex-app-server/index.ts:1, openclaw/plugin-sdk @ plugins/codex-app-server/src/client.ts:6, openclaw/plugin-sdk @ plugins/codex-app-server/src/controller.ts:18, openclaw/plugin-sdk @ plugins/codex-app-server/src/types.ts:1 |
|
||||
| CRABPOT-DC637E99 | P2 | codex-app-server | inspector | inspector-follow-up | open | codex-app-server: cold import requires isolated dependency installation | ws @ plugins/codex-app-server/package.json, openclaw @ plugins/codex-app-server/package.json |
|
||||
| CRABPOT-F8C8F1CD | P2 | codex-app-server | inspector | inspector-follow-up | open | codex-app-server: cold import needs TypeScript source entrypoint support | extension:plugins/codex-app-server/index.ts |
|
||||
| CRABPOT-2C2BFD3C | P2 | hasdata | inspector | inspector-follow-up | open | hasdata: cold import requires isolated dependency installation | @sinclair/typebox @ plugins/hasdata/package.json, openclaw @ plugins/hasdata/package.json |
|
||||
| CRABPOT-1853BC94 | P2 | hasdata | inspector | inspector-follow-up | open | hasdata: cold import needs TypeScript source entrypoint support | extension:plugins/hasdata/src/index.ts |
|
||||
| CRABPOT-1ABECD7E | P2 | hasdata | core | core-compat-adapter | open | hasdata: providerAuthEnvVars legacy manifest metadata must stay covered | hasdata |
|
||||
| CRABPOT-0853EBDC | P2 | inworld-tts | inspector | inspector-follow-up | open | inworld-tts: cold import requires isolated dependency installation | openclaw @ plugins/inworld-tts/package.json |
|
||||
| CRABPOT-7C59D06F | P2 | inworld-tts | inspector | inspector-follow-up | open | inworld-tts: cold import needs TypeScript source entrypoint support | extension:plugins/inworld-tts/index.ts |
|
||||
| CRABPOT-CCABE384 | P2 | inworld-tts | core | core-compat-adapter | open | inworld-tts: providerAuthEnvVars legacy manifest metadata must stay covered | inworld |
|
||||
| CRABPOT-4CC6CA25 | P2 | llm-trace-phoenix | core | core-compat-adapter | open | llm-trace-phoenix: root plugin SDK barrel is still used by fixtures | openclaw/plugin-sdk @ plugins/llm-trace-phoenix/index.ts:12 |
|
||||
| CRABPOT-15F8300A | P2 | llm-trace-phoenix | inspector | inspector-follow-up | open | llm-trace-phoenix: cold import needs TypeScript source entrypoint support | extension:plugins/llm-trace-phoenix/index.ts |
|
||||
| CRABPOT-22E35E29 | P2 | mcp-adapter | inspector | inspector-follow-up | open | mcp-adapter: cold import requires isolated dependency installation | @modelcontextprotocol/sdk @ plugins/mcp-adapter/package.json |
|
||||
| CRABPOT-4511EE11 | P2 | mcp-adapter | plugin | plugin-upstream-fix | open | mcp-adapter: plugin API compatibility range is missing | plugins/mcp-adapter/package.json |
|
||||
| CRABPOT-6515DC5B | P2 | mcp-adapter | inspector | inspector-follow-up | open | mcp-adapter: cold import needs TypeScript source entrypoint support | extension:plugins/mcp-adapter/index.ts |
|
||||
| CRABPOT-B195BB7A | P2 | mcp-adapter | inspector | inspector-follow-up | open | mcp-adapter: runtime tool schema needs registration capture | registerTool @ plugins/mcp-adapter/index.ts:30 |
|
||||
| CRABPOT-F76EC24F | P2 | opik-openclaw | core | core-compat-adapter | open | opik-openclaw: root plugin SDK barrel is still used by fixtures | openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:2, openclaw/plugin-sdk @ plugins/opik-openclaw/src/cli.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/configure.ts:2, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:5, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:6, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/llm.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/subagent.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/tool.ts:1 |
|
||||
| CRABPOT-5D328BF6 | P2 | opik-openclaw | inspector | inspector-follow-up | open | opik-openclaw: cold import requires package build output | runtimeExtension:./dist/index.js -> plugins/opik-openclaw/dist/index.js |
|
||||
| CRABPOT-32CDFD6D | P2 | opik-openclaw | inspector | inspector-follow-up | open | opik-openclaw: cold import requires isolated dependency installation | @clack/prompts @ plugins/opik-openclaw/package.json, opik @ plugins/opik-openclaw/package.json, zod @ plugins/opik-openclaw/package.json, openclaw @ plugins/opik-openclaw/package.json |
|
||||
| CRABPOT-FAEC3F71 | P2 | opik-openclaw | inspector | inspector-follow-up | open | opik-openclaw: cold import needs TypeScript source entrypoint support | extension:plugins/opik-openclaw/index.ts |
|
||||
| CRABPOT-D8910079 | P2 | web-search-plus | inspector | inspector-follow-up | open | web-search-plus: cold import requires isolated dependency installation | openclaw @ plugins/web-search-plus/package.json |
|
||||
| CRABPOT-E55C4521 | P2 | web-search-plus | inspector | inspector-follow-up | open | web-search-plus: cold import needs TypeScript source entrypoint support | extension:plugins/web-search-plus/index.ts |
|
||||
| CRABPOT-A3EA1186 | P2 | web-search-plus | core | core-compat-adapter | open | web-search-plus: providerAuthEnvVars legacy manifest metadata must stay covered | serper, tavily, linkup, querit, exa, firecrawl, perplexity, you, searxng |
|
||||
| CRABPOT-AF929F22 | P2 | web-search-plus | inspector | inspector-follow-up | open | web-search-plus: runtime tool schema needs registration capture | registerTool @ plugins/web-search-plus/index.ts:815, registerTool @ plugins/web-search-plus/index.ts:947 |
|
||||
| CRABPOT-848F09E3 | P2 | wecom | inspector | inspector-follow-up | open | wecom: channel runtime needs envelope/config probes | registerChannel @ plugins/wecom/index.js:27 |
|
||||
| CRABPOT-4734034D | P2 | wecom | inspector | inspector-follow-up | open | wecom: cold import requires isolated dependency installation | @wecom/aibot-node-sdk @ plugins/wecom/package.json, file-type @ plugins/wecom/package.json, pinyin-pro @ plugins/wecom/package.json, openclaw @ plugins/wecom/package.json, undici @ plugins/wecom/package.json |
|
||||
| CRABPOT-5E53BD07 | P2 | wecom | plugin | plugin-upstream-fix | open | wecom: plugin API compatibility range is missing | plugins/wecom/package.json |
|
||||
| CRABPOT-72021A36 | P2 | wecom | inspector | inspector-follow-up | open | wecom: runtime tool schema needs registration capture | registerTool @ plugins/wecom/index.js:28, registerTool @ plugins/wecom/index.js:29, registerTool @ plugins/wecom/index.js:33 |
|
||||
|
||||
## Contract Probe Backlog
|
||||
|
||||
| ID | Priority | Fixture | Target | Contract | Evidence |
|
||||
| --------------------------------------------------------------- | -------- | ----------------- | --------------------- | --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| api.capture.runtime-registrars:a2a-gateway | P1 | a2a-gateway | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerGatewayMethod @ plugins/a2a-gateway/index.ts:616, registerGatewayMethod @ plugins/a2a-gateway/index.ts:622, registerGatewayMethod @ plugins/a2a-gateway/index.ts:631, registerGatewayMethod @ plugins/a2a-gateway/index.ts:657, registerGatewayMethod @ plugins/a2a-gateway/index.ts:669, registerService @ plugins/a2a-gateway/index.ts:857 |
|
||||
| api.capture.runtime-registrars:clawmetry | P1 | clawmetry | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerService @ plugins/clawmetry/clawhub-plugin/index.ts:9 |
|
||||
| api.capture.runtime-registrars:codex-app-server | P1 | codex-app-server | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerCommand @ plugins/codex-app-server/index.ts:48, registerInteractiveHandler @ plugins/codex-app-server/index.ts:29, registerInteractiveHandler @ plugins/codex-app-server/index.ts:38, registerService @ plugins/codex-app-server/index.ts:12 |
|
||||
| api.capture.runtime-registrars:mcp-adapter | P1 | mcp-adapter | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerService @ plugins/mcp-adapter/index.ts:15 |
|
||||
| api.capture.runtime-registrars:wecom | P1 | wecom | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerChannel @ plugins/wecom/index.js:27, registerHttpRoute @ plugins/wecom/index.js:45 |
|
||||
| hook.before_tool_call.terminal-block-approval:wecom | P1 | wecom | hook-runner | Hook returns preserve terminal, block, and approval semantics. | before_tool_call @ plugins/wecom/index.js:65 |
|
||||
| hook.llm-observer.privacy-payload:llm-trace-phoenix | P1 | llm-trace-phoenix | hook-runner | LLM observer hooks receive documented prompt/output fields with expected redaction behavior. | llm_input @ plugins/llm-trace-phoenix/index.ts:154, llm_output @ plugins/llm-trace-phoenix/index.ts:168 |
|
||||
| sdk.import.package-export-cold-import:codex-app-server | P1 | codex-app-server | sdk-alias | Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. | 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 |
|
||||
| channel.runtime.envelope-config-metadata:agentchat | P2 | agentchat | channel-runtime | Channel setup, message envelope, sender metadata, and config schema remain stable. | defineChannelPluginEntry @ plugins/agentchat/integrations/openclaw-channel/src/channel.ts:333 |
|
||||
| channel.runtime.envelope-config-metadata:wecom | P2 | wecom | channel-runtime | Channel setup, message envelope, sender metadata, and config schema remain stable. | registerChannel @ plugins/wecom/index.js:27 |
|
||||
| manifest.compat.channel-env-vars:agentchat | P2 | agentchat | manifest-loader | Legacy channel env metadata continues to map into channel setup/help surfaces. | agentchat |
|
||||
| manifest.compat.provider-auth-env-vars:hasdata | P2 | hasdata | manifest-loader | Legacy provider auth env metadata continues to map into config/help surfaces. | hasdata |
|
||||
| manifest.schema.top-level-fields:a2a-gateway | P2 | a2a-gateway | manifest-loader | Manifest top-level fields are represented in target OpenClaw PluginManifest. | defaultConfig @ plugins/a2a-gateway/openclaw.plugin.json |
|
||||
| manifest.schema.top-level-fields:agentchat | P2 | agentchat | manifest-loader | Manifest top-level fields are represented in target OpenClaw PluginManifest. | displayName @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, homepage @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, icon @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json |
|
||||
| package.compat.plugin-api-range:a2a-gateway | P2 | a2a-gateway | package-loader | Package metadata declares the OpenClaw plugin API range used by the plugin. | plugins/a2a-gateway/package.json |
|
||||
| package.compat.plugin-api-range:mcp-adapter | P2 | mcp-adapter | package-loader | Package metadata declares the OpenClaw plugin API range used by the plugin. | plugins/mcp-adapter/package.json |
|
||||
| package.compat.plugin-api-range:wecom | P2 | wecom | package-loader | Package metadata declares the OpenClaw plugin API range used by the plugin. | plugins/wecom/package.json |
|
||||
| package.entrypoint.build-before-cold-import:agentchat | P2 | agentchat | package-loader | Inspector can build or resolve source aliases before cold importing package entrypoints. | extension:./dist/index.js -> plugins/agentchat/integrations/openclaw-channel/dist/index.js, setupEntry:./dist/setup-entry.js -> plugins/agentchat/integrations/openclaw-channel/dist/setup-entry.js |
|
||||
| package.entrypoint.isolated-dependency-install:a2a-gateway | P2 | a2a-gateway | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @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 | Inspector installs package dependencies in an isolated workspace before cold import. | @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, openclaw @ plugins/agentchat/integrations/openclaw-channel/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:hasdata | P2 | hasdata | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @sinclair/typebox @ plugins/hasdata/package.json, openclaw @ plugins/hasdata/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:mcp-adapter | P2 | mcp-adapter | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @modelcontextprotocol/sdk @ plugins/mcp-adapter/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:wecom | P2 | wecom | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @wecom/aibot-node-sdk @ plugins/wecom/package.json, file-type @ plugins/wecom/package.json, pinyin-pro @ plugins/wecom/package.json, openclaw @ plugins/wecom/package.json, undici @ plugins/wecom/package.json |
|
||||
| package.entrypoint.typescript-loader:a2a-gateway | P2 | a2a-gateway | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/a2a-gateway/index.ts |
|
||||
| package.entrypoint.typescript-loader:hasdata | P2 | hasdata | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/hasdata/src/index.ts |
|
||||
| package.entrypoint.typescript-loader:llm-trace-phoenix | P2 | llm-trace-phoenix | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/llm-trace-phoenix/index.ts |
|
||||
| package.entrypoint.typescript-loader:mcp-adapter | P2 | mcp-adapter | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/mcp-adapter/index.ts |
|
||||
| package.metadata.version-alignment:a2a-gateway | P2 | a2a-gateway | package-loader | Package and OpenClaw manifest versions stay aligned for release compatibility reporting. | package:1.4.0, manifest:1.3.0 |
|
||||
| sdk.import.root-barrel-cold-import:a2a-gateway | P2 | a2a-gateway | sdk-alias | Root plugin SDK barrel remains importable or has a machine-readable migration path. | openclaw/plugin-sdk @ plugins/a2a-gateway/src/types.ts:14 |
|
||||
| sdk.import.root-barrel-cold-import:llm-trace-phoenix | P2 | llm-trace-phoenix | sdk-alias | Root plugin SDK barrel remains importable or has a machine-readable migration path. | openclaw/plugin-sdk @ plugins/llm-trace-phoenix/index.ts:12 |
|
||||
| tool.registration.schema-capture:a2a-gateway | P2 | a2a-gateway | tool-runtime | Registered runtime tools expose stable names, input schemas, and result metadata. | registerTool @ plugins/a2a-gateway/index.ts:777 |
|
||||
| tool.registration.schema-capture:mcp-adapter | P2 | mcp-adapter | tool-runtime | Registered runtime tools expose stable names, input schemas, and result metadata. | registerTool @ plugins/mcp-adapter/index.ts:30 |
|
||||
| tool.registration.schema-capture:wecom | P2 | wecom | tool-runtime | Registered runtime tools expose stable names, input schemas, and result metadata. | registerTool @ plugins/wecom/index.js:28, registerTool @ plugins/wecom/index.js:29, registerTool @ plugins/wecom/index.js:33 |
|
||||
| manifest.compat.provider-auth-env-vars:inworld-tts | P3 | inworld-tts | manifest-loader | Legacy provider auth env metadata continues to map into config/help surfaces. | inworld |
|
||||
| manifest.compat.provider-auth-env-vars:web-search-plus | P3 | web-search-plus | manifest-loader | Legacy provider auth env metadata continues to map into config/help surfaces. | serper, tavily, linkup, querit, exa, firecrawl, perplexity, you, searxng |
|
||||
| package.entrypoint.build-before-cold-import:clawmetry | P3 | clawmetry | package-loader | Inspector can build or resolve source aliases before cold importing package entrypoints. | runtimeExtension:./dist/index.js -> plugins/clawmetry/clawhub-plugin/dist/index.js |
|
||||
| package.entrypoint.isolated-dependency-install:apify | P3 | apify | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @sinclair/typebox @ plugins/apify/package.json, apify-client @ plugins/apify/package.json, openclaw @ plugins/apify/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:clawmetry | P3 | clawmetry | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | node-fetch @ plugins/clawmetry/clawhub-plugin/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:codex-app-server | P3 | codex-app-server | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | ws @ plugins/codex-app-server/package.json, openclaw @ plugins/codex-app-server/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:inworld-tts | P3 | inworld-tts | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | openclaw @ plugins/inworld-tts/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:web-search-plus | P3 | web-search-plus | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | openclaw @ plugins/web-search-plus/package.json |
|
||||
| package.entrypoint.typescript-loader:apify | P3 | apify | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/apify/src/index.ts |
|
||||
| package.entrypoint.typescript-loader:clawmetry | P3 | clawmetry | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/clawmetry/clawhub-plugin/index.ts |
|
||||
| package.entrypoint.typescript-loader:codex-app-server | P3 | codex-app-server | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/codex-app-server/index.ts |
|
||||
| package.entrypoint.typescript-loader:inworld-tts | P3 | inworld-tts | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/inworld-tts/index.ts |
|
||||
| package.entrypoint.typescript-loader:web-search-plus | P3 | web-search-plus | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/web-search-plus/index.ts |
|
||||
| sdk.import.root-barrel-cold-import:apify | P3 | apify | sdk-alias | Root plugin SDK barrel remains importable or has a machine-readable migration path. | openclaw/plugin-sdk @ plugins/apify/src/cli.ts:2, openclaw/plugin-sdk @ plugins/apify/src/index.ts:1, openclaw/plugin-sdk @ plugins/apify/src/tools/apify-scraper-tool.ts:4 |
|
||||
| sdk.import.root-barrel-cold-import:codex-app-server | P3 | codex-app-server | sdk-alias | Root plugin SDK barrel remains importable or has a machine-readable migration path. | openclaw/plugin-sdk @ plugins/codex-app-server/index.ts:1, openclaw/plugin-sdk @ plugins/codex-app-server/src/client.ts:6, openclaw/plugin-sdk @ plugins/codex-app-server/src/controller.ts:18, openclaw/plugin-sdk @ plugins/codex-app-server/src/types.ts:1 |
|
||||
| tool.registration.schema-capture:apify | P3 | apify | tool-runtime | Registered runtime tools expose stable names, input schemas, and result metadata. | registerTool @ plugins/apify/src/index.ts:13 |
|
||||
| tool.registration.schema-capture:web-search-plus | P3 | web-search-plus | tool-runtime | Registered runtime tools expose stable names, input schemas, and result metadata. | registerTool @ plugins/web-search-plus/index.ts:815, registerTool @ plugins/web-search-plus/index.ts:947 |
|
||||
| ID | Priority | Fixture | Target | Contract | Evidence |
|
||||
| --------------------------------------------------------------- | -------- | ----------------- | --------------------- | --------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| api.capture.runtime-registrars:a2a-gateway | P1 | a2a-gateway | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerGatewayMethod @ plugins/a2a-gateway/index.ts:616, registerGatewayMethod @ plugins/a2a-gateway/index.ts:622, registerGatewayMethod @ plugins/a2a-gateway/index.ts:631, registerGatewayMethod @ plugins/a2a-gateway/index.ts:657, registerGatewayMethod @ plugins/a2a-gateway/index.ts:669, registerService @ plugins/a2a-gateway/index.ts:857 |
|
||||
| api.capture.runtime-registrars:clawmetry | P1 | clawmetry | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerService @ plugins/clawmetry/clawhub-plugin/index.ts:9 |
|
||||
| api.capture.runtime-registrars:codex-app-server | P1 | codex-app-server | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerCommand @ plugins/codex-app-server/index.ts:48, registerInteractiveHandler @ plugins/codex-app-server/index.ts:29, registerInteractiveHandler @ plugins/codex-app-server/index.ts:38, registerService @ plugins/codex-app-server/index.ts:12 |
|
||||
| api.capture.runtime-registrars:mcp-adapter | P1 | mcp-adapter | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerService @ plugins/mcp-adapter/index.ts:15 |
|
||||
| api.capture.runtime-registrars:opik-openclaw | P1 | opik-openclaw | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerService @ plugins/opik-openclaw/index.ts:16 |
|
||||
| api.capture.runtime-registrars:wecom | P1 | wecom | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerChannel @ plugins/wecom/index.js:27, registerHttpRoute @ plugins/wecom/index.js:45 |
|
||||
| hook.before_tool_call.terminal-block-approval:opik-openclaw | P1 | opik-openclaw | hook-runner | Hook returns preserve terminal, block, and approval semantics. | before_tool_call @ plugins/opik-openclaw/src/service/hooks/tool.ts:34 |
|
||||
| hook.before_tool_call.terminal-block-approval:wecom | P1 | wecom | hook-runner | Hook returns preserve terminal, block, and approval semantics. | before_tool_call @ plugins/wecom/index.js:65 |
|
||||
| hook.llm-observer.privacy-payload:llm-trace-phoenix | P1 | llm-trace-phoenix | hook-runner | LLM observer hooks receive documented prompt/output fields with expected redaction behavior. | llm_input @ plugins/llm-trace-phoenix/index.ts:154, llm_output @ plugins/llm-trace-phoenix/index.ts:168 |
|
||||
| hook.llm-observer.privacy-payload:opik-openclaw | P1 | opik-openclaw | hook-runner | LLM observer hooks receive documented prompt/output fields with expected redaction behavior. | 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:codex-app-server | P1 | codex-app-server | sdk-alias | Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. | 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 |
|
||||
| channel.runtime.envelope-config-metadata:agentchat | P2 | agentchat | channel-runtime | Channel setup, message envelope, sender metadata, and config schema remain stable. | defineChannelPluginEntry @ plugins/agentchat/integrations/openclaw-channel/src/channel.ts:333 |
|
||||
| channel.runtime.envelope-config-metadata:wecom | P2 | wecom | channel-runtime | Channel setup, message envelope, sender metadata, and config schema remain stable. | registerChannel @ plugins/wecom/index.js:27 |
|
||||
| manifest.compat.channel-env-vars:agentchat | P2 | agentchat | manifest-loader | Legacy channel env metadata continues to map into channel setup/help surfaces. | agentchat |
|
||||
| manifest.compat.provider-auth-env-vars:hasdata | P2 | hasdata | manifest-loader | Legacy provider auth env metadata continues to map into config/help surfaces. | hasdata |
|
||||
| manifest.schema.top-level-fields:a2a-gateway | P2 | a2a-gateway | manifest-loader | Manifest top-level fields are represented in target OpenClaw PluginManifest. | defaultConfig @ plugins/a2a-gateway/openclaw.plugin.json |
|
||||
| manifest.schema.top-level-fields:agentchat | P2 | agentchat | manifest-loader | Manifest top-level fields are represented in target OpenClaw PluginManifest. | displayName @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, homepage @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, icon @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json |
|
||||
| package.compat.plugin-api-range:a2a-gateway | P2 | a2a-gateway | package-loader | Package metadata declares the OpenClaw plugin API range used by the plugin. | plugins/a2a-gateway/package.json |
|
||||
| package.compat.plugin-api-range:mcp-adapter | P2 | mcp-adapter | package-loader | Package metadata declares the OpenClaw plugin API range used by the plugin. | plugins/mcp-adapter/package.json |
|
||||
| package.compat.plugin-api-range:wecom | P2 | wecom | package-loader | Package metadata declares the OpenClaw plugin API range used by the plugin. | plugins/wecom/package.json |
|
||||
| package.entrypoint.build-before-cold-import:agentchat | P2 | agentchat | package-loader | Inspector can build or resolve source aliases before cold importing package entrypoints. | extension:./dist/index.js -> plugins/agentchat/integrations/openclaw-channel/dist/index.js, setupEntry:./dist/setup-entry.js -> plugins/agentchat/integrations/openclaw-channel/dist/setup-entry.js |
|
||||
| package.entrypoint.build-before-cold-import:opik-openclaw | P2 | opik-openclaw | package-loader | Inspector can build or resolve source aliases before cold importing package entrypoints. | runtimeExtension:./dist/index.js -> plugins/opik-openclaw/dist/index.js |
|
||||
| package.entrypoint.isolated-dependency-install:a2a-gateway | P2 | a2a-gateway | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @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 | Inspector installs package dependencies in an isolated workspace before cold import. | @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, openclaw @ plugins/agentchat/integrations/openclaw-channel/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:hasdata | P2 | hasdata | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @sinclair/typebox @ plugins/hasdata/package.json, openclaw @ plugins/hasdata/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:mcp-adapter | P2 | mcp-adapter | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @modelcontextprotocol/sdk @ plugins/mcp-adapter/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:opik-openclaw | P2 | opik-openclaw | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @clack/prompts @ plugins/opik-openclaw/package.json, opik @ plugins/opik-openclaw/package.json, zod @ plugins/opik-openclaw/package.json, openclaw @ plugins/opik-openclaw/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:wecom | P2 | wecom | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @wecom/aibot-node-sdk @ plugins/wecom/package.json, file-type @ plugins/wecom/package.json, pinyin-pro @ plugins/wecom/package.json, openclaw @ plugins/wecom/package.json, undici @ plugins/wecom/package.json |
|
||||
| package.entrypoint.typescript-loader:a2a-gateway | P2 | a2a-gateway | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/a2a-gateway/index.ts |
|
||||
| package.entrypoint.typescript-loader:hasdata | P2 | hasdata | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/hasdata/src/index.ts |
|
||||
| package.entrypoint.typescript-loader:llm-trace-phoenix | P2 | llm-trace-phoenix | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/llm-trace-phoenix/index.ts |
|
||||
| package.entrypoint.typescript-loader:mcp-adapter | P2 | mcp-adapter | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/mcp-adapter/index.ts |
|
||||
| package.entrypoint.typescript-loader:opik-openclaw | P2 | opik-openclaw | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/opik-openclaw/index.ts |
|
||||
| package.metadata.version-alignment:a2a-gateway | P2 | a2a-gateway | package-loader | Package and OpenClaw manifest versions stay aligned for release compatibility reporting. | package:1.4.0, manifest:1.3.0 |
|
||||
| sdk.import.root-barrel-cold-import:a2a-gateway | P2 | a2a-gateway | sdk-alias | Root plugin SDK barrel remains importable or has a machine-readable migration path. | openclaw/plugin-sdk @ plugins/a2a-gateway/src/types.ts:14 |
|
||||
| sdk.import.root-barrel-cold-import:llm-trace-phoenix | P2 | llm-trace-phoenix | sdk-alias | Root plugin SDK barrel remains importable or has a machine-readable migration path. | openclaw/plugin-sdk @ plugins/llm-trace-phoenix/index.ts:12 |
|
||||
| sdk.import.root-barrel-cold-import:opik-openclaw | P2 | opik-openclaw | sdk-alias | Root plugin SDK barrel remains importable or has a machine-readable migration path. | openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:2, openclaw/plugin-sdk @ plugins/opik-openclaw/src/cli.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/configure.ts:2, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:5, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:6, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/llm.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/subagent.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/tool.ts:1 |
|
||||
| tool.registration.schema-capture:a2a-gateway | P2 | a2a-gateway | tool-runtime | Registered runtime tools expose stable names, input schemas, and result metadata. | registerTool @ plugins/a2a-gateway/index.ts:777 |
|
||||
| tool.registration.schema-capture:mcp-adapter | P2 | mcp-adapter | tool-runtime | Registered runtime tools expose stable names, input schemas, and result metadata. | registerTool @ plugins/mcp-adapter/index.ts:30 |
|
||||
| tool.registration.schema-capture:wecom | P2 | wecom | tool-runtime | Registered runtime tools expose stable names, input schemas, and result metadata. | registerTool @ plugins/wecom/index.js:28, registerTool @ plugins/wecom/index.js:29, registerTool @ plugins/wecom/index.js:33 |
|
||||
| manifest.compat.provider-auth-env-vars:inworld-tts | P3 | inworld-tts | manifest-loader | Legacy provider auth env metadata continues to map into config/help surfaces. | inworld |
|
||||
| manifest.compat.provider-auth-env-vars:web-search-plus | P3 | web-search-plus | manifest-loader | Legacy provider auth env metadata continues to map into config/help surfaces. | serper, tavily, linkup, querit, exa, firecrawl, perplexity, you, searxng |
|
||||
| package.entrypoint.build-before-cold-import:clawmetry | P3 | clawmetry | package-loader | Inspector can build or resolve source aliases before cold importing package entrypoints. | runtimeExtension:./dist/index.js -> plugins/clawmetry/clawhub-plugin/dist/index.js |
|
||||
| package.entrypoint.isolated-dependency-install:apify | P3 | apify | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @sinclair/typebox @ plugins/apify/package.json, apify-client @ plugins/apify/package.json, openclaw @ plugins/apify/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:clawmetry | P3 | clawmetry | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | node-fetch @ plugins/clawmetry/clawhub-plugin/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:codex-app-server | P3 | codex-app-server | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | ws @ plugins/codex-app-server/package.json, openclaw @ plugins/codex-app-server/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:inworld-tts | P3 | inworld-tts | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | openclaw @ plugins/inworld-tts/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:web-search-plus | P3 | web-search-plus | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | openclaw @ plugins/web-search-plus/package.json |
|
||||
| package.entrypoint.typescript-loader:apify | P3 | apify | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/apify/src/index.ts |
|
||||
| package.entrypoint.typescript-loader:clawmetry | P3 | clawmetry | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/clawmetry/clawhub-plugin/index.ts |
|
||||
| package.entrypoint.typescript-loader:codex-app-server | P3 | codex-app-server | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/codex-app-server/index.ts |
|
||||
| package.entrypoint.typescript-loader:inworld-tts | P3 | inworld-tts | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/inworld-tts/index.ts |
|
||||
| package.entrypoint.typescript-loader:web-search-plus | P3 | web-search-plus | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/web-search-plus/index.ts |
|
||||
| sdk.import.root-barrel-cold-import:apify | P3 | apify | sdk-alias | Root plugin SDK barrel remains importable or has a machine-readable migration path. | openclaw/plugin-sdk @ plugins/apify/src/cli.ts:2, openclaw/plugin-sdk @ plugins/apify/src/index.ts:1, openclaw/plugin-sdk @ plugins/apify/src/tools/apify-scraper-tool.ts:4 |
|
||||
| sdk.import.root-barrel-cold-import:codex-app-server | P3 | codex-app-server | sdk-alias | Root plugin SDK barrel remains importable or has a machine-readable migration path. | openclaw/plugin-sdk @ plugins/codex-app-server/index.ts:1, openclaw/plugin-sdk @ plugins/codex-app-server/src/client.ts:6, openclaw/plugin-sdk @ plugins/codex-app-server/src/controller.ts:18, openclaw/plugin-sdk @ plugins/codex-app-server/src/types.ts:1 |
|
||||
| tool.registration.schema-capture:apify | P3 | apify | tool-runtime | Registered runtime tools expose stable names, input schemas, and result metadata. | registerTool @ plugins/apify/src/index.ts:13 |
|
||||
| tool.registration.schema-capture:web-search-plus | P3 | web-search-plus | tool-runtime | Registered runtime tools expose stable names, input schemas, and result metadata. | registerTool @ plugins/web-search-plus/index.ts:815, registerTool @ plugins/web-search-plus/index.ts:947 |
|
||||
|
||||
168
reports/crabpot-profile-diff.json
Normal file
168
reports/crabpot-profile-diff.json
Normal file
@ -0,0 +1,168 @@
|
||||
{
|
||||
"generatedAt": "deterministic",
|
||||
"status": "pass",
|
||||
"strict": false,
|
||||
"baseline": {
|
||||
"runs": 3,
|
||||
"summary": {
|
||||
"commandCount": 7,
|
||||
"p50WallMs": 742,
|
||||
"p95WallMs": 1273,
|
||||
"maxPeakRssMb": 65.1
|
||||
},
|
||||
"targetOpenClaw": {
|
||||
"status": "ok",
|
||||
"configuredPath": "../openclaw",
|
||||
"compatRecords": 19,
|
||||
"hookNames": 31,
|
||||
"apiRegistrars": 40,
|
||||
"capturedRegistrars": 18,
|
||||
"sdkExports": 307,
|
||||
"manifestFields": 32,
|
||||
"manifestContractFields": 16
|
||||
},
|
||||
"fixtureInventory": {
|
||||
"fixtures": 12,
|
||||
"sourceFiles": 201,
|
||||
"observedHooks": 18,
|
||||
"observedRegistrations": 22,
|
||||
"observedSdkImports": 20,
|
||||
"contractProbes": 57,
|
||||
"issueFindings": 58
|
||||
}
|
||||
},
|
||||
"current": {
|
||||
"runs": 3,
|
||||
"summary": {
|
||||
"commandCount": 7,
|
||||
"p50WallMs": 742,
|
||||
"p95WallMs": 1273,
|
||||
"maxPeakRssMb": 65.1
|
||||
},
|
||||
"targetOpenClaw": {
|
||||
"status": "ok",
|
||||
"configuredPath": "../openclaw",
|
||||
"compatRecords": 19,
|
||||
"hookNames": 31,
|
||||
"apiRegistrars": 40,
|
||||
"capturedRegistrars": 18,
|
||||
"sdkExports": 307,
|
||||
"manifestFields": 32,
|
||||
"manifestContractFields": 16
|
||||
},
|
||||
"fixtureInventory": {
|
||||
"fixtures": 12,
|
||||
"sourceFiles": 201,
|
||||
"observedHooks": 18,
|
||||
"observedRegistrations": 22,
|
||||
"observedSdkImports": 20,
|
||||
"contractProbes": 57,
|
||||
"issueFindings": 58
|
||||
}
|
||||
},
|
||||
"thresholds": {
|
||||
"wallP95RegressionPercent": 50,
|
||||
"peakRssRegressionMb": 50,
|
||||
"bootRegressionMs": 500,
|
||||
"strictMinimumSamples": 3
|
||||
},
|
||||
"summary": {
|
||||
"checkCount": 10,
|
||||
"failCount": 0,
|
||||
"warnCount": 0,
|
||||
"passCount": 10
|
||||
},
|
||||
"checks": [
|
||||
{
|
||||
"id": "profile.wall-p95",
|
||||
"action": "pass",
|
||||
"metric": "p95WallMs",
|
||||
"message": "p95WallMs stayed within 50% regression threshold",
|
||||
"baseline": 1273,
|
||||
"current": 1273,
|
||||
"delta": 0,
|
||||
"percent": 0
|
||||
},
|
||||
{
|
||||
"id": "profile.peak-rss",
|
||||
"action": "pass",
|
||||
"metric": "maxPeakRssMb",
|
||||
"message": "maxPeakRssMb stayed within 50 absolute regression threshold",
|
||||
"baseline": 65.1,
|
||||
"current": 65.1,
|
||||
"delta": 0
|
||||
},
|
||||
{
|
||||
"id": "profile.node-boot",
|
||||
"action": "pass",
|
||||
"metric": "nodeBootWallMs",
|
||||
"message": "nodeBootWallMs stayed within 500 absolute regression threshold",
|
||||
"baseline": 917,
|
||||
"current": 917,
|
||||
"delta": 0
|
||||
},
|
||||
{
|
||||
"id": "registry.compatRecords",
|
||||
"action": "pass",
|
||||
"metric": "compatRecords",
|
||||
"message": "registry surface delta is tracked as context",
|
||||
"baseline": 19,
|
||||
"current": 19,
|
||||
"delta": 0
|
||||
},
|
||||
{
|
||||
"id": "registry.hookNames",
|
||||
"action": "pass",
|
||||
"metric": "hookNames",
|
||||
"message": "registry surface delta is tracked as context",
|
||||
"baseline": 31,
|
||||
"current": 31,
|
||||
"delta": 0
|
||||
},
|
||||
{
|
||||
"id": "registry.apiRegistrars",
|
||||
"action": "pass",
|
||||
"metric": "apiRegistrars",
|
||||
"message": "registry surface delta is tracked as context",
|
||||
"baseline": 40,
|
||||
"current": 40,
|
||||
"delta": 0
|
||||
},
|
||||
{
|
||||
"id": "registry.capturedRegistrars",
|
||||
"action": "pass",
|
||||
"metric": "capturedRegistrars",
|
||||
"message": "registry surface delta is tracked as context",
|
||||
"baseline": 18,
|
||||
"current": 18,
|
||||
"delta": 0
|
||||
},
|
||||
{
|
||||
"id": "registry.sdkExports",
|
||||
"action": "pass",
|
||||
"metric": "sdkExports",
|
||||
"message": "registry surface delta is tracked as context",
|
||||
"baseline": 307,
|
||||
"current": 307,
|
||||
"delta": 0
|
||||
},
|
||||
{
|
||||
"id": "registry.manifestFields",
|
||||
"action": "pass",
|
||||
"metric": "manifestFields",
|
||||
"message": "registry surface delta is tracked as context",
|
||||
"baseline": 32,
|
||||
"current": 32,
|
||||
"delta": 0
|
||||
},
|
||||
{
|
||||
"id": "registry.manifestContractFields",
|
||||
"action": "pass",
|
||||
"metric": "manifestContractFields",
|
||||
"message": "registry surface delta is tracked as context",
|
||||
"baseline": 16,
|
||||
"current": 16,
|
||||
"delta": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
31
reports/crabpot-profile-diff.md
Normal file
31
reports/crabpot-profile-diff.md
Normal file
@ -0,0 +1,31 @@
|
||||
# Crabpot Runtime Profile Diff
|
||||
|
||||
Generated: deterministic
|
||||
Status: PASS
|
||||
Strict: false
|
||||
|
||||
## Summary
|
||||
|
||||
| Metric | Value |
|
||||
| ------------- | ----- |
|
||||
| Checks | 10 |
|
||||
| Fail | 0 |
|
||||
| Warn | 0 |
|
||||
| Pass | 10 |
|
||||
| Current runs | 3 |
|
||||
| Baseline runs | 3 |
|
||||
|
||||
## Checks
|
||||
|
||||
| Action | ID | Metric | Baseline | Current | Delta | Percent | Message |
|
||||
| ------ | ------------------------------- | ---------------------- | -------- | ------- | ----- | ------- | -------------------------------------------------------------- |
|
||||
| pass | profile.wall-p95 | p95WallMs | 1273 | 1273 | 0 | 0% | p95WallMs stayed within 50% regression threshold |
|
||||
| pass | profile.peak-rss | maxPeakRssMb | 65.1 | 65.1 | 0 | - | maxPeakRssMb stayed within 50 absolute regression threshold |
|
||||
| pass | profile.node-boot | nodeBootWallMs | 917 | 917 | 0 | - | nodeBootWallMs stayed within 500 absolute regression threshold |
|
||||
| pass | registry.compatRecords | compatRecords | 19 | 19 | 0 | - | registry surface delta is tracked as context |
|
||||
| pass | registry.hookNames | hookNames | 31 | 31 | 0 | - | registry surface delta is tracked as context |
|
||||
| pass | registry.apiRegistrars | apiRegistrars | 40 | 40 | 0 | - | registry surface delta is tracked as context |
|
||||
| pass | registry.capturedRegistrars | capturedRegistrars | 18 | 18 | 0 | - | registry surface delta is tracked as context |
|
||||
| pass | registry.sdkExports | sdkExports | 307 | 307 | 0 | - | registry surface delta is tracked as context |
|
||||
| pass | registry.manifestFields | manifestFields | 32 | 32 | 0 | - | registry surface delta is tracked as context |
|
||||
| pass | registry.manifestContractFields | manifestContractFields | 16 | 16 | 0 | - | registry surface delta is tracked as context |
|
||||
210
reports/crabpot-ref-diff.json
Normal file
210
reports/crabpot-ref-diff.json
Normal file
@ -0,0 +1,210 @@
|
||||
{
|
||||
"generatedAt": "deterministic",
|
||||
"base": {
|
||||
"label": "../openclaw",
|
||||
"targetOpenClaw": {
|
||||
"status": "ok",
|
||||
"configuredPath": "../openclaw",
|
||||
"compatRecordCount": 19,
|
||||
"hookNameCount": 31,
|
||||
"apiRegistrarCount": 40,
|
||||
"capturedRegistrarCount": 18,
|
||||
"sdkExportCount": 307,
|
||||
"manifestFieldCount": 32,
|
||||
"manifestContractFieldCount": 16
|
||||
},
|
||||
"report": {
|
||||
"status": "pass",
|
||||
"breakageCount": 0,
|
||||
"warningCount": 18,
|
||||
"suggestionCount": 40,
|
||||
"issueCount": 58,
|
||||
"p0IssueCount": 0,
|
||||
"p1IssueCount": 12,
|
||||
"contractProbeCount": 57
|
||||
}
|
||||
},
|
||||
"head": {
|
||||
"label": "../openclaw",
|
||||
"targetOpenClaw": {
|
||||
"status": "ok",
|
||||
"configuredPath": "../openclaw",
|
||||
"compatRecordCount": 19,
|
||||
"hookNameCount": 31,
|
||||
"apiRegistrarCount": 40,
|
||||
"capturedRegistrarCount": 18,
|
||||
"sdkExportCount": 307,
|
||||
"manifestFieldCount": 32,
|
||||
"manifestContractFieldCount": 16
|
||||
},
|
||||
"report": {
|
||||
"status": "pass",
|
||||
"breakageCount": 0,
|
||||
"warningCount": 18,
|
||||
"suggestionCount": 40,
|
||||
"issueCount": 58,
|
||||
"p0IssueCount": 0,
|
||||
"p1IssueCount": 12,
|
||||
"contractProbeCount": 57
|
||||
}
|
||||
},
|
||||
"status": "pass",
|
||||
"summary": {
|
||||
"dimensionCount": 7,
|
||||
"hardRegressionCount": 0,
|
||||
"warningRegressionCount": 0,
|
||||
"newIssueCount": 0,
|
||||
"newP0IssueCount": 0,
|
||||
"newP1IssueCount": 0,
|
||||
"removedIssueCount": 0
|
||||
},
|
||||
"dimensions": [
|
||||
{
|
||||
"id": "compatRecords",
|
||||
"label": "Compat records",
|
||||
"baseCount": 19,
|
||||
"headCount": 19,
|
||||
"added": [],
|
||||
"removed": [],
|
||||
"removedUsed": [],
|
||||
"used": [],
|
||||
"regressions": []
|
||||
},
|
||||
{
|
||||
"id": "hookNames",
|
||||
"label": "Hook names",
|
||||
"baseCount": 31,
|
||||
"headCount": 31,
|
||||
"added": [],
|
||||
"removed": [],
|
||||
"removedUsed": [],
|
||||
"used": [
|
||||
"after_tool_call",
|
||||
"agent_end",
|
||||
"before_prompt_build",
|
||||
"before_tool_call",
|
||||
"inbound_claim",
|
||||
"llm_input",
|
||||
"llm_output",
|
||||
"subagent_delivery_target",
|
||||
"subagent_ended",
|
||||
"subagent_spawned",
|
||||
"subagent_spawning",
|
||||
"tool_result_persist"
|
||||
],
|
||||
"regressions": []
|
||||
},
|
||||
{
|
||||
"id": "apiRegistrars",
|
||||
"label": "API registrars",
|
||||
"baseCount": 40,
|
||||
"headCount": 40,
|
||||
"added": [],
|
||||
"removed": [],
|
||||
"removedUsed": [],
|
||||
"used": [
|
||||
"defineChannelPluginEntry",
|
||||
"definePluginEntry",
|
||||
"registerChannel",
|
||||
"registerCli",
|
||||
"registerCommand",
|
||||
"registerGatewayMethod",
|
||||
"registerHttpRoute",
|
||||
"registerInteractiveHandler",
|
||||
"registerService",
|
||||
"registerSpeechProvider",
|
||||
"registerTool"
|
||||
],
|
||||
"regressions": []
|
||||
},
|
||||
{
|
||||
"id": "capturedRegistrars",
|
||||
"label": "Captured registrars",
|
||||
"baseCount": 18,
|
||||
"headCount": 18,
|
||||
"added": [],
|
||||
"removed": [],
|
||||
"removedUsed": [],
|
||||
"used": [
|
||||
"defineChannelPluginEntry",
|
||||
"definePluginEntry",
|
||||
"registerChannel",
|
||||
"registerCli",
|
||||
"registerCommand",
|
||||
"registerGatewayMethod",
|
||||
"registerHttpRoute",
|
||||
"registerInteractiveHandler",
|
||||
"registerService",
|
||||
"registerSpeechProvider",
|
||||
"registerTool"
|
||||
],
|
||||
"regressions": []
|
||||
},
|
||||
{
|
||||
"id": "sdkExports",
|
||||
"label": "SDK exports",
|
||||
"baseCount": 307,
|
||||
"headCount": 307,
|
||||
"added": [],
|
||||
"removed": [],
|
||||
"removedUsed": [],
|
||||
"used": [
|
||||
"openclaw/plugin-sdk",
|
||||
"openclaw/plugin-sdk/channel-contract",
|
||||
"openclaw/plugin-sdk/channel-core",
|
||||
"openclaw/plugin-sdk/core",
|
||||
"openclaw/plugin-sdk/diagnostics-otel",
|
||||
"openclaw/plugin-sdk/discord",
|
||||
"openclaw/plugin-sdk/media-runtime",
|
||||
"openclaw/plugin-sdk/plugin-entry",
|
||||
"openclaw/plugin-sdk/secret-input",
|
||||
"openclaw/plugin-sdk/setup",
|
||||
"openclaw/plugin-sdk/speech",
|
||||
"openclaw/plugin-sdk/status-helpers",
|
||||
"openclaw/plugin-sdk/telegram-account"
|
||||
],
|
||||
"regressions": []
|
||||
},
|
||||
{
|
||||
"id": "manifestFields",
|
||||
"label": "Manifest fields",
|
||||
"baseCount": 32,
|
||||
"headCount": 32,
|
||||
"added": [],
|
||||
"removed": [],
|
||||
"removedUsed": [],
|
||||
"used": [
|
||||
"activation",
|
||||
"channelEnvVars",
|
||||
"contracts",
|
||||
"id",
|
||||
"keys",
|
||||
"name",
|
||||
"path",
|
||||
"providerAuthEnvVars",
|
||||
"version"
|
||||
],
|
||||
"regressions": []
|
||||
},
|
||||
{
|
||||
"id": "manifestContractFields",
|
||||
"label": "Manifest contract fields",
|
||||
"baseCount": 16,
|
||||
"headCount": 16,
|
||||
"added": [],
|
||||
"removed": [],
|
||||
"removedUsed": [],
|
||||
"used": [
|
||||
"speechProviders",
|
||||
"tools"
|
||||
],
|
||||
"regressions": []
|
||||
}
|
||||
],
|
||||
"issueDelta": {
|
||||
"added": [],
|
||||
"removed": [],
|
||||
"regressions": []
|
||||
},
|
||||
"regressions": []
|
||||
}
|
||||
41
reports/crabpot-ref-diff.md
Normal file
41
reports/crabpot-ref-diff.md
Normal file
@ -0,0 +1,41 @@
|
||||
# Crabpot OpenClaw Ref Diff
|
||||
|
||||
Generated: deterministic
|
||||
Status: PASS
|
||||
|
||||
## Summary
|
||||
|
||||
| Metric | Value |
|
||||
| ------------------- | ---------------- |
|
||||
| Base | ../openclaw (ok) |
|
||||
| Head | ../openclaw (ok) |
|
||||
| Hard regressions | 0 |
|
||||
| Warning regressions | 0 |
|
||||
| New issues | 0 |
|
||||
| New P0 issues | 0 |
|
||||
| New P1 issues | 0 |
|
||||
| Removed issues | 0 |
|
||||
|
||||
## Target Surface Delta
|
||||
|
||||
| Surface | Base | Head | Delta | Added | Removed | Removed used |
|
||||
| ------------------------ | ---- | ---- | ----- | ----- | ------- | ------------ |
|
||||
| Compat records | 19 | 19 | 0 | - | - | - |
|
||||
| Hook names | 31 | 31 | 0 | - | - | - |
|
||||
| API registrars | 40 | 40 | 0 | - | - | - |
|
||||
| Captured registrars | 18 | 18 | 0 | - | - | - |
|
||||
| SDK exports | 307 | 307 | 0 | - | - | - |
|
||||
| Manifest fields | 32 | 32 | 0 | - | - | - |
|
||||
| Manifest contract fields | 16 | 16 | 0 | - | - | - |
|
||||
|
||||
## Regressions
|
||||
|
||||
_none_
|
||||
|
||||
## New Issues
|
||||
|
||||
_none_
|
||||
|
||||
## Removed Issues
|
||||
|
||||
_none_
|
||||
@ -3,8 +3,7 @@
|
||||
"targetOpenClaw": {
|
||||
"configuredPath": "../openclaw",
|
||||
"searchedPaths": [
|
||||
"../openclaw",
|
||||
"./openclaw"
|
||||
"../openclaw"
|
||||
],
|
||||
"status": "ok",
|
||||
"compatRegistryPath": "../openclaw/src/plugins/compat/registry.ts",
|
||||
@ -132,7 +131,7 @@
|
||||
"registerWebSearchProvider"
|
||||
],
|
||||
"packagePath": "../openclaw/package.json",
|
||||
"sdkExportCount": 306,
|
||||
"sdkExportCount": 307,
|
||||
"sdkExports": [
|
||||
"openclaw/plugin-sdk",
|
||||
"openclaw/plugin-sdk/account-core",
|
||||
@ -322,6 +321,7 @@
|
||||
"openclaw/plugin-sdk/opencode",
|
||||
"openclaw/plugin-sdk/outbound-media",
|
||||
"openclaw/plugin-sdk/outbound-runtime",
|
||||
"openclaw/plugin-sdk/outbound-send-deps",
|
||||
"openclaw/plugin-sdk/param-readers",
|
||||
"openclaw/plugin-sdk/persistent-dedupe",
|
||||
"openclaw/plugin-sdk/plugin-entry",
|
||||
@ -499,16 +499,16 @@
|
||||
},
|
||||
"status": "pass",
|
||||
"summary": {
|
||||
"fixtureCount": 11,
|
||||
"highPriorityFixtures": 6,
|
||||
"fixtureCount": 12,
|
||||
"highPriorityFixtures": 7,
|
||||
"breakageCount": 0,
|
||||
"warningCount": 16,
|
||||
"suggestionCount": 35,
|
||||
"decisionCount": 53,
|
||||
"issueCount": 51,
|
||||
"warningCount": 18,
|
||||
"suggestionCount": 40,
|
||||
"decisionCount": 60,
|
||||
"issueCount": 58,
|
||||
"p0IssueCount": 0,
|
||||
"p1IssueCount": 9,
|
||||
"contractProbeCount": 50
|
||||
"p1IssueCount": 12,
|
||||
"contractProbeCount": 57
|
||||
},
|
||||
"fixtures": [
|
||||
{
|
||||
@ -1695,6 +1695,306 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "opik-openclaw",
|
||||
"name": "Opik OpenClaw",
|
||||
"priority": "high",
|
||||
"seams": [
|
||||
"llm-observer",
|
||||
"tool-runtime",
|
||||
"subagent-routing",
|
||||
"diagnostics",
|
||||
"cli"
|
||||
],
|
||||
"why": "Opik trace exporter covering LLM spans, tool spans, subagent spans, stale trace cleanup, CLI setup, and persisted tool-result sanitization.",
|
||||
"status": "ok",
|
||||
"hooks": [
|
||||
"after_tool_call",
|
||||
"agent_end",
|
||||
"before_tool_call",
|
||||
"llm_input",
|
||||
"llm_output",
|
||||
"subagent_delivery_target",
|
||||
"subagent_ended",
|
||||
"subagent_spawned",
|
||||
"subagent_spawning",
|
||||
"tool_result_persist"
|
||||
],
|
||||
"hookDetails": [
|
||||
{
|
||||
"name": "after_tool_call",
|
||||
"file": "plugins/opik-openclaw/src/service/hooks/tool.ts",
|
||||
"line": 100,
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/tool.ts:100"
|
||||
},
|
||||
{
|
||||
"name": "agent_end",
|
||||
"file": "plugins/opik-openclaw/src/service.ts",
|
||||
"line": 560,
|
||||
"ref": "plugins/opik-openclaw/src/service.ts:560"
|
||||
},
|
||||
{
|
||||
"name": "before_tool_call",
|
||||
"file": "plugins/opik-openclaw/src/service/hooks/tool.ts",
|
||||
"line": 34,
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/tool.ts:34"
|
||||
},
|
||||
{
|
||||
"name": "llm_input",
|
||||
"file": "plugins/opik-openclaw/src/service/hooks/llm.ts",
|
||||
"line": 39,
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/llm.ts:39"
|
||||
},
|
||||
{
|
||||
"name": "llm_output",
|
||||
"file": "plugins/opik-openclaw/src/service/hooks/llm.ts",
|
||||
"line": 150,
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/llm.ts:150"
|
||||
},
|
||||
{
|
||||
"name": "subagent_delivery_target",
|
||||
"file": "plugins/opik-openclaw/src/service/hooks/subagent.ts",
|
||||
"line": 147,
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/subagent.ts:147"
|
||||
},
|
||||
{
|
||||
"name": "subagent_ended",
|
||||
"file": "plugins/opik-openclaw/src/service/hooks/subagent.ts",
|
||||
"line": 222,
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/subagent.ts:222"
|
||||
},
|
||||
{
|
||||
"name": "subagent_spawned",
|
||||
"file": "plugins/opik-openclaw/src/service/hooks/subagent.ts",
|
||||
"line": 89,
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/subagent.ts:89"
|
||||
},
|
||||
{
|
||||
"name": "subagent_spawning",
|
||||
"file": "plugins/opik-openclaw/src/service/hooks/subagent.ts",
|
||||
"line": 38,
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/subagent.ts:38"
|
||||
},
|
||||
{
|
||||
"name": "tool_result_persist",
|
||||
"file": "plugins/opik-openclaw/src/service.ts",
|
||||
"line": 541,
|
||||
"ref": "plugins/opik-openclaw/src/service.ts:541"
|
||||
}
|
||||
],
|
||||
"registrations": [
|
||||
"registerCli",
|
||||
"registerService"
|
||||
],
|
||||
"registrationDetails": [
|
||||
{
|
||||
"name": "registerCli",
|
||||
"file": "plugins/opik-openclaw/index.ts",
|
||||
"line": 17,
|
||||
"ref": "plugins/opik-openclaw/index.ts:17"
|
||||
},
|
||||
{
|
||||
"name": "registerService",
|
||||
"file": "plugins/opik-openclaw/index.ts",
|
||||
"line": 16,
|
||||
"ref": "plugins/opik-openclaw/index.ts:16"
|
||||
}
|
||||
],
|
||||
"manifestContracts": [],
|
||||
"manifestFiles": [
|
||||
"plugins/opik-openclaw/openclaw.plugin.json"
|
||||
],
|
||||
"sourceFiles": [
|
||||
"plugins/opik-openclaw/.scripts/build.mjs",
|
||||
"plugins/opik-openclaw/.scripts/check-clawhub-suspicious.mjs",
|
||||
"plugins/opik-openclaw/.scripts/check-e2e-result.mjs",
|
||||
"plugins/opik-openclaw/.scripts/check-pack-payload.mjs",
|
||||
"plugins/opik-openclaw/.scripts/live-e2e.mjs",
|
||||
"plugins/opik-openclaw/.scripts/mock-llm-server.mjs",
|
||||
"plugins/opik-openclaw/.scripts/mock-opik-server.mjs",
|
||||
"plugins/opik-openclaw/index.ts",
|
||||
"plugins/opik-openclaw/src/cli.ts",
|
||||
"plugins/opik-openclaw/src/configure.ts",
|
||||
"plugins/opik-openclaw/src/service.ts",
|
||||
"plugins/opik-openclaw/src/service/attachment-uploader.ts",
|
||||
"plugins/opik-openclaw/src/service/constants.ts",
|
||||
"plugins/opik-openclaw/src/service/helpers.ts",
|
||||
"plugins/opik-openclaw/src/service/hooks/llm.ts",
|
||||
"plugins/opik-openclaw/src/service/hooks/subagent.ts",
|
||||
"plugins/opik-openclaw/src/service/hooks/tool.ts",
|
||||
"plugins/opik-openclaw/src/service/media.ts",
|
||||
"plugins/opik-openclaw/src/service/payload-sanitizer.ts",
|
||||
"plugins/opik-openclaw/src/types.ts"
|
||||
],
|
||||
"pluginManifests": [
|
||||
{
|
||||
"path": "plugins/opik-openclaw/openclaw.plugin.json",
|
||||
"id": "opik-openclaw",
|
||||
"name": "Opik",
|
||||
"version": null,
|
||||
"keys": [
|
||||
"configSchema",
|
||||
"description",
|
||||
"id",
|
||||
"name",
|
||||
"uiHints"
|
||||
],
|
||||
"contracts": [],
|
||||
"providerAuthEnvVars": {},
|
||||
"channelEnvVars": {},
|
||||
"activation": null
|
||||
}
|
||||
],
|
||||
"package": {
|
||||
"path": "plugins/opik-openclaw/package.json",
|
||||
"name": "@opik/opik-openclaw",
|
||||
"version": "0.2.14",
|
||||
"type": "module",
|
||||
"main": null,
|
||||
"dependencies": [
|
||||
"@clack/prompts",
|
||||
"opik",
|
||||
"zod"
|
||||
],
|
||||
"peerDependencies": [
|
||||
"openclaw"
|
||||
],
|
||||
"optionalDependencies": [],
|
||||
"openclaw": {
|
||||
"extensions": [
|
||||
"./index.ts"
|
||||
],
|
||||
"runtimeExtensions": [
|
||||
"./dist/index.js"
|
||||
],
|
||||
"setupEntry": null,
|
||||
"compatPluginApi": ">=2026.3.2",
|
||||
"buildOpenClawVersion": "2026.3.2",
|
||||
"buildPluginSdkVersion": "2026.3.2",
|
||||
"entrypoints": [
|
||||
{
|
||||
"kind": "extension",
|
||||
"specifier": "./index.ts",
|
||||
"relativePath": "plugins/opik-openclaw/index.ts",
|
||||
"exists": true,
|
||||
"requiresBuild": false
|
||||
},
|
||||
{
|
||||
"kind": "runtimeExtension",
|
||||
"specifier": "./dist/index.js",
|
||||
"relativePath": "plugins/opik-openclaw/dist/index.js",
|
||||
"exists": false,
|
||||
"requiresBuild": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"packages": [
|
||||
{
|
||||
"path": "plugins/opik-openclaw/package.json",
|
||||
"name": "@opik/opik-openclaw",
|
||||
"version": "0.2.14",
|
||||
"type": "module",
|
||||
"main": null,
|
||||
"dependencies": [
|
||||
"@clack/prompts",
|
||||
"opik",
|
||||
"zod"
|
||||
],
|
||||
"peerDependencies": [
|
||||
"openclaw"
|
||||
],
|
||||
"optionalDependencies": [],
|
||||
"openclaw": {
|
||||
"extensions": [
|
||||
"./index.ts"
|
||||
],
|
||||
"runtimeExtensions": [
|
||||
"./dist/index.js"
|
||||
],
|
||||
"setupEntry": null,
|
||||
"compatPluginApi": ">=2026.3.2",
|
||||
"buildOpenClawVersion": "2026.3.2",
|
||||
"buildPluginSdkVersion": "2026.3.2",
|
||||
"entrypoints": [
|
||||
{
|
||||
"kind": "extension",
|
||||
"specifier": "./index.ts",
|
||||
"relativePath": "plugins/opik-openclaw/index.ts",
|
||||
"exists": true,
|
||||
"requiresBuild": false
|
||||
},
|
||||
{
|
||||
"kind": "runtimeExtension",
|
||||
"specifier": "./dist/index.js",
|
||||
"relativePath": "plugins/opik-openclaw/dist/index.js",
|
||||
"exists": false,
|
||||
"requiresBuild": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"sdkImports": [
|
||||
"openclaw/plugin-sdk"
|
||||
],
|
||||
"sdkImportDetails": [
|
||||
{
|
||||
"specifier": "openclaw/plugin-sdk",
|
||||
"file": "plugins/opik-openclaw/index.ts",
|
||||
"line": 1,
|
||||
"ref": "plugins/opik-openclaw/index.ts:1"
|
||||
},
|
||||
{
|
||||
"specifier": "openclaw/plugin-sdk",
|
||||
"file": "plugins/opik-openclaw/index.ts",
|
||||
"line": 2,
|
||||
"ref": "plugins/opik-openclaw/index.ts:2"
|
||||
},
|
||||
{
|
||||
"specifier": "openclaw/plugin-sdk",
|
||||
"file": "plugins/opik-openclaw/src/cli.ts",
|
||||
"line": 1,
|
||||
"ref": "plugins/opik-openclaw/src/cli.ts:1"
|
||||
},
|
||||
{
|
||||
"specifier": "openclaw/plugin-sdk",
|
||||
"file": "plugins/opik-openclaw/src/configure.ts",
|
||||
"line": 2,
|
||||
"ref": "plugins/opik-openclaw/src/configure.ts:2"
|
||||
},
|
||||
{
|
||||
"specifier": "openclaw/plugin-sdk",
|
||||
"file": "plugins/opik-openclaw/src/service.ts",
|
||||
"line": 5,
|
||||
"ref": "plugins/opik-openclaw/src/service.ts:5"
|
||||
},
|
||||
{
|
||||
"specifier": "openclaw/plugin-sdk",
|
||||
"file": "plugins/opik-openclaw/src/service.ts",
|
||||
"line": 6,
|
||||
"ref": "plugins/opik-openclaw/src/service.ts:6"
|
||||
},
|
||||
{
|
||||
"specifier": "openclaw/plugin-sdk",
|
||||
"file": "plugins/opik-openclaw/src/service/hooks/llm.ts",
|
||||
"line": 1,
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/llm.ts:1"
|
||||
},
|
||||
{
|
||||
"specifier": "openclaw/plugin-sdk",
|
||||
"file": "plugins/opik-openclaw/src/service/hooks/subagent.ts",
|
||||
"line": 1,
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/subagent.ts:1"
|
||||
},
|
||||
{
|
||||
"specifier": "openclaw/plugin-sdk",
|
||||
"file": "plugins/opik-openclaw/src/service/hooks/tool.ts",
|
||||
"line": 1,
|
||||
"ref": "plugins/opik-openclaw/src/service/hooks/tool.ts:1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "clawmetry",
|
||||
"name": "ClawMetry",
|
||||
@ -2688,6 +2988,35 @@
|
||||
],
|
||||
"compatRecord": "legacy-root-sdk-import"
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"code": "conversation-access-hook",
|
||||
"level": "warning",
|
||||
"message": "fixture observes raw model or conversation content and needs privacy-boundary contract probes",
|
||||
"evidence": [
|
||||
"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"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"code": "legacy-root-sdk-import",
|
||||
"level": "warning",
|
||||
"message": "fixture imports the root plugin SDK barrel",
|
||||
"evidence": [
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:1",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:2",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/cli.ts:1",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/configure.ts:2",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:5",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:6",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/llm.ts:1",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/subagent.ts:1",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/tool.ts:1"
|
||||
],
|
||||
"compatRecord": "legacy-root-sdk-import"
|
||||
},
|
||||
{
|
||||
"fixture": "codex-app-server",
|
||||
"code": "sdk-export-missing",
|
||||
@ -2951,6 +3280,54 @@
|
||||
"extension:plugins/llm-trace-phoenix/index.ts"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"code": "package-build-artifact-entrypoint",
|
||||
"level": "suggestion",
|
||||
"message": "package OpenClaw entrypoint points at build output that is not present in the source fixture checkout",
|
||||
"evidence": [
|
||||
"runtimeExtension:./dist/index.js -> plugins/opik-openclaw/dist/index.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"code": "package-typescript-source-entrypoint",
|
||||
"level": "suggestion",
|
||||
"message": "package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout",
|
||||
"evidence": [
|
||||
"extension:plugins/opik-openclaw/index.ts"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"code": "package-dependency-install-required",
|
||||
"level": "suggestion",
|
||||
"message": "package declares runtime dependencies that must be installed before cold import",
|
||||
"evidence": [
|
||||
"@clack/prompts @ plugins/opik-openclaw/package.json",
|
||||
"opik @ plugins/opik-openclaw/package.json",
|
||||
"zod @ plugins/opik-openclaw/package.json",
|
||||
"openclaw @ plugins/opik-openclaw/package.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"code": "registration-capture-gap",
|
||||
"level": "suggestion",
|
||||
"message": "future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations",
|
||||
"evidence": [
|
||||
"registerService @ plugins/opik-openclaw/index.ts:16"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"code": "before-tool-call-probe",
|
||||
"level": "suggestion",
|
||||
"message": "add contract probes for before_tool_call terminal, block, and approval semantics",
|
||||
"evidence": [
|
||||
"before_tool_call @ plugins/opik-openclaw/src/service/hooks/tool.ts:34"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fixture": "clawmetry",
|
||||
"code": "package-build-artifact-entrypoint",
|
||||
@ -3214,6 +3591,50 @@
|
||||
],
|
||||
"compatRecord": null
|
||||
},
|
||||
{
|
||||
"id": "CRABPOT-EE3B527C",
|
||||
"fixture": "opik-openclaw",
|
||||
"severity": "P1",
|
||||
"owner": "inspector",
|
||||
"code": "before-tool-call-probe",
|
||||
"decision": "inspector-follow-up",
|
||||
"status": "open",
|
||||
"title": "opik-openclaw: before_tool_call needs terminal/block/approval probes",
|
||||
"evidence": [
|
||||
"before_tool_call @ plugins/opik-openclaw/src/service/hooks/tool.ts:34"
|
||||
],
|
||||
"compatRecord": null
|
||||
},
|
||||
{
|
||||
"id": "CRABPOT-6FC4ED08",
|
||||
"fixture": "opik-openclaw",
|
||||
"severity": "P1",
|
||||
"owner": "core",
|
||||
"code": "conversation-access-hook",
|
||||
"decision": "inspector-follow-up",
|
||||
"status": "open",
|
||||
"title": "opik-openclaw: conversation-access hooks need privacy-boundary probes",
|
||||
"evidence": [
|
||||
"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"
|
||||
],
|
||||
"compatRecord": null
|
||||
},
|
||||
{
|
||||
"id": "CRABPOT-5E85F236",
|
||||
"fixture": "opik-openclaw",
|
||||
"severity": "P1",
|
||||
"owner": "inspector",
|
||||
"code": "registration-capture-gap",
|
||||
"decision": "inspector-follow-up",
|
||||
"status": "open",
|
||||
"title": "opik-openclaw: runtime registrations need capture before contract judgment",
|
||||
"evidence": [
|
||||
"registerService @ plugins/opik-openclaw/index.ts:16"
|
||||
],
|
||||
"compatRecord": null
|
||||
},
|
||||
{
|
||||
"id": "CRABPOT-B08DB79E",
|
||||
"fixture": "wecom",
|
||||
@ -3743,6 +4164,73 @@
|
||||
],
|
||||
"compatRecord": null
|
||||
},
|
||||
{
|
||||
"id": "CRABPOT-F76EC24F",
|
||||
"fixture": "opik-openclaw",
|
||||
"severity": "P2",
|
||||
"owner": "core",
|
||||
"code": "legacy-root-sdk-import",
|
||||
"decision": "core-compat-adapter",
|
||||
"status": "open",
|
||||
"title": "opik-openclaw: root plugin SDK barrel is still used by fixtures",
|
||||
"evidence": [
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:1",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:2",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/cli.ts:1",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/configure.ts:2",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:5",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:6",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/llm.ts:1",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/subagent.ts:1",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/tool.ts:1"
|
||||
],
|
||||
"compatRecord": "legacy-root-sdk-import"
|
||||
},
|
||||
{
|
||||
"id": "CRABPOT-5D328BF6",
|
||||
"fixture": "opik-openclaw",
|
||||
"severity": "P2",
|
||||
"owner": "inspector",
|
||||
"code": "package-build-artifact-entrypoint",
|
||||
"decision": "inspector-follow-up",
|
||||
"status": "open",
|
||||
"title": "opik-openclaw: cold import requires package build output",
|
||||
"evidence": [
|
||||
"runtimeExtension:./dist/index.js -> plugins/opik-openclaw/dist/index.js"
|
||||
],
|
||||
"compatRecord": null
|
||||
},
|
||||
{
|
||||
"id": "CRABPOT-32CDFD6D",
|
||||
"fixture": "opik-openclaw",
|
||||
"severity": "P2",
|
||||
"owner": "inspector",
|
||||
"code": "package-dependency-install-required",
|
||||
"decision": "inspector-follow-up",
|
||||
"status": "open",
|
||||
"title": "opik-openclaw: cold import requires isolated dependency installation",
|
||||
"evidence": [
|
||||
"@clack/prompts @ plugins/opik-openclaw/package.json",
|
||||
"opik @ plugins/opik-openclaw/package.json",
|
||||
"zod @ plugins/opik-openclaw/package.json",
|
||||
"openclaw @ plugins/opik-openclaw/package.json"
|
||||
],
|
||||
"compatRecord": null
|
||||
},
|
||||
{
|
||||
"id": "CRABPOT-FAEC3F71",
|
||||
"fixture": "opik-openclaw",
|
||||
"severity": "P2",
|
||||
"owner": "inspector",
|
||||
"code": "package-typescript-source-entrypoint",
|
||||
"decision": "inspector-follow-up",
|
||||
"status": "open",
|
||||
"title": "opik-openclaw: cold import needs TypeScript source entrypoint support",
|
||||
"evidence": [
|
||||
"extension:plugins/opik-openclaw/index.ts"
|
||||
],
|
||||
"compatRecord": null
|
||||
},
|
||||
{
|
||||
"id": "CRABPOT-D8910079",
|
||||
"fixture": "web-search-plus",
|
||||
@ -3920,6 +4408,16 @@
|
||||
"registerService @ plugins/mcp-adapter/index.ts:15"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "api.capture.runtime-registrars:opik-openclaw",
|
||||
"fixture": "opik-openclaw",
|
||||
"priority": "P1",
|
||||
"target": "inspector-capture-api",
|
||||
"contract": "External inspector capture records service, route, gateway, command, and interactive registrations.",
|
||||
"evidence": [
|
||||
"registerService @ plugins/opik-openclaw/index.ts:16"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "api.capture.runtime-registrars:wecom",
|
||||
"fixture": "wecom",
|
||||
@ -3931,6 +4429,16 @@
|
||||
"registerHttpRoute @ plugins/wecom/index.js:45"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "hook.before_tool_call.terminal-block-approval:opik-openclaw",
|
||||
"fixture": "opik-openclaw",
|
||||
"priority": "P1",
|
||||
"target": "hook-runner",
|
||||
"contract": "Hook returns preserve terminal, block, and approval semantics.",
|
||||
"evidence": [
|
||||
"before_tool_call @ plugins/opik-openclaw/src/service/hooks/tool.ts:34"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "hook.before_tool_call.terminal-block-approval:wecom",
|
||||
"fixture": "wecom",
|
||||
@ -3952,6 +4460,18 @@
|
||||
"llm_output @ plugins/llm-trace-phoenix/index.ts:168"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "hook.llm-observer.privacy-payload:opik-openclaw",
|
||||
"fixture": "opik-openclaw",
|
||||
"priority": "P1",
|
||||
"target": "hook-runner",
|
||||
"contract": "LLM observer hooks receive documented prompt/output fields with expected redaction behavior.",
|
||||
"evidence": [
|
||||
"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"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sdk.import.package-export-cold-import:codex-app-server",
|
||||
"fixture": "codex-app-server",
|
||||
@ -4067,6 +4587,16 @@
|
||||
"setupEntry:./dist/setup-entry.js -> plugins/agentchat/integrations/openclaw-channel/dist/setup-entry.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "package.entrypoint.build-before-cold-import:opik-openclaw",
|
||||
"fixture": "opik-openclaw",
|
||||
"priority": "P2",
|
||||
"target": "package-loader",
|
||||
"contract": "Inspector can build or resolve source aliases before cold importing package entrypoints.",
|
||||
"evidence": [
|
||||
"runtimeExtension:./dist/index.js -> plugins/opik-openclaw/dist/index.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "package.entrypoint.isolated-dependency-install:a2a-gateway",
|
||||
"fixture": "a2a-gateway",
|
||||
@ -4119,6 +4649,19 @@
|
||||
"@modelcontextprotocol/sdk @ plugins/mcp-adapter/package.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "package.entrypoint.isolated-dependency-install:opik-openclaw",
|
||||
"fixture": "opik-openclaw",
|
||||
"priority": "P2",
|
||||
"target": "package-loader",
|
||||
"contract": "Inspector installs package dependencies in an isolated workspace before cold import.",
|
||||
"evidence": [
|
||||
"@clack/prompts @ plugins/opik-openclaw/package.json",
|
||||
"opik @ plugins/opik-openclaw/package.json",
|
||||
"zod @ plugins/opik-openclaw/package.json",
|
||||
"openclaw @ plugins/opik-openclaw/package.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "package.entrypoint.isolated-dependency-install:wecom",
|
||||
"fixture": "wecom",
|
||||
@ -4173,6 +4716,16 @@
|
||||
"extension:plugins/mcp-adapter/index.ts"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "package.entrypoint.typescript-loader:opik-openclaw",
|
||||
"fixture": "opik-openclaw",
|
||||
"priority": "P2",
|
||||
"target": "package-loader",
|
||||
"contract": "Inspector can compile or load TypeScript source entrypoints before registration capture.",
|
||||
"evidence": [
|
||||
"extension:plugins/opik-openclaw/index.ts"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "package.metadata.version-alignment:a2a-gateway",
|
||||
"fixture": "a2a-gateway",
|
||||
@ -4204,6 +4757,24 @@
|
||||
"openclaw/plugin-sdk @ plugins/llm-trace-phoenix/index.ts:12"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sdk.import.root-barrel-cold-import:opik-openclaw",
|
||||
"fixture": "opik-openclaw",
|
||||
"priority": "P2",
|
||||
"target": "sdk-alias",
|
||||
"contract": "Root plugin SDK barrel remains importable or has a machine-readable migration path.",
|
||||
"evidence": [
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:1",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:2",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/cli.ts:1",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/configure.ts:2",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:5",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:6",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/llm.ts:1",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/subagent.ts:1",
|
||||
"openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/tool.ts:1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "tool.registration.schema-capture:a2a-gateway",
|
||||
"fixture": "a2a-gateway",
|
||||
@ -4767,6 +5338,83 @@
|
||||
"version:1.0.1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"code": "seam-inventory",
|
||||
"level": "log",
|
||||
"message": "observed 10 hooks, 2 registrations, and 0 manifest contracts",
|
||||
"evidence": [
|
||||
"hook:after_tool_call",
|
||||
"hook:agent_end",
|
||||
"hook:before_tool_call",
|
||||
"hook:llm_input",
|
||||
"hook:llm_output",
|
||||
"hook:subagent_delivery_target",
|
||||
"hook:subagent_ended",
|
||||
"hook:subagent_spawned",
|
||||
"hook:subagent_spawning",
|
||||
"hook:tool_result_persist",
|
||||
"registration:registerCli",
|
||||
"registration:registerService"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"code": "hook-names-present",
|
||||
"level": "log",
|
||||
"message": "all observed hooks exist in the target OpenClaw hook registry",
|
||||
"evidence": [
|
||||
"after_tool_call",
|
||||
"agent_end",
|
||||
"before_tool_call",
|
||||
"llm_input",
|
||||
"llm_output",
|
||||
"subagent_delivery_target",
|
||||
"subagent_ended",
|
||||
"subagent_spawned",
|
||||
"subagent_spawning",
|
||||
"tool_result_persist"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"code": "api-registrars-present",
|
||||
"level": "log",
|
||||
"message": "all observed api.register* calls exist in the target OpenClaw plugin API builder",
|
||||
"evidence": [
|
||||
"registerCli",
|
||||
"registerService"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"code": "sdk-exports-present",
|
||||
"level": "log",
|
||||
"message": "all observed plugin SDK imports exist in target OpenClaw package exports",
|
||||
"evidence": [
|
||||
"openclaw/plugin-sdk"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"code": "manifest-fields-checked",
|
||||
"level": "log",
|
||||
"message": "plugin manifest fields were compared with target OpenClaw manifest types",
|
||||
"evidence": [
|
||||
"plugins/opik-openclaw/openclaw.plugin.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"code": "package-metadata",
|
||||
"level": "log",
|
||||
"message": "selected package metadata for plugin contract checks",
|
||||
"evidence": [
|
||||
"plugins/opik-openclaw/package.json",
|
||||
"@opik/opik-openclaw",
|
||||
"version:0.2.14"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fixture": "clawmetry",
|
||||
"code": "seam-inventory",
|
||||
@ -5075,6 +5723,16 @@
|
||||
],
|
||||
"compatRecord": "legacy-root-sdk-import"
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"code": "compat-record-present",
|
||||
"level": "log",
|
||||
"message": "target OpenClaw checkout has a matching compat registry record",
|
||||
"evidence": [
|
||||
"legacy-root-sdk-import"
|
||||
],
|
||||
"compatRecord": "legacy-root-sdk-import"
|
||||
},
|
||||
{
|
||||
"fixture": "codex-app-server",
|
||||
"code": "compat-record-present",
|
||||
@ -5334,6 +5992,55 @@
|
||||
"action": "Keep the root SDK barrel stable or expose a machine-readable migration map before removing aliases.",
|
||||
"evidence": "openclaw/plugin-sdk"
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"decision": "inspector-follow-up",
|
||||
"seam": "cold-import",
|
||||
"action": "Run the plugin build or resolve source entrypoint aliases before cold-importing this fixture.",
|
||||
"evidence": "./dist/index.js"
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"decision": "inspector-follow-up",
|
||||
"seam": "cold-import",
|
||||
"action": "Compile TypeScript source or run a loader before cold-importing this fixture entrypoint.",
|
||||
"evidence": "plugins/opik-openclaw/index.ts"
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"decision": "inspector-follow-up",
|
||||
"seam": "cold-import",
|
||||
"action": "Install runtime dependencies in an isolated workspace before executing this fixture entrypoint.",
|
||||
"evidence": "@clack/prompts, opik, zod, openclaw"
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"decision": "inspector-follow-up",
|
||||
"seam": "conversation-access",
|
||||
"action": "Add synthetic llm_input/llm_output/agent_end probes before tightening hook payloads or redaction behavior.",
|
||||
"evidence": "agent_end, llm_input, llm_output"
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"decision": "core-compat-adapter",
|
||||
"seam": "sdk-import",
|
||||
"action": "Keep the root SDK barrel stable or expose a machine-readable migration map before removing aliases.",
|
||||
"evidence": "openclaw/plugin-sdk"
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"decision": "inspector-follow-up",
|
||||
"seam": "registration-capture",
|
||||
"action": "Expose or mirror a full public API capture shim before treating these runtime-only seams as covered.",
|
||||
"evidence": "registerService"
|
||||
},
|
||||
{
|
||||
"fixture": "opik-openclaw",
|
||||
"decision": "inspector-follow-up",
|
||||
"seam": "tool-policy",
|
||||
"action": "Probe before_tool_call return shapes before changing tool-call approval or block behavior.",
|
||||
"evidence": "before_tool_call"
|
||||
},
|
||||
{
|
||||
"fixture": "clawmetry",
|
||||
"decision": "inspector-follow-up",
|
||||
|
||||
@ -7,16 +7,16 @@ Status: PASS
|
||||
|
||||
| Metric | Value |
|
||||
| ------------------------- | ----- |
|
||||
| Fixtures | 11 |
|
||||
| High-priority fixtures | 6 |
|
||||
| Fixtures | 12 |
|
||||
| High-priority fixtures | 7 |
|
||||
| Hard breakages | 0 |
|
||||
| Warnings | 16 |
|
||||
| Compatibility suggestions | 35 |
|
||||
| Issue findings | 51 |
|
||||
| Warnings | 18 |
|
||||
| Compatibility suggestions | 40 |
|
||||
| Issue findings | 58 |
|
||||
| P0 issues | 0 |
|
||||
| P1 issues | 9 |
|
||||
| Contract probes | 50 |
|
||||
| Decision rows | 53 |
|
||||
| P1 issues | 12 |
|
||||
| Contract probes | 57 |
|
||||
| Decision rows | 60 |
|
||||
|
||||
## Hard Breakages
|
||||
|
||||
@ -38,31 +38,33 @@ _none_
|
||||
| Captured registration | ../openclaw/src/plugins/captured-registration.ts |
|
||||
| Captured registrars | 18 |
|
||||
| Package metadata | ../openclaw/package.json |
|
||||
| Plugin SDK exports | 306 |
|
||||
| Plugin SDK exports | 307 |
|
||||
| Manifest types | ../openclaw/src/plugins/manifest.ts |
|
||||
| Manifest fields | 32 |
|
||||
| Manifest contract fields | 16 |
|
||||
|
||||
## Warnings
|
||||
|
||||
| Fixture | Code | Level | Message | Evidence | Compat record |
|
||||
| ----------------- | --------------------------------- | ------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
|
||||
| agentchat | manifest-unknown-fields | warning | manifest uses top-level fields that are not present in the target OpenClaw PluginManifest type | displayName @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, homepage @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, icon @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json | - |
|
||||
| agentchat | channel-env-vars | warning | manifest uses channelEnvVars legacy compatibility metadata | agentchat | channel-env-vars |
|
||||
| wecom | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/wecom/package.json | - |
|
||||
| a2a-gateway | manifest-unknown-fields | warning | manifest uses top-level fields that are not present in the target OpenClaw PluginManifest type | defaultConfig @ plugins/a2a-gateway/openclaw.plugin.json | - |
|
||||
| a2a-gateway | package-manifest-version-drift | warning | package.json and openclaw.plugin.json publish different versions | package:1.4.0, manifest:1.3.0 | - |
|
||||
| a2a-gateway | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/a2a-gateway/package.json | - |
|
||||
| a2a-gateway | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/a2a-gateway/src/types.ts:14 | legacy-root-sdk-import |
|
||||
| hasdata | provider-auth-env-vars | warning | manifest uses providerAuthEnvVars legacy compatibility metadata | hasdata | provider-auth-env-vars |
|
||||
| mcp-adapter | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/mcp-adapter/package.json | - |
|
||||
| llm-trace-phoenix | conversation-access-hook | warning | fixture observes raw model or conversation content and needs privacy-boundary contract probes | llm_input @ plugins/llm-trace-phoenix/index.ts:154, llm_output @ plugins/llm-trace-phoenix/index.ts:168 | - |
|
||||
| llm-trace-phoenix | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/llm-trace-phoenix/index.ts:12 | legacy-root-sdk-import |
|
||||
| codex-app-server | sdk-export-missing | warning | fixture imports plugin SDK aliases that are not exported by the target OpenClaw package | 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 | plugin-sdk-export-aliases |
|
||||
| codex-app-server | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/codex-app-server/index.ts:1, openclaw/plugin-sdk @ plugins/codex-app-server/src/client.ts:6, openclaw/plugin-sdk @ plugins/codex-app-server/src/controller.ts:18, openclaw/plugin-sdk @ plugins/codex-app-server/src/types.ts:1 | legacy-root-sdk-import |
|
||||
| web-search-plus | provider-auth-env-vars | warning | manifest uses providerAuthEnvVars legacy compatibility metadata | serper, tavily, linkup, querit, exa, firecrawl, perplexity, you, searxng | provider-auth-env-vars |
|
||||
| apify | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/apify/src/cli.ts:2, openclaw/plugin-sdk @ plugins/apify/src/index.ts:1, openclaw/plugin-sdk @ plugins/apify/src/tools/apify-scraper-tool.ts:4 | legacy-root-sdk-import |
|
||||
| inworld-tts | provider-auth-env-vars | warning | manifest uses providerAuthEnvVars legacy compatibility metadata | inworld | provider-auth-env-vars |
|
||||
| Fixture | Code | Level | Message | Evidence | Compat record |
|
||||
| ----------------- | --------------------------------- | ------- | ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
|
||||
| agentchat | manifest-unknown-fields | warning | manifest uses top-level fields that are not present in the target OpenClaw PluginManifest type | displayName @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, homepage @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, icon @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json | - |
|
||||
| agentchat | channel-env-vars | warning | manifest uses channelEnvVars legacy compatibility metadata | agentchat | channel-env-vars |
|
||||
| wecom | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/wecom/package.json | - |
|
||||
| a2a-gateway | manifest-unknown-fields | warning | manifest uses top-level fields that are not present in the target OpenClaw PluginManifest type | defaultConfig @ plugins/a2a-gateway/openclaw.plugin.json | - |
|
||||
| a2a-gateway | package-manifest-version-drift | warning | package.json and openclaw.plugin.json publish different versions | package:1.4.0, manifest:1.3.0 | - |
|
||||
| a2a-gateway | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/a2a-gateway/package.json | - |
|
||||
| a2a-gateway | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/a2a-gateway/src/types.ts:14 | legacy-root-sdk-import |
|
||||
| hasdata | provider-auth-env-vars | warning | manifest uses providerAuthEnvVars legacy compatibility metadata | hasdata | provider-auth-env-vars |
|
||||
| mcp-adapter | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/mcp-adapter/package.json | - |
|
||||
| llm-trace-phoenix | conversation-access-hook | warning | fixture observes raw model or conversation content and needs privacy-boundary contract probes | llm_input @ plugins/llm-trace-phoenix/index.ts:154, llm_output @ plugins/llm-trace-phoenix/index.ts:168 | - |
|
||||
| llm-trace-phoenix | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/llm-trace-phoenix/index.ts:12 | legacy-root-sdk-import |
|
||||
| opik-openclaw | conversation-access-hook | warning | fixture observes raw model or conversation content and needs privacy-boundary contract probes | 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 | - |
|
||||
| opik-openclaw | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:2, openclaw/plugin-sdk @ plugins/opik-openclaw/src/cli.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/configure.ts:2, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:5, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:6, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/llm.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/subagent.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/tool.ts:1 | legacy-root-sdk-import |
|
||||
| codex-app-server | sdk-export-missing | warning | fixture imports plugin SDK aliases that are not exported by the target OpenClaw package | 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 | plugin-sdk-export-aliases |
|
||||
| codex-app-server | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/codex-app-server/index.ts:1, openclaw/plugin-sdk @ plugins/codex-app-server/src/client.ts:6, openclaw/plugin-sdk @ plugins/codex-app-server/src/controller.ts:18, openclaw/plugin-sdk @ plugins/codex-app-server/src/types.ts:1 | legacy-root-sdk-import |
|
||||
| web-search-plus | provider-auth-env-vars | warning | manifest uses providerAuthEnvVars legacy compatibility metadata | serper, tavily, linkup, querit, exa, firecrawl, perplexity, you, searxng | provider-auth-env-vars |
|
||||
| apify | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/apify/src/cli.ts:2, openclaw/plugin-sdk @ plugins/apify/src/index.ts:1, openclaw/plugin-sdk @ plugins/apify/src/tools/apify-scraper-tool.ts:4 | legacy-root-sdk-import |
|
||||
| inworld-tts | provider-auth-env-vars | warning | manifest uses providerAuthEnvVars legacy compatibility metadata | inworld | provider-auth-env-vars |
|
||||
|
||||
## Suggestions To OpenClaw Compat Layer
|
||||
|
||||
@ -87,6 +89,11 @@ _none_
|
||||
| mcp-adapter | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerService @ plugins/mcp-adapter/index.ts:15 | - |
|
||||
| mcp-adapter | runtime-tool-capture | suggestion | tool shape is only visible after runtime registration capture | registerTool @ plugins/mcp-adapter/index.ts:30 | - |
|
||||
| llm-trace-phoenix | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/llm-trace-phoenix/index.ts | - |
|
||||
| opik-openclaw | package-build-artifact-entrypoint | suggestion | package OpenClaw entrypoint points at build output that is not present in the source fixture checkout | runtimeExtension:./dist/index.js -> plugins/opik-openclaw/dist/index.js | - |
|
||||
| opik-openclaw | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/opik-openclaw/index.ts | - |
|
||||
| opik-openclaw | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @clack/prompts @ plugins/opik-openclaw/package.json, opik @ plugins/opik-openclaw/package.json, zod @ plugins/opik-openclaw/package.json, openclaw @ plugins/opik-openclaw/package.json | - |
|
||||
| opik-openclaw | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerService @ plugins/opik-openclaw/index.ts:16 | - |
|
||||
| opik-openclaw | before-tool-call-probe | suggestion | add contract probes for before_tool_call terminal, block, and approval semantics | before_tool_call @ plugins/opik-openclaw/src/service/hooks/tool.ts:34 | - |
|
||||
| clawmetry | package-build-artifact-entrypoint | suggestion | package OpenClaw entrypoint points at build output that is not present in the source fixture checkout | runtimeExtension:./dist/index.js -> plugins/clawmetry/clawhub-plugin/dist/index.js | - |
|
||||
| clawmetry | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/clawmetry/clawhub-plugin/index.ts | - |
|
||||
| clawmetry | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | node-fetch @ plugins/clawmetry/clawhub-plugin/package.json | - |
|
||||
@ -106,130 +113,145 @@ _none_
|
||||
|
||||
## Issue Findings
|
||||
|
||||
| ID | Severity | Fixture | Owner | Decision | Status | Title | Evidence |
|
||||
| ---------------- | -------- | ----------------- | --------- | ------------------- | ------ | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| CRABPOT-37E8444D | P1 | a2a-gateway | inspector | inspector-follow-up | open | a2a-gateway: runtime registrations need capture before contract judgment | registerGatewayMethod @ plugins/a2a-gateway/index.ts:616, registerGatewayMethod @ plugins/a2a-gateway/index.ts:622, registerGatewayMethod @ plugins/a2a-gateway/index.ts:631, registerGatewayMethod @ plugins/a2a-gateway/index.ts:657, registerGatewayMethod @ plugins/a2a-gateway/index.ts:669, registerService @ plugins/a2a-gateway/index.ts:857 |
|
||||
| CRABPOT-9D5EE194 | P1 | clawmetry | inspector | inspector-follow-up | open | clawmetry: runtime registrations need capture before contract judgment | registerService @ plugins/clawmetry/clawhub-plugin/index.ts:9 |
|
||||
| CRABPOT-6D9E51D9 | P1 | codex-app-server | core | core-compat-adapter | open | codex-app-server: compat-dependent behavior lacks registry coverage | plugin-sdk-export-aliases |
|
||||
| CRABPOT-45CAC152 | P1 | codex-app-server | inspector | inspector-follow-up | open | codex-app-server: runtime registrations need capture before contract judgment | registerCommand @ plugins/codex-app-server/index.ts:48, registerInteractiveHandler @ plugins/codex-app-server/index.ts:29, registerInteractiveHandler @ plugins/codex-app-server/index.ts:38, registerService @ plugins/codex-app-server/index.ts:12 |
|
||||
| CRABPOT-C2331427 | P1 | codex-app-server | core | core-compat-adapter | open | codex-app-server: plugin SDK import aliases are missing from target package exports | 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 |
|
||||
| CRABPOT-D71B126E | P1 | llm-trace-phoenix | core | inspector-follow-up | open | llm-trace-phoenix: conversation-access hooks need privacy-boundary probes | llm_input @ plugins/llm-trace-phoenix/index.ts:154, llm_output @ plugins/llm-trace-phoenix/index.ts:168 |
|
||||
| CRABPOT-B91192E5 | P1 | mcp-adapter | inspector | inspector-follow-up | open | mcp-adapter: runtime registrations need capture before contract judgment | registerService @ plugins/mcp-adapter/index.ts:15 |
|
||||
| CRABPOT-B08DB79E | P1 | wecom | inspector | inspector-follow-up | open | wecom: before_tool_call needs terminal/block/approval probes | before_tool_call @ plugins/wecom/index.js:65 |
|
||||
| CRABPOT-9428734C | P1 | wecom | inspector | inspector-follow-up | open | wecom: runtime registrations need capture before contract judgment | registerChannel @ plugins/wecom/index.js:27, registerHttpRoute @ plugins/wecom/index.js:45 |
|
||||
| CRABPOT-6469330F | P2 | a2a-gateway | core | core-compat-adapter | open | a2a-gateway: root plugin SDK barrel is still used by fixtures | openclaw/plugin-sdk @ plugins/a2a-gateway/src/types.ts:14 |
|
||||
| CRABPOT-892CF14F | P2 | a2a-gateway | plugin | plugin-upstream-fix | open | a2a-gateway: manifest uses unsupported top-level fields | defaultConfig @ plugins/a2a-gateway/openclaw.plugin.json |
|
||||
| CRABPOT-F5185BE0 | P2 | a2a-gateway | inspector | inspector-follow-up | open | a2a-gateway: cold import requires isolated dependency installation | @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 |
|
||||
| CRABPOT-16E892BF | P2 | a2a-gateway | plugin | plugin-upstream-fix | open | a2a-gateway: package and manifest versions drift | package:1.4.0, manifest:1.3.0 |
|
||||
| CRABPOT-FDBB1C67 | P2 | a2a-gateway | plugin | plugin-upstream-fix | open | a2a-gateway: plugin API compatibility range is missing | plugins/a2a-gateway/package.json |
|
||||
| CRABPOT-96D2E9F4 | P2 | a2a-gateway | inspector | inspector-follow-up | open | a2a-gateway: cold import needs TypeScript source entrypoint support | extension:plugins/a2a-gateway/index.ts |
|
||||
| CRABPOT-654F01E7 | P2 | a2a-gateway | inspector | inspector-follow-up | open | a2a-gateway: runtime tool schema needs registration capture | registerTool @ plugins/a2a-gateway/index.ts:777 |
|
||||
| CRABPOT-74260BA0 | P2 | agentchat | inspector | inspector-follow-up | open | agentchat: channel runtime needs envelope/config probes | defineChannelPluginEntry @ plugins/agentchat/integrations/openclaw-channel/src/channel.ts:333 |
|
||||
| CRABPOT-90736EF4 | P2 | agentchat | core | core-compat-adapter | open | agentchat: channelEnvVars legacy manifest metadata must stay covered | agentchat |
|
||||
| CRABPOT-BEC462A4 | P2 | agentchat | plugin | plugin-upstream-fix | open | agentchat: manifest uses unsupported top-level fields | displayName @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, homepage @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, icon @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json |
|
||||
| CRABPOT-6A790CB4 | P2 | agentchat | inspector | inspector-follow-up | open | agentchat: cold import requires package build output | extension:./dist/index.js -> plugins/agentchat/integrations/openclaw-channel/dist/index.js, setupEntry:./dist/setup-entry.js -> plugins/agentchat/integrations/openclaw-channel/dist/setup-entry.js |
|
||||
| CRABPOT-2ED34BE8 | P2 | agentchat | inspector | inspector-follow-up | open | agentchat: cold import requires isolated dependency installation | @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, openclaw @ plugins/agentchat/integrations/openclaw-channel/package.json |
|
||||
| CRABPOT-0CFF8B6F | P2 | apify | core | core-compat-adapter | open | apify: root plugin SDK barrel is still used by fixtures | openclaw/plugin-sdk @ plugins/apify/src/cli.ts:2, openclaw/plugin-sdk @ plugins/apify/src/index.ts:1, openclaw/plugin-sdk @ plugins/apify/src/tools/apify-scraper-tool.ts:4 |
|
||||
| CRABPOT-74FAA2A2 | P2 | apify | inspector | inspector-follow-up | open | apify: cold import requires isolated dependency installation | @sinclair/typebox @ plugins/apify/package.json, apify-client @ plugins/apify/package.json, openclaw @ plugins/apify/package.json |
|
||||
| CRABPOT-18D12186 | P2 | apify | inspector | inspector-follow-up | open | apify: cold import needs TypeScript source entrypoint support | extension:plugins/apify/src/index.ts |
|
||||
| CRABPOT-93E9D53A | P2 | apify | inspector | inspector-follow-up | open | apify: runtime tool schema needs registration capture | registerTool @ plugins/apify/src/index.ts:13 |
|
||||
| CRABPOT-4BCB1F63 | P2 | clawmetry | inspector | inspector-follow-up | open | clawmetry: cold import requires package build output | runtimeExtension:./dist/index.js -> plugins/clawmetry/clawhub-plugin/dist/index.js |
|
||||
| CRABPOT-034E5504 | P2 | clawmetry | inspector | inspector-follow-up | open | clawmetry: cold import requires isolated dependency installation | node-fetch @ plugins/clawmetry/clawhub-plugin/package.json |
|
||||
| CRABPOT-EF6E7134 | P2 | clawmetry | inspector | inspector-follow-up | open | clawmetry: cold import needs TypeScript source entrypoint support | extension:plugins/clawmetry/clawhub-plugin/index.ts |
|
||||
| CRABPOT-A36ECE8E | P2 | codex-app-server | core | core-compat-adapter | open | codex-app-server: root plugin SDK barrel is still used by fixtures | openclaw/plugin-sdk @ plugins/codex-app-server/index.ts:1, openclaw/plugin-sdk @ plugins/codex-app-server/src/client.ts:6, openclaw/plugin-sdk @ plugins/codex-app-server/src/controller.ts:18, openclaw/plugin-sdk @ plugins/codex-app-server/src/types.ts:1 |
|
||||
| CRABPOT-DC637E99 | P2 | codex-app-server | inspector | inspector-follow-up | open | codex-app-server: cold import requires isolated dependency installation | ws @ plugins/codex-app-server/package.json, openclaw @ plugins/codex-app-server/package.json |
|
||||
| CRABPOT-F8C8F1CD | P2 | codex-app-server | inspector | inspector-follow-up | open | codex-app-server: cold import needs TypeScript source entrypoint support | extension:plugins/codex-app-server/index.ts |
|
||||
| CRABPOT-2C2BFD3C | P2 | hasdata | inspector | inspector-follow-up | open | hasdata: cold import requires isolated dependency installation | @sinclair/typebox @ plugins/hasdata/package.json, openclaw @ plugins/hasdata/package.json |
|
||||
| CRABPOT-1853BC94 | P2 | hasdata | inspector | inspector-follow-up | open | hasdata: cold import needs TypeScript source entrypoint support | extension:plugins/hasdata/src/index.ts |
|
||||
| CRABPOT-1ABECD7E | P2 | hasdata | core | core-compat-adapter | open | hasdata: providerAuthEnvVars legacy manifest metadata must stay covered | hasdata |
|
||||
| CRABPOT-0853EBDC | P2 | inworld-tts | inspector | inspector-follow-up | open | inworld-tts: cold import requires isolated dependency installation | openclaw @ plugins/inworld-tts/package.json |
|
||||
| CRABPOT-7C59D06F | P2 | inworld-tts | inspector | inspector-follow-up | open | inworld-tts: cold import needs TypeScript source entrypoint support | extension:plugins/inworld-tts/index.ts |
|
||||
| CRABPOT-CCABE384 | P2 | inworld-tts | core | core-compat-adapter | open | inworld-tts: providerAuthEnvVars legacy manifest metadata must stay covered | inworld |
|
||||
| CRABPOT-4CC6CA25 | P2 | llm-trace-phoenix | core | core-compat-adapter | open | llm-trace-phoenix: root plugin SDK barrel is still used by fixtures | openclaw/plugin-sdk @ plugins/llm-trace-phoenix/index.ts:12 |
|
||||
| CRABPOT-15F8300A | P2 | llm-trace-phoenix | inspector | inspector-follow-up | open | llm-trace-phoenix: cold import needs TypeScript source entrypoint support | extension:plugins/llm-trace-phoenix/index.ts |
|
||||
| CRABPOT-22E35E29 | P2 | mcp-adapter | inspector | inspector-follow-up | open | mcp-adapter: cold import requires isolated dependency installation | @modelcontextprotocol/sdk @ plugins/mcp-adapter/package.json |
|
||||
| CRABPOT-4511EE11 | P2 | mcp-adapter | plugin | plugin-upstream-fix | open | mcp-adapter: plugin API compatibility range is missing | plugins/mcp-adapter/package.json |
|
||||
| CRABPOT-6515DC5B | P2 | mcp-adapter | inspector | inspector-follow-up | open | mcp-adapter: cold import needs TypeScript source entrypoint support | extension:plugins/mcp-adapter/index.ts |
|
||||
| CRABPOT-B195BB7A | P2 | mcp-adapter | inspector | inspector-follow-up | open | mcp-adapter: runtime tool schema needs registration capture | registerTool @ plugins/mcp-adapter/index.ts:30 |
|
||||
| CRABPOT-D8910079 | P2 | web-search-plus | inspector | inspector-follow-up | open | web-search-plus: cold import requires isolated dependency installation | openclaw @ plugins/web-search-plus/package.json |
|
||||
| CRABPOT-E55C4521 | P2 | web-search-plus | inspector | inspector-follow-up | open | web-search-plus: cold import needs TypeScript source entrypoint support | extension:plugins/web-search-plus/index.ts |
|
||||
| CRABPOT-A3EA1186 | P2 | web-search-plus | core | core-compat-adapter | open | web-search-plus: providerAuthEnvVars legacy manifest metadata must stay covered | serper, tavily, linkup, querit, exa, firecrawl, perplexity, you, searxng |
|
||||
| CRABPOT-AF929F22 | P2 | web-search-plus | inspector | inspector-follow-up | open | web-search-plus: runtime tool schema needs registration capture | registerTool @ plugins/web-search-plus/index.ts:815, registerTool @ plugins/web-search-plus/index.ts:947 |
|
||||
| CRABPOT-848F09E3 | P2 | wecom | inspector | inspector-follow-up | open | wecom: channel runtime needs envelope/config probes | registerChannel @ plugins/wecom/index.js:27 |
|
||||
| CRABPOT-4734034D | P2 | wecom | inspector | inspector-follow-up | open | wecom: cold import requires isolated dependency installation | @wecom/aibot-node-sdk @ plugins/wecom/package.json, file-type @ plugins/wecom/package.json, pinyin-pro @ plugins/wecom/package.json, openclaw @ plugins/wecom/package.json, undici @ plugins/wecom/package.json |
|
||||
| CRABPOT-5E53BD07 | P2 | wecom | plugin | plugin-upstream-fix | open | wecom: plugin API compatibility range is missing | plugins/wecom/package.json |
|
||||
| CRABPOT-72021A36 | P2 | wecom | inspector | inspector-follow-up | open | wecom: runtime tool schema needs registration capture | registerTool @ plugins/wecom/index.js:28, registerTool @ plugins/wecom/index.js:29, registerTool @ plugins/wecom/index.js:33 |
|
||||
| ID | Severity | Fixture | Owner | Decision | Status | Title | Evidence |
|
||||
| ---------------- | -------- | ----------------- | --------- | ------------------- | ------ | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| CRABPOT-37E8444D | P1 | a2a-gateway | inspector | inspector-follow-up | open | a2a-gateway: runtime registrations need capture before contract judgment | registerGatewayMethod @ plugins/a2a-gateway/index.ts:616, registerGatewayMethod @ plugins/a2a-gateway/index.ts:622, registerGatewayMethod @ plugins/a2a-gateway/index.ts:631, registerGatewayMethod @ plugins/a2a-gateway/index.ts:657, registerGatewayMethod @ plugins/a2a-gateway/index.ts:669, registerService @ plugins/a2a-gateway/index.ts:857 |
|
||||
| CRABPOT-9D5EE194 | P1 | clawmetry | inspector | inspector-follow-up | open | clawmetry: runtime registrations need capture before contract judgment | registerService @ plugins/clawmetry/clawhub-plugin/index.ts:9 |
|
||||
| CRABPOT-6D9E51D9 | P1 | codex-app-server | core | core-compat-adapter | open | codex-app-server: compat-dependent behavior lacks registry coverage | plugin-sdk-export-aliases |
|
||||
| CRABPOT-45CAC152 | P1 | codex-app-server | inspector | inspector-follow-up | open | codex-app-server: runtime registrations need capture before contract judgment | registerCommand @ plugins/codex-app-server/index.ts:48, registerInteractiveHandler @ plugins/codex-app-server/index.ts:29, registerInteractiveHandler @ plugins/codex-app-server/index.ts:38, registerService @ plugins/codex-app-server/index.ts:12 |
|
||||
| CRABPOT-C2331427 | P1 | codex-app-server | core | core-compat-adapter | open | codex-app-server: plugin SDK import aliases are missing from target package exports | 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 |
|
||||
| CRABPOT-D71B126E | P1 | llm-trace-phoenix | core | inspector-follow-up | open | llm-trace-phoenix: conversation-access hooks need privacy-boundary probes | llm_input @ plugins/llm-trace-phoenix/index.ts:154, llm_output @ plugins/llm-trace-phoenix/index.ts:168 |
|
||||
| CRABPOT-B91192E5 | P1 | mcp-adapter | inspector | inspector-follow-up | open | mcp-adapter: runtime registrations need capture before contract judgment | registerService @ plugins/mcp-adapter/index.ts:15 |
|
||||
| CRABPOT-EE3B527C | P1 | opik-openclaw | inspector | inspector-follow-up | open | opik-openclaw: before_tool_call needs terminal/block/approval probes | before_tool_call @ plugins/opik-openclaw/src/service/hooks/tool.ts:34 |
|
||||
| CRABPOT-6FC4ED08 | P1 | opik-openclaw | core | inspector-follow-up | open | opik-openclaw: conversation-access hooks need privacy-boundary probes | 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 |
|
||||
| CRABPOT-5E85F236 | P1 | opik-openclaw | inspector | inspector-follow-up | open | opik-openclaw: runtime registrations need capture before contract judgment | registerService @ plugins/opik-openclaw/index.ts:16 |
|
||||
| CRABPOT-B08DB79E | P1 | wecom | inspector | inspector-follow-up | open | wecom: before_tool_call needs terminal/block/approval probes | before_tool_call @ plugins/wecom/index.js:65 |
|
||||
| CRABPOT-9428734C | P1 | wecom | inspector | inspector-follow-up | open | wecom: runtime registrations need capture before contract judgment | registerChannel @ plugins/wecom/index.js:27, registerHttpRoute @ plugins/wecom/index.js:45 |
|
||||
| CRABPOT-6469330F | P2 | a2a-gateway | core | core-compat-adapter | open | a2a-gateway: root plugin SDK barrel is still used by fixtures | openclaw/plugin-sdk @ plugins/a2a-gateway/src/types.ts:14 |
|
||||
| CRABPOT-892CF14F | P2 | a2a-gateway | plugin | plugin-upstream-fix | open | a2a-gateway: manifest uses unsupported top-level fields | defaultConfig @ plugins/a2a-gateway/openclaw.plugin.json |
|
||||
| CRABPOT-F5185BE0 | P2 | a2a-gateway | inspector | inspector-follow-up | open | a2a-gateway: cold import requires isolated dependency installation | @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 |
|
||||
| CRABPOT-16E892BF | P2 | a2a-gateway | plugin | plugin-upstream-fix | open | a2a-gateway: package and manifest versions drift | package:1.4.0, manifest:1.3.0 |
|
||||
| CRABPOT-FDBB1C67 | P2 | a2a-gateway | plugin | plugin-upstream-fix | open | a2a-gateway: plugin API compatibility range is missing | plugins/a2a-gateway/package.json |
|
||||
| CRABPOT-96D2E9F4 | P2 | a2a-gateway | inspector | inspector-follow-up | open | a2a-gateway: cold import needs TypeScript source entrypoint support | extension:plugins/a2a-gateway/index.ts |
|
||||
| CRABPOT-654F01E7 | P2 | a2a-gateway | inspector | inspector-follow-up | open | a2a-gateway: runtime tool schema needs registration capture | registerTool @ plugins/a2a-gateway/index.ts:777 |
|
||||
| CRABPOT-74260BA0 | P2 | agentchat | inspector | inspector-follow-up | open | agentchat: channel runtime needs envelope/config probes | defineChannelPluginEntry @ plugins/agentchat/integrations/openclaw-channel/src/channel.ts:333 |
|
||||
| CRABPOT-90736EF4 | P2 | agentchat | core | core-compat-adapter | open | agentchat: channelEnvVars legacy manifest metadata must stay covered | agentchat |
|
||||
| CRABPOT-BEC462A4 | P2 | agentchat | plugin | plugin-upstream-fix | open | agentchat: manifest uses unsupported top-level fields | displayName @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, homepage @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, icon @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json |
|
||||
| CRABPOT-6A790CB4 | P2 | agentchat | inspector | inspector-follow-up | open | agentchat: cold import requires package build output | extension:./dist/index.js -> plugins/agentchat/integrations/openclaw-channel/dist/index.js, setupEntry:./dist/setup-entry.js -> plugins/agentchat/integrations/openclaw-channel/dist/setup-entry.js |
|
||||
| CRABPOT-2ED34BE8 | P2 | agentchat | inspector | inspector-follow-up | open | agentchat: cold import requires isolated dependency installation | @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, openclaw @ plugins/agentchat/integrations/openclaw-channel/package.json |
|
||||
| CRABPOT-0CFF8B6F | P2 | apify | core | core-compat-adapter | open | apify: root plugin SDK barrel is still used by fixtures | openclaw/plugin-sdk @ plugins/apify/src/cli.ts:2, openclaw/plugin-sdk @ plugins/apify/src/index.ts:1, openclaw/plugin-sdk @ plugins/apify/src/tools/apify-scraper-tool.ts:4 |
|
||||
| CRABPOT-74FAA2A2 | P2 | apify | inspector | inspector-follow-up | open | apify: cold import requires isolated dependency installation | @sinclair/typebox @ plugins/apify/package.json, apify-client @ plugins/apify/package.json, openclaw @ plugins/apify/package.json |
|
||||
| CRABPOT-18D12186 | P2 | apify | inspector | inspector-follow-up | open | apify: cold import needs TypeScript source entrypoint support | extension:plugins/apify/src/index.ts |
|
||||
| CRABPOT-93E9D53A | P2 | apify | inspector | inspector-follow-up | open | apify: runtime tool schema needs registration capture | registerTool @ plugins/apify/src/index.ts:13 |
|
||||
| CRABPOT-4BCB1F63 | P2 | clawmetry | inspector | inspector-follow-up | open | clawmetry: cold import requires package build output | runtimeExtension:./dist/index.js -> plugins/clawmetry/clawhub-plugin/dist/index.js |
|
||||
| CRABPOT-034E5504 | P2 | clawmetry | inspector | inspector-follow-up | open | clawmetry: cold import requires isolated dependency installation | node-fetch @ plugins/clawmetry/clawhub-plugin/package.json |
|
||||
| CRABPOT-EF6E7134 | P2 | clawmetry | inspector | inspector-follow-up | open | clawmetry: cold import needs TypeScript source entrypoint support | extension:plugins/clawmetry/clawhub-plugin/index.ts |
|
||||
| CRABPOT-A36ECE8E | P2 | codex-app-server | core | core-compat-adapter | open | codex-app-server: root plugin SDK barrel is still used by fixtures | openclaw/plugin-sdk @ plugins/codex-app-server/index.ts:1, openclaw/plugin-sdk @ plugins/codex-app-server/src/client.ts:6, openclaw/plugin-sdk @ plugins/codex-app-server/src/controller.ts:18, openclaw/plugin-sdk @ plugins/codex-app-server/src/types.ts:1 |
|
||||
| CRABPOT-DC637E99 | P2 | codex-app-server | inspector | inspector-follow-up | open | codex-app-server: cold import requires isolated dependency installation | ws @ plugins/codex-app-server/package.json, openclaw @ plugins/codex-app-server/package.json |
|
||||
| CRABPOT-F8C8F1CD | P2 | codex-app-server | inspector | inspector-follow-up | open | codex-app-server: cold import needs TypeScript source entrypoint support | extension:plugins/codex-app-server/index.ts |
|
||||
| CRABPOT-2C2BFD3C | P2 | hasdata | inspector | inspector-follow-up | open | hasdata: cold import requires isolated dependency installation | @sinclair/typebox @ plugins/hasdata/package.json, openclaw @ plugins/hasdata/package.json |
|
||||
| CRABPOT-1853BC94 | P2 | hasdata | inspector | inspector-follow-up | open | hasdata: cold import needs TypeScript source entrypoint support | extension:plugins/hasdata/src/index.ts |
|
||||
| CRABPOT-1ABECD7E | P2 | hasdata | core | core-compat-adapter | open | hasdata: providerAuthEnvVars legacy manifest metadata must stay covered | hasdata |
|
||||
| CRABPOT-0853EBDC | P2 | inworld-tts | inspector | inspector-follow-up | open | inworld-tts: cold import requires isolated dependency installation | openclaw @ plugins/inworld-tts/package.json |
|
||||
| CRABPOT-7C59D06F | P2 | inworld-tts | inspector | inspector-follow-up | open | inworld-tts: cold import needs TypeScript source entrypoint support | extension:plugins/inworld-tts/index.ts |
|
||||
| CRABPOT-CCABE384 | P2 | inworld-tts | core | core-compat-adapter | open | inworld-tts: providerAuthEnvVars legacy manifest metadata must stay covered | inworld |
|
||||
| CRABPOT-4CC6CA25 | P2 | llm-trace-phoenix | core | core-compat-adapter | open | llm-trace-phoenix: root plugin SDK barrel is still used by fixtures | openclaw/plugin-sdk @ plugins/llm-trace-phoenix/index.ts:12 |
|
||||
| CRABPOT-15F8300A | P2 | llm-trace-phoenix | inspector | inspector-follow-up | open | llm-trace-phoenix: cold import needs TypeScript source entrypoint support | extension:plugins/llm-trace-phoenix/index.ts |
|
||||
| CRABPOT-22E35E29 | P2 | mcp-adapter | inspector | inspector-follow-up | open | mcp-adapter: cold import requires isolated dependency installation | @modelcontextprotocol/sdk @ plugins/mcp-adapter/package.json |
|
||||
| CRABPOT-4511EE11 | P2 | mcp-adapter | plugin | plugin-upstream-fix | open | mcp-adapter: plugin API compatibility range is missing | plugins/mcp-adapter/package.json |
|
||||
| CRABPOT-6515DC5B | P2 | mcp-adapter | inspector | inspector-follow-up | open | mcp-adapter: cold import needs TypeScript source entrypoint support | extension:plugins/mcp-adapter/index.ts |
|
||||
| CRABPOT-B195BB7A | P2 | mcp-adapter | inspector | inspector-follow-up | open | mcp-adapter: runtime tool schema needs registration capture | registerTool @ plugins/mcp-adapter/index.ts:30 |
|
||||
| CRABPOT-F76EC24F | P2 | opik-openclaw | core | core-compat-adapter | open | opik-openclaw: root plugin SDK barrel is still used by fixtures | openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:2, openclaw/plugin-sdk @ plugins/opik-openclaw/src/cli.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/configure.ts:2, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:5, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:6, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/llm.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/subagent.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/tool.ts:1 |
|
||||
| CRABPOT-5D328BF6 | P2 | opik-openclaw | inspector | inspector-follow-up | open | opik-openclaw: cold import requires package build output | runtimeExtension:./dist/index.js -> plugins/opik-openclaw/dist/index.js |
|
||||
| CRABPOT-32CDFD6D | P2 | opik-openclaw | inspector | inspector-follow-up | open | opik-openclaw: cold import requires isolated dependency installation | @clack/prompts @ plugins/opik-openclaw/package.json, opik @ plugins/opik-openclaw/package.json, zod @ plugins/opik-openclaw/package.json, openclaw @ plugins/opik-openclaw/package.json |
|
||||
| CRABPOT-FAEC3F71 | P2 | opik-openclaw | inspector | inspector-follow-up | open | opik-openclaw: cold import needs TypeScript source entrypoint support | extension:plugins/opik-openclaw/index.ts |
|
||||
| CRABPOT-D8910079 | P2 | web-search-plus | inspector | inspector-follow-up | open | web-search-plus: cold import requires isolated dependency installation | openclaw @ plugins/web-search-plus/package.json |
|
||||
| CRABPOT-E55C4521 | P2 | web-search-plus | inspector | inspector-follow-up | open | web-search-plus: cold import needs TypeScript source entrypoint support | extension:plugins/web-search-plus/index.ts |
|
||||
| CRABPOT-A3EA1186 | P2 | web-search-plus | core | core-compat-adapter | open | web-search-plus: providerAuthEnvVars legacy manifest metadata must stay covered | serper, tavily, linkup, querit, exa, firecrawl, perplexity, you, searxng |
|
||||
| CRABPOT-AF929F22 | P2 | web-search-plus | inspector | inspector-follow-up | open | web-search-plus: runtime tool schema needs registration capture | registerTool @ plugins/web-search-plus/index.ts:815, registerTool @ plugins/web-search-plus/index.ts:947 |
|
||||
| CRABPOT-848F09E3 | P2 | wecom | inspector | inspector-follow-up | open | wecom: channel runtime needs envelope/config probes | registerChannel @ plugins/wecom/index.js:27 |
|
||||
| CRABPOT-4734034D | P2 | wecom | inspector | inspector-follow-up | open | wecom: cold import requires isolated dependency installation | @wecom/aibot-node-sdk @ plugins/wecom/package.json, file-type @ plugins/wecom/package.json, pinyin-pro @ plugins/wecom/package.json, openclaw @ plugins/wecom/package.json, undici @ plugins/wecom/package.json |
|
||||
| CRABPOT-5E53BD07 | P2 | wecom | plugin | plugin-upstream-fix | open | wecom: plugin API compatibility range is missing | plugins/wecom/package.json |
|
||||
| CRABPOT-72021A36 | P2 | wecom | inspector | inspector-follow-up | open | wecom: runtime tool schema needs registration capture | registerTool @ plugins/wecom/index.js:28, registerTool @ plugins/wecom/index.js:29, registerTool @ plugins/wecom/index.js:33 |
|
||||
|
||||
## Contract Probe Backlog
|
||||
|
||||
| ID | Priority | Fixture | Target | Contract | Evidence |
|
||||
| --------------------------------------------------------------- | -------- | ----------------- | --------------------- | --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| api.capture.runtime-registrars:a2a-gateway | P1 | a2a-gateway | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerGatewayMethod @ plugins/a2a-gateway/index.ts:616, registerGatewayMethod @ plugins/a2a-gateway/index.ts:622, registerGatewayMethod @ plugins/a2a-gateway/index.ts:631, registerGatewayMethod @ plugins/a2a-gateway/index.ts:657, registerGatewayMethod @ plugins/a2a-gateway/index.ts:669, registerService @ plugins/a2a-gateway/index.ts:857 |
|
||||
| api.capture.runtime-registrars:clawmetry | P1 | clawmetry | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerService @ plugins/clawmetry/clawhub-plugin/index.ts:9 |
|
||||
| api.capture.runtime-registrars:codex-app-server | P1 | codex-app-server | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerCommand @ plugins/codex-app-server/index.ts:48, registerInteractiveHandler @ plugins/codex-app-server/index.ts:29, registerInteractiveHandler @ plugins/codex-app-server/index.ts:38, registerService @ plugins/codex-app-server/index.ts:12 |
|
||||
| api.capture.runtime-registrars:mcp-adapter | P1 | mcp-adapter | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerService @ plugins/mcp-adapter/index.ts:15 |
|
||||
| api.capture.runtime-registrars:wecom | P1 | wecom | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerChannel @ plugins/wecom/index.js:27, registerHttpRoute @ plugins/wecom/index.js:45 |
|
||||
| hook.before_tool_call.terminal-block-approval:wecom | P1 | wecom | hook-runner | Hook returns preserve terminal, block, and approval semantics. | before_tool_call @ plugins/wecom/index.js:65 |
|
||||
| hook.llm-observer.privacy-payload:llm-trace-phoenix | P1 | llm-trace-phoenix | hook-runner | LLM observer hooks receive documented prompt/output fields with expected redaction behavior. | llm_input @ plugins/llm-trace-phoenix/index.ts:154, llm_output @ plugins/llm-trace-phoenix/index.ts:168 |
|
||||
| sdk.import.package-export-cold-import:codex-app-server | P1 | codex-app-server | sdk-alias | Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. | 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 |
|
||||
| channel.runtime.envelope-config-metadata:agentchat | P2 | agentchat | channel-runtime | Channel setup, message envelope, sender metadata, and config schema remain stable. | defineChannelPluginEntry @ plugins/agentchat/integrations/openclaw-channel/src/channel.ts:333 |
|
||||
| channel.runtime.envelope-config-metadata:wecom | P2 | wecom | channel-runtime | Channel setup, message envelope, sender metadata, and config schema remain stable. | registerChannel @ plugins/wecom/index.js:27 |
|
||||
| manifest.compat.channel-env-vars:agentchat | P2 | agentchat | manifest-loader | Legacy channel env metadata continues to map into channel setup/help surfaces. | agentchat |
|
||||
| manifest.compat.provider-auth-env-vars:hasdata | P2 | hasdata | manifest-loader | Legacy provider auth env metadata continues to map into config/help surfaces. | hasdata |
|
||||
| manifest.schema.top-level-fields:a2a-gateway | P2 | a2a-gateway | manifest-loader | Manifest top-level fields are represented in target OpenClaw PluginManifest. | defaultConfig @ plugins/a2a-gateway/openclaw.plugin.json |
|
||||
| manifest.schema.top-level-fields:agentchat | P2 | agentchat | manifest-loader | Manifest top-level fields are represented in target OpenClaw PluginManifest. | displayName @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, homepage @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, icon @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json |
|
||||
| package.compat.plugin-api-range:a2a-gateway | P2 | a2a-gateway | package-loader | Package metadata declares the OpenClaw plugin API range used by the plugin. | plugins/a2a-gateway/package.json |
|
||||
| package.compat.plugin-api-range:mcp-adapter | P2 | mcp-adapter | package-loader | Package metadata declares the OpenClaw plugin API range used by the plugin. | plugins/mcp-adapter/package.json |
|
||||
| package.compat.plugin-api-range:wecom | P2 | wecom | package-loader | Package metadata declares the OpenClaw plugin API range used by the plugin. | plugins/wecom/package.json |
|
||||
| package.entrypoint.build-before-cold-import:agentchat | P2 | agentchat | package-loader | Inspector can build or resolve source aliases before cold importing package entrypoints. | extension:./dist/index.js -> plugins/agentchat/integrations/openclaw-channel/dist/index.js, setupEntry:./dist/setup-entry.js -> plugins/agentchat/integrations/openclaw-channel/dist/setup-entry.js |
|
||||
| package.entrypoint.isolated-dependency-install:a2a-gateway | P2 | a2a-gateway | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @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 | Inspector installs package dependencies in an isolated workspace before cold import. | @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, openclaw @ plugins/agentchat/integrations/openclaw-channel/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:hasdata | P2 | hasdata | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @sinclair/typebox @ plugins/hasdata/package.json, openclaw @ plugins/hasdata/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:mcp-adapter | P2 | mcp-adapter | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @modelcontextprotocol/sdk @ plugins/mcp-adapter/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:wecom | P2 | wecom | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @wecom/aibot-node-sdk @ plugins/wecom/package.json, file-type @ plugins/wecom/package.json, pinyin-pro @ plugins/wecom/package.json, openclaw @ plugins/wecom/package.json, undici @ plugins/wecom/package.json |
|
||||
| package.entrypoint.typescript-loader:a2a-gateway | P2 | a2a-gateway | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/a2a-gateway/index.ts |
|
||||
| package.entrypoint.typescript-loader:hasdata | P2 | hasdata | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/hasdata/src/index.ts |
|
||||
| package.entrypoint.typescript-loader:llm-trace-phoenix | P2 | llm-trace-phoenix | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/llm-trace-phoenix/index.ts |
|
||||
| package.entrypoint.typescript-loader:mcp-adapter | P2 | mcp-adapter | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/mcp-adapter/index.ts |
|
||||
| package.metadata.version-alignment:a2a-gateway | P2 | a2a-gateway | package-loader | Package and OpenClaw manifest versions stay aligned for release compatibility reporting. | package:1.4.0, manifest:1.3.0 |
|
||||
| sdk.import.root-barrel-cold-import:a2a-gateway | P2 | a2a-gateway | sdk-alias | Root plugin SDK barrel remains importable or has a machine-readable migration path. | openclaw/plugin-sdk @ plugins/a2a-gateway/src/types.ts:14 |
|
||||
| sdk.import.root-barrel-cold-import:llm-trace-phoenix | P2 | llm-trace-phoenix | sdk-alias | Root plugin SDK barrel remains importable or has a machine-readable migration path. | openclaw/plugin-sdk @ plugins/llm-trace-phoenix/index.ts:12 |
|
||||
| tool.registration.schema-capture:a2a-gateway | P2 | a2a-gateway | tool-runtime | Registered runtime tools expose stable names, input schemas, and result metadata. | registerTool @ plugins/a2a-gateway/index.ts:777 |
|
||||
| tool.registration.schema-capture:mcp-adapter | P2 | mcp-adapter | tool-runtime | Registered runtime tools expose stable names, input schemas, and result metadata. | registerTool @ plugins/mcp-adapter/index.ts:30 |
|
||||
| tool.registration.schema-capture:wecom | P2 | wecom | tool-runtime | Registered runtime tools expose stable names, input schemas, and result metadata. | registerTool @ plugins/wecom/index.js:28, registerTool @ plugins/wecom/index.js:29, registerTool @ plugins/wecom/index.js:33 |
|
||||
| manifest.compat.provider-auth-env-vars:inworld-tts | P3 | inworld-tts | manifest-loader | Legacy provider auth env metadata continues to map into config/help surfaces. | inworld |
|
||||
| manifest.compat.provider-auth-env-vars:web-search-plus | P3 | web-search-plus | manifest-loader | Legacy provider auth env metadata continues to map into config/help surfaces. | serper, tavily, linkup, querit, exa, firecrawl, perplexity, you, searxng |
|
||||
| package.entrypoint.build-before-cold-import:clawmetry | P3 | clawmetry | package-loader | Inspector can build or resolve source aliases before cold importing package entrypoints. | runtimeExtension:./dist/index.js -> plugins/clawmetry/clawhub-plugin/dist/index.js |
|
||||
| package.entrypoint.isolated-dependency-install:apify | P3 | apify | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @sinclair/typebox @ plugins/apify/package.json, apify-client @ plugins/apify/package.json, openclaw @ plugins/apify/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:clawmetry | P3 | clawmetry | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | node-fetch @ plugins/clawmetry/clawhub-plugin/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:codex-app-server | P3 | codex-app-server | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | ws @ plugins/codex-app-server/package.json, openclaw @ plugins/codex-app-server/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:inworld-tts | P3 | inworld-tts | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | openclaw @ plugins/inworld-tts/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:web-search-plus | P3 | web-search-plus | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | openclaw @ plugins/web-search-plus/package.json |
|
||||
| package.entrypoint.typescript-loader:apify | P3 | apify | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/apify/src/index.ts |
|
||||
| package.entrypoint.typescript-loader:clawmetry | P3 | clawmetry | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/clawmetry/clawhub-plugin/index.ts |
|
||||
| package.entrypoint.typescript-loader:codex-app-server | P3 | codex-app-server | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/codex-app-server/index.ts |
|
||||
| package.entrypoint.typescript-loader:inworld-tts | P3 | inworld-tts | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/inworld-tts/index.ts |
|
||||
| package.entrypoint.typescript-loader:web-search-plus | P3 | web-search-plus | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/web-search-plus/index.ts |
|
||||
| sdk.import.root-barrel-cold-import:apify | P3 | apify | sdk-alias | Root plugin SDK barrel remains importable or has a machine-readable migration path. | openclaw/plugin-sdk @ plugins/apify/src/cli.ts:2, openclaw/plugin-sdk @ plugins/apify/src/index.ts:1, openclaw/plugin-sdk @ plugins/apify/src/tools/apify-scraper-tool.ts:4 |
|
||||
| sdk.import.root-barrel-cold-import:codex-app-server | P3 | codex-app-server | sdk-alias | Root plugin SDK barrel remains importable or has a machine-readable migration path. | openclaw/plugin-sdk @ plugins/codex-app-server/index.ts:1, openclaw/plugin-sdk @ plugins/codex-app-server/src/client.ts:6, openclaw/plugin-sdk @ plugins/codex-app-server/src/controller.ts:18, openclaw/plugin-sdk @ plugins/codex-app-server/src/types.ts:1 |
|
||||
| tool.registration.schema-capture:apify | P3 | apify | tool-runtime | Registered runtime tools expose stable names, input schemas, and result metadata. | registerTool @ plugins/apify/src/index.ts:13 |
|
||||
| tool.registration.schema-capture:web-search-plus | P3 | web-search-plus | tool-runtime | Registered runtime tools expose stable names, input schemas, and result metadata. | registerTool @ plugins/web-search-plus/index.ts:815, registerTool @ plugins/web-search-plus/index.ts:947 |
|
||||
| ID | Priority | Fixture | Target | Contract | Evidence |
|
||||
| --------------------------------------------------------------- | -------- | ----------------- | --------------------- | --------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| api.capture.runtime-registrars:a2a-gateway | P1 | a2a-gateway | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerGatewayMethod @ plugins/a2a-gateway/index.ts:616, registerGatewayMethod @ plugins/a2a-gateway/index.ts:622, registerGatewayMethod @ plugins/a2a-gateway/index.ts:631, registerGatewayMethod @ plugins/a2a-gateway/index.ts:657, registerGatewayMethod @ plugins/a2a-gateway/index.ts:669, registerService @ plugins/a2a-gateway/index.ts:857 |
|
||||
| api.capture.runtime-registrars:clawmetry | P1 | clawmetry | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerService @ plugins/clawmetry/clawhub-plugin/index.ts:9 |
|
||||
| api.capture.runtime-registrars:codex-app-server | P1 | codex-app-server | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerCommand @ plugins/codex-app-server/index.ts:48, registerInteractiveHandler @ plugins/codex-app-server/index.ts:29, registerInteractiveHandler @ plugins/codex-app-server/index.ts:38, registerService @ plugins/codex-app-server/index.ts:12 |
|
||||
| api.capture.runtime-registrars:mcp-adapter | P1 | mcp-adapter | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerService @ plugins/mcp-adapter/index.ts:15 |
|
||||
| api.capture.runtime-registrars:opik-openclaw | P1 | opik-openclaw | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerService @ plugins/opik-openclaw/index.ts:16 |
|
||||
| api.capture.runtime-registrars:wecom | P1 | wecom | inspector-capture-api | External inspector capture records service, route, gateway, command, and interactive registrations. | registerChannel @ plugins/wecom/index.js:27, registerHttpRoute @ plugins/wecom/index.js:45 |
|
||||
| hook.before_tool_call.terminal-block-approval:opik-openclaw | P1 | opik-openclaw | hook-runner | Hook returns preserve terminal, block, and approval semantics. | before_tool_call @ plugins/opik-openclaw/src/service/hooks/tool.ts:34 |
|
||||
| hook.before_tool_call.terminal-block-approval:wecom | P1 | wecom | hook-runner | Hook returns preserve terminal, block, and approval semantics. | before_tool_call @ plugins/wecom/index.js:65 |
|
||||
| hook.llm-observer.privacy-payload:llm-trace-phoenix | P1 | llm-trace-phoenix | hook-runner | LLM observer hooks receive documented prompt/output fields with expected redaction behavior. | llm_input @ plugins/llm-trace-phoenix/index.ts:154, llm_output @ plugins/llm-trace-phoenix/index.ts:168 |
|
||||
| hook.llm-observer.privacy-payload:opik-openclaw | P1 | opik-openclaw | hook-runner | LLM observer hooks receive documented prompt/output fields with expected redaction behavior. | 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:codex-app-server | P1 | codex-app-server | sdk-alias | Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. | 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 |
|
||||
| channel.runtime.envelope-config-metadata:agentchat | P2 | agentchat | channel-runtime | Channel setup, message envelope, sender metadata, and config schema remain stable. | defineChannelPluginEntry @ plugins/agentchat/integrations/openclaw-channel/src/channel.ts:333 |
|
||||
| channel.runtime.envelope-config-metadata:wecom | P2 | wecom | channel-runtime | Channel setup, message envelope, sender metadata, and config schema remain stable. | registerChannel @ plugins/wecom/index.js:27 |
|
||||
| manifest.compat.channel-env-vars:agentchat | P2 | agentchat | manifest-loader | Legacy channel env metadata continues to map into channel setup/help surfaces. | agentchat |
|
||||
| manifest.compat.provider-auth-env-vars:hasdata | P2 | hasdata | manifest-loader | Legacy provider auth env metadata continues to map into config/help surfaces. | hasdata |
|
||||
| manifest.schema.top-level-fields:a2a-gateway | P2 | a2a-gateway | manifest-loader | Manifest top-level fields are represented in target OpenClaw PluginManifest. | defaultConfig @ plugins/a2a-gateway/openclaw.plugin.json |
|
||||
| manifest.schema.top-level-fields:agentchat | P2 | agentchat | manifest-loader | Manifest top-level fields are represented in target OpenClaw PluginManifest. | displayName @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, homepage @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, icon @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json |
|
||||
| package.compat.plugin-api-range:a2a-gateway | P2 | a2a-gateway | package-loader | Package metadata declares the OpenClaw plugin API range used by the plugin. | plugins/a2a-gateway/package.json |
|
||||
| package.compat.plugin-api-range:mcp-adapter | P2 | mcp-adapter | package-loader | Package metadata declares the OpenClaw plugin API range used by the plugin. | plugins/mcp-adapter/package.json |
|
||||
| package.compat.plugin-api-range:wecom | P2 | wecom | package-loader | Package metadata declares the OpenClaw plugin API range used by the plugin. | plugins/wecom/package.json |
|
||||
| package.entrypoint.build-before-cold-import:agentchat | P2 | agentchat | package-loader | Inspector can build or resolve source aliases before cold importing package entrypoints. | extension:./dist/index.js -> plugins/agentchat/integrations/openclaw-channel/dist/index.js, setupEntry:./dist/setup-entry.js -> plugins/agentchat/integrations/openclaw-channel/dist/setup-entry.js |
|
||||
| package.entrypoint.build-before-cold-import:opik-openclaw | P2 | opik-openclaw | package-loader | Inspector can build or resolve source aliases before cold importing package entrypoints. | runtimeExtension:./dist/index.js -> plugins/opik-openclaw/dist/index.js |
|
||||
| package.entrypoint.isolated-dependency-install:a2a-gateway | P2 | a2a-gateway | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @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 | Inspector installs package dependencies in an isolated workspace before cold import. | @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, openclaw @ plugins/agentchat/integrations/openclaw-channel/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:hasdata | P2 | hasdata | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @sinclair/typebox @ plugins/hasdata/package.json, openclaw @ plugins/hasdata/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:mcp-adapter | P2 | mcp-adapter | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @modelcontextprotocol/sdk @ plugins/mcp-adapter/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:opik-openclaw | P2 | opik-openclaw | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @clack/prompts @ plugins/opik-openclaw/package.json, opik @ plugins/opik-openclaw/package.json, zod @ plugins/opik-openclaw/package.json, openclaw @ plugins/opik-openclaw/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:wecom | P2 | wecom | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @wecom/aibot-node-sdk @ plugins/wecom/package.json, file-type @ plugins/wecom/package.json, pinyin-pro @ plugins/wecom/package.json, openclaw @ plugins/wecom/package.json, undici @ plugins/wecom/package.json |
|
||||
| package.entrypoint.typescript-loader:a2a-gateway | P2 | a2a-gateway | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/a2a-gateway/index.ts |
|
||||
| package.entrypoint.typescript-loader:hasdata | P2 | hasdata | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/hasdata/src/index.ts |
|
||||
| package.entrypoint.typescript-loader:llm-trace-phoenix | P2 | llm-trace-phoenix | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/llm-trace-phoenix/index.ts |
|
||||
| package.entrypoint.typescript-loader:mcp-adapter | P2 | mcp-adapter | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/mcp-adapter/index.ts |
|
||||
| package.entrypoint.typescript-loader:opik-openclaw | P2 | opik-openclaw | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/opik-openclaw/index.ts |
|
||||
| package.metadata.version-alignment:a2a-gateway | P2 | a2a-gateway | package-loader | Package and OpenClaw manifest versions stay aligned for release compatibility reporting. | package:1.4.0, manifest:1.3.0 |
|
||||
| sdk.import.root-barrel-cold-import:a2a-gateway | P2 | a2a-gateway | sdk-alias | Root plugin SDK barrel remains importable or has a machine-readable migration path. | openclaw/plugin-sdk @ plugins/a2a-gateway/src/types.ts:14 |
|
||||
| sdk.import.root-barrel-cold-import:llm-trace-phoenix | P2 | llm-trace-phoenix | sdk-alias | Root plugin SDK barrel remains importable or has a machine-readable migration path. | openclaw/plugin-sdk @ plugins/llm-trace-phoenix/index.ts:12 |
|
||||
| sdk.import.root-barrel-cold-import:opik-openclaw | P2 | opik-openclaw | sdk-alias | Root plugin SDK barrel remains importable or has a machine-readable migration path. | openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:2, openclaw/plugin-sdk @ plugins/opik-openclaw/src/cli.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/configure.ts:2, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:5, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:6, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/llm.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/subagent.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/tool.ts:1 |
|
||||
| tool.registration.schema-capture:a2a-gateway | P2 | a2a-gateway | tool-runtime | Registered runtime tools expose stable names, input schemas, and result metadata. | registerTool @ plugins/a2a-gateway/index.ts:777 |
|
||||
| tool.registration.schema-capture:mcp-adapter | P2 | mcp-adapter | tool-runtime | Registered runtime tools expose stable names, input schemas, and result metadata. | registerTool @ plugins/mcp-adapter/index.ts:30 |
|
||||
| tool.registration.schema-capture:wecom | P2 | wecom | tool-runtime | Registered runtime tools expose stable names, input schemas, and result metadata. | registerTool @ plugins/wecom/index.js:28, registerTool @ plugins/wecom/index.js:29, registerTool @ plugins/wecom/index.js:33 |
|
||||
| manifest.compat.provider-auth-env-vars:inworld-tts | P3 | inworld-tts | manifest-loader | Legacy provider auth env metadata continues to map into config/help surfaces. | inworld |
|
||||
| manifest.compat.provider-auth-env-vars:web-search-plus | P3 | web-search-plus | manifest-loader | Legacy provider auth env metadata continues to map into config/help surfaces. | serper, tavily, linkup, querit, exa, firecrawl, perplexity, you, searxng |
|
||||
| package.entrypoint.build-before-cold-import:clawmetry | P3 | clawmetry | package-loader | Inspector can build or resolve source aliases before cold importing package entrypoints. | runtimeExtension:./dist/index.js -> plugins/clawmetry/clawhub-plugin/dist/index.js |
|
||||
| package.entrypoint.isolated-dependency-install:apify | P3 | apify | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | @sinclair/typebox @ plugins/apify/package.json, apify-client @ plugins/apify/package.json, openclaw @ plugins/apify/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:clawmetry | P3 | clawmetry | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | node-fetch @ plugins/clawmetry/clawhub-plugin/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:codex-app-server | P3 | codex-app-server | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | ws @ plugins/codex-app-server/package.json, openclaw @ plugins/codex-app-server/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:inworld-tts | P3 | inworld-tts | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | openclaw @ plugins/inworld-tts/package.json |
|
||||
| package.entrypoint.isolated-dependency-install:web-search-plus | P3 | web-search-plus | package-loader | Inspector installs package dependencies in an isolated workspace before cold import. | openclaw @ plugins/web-search-plus/package.json |
|
||||
| package.entrypoint.typescript-loader:apify | P3 | apify | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/apify/src/index.ts |
|
||||
| package.entrypoint.typescript-loader:clawmetry | P3 | clawmetry | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/clawmetry/clawhub-plugin/index.ts |
|
||||
| package.entrypoint.typescript-loader:codex-app-server | P3 | codex-app-server | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/codex-app-server/index.ts |
|
||||
| package.entrypoint.typescript-loader:inworld-tts | P3 | inworld-tts | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/inworld-tts/index.ts |
|
||||
| package.entrypoint.typescript-loader:web-search-plus | P3 | web-search-plus | package-loader | Inspector can compile or load TypeScript source entrypoints before registration capture. | extension:plugins/web-search-plus/index.ts |
|
||||
| sdk.import.root-barrel-cold-import:apify | P3 | apify | sdk-alias | Root plugin SDK barrel remains importable or has a machine-readable migration path. | openclaw/plugin-sdk @ plugins/apify/src/cli.ts:2, openclaw/plugin-sdk @ plugins/apify/src/index.ts:1, openclaw/plugin-sdk @ plugins/apify/src/tools/apify-scraper-tool.ts:4 |
|
||||
| sdk.import.root-barrel-cold-import:codex-app-server | P3 | codex-app-server | sdk-alias | Root plugin SDK barrel remains importable or has a machine-readable migration path. | openclaw/plugin-sdk @ plugins/codex-app-server/index.ts:1, openclaw/plugin-sdk @ plugins/codex-app-server/src/client.ts:6, openclaw/plugin-sdk @ plugins/codex-app-server/src/controller.ts:18, openclaw/plugin-sdk @ plugins/codex-app-server/src/types.ts:1 |
|
||||
| tool.registration.schema-capture:apify | P3 | apify | tool-runtime | Registered runtime tools expose stable names, input schemas, and result metadata. | registerTool @ plugins/apify/src/index.ts:13 |
|
||||
| tool.registration.schema-capture:web-search-plus | P3 | web-search-plus | tool-runtime | Registered runtime tools expose stable names, input schemas, and result metadata. | registerTool @ plugins/web-search-plus/index.ts:815, registerTool @ plugins/web-search-plus/index.ts:947 |
|
||||
|
||||
## Fixture Seam Inventory
|
||||
|
||||
| Fixture | Priority | Seams | Hooks | Registrations | Manifest contracts |
|
||||
| ----------------- | -------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | ------------------ |
|
||||
| agentchat | high | channel, prompt-mutation, config-schema, websocket, backpressure | - | defineChannelPluginEntry | - |
|
||||
| wecom | high | channel, streaming, dynamic-agent-routing, message-policy, media | before_prompt_build, before_tool_call, subagent_delivery_target, subagent_ended, subagent_spawned | registerChannel, registerHttpRoute, registerTool | - |
|
||||
| a2a-gateway | high | gateway-service, http-routes, agent-routing, async-job, auth | - | registerGatewayMethod, registerService, registerTool | - |
|
||||
| hasdata | high | tool, tool-schema, external-api, cli, config-schema | - | registerTool | tools |
|
||||
| mcp-adapter | high | dynamic-tool, json-schema, stdio, http, reconnect | - | registerService, registerTool | - |
|
||||
| llm-trace-phoenix | high | llm-observer, conversation-access, telemetry, external-api | llm_input, llm_output | - | - |
|
||||
| clawmetry | medium | diagnostics, log-transport, gateway-service, sidecar, telemetry | - | definePluginEntry, registerService | - |
|
||||
| codex-app-server | medium | process-spawn, unsafe-install, channel-bridge, interactive-ui, sdk-compat | inbound_claim | registerCommand, registerInteractiveHandler, registerService | - |
|
||||
| web-search-plus | medium | tool, provider-routing, external-api, env-auth, extraction | - | registerTool | - |
|
||||
| apify | medium | tool, async-job, polling, external-api, catalog-discovery | - | registerCli, registerTool | - |
|
||||
| inworld-tts | medium | provider-capability, speech, tts, env-auth, runtime-overrides | - | definePluginEntry, registerSpeechProvider | speechProviders |
|
||||
| Fixture | Priority | Seams | Hooks | Registrations | Manifest contracts |
|
||||
| ----------------- | -------- | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | ------------------ |
|
||||
| agentchat | high | channel, prompt-mutation, config-schema, websocket, backpressure | - | defineChannelPluginEntry | - |
|
||||
| wecom | high | channel, streaming, dynamic-agent-routing, message-policy, media | before_prompt_build, before_tool_call, subagent_delivery_target, subagent_ended, subagent_spawned | registerChannel, registerHttpRoute, registerTool | - |
|
||||
| a2a-gateway | high | gateway-service, http-routes, agent-routing, async-job, auth | - | registerGatewayMethod, registerService, registerTool | - |
|
||||
| hasdata | high | tool, tool-schema, external-api, cli, config-schema | - | registerTool | tools |
|
||||
| mcp-adapter | high | dynamic-tool, json-schema, stdio, http, reconnect | - | registerService, registerTool | - |
|
||||
| llm-trace-phoenix | high | llm-observer, conversation-access, telemetry, external-api | llm_input, llm_output | - | - |
|
||||
| opik-openclaw | high | llm-observer, tool-runtime, subagent-routing, diagnostics, cli | after_tool_call, agent_end, before_tool_call, llm_input, llm_output, subagent_delivery_target, subagent_ended, subagent_spawned, subagent_spawning, tool_result_persist | registerCli, registerService | - |
|
||||
| clawmetry | medium | diagnostics, log-transport, gateway-service, sidecar, telemetry | - | definePluginEntry, registerService | - |
|
||||
| codex-app-server | medium | process-spawn, unsafe-install, channel-bridge, interactive-ui, sdk-compat | inbound_claim | registerCommand, registerInteractiveHandler, registerService | - |
|
||||
| web-search-plus | medium | tool, provider-routing, external-api, env-auth, extraction | - | registerTool | - |
|
||||
| apify | medium | tool, async-job, polling, external-api, catalog-discovery | - | registerCli, registerTool | - |
|
||||
| inworld-tts | medium | provider-capability, speech, tts, env-auth, runtime-overrides | - | definePluginEntry, registerSpeechProvider | speechProviders |
|
||||
|
||||
## Decision Matrix
|
||||
|
||||
@ -266,6 +288,13 @@ _none_
|
||||
| llm-trace-phoenix | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/llm-trace-phoenix/index.ts |
|
||||
| llm-trace-phoenix | inspector-follow-up | conversation-access | Add synthetic llm_input/llm_output/agent_end probes before tightening hook payloads or redaction behavior. | llm_input, llm_output |
|
||||
| llm-trace-phoenix | core-compat-adapter | sdk-import | Keep the root SDK barrel stable or expose a machine-readable migration map before removing aliases. | openclaw/plugin-sdk |
|
||||
| opik-openclaw | inspector-follow-up | cold-import | Run the plugin build or resolve source entrypoint aliases before cold-importing this fixture. | ./dist/index.js |
|
||||
| opik-openclaw | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/opik-openclaw/index.ts |
|
||||
| opik-openclaw | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @clack/prompts, opik, zod, openclaw |
|
||||
| opik-openclaw | inspector-follow-up | conversation-access | Add synthetic llm_input/llm_output/agent_end probes before tightening hook payloads or redaction behavior. | agent_end, llm_input, llm_output |
|
||||
| opik-openclaw | core-compat-adapter | sdk-import | Keep the root SDK barrel stable or expose a machine-readable migration map before removing aliases. | openclaw/plugin-sdk |
|
||||
| opik-openclaw | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerService |
|
||||
| opik-openclaw | inspector-follow-up | tool-policy | Probe before_tool_call return shapes before changing tool-call approval or block behavior. | before_tool_call |
|
||||
| clawmetry | inspector-follow-up | cold-import | Run the plugin build or resolve source entrypoint aliases before cold-importing this fixture. | ./dist/index.js |
|
||||
| clawmetry | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/clawmetry/clawhub-plugin/index.ts |
|
||||
| clawmetry | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | node-fetch |
|
||||
@ -291,76 +320,83 @@ _none_
|
||||
|
||||
## Raw Logs
|
||||
|
||||
| Fixture | Code | Level | Message | Evidence | Compat record |
|
||||
| ----------------- | ----------------------- | ----- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- |
|
||||
| agentchat | seam-inventory | log | observed 0 hooks, 1 registrations, and 0 manifest contracts | registration:defineChannelPluginEntry | - |
|
||||
| agentchat | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - |
|
||||
| agentchat | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | - | - |
|
||||
| agentchat | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/channel-contract, openclaw/plugin-sdk/channel-core, openclaw/plugin-sdk/setup | - |
|
||||
| agentchat | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json | - |
|
||||
| agentchat | package-metadata | log | selected package metadata for plugin contract checks | plugins/agentchat/integrations/openclaw-channel/package.json, @agentchatme/openclaw, version:0.6.1 | - |
|
||||
| wecom | seam-inventory | log | observed 5 hooks, 3 registrations, and 0 manifest contracts | hook:before_prompt_build, hook:before_tool_call, hook:subagent_delivery_target, hook:subagent_ended, hook:subagent_spawned, registration:registerChannel, registration:registerHttpRoute, registration:registerTool | - |
|
||||
| wecom | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | before_prompt_build, before_tool_call, subagent_delivery_target, subagent_ended, subagent_spawned | - |
|
||||
| wecom | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerChannel, registerHttpRoute, registerTool | - |
|
||||
| wecom | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/core, openclaw/plugin-sdk/media-runtime, openclaw/plugin-sdk/setup, openclaw/plugin-sdk/status-helpers | - |
|
||||
| wecom | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/wecom/openclaw.plugin.json | - |
|
||||
| wecom | package-metadata | log | selected package metadata for plugin contract checks | plugins/wecom/package.json, @sunnoy/wecom, version:3.0.1 | - |
|
||||
| a2a-gateway | seam-inventory | log | observed 0 hooks, 3 registrations, and 0 manifest contracts | registration:registerGatewayMethod, registration:registerService, registration:registerTool | - |
|
||||
| a2a-gateway | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - |
|
||||
| a2a-gateway | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerGatewayMethod, registerService, registerTool | - |
|
||||
| a2a-gateway | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk | - |
|
||||
| a2a-gateway | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/a2a-gateway/openclaw.plugin.json | - |
|
||||
| a2a-gateway | package-metadata | log | selected package metadata for plugin contract checks | plugins/a2a-gateway/package.json, openclaw-a2a-gateway, version:1.4.0 | - |
|
||||
| hasdata | seam-inventory | log | observed 0 hooks, 1 registrations, and 1 manifest contracts | registration:registerTool, manifestContract:tools | - |
|
||||
| hasdata | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - |
|
||||
| hasdata | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerTool | - |
|
||||
| hasdata | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/hasdata/openclaw.plugin.json | - |
|
||||
| hasdata | package-metadata | log | selected package metadata for plugin contract checks | plugins/hasdata/package.json, @hasdata/hasdata-openclaw-plugin, version:0.1.5 | - |
|
||||
| hasdata | declarative-contracts | log | fixture declares manifest contracts that can be checked without executing plugin code | tools | - |
|
||||
| mcp-adapter | seam-inventory | log | observed 0 hooks, 2 registrations, and 0 manifest contracts | registration:registerService, registration:registerTool | - |
|
||||
| mcp-adapter | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - |
|
||||
| mcp-adapter | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerService, registerTool | - |
|
||||
| mcp-adapter | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/mcp-adapter/openclaw.plugin.json | - |
|
||||
| mcp-adapter | package-metadata | log | selected package metadata for plugin contract checks | plugins/mcp-adapter/package.json, openclaw-mcp-adapter, version:0.1.1 | - |
|
||||
| llm-trace-phoenix | seam-inventory | log | observed 2 hooks, 0 registrations, and 0 manifest contracts | hook:llm_input, hook:llm_output | - |
|
||||
| llm-trace-phoenix | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | llm_input, llm_output | - |
|
||||
| llm-trace-phoenix | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | - | - |
|
||||
| llm-trace-phoenix | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk | - |
|
||||
| llm-trace-phoenix | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/llm-trace-phoenix/openclaw.plugin.json | - |
|
||||
| llm-trace-phoenix | package-metadata | log | selected package metadata for plugin contract checks | plugins/llm-trace-phoenix/package.json, llm-trace-phoenix, version:1.0.1 | - |
|
||||
| clawmetry | seam-inventory | log | observed 0 hooks, 2 registrations, and 0 manifest contracts | registration:definePluginEntry, registration:registerService | - |
|
||||
| clawmetry | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - |
|
||||
| clawmetry | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerService | - |
|
||||
| clawmetry | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/diagnostics-otel, openclaw/plugin-sdk/plugin-entry | - |
|
||||
| clawmetry | package-metadata | log | selected package metadata for plugin contract checks | plugins/clawmetry/clawhub-plugin/package.json, @clawmetry/openclaw-plugin, version:1.0.0 | - |
|
||||
| codex-app-server | seam-inventory | log | observed 1 hooks, 3 registrations, and 0 manifest contracts | hook:inbound_claim, registration:registerCommand, registration:registerInteractiveHandler, registration:registerService | - |
|
||||
| codex-app-server | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | inbound_claim | - |
|
||||
| codex-app-server | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerCommand, registerInteractiveHandler, registerService | - |
|
||||
| codex-app-server | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/codex-app-server/openclaw.plugin.json | - |
|
||||
| codex-app-server | package-metadata | log | selected package metadata for plugin contract checks | plugins/codex-app-server/package.json, openclaw-codex-app-server, version:0.0.0 | - |
|
||||
| web-search-plus | seam-inventory | log | observed 0 hooks, 1 registrations, and 0 manifest contracts | registration:registerTool | - |
|
||||
| web-search-plus | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - |
|
||||
| web-search-plus | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerTool | - |
|
||||
| web-search-plus | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/web-search-plus/openclaw.plugin.json | - |
|
||||
| web-search-plus | package-metadata | log | selected package metadata for plugin contract checks | plugins/web-search-plus/package.json, web-search-plus-plugin-v2, version:2.2.0 | - |
|
||||
| apify | seam-inventory | log | observed 0 hooks, 2 registrations, and 0 manifest contracts | registration:registerCli, registration:registerTool | - |
|
||||
| apify | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - |
|
||||
| apify | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerCli, registerTool | - |
|
||||
| apify | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk, openclaw/plugin-sdk/core | - |
|
||||
| apify | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/apify/openclaw.plugin.json | - |
|
||||
| apify | package-metadata | log | selected package metadata for plugin contract checks | plugins/apify/package.json, @apify/apify-openclaw-plugin, version:0.2.0 | - |
|
||||
| inworld-tts | seam-inventory | log | observed 0 hooks, 2 registrations, and 1 manifest contracts | registration:definePluginEntry, registration:registerSpeechProvider, manifestContract:speechProviders | - |
|
||||
| inworld-tts | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - |
|
||||
| inworld-tts | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerSpeechProvider | - |
|
||||
| inworld-tts | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/plugin-entry, openclaw/plugin-sdk/secret-input, openclaw/plugin-sdk/speech | - |
|
||||
| inworld-tts | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/inworld-tts/openclaw.plugin.json | - |
|
||||
| inworld-tts | package-metadata | log | selected package metadata for plugin contract checks | plugins/inworld-tts/package.json, openclaw-inworld-tts, version:1.0.2 | - |
|
||||
| inworld-tts | declarative-contracts | log | fixture declares manifest contracts that can be checked without executing plugin code | speechProviders | - |
|
||||
| agentchat | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel-env-vars | channel-env-vars |
|
||||
| a2a-gateway | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | legacy-root-sdk-import | legacy-root-sdk-import |
|
||||
| hasdata | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | provider-auth-env-vars | provider-auth-env-vars |
|
||||
| llm-trace-phoenix | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | legacy-root-sdk-import | legacy-root-sdk-import |
|
||||
| codex-app-server | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | legacy-root-sdk-import | legacy-root-sdk-import |
|
||||
| web-search-plus | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | provider-auth-env-vars | provider-auth-env-vars |
|
||||
| apify | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | legacy-root-sdk-import | legacy-root-sdk-import |
|
||||
| inworld-tts | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | provider-auth-env-vars | provider-auth-env-vars |
|
||||
| Fixture | Code | Level | Message | Evidence | Compat record |
|
||||
| ----------------- | ----------------------- | ----- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- |
|
||||
| agentchat | seam-inventory | log | observed 0 hooks, 1 registrations, and 0 manifest contracts | registration:defineChannelPluginEntry | - |
|
||||
| agentchat | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - |
|
||||
| agentchat | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | - | - |
|
||||
| agentchat | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/channel-contract, openclaw/plugin-sdk/channel-core, openclaw/plugin-sdk/setup | - |
|
||||
| agentchat | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json | - |
|
||||
| agentchat | package-metadata | log | selected package metadata for plugin contract checks | plugins/agentchat/integrations/openclaw-channel/package.json, @agentchatme/openclaw, version:0.6.1 | - |
|
||||
| wecom | seam-inventory | log | observed 5 hooks, 3 registrations, and 0 manifest contracts | hook:before_prompt_build, hook:before_tool_call, hook:subagent_delivery_target, hook:subagent_ended, hook:subagent_spawned, registration:registerChannel, registration:registerHttpRoute, registration:registerTool | - |
|
||||
| wecom | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | before_prompt_build, before_tool_call, subagent_delivery_target, subagent_ended, subagent_spawned | - |
|
||||
| wecom | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerChannel, registerHttpRoute, registerTool | - |
|
||||
| wecom | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/core, openclaw/plugin-sdk/media-runtime, openclaw/plugin-sdk/setup, openclaw/plugin-sdk/status-helpers | - |
|
||||
| wecom | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/wecom/openclaw.plugin.json | - |
|
||||
| wecom | package-metadata | log | selected package metadata for plugin contract checks | plugins/wecom/package.json, @sunnoy/wecom, version:3.0.1 | - |
|
||||
| a2a-gateway | seam-inventory | log | observed 0 hooks, 3 registrations, and 0 manifest contracts | registration:registerGatewayMethod, registration:registerService, registration:registerTool | - |
|
||||
| a2a-gateway | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - |
|
||||
| a2a-gateway | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerGatewayMethod, registerService, registerTool | - |
|
||||
| a2a-gateway | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk | - |
|
||||
| a2a-gateway | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/a2a-gateway/openclaw.plugin.json | - |
|
||||
| a2a-gateway | package-metadata | log | selected package metadata for plugin contract checks | plugins/a2a-gateway/package.json, openclaw-a2a-gateway, version:1.4.0 | - |
|
||||
| hasdata | seam-inventory | log | observed 0 hooks, 1 registrations, and 1 manifest contracts | registration:registerTool, manifestContract:tools | - |
|
||||
| hasdata | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - |
|
||||
| hasdata | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerTool | - |
|
||||
| hasdata | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/hasdata/openclaw.plugin.json | - |
|
||||
| hasdata | package-metadata | log | selected package metadata for plugin contract checks | plugins/hasdata/package.json, @hasdata/hasdata-openclaw-plugin, version:0.1.5 | - |
|
||||
| hasdata | declarative-contracts | log | fixture declares manifest contracts that can be checked without executing plugin code | tools | - |
|
||||
| mcp-adapter | seam-inventory | log | observed 0 hooks, 2 registrations, and 0 manifest contracts | registration:registerService, registration:registerTool | - |
|
||||
| mcp-adapter | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - |
|
||||
| mcp-adapter | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerService, registerTool | - |
|
||||
| mcp-adapter | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/mcp-adapter/openclaw.plugin.json | - |
|
||||
| mcp-adapter | package-metadata | log | selected package metadata for plugin contract checks | plugins/mcp-adapter/package.json, openclaw-mcp-adapter, version:0.1.1 | - |
|
||||
| llm-trace-phoenix | seam-inventory | log | observed 2 hooks, 0 registrations, and 0 manifest contracts | hook:llm_input, hook:llm_output | - |
|
||||
| llm-trace-phoenix | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | llm_input, llm_output | - |
|
||||
| llm-trace-phoenix | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | - | - |
|
||||
| llm-trace-phoenix | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk | - |
|
||||
| llm-trace-phoenix | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/llm-trace-phoenix/openclaw.plugin.json | - |
|
||||
| llm-trace-phoenix | package-metadata | log | selected package metadata for plugin contract checks | plugins/llm-trace-phoenix/package.json, llm-trace-phoenix, version:1.0.1 | - |
|
||||
| opik-openclaw | seam-inventory | log | observed 10 hooks, 2 registrations, and 0 manifest contracts | hook:after_tool_call, hook:agent_end, hook:before_tool_call, hook:llm_input, hook:llm_output, hook:subagent_delivery_target, hook:subagent_ended, hook:subagent_spawned, hook:subagent_spawning, hook:tool_result_persist, registration:registerCli, registration:registerService | - |
|
||||
| opik-openclaw | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | after_tool_call, agent_end, before_tool_call, llm_input, llm_output, subagent_delivery_target, subagent_ended, subagent_spawned, subagent_spawning, tool_result_persist | - |
|
||||
| opik-openclaw | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerCli, registerService | - |
|
||||
| opik-openclaw | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk | - |
|
||||
| opik-openclaw | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/opik-openclaw/openclaw.plugin.json | - |
|
||||
| opik-openclaw | package-metadata | log | selected package metadata for plugin contract checks | plugins/opik-openclaw/package.json, @opik/opik-openclaw, version:0.2.14 | - |
|
||||
| clawmetry | seam-inventory | log | observed 0 hooks, 2 registrations, and 0 manifest contracts | registration:definePluginEntry, registration:registerService | - |
|
||||
| clawmetry | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - |
|
||||
| clawmetry | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerService | - |
|
||||
| clawmetry | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/diagnostics-otel, openclaw/plugin-sdk/plugin-entry | - |
|
||||
| clawmetry | package-metadata | log | selected package metadata for plugin contract checks | plugins/clawmetry/clawhub-plugin/package.json, @clawmetry/openclaw-plugin, version:1.0.0 | - |
|
||||
| codex-app-server | seam-inventory | log | observed 1 hooks, 3 registrations, and 0 manifest contracts | hook:inbound_claim, registration:registerCommand, registration:registerInteractiveHandler, registration:registerService | - |
|
||||
| codex-app-server | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | inbound_claim | - |
|
||||
| codex-app-server | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerCommand, registerInteractiveHandler, registerService | - |
|
||||
| codex-app-server | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/codex-app-server/openclaw.plugin.json | - |
|
||||
| codex-app-server | package-metadata | log | selected package metadata for plugin contract checks | plugins/codex-app-server/package.json, openclaw-codex-app-server, version:0.0.0 | - |
|
||||
| web-search-plus | seam-inventory | log | observed 0 hooks, 1 registrations, and 0 manifest contracts | registration:registerTool | - |
|
||||
| web-search-plus | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - |
|
||||
| web-search-plus | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerTool | - |
|
||||
| web-search-plus | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/web-search-plus/openclaw.plugin.json | - |
|
||||
| web-search-plus | package-metadata | log | selected package metadata for plugin contract checks | plugins/web-search-plus/package.json, web-search-plus-plugin-v2, version:2.2.0 | - |
|
||||
| apify | seam-inventory | log | observed 0 hooks, 2 registrations, and 0 manifest contracts | registration:registerCli, registration:registerTool | - |
|
||||
| apify | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - |
|
||||
| apify | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerCli, registerTool | - |
|
||||
| apify | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk, openclaw/plugin-sdk/core | - |
|
||||
| apify | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/apify/openclaw.plugin.json | - |
|
||||
| apify | package-metadata | log | selected package metadata for plugin contract checks | plugins/apify/package.json, @apify/apify-openclaw-plugin, version:0.2.0 | - |
|
||||
| inworld-tts | seam-inventory | log | observed 0 hooks, 2 registrations, and 1 manifest contracts | registration:definePluginEntry, registration:registerSpeechProvider, manifestContract:speechProviders | - |
|
||||
| inworld-tts | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - |
|
||||
| inworld-tts | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerSpeechProvider | - |
|
||||
| inworld-tts | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/plugin-entry, openclaw/plugin-sdk/secret-input, openclaw/plugin-sdk/speech | - |
|
||||
| inworld-tts | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/inworld-tts/openclaw.plugin.json | - |
|
||||
| inworld-tts | package-metadata | log | selected package metadata for plugin contract checks | plugins/inworld-tts/package.json, openclaw-inworld-tts, version:1.0.2 | - |
|
||||
| inworld-tts | declarative-contracts | log | fixture declares manifest contracts that can be checked without executing plugin code | speechProviders | - |
|
||||
| agentchat | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel-env-vars | channel-env-vars |
|
||||
| a2a-gateway | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | legacy-root-sdk-import | legacy-root-sdk-import |
|
||||
| hasdata | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | provider-auth-env-vars | provider-auth-env-vars |
|
||||
| llm-trace-phoenix | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | legacy-root-sdk-import | legacy-root-sdk-import |
|
||||
| opik-openclaw | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | legacy-root-sdk-import | legacy-root-sdk-import |
|
||||
| codex-app-server | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | legacy-root-sdk-import | legacy-root-sdk-import |
|
||||
| web-search-plus | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | provider-auth-env-vars | provider-auth-env-vars |
|
||||
| apify | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | legacy-root-sdk-import | legacy-root-sdk-import |
|
||||
| inworld-tts | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | provider-auth-env-vars | provider-auth-env-vars |
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"generatedAt": "deterministic",
|
||||
"runs": 1,
|
||||
"runs": 3,
|
||||
"targetOpenClaw": {
|
||||
"status": "ok",
|
||||
"configuredPath": "../openclaw",
|
||||
@ -8,24 +8,24 @@
|
||||
"hookNames": 31,
|
||||
"apiRegistrars": 40,
|
||||
"capturedRegistrars": 18,
|
||||
"sdkExports": 306,
|
||||
"sdkExports": 307,
|
||||
"manifestFields": 32,
|
||||
"manifestContractFields": 16
|
||||
},
|
||||
"fixtureInventory": {
|
||||
"fixtures": 11,
|
||||
"sourceFiles": 181,
|
||||
"observedHooks": 8,
|
||||
"observedRegistrations": 20,
|
||||
"observedSdkImports": 19,
|
||||
"contractProbes": 50,
|
||||
"issueFindings": 51
|
||||
"fixtures": 12,
|
||||
"sourceFiles": 201,
|
||||
"observedHooks": 18,
|
||||
"observedRegistrations": 22,
|
||||
"observedSdkImports": 20,
|
||||
"contractProbes": 57,
|
||||
"issueFindings": 58
|
||||
},
|
||||
"summary": {
|
||||
"commandCount": 7,
|
||||
"p50WallMs": 219,
|
||||
"p95WallMs": 236,
|
||||
"maxPeakRssMb": 66.7
|
||||
"p50WallMs": 742,
|
||||
"p95WallMs": 1273,
|
||||
"maxPeakRssMb": 65.1
|
||||
},
|
||||
"commands": [
|
||||
{
|
||||
@ -34,22 +34,36 @@
|
||||
"command": "/opt/homebrew/Cellar/node/25.9.0_2/bin/node -e 0",
|
||||
"samples": [
|
||||
{
|
||||
"wallMs": 130,
|
||||
"peakRssMb": 2.5,
|
||||
"wallMs": 1134,
|
||||
"peakRssMb": 0.4,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 697,
|
||||
"peakRssMb": 0,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 917,
|
||||
"peakRssMb": 0,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "",
|
||||
"stderrPreview": ""
|
||||
}
|
||||
],
|
||||
"wallMs": {
|
||||
"min": 130,
|
||||
"median": 130,
|
||||
"max": 130
|
||||
"min": 697,
|
||||
"median": 917,
|
||||
"max": 1134
|
||||
},
|
||||
"peakRssMb": {
|
||||
"min": 2.5,
|
||||
"median": 2.5,
|
||||
"max": 2.5
|
||||
"min": 0,
|
||||
"median": 0,
|
||||
"max": 0.4
|
||||
},
|
||||
"exitCodes": [
|
||||
0
|
||||
@ -61,22 +75,36 @@
|
||||
"command": "/opt/homebrew/Cellar/node/25.9.0_2/bin/node scripts/inspect-fixtures.mjs --check",
|
||||
"samples": [
|
||||
{
|
||||
"wallMs": 236,
|
||||
"peakRssMb": 61.8,
|
||||
"wallMs": 1273,
|
||||
"peakRssMb": 51.8,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "│ 10 │ 'inworld-tts' │ 'ok' │ '' │ 'definePluginEntry,registerSpeechProvider' │ 'speechProviders' │\n└─────────┴─────────────────────┴────────┴─────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────┴───────────────────┘",
|
||||
"stdoutPreview": "│ 11 │ 'inworld-tts' │ 'ok' │ '' │ 'definePluginEntry,registerSpeechProvider' │ 'speechProviders' │\n└─────────┴─────────────────────┴────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────┴───────────────────┘",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 487,
|
||||
"peakRssMb": 43.1,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "│ 11 │ 'inworld-tts' │ 'ok' │ '' │ 'definePluginEntry,registerSpeechProvider' │ 'speechProviders' │\n└─────────┴─────────────────────┴────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────┴───────────────────┘",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 1397,
|
||||
"peakRssMb": 0,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "│ 11 │ 'inworld-tts' │ 'ok' │ '' │ 'definePluginEntry,registerSpeechProvider' │ 'speechProviders' │\n└─────────┴─────────────────────┴────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────┴───────────────────┘",
|
||||
"stderrPreview": ""
|
||||
}
|
||||
],
|
||||
"wallMs": {
|
||||
"min": 236,
|
||||
"median": 236,
|
||||
"max": 236
|
||||
"min": 487,
|
||||
"median": 1273,
|
||||
"max": 1397
|
||||
},
|
||||
"peakRssMb": {
|
||||
"min": 61.8,
|
||||
"median": 61.8,
|
||||
"max": 61.8
|
||||
"min": 0,
|
||||
"median": 43.1,
|
||||
"max": 51.8
|
||||
},
|
||||
"exitCodes": [
|
||||
0
|
||||
@ -88,22 +116,36 @@
|
||||
"command": "/opt/homebrew/Cellar/node/25.9.0_2/bin/node scripts/generate-report.mjs --check",
|
||||
"samples": [
|
||||
{
|
||||
"wallMs": 226,
|
||||
"peakRssMb": 60.5,
|
||||
"wallMs": 1956,
|
||||
"peakRssMb": 0,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "crabpot report check: pass; 0 breakages, 16 warnings, 35 suggestions, 51 issues\nreport targets: /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-report.md, /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-report.json, /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-issues.md",
|
||||
"stdoutPreview": "crabpot report check: pass; 0 breakages, 18 warnings, 40 suggestions, 58 issues\nreport targets: /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-report.md, /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-report.json, /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-issues.md",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 517,
|
||||
"peakRssMb": 65.1,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "crabpot report check: pass; 0 breakages, 18 warnings, 40 suggestions, 58 issues\nreport targets: /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-report.md, /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-report.json, /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-issues.md",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 424,
|
||||
"peakRssMb": 63.5,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "crabpot report check: pass; 0 breakages, 18 warnings, 40 suggestions, 58 issues\nreport targets: /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-report.md, /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-report.json, /Users/vincentkoc/GIT/_Perso/crabpot/reports/crabpot-issues.md",
|
||||
"stderrPreview": ""
|
||||
}
|
||||
],
|
||||
"wallMs": {
|
||||
"min": 226,
|
||||
"median": 226,
|
||||
"max": 226
|
||||
"min": 424,
|
||||
"median": 517,
|
||||
"max": 1956
|
||||
},
|
||||
"peakRssMb": {
|
||||
"min": 60.5,
|
||||
"median": 60.5,
|
||||
"max": 60.5
|
||||
"min": 0,
|
||||
"median": 63.5,
|
||||
"max": 65.1
|
||||
},
|
||||
"exitCodes": [
|
||||
0
|
||||
@ -115,22 +157,36 @@
|
||||
"command": "/opt/homebrew/Cellar/node/25.9.0_2/bin/node scripts/capture-contracts.mjs --check",
|
||||
"samples": [
|
||||
{
|
||||
"wallMs": 219,
|
||||
"peakRssMb": 66.7,
|
||||
"wallMs": 483,
|
||||
"peakRssMb": 64.1,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "contract capture: 28 registrations, 8 hooks, 32 sdk imports, 50 issue probes",
|
||||
"stdoutPreview": "contract capture: 30 registrations, 18 hooks, 41 sdk imports, 57 issue probes",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 522,
|
||||
"peakRssMb": 63.6,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "contract capture: 30 registrations, 18 hooks, 41 sdk imports, 57 issue probes",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 471,
|
||||
"peakRssMb": 0,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "contract capture: 30 registrations, 18 hooks, 41 sdk imports, 57 issue probes",
|
||||
"stderrPreview": ""
|
||||
}
|
||||
],
|
||||
"wallMs": {
|
||||
"min": 219,
|
||||
"median": 219,
|
||||
"max": 219
|
||||
"min": 471,
|
||||
"median": 483,
|
||||
"max": 522
|
||||
},
|
||||
"peakRssMb": {
|
||||
"min": 66.7,
|
||||
"median": 66.7,
|
||||
"max": 66.7
|
||||
"min": 0,
|
||||
"median": 63.6,
|
||||
"max": 64.1
|
||||
},
|
||||
"exitCodes": [
|
||||
0
|
||||
@ -142,22 +198,36 @@
|
||||
"command": "/opt/homebrew/Cellar/node/25.9.0_2/bin/node scripts/synthetic-probes.mjs --check",
|
||||
"samples": [
|
||||
{
|
||||
"wallMs": 169,
|
||||
"peakRssMb": 51.1,
|
||||
"wallMs": 821,
|
||||
"peakRssMb": 0,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "synthetic probes: 36 ready, 0 blocked, 36 total",
|
||||
"stdoutPreview": "synthetic probes: 48 ready, 0 blocked, 48 total",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 874,
|
||||
"peakRssMb": 0,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "synthetic probes: 48 ready, 0 blocked, 48 total",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 2457,
|
||||
"peakRssMb": 0,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "synthetic probes: 48 ready, 0 blocked, 48 total",
|
||||
"stderrPreview": ""
|
||||
}
|
||||
],
|
||||
"wallMs": {
|
||||
"min": 169,
|
||||
"median": 169,
|
||||
"max": 169
|
||||
"min": 821,
|
||||
"median": 874,
|
||||
"max": 2457
|
||||
},
|
||||
"peakRssMb": {
|
||||
"min": 51.1,
|
||||
"median": 51.1,
|
||||
"max": 51.1
|
||||
"min": 0,
|
||||
"median": 0,
|
||||
"max": 0
|
||||
},
|
||||
"exitCodes": [
|
||||
0
|
||||
@ -169,22 +239,36 @@
|
||||
"command": "/opt/homebrew/Cellar/node/25.9.0_2/bin/node scripts/cold-import-readiness.mjs --check",
|
||||
"samples": [
|
||||
{
|
||||
"wallMs": 223,
|
||||
"peakRssMb": 48,
|
||||
"wallMs": 444,
|
||||
"peakRssMb": 60.8,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "cold import readiness: 13 entrypoints, 0 ready, 13 blocked",
|
||||
"stdoutPreview": "cold import readiness: 15 entrypoints, 0 ready, 15 blocked",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 364,
|
||||
"peakRssMb": 51.4,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "cold import readiness: 15 entrypoints, 0 ready, 15 blocked",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 604,
|
||||
"peakRssMb": 57.6,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "cold import readiness: 15 entrypoints, 0 ready, 15 blocked",
|
||||
"stderrPreview": ""
|
||||
}
|
||||
],
|
||||
"wallMs": {
|
||||
"min": 223,
|
||||
"median": 223,
|
||||
"max": 223
|
||||
"min": 364,
|
||||
"median": 444,
|
||||
"max": 604
|
||||
},
|
||||
"peakRssMb": {
|
||||
"min": 48,
|
||||
"median": 48,
|
||||
"max": 48
|
||||
"min": 51.4,
|
||||
"median": 57.6,
|
||||
"max": 60.8
|
||||
},
|
||||
"exitCodes": [
|
||||
0
|
||||
@ -196,22 +280,36 @@
|
||||
"command": "/opt/homebrew/Cellar/node/25.9.0_2/bin/node scripts/workspace-plan.mjs --check",
|
||||
"samples": [
|
||||
{
|
||||
"wallMs": 184,
|
||||
"peakRssMb": 66.3,
|
||||
"wallMs": 369,
|
||||
"peakRssMb": 0.3,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "workspace plan: 13 entrypoints, 9 installs, 3 builds, 13 captures, 13 synthetic probes, 13 artifact dirs",
|
||||
"stdoutPreview": "workspace plan: 15 entrypoints, 10 installs, 4 builds, 15 captures, 15 synthetic probes, 15 artifact dirs",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 1554,
|
||||
"peakRssMb": 64,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "workspace plan: 15 entrypoints, 10 installs, 4 builds, 15 captures, 15 synthetic probes, 15 artifact dirs",
|
||||
"stderrPreview": ""
|
||||
},
|
||||
{
|
||||
"wallMs": 742,
|
||||
"peakRssMb": 63.3,
|
||||
"exitCode": 0,
|
||||
"stdoutPreview": "workspace plan: 15 entrypoints, 10 installs, 4 builds, 15 captures, 15 synthetic probes, 15 artifact dirs",
|
||||
"stderrPreview": ""
|
||||
}
|
||||
],
|
||||
"wallMs": {
|
||||
"min": 184,
|
||||
"median": 184,
|
||||
"max": 184
|
||||
"min": 369,
|
||||
"median": 742,
|
||||
"max": 1554
|
||||
},
|
||||
"peakRssMb": {
|
||||
"min": 66.3,
|
||||
"median": 66.3,
|
||||
"max": 66.3
|
||||
"min": 0.3,
|
||||
"median": 63.3,
|
||||
"max": 64
|
||||
},
|
||||
"exitCodes": [
|
||||
0
|
||||
|
||||
@ -1,16 +1,16 @@
|
||||
# Crabpot Runtime Profile
|
||||
|
||||
Generated: deterministic
|
||||
Samples per command: 1
|
||||
Samples per command: 3
|
||||
|
||||
## Summary
|
||||
|
||||
| Metric | Value |
|
||||
| ------------- | ------- |
|
||||
| Commands | 7 |
|
||||
| P50 wall time | 219 ms |
|
||||
| P95 wall time | 236 ms |
|
||||
| Max peak RSS | 66.7 MB |
|
||||
| P50 wall time | 742 ms |
|
||||
| P95 wall time | 1273 ms |
|
||||
| Max peak RSS | 65.1 MB |
|
||||
|
||||
## Target OpenClaw Registry Surface
|
||||
|
||||
@ -22,7 +22,7 @@ Samples per command: 1
|
||||
| hookNames | 31 |
|
||||
| apiRegistrars | 40 |
|
||||
| capturedRegistrars | 18 |
|
||||
| sdkExports | 306 |
|
||||
| sdkExports | 307 |
|
||||
| manifestFields | 32 |
|
||||
| manifestContractFields | 16 |
|
||||
|
||||
@ -30,22 +30,22 @@ Samples per command: 1
|
||||
|
||||
| Metric | Value |
|
||||
| --------------------- | ----- |
|
||||
| fixtures | 11 |
|
||||
| sourceFiles | 181 |
|
||||
| observedHooks | 8 |
|
||||
| observedRegistrations | 20 |
|
||||
| observedSdkImports | 19 |
|
||||
| contractProbes | 50 |
|
||||
| issueFindings | 51 |
|
||||
| fixtures | 12 |
|
||||
| sourceFiles | 201 |
|
||||
| observedHooks | 18 |
|
||||
| observedRegistrations | 22 |
|
||||
| observedSdkImports | 20 |
|
||||
| contractProbes | 57 |
|
||||
| issueFindings | 58 |
|
||||
|
||||
## Boot And Memory Samples
|
||||
|
||||
| ID | Label | Median wall | Max wall | Max peak RSS | Exit codes |
|
||||
| ---------------------- | ----------------------------------------------- | ----------- | -------- | ------------ | ---------- |
|
||||
| node-boot | Node boot | 130 ms | 130 ms | 2.5 MB | 0 |
|
||||
| fixture-inspection | Fixture inspection | 236 ms | 236 ms | 61.8 MB | 0 |
|
||||
| compat-report-registry | Compatibility report plus target registry parse | 226 ms | 226 ms | 60.5 MB | 0 |
|
||||
| contract-capture | Contract capture inventory | 219 ms | 219 ms | 66.7 MB | 0 |
|
||||
| synthetic-probe-plan | Synthetic probe plan | 169 ms | 169 ms | 51.1 MB | 0 |
|
||||
| cold-import-readiness | Cold import readiness | 223 ms | 223 ms | 48 MB | 0 |
|
||||
| workspace-plan | Workspace execution plan | 184 ms | 184 ms | 66.3 MB | 0 |
|
||||
| node-boot | Node boot | 917 ms | 1134 ms | 0.4 MB | 0 |
|
||||
| fixture-inspection | Fixture inspection | 1273 ms | 1397 ms | 51.8 MB | 0 |
|
||||
| compat-report-registry | Compatibility report plus target registry parse | 517 ms | 1956 ms | 65.1 MB | 0 |
|
||||
| contract-capture | Contract capture inventory | 483 ms | 522 ms | 64.1 MB | 0 |
|
||||
| synthetic-probe-plan | Synthetic probe plan | 874 ms | 2457 ms | 0 MB | 0 |
|
||||
| cold-import-readiness | Cold import readiness | 444 ms | 604 ms | 60.8 MB | 0 |
|
||||
| workspace-plan | Workspace execution plan | 742 ms | 1554 ms | 64 MB | 0 |
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
{
|
||||
"generatedAt": "deterministic",
|
||||
"summary": {
|
||||
"fixtureCount": 11,
|
||||
"probeCount": 36,
|
||||
"hookProbeCount": 8,
|
||||
"registrationProbeCount": 28,
|
||||
"readyCount": 36,
|
||||
"fixtureCount": 12,
|
||||
"probeCount": 48,
|
||||
"hookProbeCount": 18,
|
||||
"registrationProbeCount": 30,
|
||||
"readyCount": 48,
|
||||
"blockedCount": 0,
|
||||
"directExecutionCount": 19,
|
||||
"optInExecutionCount": 6,
|
||||
"directExecutionCount": 20,
|
||||
"optInExecutionCount": 7,
|
||||
"metadataOnlyCount": 3
|
||||
},
|
||||
"probes": [
|
||||
@ -202,6 +202,254 @@
|
||||
},
|
||||
"source": "plugins/llm-trace-phoenix/index.ts:168"
|
||||
},
|
||||
{
|
||||
"id": "hook.after_tool_call:opik-openclaw:plugins-opik-openclaw-src-service-hooks-tool-ts-100",
|
||||
"fixture": "opik-openclaw",
|
||||
"kind": "hook",
|
||||
"seam": "after_tool_call",
|
||||
"status": "ready",
|
||||
"blocker": null,
|
||||
"assertions": [
|
||||
"hook payload and return value are captured"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"hook": "after_tool_call",
|
||||
"fixture": "opik-openclaw"
|
||||
},
|
||||
"syntheticContext": {
|
||||
"hook": "after_tool_call",
|
||||
"fixture": "opik-openclaw"
|
||||
},
|
||||
"source": "plugins/opik-openclaw/src/service/hooks/tool.ts:100"
|
||||
},
|
||||
{
|
||||
"id": "hook.agent_end:opik-openclaw:plugins-opik-openclaw-src-service-ts-560",
|
||||
"fixture": "opik-openclaw",
|
||||
"kind": "hook",
|
||||
"seam": "agent_end",
|
||||
"status": "ready",
|
||||
"blocker": null,
|
||||
"assertions": [
|
||||
"final conversation payload is redacted as expected",
|
||||
"agent id and run metadata are present"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"runId": "run-fixture",
|
||||
"agentId": "agent-fixture",
|
||||
"conversationId": "conversation-fixture",
|
||||
"status": "completed",
|
||||
"transcript": [
|
||||
{
|
||||
"role": "assistant",
|
||||
"content": "[redacted fixture output]"
|
||||
}
|
||||
]
|
||||
},
|
||||
"syntheticContext": {
|
||||
"runId": "run-fixture",
|
||||
"agentId": "agent-fixture",
|
||||
"sessionId": "session-fixture",
|
||||
"channelId": "fixture-channel"
|
||||
},
|
||||
"source": "plugins/opik-openclaw/src/service.ts:560"
|
||||
},
|
||||
{
|
||||
"id": "hook.before_tool_call:opik-openclaw:plugins-opik-openclaw-src-service-hooks-tool-ts-34",
|
||||
"fixture": "opik-openclaw",
|
||||
"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",
|
||||
"toolCallId": "call-fixture"
|
||||
},
|
||||
"source": "plugins/opik-openclaw/src/service/hooks/tool.ts:34"
|
||||
},
|
||||
{
|
||||
"id": "hook.llm_input:opik-openclaw:plugins-opik-openclaw-src-service-hooks-llm-ts-39",
|
||||
"fixture": "opik-openclaw",
|
||||
"kind": "hook",
|
||||
"seam": "llm_input",
|
||||
"status": "ready",
|
||||
"blocker": null,
|
||||
"assertions": [
|
||||
"model input payload is redacted as expected",
|
||||
"model and agent metadata are present"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"agentId": "agent-fixture",
|
||||
"model": "gpt-5.4",
|
||||
"messages": [
|
||||
{
|
||||
"role": "user",
|
||||
"content": "[redacted fixture input]"
|
||||
}
|
||||
]
|
||||
},
|
||||
"syntheticContext": {
|
||||
"runId": "run-fixture",
|
||||
"agentId": "agent-fixture",
|
||||
"sessionId": "session-fixture",
|
||||
"channelId": "fixture-channel"
|
||||
},
|
||||
"source": "plugins/opik-openclaw/src/service/hooks/llm.ts:39"
|
||||
},
|
||||
{
|
||||
"id": "hook.llm_output:opik-openclaw:plugins-opik-openclaw-src-service-hooks-llm-ts-150",
|
||||
"fixture": "opik-openclaw",
|
||||
"kind": "hook",
|
||||
"seam": "llm_output",
|
||||
"status": "ready",
|
||||
"blocker": null,
|
||||
"assertions": [
|
||||
"model output payload is redacted as expected",
|
||||
"model and agent metadata are present"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"agentId": "agent-fixture",
|
||||
"model": "gpt-5.4",
|
||||
"output": {
|
||||
"role": "assistant",
|
||||
"content": "[redacted fixture output]"
|
||||
}
|
||||
},
|
||||
"syntheticContext": {
|
||||
"runId": "run-fixture",
|
||||
"agentId": "agent-fixture",
|
||||
"sessionId": "session-fixture",
|
||||
"channelId": "fixture-channel"
|
||||
},
|
||||
"source": "plugins/opik-openclaw/src/service/hooks/llm.ts:150"
|
||||
},
|
||||
{
|
||||
"id": "hook.subagent_delivery_target:opik-openclaw:plugins-opik-openclaw-src-service-hooks-subagent-ts-147",
|
||||
"fixture": "opik-openclaw",
|
||||
"kind": "hook",
|
||||
"seam": "subagent_delivery_target",
|
||||
"status": "ready",
|
||||
"blocker": null,
|
||||
"assertions": [
|
||||
"target routing result is preserved",
|
||||
"parent/subagent metadata are present"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"childSessionKey": "child-session",
|
||||
"agentId": "agent-child",
|
||||
"label": "fixture child",
|
||||
"mode": "run",
|
||||
"requester": {
|
||||
"channel": "fixture-channel",
|
||||
"accountId": "fixture-account"
|
||||
}
|
||||
},
|
||||
"syntheticContext": {
|
||||
"runId": "run-fixture",
|
||||
"childSessionKey": "child-session",
|
||||
"requesterSessionKey": "parent-session"
|
||||
},
|
||||
"source": "plugins/opik-openclaw/src/service/hooks/subagent.ts:147"
|
||||
},
|
||||
{
|
||||
"id": "hook.subagent_ended:opik-openclaw:plugins-opik-openclaw-src-service-hooks-subagent-ts-222",
|
||||
"fixture": "opik-openclaw",
|
||||
"kind": "hook",
|
||||
"seam": "subagent_ended",
|
||||
"status": "ready",
|
||||
"blocker": null,
|
||||
"assertions": [
|
||||
"subagent completion payload is preserved",
|
||||
"status metadata is present"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"childSessionKey": "child-session",
|
||||
"agentId": "agent-child",
|
||||
"status": "completed"
|
||||
},
|
||||
"syntheticContext": {
|
||||
"runId": "run-fixture",
|
||||
"childSessionKey": "child-session",
|
||||
"requesterSessionKey": "parent-session"
|
||||
},
|
||||
"source": "plugins/opik-openclaw/src/service/hooks/subagent.ts:222"
|
||||
},
|
||||
{
|
||||
"id": "hook.subagent_spawned:opik-openclaw:plugins-opik-openclaw-src-service-hooks-subagent-ts-89",
|
||||
"fixture": "opik-openclaw",
|
||||
"kind": "hook",
|
||||
"seam": "subagent_spawned",
|
||||
"status": "ready",
|
||||
"blocker": null,
|
||||
"assertions": [
|
||||
"spawn payload is preserved",
|
||||
"parent/subagent metadata are present"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"childSessionKey": "child-session",
|
||||
"agentId": "agent-child",
|
||||
"label": "fixture child",
|
||||
"mode": "run"
|
||||
},
|
||||
"syntheticContext": {
|
||||
"runId": "run-fixture",
|
||||
"childSessionKey": "child-session",
|
||||
"requesterSessionKey": "parent-session"
|
||||
},
|
||||
"source": "plugins/opik-openclaw/src/service/hooks/subagent.ts:89"
|
||||
},
|
||||
{
|
||||
"id": "hook.subagent_spawning:opik-openclaw:plugins-opik-openclaw-src-service-hooks-subagent-ts-38",
|
||||
"fixture": "opik-openclaw",
|
||||
"kind": "hook",
|
||||
"seam": "subagent_spawning",
|
||||
"status": "ready",
|
||||
"blocker": null,
|
||||
"assertions": [
|
||||
"hook payload and return value are captured"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"hook": "subagent_spawning",
|
||||
"fixture": "opik-openclaw"
|
||||
},
|
||||
"syntheticContext": {
|
||||
"hook": "subagent_spawning",
|
||||
"fixture": "opik-openclaw"
|
||||
},
|
||||
"source": "plugins/opik-openclaw/src/service/hooks/subagent.ts:38"
|
||||
},
|
||||
{
|
||||
"id": "hook.tool_result_persist:opik-openclaw:plugins-opik-openclaw-src-service-ts-541",
|
||||
"fixture": "opik-openclaw",
|
||||
"kind": "hook",
|
||||
"seam": "tool_result_persist",
|
||||
"status": "ready",
|
||||
"blocker": null,
|
||||
"assertions": [
|
||||
"hook payload and return value are captured"
|
||||
],
|
||||
"syntheticEvent": {
|
||||
"hook": "tool_result_persist",
|
||||
"fixture": "opik-openclaw"
|
||||
},
|
||||
"syntheticContext": {
|
||||
"hook": "tool_result_persist",
|
||||
"fixture": "opik-openclaw"
|
||||
},
|
||||
"source": "plugins/opik-openclaw/src/service.ts:541"
|
||||
},
|
||||
{
|
||||
"id": "hook.inbound_claim:codex-app-server:plugins-codex-app-server-index-ts-25",
|
||||
"fixture": "codex-app-server",
|
||||
@ -711,6 +959,66 @@
|
||||
},
|
||||
"source": "plugins/mcp-adapter/index.ts:30"
|
||||
},
|
||||
{
|
||||
"id": "registration.registerCli:opik-openclaw:plugins-opik-openclaw-index-ts-17",
|
||||
"fixture": "opik-openclaw",
|
||||
"kind": "registration",
|
||||
"seam": "registerCli",
|
||||
"status": "ready",
|
||||
"blocker": null,
|
||||
"assertions": [
|
||||
"command name is stable",
|
||||
"argument schema is captured"
|
||||
],
|
||||
"syntheticArguments": [
|
||||
{
|
||||
"name": "fixture-command",
|
||||
"args": [
|
||||
{
|
||||
"name": "input",
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"execution": {
|
||||
"mode": "direct",
|
||||
"callableProperties": [
|
||||
"handler",
|
||||
"run",
|
||||
"execute"
|
||||
]
|
||||
},
|
||||
"source": "plugins/opik-openclaw/index.ts:17"
|
||||
},
|
||||
{
|
||||
"id": "registration.registerService:opik-openclaw:plugins-opik-openclaw-index-ts-16",
|
||||
"fixture": "opik-openclaw",
|
||||
"kind": "registration",
|
||||
"seam": "registerService",
|
||||
"status": "ready",
|
||||
"blocker": null,
|
||||
"assertions": [
|
||||
"service id is stable",
|
||||
"start/stop lifecycle handlers are captured"
|
||||
],
|
||||
"syntheticArguments": [
|
||||
{
|
||||
"name": "fixture-service",
|
||||
"start": "function",
|
||||
"stop": "function"
|
||||
}
|
||||
],
|
||||
"execution": {
|
||||
"mode": "lifecycle-opt-in",
|
||||
"callableProperties": [
|
||||
"start",
|
||||
"stop"
|
||||
],
|
||||
"option": "includeLifecycle"
|
||||
},
|
||||
"source": "plugins/opik-openclaw/index.ts:16"
|
||||
},
|
||||
{
|
||||
"id": "registration.definePluginEntry:clawmetry:plugins-clawmetry-clawhub-plugin-index-ts-4",
|
||||
"fixture": "clawmetry",
|
||||
|
||||
@ -6,14 +6,14 @@ Generated: deterministic
|
||||
|
||||
| Metric | Value |
|
||||
| ------------------- | ----- |
|
||||
| Fixtures | 11 |
|
||||
| Probes | 36 |
|
||||
| Hook probes | 8 |
|
||||
| Registration probes | 28 |
|
||||
| Ready | 36 |
|
||||
| Fixtures | 12 |
|
||||
| Probes | 48 |
|
||||
| Hook probes | 18 |
|
||||
| Registration probes | 30 |
|
||||
| Ready | 48 |
|
||||
| Blocked | 0 |
|
||||
| Direct execution | 19 |
|
||||
| Opt-in execution | 6 |
|
||||
| Direct execution | 20 |
|
||||
| Opt-in execution | 7 |
|
||||
| Metadata-only | 3 |
|
||||
|
||||
## Probe Inventory
|
||||
@ -27,6 +27,16 @@ Generated: deterministic
|
||||
| wecom | hook | subagent_spawned | ready | hook-direct | plugins/wecom/index.js:62 | spawn payload is preserved; parent/subagent metadata are present |
|
||||
| llm-trace-phoenix | hook | llm_input | ready | hook-direct | plugins/llm-trace-phoenix/index.ts:154 | model input payload is redacted as expected; model and agent metadata are present |
|
||||
| llm-trace-phoenix | hook | llm_output | ready | hook-direct | plugins/llm-trace-phoenix/index.ts:168 | model output payload is redacted as expected; model and agent metadata are present |
|
||||
| opik-openclaw | hook | after_tool_call | ready | hook-direct | plugins/opik-openclaw/src/service/hooks/tool.ts:100 | hook payload and return value are captured |
|
||||
| opik-openclaw | hook | agent_end | ready | hook-direct | plugins/opik-openclaw/src/service.ts:560 | final conversation payload is redacted as expected; agent id and run metadata are present |
|
||||
| opik-openclaw | hook | before_tool_call | ready | hook-direct | plugins/opik-openclaw/src/service/hooks/tool.ts:34 | block/allow return shapes are preserved; terminal and approval metadata are present |
|
||||
| opik-openclaw | hook | llm_input | ready | hook-direct | plugins/opik-openclaw/src/service/hooks/llm.ts:39 | model input payload is redacted as expected; model and agent metadata are present |
|
||||
| opik-openclaw | hook | llm_output | ready | hook-direct | plugins/opik-openclaw/src/service/hooks/llm.ts:150 | model output payload is redacted as expected; model and agent metadata are present |
|
||||
| opik-openclaw | hook | subagent_delivery_target | ready | hook-direct | plugins/opik-openclaw/src/service/hooks/subagent.ts:147 | target routing result is preserved; parent/subagent metadata are present |
|
||||
| opik-openclaw | hook | subagent_ended | ready | hook-direct | plugins/opik-openclaw/src/service/hooks/subagent.ts:222 | subagent completion payload is preserved; status metadata is present |
|
||||
| opik-openclaw | hook | subagent_spawned | ready | hook-direct | plugins/opik-openclaw/src/service/hooks/subagent.ts:89 | spawn payload is preserved; parent/subagent metadata are present |
|
||||
| opik-openclaw | hook | subagent_spawning | ready | hook-direct | plugins/opik-openclaw/src/service/hooks/subagent.ts:38 | hook payload and return value are captured |
|
||||
| opik-openclaw | hook | tool_result_persist | ready | hook-direct | plugins/opik-openclaw/src/service.ts:541 | hook payload and return value are captured |
|
||||
| codex-app-server | hook | inbound_claim | ready | hook-direct | plugins/codex-app-server/index.ts:25 | claim payload preserves channel/source identity; routing metadata is present |
|
||||
| agentchat | registration | defineChannelPluginEntry | ready | metadata-only | plugins/agentchat/integrations/openclaw-channel/src/channel.ts:333 | channel id is stable; setup/config schema can be read; message envelope metadata is preserved |
|
||||
| wecom | registration | registerChannel | ready | channel-opt-in | plugins/wecom/index.js:27 | channel id is stable; inbound/outbound envelope shape is captured; sender metadata is preserved |
|
||||
@ -44,6 +54,8 @@ Generated: deterministic
|
||||
| hasdata | registration | registerTool | ready | direct | plugins/hasdata/src/index.ts:43 | tool name is stable; input schema is captured; result shape metadata is captured |
|
||||
| mcp-adapter | registration | registerService | ready | lifecycle-opt-in | plugins/mcp-adapter/index.ts:15 | service id is stable; start/stop lifecycle handlers are captured |
|
||||
| mcp-adapter | registration | registerTool | ready | direct | plugins/mcp-adapter/index.ts:30 | tool name is stable; input schema is captured; result shape metadata is captured |
|
||||
| opik-openclaw | registration | registerCli | ready | direct | plugins/opik-openclaw/index.ts:17 | command name is stable; argument schema is captured |
|
||||
| opik-openclaw | registration | registerService | ready | lifecycle-opt-in | plugins/opik-openclaw/index.ts:16 | service id is stable; start/stop lifecycle handlers are captured |
|
||||
| clawmetry | registration | definePluginEntry | ready | metadata-only | plugins/clawmetry/clawhub-plugin/index.ts:4 | entrypoint register function is callable; entrypoint metadata is preserved |
|
||||
| clawmetry | registration | registerService | ready | lifecycle-opt-in | plugins/clawmetry/clawhub-plugin/index.ts:9 | service id is stable; start/stop lifecycle handlers are captured |
|
||||
| codex-app-server | registration | registerCommand | ready | direct | plugins/codex-app-server/index.ts:48 | command id is stable; interactive command payload is captured |
|
||||
|
||||
@ -10,14 +10,15 @@
|
||||
"configuredPath": "../openclaw"
|
||||
},
|
||||
"summary": {
|
||||
"fixtureCount": 11,
|
||||
"entrypointCount": 13,
|
||||
"installStepCount": 9,
|
||||
"buildStepCount": 3,
|
||||
"artifactStepCount": 13,
|
||||
"captureStepCount": 13,
|
||||
"syntheticProbeStepCount": 13,
|
||||
"targetOpenClawLinkStepCount": 8,
|
||||
"fixtureCount": 12,
|
||||
"entrypointCount": 15,
|
||||
"installStepCount": 10,
|
||||
"auditStepCount": 10,
|
||||
"buildStepCount": 4,
|
||||
"artifactStepCount": 15,
|
||||
"captureStepCount": 15,
|
||||
"syntheticProbeStepCount": 15,
|
||||
"targetOpenClawLinkStepCount": 10,
|
||||
"missingBuildScriptCount": 0,
|
||||
"sdkAliasRequiredCount": 1
|
||||
},
|
||||
@ -203,6 +204,13 @@
|
||||
"cwd": ".crabpot/workspaces/wecom",
|
||||
"reason": "install runtime dependencies without mutating the pinned submodule"
|
||||
},
|
||||
{
|
||||
"kind": "audit",
|
||||
"command": "npm audit --json > ../../results/wecom/package-audit.json || true",
|
||||
"cwd": ".crabpot/workspaces/wecom",
|
||||
"artifactPath": ".crabpot/results/wecom/package-audit.json",
|
||||
"reason": "capture package-manager dependency audit metadata as warning-only plugin upstream risk"
|
||||
},
|
||||
{
|
||||
"kind": "capture",
|
||||
"command": "CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/run-cold-import-capture.mjs ./index.js --output ../../results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.capture.json",
|
||||
@ -270,6 +278,13 @@
|
||||
"cwd": ".crabpot/workspaces/a2a-gateway",
|
||||
"reason": "install runtime dependencies without mutating the pinned submodule"
|
||||
},
|
||||
{
|
||||
"kind": "audit",
|
||||
"command": "npm audit --json > ../../results/a2a-gateway/package-audit.json || true",
|
||||
"cwd": ".crabpot/workspaces/a2a-gateway",
|
||||
"artifactPath": ".crabpot/results/a2a-gateway/package-audit.json",
|
||||
"reason": "capture package-manager dependency audit metadata as warning-only plugin upstream risk"
|
||||
},
|
||||
{
|
||||
"kind": "capture",
|
||||
"command": "CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --output ../../results/a2a-gateway/cold-import-extension-a2a-gateway-plugins-a2a-gateway-index-ts.capture.json",
|
||||
@ -350,6 +365,13 @@
|
||||
"cwd": ".crabpot/workspaces/hasdata",
|
||||
"reason": "install runtime dependencies without mutating the pinned submodule"
|
||||
},
|
||||
{
|
||||
"kind": "audit",
|
||||
"command": "npm audit --json > ../../results/hasdata/package-audit.json || true",
|
||||
"cwd": ".crabpot/workspaces/hasdata",
|
||||
"artifactPath": ".crabpot/results/hasdata/package-audit.json",
|
||||
"reason": "capture package-manager dependency audit metadata as warning-only plugin upstream risk"
|
||||
},
|
||||
{
|
||||
"kind": "capture",
|
||||
"command": "CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./src/index.ts --output ../../results/hasdata/cold-import-extension-hasdata-plugins-hasdata-src-index-ts.capture.json",
|
||||
@ -417,6 +439,13 @@
|
||||
"cwd": ".crabpot/workspaces/mcp-adapter",
|
||||
"reason": "install runtime dependencies without mutating the pinned submodule"
|
||||
},
|
||||
{
|
||||
"kind": "audit",
|
||||
"command": "npm audit --json > ../../results/mcp-adapter/package-audit.json || true",
|
||||
"cwd": ".crabpot/workspaces/mcp-adapter",
|
||||
"artifactPath": ".crabpot/results/mcp-adapter/package-audit.json",
|
||||
"reason": "capture package-manager dependency audit metadata as warning-only plugin upstream risk"
|
||||
},
|
||||
{
|
||||
"kind": "capture",
|
||||
"command": "CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --output ../../results/mcp-adapter/cold-import-extension-mcp-adapter-plugins-mcp-adapter-index-ts.capture.json",
|
||||
@ -496,6 +525,150 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "opik-openclaw",
|
||||
"entrypoints": [
|
||||
{
|
||||
"id": "cold-import.extension:opik-openclaw:plugins-opik-openclaw-index-ts",
|
||||
"fixture": "opik-openclaw",
|
||||
"packagePath": "plugins/opik-openclaw/package.json",
|
||||
"packageName": "@opik/opik-openclaw",
|
||||
"entrypoint": "plugins/opik-openclaw/index.ts",
|
||||
"status": "ts-loader-required",
|
||||
"packageManager": "npm",
|
||||
"lockfile": "plugins/opik-openclaw/package-lock.json",
|
||||
"requiredCapabilities": [
|
||||
"capture-shim",
|
||||
"dependency-install",
|
||||
"synthetic-probes",
|
||||
"target-openclaw-link",
|
||||
"ts-loader"
|
||||
],
|
||||
"blockers": [
|
||||
{
|
||||
"code": "ts-loader-required",
|
||||
"message": "entrypoint is TypeScript source and needs a loader or build step before Node cold import",
|
||||
"evidence": "plugins/opik-openclaw/index.ts"
|
||||
},
|
||||
{
|
||||
"code": "dependency-install-required",
|
||||
"message": "package declares runtime dependencies that must be installed before cold import",
|
||||
"evidence": "@clack/prompts, opik, zod, openclaw"
|
||||
}
|
||||
],
|
||||
"steps": [
|
||||
{
|
||||
"kind": "prepare",
|
||||
"command": "rsync -a --delete plugins/opik-openclaw/ .crabpot/workspaces/opik-openclaw/",
|
||||
"cwd": ".",
|
||||
"reason": "copy fixture package into an isolated mutable workspace"
|
||||
},
|
||||
{
|
||||
"kind": "prepare-artifacts",
|
||||
"command": "mkdir -p .crabpot/results/opik-openclaw",
|
||||
"cwd": ".",
|
||||
"reason": "create a stable result directory for capture and synthetic probe artifacts"
|
||||
},
|
||||
{
|
||||
"kind": "link-openclaw",
|
||||
"command": "npm pkg set dependencies.openclaw=\"file:../../../../openclaw\"",
|
||||
"cwd": ".crabpot/workspaces/opik-openclaw",
|
||||
"reason": "link the plugin's openclaw peer dependency to the target checkout under test"
|
||||
},
|
||||
{
|
||||
"kind": "install",
|
||||
"command": "npm install --ignore-scripts",
|
||||
"cwd": ".crabpot/workspaces/opik-openclaw",
|
||||
"reason": "install runtime dependencies without mutating the pinned submodule"
|
||||
},
|
||||
{
|
||||
"kind": "audit",
|
||||
"command": "npm audit --json > ../../results/opik-openclaw/package-audit.json || true",
|
||||
"cwd": ".crabpot/workspaces/opik-openclaw",
|
||||
"artifactPath": ".crabpot/results/opik-openclaw/package-audit.json",
|
||||
"reason": "capture package-manager dependency audit metadata as warning-only plugin upstream risk"
|
||||
},
|
||||
{
|
||||
"kind": "capture",
|
||||
"command": "CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --output ../../results/opik-openclaw/cold-import-extension-opik-openclaw-plugins-opik-openclaw-index-ts.capture.json",
|
||||
"cwd": ".crabpot/workspaces/opik-openclaw",
|
||||
"artifactPath": ".crabpot/results/opik-openclaw/cold-import-extension-opik-openclaw-plugins-opik-openclaw-index-ts.capture.json",
|
||||
"reason": "cold import the entrypoint against the capture shim"
|
||||
},
|
||||
{
|
||||
"kind": "synthetic-probe",
|
||||
"command": "CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/synthetic-probes.mjs --entrypoint ./index.ts --output ../../results/opik-openclaw/cold-import-extension-opik-openclaw-plugins-opik-openclaw-index-ts.synthetic.json",
|
||||
"cwd": ".crabpot/workspaces/opik-openclaw",
|
||||
"artifactPath": ".crabpot/results/opik-openclaw/cold-import-extension-opik-openclaw-plugins-opik-openclaw-index-ts.synthetic.json",
|
||||
"reason": "invoke retained hook and registration handlers with synthetic payloads"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "cold-import.runtimeExtension:opik-openclaw:plugins-opik-openclaw-dist-index-js",
|
||||
"fixture": "opik-openclaw",
|
||||
"packagePath": "plugins/opik-openclaw/package.json",
|
||||
"packageName": "@opik/opik-openclaw",
|
||||
"entrypoint": "plugins/opik-openclaw/dist/index.js",
|
||||
"status": "build-required",
|
||||
"packageManager": "npm",
|
||||
"lockfile": "plugins/opik-openclaw/package-lock.json",
|
||||
"requiredCapabilities": [
|
||||
"build",
|
||||
"capture-shim",
|
||||
"synthetic-probes",
|
||||
"target-openclaw-link"
|
||||
],
|
||||
"blockers": [
|
||||
{
|
||||
"code": "build-required",
|
||||
"message": "entrypoint points at build output that is absent in the fixture checkout",
|
||||
"evidence": "plugins/opik-openclaw/dist/index.js"
|
||||
}
|
||||
],
|
||||
"steps": [
|
||||
{
|
||||
"kind": "prepare",
|
||||
"command": "rsync -a --delete plugins/opik-openclaw/ .crabpot/workspaces/opik-openclaw/",
|
||||
"cwd": ".",
|
||||
"reason": "copy fixture package into an isolated mutable workspace"
|
||||
},
|
||||
{
|
||||
"kind": "prepare-artifacts",
|
||||
"command": "mkdir -p .crabpot/results/opik-openclaw",
|
||||
"cwd": ".",
|
||||
"reason": "create a stable result directory for capture and synthetic probe artifacts"
|
||||
},
|
||||
{
|
||||
"kind": "link-openclaw",
|
||||
"command": "npm pkg set dependencies.openclaw=\"file:../../../../openclaw\"",
|
||||
"cwd": ".crabpot/workspaces/opik-openclaw",
|
||||
"reason": "link the plugin's openclaw peer dependency to the target checkout under test"
|
||||
},
|
||||
{
|
||||
"kind": "build",
|
||||
"command": "npm run build",
|
||||
"cwd": ".crabpot/workspaces/opik-openclaw",
|
||||
"reason": "produce missing OpenClaw build entrypoint"
|
||||
},
|
||||
{
|
||||
"kind": "capture",
|
||||
"command": "CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/run-cold-import-capture.mjs ./dist/index.js --output ../../results/opik-openclaw/cold-import-runtimeExtension-opik-openclaw-plugins-opik-openclaw-dist-index-js.capture.json",
|
||||
"cwd": ".crabpot/workspaces/opik-openclaw",
|
||||
"artifactPath": ".crabpot/results/opik-openclaw/cold-import-runtimeExtension-opik-openclaw-plugins-opik-openclaw-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 --output ../../results/opik-openclaw/cold-import-runtimeExtension-opik-openclaw-plugins-opik-openclaw-dist-index-js.synthetic.json",
|
||||
"cwd": ".crabpot/workspaces/opik-openclaw",
|
||||
"artifactPath": ".crabpot/results/opik-openclaw/cold-import-runtimeExtension-opik-openclaw-plugins-opik-openclaw-dist-index-js.synthetic.json",
|
||||
"reason": "invoke retained hook and registration handlers with synthetic payloads"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "clawmetry",
|
||||
"entrypoints": [
|
||||
@ -545,6 +718,13 @@
|
||||
"cwd": ".crabpot/workspaces/clawmetry",
|
||||
"reason": "install runtime dependencies without mutating the pinned submodule"
|
||||
},
|
||||
{
|
||||
"kind": "audit",
|
||||
"command": "npm audit --json > ../../results/clawmetry/package-audit.json || true",
|
||||
"cwd": ".crabpot/workspaces/clawmetry",
|
||||
"artifactPath": ".crabpot/results/clawmetry/package-audit.json",
|
||||
"reason": "capture package-manager dependency audit metadata as warning-only plugin upstream risk"
|
||||
},
|
||||
{
|
||||
"kind": "capture",
|
||||
"command": "CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --output ../../results/clawmetry/cold-import-extension-clawmetry-plugins-clawmetry-clawhub-plugin-index-ts.capture.json",
|
||||
@ -691,6 +871,13 @@
|
||||
"cwd": ".crabpot/workspaces/codex-app-server",
|
||||
"reason": "install runtime dependencies without mutating the pinned submodule"
|
||||
},
|
||||
{
|
||||
"kind": "audit",
|
||||
"command": "pnpm audit --json > ../../results/codex-app-server/package-audit.json || true",
|
||||
"cwd": ".crabpot/workspaces/codex-app-server",
|
||||
"artifactPath": ".crabpot/results/codex-app-server/package-audit.json",
|
||||
"reason": "capture package-manager dependency audit metadata as warning-only plugin upstream risk"
|
||||
},
|
||||
{
|
||||
"kind": "capture",
|
||||
"command": "CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --output ../../results/codex-app-server/cold-import-extension-codex-app-server-plugins-codex-app-server-index-ts.capture.json",
|
||||
@ -771,6 +958,13 @@
|
||||
"cwd": ".crabpot/workspaces/web-search-plus",
|
||||
"reason": "install runtime dependencies without mutating the pinned submodule"
|
||||
},
|
||||
{
|
||||
"kind": "audit",
|
||||
"command": "npm audit --json > ../../results/web-search-plus/package-audit.json || true",
|
||||
"cwd": ".crabpot/workspaces/web-search-plus",
|
||||
"artifactPath": ".crabpot/results/web-search-plus/package-audit.json",
|
||||
"reason": "capture package-manager dependency audit metadata as warning-only plugin upstream risk"
|
||||
},
|
||||
{
|
||||
"kind": "capture",
|
||||
"command": "CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --output ../../results/web-search-plus/cold-import-extension-web-search-plus-plugins-web-search-plus-index-ts.capture.json",
|
||||
@ -845,6 +1039,13 @@
|
||||
"cwd": ".crabpot/workspaces/apify",
|
||||
"reason": "install runtime dependencies without mutating the pinned submodule"
|
||||
},
|
||||
{
|
||||
"kind": "audit",
|
||||
"command": "npm audit --json > ../../results/apify/package-audit.json || true",
|
||||
"cwd": ".crabpot/workspaces/apify",
|
||||
"artifactPath": ".crabpot/results/apify/package-audit.json",
|
||||
"reason": "capture package-manager dependency audit metadata as warning-only plugin upstream risk"
|
||||
},
|
||||
{
|
||||
"kind": "capture",
|
||||
"command": "CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./src/index.ts --output ../../results/apify/cold-import-extension-apify-plugins-apify-src-index-ts.capture.json",
|
||||
@ -919,6 +1120,13 @@
|
||||
"cwd": ".crabpot/workspaces/inworld-tts",
|
||||
"reason": "install runtime dependencies without mutating the pinned submodule"
|
||||
},
|
||||
{
|
||||
"kind": "audit",
|
||||
"command": "pnpm audit --json > ../../results/inworld-tts/package-audit.json || true",
|
||||
"cwd": ".crabpot/workspaces/inworld-tts",
|
||||
"artifactPath": ".crabpot/results/inworld-tts/package-audit.json",
|
||||
"reason": "capture package-manager dependency audit metadata as warning-only plugin upstream risk"
|
||||
},
|
||||
{
|
||||
"kind": "capture",
|
||||
"command": "CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --output ../../results/inworld-tts/cold-import-extension-inworld-tts-plugins-inworld-tts-index-ts.capture.json",
|
||||
|
||||
@ -8,31 +8,34 @@ Opt-in: CRABPOT_EXECUTE_ISOLATED=1
|
||||
|
||||
| Metric | Value |
|
||||
| -------------------------- | ----- |
|
||||
| Fixtures | 11 |
|
||||
| Entrypoints | 13 |
|
||||
| Artifact dirs | 13 |
|
||||
| Install steps | 9 |
|
||||
| Build steps | 3 |
|
||||
| Capture steps | 13 |
|
||||
| Synthetic probe steps | 13 |
|
||||
| Target OpenClaw link steps | 8 |
|
||||
| Fixtures | 12 |
|
||||
| Entrypoints | 15 |
|
||||
| Artifact dirs | 15 |
|
||||
| Install steps | 10 |
|
||||
| Audit steps | 10 |
|
||||
| Build steps | 4 |
|
||||
| Capture steps | 15 |
|
||||
| Synthetic probe steps | 15 |
|
||||
| Target OpenClaw link steps | 10 |
|
||||
| Missing build scripts | 0 |
|
||||
| SDK alias required | 1 |
|
||||
|
||||
## Entrypoint Workspaces
|
||||
|
||||
| Fixture | PM | Status | Entrypoint | Capabilities | Steps |
|
||||
| ----------------- | ---- | --------------------------- | ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| agentchat | pnpm | build-required | plugins/agentchat/integrations/openclaw-channel/dist/index.js | build, capture-shim, synthetic-probes, target-openclaw-link | prepare: rsync -a --delete plugins/agentchat/integrations/openclaw-channel/ .crabpot/workspaces/agentchat/; prepare-artifacts: mkdir -p .crabpot/results/agentchat; link-openclaw: pnpm pkg set dependencies.openclaw="file:../../../../openclaw"; build: pnpm run build; capture: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/run-cold-import-capture.mjs ./dist/index.js --output ../../results/agentchat/cold-import-extension-agentchat-plugins-agentchat-integrations-openclaw-channel-dist-index-js.capture.json -> .crabpot/results/agentchat/cold-import-extension-agentchat-plugins-agentchat-integrations-openclaw-channel-dist-index-js.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/synthetic-probes.mjs --entrypoint ./dist/index.js --output ../../results/agentchat/cold-import-extension-agentchat-plugins-agentchat-integrations-openclaw-channel-dist-index-js.synthetic.json -> .crabpot/results/agentchat/cold-import-extension-agentchat-plugins-agentchat-integrations-openclaw-channel-dist-index-js.synthetic.json |
|
||||
| agentchat | pnpm | build-required | plugins/agentchat/integrations/openclaw-channel/dist/setup-entry.js | build, capture-shim, synthetic-probes, target-openclaw-link | prepare: rsync -a --delete plugins/agentchat/integrations/openclaw-channel/ .crabpot/workspaces/agentchat/; prepare-artifacts: mkdir -p .crabpot/results/agentchat; link-openclaw: pnpm pkg set dependencies.openclaw="file:../../../../openclaw"; build: pnpm run build; capture: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/run-cold-import-capture.mjs ./dist/setup-entry.js --output ../../results/agentchat/cold-import-setupEntry-agentchat-plugins-agentchat-integrations-openclaw-channel-dist-setup-entry-js.capture.json -> .crabpot/results/agentchat/cold-import-setupEntry-agentchat-plugins-agentchat-integrations-openclaw-channel-dist-setup-entry-js.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/synthetic-probes.mjs --entrypoint ./dist/setup-entry.js --output ../../results/agentchat/cold-import-setupEntry-agentchat-plugins-agentchat-integrations-openclaw-channel-dist-setup-entry-js.synthetic.json -> .crabpot/results/agentchat/cold-import-setupEntry-agentchat-plugins-agentchat-integrations-openclaw-channel-dist-setup-entry-js.synthetic.json |
|
||||
| wecom | npm | dependency-install-required | plugins/wecom/index.js | capture-shim, dependency-install, synthetic-probes, target-openclaw-link | prepare: rsync -a --delete plugins/wecom/ .crabpot/workspaces/wecom/; prepare-artifacts: mkdir -p .crabpot/results/wecom; link-openclaw: npm pkg set dependencies.openclaw="file:../../../../openclaw"; install: npm install --ignore-scripts; capture: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/run-cold-import-capture.mjs ./index.js --output ../../results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.capture.json -> .crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/synthetic-probes.mjs --entrypoint ./index.js --output ../../results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json -> .crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json |
|
||||
| a2a-gateway | npm | ts-loader-required | plugins/a2a-gateway/index.ts | capture-shim, dependency-install, synthetic-probes, ts-loader | prepare: rsync -a --delete plugins/a2a-gateway/ .crabpot/workspaces/a2a-gateway/; prepare-artifacts: mkdir -p .crabpot/results/a2a-gateway; install: npm install --ignore-scripts; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --output ../../results/a2a-gateway/cold-import-extension-a2a-gateway-plugins-a2a-gateway-index-ts.capture.json -> .crabpot/results/a2a-gateway/cold-import-extension-a2a-gateway-plugins-a2a-gateway-index-ts.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/synthetic-probes.mjs --entrypoint ./index.ts --output ../../results/a2a-gateway/cold-import-extension-a2a-gateway-plugins-a2a-gateway-index-ts.synthetic.json -> .crabpot/results/a2a-gateway/cold-import-extension-a2a-gateway-plugins-a2a-gateway-index-ts.synthetic.json |
|
||||
| hasdata | npm | ts-loader-required | plugins/hasdata/src/index.ts | capture-shim, dependency-install, side-effect-sandbox, synthetic-probes, target-openclaw-link, ts-loader | prepare: rsync -a --delete plugins/hasdata/ .crabpot/workspaces/hasdata/; prepare-artifacts: mkdir -p .crabpot/results/hasdata; link-openclaw: npm pkg set dependencies.openclaw="file:../../../../openclaw"; install: npm install --ignore-scripts; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./src/index.ts --output ../../results/hasdata/cold-import-extension-hasdata-plugins-hasdata-src-index-ts.capture.json -> .crabpot/results/hasdata/cold-import-extension-hasdata-plugins-hasdata-src-index-ts.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/synthetic-probes.mjs --entrypoint ./src/index.ts --output ../../results/hasdata/cold-import-extension-hasdata-plugins-hasdata-src-index-ts.synthetic.json -> .crabpot/results/hasdata/cold-import-extension-hasdata-plugins-hasdata-src-index-ts.synthetic.json |
|
||||
| mcp-adapter | npm | ts-loader-required | plugins/mcp-adapter/index.ts | capture-shim, dependency-install, synthetic-probes, ts-loader | prepare: rsync -a --delete plugins/mcp-adapter/ .crabpot/workspaces/mcp-adapter/; prepare-artifacts: mkdir -p .crabpot/results/mcp-adapter; install: npm install --ignore-scripts; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --output ../../results/mcp-adapter/cold-import-extension-mcp-adapter-plugins-mcp-adapter-index-ts.capture.json -> .crabpot/results/mcp-adapter/cold-import-extension-mcp-adapter-plugins-mcp-adapter-index-ts.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/synthetic-probes.mjs --entrypoint ./index.ts --output ../../results/mcp-adapter/cold-import-extension-mcp-adapter-plugins-mcp-adapter-index-ts.synthetic.json -> .crabpot/results/mcp-adapter/cold-import-extension-mcp-adapter-plugins-mcp-adapter-index-ts.synthetic.json |
|
||||
| llm-trace-phoenix | npm | ts-loader-required | plugins/llm-trace-phoenix/index.ts | capture-shim, side-effect-sandbox, synthetic-probes, ts-loader | prepare: rsync -a --delete plugins/llm-trace-phoenix/ .crabpot/workspaces/llm-trace-phoenix/; prepare-artifacts: mkdir -p .crabpot/results/llm-trace-phoenix; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --output ../../results/llm-trace-phoenix/cold-import-extension-llm-trace-phoenix-plugins-llm-trace-phoenix-index-ts.capture.json -> .crabpot/results/llm-trace-phoenix/cold-import-extension-llm-trace-phoenix-plugins-llm-trace-phoenix-index-ts.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/synthetic-probes.mjs --entrypoint ./index.ts --output ../../results/llm-trace-phoenix/cold-import-extension-llm-trace-phoenix-plugins-llm-trace-phoenix-index-ts.synthetic.json -> .crabpot/results/llm-trace-phoenix/cold-import-extension-llm-trace-phoenix-plugins-llm-trace-phoenix-index-ts.synthetic.json |
|
||||
| clawmetry | npm | ts-loader-required | plugins/clawmetry/clawhub-plugin/index.ts | capture-shim, dependency-install, synthetic-probes, ts-loader | prepare: rsync -a --delete plugins/clawmetry/clawhub-plugin/ .crabpot/workspaces/clawmetry/; prepare-artifacts: mkdir -p .crabpot/results/clawmetry; install: npm install --ignore-scripts; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --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 --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 | build-required | plugins/clawmetry/clawhub-plugin/dist/index.js | build, capture-shim, synthetic-probes | prepare: 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 --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 --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 | plugins/codex-app-server/index.ts | capture-shim, dependency-install, sdk-alias-compat, synthetic-probes, target-openclaw-link, ts-loader | prepare: 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; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --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 --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 | plugins/web-search-plus/index.ts | capture-shim, dependency-install, side-effect-sandbox, synthetic-probes, target-openclaw-link, ts-loader | prepare: 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"; install: npm install --ignore-scripts; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --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 --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 | plugins/apify/src/index.ts | capture-shim, dependency-install, synthetic-probes, target-openclaw-link, ts-loader | prepare: 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; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./src/index.ts --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 --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 | plugins/inworld-tts/index.ts | capture-shim, dependency-install, synthetic-probes, target-openclaw-link, ts-loader | prepare: 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"; install: pnpm install --ignore-scripts; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --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 --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 |
|
||||
| Fixture | PM | Status | Entrypoint | Capabilities | Steps |
|
||||
| ----------------- | ---- | --------------------------- | ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| agentchat | pnpm | build-required | plugins/agentchat/integrations/openclaw-channel/dist/index.js | build, capture-shim, synthetic-probes, target-openclaw-link | prepare: rsync -a --delete plugins/agentchat/integrations/openclaw-channel/ .crabpot/workspaces/agentchat/; prepare-artifacts: mkdir -p .crabpot/results/agentchat; link-openclaw: pnpm pkg set dependencies.openclaw="file:../../../../openclaw"; build: pnpm run build; capture: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/run-cold-import-capture.mjs ./dist/index.js --output ../../results/agentchat/cold-import-extension-agentchat-plugins-agentchat-integrations-openclaw-channel-dist-index-js.capture.json -> .crabpot/results/agentchat/cold-import-extension-agentchat-plugins-agentchat-integrations-openclaw-channel-dist-index-js.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/synthetic-probes.mjs --entrypoint ./dist/index.js --output ../../results/agentchat/cold-import-extension-agentchat-plugins-agentchat-integrations-openclaw-channel-dist-index-js.synthetic.json -> .crabpot/results/agentchat/cold-import-extension-agentchat-plugins-agentchat-integrations-openclaw-channel-dist-index-js.synthetic.json |
|
||||
| agentchat | pnpm | build-required | plugins/agentchat/integrations/openclaw-channel/dist/setup-entry.js | build, capture-shim, synthetic-probes, target-openclaw-link | prepare: rsync -a --delete plugins/agentchat/integrations/openclaw-channel/ .crabpot/workspaces/agentchat/; prepare-artifacts: mkdir -p .crabpot/results/agentchat; link-openclaw: pnpm pkg set dependencies.openclaw="file:../../../../openclaw"; build: pnpm run build; capture: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/run-cold-import-capture.mjs ./dist/setup-entry.js --output ../../results/agentchat/cold-import-setupEntry-agentchat-plugins-agentchat-integrations-openclaw-channel-dist-setup-entry-js.capture.json -> .crabpot/results/agentchat/cold-import-setupEntry-agentchat-plugins-agentchat-integrations-openclaw-channel-dist-setup-entry-js.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/synthetic-probes.mjs --entrypoint ./dist/setup-entry.js --output ../../results/agentchat/cold-import-setupEntry-agentchat-plugins-agentchat-integrations-openclaw-channel-dist-setup-entry-js.synthetic.json -> .crabpot/results/agentchat/cold-import-setupEntry-agentchat-plugins-agentchat-integrations-openclaw-channel-dist-setup-entry-js.synthetic.json |
|
||||
| wecom | npm | dependency-install-required | plugins/wecom/index.js | capture-shim, dependency-install, synthetic-probes, target-openclaw-link | prepare: rsync -a --delete plugins/wecom/ .crabpot/workspaces/wecom/; prepare-artifacts: mkdir -p .crabpot/results/wecom; link-openclaw: npm pkg set dependencies.openclaw="file:../../../../openclaw"; install: npm install --ignore-scripts; audit: npm audit --json > ../../results/wecom/package-audit.json || true -> .crabpot/results/wecom/package-audit.json; capture: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/run-cold-import-capture.mjs ./index.js --output ../../results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.capture.json -> .crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/synthetic-probes.mjs --entrypoint ./index.js --output ../../results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json -> .crabpot/results/wecom/cold-import-extension-wecom-plugins-wecom-index-js.synthetic.json |
|
||||
| a2a-gateway | npm | ts-loader-required | plugins/a2a-gateway/index.ts | capture-shim, dependency-install, synthetic-probes, ts-loader | prepare: rsync -a --delete plugins/a2a-gateway/ .crabpot/workspaces/a2a-gateway/; prepare-artifacts: mkdir -p .crabpot/results/a2a-gateway; install: npm install --ignore-scripts; audit: npm audit --json > ../../results/a2a-gateway/package-audit.json || true -> .crabpot/results/a2a-gateway/package-audit.json; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --output ../../results/a2a-gateway/cold-import-extension-a2a-gateway-plugins-a2a-gateway-index-ts.capture.json -> .crabpot/results/a2a-gateway/cold-import-extension-a2a-gateway-plugins-a2a-gateway-index-ts.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/synthetic-probes.mjs --entrypoint ./index.ts --output ../../results/a2a-gateway/cold-import-extension-a2a-gateway-plugins-a2a-gateway-index-ts.synthetic.json -> .crabpot/results/a2a-gateway/cold-import-extension-a2a-gateway-plugins-a2a-gateway-index-ts.synthetic.json |
|
||||
| hasdata | npm | ts-loader-required | plugins/hasdata/src/index.ts | capture-shim, dependency-install, side-effect-sandbox, synthetic-probes, target-openclaw-link, ts-loader | prepare: rsync -a --delete plugins/hasdata/ .crabpot/workspaces/hasdata/; prepare-artifacts: mkdir -p .crabpot/results/hasdata; link-openclaw: npm pkg set dependencies.openclaw="file:../../../../openclaw"; install: npm install --ignore-scripts; audit: npm audit --json > ../../results/hasdata/package-audit.json || true -> .crabpot/results/hasdata/package-audit.json; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./src/index.ts --output ../../results/hasdata/cold-import-extension-hasdata-plugins-hasdata-src-index-ts.capture.json -> .crabpot/results/hasdata/cold-import-extension-hasdata-plugins-hasdata-src-index-ts.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/synthetic-probes.mjs --entrypoint ./src/index.ts --output ../../results/hasdata/cold-import-extension-hasdata-plugins-hasdata-src-index-ts.synthetic.json -> .crabpot/results/hasdata/cold-import-extension-hasdata-plugins-hasdata-src-index-ts.synthetic.json |
|
||||
| mcp-adapter | npm | ts-loader-required | plugins/mcp-adapter/index.ts | capture-shim, dependency-install, synthetic-probes, ts-loader | prepare: rsync -a --delete plugins/mcp-adapter/ .crabpot/workspaces/mcp-adapter/; prepare-artifacts: mkdir -p .crabpot/results/mcp-adapter; install: npm install --ignore-scripts; audit: npm audit --json > ../../results/mcp-adapter/package-audit.json || true -> .crabpot/results/mcp-adapter/package-audit.json; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --output ../../results/mcp-adapter/cold-import-extension-mcp-adapter-plugins-mcp-adapter-index-ts.capture.json -> .crabpot/results/mcp-adapter/cold-import-extension-mcp-adapter-plugins-mcp-adapter-index-ts.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/synthetic-probes.mjs --entrypoint ./index.ts --output ../../results/mcp-adapter/cold-import-extension-mcp-adapter-plugins-mcp-adapter-index-ts.synthetic.json -> .crabpot/results/mcp-adapter/cold-import-extension-mcp-adapter-plugins-mcp-adapter-index-ts.synthetic.json |
|
||||
| llm-trace-phoenix | npm | ts-loader-required | plugins/llm-trace-phoenix/index.ts | capture-shim, side-effect-sandbox, synthetic-probes, ts-loader | prepare: rsync -a --delete plugins/llm-trace-phoenix/ .crabpot/workspaces/llm-trace-phoenix/; prepare-artifacts: mkdir -p .crabpot/results/llm-trace-phoenix; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --output ../../results/llm-trace-phoenix/cold-import-extension-llm-trace-phoenix-plugins-llm-trace-phoenix-index-ts.capture.json -> .crabpot/results/llm-trace-phoenix/cold-import-extension-llm-trace-phoenix-plugins-llm-trace-phoenix-index-ts.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/synthetic-probes.mjs --entrypoint ./index.ts --output ../../results/llm-trace-phoenix/cold-import-extension-llm-trace-phoenix-plugins-llm-trace-phoenix-index-ts.synthetic.json -> .crabpot/results/llm-trace-phoenix/cold-import-extension-llm-trace-phoenix-plugins-llm-trace-phoenix-index-ts.synthetic.json |
|
||||
| opik-openclaw | npm | ts-loader-required | plugins/opik-openclaw/index.ts | capture-shim, dependency-install, synthetic-probes, target-openclaw-link, ts-loader | prepare: rsync -a --delete plugins/opik-openclaw/ .crabpot/workspaces/opik-openclaw/; prepare-artifacts: mkdir -p .crabpot/results/opik-openclaw; link-openclaw: npm pkg set dependencies.openclaw="file:../../../../openclaw"; install: npm install --ignore-scripts; audit: npm audit --json > ../../results/opik-openclaw/package-audit.json || true -> .crabpot/results/opik-openclaw/package-audit.json; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --output ../../results/opik-openclaw/cold-import-extension-opik-openclaw-plugins-opik-openclaw-index-ts.capture.json -> .crabpot/results/opik-openclaw/cold-import-extension-opik-openclaw-plugins-opik-openclaw-index-ts.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/synthetic-probes.mjs --entrypoint ./index.ts --output ../../results/opik-openclaw/cold-import-extension-opik-openclaw-plugins-opik-openclaw-index-ts.synthetic.json -> .crabpot/results/opik-openclaw/cold-import-extension-opik-openclaw-plugins-opik-openclaw-index-ts.synthetic.json |
|
||||
| opik-openclaw | npm | build-required | plugins/opik-openclaw/dist/index.js | build, capture-shim, synthetic-probes, target-openclaw-link | prepare: rsync -a --delete plugins/opik-openclaw/ .crabpot/workspaces/opik-openclaw/; prepare-artifacts: mkdir -p .crabpot/results/opik-openclaw; 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.js --output ../../results/opik-openclaw/cold-import-runtimeExtension-opik-openclaw-plugins-opik-openclaw-dist-index-js.capture.json -> .crabpot/results/opik-openclaw/cold-import-runtimeExtension-opik-openclaw-plugins-opik-openclaw-dist-index-js.capture.json; synthetic-probe: CRABPOT_EXECUTE_ISOLATED=1 node ../../../scripts/synthetic-probes.mjs --entrypoint ./dist/index.js --output ../../results/opik-openclaw/cold-import-runtimeExtension-opik-openclaw-plugins-opik-openclaw-dist-index-js.synthetic.json -> .crabpot/results/opik-openclaw/cold-import-runtimeExtension-opik-openclaw-plugins-opik-openclaw-dist-index-js.synthetic.json |
|
||||
| clawmetry | npm | ts-loader-required | plugins/clawmetry/clawhub-plugin/index.ts | capture-shim, dependency-install, synthetic-probes, ts-loader | prepare: 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 --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 --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 | build-required | plugins/clawmetry/clawhub-plugin/dist/index.js | build, capture-shim, synthetic-probes | prepare: 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 --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 --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 | plugins/codex-app-server/index.ts | capture-shim, dependency-install, sdk-alias-compat, synthetic-probes, target-openclaw-link, ts-loader | prepare: 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 --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 --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 | plugins/web-search-plus/index.ts | capture-shim, dependency-install, side-effect-sandbox, synthetic-probes, target-openclaw-link, ts-loader | prepare: 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"; install: npm install --ignore-scripts; audit: npm audit --json > ../../results/web-search-plus/package-audit.json || true -> .crabpot/results/web-search-plus/package-audit.json; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --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 --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 | plugins/apify/src/index.ts | capture-shim, dependency-install, synthetic-probes, target-openclaw-link, ts-loader | prepare: 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 --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 --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 | plugins/inworld-tts/index.ts | capture-shim, dependency-install, synthetic-probes, target-openclaw-link, ts-loader | prepare: 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"; install: pnpm install --ignore-scripts; audit: pnpm audit --json > ../../results/inworld-tts/package-audit.json || true -> .crabpot/results/inworld-tts/package-audit.json; capture: CRABPOT_EXECUTE_ISOLATED=1 node --import tsx ../../../scripts/run-cold-import-capture.mjs ./index.ts --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 --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 |
|
||||
|
||||
@ -27,7 +27,7 @@ async function main() {
|
||||
console.log(JSON.stringify(plan, null, 2));
|
||||
} else {
|
||||
console.log(
|
||||
`workspace plan: ${plan.summary.entrypointCount} entrypoints, ${plan.summary.installStepCount} installs, ${plan.summary.buildStepCount} builds, ${plan.summary.captureStepCount} captures, ${plan.summary.syntheticProbeStepCount} synthetic probes, ${plan.summary.artifactStepCount} artifact dirs`,
|
||||
`workspace plan: ${plan.summary.entrypointCount} entrypoints, ${plan.summary.installStepCount} installs, ${plan.summary.auditStepCount} audits, ${plan.summary.buildStepCount} builds, ${plan.summary.captureStepCount} captures, ${plan.summary.syntheticProbeStepCount} synthetic probes, ${plan.summary.artifactStepCount} artifact dirs`,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user