@openclaw/matrix 2026.6.11 → 2026.6.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/api.js +1 -1
  2. package/dist/{approval-handler.runtime-CK5HedmU.js → approval-handler.runtime-NM2VK9st.js} +1 -1
  3. package/dist/{channel-Y_HGdzpZ.js → channel-DBu5bvBi.js} +4 -3
  4. package/dist/channel-plugin-api.js +1 -1
  5. package/dist/{monitor-BpvP2_nj.js → monitor-BLr_siHV.js} +7 -4
  6. package/node_modules/linkify-it/README.md +3 -4
  7. package/node_modules/linkify-it/build/index.cjs.js +44 -41
  8. package/node_modules/linkify-it/index.mjs +10 -11
  9. package/node_modules/linkify-it/lib/re.mjs +34 -30
  10. package/node_modules/linkify-it/package.json +10 -15
  11. package/node_modules/markdown-it/dist/index.cjs.js +3652 -5378
  12. package/node_modules/markdown-it/dist/index.cjs.js.map +1 -0
  13. package/node_modules/markdown-it/dist/markdown-it.js +1399 -4479
  14. package/node_modules/markdown-it/dist/markdown-it.js.map +1 -0
  15. package/node_modules/markdown-it/dist/markdown-it.min.js +3 -2
  16. package/node_modules/markdown-it/dist/markdown-it.min.js.map +1 -0
  17. package/node_modules/markdown-it/lib/common/html_re.mjs +9 -9
  18. package/node_modules/markdown-it/lib/common/utils.mjs +2 -11
  19. package/node_modules/markdown-it/lib/parser_block.mjs +9 -9
  20. package/node_modules/markdown-it/lib/parser_core.mjs +7 -7
  21. package/node_modules/markdown-it/lib/parser_inline.mjs +16 -16
  22. package/node_modules/markdown-it/lib/renderer.mjs +2 -2
  23. package/node_modules/markdown-it/lib/rules_block/blockquote.mjs +6 -6
  24. package/node_modules/markdown-it/lib/rules_block/code.mjs +2 -2
  25. package/node_modules/markdown-it/lib/rules_block/fence.mjs +4 -4
  26. package/node_modules/markdown-it/lib/rules_block/heading.mjs +7 -7
  27. package/node_modules/markdown-it/lib/rules_block/hr.mjs +2 -2
  28. package/node_modules/markdown-it/lib/rules_block/html_block.mjs +6 -6
  29. package/node_modules/markdown-it/lib/rules_block/lheading.mjs +8 -8
  30. package/node_modules/markdown-it/lib/rules_block/list.mjs +6 -6
  31. package/node_modules/markdown-it/lib/rules_block/paragraph.mjs +5 -5
  32. package/node_modules/markdown-it/lib/rules_block/reference.mjs +1 -1
  33. package/node_modules/markdown-it/lib/rules_block/state_block.mjs +6 -6
  34. package/node_modules/markdown-it/lib/rules_block/table.mjs +4 -4
  35. package/node_modules/markdown-it/lib/rules_core/block.mjs +3 -3
  36. package/node_modules/markdown-it/lib/rules_core/linkify.mjs +15 -15
  37. package/node_modules/markdown-it/lib/rules_core/normalize.mjs +2 -2
  38. package/node_modules/markdown-it/lib/rules_inline/autolink.mjs +17 -17
  39. package/node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs +2 -2
  40. package/node_modules/markdown-it/lib/rules_inline/emphasis.mjs +8 -8
  41. package/node_modules/markdown-it/lib/rules_inline/entity.mjs +7 -7
  42. package/node_modules/markdown-it/lib/rules_inline/escape.mjs +15 -1
  43. package/node_modules/markdown-it/lib/rules_inline/html_inline.mjs +1 -1
  44. package/node_modules/markdown-it/lib/rules_inline/link.mjs +1 -1
  45. package/node_modules/markdown-it/lib/rules_inline/state_inline.mjs +2 -2
  46. package/node_modules/markdown-it/lib/rules_inline/strikethrough.mjs +10 -10
  47. package/node_modules/markdown-it/lib/token.mjs +12 -12
  48. package/node_modules/markdown-it/package.json +25 -34
  49. package/npm-shrinkwrap.json +12 -12
  50. package/package.json +5 -5
@@ -80,18 +80,18 @@ function postProcess (state, delimiters) {
80
80
 
81
81
  const ch = String.fromCharCode(startDelim.marker)
82
82
 
83
- const token_o = state.tokens[startDelim.token]
84
- token_o.type = isStrong ? 'strong_open' : 'em_open'
85
- token_o.tag = isStrong ? 'strong' : 'em'
83
+ const token_o = state.tokens[startDelim.token]
84
+ token_o.type = isStrong ? 'strong_open' : 'em_open'
85
+ token_o.tag = isStrong ? 'strong' : 'em'
86
86
  token_o.nesting = 1
87
- token_o.markup = isStrong ? ch + ch : ch
87
+ token_o.markup = isStrong ? ch + ch : ch
88
88
  token_o.content = ''
89
89
 
90
- const token_c = state.tokens[endDelim.token]
91
- token_c.type = isStrong ? 'strong_close' : 'em_close'
92
- token_c.tag = isStrong ? 'strong' : 'em'
90
+ const token_c = state.tokens[endDelim.token]
91
+ token_c.type = isStrong ? 'strong_close' : 'em_close'
92
+ token_c.tag = isStrong ? 'strong' : 'em'
93
93
  token_c.nesting = -1
94
- token_c.markup = isStrong ? ch + ch : ch
94
+ token_c.markup = isStrong ? ch + ch : ch
95
95
  token_c.content = ''
96
96
 
97
97
  if (isStrong) {
@@ -4,7 +4,7 @@ import { decodeHTMLStrict } from 'entities'
4
4
  import { isValidEntityCode, fromCodePoint } from '../common/utils.mjs'
5
5
 
6
6
  const DIGITAL_RE = /^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i
7
- const NAMED_RE = /^&([a-z][a-z0-9]{1,31});/i
7
+ const NAMED_RE = /^&([a-z][a-z0-9]{1,31});/i
8
8
 
9
9
  export default function entity (state, silent) {
10
10
  const pos = state.pos
@@ -22,10 +22,10 @@ export default function entity (state, silent) {
22
22
  if (!silent) {
23
23
  const code = match[1][0].toLowerCase() === 'x' ? parseInt(match[1].slice(1), 16) : parseInt(match[1], 10)
24
24
 
25
- const token = state.push('text_special', '', 0)
25
+ const token = state.push('text_special', '', 0)
26
26
  token.content = isValidEntityCode(code) ? fromCodePoint(code) : fromCodePoint(0xFFFD)
27
- token.markup = match[0]
28
- token.info = 'entity'
27
+ token.markup = match[0]
28
+ token.info = 'entity'
29
29
  }
30
30
  state.pos += match[0].length
31
31
  return true
@@ -36,10 +36,10 @@ export default function entity (state, silent) {
36
36
  const decoded = decodeHTMLStrict(match[0])
37
37
  if (decoded !== match[0]) {
38
38
  if (!silent) {
39
- const token = state.push('text_special', '', 0)
39
+ const token = state.push('text_special', '', 0)
40
40
  token.content = decoded
41
- token.markup = match[0]
42
- token.info = 'entity'
41
+ token.markup = match[0]
42
+ token.info = 'entity'
43
43
  }
44
44
  state.pos += match[0].length
45
45
  return true
@@ -38,6 +38,20 @@ export default function escape (state, silent) {
38
38
  return true
39
39
  }
40
40
 
41
+ // '\' before a space is a literal backslash. Don't consume the space, so a
42
+ // trailing two-space hard line break is still detected by the newline rule.
43
+ if (ch1 === 0x20) {
44
+ if (!silent) {
45
+ const token = state.push('text_special', '', 0)
46
+ token.content = '\\'
47
+ token.markup = '\\'
48
+ token.info = 'escape'
49
+ }
50
+
51
+ state.pos = pos
52
+ return true
53
+ }
54
+
41
55
  let escapedStr = state.src[pos]
42
56
 
43
57
  if (ch1 >= 0xD800 && ch1 <= 0xDBFF && pos + 1 < max) {
@@ -61,7 +75,7 @@ export default function escape (state, silent) {
61
75
  }
62
76
 
63
77
  token.markup = origStr
64
- token.info = 'escape'
78
+ token.info = 'escape'
65
79
  }
66
80
 
67
81
  state.pos = pos + 1
@@ -42,7 +42,7 @@ export default function html_inline (state, silent) {
42
42
  const token = state.push('html_inline', '', 0)
43
43
  token.content = match[0]
44
44
 
45
- if (isLinkOpen(token.content)) state.linkLevel++
45
+ if (isLinkOpen(token.content)) state.linkLevel++
46
46
  if (isLinkClose(token.content)) state.linkLevel--
47
47
  }
48
48
  state.pos += match[0].length
@@ -121,7 +121,7 @@ export default function link (state, silent) {
121
121
 
122
122
  const token_o = state.push('link_open', 'a', 1)
123
123
  const attrs = [['href', href]]
124
- token_o.attrs = attrs
124
+ token_o.attrs = attrs
125
125
  if (title) {
126
126
  attrs.push(['title', title])
127
127
  }
@@ -142,8 +142,8 @@ StateInline.prototype.scanDelims = function (start, canSplitWord) {
142
142
  const right_flanking =
143
143
  !isLastWhiteSpace && (!isLastPunctChar || isNextWhiteSpace || isNextPunctChar)
144
144
 
145
- const can_open = left_flanking && (canSplitWord || !right_flanking || isLastPunctChar)
146
- const can_close = right_flanking && (canSplitWord || !left_flanking || isNextPunctChar)
145
+ const can_open = left_flanking && (canSplitWord || !right_flanking || isLastPunctChar)
146
+ const can_close = right_flanking && (canSplitWord || !left_flanking || isNextPunctChar)
147
147
 
148
148
  return { can_open, can_close, length: count }
149
149
  }
@@ -20,13 +20,13 @@ function strikethrough_tokenize (state, silent) {
20
20
  let token
21
21
 
22
22
  if (len % 2) {
23
- token = state.push('text', '', 0)
23
+ token = state.push('text', '', 0)
24
24
  token.content = ch
25
25
  len--
26
26
  }
27
27
 
28
28
  for (let i = 0; i < len; i += 2) {
29
- token = state.push('text', '', 0)
29
+ token = state.push('text', '', 0)
30
30
  token.content = ch + ch
31
31
 
32
32
  state.delimiters.push({
@@ -62,18 +62,18 @@ function postProcess (state, delimiters) {
62
62
 
63
63
  const endDelim = delimiters[startDelim.end]
64
64
 
65
- token = state.tokens[startDelim.token]
66
- token.type = 's_open'
67
- token.tag = 's'
65
+ token = state.tokens[startDelim.token]
66
+ token.type = 's_open'
67
+ token.tag = 's'
68
68
  token.nesting = 1
69
- token.markup = '~~'
69
+ token.markup = '~~'
70
70
  token.content = ''
71
71
 
72
- token = state.tokens[endDelim.token]
73
- token.type = 's_close'
74
- token.tag = 's'
72
+ token = state.tokens[endDelim.token]
73
+ token.type = 's_close'
74
+ token.tag = 's'
75
75
  token.nesting = -1
76
- token.markup = '~~'
76
+ token.markup = '~~'
77
77
  token.content = ''
78
78
 
79
79
  if (state.tokens[endDelim.token - 1].type === 'text' &&
@@ -15,28 +15,28 @@ function Token (type, tag, nesting) {
15
15
  *
16
16
  * Type of the token (string, e.g. "paragraph_open")
17
17
  **/
18
- this.type = type
18
+ this.type = type
19
19
 
20
20
  /**
21
21
  * Token#tag -> String
22
22
  *
23
23
  * html tag name, e.g. "p"
24
24
  **/
25
- this.tag = tag
25
+ this.tag = tag
26
26
 
27
27
  /**
28
28
  * Token#attrs -> Array
29
29
  *
30
30
  * Html attributes. Format: `[ [ name1, value1 ], [ name2, value2 ] ]`
31
31
  **/
32
- this.attrs = null
32
+ this.attrs = null
33
33
 
34
34
  /**
35
35
  * Token#map -> Array
36
36
  *
37
37
  * Source map info. Format: `[ line_begin, line_end ]`
38
38
  **/
39
- this.map = null
39
+ this.map = null
40
40
 
41
41
  /**
42
42
  * Token#nesting -> Number
@@ -47,14 +47,14 @@ function Token (type, tag, nesting) {
47
47
  * - `0` means the tag is self-closing
48
48
  * - `-1` means the tag is closing
49
49
  **/
50
- this.nesting = nesting
50
+ this.nesting = nesting
51
51
 
52
52
  /**
53
53
  * Token#level -> Number
54
54
  *
55
55
  * nesting level, the same as `state.level`
56
56
  **/
57
- this.level = 0
57
+ this.level = 0
58
58
 
59
59
  /**
60
60
  * Token#children -> Array
@@ -69,14 +69,14 @@ function Token (type, tag, nesting) {
69
69
  * In a case of self-closing tag (code, html, fence, etc.),
70
70
  * it has contents of this tag.
71
71
  **/
72
- this.content = ''
72
+ this.content = ''
73
73
 
74
74
  /**
75
75
  * Token#markup -> String
76
76
  *
77
77
  * '*' or '_' for emphasis, fence string for fence, etc.
78
78
  **/
79
- this.markup = ''
79
+ this.markup = ''
80
80
 
81
81
  /**
82
82
  * Token#info -> String
@@ -87,14 +87,14 @@ function Token (type, tag, nesting) {
87
87
  * - The value "auto" for autolink "link_open" and "link_close" tokens
88
88
  * - The string value of the item marker for ordered-list "list_item_open" tokens
89
89
  **/
90
- this.info = ''
90
+ this.info = ''
91
91
 
92
92
  /**
93
93
  * Token#meta -> Object
94
94
  *
95
95
  * A place for plugins to store an arbitrary data
96
96
  **/
97
- this.meta = null
97
+ this.meta = null
98
98
 
99
99
  /**
100
100
  * Token#block -> Boolean
@@ -102,7 +102,7 @@ function Token (type, tag, nesting) {
102
102
  * True for block-level tokens, false for inline tokens.
103
103
  * Used in renderer to calculate line breaks
104
104
  **/
105
- this.block = false
105
+ this.block = false
106
106
 
107
107
  /**
108
108
  * Token#hidden -> Boolean
@@ -110,7 +110,7 @@ function Token (type, tag, nesting) {
110
110
  * If it's true, ignore this element when rendering. Used for tight lists
111
111
  * to hide paragraphs.
112
112
  **/
113
- this.hidden = false
113
+ this.hidden = false
114
114
  }
115
115
 
116
116
  /**
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "markdown-it",
3
- "version": "14.2.0",
3
+ "version": "14.3.0",
4
4
  "description": "Markdown-it - modern pluggable markdown parser.",
5
5
  "keywords": [
6
6
  "markdown",
@@ -38,16 +38,23 @@
38
38
  },
39
39
  "scripts": {
40
40
  "lint": "eslint .",
41
- "test": "npm run lint && cross-env CJS_ONLY=1 npm run build && c8 --exclude dist --exclude test -r text -r html -r lcov mocha && node support/specsplit.mjs",
41
+ "test": "npm run lint && npm run test:cmspec && npm run test:markdown-it && npm run test:build",
42
+ "test:cmspec": "node --test --test-reporter=dot test/cmspec/**/*.test.mjs",
43
+ "test:markdown-it": "node --test test/markdown-it/**/*.test.mjs",
44
+ "test:build": "npm run build && node --test test/build/**/*.test.mjs",
45
+ "pathological:track-ref": "node support/track-ref-pathological.mjs",
46
+ "pathological:update-hash": "node support/track-ref-pathological.mjs --update",
47
+ "coverage": "npm run build && c8 --include 'lib/**' -r text -r html -r lcov node --test --test-reporter=dot",
42
48
  "doc": "node support/build_doc.mjs",
43
49
  "gh-doc": "npm run doc && gh-pages -d apidoc -f",
44
50
  "demo": "npm run lint && node support/build_demo.mjs",
45
51
  "gh-demo": "npm run demo && gh-pages -d demo -f -b master -r git@github.com:markdown-it/markdown-it.github.io.git",
46
- "build": "rollup -c support/rollup.config.mjs",
47
- "benchmark-deps": "npm install --prefix benchmark/extra/ -g marked@0.3.6 commonmark@0.26.0 markdown-it/markdown-it.git#2.2.1",
52
+ "build": "node support/build-dist.mjs",
53
+ "benchmark-deps": "npm install --prefix benchmark/extra/",
48
54
  "specsplit": "support/specsplit.mjs good -o test/fixtures/commonmark/good.txt && support/specsplit.mjs bad -o test/fixtures/commonmark/bad.txt && support/specsplit.mjs",
49
55
  "todo": "grep 'TODO' -n -r ./lib 2>/dev/null",
50
- "prepublishOnly": "npm test && npm run build && npm run gh-demo && npm run gh-doc"
56
+ "prepack": "npm test && npm run build && npm run demo && npm run doc",
57
+ "postpublish": "npm run gh-demo && npm run gh-doc"
51
58
  },
52
59
  "files": [
53
60
  "index.mjs",
@@ -56,31 +63,20 @@
56
63
  ],
57
64
  "dependencies": {
58
65
  "argparse": "^2.0.1",
59
- "entities": "^4.4.0",
60
- "linkify-it": "^5.0.1",
66
+ "entities": "^4.5.0",
67
+ "linkify-it": "^5.0.2",
61
68
  "mdurl": "^2.0.0",
62
69
  "punycode.js": "^2.3.1",
63
70
  "uc.micro": "^2.1.0"
64
71
  },
65
72
  "devDependencies": {
66
- "@rollup/plugin-babel": "^6.0.4",
67
- "@rollup/plugin-commonjs": "^25.0.7",
68
- "@rollup/plugin-node-resolve": "^15.2.3",
69
- "@rollup/plugin-terser": "^0.4.4",
70
- "ansi": "^0.3.0",
71
- "benchmark": "~2.1.0",
72
- "c8": "^8.0.1",
73
- "chai": "^4.2.0",
74
- "cross-env": "^7.0.3",
75
- "eslint": "^8.4.1",
76
- "eslint-config-standard": "^17.1.0",
77
- "express": "^4.14.0",
78
- "gh-pages": "^6.1.0",
79
- "highlight.js": "^11.9.0",
80
- "jest-worker": "^29.7.0",
73
+ "c8": "^11.0.0",
74
+ "eslint": "^9.39.4",
75
+ "gh-pages": "^6.3.0",
76
+ "highlight.js": "^11.11.1",
81
77
  "markdown-it-abbr": "^2.0.0",
82
78
  "markdown-it-container": "^4.0.0",
83
- "markdown-it-deflist": "^3.0.0",
79
+ "markdown-it-deflist": "^3.0.1",
84
80
  "markdown-it-emoji": "^3.0.0",
85
81
  "markdown-it-footnote": "^4.0.0",
86
82
  "markdown-it-for-inline": "^2.0.1",
@@ -88,16 +84,11 @@
88
84
  "markdown-it-mark": "^4.0.0",
89
85
  "markdown-it-sub": "^2.0.0",
90
86
  "markdown-it-sup": "^2.0.0",
91
- "markdown-it-testgen": "^0.1.3",
92
- "mocha": "^10.2.0",
93
- "ndoc": "^6.0.0",
94
- "needle": "^3.0.0",
95
- "rollup": "^4.5.0",
96
- "shelljs": "^0.8.4",
97
- "supertest": "^6.0.1"
98
- },
99
- "mocha": {
100
- "inline-diffs": true,
101
- "timeout": 60000
87
+ "ndoc": "^6.0.1",
88
+ "neostandard": "^0.13.0",
89
+ "terser": "^5.48.0",
90
+ "tinybench": "^6.0.2",
91
+ "vite": "^8.1.2",
92
+ "vite-plugin-singlefile": "^2.3.3"
102
93
  }
103
94
  }
@@ -1,24 +1,24 @@
1
1
  {
2
2
  "name": "@openclaw/matrix",
3
- "version": "2026.6.11",
3
+ "version": "2026.6.34",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@openclaw/matrix",
9
- "version": "2026.6.11",
9
+ "version": "2026.6.34",
10
10
  "dependencies": {
11
11
  "@matrix-org/matrix-sdk-crypto-nodejs": "0.6.0",
12
12
  "@matrix-org/matrix-sdk-crypto-wasm": "18.3.0",
13
13
  "fake-indexeddb": "6.2.5",
14
- "markdown-it": "14.2.0",
14
+ "markdown-it": "14.3.0",
15
15
  "matrix-js-sdk": "41.6.0",
16
16
  "music-metadata": "11.12.3",
17
17
  "typebox": "1.1.39",
18
18
  "zod": "4.4.3"
19
19
  },
20
20
  "peerDependencies": {
21
- "openclaw": ">=2026.6.11"
21
+ "openclaw": ">=2026.6.34"
22
22
  },
23
23
  "peerDependenciesMeta": {
24
24
  "openclaw": {
@@ -262,9 +262,9 @@
262
262
  }
263
263
  },
264
264
  "node_modules/linkify-it": {
265
- "version": "5.0.1",
266
- "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.1.tgz",
267
- "integrity": "sha512-wVoTjP4Q6R0NW5hiZkVJaFZPWgtXfoGF+6LucL3/FtiNjmcHhYjEr5f1Kqjirc1nBW07J/ZuRFumqr2oqccEWg==",
265
+ "version": "5.0.2",
266
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.2.tgz",
267
+ "integrity": "sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==",
268
268
  "funding": [
269
269
  {
270
270
  "type": "github",
@@ -294,9 +294,9 @@
294
294
  }
295
295
  },
296
296
  "node_modules/markdown-it": {
297
- "version": "14.2.0",
298
- "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.2.0.tgz",
299
- "integrity": "sha512-1TGiQiJVRQ3NPmZH6sx5Cfnmg6GQm9jvC1ch4TK511NjSJvjzKLzn5pPfZRNZkRPZP0HqCioSndqH8v2nRaWVQ==",
297
+ "version": "14.3.0",
298
+ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.3.0.tgz",
299
+ "integrity": "sha512-RCEsPjR+sr0x+AuYp601tKTkgFG4YEPLCzHST3cQ/fhlJkqAkz1L2/Qbp1j9qw5SBwQHFBoW8+hoN5xssOF0Tw==",
300
300
  "funding": [
301
301
  {
302
302
  "type": "github",
@@ -310,8 +310,8 @@
310
310
  "license": "MIT",
311
311
  "dependencies": {
312
312
  "argparse": "^2.0.1",
313
- "entities": "^4.4.0",
314
- "linkify-it": "^5.0.1",
313
+ "entities": "^4.5.0",
314
+ "linkify-it": "^5.0.2",
315
315
  "mdurl": "^2.0.0",
316
316
  "punycode.js": "^2.3.1",
317
317
  "uc.micro": "^2.1.0"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/matrix",
3
- "version": "2026.6.11",
3
+ "version": "2026.6.34",
4
4
  "description": "OpenClaw Matrix channel plugin for rooms and direct messages.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -11,14 +11,14 @@
11
11
  "@matrix-org/matrix-sdk-crypto-nodejs": "0.6.0",
12
12
  "@matrix-org/matrix-sdk-crypto-wasm": "18.3.0",
13
13
  "fake-indexeddb": "6.2.5",
14
- "markdown-it": "14.2.0",
14
+ "markdown-it": "14.3.0",
15
15
  "matrix-js-sdk": "41.6.0",
16
16
  "music-metadata": "11.12.3",
17
17
  "typebox": "1.1.39",
18
18
  "zod": "4.4.3"
19
19
  },
20
20
  "peerDependencies": {
21
- "openclaw": ">=2026.6.11"
21
+ "openclaw": ">=2026.6.34"
22
22
  },
23
23
  "peerDependenciesMeta": {
24
24
  "openclaw": {
@@ -84,10 +84,10 @@
84
84
  "allowInvalidConfigRecovery": true
85
85
  },
86
86
  "compat": {
87
- "pluginApi": ">=2026.6.11"
87
+ "pluginApi": ">=2026.6.34"
88
88
  },
89
89
  "build": {
90
- "openclawVersion": "2026.6.11"
90
+ "openclawVersion": "2026.6.34"
91
91
  },
92
92
  "release": {
93
93
  "publishToClawHub": true,