weaver-work-cli 0.1.40 → 0.1.42

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 (185) hide show
  1. package/dist/chunks/{archive-JHTONRST.js → archive-J4I6MCKF.js} +2 -2
  2. package/dist/chunks/{archive-oa-FCHLCPHC.js → archive-oa-BRZKKTO4.js} +2 -2
  3. package/dist/chunks/{asset-RLIHC7DB.js → asset-L7D4FAOZ.js} +2 -2
  4. package/dist/chunks/{asset-idle-KVOFTLCP.js → asset-idle-DADLLV75.js} +2 -2
  5. package/dist/chunks/{attachment-content-RZYDB3MB.js → attachment-content-K4C7VLWQ.js} +3 -3
  6. package/dist/chunks/{blog-42OZTJNP.js → blog-BVGQ7NZL.js} +2 -2
  7. package/dist/chunks/{caizhilian-KRK547K5.js → caizhilian-SAADNFD6.js} +2 -2
  8. package/dist/chunks/{calendar-RTWAMKHD.js → calendar-Q7NQY5Z2.js} +61 -23
  9. package/dist/chunks/{chunk-LFMSDBZN.js → chunk-3KTFS4IA.js} +308 -153
  10. package/dist/chunks/{chunk-G2JSIUWF.js → chunk-4PD5NWAX.js} +89 -0
  11. package/dist/chunks/{chunk-T6EGVBKU.js → chunk-4RAE6JXP.js} +1 -1
  12. package/dist/chunks/{chunk-7BRU4EFH.js → chunk-72CKAUAG.js} +29 -2
  13. package/dist/chunks/{chunk-NETCCARD.js → chunk-APVFJUQH.js} +2 -2
  14. package/dist/chunks/{chunk-CAQNBBQA.js → chunk-BBKDXQEC.js} +2 -2
  15. package/dist/chunks/{chunk-57IECMWX.js → chunk-BIPYLLVS.js} +26 -12
  16. package/dist/chunks/{chunk-LN447PY2.js → chunk-EKWAQSLU.js} +3 -2
  17. package/dist/chunks/{chunk-4TEDNCON.js → chunk-FOAA27U5.js} +338 -52
  18. package/dist/chunks/{chunk-7U577Q7U.js → chunk-G4UR6NXN.js} +2 -2
  19. package/dist/chunks/{chunk-NJKREDA3.js → chunk-GEWYMQME.js} +1 -1
  20. package/dist/chunks/{chunk-I566ZYNF.js → chunk-GHXCDPTM.js} +1 -1
  21. package/dist/chunks/{chunk-4CTESSKI.js → chunk-IZ7S7QUS.js} +4 -4
  22. package/dist/chunks/{chunk-VNBU55SL.js → chunk-JPRO6ER2.js} +57 -2432
  23. package/dist/chunks/{chunk-IZSSVYAG.js → chunk-LADPYOWC.js} +2 -2
  24. package/dist/chunks/chunk-LDZQPUIA.js +1238 -0
  25. package/dist/chunks/chunk-NKZRQXST.js +2546 -0
  26. package/dist/chunks/{chunk-JWRZM2H2.js → chunk-QKNKR4RH.js} +3 -3
  27. package/dist/chunks/{chunk-FLS4DPGP.js → chunk-R4CHUSKC.js} +28 -15
  28. package/dist/chunks/{chunk-WFFNM65B.js → chunk-SA6VBIHY.js} +73 -19
  29. package/dist/chunks/{chunk-SPRHHSVC.js → chunk-TTPJJJC4.js} +2 -2
  30. package/dist/chunks/{chunk-7E6MUOEK.js → chunk-W7BEHOSR.js} +2 -2
  31. package/dist/chunks/{chunk-CXRQWOZ5.js → chunk-YRSZQUD2.js} +2 -2
  32. package/dist/chunks/{conflict-VR55AOOO.js → conflict-F2OMZRTO.js} +2 -2
  33. package/dist/chunks/{contract-HI4FNPYE.js → contract-5BETHRSG.js} +2 -2
  34. package/dist/chunks/{cowork-HJLI353D.js → cowork-3MN6EQQO.js} +22 -12
  35. package/dist/chunks/create-flow-5FQNNMVO.js +55 -0
  36. package/dist/chunks/{ebuilder-form-HTGI63UU.js → ebuilder-form-SBHOYBUD.js} +3 -3
  37. package/dist/chunks/{ehr-GYXIYH3A.js → ehr-KMOJULKG.js} +432 -1234
  38. package/dist/chunks/{env-DW3G4HUO.js → env-LB7NBL2O.js} +2 -2
  39. package/dist/chunks/{esb-I5INCEFE.js → esb-W2PJCFCX.js} +4 -4
  40. package/dist/chunks/{factory-TKXGXS6L.js → factory-6ZFQXQ46.js} +1 -1
  41. package/dist/chunks/{fna-K2MHTQ24.js → fna-ZQPCUV4R.js} +2 -2
  42. package/dist/chunks/{group-chat-VYBNMJLG.js → group-chat-2HHAJN46.js} +5 -3
  43. package/dist/chunks/{host-ZUQTJYYK.js → host-4CBHGOHT.js} +3 -3
  44. package/dist/chunks/{host-D5SERMAJ.js → host-ATKVNZAT.js} +3 -3
  45. package/dist/chunks/{host-JM4YVHFM.js → host-BQH22NTQ.js} +3 -3
  46. package/dist/chunks/{host-L3VLITMT.js → host-X2CSLFM6.js} +3 -3
  47. package/dist/chunks/{host-256GVCAH.js → host-YTODKMSL.js} +3 -3
  48. package/dist/chunks/{hrm-VLRBKTZB.js → hrm-FFM4UJFS.js} +4 -4
  49. package/dist/chunks/{im-QK3VTLXK.js → im-VEHKDQPB.js} +7 -7
  50. package/dist/chunks/{invoice-T5JTA32H.js → invoice-LVIKSIIF.js} +3 -3
  51. package/dist/chunks/{jiuchuanhui-P2FNEQVZ.js → jiuchuanhui-X6DINO5P.js} +2 -2
  52. package/dist/chunks/{lazy-dispatch-XRRI46M6.js → lazy-dispatch-KSWTN5L6.js} +4 -4
  53. package/dist/chunks/{mail-3Y7MJ6PS.js → mail-VDKRGUD3.js} +2 -2
  54. package/dist/chunks/{meeting-M7LTXGJE.js → meeting-CLC6HP3Z.js} +12 -11
  55. package/dist/chunks/{okr-OBC6S67L.js → okr-CHG4OO3U.js} +2 -2
  56. package/dist/chunks/{plan-5H6I53SK.js → plan-XWR75667.js} +2 -2
  57. package/dist/chunks/{project-L75QZV4S.js → project-5BXOOKMG.js} +40 -23
  58. package/dist/chunks/recruit-stage-DGMFNNDE.js +4507 -0
  59. package/dist/chunks/{registry-RXPN6BBT.js → registry-7FFOXIAW.js} +4 -4
  60. package/dist/chunks/{registry-KMHCPAAD.js → registry-BKBZPBAJ.js} +10 -9
  61. package/dist/chunks/{registry-QGHFNUWS.js → registry-OZSMDVPP.js} +2 -2
  62. package/dist/chunks/{registry-UGRBCBHO.js → registry-RHMW6ANW.js} +2 -2
  63. package/dist/chunks/{registry-NYPYMZXG.js → registry-Z43434VG.js} +1 -1
  64. package/dist/chunks/{room-recommend-A3UDC3CA.js → room-recommend-62H7ZQQ6.js} +4 -4
  65. package/dist/chunks/{schedule-5GCACCK7.js → schedule-FNXKH3DQ.js} +4 -4
  66. package/dist/chunks/{workflow-M5ZJ7DWF.js → workflow-ADHKCAJK.js} +6 -6
  67. package/dist/index.js +33 -28
  68. package/dist/internal/e10/auth/commands.js +1 -0
  69. package/dist/internal/e10/auth/messages.js +6 -0
  70. package/dist/internal/e10/auth/session.js +17 -0
  71. package/dist/internal/e10/auth/xiaoe.js +286 -44
  72. package/dist/internal/e10/auth-recovery.js +36 -5
  73. package/dist/internal/e10/context.js +56 -12
  74. package/dist/internal/e10/index.js +1 -1
  75. package/dist/internal/e10/network-error.js +93 -0
  76. package/dist/internal/e10/request-runtime.js +6 -0
  77. package/dist/shortcuts/calendar/operations/read.js +31 -22
  78. package/dist/shortcuts/calendar/operations/write.js +45 -1
  79. package/dist/shortcuts/cowork/operations/discuss-write.js +5 -1
  80. package/dist/shortcuts/cowork/operations/item-write.js +1 -7
  81. package/dist/shortcuts/cowork/operations/member-write.js +3 -1
  82. package/dist/shortcuts/cowork/operations/permission-write.js +5 -1
  83. package/dist/shortcuts/cowork/operations/shared.js +7 -0
  84. package/dist/shortcuts/ehr/operations/attend-write.js +43 -1
  85. package/dist/shortcuts/ehr/operations/hr-contact.js +7 -4
  86. package/dist/shortcuts/ehr/operations/hr-report.js +13 -7
  87. package/dist/shortcuts/ehr/operations/recruit-candidate-import.js +134 -59
  88. package/dist/shortcuts/ehr/operations/recruit-write.js +262 -17
  89. package/dist/shortcuts/ehr/operations/recruit.js +10 -4
  90. package/dist/shortcuts/ehr/operations/shared.js +47 -0
  91. package/dist/shortcuts/hrm/operations/org.js +118 -0
  92. package/dist/shortcuts/index.js +5 -0
  93. package/dist/shortcuts/meeting/operations/eb/catalog.js +4 -1
  94. package/dist/shortcuts/meeting/operations/eb/create-flow.js +85 -28
  95. package/dist/shortcuts/meeting/operations/eb/factory.js +33 -0
  96. package/dist/shortcuts/meeting/operations/eb/group-chat.js +25 -3
  97. package/dist/shortcuts/meeting/operations/eb/person-cache.js +96 -0
  98. package/dist/shortcuts/meeting/operations/eb/room-recommend.js +33 -11
  99. package/dist/shortcuts/project/operations/read.js +6 -25
  100. package/dist/shortcuts/project/operations/shared.js +22 -0
  101. package/dist/shortcuts/project/operations/write.js +28 -2
  102. package/dist/shortcuts/recruit-stage/context.js +119 -0
  103. package/dist/shortcuts/recruit-stage/continuation.js +73 -0
  104. package/dist/shortcuts/recruit-stage/errors.js +65 -0
  105. package/dist/shortcuts/recruit-stage/host.js +109 -0
  106. package/dist/shortcuts/recruit-stage/index.js +115 -0
  107. package/dist/shortcuts/recruit-stage/manifest.js +29 -0
  108. package/dist/shortcuts/recruit-stage/operations/interview-arrange.js +722 -0
  109. package/dist/shortcuts/recruit-stage/operations/interview-feedback.js +269 -0
  110. package/dist/shortcuts/recruit-stage/operations/jd-create.js +630 -0
  111. package/dist/shortcuts/recruit-stage/operations/list.js +431 -0
  112. package/dist/shortcuts/recruit-stage/operations/registry.js +38 -0
  113. package/dist/shortcuts/recruit-stage/operations/resume-import.js +1198 -0
  114. package/dist/shortcuts/recruit-stage/operations/search.js +158 -0
  115. package/dist/shortcuts/recruit-stage/operations/types.js +25 -0
  116. package/dist/shortcuts/recruit-stage/school-tiers.json +318 -0
  117. package/dist/shortcuts/recruit-stage/shared.js +608 -0
  118. package/dist/shortcuts/workflow/operations/todoSmartConvert/detailFieldRules.js +4 -2
  119. package/dist/shortcuts/workflow/operations/todoSmartConvert/summaryCache.js +13 -6
  120. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoDetailCache.js +17 -24
  121. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoDetailFetcher.js +14 -9
  122. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.collect.js +50 -8
  123. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.core.js +2 -1
  124. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.detail.js +17 -11
  125. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.group.js +7 -39
  126. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.groupSummary.js +3 -2
  127. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.js +51 -15
  128. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.pipeline.js +16 -1
  129. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.smartGroup.js +151 -63
  130. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.subGroup.js +56 -0
  131. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.summary.js +39 -14
  132. package/docs/e10-auth.md +7 -1
  133. package/docs/operation-manual.md +8 -0
  134. package/package.json +1 -1
  135. package/scripts/install-skill-to-xiaoe.mjs +105 -0
  136. package/scripts/package-skill.mjs +4 -2
  137. package/skill-template/business-info.json +24 -0
  138. package/skill-template/domains/recruit-stage.md +29 -0
  139. package/skills/weaver-e10-calendar/SKILL.md +2 -1
  140. package/skills/weaver-e10-calendar/references/calendar-write.md +54 -0
  141. package/skills/weaver-e10-cowork/SKILL.md +1 -1
  142. package/skills/weaver-e10-cowork/references/cowork-write.md +3 -1
  143. package/skills/weaver-e10-jucailin/SKILL.md +1 -1
  144. package/skills/weaver-e10-jucailin/references/attend-write.md +8 -0
  145. package/skills/weaver-e10-jucailin/references/hr-contact.md +8 -0
  146. package/skills/weaver-e10-jucailin/references/hr-report.md +8 -0
  147. package/skills/weaver-e10-jucailin/references/recruit-create.md +2 -2
  148. package/skills/weaver-e10-jucailin/references/recruit-read.md +1 -1
  149. package/skills/weaver-e10-jucailin/references/recruit-write.md +4 -3
  150. package/skills/weaver-e10-mail/SKILL.md +1 -1
  151. package/skills/weaver-e10-meeting/SKILL.md +32 -2
  152. package/skills/weaver-e10-meeting.zip +0 -0
  153. package/skills/weaver-e10-recruit-stage/SKILL.md +226 -0
  154. package/skills/weaver-e10-recruit-stage/agents/openai.yaml +119 -0
  155. package/skills/weaver-e10-recruit-stage/lib/recruit-xiaoe-file.mjs +188 -0
  156. package/skills/weaver-e10-recruit-stage/references/recruit-arrange-interview.md +322 -0
  157. package/skills/weaver-e10-recruit-stage/references/recruit-capability-check.md +127 -0
  158. package/skills/weaver-e10-recruit-stage/references/recruit-check-install.md +65 -0
  159. package/skills/weaver-e10-recruit-stage/references/recruit-detail-process.md +63 -0
  160. package/skills/weaver-e10-recruit-stage/references/recruit-edit-interview-feedback.md +142 -0
  161. package/skills/weaver-e10-recruit-stage/references/recruit-jd-create.md +73 -0
  162. package/skills/weaver-e10-recruit-stage/references/recruit-jd-template.md +56 -0
  163. package/skills/weaver-e10-recruit-stage/references/recruit-list-candidate.md +101 -0
  164. package/skills/weaver-e10-recruit-stage/references/recruit-list-interview.md +148 -0
  165. package/skills/weaver-e10-recruit-stage/references/recruit-match-candidates.md +77 -0
  166. package/skills/weaver-e10-recruit-stage/references/recruit-output-links.md +59 -0
  167. package/skills/weaver-e10-recruit-stage/references/recruit-resolve-creator.md +69 -0
  168. package/skills/weaver-e10-recruit-stage/references/recruit-resolve-metadata.md +241 -0
  169. package/skills/weaver-e10-recruit-stage/references/recruit-resume-import.md +438 -0
  170. package/skills/weaver-e10-recruit-stage/references/recruit-resume-parse.md +128 -0
  171. package/skills/weaver-e10-recruit-stage/references/recruit-search-candidate.md +146 -0
  172. package/skills/weaver-e10-recruit-stage/references/recruit-urge-feedback.md +69 -0
  173. package/skills/weaver-e10-shared/SKILL.md +1 -1
  174. package/skills/weaver-e10-shared/references/e10-auth-and-session.md +4 -2
  175. package/skills/weaver-e10-shijingran/SKILL.md +3 -2
  176. package/skills/weaver-e10-shijingran/references/operations.md +3 -1
  177. package/skills/weaver-e10-shijingran/references/source-manifest.json +41 -40
  178. package/skills/weaver-e10-shijingran/references/write-operations.md +2 -0
  179. package/skills/weaver-e10-workflow/SKILL.md +4 -2
  180. package/skills/weaver-e10-workflow/aigroup/default.json +11 -9
  181. package/skills/weaver-e10-workflow/references/todo-smart-convert.md +23 -13
  182. package/skills/weaver-e10-workflow/tools/todo-summary.cjs +62 -20
  183. package/skills/weaver-e10-yepiaotong/SKILL.md +9 -10
  184. package/skills/weaver-e10-yepiaotong/references/invoice-agent-entry.md +6 -3
  185. package/dist/chunks/{chunk-E7OK5WD5.js → chunk-2LV74IWP.js} +5 -5
@@ -126,8 +126,97 @@ var orgDetail = {
126
126
  });
127
127
  }
128
128
  };
129
+ var orgLookup = {
130
+ name: "hrm.org.lookup",
131
+ resource: "org",
132
+ method: "org.lookup",
133
+ action: "hrm.org.lookup",
134
+ summary: "\u7EC4\u7EC7\u6A21\u7CCA\u67E5\u627E\uFF1A\u5173\u952E\u8BCD**\u4E0D\u7528\u5199\u5168**\uFF0C\u4E00\u6B21\u8FD4\u56DE\u6240\u6709\u8FD1\u4F3C\u7684\u90E8\u95E8/\u5206\u90E8\uFF08\u542B\u5B8C\u6574\u8DEF\u5F84\u3001\u6309\u76F8\u4F3C\u5EA6\u6392\u5E8F\uFF09",
135
+ risk: READ,
136
+ inputSchema: schemaOf({
137
+ keyword: { type: "string", minLength: 1, description: "\u90E8\u95E8/\u5206\u90E8\u540D\u79F0\u5173\u952E\u8BCD\uFF08\u53EF\u53EA\u5199\u4E00\u90E8\u5206\uFF0C\u5982\u300C\u4F1A\u8BAE\u7BA1\u7406\u300D\u300C\u7814\u53D1\u300D\uFF09" },
138
+ type: { type: "string", enum: ["department", "subcompany", "both"], description: "\u9ED8\u8BA4 both\uFF08\u90E8\u95E8+\u5206\u90E8\u90FD\u67E5\uFF09" },
139
+ limit: { type: "number", minimum: 1, maximum: 50, description: "\u6700\u591A\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4 10" }
140
+ }, { required: ["keyword"] }),
141
+ handler: async (args, { host }) => {
142
+ const keyword = String(args.keyword ?? "").trim();
143
+ if (!keyword) throw hrmValidationError("keyword_required", "keyword \u5FC5\u586B");
144
+ const scope = args.type === "department" || args.type === "subcompany" ? String(args.type) : "both";
145
+ const limit = Math.max(1, Math.min(50, Number(args.limit) || 10));
146
+ const fetchOrg = async (type, text2) => {
147
+ const body = {
148
+ ...browserBaseBody(),
149
+ virtualType: "ALL",
150
+ cmd: "list",
151
+ formDatas: { name: [{ nameCondition: { id: "in", content: "\u5305\u542B", disabled: false }, name: text2 }] },
152
+ quickSearchDatas: {},
153
+ type: "and",
154
+ stopDepartment: false,
155
+ current: 1,
156
+ pageSize: 200
157
+ };
158
+ const path = type === "subcompany" ? "/api/hrm/common/browser/data/subcompany" : "/api/hrm/common/browser/data/department";
159
+ const resp = await host.request({ method: "POST", path, body });
160
+ const rows2 = resp?.data?.data ?? [];
161
+ return rows2.map((r) => ({
162
+ id: String(r.id ?? ""),
163
+ name: String(r.name ?? ""),
164
+ type,
165
+ fullPath: String(r.fullPath ?? r.path ?? ""),
166
+ ...r.subcompanyName ? { subcompanyName: String(r.subcompanyName) } : {},
167
+ ...r.parentName ? { parentName: String(r.parentName) } : {}
168
+ })).filter((r) => r.id);
169
+ };
170
+ const types = scope === "both" ? ["department", "subcompany"] : [scope];
171
+ const collected = [];
172
+ let requests = 0;
173
+ const stripSuffix = (text2) => text2.replace(/(部门|事业部|中心|科室|组|部)$/u, "").trim();
174
+ for (const type of types) {
175
+ requests += 1;
176
+ collected.push(...await fetchOrg(type, keyword));
177
+ const stripped = stripSuffix(keyword);
178
+ if (collected.length === 0 && stripped !== "" && stripped !== keyword) {
179
+ const raws = await fetchOrg(type, stripped);
180
+ collected.push(...raws.map((row) => ({ ...row, stripped: true })));
181
+ requests += 1;
182
+ }
183
+ if (collected.length === 0) {
184
+ for (let len = Math.min(keyword.length, 6) - 1; len >= 2; len -= 1) {
185
+ const short = keyword.slice(0, len);
186
+ const raws = await fetchOrg(type, short);
187
+ requests += 1;
188
+ if (raws.length > 0) {
189
+ collected.push(...raws.map((row) => ({ ...row, shortened: short })));
190
+ break;
191
+ }
192
+ }
193
+ }
194
+ }
195
+ const scoreOf = (row) => {
196
+ const name = String(row.name);
197
+ const pathText = String(row.fullPath ?? "");
198
+ let score = 0;
199
+ if (name === keyword) score = 100;
200
+ else if (name.startsWith(keyword)) score = 85;
201
+ else if (name.includes(keyword)) score = 70;
202
+ else if (pathText.includes(keyword)) score = 50;
203
+ else score = 35;
204
+ if (row.type === "department") score += 5;
205
+ if (row.stripped) score -= 5;
206
+ if (row.shortened) score -= 15;
207
+ return score;
208
+ };
209
+ const rows = collected.map((row) => ({ ...row, score: scoreOf(row) })).sort((left, right) => Number(right.score) - Number(left.score) || String(left.name).localeCompare(String(right.name), "zh-Hans-CN")).slice(0, limit);
210
+ return hrmSuccess("hrm.org.lookup", {
211
+ rows,
212
+ total: rows.length,
213
+ ...rows.length === 0 ? { hint: `\u6CA1\u6709\u540D\u79F0\u542B\u300C${keyword}\u300D\u7684\u90E8\u95E8\u6216\u5206\u90E8\u3002\u6362\u66F4\u77ED\u7684\u5173\u952E\u8BCD\uFF08\u5982\u4E24\u4E2A\u5B57\uFF09\u518D\u8BD5\uFF0C\u6216\u7528 hrm.org.query \u6309 parent/subcompany \u9010\u7EA7\u627E\u3002` } : {}
214
+ }, { requests, keyword });
215
+ }
216
+ };
129
217
  var hrmOrgOperations = [
130
218
  orgQuery,
219
+ orgLookup,
131
220
  orgDetail
132
221
  ];
133
222
 
@@ -2,7 +2,7 @@ import { createRequire as __esbuildCreateRequire } from 'node:module';
2
2
  const require = __esbuildCreateRequire(import.meta.url);
3
3
  import {
4
4
  isEsbFlowUnavailable
5
- } from "./chunk-CAQNBBQA.js";
5
+ } from "./chunk-BBKDXQEC.js";
6
6
  import {
7
7
  esbValidationError
8
8
  } from "./chunk-GPMFD4RD.js";
@@ -842,7 +842,9 @@ var EB_ENDPOINTS = [
842
842
  interfacePk: "query_roomusage_list",
843
843
  countPk: "query_roomusage_count",
844
844
  queryParams: ["mt_id", "address", "enddatetime", "begindatetime"],
845
- summary: "EB \u7248\u4F1A\u8BAE\u5BA4\u5360\u7528\u5217\u8868\uFF08query_roomusage_list + count\uFF09"
845
+ dateFilter: true,
846
+ paramAliases: { roomId: "address", room_id: "address", day: "date" },
847
+ summary: "EB \u7248\u4F1A\u8BAE\u5BA4\u5360\u7528\u5217\u8868\uFF08query_roomusage_list + count\uFF09\u3002\u6309\u65E5\u671F\u8FC7\u6EE4\u4F20 date\uFF08yyyy-MM-dd\uFF09\u6216 begindatetime/enddatetime\uFF1B**\u4E0D\u4F20\u4EFB\u4F55\u65F6\u95F4\u6761\u4EF6 = \u8FD4\u56DE\u5168\u91CF\u5386\u53F2**\uFF0C\u4E0D\u662F\u63A5\u53E3\u4E0D\u652F\u6301\u8FC7\u6EE4"
846
848
  },
847
849
  {
848
850
  domain: "roomUsage",
@@ -1688,6 +1690,16 @@ function buildReadInputSchema(endpoint) {
1688
1690
  for (const param of endpoint.queryParams ?? []) {
1689
1691
  properties[param] = { type: "string", description: `EB \u7B5B\u9009\u53C2\u6570\uFF08URL \u5360\u4F4D\u7B26\u540D ${param}\uFF09` };
1690
1692
  }
1693
+ if (endpoint.dateFilter) {
1694
+ properties.date = {
1695
+ type: "string",
1696
+ pattern: "^\\d{4}-\\d{2}-\\d{2}$",
1697
+ description: "\u6309\u65E5\u671F\u8FC7\u6EE4\uFF08yyyy-MM-dd\uFF09\uFF1A\u7B49\u4EF7\u4E8E begindatetime=\u5F53\u5929 00:00 + enddatetime=\u5F53\u5929 23:59\u3002\u26D4 \u4E0D\u4F20 date \u4E14\u4E0D\u4F20\u8D77\u6B62\u65F6\u95F4 = \u8FD4\u56DE**\u5168\u91CF\u5386\u53F2**\uFF08\u4E0D\u662F\u63A5\u53E3\u4E0D\u652F\u6301\u6309\u65E5\u671F\u8FC7\u6EE4\uFF09"
1698
+ };
1699
+ }
1700
+ for (const [alias, target] of Object.entries(endpoint.paramAliases ?? {})) {
1701
+ properties[alias] = { type: "string", description: `\u5165\u53C2\u522B\u540D\uFF0C\u7B49\u4EF7\u4E8E ${target}` };
1702
+ }
1691
1703
  for (const param of endpoint.mainTableParams ?? []) {
1692
1704
  properties[param] = {
1693
1705
  type: "string",
@@ -1771,6 +1783,21 @@ function buildReadOperation(endpoint) {
1771
1783
  const value = args[param];
1772
1784
  if (value !== void 0 && value !== null && value !== "") query[param] = value;
1773
1785
  }
1786
+ for (const [alias, target] of Object.entries(endpoint.paramAliases ?? {})) {
1787
+ const value = args[alias];
1788
+ if (value === void 0 || value === null || value === "") continue;
1789
+ if (query[target] === void 0) {
1790
+ if (target === "date") continue;
1791
+ query[target] = value;
1792
+ }
1793
+ }
1794
+ if (endpoint.dateFilter) {
1795
+ const day = String(args.date ?? args.day ?? "").trim().slice(0, 10);
1796
+ if (/^\d{4}-\d{2}-\d{2}$/.test(day)) {
1797
+ if (query.begindatetime === void 0) query.begindatetime = `${day} 00:00`;
1798
+ if (query.enddatetime === void 0) query.enddatetime = `${day} 23:59`;
1799
+ }
1800
+ }
1774
1801
  if (endpoint.kind === "get") {
1775
1802
  const response2 = await env.host.request({
1776
1803
  method: "POST",
@@ -2256,7 +2283,7 @@ function buildWriteOperations(endpoint, preflight, afterWrite) {
2256
2283
  );
2257
2284
  }
2258
2285
  if (endpoint.interfacePk === "create_meeting") {
2259
- const { fetchEbAppSettings, assertEbCreatePathAllowed } = await import("./conflict-VR55AOOO.js");
2286
+ const { fetchEbAppSettings, assertEbCreatePathAllowed } = await import("./conflict-F2OMZRTO.js");
2260
2287
  assertEbCreatePathAllowed(await fetchEbAppSettings(env, applyName));
2261
2288
  }
2262
2289
  const pkQuery = writePkQuery(endpoint, payload);
@@ -9,11 +9,11 @@ import {
9
9
  createE10RequestRuntime,
10
10
  isE10AuthenticationRequired,
11
11
  requireE10Session
12
- } from "./chunk-WFFNM65B.js";
12
+ } from "./chunk-SA6VBIHY.js";
13
13
  import {
14
14
  E10_SESSION_EXPIRED_MESSAGE,
15
15
  getActiveProfile
16
- } from "./chunk-4TEDNCON.js";
16
+ } from "./chunk-FOAA27U5.js";
17
17
 
18
18
  // src/shortcuts/workflow/host.ts
19
19
  var DEFAULT_TIMEOUT_MS = 3e4;
@@ -14,11 +14,11 @@ import {
14
14
  createE10RequestRuntime,
15
15
  isE10SessionExpiredResponse,
16
16
  requireE10Session
17
- } from "./chunk-WFFNM65B.js";
17
+ } from "./chunk-SA6VBIHY.js";
18
18
  import {
19
19
  E10_SESSION_EXPIRED_MESSAGE,
20
20
  getActiveProfile
21
- } from "./chunk-4TEDNCON.js";
21
+ } from "./chunk-FOAA27U5.js";
22
22
 
23
23
  // src/shortcuts/esb/host.ts
24
24
  var ESB_PATHS = {
@@ -2,12 +2,12 @@ import { createRequire as __esbuildCreateRequire } from 'node:module';
2
2
  const require = __esbuildCreateRequire(import.meta.url);
3
3
  import {
4
4
  meetingStateDir
5
- } from "./chunk-NJKREDA3.js";
5
+ } from "./chunk-GEWYMQME.js";
6
6
  import {
7
7
  meetingSuccess,
8
8
  meetingValidationError,
9
9
  schemaOf
10
- } from "./chunk-7BRU4EFH.js";
10
+ } from "./chunk-72CKAUAG.js";
11
11
 
12
12
  // src/shortcuts/meeting/operations/eb/group-chat.ts
13
13
  import { mkdir, readFile, readdir, rm, writeFile } from "node:fs/promises";
@@ -16,17 +16,17 @@ var DEFAULT_MEETING_GROUP_FLOW_ID = "1333212605456498718";
16
16
  var GROUP_FIELD = "imchat_groupid";
17
17
  var PENDING_DIR = "pending-forms";
18
18
  async function buildEsbEnv(env) {
19
- const { createEsbHost } = await import("./host-256GVCAH.js");
19
+ const { createEsbHost } = await import("./host-YTODKMSL.js");
20
20
  const { createEsbContinuationSigner } = await import("./continuation-NLECEJPX.js");
21
21
  return { ctx: env.ctx, host: createEsbHost(env.ctx), continuation: createEsbContinuationSigner(env.ctx) };
22
22
  }
23
23
  async function buildImEnv(env) {
24
- const { createImHost } = await import("./host-JM4YVHFM.js");
24
+ const { createImHost } = await import("./host-BQH22NTQ.js");
25
25
  const { createImContinuationSigner } = await import("./continuation-2CKSBLA6.js");
26
26
  return { ctx: env.ctx, host: createImHost(env.ctx), continuation: createImContinuationSigner(env.ctx) };
27
27
  }
28
28
  async function buildWorkflowEnv(env) {
29
- const { createWorkflowHost } = await import("./host-L3VLITMT.js");
29
+ const { createWorkflowHost } = await import("./host-X2CSLFM6.js");
30
30
  const { createWorkflowContinuationSigner } = await import("./continuation-HZIZRZBX.js");
31
31
  return { ctx: env.ctx, host: createWorkflowHost(env.ctx), continuation: createWorkflowContinuationSigner(env.ctx) };
32
32
  }
@@ -113,7 +113,7 @@ async function findGroupByName(env, name) {
113
113
  const target = name.trim();
114
114
  if (target === "") return null;
115
115
  try {
116
- const { getImOperation } = await import("./registry-QGHFNUWS.js");
116
+ const { getImOperation } = await import("./registry-OZSMDVPP.js");
117
117
  const search = getImOperation("im.group.search");
118
118
  const imEnv = await buildImEnv(env);
119
119
  const found = await search.handler({ name: target }, imEnv);
@@ -153,9 +153,22 @@ async function triggerGroupFlow(env, input, meetingName, memberIds) {
153
153
  enddatetime: String(input.endDatetime ?? ""),
154
154
  hrmmembers: memberIds.join(",")
155
155
  };
156
- if (input.address) mainTable.address = input.address;
156
+ if (input.address) {
157
+ const raw = input.address;
158
+ let addressText = raw && typeof raw === "object" ? String(raw.name ?? raw.id ?? "") : String(raw).trim();
159
+ if (addressText === "[object Object]") addressText = "";
160
+ if (addressText) {
161
+ try {
162
+ const { resolveAddressRoom } = await import("./create-flow-5FQNNMVO.js");
163
+ const room = await resolveAddressRoom(env, addressText);
164
+ if (room?.name) addressText = room.name;
165
+ } catch {
166
+ }
167
+ }
168
+ if (addressText) mainTable.address = addressText;
169
+ }
157
170
  try {
158
- const { getEsbOperation } = await import("./registry-RXPN6BBT.js");
171
+ const { getEsbOperation } = await import("./registry-7FFOXIAW.js");
159
172
  const esbEnv = await buildEsbEnv(env);
160
173
  const prepare = getEsbOperation("esb.trigger.prepare");
161
174
  const apply = getEsbOperation("esb.trigger.apply");
@@ -188,7 +201,7 @@ async function bindGroupToMeeting(env, meetingId, groupId) {
188
201
  const group = String(groupId).trim();
189
202
  if (id === "" || group === "") return { ok: false, error: "\u6CA1\u6709\u4F1A\u8BAE id \u6216\u7FA4 id" };
190
203
  try {
191
- const { EB_BASE, ebBusinessSuccess, writeBody } = await import("./factory-TKXGXS6L.js");
204
+ const { EB_BASE, ebBusinessSuccess, writeBody } = await import("./factory-6ZFQXQ46.js");
192
205
  const session = await env.host.getSession();
193
206
  await env.host.request({
194
207
  method: "POST",
@@ -206,7 +219,7 @@ async function bindGroupToMeeting(env, meetingId, groupId) {
206
219
  return { ok: false, error: String(error?.message ?? error).slice(0, 300) };
207
220
  }
208
221
  try {
209
- const { getMeetingOperation } = await import("./registry-KMHCPAAD.js");
222
+ const { getMeetingOperation } = await import("./registry-BKBZPBAJ.js");
210
223
  const detail = getMeetingOperation("meeting.eb.meeting.detail");
211
224
  const read = await detail.handler({ id }, env);
212
225
  const main = read?.data?.data ?? read?.data?.main ?? {};
@@ -222,7 +235,7 @@ async function bindGroupToMeeting(env, meetingId, groupId) {
222
235
  }
223
236
  async function searchMyRequests(env, options = {}) {
224
237
  try {
225
- const { getWorkflowOperation } = await import("./registry-UGRBCBHO.js");
238
+ const { getWorkflowOperation } = await import("./registry-RHMW6ANW.js");
226
239
  const op = getWorkflowOperation("workflow.search");
227
240
  const wfEnv = await buildWorkflowEnv(env);
228
241
  const args = { category: "mine", pageSize: 20, sort: "createTime:desc" };
@@ -254,7 +267,7 @@ async function resolveMeetingByRequestId(env, requestId, sinceMs) {
254
267
  const target = String(requestId).trim();
255
268
  if (target === "") return null;
256
269
  try {
257
- const { getMeetingOperation } = await import("./registry-KMHCPAAD.js");
270
+ const { getMeetingOperation } = await import("./registry-BKBZPBAJ.js");
258
271
  const list = getMeetingOperation("meeting.eb.meeting.list");
259
272
  const detail = getMeetingOperation("meeting.eb.meeting.detail");
260
273
  const page = await list.handler({ pageSize: 30 }, env);
@@ -481,6 +494,7 @@ var meetingEbGroupChatOperations = [ebMeetingGroupEnsure];
481
494
 
482
495
  export {
483
496
  DEFAULT_MEETING_GROUP_FLOW_ID,
497
+ buildImEnv,
484
498
  savePendingForm,
485
499
  ensureMeetingGroupChat,
486
500
  meetingEbGroupChatOperations
@@ -19,7 +19,7 @@ import {
19
19
  } from "./chunk-AJ62BGAW.js";
20
20
  import {
21
21
  clearInvoiceTokenForSession
22
- } from "./chunk-SPRHHSVC.js";
22
+ } from "./chunk-TTPJJJC4.js";
23
23
  import {
24
24
  E10AuthSession,
25
25
  XIAOE_AGENT_TYPE,
@@ -48,7 +48,7 @@ import {
48
48
  setActiveProfile,
49
49
  switchActiveProfile,
50
50
  tryXiaoEUnifiedLogin
51
- } from "./chunk-4TEDNCON.js";
51
+ } from "./chunk-FOAA27U5.js";
52
52
  import {
53
53
  CliError,
54
54
  isCliError,
@@ -4010,6 +4010,7 @@ async function runXiaoELogin(ctx, options) {
4010
4010
  `tokenScriptDetected=${String(xiaoESources.tokenScript)}`,
4011
4011
  `clientSettingsDetected=${String(xiaoESources.clientCredential)}`,
4012
4012
  `environmentCredentialDetected=${String(xiaoESources.environmentCredential)}`,
4013
+ `clientType=${xiaoESources.clientType || "(unset)"}`,
4013
4014
  `baseUrl=${baseUrl || "(unresolved)"}`
4014
4015
  ].join(" "));
4015
4016
  if (useXiaoELogin) {