惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG
IT之家
IT之家
C
Check Point Blog
T
The Blog of Author Tim Ferriss
S
SegmentFault 最新的问题
人人都是产品经理
人人都是产品经理
H
Hackread – Cybersecurity News, Data Breaches, AI and More
美团技术团队
M
MIT News - Artificial intelligence
Jina AI
Jina AI
Blog — PlanetScale
Blog — PlanetScale
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
F
Fortinet All Blogs
V
Visual Studio Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
Hugging Face - Blog
Hugging Face - Blog
MyScale Blog
MyScale Blog
爱范儿
爱范儿
The Cloudflare Blog
博客园 - 三生石上(FineUI控件)

Recent Commits to openclaw:main

test: merge chat side-result checks · openclaw/openclaw@ddd2c2a test: merge cron history checks · openclaw/openclaw@f7eb746 test: merge responsive navigation shell checks · openclaw/openclaw@c2e4b47 docs(changelog): add codex oauth fixes · openclaw/openclaw@628e6cd test: merge navigation routing cases · openclaw/openclaw@5d8cecb Tests: mock channel registry bundled fallback · openclaw/openclaw@2b08233 Secrets: avoid broad web search discovery for single plugin config · openclaw/openclaw@a464f59 test: merge config view browser checks · openclaw/openclaw@20cf511 fix(status): align oauth health with runtime · openclaw/openclaw@eed7116 feat: add macOS screen snapshots for monitor preview (#67954) thanks … · openclaw/openclaw@f377db1 fix: report shared auth scopes in hello-ok (#67810) thanks @BunsDev · openclaw/openclaw@0b6c39b Auto-reply: avoid eager bundled route fallback · openclaw/openclaw@3ea1bf4 Tests: narrow session binding contract setup · openclaw/openclaw@54e4e16 fix(macOS): enable undo/redo in webchat composer text input (#34962) · openclaw/openclaw@00951dc Tests: speed up channel setup promotion · openclaw/openclaw@82b529a Docs: refresh agent instructions · openclaw/openclaw@5775fe2 fix(auth): serialize OAuth refresh across agents to fix #26322 (#67876) · openclaw/openclaw@8e79080 test: allow ollama public surface boundary test · openclaw/openclaw@7d4f1a6 Docs: add test performance guardrails · openclaw/openclaw@89706d3 Tests: restore context-engine usage proof · openclaw/openclaw@e4c4f95 Tests: slim context engine runtime coverage · openclaw/openclaw@74c198f ci: retry failed custom checkouts · openclaw/openclaw@0ee5baf test: trim duplicate provider auth onboarding cases · openclaw/openclaw@1ffc02e matrix: fix sessions_spawn --thread subagent session spawning (#67643) · openclaw/openclaw@1ce2596 test: reduce auth choice fixture churn · openclaw/openclaw@857b9cd test: mock health status config boundaries · openclaw/openclaw@9d5ab4a test: mock onboard config io boundary · openclaw/openclaw@299694d test: mock legacy state plugin boundaries · openclaw/openclaw@2713089 test: mock channel install boundaries · openclaw/openclaw@b945248 test: mock doctor preview channel boundaries · openclaw/openclaw@b1a3ad4
[plugin sdk] Add generic plugin host-hook contracts (#722...
100yenadmin · 2026-04-28 · via Recent Commits to openclaw:main

@@ -1881,6 +1881,58 @@ public struct SessionsPatchParams: Codable, Sendable {

18811881

}

18821882

}

188318831884+

public struct SessionsPluginPatchParams: Codable, Sendable {

1885+

public let key: String

1886+

public let pluginid: String

1887+

public let namespace: String

1888+

public let value: AnyCodable?

1889+

public let unset: Bool?

1890+1891+

public init(

1892+

key: String,

1893+

pluginid: String,

1894+

namespace: String,

1895+

value: AnyCodable?,

1896+

unset: Bool?)

1897+

{

1898+

self.key = key

1899+

self.pluginid = pluginid

1900+

self.namespace = namespace

1901+

self.value = value

1902+

self.unset = unset

1903+

}

1904+1905+

private enum CodingKeys: String, CodingKey {

1906+

case key

1907+

case pluginid = "pluginId"

1908+

case namespace

1909+

case value

1910+

case unset

1911+

}

1912+

}

1913+1914+

public struct SessionsPluginPatchResult: Codable, Sendable {

1915+

public let ok: Bool

1916+

public let key: String

1917+

public let value: AnyCodable?

1918+1919+

public init(

1920+

ok: Bool,

1921+

key: String,

1922+

value: AnyCodable?)

1923+

{

1924+

self.ok = ok

1925+

self.key = key

1926+

self.value = value

1927+

}

1928+1929+

private enum CodingKeys: String, CodingKey {

1930+

case ok

1931+

case key

1932+

case value

1933+

}

1934+

}

1935+18841936

public struct SessionsResetParams: Codable, Sendable {

18851937

public let key: String

18861938

public let reason: AnyCodable?

@@ -3292,6 +3344,8 @@ public struct ToolCatalogEntry: Codable, Sendable {

32923344

public let source: AnyCodable

32933345

public let pluginid: String?

32943346

public let optional: Bool?

3347+

public let risk: AnyCodable?

3348+

public let tags: [String]?

32953349

public let defaultprofiles: [AnyCodable]

3296335032973351

public init(

@@ -3301,6 +3355,8 @@ public struct ToolCatalogEntry: Codable, Sendable {

33013355

source: AnyCodable,

33023356

pluginid: String?,

33033357

optional: Bool?,

3358+

risk: AnyCodable?,

3359+

tags: [String]?,

33043360

defaultprofiles: [AnyCodable])

33053361

{

33063362

self.id = id

@@ -3309,6 +3365,8 @@ public struct ToolCatalogEntry: Codable, Sendable {

33093365

self.source = source

33103366

self.pluginid = pluginid

33113367

self.optional = optional

3368+

self.risk = risk

3369+

self.tags = tags

33123370

self.defaultprofiles = defaultprofiles

33133371

}

33143372

@@ -3319,6 +3377,8 @@ public struct ToolCatalogEntry: Codable, Sendable {

33193377

case source

33203378

case pluginid = "pluginId"

33213379

case optional

3380+

case risk

3381+

case tags

33223382

case defaultprofiles = "defaultProfiles"

33233383

}

33243384

}

@@ -3401,6 +3461,8 @@ public struct ToolsEffectiveEntry: Codable, Sendable {

34013461

public let source: AnyCodable

34023462

public let pluginid: String?

34033463

public let channelid: String?

3464+

public let risk: AnyCodable?

3465+

public let tags: [String]?

3404346634053467

public init(

34063468

id: String,

@@ -3409,7 +3471,9 @@ public struct ToolsEffectiveEntry: Codable, Sendable {

34093471

rawdescription: String,

34103472

source: AnyCodable,

34113473

pluginid: String?,

3412-

channelid: String?)

3474+

channelid: String?,

3475+

risk: AnyCodable?,

3476+

tags: [String]?)

34133477

{

34143478

self.id = id

34153479

self.label = label

@@ -3418,6 +3482,8 @@ public struct ToolsEffectiveEntry: Codable, Sendable {

34183482

self.source = source

34193483

self.pluginid = pluginid

34203484

self.channelid = channelid

3485+

self.risk = risk

3486+

self.tags = tags

34213487

}

3422348834233489

private enum CodingKeys: String, CodingKey {

@@ -3428,6 +3494,8 @@ public struct ToolsEffectiveEntry: Codable, Sendable {

34283494

case source

34293495

case pluginid = "pluginId"

34303496

case channelid = "channelId"

3497+

case risk

3498+

case tags

34313499

}

34323500

}

34333501

@@ -4215,6 +4283,72 @@ public struct PluginApprovalResolveParams: Codable, Sendable {

42154283

}

42164284

}

421742854286+

public struct PluginControlUiDescriptor: Codable, Sendable {

4287+

public let id: String

4288+

public let pluginid: String

4289+

public let pluginname: String?

4290+

public let surface: AnyCodable

4291+

public let label: String

4292+

public let description: String?

4293+

public let placement: String?

4294+

public let schema: AnyCodable?

4295+

public let requiredscopes: [String]?

4296+4297+

public init(

4298+

id: String,

4299+

pluginid: String,

4300+

pluginname: String?,

4301+

surface: AnyCodable,

4302+

label: String,

4303+

description: String?,

4304+

placement: String?,

4305+

schema: AnyCodable?,

4306+

requiredscopes: [String]?)

4307+

{

4308+

self.id = id

4309+

self.pluginid = pluginid

4310+

self.pluginname = pluginname

4311+

self.surface = surface

4312+

self.label = label

4313+

self.description = description

4314+

self.placement = placement

4315+

self.schema = schema

4316+

self.requiredscopes = requiredscopes

4317+

}

4318+4319+

private enum CodingKeys: String, CodingKey {

4320+

case id

4321+

case pluginid = "pluginId"

4322+

case pluginname = "pluginName"

4323+

case surface

4324+

case label

4325+

case description

4326+

case placement

4327+

case schema

4328+

case requiredscopes = "requiredScopes"

4329+

}

4330+

}

4331+4332+

public struct PluginsUiDescriptorsParams: Codable, Sendable {}

4333+4334+

public struct PluginsUiDescriptorsResult: Codable, Sendable {

4335+

public let ok: Bool

4336+

public let descriptors: [PluginControlUiDescriptor]

4337+4338+

public init(

4339+

ok: Bool,

4340+

descriptors: [PluginControlUiDescriptor])

4341+

{

4342+

self.ok = ok

4343+

self.descriptors = descriptors

4344+

}

4345+4346+

private enum CodingKeys: String, CodingKey {

4347+

case ok

4348+

case descriptors

4349+

}

4350+

}

4351+42184352

public struct DevicePairListParams: Codable, Sendable {}

4219435342204354

public struct DevicePairApproveParams: Codable, Sendable {