@openclaw/line 2026.7.2-beta.7 → 2026.7.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 (117) hide show
  1. package/README.md +1 -1
  2. package/dist/.setup/accounts-DJVOv1JI.mjs +107 -0
  3. package/dist/.setup/api-D3h9w6oz.mjs +3 -0
  4. package/dist/.setup/api-DdlGHKoX.mjs +11 -0
  5. package/dist/.setup/basic-cards-C8Qwh2X1.mjs +307 -0
  6. package/dist/{card-command-ty11OJNt.js → .setup/card-command-CWrkUiGY.mjs} +51 -23
  7. package/dist/{channel-D4i_K4fQ.js → .setup/channel-Du0PrvOH.mjs} +76 -66
  8. package/dist/.setup/channel.runtime-b3suPB-W.mjs +4 -0
  9. package/dist/.setup/flex-templates-BP6VHjzK.mjs +814 -0
  10. package/dist/{markdown-to-line-DMDQTMhx.js → .setup/markdown-to-line-o89GT1Qn.mjs} +252 -254
  11. package/dist/{monitor-DXEodYFJ.js → .setup/monitor-DpxjN6Ks.mjs} +491 -658
  12. package/dist/.setup/monitor.runtime-BS-cGD5Q.mjs +2 -0
  13. package/dist/.setup/outbound.runtime-BeNDuEIF.mjs +2 -0
  14. package/dist/{probe-CM03wo6r.js → .setup/probe-BslD77tJ.mjs} +9 -7
  15. package/dist/.setup/probe.runtime-YwWmWIlk.mjs +2 -0
  16. package/dist/{reply-payload-transform-D5-dHB8b.js → .setup/reply-payload-transform-CYQIy_x8.mjs} +204 -80
  17. package/dist/{setup-surface-DRQ7n0En.js → .setup/setup-surface-M1ivmZ-G.mjs} +143 -158
  18. package/dist/api.js +2 -11
  19. package/dist/channel-plugin-api.js +1 -1
  20. package/dist/contract-api.js +1 -1
  21. package/dist/index.js +1 -1
  22. package/dist/runtime-api.js +56 -15
  23. package/dist/setup-api.js +1 -1
  24. package/dist/setup-entry.js +2 -1
  25. package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/model/audienceGroupCreateRoute.d.ts.map +1 -1
  26. package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/model/audienceGroupFailedType.d.ts.map +1 -1
  27. package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/model/audienceGroupJobFailedType.d.ts.map +1 -1
  28. package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/model/audienceGroupJobStatus.d.ts.map +1 -1
  29. package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/model/audienceGroupStatus.d.ts.map +1 -1
  30. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/flexBoxBorderWidth.d.ts.map +1 -1
  31. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/flexBoxCornerRadius.d.ts.map +1 -1
  32. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/flexBubble.d.ts.map +1 -1
  33. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/flexIconSize.d.ts.map +1 -1
  34. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/flexSpanSize.d.ts.map +1 -1
  35. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/flexTextFontSize.d.ts.map +1 -1
  36. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/numberOfMessagesResponse.d.ts.map +1 -1
  37. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/postbackAction.d.ts.map +1 -1
  38. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/subscriptionPeriodDemographic.d.ts.map +1 -1
  39. package/node_modules/@line/bot-sdk/dist/cjs/version.d.ts +1 -1
  40. package/node_modules/@line/bot-sdk/dist/cjs/version.js +1 -1
  41. package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/event.d.ts +1 -2
  42. package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/event.d.ts.map +1 -1
  43. package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/models.d.ts +0 -1
  44. package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/models.d.ts.map +1 -1
  45. package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/models.js +0 -1
  46. package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/models.js.map +1 -1
  47. package/node_modules/@line/bot-sdk/dist/manage-audience/model/audienceGroupCreateRoute.d.ts.map +1 -1
  48. package/node_modules/@line/bot-sdk/dist/manage-audience/model/audienceGroupFailedType.d.ts.map +1 -1
  49. package/node_modules/@line/bot-sdk/dist/manage-audience/model/audienceGroupJobFailedType.d.ts.map +1 -1
  50. package/node_modules/@line/bot-sdk/dist/manage-audience/model/audienceGroupJobStatus.d.ts.map +1 -1
  51. package/node_modules/@line/bot-sdk/dist/manage-audience/model/audienceGroupStatus.d.ts.map +1 -1
  52. package/node_modules/@line/bot-sdk/dist/messaging-api/model/flexBoxBorderWidth.d.ts.map +1 -1
  53. package/node_modules/@line/bot-sdk/dist/messaging-api/model/flexBoxCornerRadius.d.ts.map +1 -1
  54. package/node_modules/@line/bot-sdk/dist/messaging-api/model/flexBubble.d.ts.map +1 -1
  55. package/node_modules/@line/bot-sdk/dist/messaging-api/model/flexIconSize.d.ts.map +1 -1
  56. package/node_modules/@line/bot-sdk/dist/messaging-api/model/flexSpanSize.d.ts.map +1 -1
  57. package/node_modules/@line/bot-sdk/dist/messaging-api/model/flexTextFontSize.d.ts.map +1 -1
  58. package/node_modules/@line/bot-sdk/dist/messaging-api/model/numberOfMessagesResponse.d.ts.map +1 -1
  59. package/node_modules/@line/bot-sdk/dist/messaging-api/model/postbackAction.d.ts.map +1 -1
  60. package/node_modules/@line/bot-sdk/dist/messaging-api/model/subscriptionPeriodDemographic.d.ts.map +1 -1
  61. package/node_modules/@line/bot-sdk/dist/version.d.ts +1 -1
  62. package/node_modules/@line/bot-sdk/dist/version.js +1 -1
  63. package/node_modules/@line/bot-sdk/dist/webhook/model/event.d.ts +1 -2
  64. package/node_modules/@line/bot-sdk/dist/webhook/model/event.d.ts.map +1 -1
  65. package/node_modules/@line/bot-sdk/dist/webhook/model/models.d.ts +0 -1
  66. package/node_modules/@line/bot-sdk/dist/webhook/model/models.d.ts.map +1 -1
  67. package/node_modules/@line/bot-sdk/dist/webhook/model/models.js +0 -1
  68. package/node_modules/@line/bot-sdk/dist/webhook/model/models.js.map +1 -1
  69. package/node_modules/@line/bot-sdk/lib/insight/model/getNumberOfFollowersResponse.ts +1 -1
  70. package/node_modules/@line/bot-sdk/lib/liff/model/liffScope.ts +1 -1
  71. package/node_modules/@line/bot-sdk/lib/manage-audience/model/audienceGroupCreateRoute.ts +4 -1
  72. package/node_modules/@line/bot-sdk/lib/manage-audience/model/audienceGroupFailedType.ts +2 -1
  73. package/node_modules/@line/bot-sdk/lib/manage-audience/model/audienceGroupJobFailedType.ts +2 -1
  74. package/node_modules/@line/bot-sdk/lib/manage-audience/model/audienceGroupJobStatus.ts +4 -1
  75. package/node_modules/@line/bot-sdk/lib/manage-audience/model/audienceGroupStatus.ts +6 -1
  76. package/node_modules/@line/bot-sdk/lib/messaging-api/model/botInfoResponse.ts +1 -1
  77. package/node_modules/@line/bot-sdk/lib/messaging-api/model/flexBoxBorderWidth.ts +6 -1
  78. package/node_modules/@line/bot-sdk/lib/messaging-api/model/flexBoxCornerRadius.ts +7 -1
  79. package/node_modules/@line/bot-sdk/lib/messaging-api/model/flexBubble.ts +7 -1
  80. package/node_modules/@line/bot-sdk/lib/messaging-api/model/flexIconSize.ts +10 -1
  81. package/node_modules/@line/bot-sdk/lib/messaging-api/model/flexSpanSize.ts +10 -1
  82. package/node_modules/@line/bot-sdk/lib/messaging-api/model/flexTextFontSize.ts +10 -1
  83. package/node_modules/@line/bot-sdk/lib/messaging-api/model/getAggregationUnitNameListResponse.ts +1 -1
  84. package/node_modules/@line/bot-sdk/lib/messaging-api/model/getFollowersResponse.ts +1 -1
  85. package/node_modules/@line/bot-sdk/lib/messaging-api/model/getJoinedMembershipUsersResponse.ts +1 -1
  86. package/node_modules/@line/bot-sdk/lib/messaging-api/model/issueLinkTokenResponse.ts +1 -1
  87. package/node_modules/@line/bot-sdk/lib/messaging-api/model/numberOfMessagesResponse.ts +5 -2
  88. package/node_modules/@line/bot-sdk/lib/messaging-api/model/postbackAction.ts +4 -1
  89. package/node_modules/@line/bot-sdk/lib/messaging-api/model/subscriptionPeriodDemographic.ts +5 -1
  90. package/node_modules/@line/bot-sdk/lib/version.ts +1 -1
  91. package/node_modules/@line/bot-sdk/lib/webhook/.openapi-generator/FILES +0 -1
  92. package/node_modules/@line/bot-sdk/lib/webhook/model/event.ts +0 -2
  93. package/node_modules/@line/bot-sdk/lib/webhook/model/models.ts +0 -1
  94. package/node_modules/@line/bot-sdk/lib/webhook/model/stickerMessageContent.ts +1 -1
  95. package/node_modules/@line/bot-sdk/node_modules/@types/node/README.md +1 -1
  96. package/node_modules/@line/bot-sdk/node_modules/@types/node/fs/promises.d.ts +5 -16
  97. package/node_modules/@line/bot-sdk/node_modules/@types/node/package.json +3 -3
  98. package/node_modules/@line/bot-sdk/package.json +3 -3
  99. package/openclaw.plugin.json +75 -57
  100. package/package.json +6 -71
  101. package/dist/accounts-BqEVsDoB.js +0 -103
  102. package/dist/channel.runtime-BdhK8Xw7.js +0 -4
  103. package/dist/flex-templates-iKJsyCq-.js +0 -1339
  104. package/dist/monitor.runtime-CZquR7jI.js +0 -2
  105. package/dist/outbound.runtime-BS0IhU_M.js +0 -2
  106. package/dist/probe.runtime-D13ZtXsd.js +0 -2
  107. package/dist/quick-reply-fallback-D86FwAfr.js +0 -56
  108. package/dist/send-receipt-CY2ey8XH.js +0 -107
  109. package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/messageEditedEvent.d.ts +0 -24
  110. package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/messageEditedEvent.d.ts.map +0 -1
  111. package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/messageEditedEvent.js +0 -14
  112. package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/messageEditedEvent.js.map +0 -1
  113. package/node_modules/@line/bot-sdk/dist/webhook/model/messageEditedEvent.d.ts +0 -24
  114. package/node_modules/@line/bot-sdk/dist/webhook/model/messageEditedEvent.d.ts.map +0 -1
  115. package/node_modules/@line/bot-sdk/dist/webhook/model/messageEditedEvent.js +0 -13
  116. package/node_modules/@line/bot-sdk/dist/webhook/model/messageEditedEvent.js.map +0 -1
  117. package/node_modules/@line/bot-sdk/lib/webhook/model/messageEditedEvent.ts +0 -32
@@ -112,11 +112,7 @@ declare module "fs/promises" {
112
112
  * @return Fulfills with `undefined` upon success.
113
113
  */
114
114
  appendFile(
115
- data:
116
- | string
117
- | NodeJS.ArrayBufferView
118
- | Iterable<string | NodeJS.ArrayBufferView>
119
- | AsyncIterable<string | NodeJS.ArrayBufferView>,
115
+ data: string | Uint8Array,
120
116
  options?:
121
117
  | (ObjectEncodingOptions & Abortable)
122
118
  | BufferEncoding
@@ -398,11 +394,7 @@ declare module "fs/promises" {
398
394
  * @since v10.0.0
399
395
  */
400
396
  writeFile(
401
- data:
402
- | string
403
- | NodeJS.ArrayBufferView
404
- | Iterable<string | NodeJS.ArrayBufferView>
405
- | AsyncIterable<string | NodeJS.ArrayBufferView>,
397
+ data: string | Uint8Array,
406
398
  options?:
407
399
  | (ObjectEncodingOptions & Abortable)
408
400
  | BufferEncoding
@@ -1078,7 +1070,8 @@ declare module "fs/promises" {
1078
1070
  | string
1079
1071
  | NodeJS.ArrayBufferView
1080
1072
  | Iterable<string | NodeJS.ArrayBufferView>
1081
- | AsyncIterable<string | NodeJS.ArrayBufferView>,
1073
+ | AsyncIterable<string | NodeJS.ArrayBufferView>
1074
+ | Stream,
1082
1075
  options?:
1083
1076
  | (ObjectEncodingOptions & {
1084
1077
  mode?: Mode | undefined;
@@ -1109,11 +1102,7 @@ declare module "fs/promises" {
1109
1102
  */
1110
1103
  function appendFile(
1111
1104
  path: PathLike | FileHandle,
1112
- data:
1113
- | string
1114
- | NodeJS.ArrayBufferView
1115
- | Iterable<string | NodeJS.ArrayBufferView>
1116
- | AsyncIterable<string | NodeJS.ArrayBufferView>,
1105
+ data: string | Uint8Array,
1117
1106
  options?: (ObjectEncodingOptions & FlagAndOpenMode & { flush?: boolean | undefined }) | BufferEncoding | null,
1118
1107
  ): Promise<void>;
1119
1108
  /**
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@types/node",
3
- "version": "24.13.3",
3
+ "version": "24.13.2",
4
4
  "description": "TypeScript definitions for node",
5
5
  "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node",
6
6
  "license": "MIT",
@@ -150,6 +150,6 @@
150
150
  "undici-types": "~7.18.0"
151
151
  },
152
152
  "peerDependencies": {},
153
- "typesPublisherContentHash": "4b445945b4afd0b71c708b4122531523576c6b228b6b76587f9b19d4e518f4e0",
154
- "typeScriptVersion": "5.6"
153
+ "typesPublisherContentHash": "a89004d9764ce24ab2bba15ae9f27f0c75ae8c293f77ce7f8846bbe10f8e18a8",
154
+ "typeScriptVersion": "5.3"
155
155
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@line/bot-sdk",
3
- "version": "11.2.0",
3
+ "version": "11.1.0",
4
4
  "description": "Node.js SDK for LINE Messaging API",
5
5
  "type": "module",
6
6
  "engines": {
@@ -69,8 +69,8 @@
69
69
  "@vitest/coverage-v8": "^4.1.0",
70
70
  "express": "5.2.1",
71
71
  "msw": "2.14.6",
72
- "oxc-minify": "^0.138.0",
73
- "prettier": "3.9.4",
72
+ "oxc-minify": "^0.137.0",
73
+ "prettier": "3.8.4",
74
74
  "publint": "0.3.21",
75
75
  "typedoc": "^0.28.14",
76
76
  "typedoc-plugin-markdown": "^4.3.0",
@@ -9,6 +9,12 @@
9
9
  "channels": [
10
10
  "line"
11
11
  ],
12
+ "channelEnvVars": {
13
+ "line": [
14
+ "LINE_CHANNEL_ACCESS_TOKEN",
15
+ "LINE_CHANNEL_SECRET"
16
+ ]
17
+ },
12
18
  "configSchema": {
13
19
  "type": "object",
14
20
  "additionalProperties": false,
@@ -68,9 +74,9 @@
68
74
  "default": "pairing",
69
75
  "type": "string",
70
76
  "enum": [
71
- "pairing",
72
- "allowlist",
73
77
  "open",
78
+ "allowlist",
79
+ "pairing",
74
80
  "disabled"
75
81
  ]
76
82
  },
@@ -79,8 +85,8 @@
79
85
  "type": "string",
80
86
  "enum": [
81
87
  "open",
82
- "disabled",
83
- "allowlist"
88
+ "allowlist",
89
+ "disabled"
84
90
  ]
85
91
  },
86
92
  "responsePrefix": {
@@ -113,50 +119,16 @@
113
119
  "isolated",
114
120
  "fork"
115
121
  ]
122
+ },
123
+ "spawnSubagentSessions": {
124
+ "type": "boolean"
125
+ },
126
+ "spawnAcpSessions": {
127
+ "type": "boolean"
116
128
  }
117
129
  },
118
130
  "additionalProperties": false
119
131
  },
120
- "groups": {
121
- "type": "object",
122
- "propertyNames": {
123
- "type": "string"
124
- },
125
- "additionalProperties": {
126
- "type": "object",
127
- "properties": {
128
- "requireMention": {
129
- "type": "boolean"
130
- },
131
- "skills": {
132
- "type": "array",
133
- "items": {
134
- "type": "string"
135
- }
136
- },
137
- "enabled": {
138
- "type": "boolean"
139
- },
140
- "allowFrom": {
141
- "type": "array",
142
- "items": {
143
- "anyOf": [
144
- {
145
- "type": "string"
146
- },
147
- {
148
- "type": "number"
149
- }
150
- ]
151
- }
152
- },
153
- "systemPrompt": {
154
- "type": "string"
155
- }
156
- },
157
- "additionalProperties": false
158
- }
159
- },
160
132
  "accounts": {
161
133
  "type": "object",
162
134
  "propertyNames": {
@@ -213,9 +185,9 @@
213
185
  "default": "pairing",
214
186
  "type": "string",
215
187
  "enum": [
216
- "pairing",
217
- "allowlist",
218
188
  "open",
189
+ "allowlist",
190
+ "pairing",
219
191
  "disabled"
220
192
  ]
221
193
  },
@@ -224,8 +196,8 @@
224
196
  "type": "string",
225
197
  "enum": [
226
198
  "open",
227
- "disabled",
228
- "allowlist"
199
+ "allowlist",
200
+ "disabled"
229
201
  ]
230
202
  },
231
203
  "responsePrefix": {
@@ -258,6 +230,12 @@
258
230
  "isolated",
259
231
  "fork"
260
232
  ]
233
+ },
234
+ "spawnSubagentSessions": {
235
+ "type": "boolean"
236
+ },
237
+ "spawnAcpSessions": {
238
+ "type": "boolean"
261
239
  }
262
240
  },
263
241
  "additionalProperties": false
@@ -270,15 +248,6 @@
270
248
  "additionalProperties": {
271
249
  "type": "object",
272
250
  "properties": {
273
- "requireMention": {
274
- "type": "boolean"
275
- },
276
- "skills": {
277
- "type": "array",
278
- "items": {
279
- "type": "string"
280
- }
281
- },
282
251
  "enabled": {
283
252
  "type": "boolean"
284
253
  },
@@ -295,8 +264,17 @@
295
264
  ]
296
265
  }
297
266
  },
267
+ "requireMention": {
268
+ "type": "boolean"
269
+ },
298
270
  "systemPrompt": {
299
271
  "type": "string"
272
+ },
273
+ "skills": {
274
+ "type": "array",
275
+ "items": {
276
+ "type": "string"
277
+ }
300
278
  }
301
279
  },
302
280
  "additionalProperties": false
@@ -312,6 +290,46 @@
312
290
  },
313
291
  "defaultAccount": {
314
292
  "type": "string"
293
+ },
294
+ "groups": {
295
+ "type": "object",
296
+ "propertyNames": {
297
+ "type": "string"
298
+ },
299
+ "additionalProperties": {
300
+ "type": "object",
301
+ "properties": {
302
+ "enabled": {
303
+ "type": "boolean"
304
+ },
305
+ "allowFrom": {
306
+ "type": "array",
307
+ "items": {
308
+ "anyOf": [
309
+ {
310
+ "type": "string"
311
+ },
312
+ {
313
+ "type": "number"
314
+ }
315
+ ]
316
+ }
317
+ },
318
+ "requireMention": {
319
+ "type": "boolean"
320
+ },
321
+ "systemPrompt": {
322
+ "type": "string"
323
+ },
324
+ "skills": {
325
+ "type": "array",
326
+ "items": {
327
+ "type": "string"
328
+ }
329
+ }
330
+ },
331
+ "additionalProperties": false
332
+ }
315
333
  }
316
334
  },
317
335
  "required": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/line",
3
- "version": "2026.7.2-beta.7",
3
+ "version": "2026.7.34",
4
4
  "description": "OpenClaw LINE channel plugin for LINE Bot API chats.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -8,11 +8,11 @@
8
8
  },
9
9
  "type": "module",
10
10
  "dependencies": {
11
- "@line/bot-sdk": "11.2.0",
11
+ "@line/bot-sdk": "11.1.0",
12
12
  "zod": "4.4.3"
13
13
  },
14
14
  "peerDependencies": {
15
- "openclaw": ">=2026.7.2-beta.7"
15
+ "openclaw": ">=2026.7.34"
16
16
  },
17
17
  "peerDependenciesMeta": {
18
18
  "openclaw": {
@@ -26,14 +26,6 @@
26
26
  "setupEntry": "./dist/setup-entry.js",
27
27
  "channel": {
28
28
  "id": "line",
29
- "configuredState": {
30
- "env": {
31
- "anyOf": [
32
- "LINE_CHANNEL_ACCESS_TOKEN",
33
- "LINE_CHANNEL_SECRET"
34
- ]
35
- }
36
- },
37
29
  "label": "LINE",
38
30
  "selectionLabel": "LINE (Messaging API)",
39
31
  "detailLabel": "LINE Bot",
@@ -42,64 +34,7 @@
42
34
  "blurb": "LINE Messaging API webhook bot.",
43
35
  "systemImage": "message",
44
36
  "order": 75,
45
- "quickstartAllowFrom": true,
46
- "setup": {
47
- "fields": [
48
- {
49
- "key": "channelAccessToken",
50
- "kind": "string",
51
- "sensitive": true,
52
- "cli": {
53
- "flags": "--channel-access-token <token>",
54
- "description": "LINE channel access token"
55
- }
56
- },
57
- {
58
- "key": "token",
59
- "kind": "string",
60
- "sensitive": true,
61
- "cli": {
62
- "flags": "--token <token>",
63
- "description": "LINE channel access token (alias)"
64
- }
65
- },
66
- {
67
- "key": "channelSecret",
68
- "kind": "string",
69
- "sensitive": true,
70
- "cli": {
71
- "flags": "--channel-secret <secret>",
72
- "description": "LINE channel secret"
73
- }
74
- },
75
- {
76
- "key": "tokenFile",
77
- "kind": "string",
78
- "sensitive": true,
79
- "cli": {
80
- "flags": "--token-file <path>",
81
- "description": "LINE access token file"
82
- }
83
- },
84
- {
85
- "key": "secretFile",
86
- "kind": "string",
87
- "sensitive": true,
88
- "cli": {
89
- "flags": "--secret-file <path>",
90
- "description": "LINE channel secret file"
91
- }
92
- },
93
- {
94
- "key": "useEnv",
95
- "kind": "boolean",
96
- "cli": {
97
- "flags": "--use-env",
98
- "description": "Use LINE environment credentials"
99
- }
100
- }
101
- ]
102
- }
37
+ "quickstartAllowFrom": true
103
38
  },
104
39
  "install": {
105
40
  "npmSpec": "@openclaw/line",
@@ -107,10 +42,10 @@
107
42
  "minHostVersion": ">=2026.4.10"
108
43
  },
109
44
  "compat": {
110
- "pluginApi": ">=2026.7.2-beta.7"
45
+ "pluginApi": ">=2026.7.34"
111
46
  },
112
47
  "build": {
113
- "openclawVersion": "2026.7.2-beta.7"
48
+ "openclawVersion": "2026.7.34"
114
49
  },
115
50
  "release": {
116
51
  "publishToClawHub": true,
@@ -1,103 +0,0 @@
1
- import { createAccountListHelpers } from "openclaw/plugin-sdk/account-helpers";
2
- import { DEFAULT_ACCOUNT_ID, normalizeAccountId, normalizeOptionalAccountId } from "openclaw/plugin-sdk/account-id";
3
- import { resolveAccountEntry, resolveListedDefaultAccountId } from "openclaw/plugin-sdk/account-resolution";
4
- import { tryReadSecretFileSync } from "openclaw/plugin-sdk/secret-file-runtime";
5
- //#region extensions/line/src/accounts.ts
6
- const { resolveAccountConfig: resolveMergedLineAccountConfig } = createAccountListHelpers("line", { omitKeys: ["defaultAccount"] });
7
- function resolveLineCredential(params) {
8
- const { accountId, baseConfig, accountConfig, credentialKey, fileKey, envKey } = params;
9
- const candidates = accountId === DEFAULT_ACCOUNT_ID ? [accountConfig, baseConfig] : [accountConfig];
10
- for (const [index, config] of candidates.entries()) {
11
- const credential = config?.[credentialKey]?.trim();
12
- if (credential) return {
13
- value: credential,
14
- source: "config",
15
- status: "available"
16
- };
17
- const file = config?.[fileKey];
18
- if (file?.trim()) {
19
- const result = tryReadSecretFileSync(file, "LINE credential file", { rejectSymlink: true }, { configPath: `channels.line.${index === 0 ? `accounts.${accountId}.` : ""}${fileKey}` });
20
- return result.status === "available" ? {
21
- value: result.value,
22
- source: "file",
23
- status: "available"
24
- } : {
25
- value: "",
26
- source: "file",
27
- status: "configured_unavailable",
28
- diagnostic: result.diagnostic
29
- };
30
- }
31
- }
32
- const envCredential = accountId === DEFAULT_ACCOUNT_ID ? process.env[envKey]?.trim() : void 0;
33
- if (envCredential) return {
34
- value: envCredential,
35
- source: "env",
36
- status: "available"
37
- };
38
- return {
39
- value: "",
40
- source: "none",
41
- status: "missing"
42
- };
43
- }
44
- function resolveLineAccount(params) {
45
- const cfg = params.cfg;
46
- const accountId = normalizeAccountId(params.accountId ?? resolveDefaultLineAccountId(cfg));
47
- const lineConfig = cfg.channels?.line;
48
- const accounts = lineConfig?.accounts;
49
- const accountConfig = resolveAccountEntry(accounts, accountId);
50
- const token = resolveLineCredential({
51
- accountId,
52
- baseConfig: lineConfig,
53
- accountConfig,
54
- credentialKey: "channelAccessToken",
55
- fileKey: "tokenFile",
56
- envKey: "LINE_CHANNEL_ACCESS_TOKEN"
57
- });
58
- const secret = resolveLineCredential({
59
- accountId,
60
- baseConfig: lineConfig,
61
- accountConfig,
62
- credentialKey: "channelSecret",
63
- fileKey: "secretFile",
64
- envKey: "LINE_CHANNEL_SECRET"
65
- });
66
- const mergedConfig = resolveMergedLineAccountConfig(cfg, accountId);
67
- const baseEnabled = lineConfig?.enabled !== false;
68
- const accountEnabled = accountConfig?.enabled !== false;
69
- const enabled = baseEnabled && accountEnabled;
70
- return {
71
- accountId,
72
- name: accountConfig?.name ?? (accountId === DEFAULT_ACCOUNT_ID ? lineConfig?.name : void 0),
73
- enabled,
74
- channelAccessToken: token.value,
75
- channelSecret: secret.value,
76
- tokenSource: token.source,
77
- signingSecretSource: secret.source,
78
- tokenStatus: token.status,
79
- signingSecretStatus: secret.status,
80
- ...[token.diagnostic, secret.diagnostic].some(Boolean) ? { credentialDiagnostics: [token.diagnostic, secret.diagnostic].filter((diagnostic) => Boolean(diagnostic)) } : {},
81
- config: mergedConfig
82
- };
83
- }
84
- function listLineAccountIds(cfg) {
85
- const lineConfig = cfg.channels?.line;
86
- const accounts = lineConfig?.accounts;
87
- const ids = /* @__PURE__ */ new Set();
88
- if (lineConfig?.channelAccessToken?.trim() || lineConfig?.tokenFile || process.env.LINE_CHANNEL_ACCESS_TOKEN?.trim()) ids.add(DEFAULT_ACCOUNT_ID);
89
- if (accounts) for (const id of Object.keys(accounts)) ids.add(id);
90
- return Array.from(ids);
91
- }
92
- function resolveDefaultLineAccountId(cfg) {
93
- return resolveListedDefaultAccountId({
94
- accountIds: listLineAccountIds(cfg),
95
- configuredDefaultAccountId: normalizeOptionalAccountId((cfg.channels?.line)?.defaultAccount),
96
- normalizeListedAccountId: normalizeAccountId
97
- });
98
- }
99
- function normalizeAccountId$1(accountId) {
100
- return normalizeAccountId(accountId);
101
- }
102
- //#endregion
103
- export { resolveLineAccount as i, normalizeAccountId$1 as n, resolveDefaultLineAccountId as r, listLineAccountIds as t };
@@ -1,4 +0,0 @@
1
- import { v as pushMessageLine } from "./markdown-to-line-DMDQTMhx.js";
2
- import { t as monitorLineProvider } from "./monitor-DXEodYFJ.js";
3
- import { t as probeLineBot } from "./probe-CM03wo6r.js";
4
- export { monitorLineProvider, probeLineBot, pushMessageLine };