duclaw-cli 1.9.15 → 1.9.17

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 (258) hide show
  1. package/dist/DuclawMac.app/Contents/Info.plist +31 -0
  2. package/dist/DuclawMac.app/Contents/MacOS/DuclawMac +0 -0
  3. package/dist/bundle.js +230 -29
  4. package/dist/macos/Duclaw-0.1.0-macOS.zip +0 -0
  5. package/dist/macos/Duclaw.app/Contents/Info.plist +50 -0
  6. package/dist/macos/Duclaw.app/Contents/MacOS/Duclaw +0 -0
  7. package/dist/macos/Duclaw.app/Contents/PkgInfo +1 -0
  8. package/dist/macos/Duclaw.app/Contents/_CodeSignature/CodeResources +123 -0
  9. package/dist/macos/Duclaw.app/Contents/embedded.provisionprofile +0 -0
  10. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/DerivedSources/Duclaw-Swift.h +391 -0
  11. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/DerivedSources/Entitlements.plist +16 -0
  12. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Duclaw-all-non-framework-target-headers.hmap +0 -0
  13. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Duclaw-all-target-headers.hmap +0 -0
  14. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Duclaw-generated-files.hmap +0 -0
  15. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Duclaw-own-target-headers.hmap +0 -0
  16. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Duclaw-project-headers.hmap +0 -0
  17. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Duclaw.DependencyMetadataFileList +0 -0
  18. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Duclaw.DependencyStaticMetadataFileList +0 -0
  19. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Duclaw.app.xcent +16 -0
  20. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Duclaw.app.xcent.der +2 -0
  21. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Duclaw.hmap +0 -0
  22. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/AppModels.o +0 -0
  23. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/AppModels.stringsdata +5 -0
  24. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/AppStore.o +0 -0
  25. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/AppStore.stringsdata +5 -0
  26. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/BrandTheme.o +0 -0
  27. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/BrandTheme.stringsdata +5 -0
  28. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/ContentView.o +0 -0
  29. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/ContentView.stringsdata +56 -0
  30. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/ConversationView.o +0 -0
  31. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/ConversationView.stringsdata +112 -0
  32. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/CronView.o +0 -0
  33. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/CronView.stringsdata +104 -0
  34. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/DetailView.o +0 -0
  35. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/DetailView.stringsdata +5 -0
  36. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/Duclaw-OutputFileMap.json +101 -0
  37. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/Duclaw-Swift.h +385 -0
  38. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/Duclaw-dependencies-1.json +655 -0
  39. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/Duclaw-linker-args.resp +1 -0
  40. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/Duclaw-primary.d +22 -0
  41. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/Duclaw-primary.dia +0 -0
  42. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/Duclaw-primary.swiftconstvalues +1 -0
  43. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/Duclaw.LinkFileList +18 -0
  44. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/Duclaw.SwiftConstValuesFileList +1 -0
  45. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/Duclaw.SwiftFileList +18 -0
  46. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/Duclaw.abi.json +9 -0
  47. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/Duclaw.dependency-scan.dia +0 -0
  48. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/Duclaw.swiftdoc +0 -0
  49. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/Duclaw.swiftmodule +0 -0
  50. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/Duclaw.swiftsourceinfo +0 -0
  51. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/DuclawMacApp.o +0 -0
  52. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/DuclawMacApp.stringsdata +56 -0
  53. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/Duclaw_const_extract_protocols.json +1 -0
  54. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/Duclaw_dependency_info.dat +0 -0
  55. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/ExtractedAppShortcutsMetadata.stringsdata +7 -0
  56. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/FilesView.o +0 -0
  57. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/FilesView.stringsdata +96 -0
  58. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/GoalsView.o +0 -0
  59. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/GoalsView.stringsdata +40 -0
  60. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/LocalRuntimeAPIClient.o +0 -0
  61. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/LocalRuntimeAPIClient.stringsdata +5 -0
  62. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/MacRuntimeAPIClient.o +0 -0
  63. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/MacRuntimeAPIClient.stringsdata +5 -0
  64. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/RuntimeSupervisor.o +0 -0
  65. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/RuntimeSupervisor.stringsdata +5 -0
  66. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/RuntimeView.o +0 -0
  67. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/RuntimeView.stringsdata +136 -0
  68. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/SettingsView.o +0 -0
  69. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/SettingsView.stringsdata +224 -0
  70. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/SharedViews.o +0 -0
  71. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/SharedViews.stringsdata +16 -0
  72. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/SidebarView.o +0 -0
  73. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/SidebarView.stringsdata +56 -0
  74. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/TeamView.o +0 -0
  75. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/TeamView.stringsdata +72 -0
  76. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/Objects-normal/arm64/supplementaryOutputs-1 +12 -0
  77. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/SwiftStdLibToolInputDependencies.dep +0 -0
  78. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/Duclaw.build/empty-Duclaw.plist +5 -0
  79. package/dist/macos-derived-data/Build/Intermediates.noindex/DuclawMac.build/Release/DuclawMac-c7e69682876cfcff51351de3a3d99f90-VFS/all-product-headers.yaml +1 -0
  80. package/dist/macos-derived-data/Build/Intermediates.noindex/XCBuildData/7665df728b5503d96dd65a7670f7ee46.xcbuilddata/attachments/16848c3481572c796c90f6470680b7ae +18 -0
  81. package/dist/macos-derived-data/Build/Intermediates.noindex/XCBuildData/7665df728b5503d96dd65a7670f7ee46.xcbuilddata/attachments/18d36032bfd1421fc519eacbb365614b +0 -0
  82. package/dist/macos-derived-data/Build/Intermediates.noindex/XCBuildData/7665df728b5503d96dd65a7670f7ee46.xcbuilddata/attachments/2de6a04cdba79ed13580c47dfd70cc5f +5 -0
  83. package/dist/macos-derived-data/Build/Intermediates.noindex/XCBuildData/7665df728b5503d96dd65a7670f7ee46.xcbuilddata/attachments/414c71058c4887675ab39fb971e37f36 +1 -0
  84. package/dist/macos-derived-data/Build/Intermediates.noindex/XCBuildData/7665df728b5503d96dd65a7670f7ee46.xcbuilddata/attachments/7e002fa69f193488efb1fea98011ebe7 +16 -0
  85. package/dist/macos-derived-data/Build/Intermediates.noindex/XCBuildData/7665df728b5503d96dd65a7670f7ee46.xcbuilddata/attachments/8bba4233626f64a7ea772bb94a08a1a9 +1 -0
  86. package/dist/macos-derived-data/Build/Intermediates.noindex/XCBuildData/7665df728b5503d96dd65a7670f7ee46.xcbuilddata/attachments/9a2910799639cff85464f3dcb75559c1 +1 -0
  87. package/dist/macos-derived-data/Build/Intermediates.noindex/XCBuildData/7665df728b5503d96dd65a7670f7ee46.xcbuilddata/attachments/a2b7dab48fada9df12270f014c657fca +101 -0
  88. package/dist/macos-derived-data/Build/Intermediates.noindex/XCBuildData/7665df728b5503d96dd65a7670f7ee46.xcbuilddata/attachments/c706ad95bf70246dacc25beba5e15c14 +18 -0
  89. package/dist/macos-derived-data/Build/Intermediates.noindex/XCBuildData/7665df728b5503d96dd65a7670f7ee46.xcbuilddata/attachments/d41d8cd98f00b204e9800998ecf8427e +0 -0
  90. package/dist/macos-derived-data/Build/Intermediates.noindex/XCBuildData/7665df728b5503d96dd65a7670f7ee46.xcbuilddata/attachments/fd8314defc70a8778956f026c0ddfd19 +0 -0
  91. package/dist/macos-derived-data/Build/Intermediates.noindex/XCBuildData/7665df728b5503d96dd65a7670f7ee46.xcbuilddata/build-request.json +65 -0
  92. package/dist/macos-derived-data/Build/Intermediates.noindex/XCBuildData/7665df728b5503d96dd65a7670f7ee46.xcbuilddata/description.msgpack +0 -0
  93. package/dist/macos-derived-data/Build/Intermediates.noindex/XCBuildData/7665df728b5503d96dd65a7670f7ee46.xcbuilddata/manifest.json +1 -0
  94. package/dist/macos-derived-data/Build/Intermediates.noindex/XCBuildData/7665df728b5503d96dd65a7670f7ee46.xcbuilddata/target-graph.txt +2 -0
  95. package/dist/macos-derived-data/Build/Intermediates.noindex/XCBuildData/7665df728b5503d96dd65a7670f7ee46.xcbuilddata/task-store.msgpack +0 -0
  96. package/dist/macos-derived-data/Build/Intermediates.noindex/XCBuildData/PIFCache/project/PROJECT@v11_mod=92f1da9fe0a68c419bece73ff20eda35_hash=c7e69682876cfcff51351de3a3d99f90plugins=1OJSG6M1FOV3XYQCBH7Z29RZ0FPR9XDE1-json +1 -0
  97. package/dist/macos-derived-data/Build/Intermediates.noindex/XCBuildData/PIFCache/target/TARGET@v11_hash=2dcd34f0b6d7a5f2cfbc734f30761b23-json +1 -0
  98. package/dist/macos-derived-data/Build/Intermediates.noindex/XCBuildData/PIFCache/workspace/WORKSPACE@v11_hash=(null)_subobjects=f2496d0e39d6a34ee46c36c1e51cef98-json +1 -0
  99. package/dist/macos-derived-data/Build/Intermediates.noindex/XCBuildData/build.db +0 -0
  100. package/dist/macos-derived-data/Build/Products/Release/Duclaw.app/Contents/Info.plist +50 -0
  101. package/dist/macos-derived-data/Build/Products/Release/Duclaw.app/Contents/MacOS/Duclaw +0 -0
  102. package/dist/macos-derived-data/Build/Products/Release/Duclaw.app/Contents/PkgInfo +1 -0
  103. package/dist/macos-derived-data/Build/Products/Release/Duclaw.app/Contents/_CodeSignature/CodeResources +123 -0
  104. package/dist/macos-derived-data/Build/Products/Release/Duclaw.app/Contents/embedded.provisionprofile +0 -0
  105. package/dist/macos-derived-data/Build/Products/Release/Duclaw.app.dSYM/Contents/Info.plist +20 -0
  106. package/dist/macos-derived-data/Build/Products/Release/Duclaw.app.dSYM/Contents/Resources/DWARF/Duclaw +0 -0
  107. package/dist/macos-derived-data/Build/Products/Release/Duclaw.app.dSYM/Contents/Resources/Relocations/aarch64/Duclaw.yml +1944 -0
  108. package/dist/macos-derived-data/Build/Products/Release/Duclaw.swiftmodule/Project/arm64-apple-macos.swiftsourceinfo +0 -0
  109. package/dist/macos-derived-data/Build/Products/Release/Duclaw.swiftmodule/arm64-apple-macos.abi.json +9 -0
  110. package/dist/macos-derived-data/Build/Products/Release/Duclaw.swiftmodule/arm64-apple-macos.swiftdoc +0 -0
  111. package/dist/macos-derived-data/Build/Products/Release/Duclaw.swiftmodule/arm64-apple-macos.swiftmodule +0 -0
  112. package/dist/macos-derived-data/CompilationCache.noindex/generic/lock +0 -0
  113. package/dist/macos-derived-data/CompilationCache.noindex/generic/v1.1/v3.actions +0 -0
  114. package/dist/macos-derived-data/CompilationCache.noindex/generic/v1.1/v3.actions.shared +0 -0
  115. package/dist/macos-derived-data/CompilationCache.noindex/generic/v1.1/v8.data +0 -0
  116. package/dist/macos-derived-data/CompilationCache.noindex/generic/v1.1/v8.data.shared +0 -0
  117. package/dist/macos-derived-data/CompilationCache.noindex/generic/v1.1/v8.index +0 -0
  118. package/dist/macos-derived-data/CompilationCache.noindex/generic/v1.1/v8.index.shared +0 -0
  119. package/dist/macos-derived-data/Logs/Build/LogStoreManifest.plist +10 -0
  120. package/dist/macos-derived-data/Logs/Launch/LogStoreManifest.plist +10 -0
  121. package/dist/macos-derived-data/Logs/Localization/LogStoreManifest.plist +10 -0
  122. package/dist/macos-derived-data/Logs/Package/LogStoreManifest.plist +10 -0
  123. package/dist/macos-derived-data/Logs/Test/LogStoreManifest.plist +10 -0
  124. package/dist/macos-derived-data/ModuleCache.noindex/Accessibility-EPZJKJZKHLGH8S30BEX9AEP5T.pcm +0 -0
  125. package/dist/macos-derived-data/ModuleCache.noindex/AppKit-8WVE2YI69Z1T2FYEP8T03WNIF.pcm +0 -0
  126. package/dist/macos-derived-data/ModuleCache.noindex/ApplicationServices-22F6VSD5NEECVLEPITBPGP80G.pcm +0 -0
  127. package/dist/macos-derived-data/ModuleCache.noindex/AuthenticationServices-14SYYYCAR64X7G73PC844QVQT.pcm +0 -0
  128. package/dist/macos-derived-data/ModuleCache.noindex/CFNetwork-2YTT6XJY9ATJWXIOEI0X3RDS1.pcm +0 -0
  129. package/dist/macos-derived-data/ModuleCache.noindex/CUPS-2026J5BRGH5Z6NB0F073FC3WH.pcm +0 -0
  130. package/dist/macos-derived-data/ModuleCache.noindex/ColorSync-BJO3TAAY0R1H5VNL7X3QC107S.pcm +0 -0
  131. package/dist/macos-derived-data/ModuleCache.noindex/CoreData-GT3WO5F7V637FMX45JD997ON.pcm +0 -0
  132. package/dist/macos-derived-data/ModuleCache.noindex/CoreFoundation-MZ051I8QBCMIWKHUZPD923JK.pcm +0 -0
  133. package/dist/macos-derived-data/ModuleCache.noindex/CoreGraphics-7E84JUTHXR831U6PH2YTB5K4C.pcm +0 -0
  134. package/dist/macos-derived-data/ModuleCache.noindex/CoreImage-8TFSHTUWQVW44TS6S1X8C5S21.pcm +0 -0
  135. package/dist/macos-derived-data/ModuleCache.noindex/CoreServices-7O1MXJNSVRU9NUUSHLBNU7DTG.pcm +0 -0
  136. package/dist/macos-derived-data/ModuleCache.noindex/CoreText-8JKNR8WJ9JQZG32FZTUL2XO6W.pcm +0 -0
  137. package/dist/macos-derived-data/ModuleCache.noindex/CoreTransferable-7G6EWHF9Q6JGC6N51JITZWZ68.pcm +0 -0
  138. package/dist/macos-derived-data/ModuleCache.noindex/CoreVideo-8VE7TYNI1JW74I4ZRAV3NIQ40.pcm +0 -0
  139. package/dist/macos-derived-data/ModuleCache.noindex/Darwin-5F5T551R5BNAEKJMZY1DDQMRC.pcm +0 -0
  140. package/dist/macos-derived-data/ModuleCache.noindex/DataDetection-DP6AWRJMB3HYI7Y178Q47SQHW.pcm +0 -0
  141. package/dist/macos-derived-data/ModuleCache.noindex/DeveloperToolsSupport-E1LY7RZKG74JG0NTPJAM5GNCD.pcm +0 -0
  142. package/dist/macos-derived-data/ModuleCache.noindex/DiskArbitration-7J4AWCPP9P653BXM83C3XV9CW.pcm +0 -0
  143. package/dist/macos-derived-data/ModuleCache.noindex/Dispatch-8Y9BFX2P00EB9G2UAHI67JPEA.pcm +0 -0
  144. package/dist/macos-derived-data/ModuleCache.noindex/Foundation-Q4YEXYF7MX4GR6OA8YNSERUD.pcm +0 -0
  145. package/dist/macos-derived-data/ModuleCache.noindex/IOKit-CB2ZM1GROOEEK7IM12604N4ZD.pcm +0 -0
  146. package/dist/macos-derived-data/ModuleCache.noindex/IOSurface-A3008QGKU9ZV0FRAQFXW20K2N.pcm +0 -0
  147. package/dist/macos-derived-data/ModuleCache.noindex/ImageIO-314AQCEMTA6HYAPPPBER7NEKN.pcm +0 -0
  148. package/dist/macos-derived-data/ModuleCache.noindex/LocalAuthentication-90MAZWVHPEEC404CSYQX9EB6T.pcm +0 -0
  149. package/dist/macos-derived-data/ModuleCache.noindex/MachO-CBOUKR29KV2JU7O6URBDT9R2M.pcm +0 -0
  150. package/dist/macos-derived-data/ModuleCache.noindex/Metal-T6WVZFMVEUQ3XBI1128X1PE.pcm +0 -0
  151. package/dist/macos-derived-data/ModuleCache.noindex/OSLog-67JFIMQT76HAL8LL80VFP0LMH.pcm +0 -0
  152. package/dist/macos-derived-data/ModuleCache.noindex/ObjectiveC-8Z5LYM0W66408L33ODXGYFMCX.pcm +0 -0
  153. package/dist/macos-derived-data/ModuleCache.noindex/OpenGL-E0EUNSPQC9Q5Q6L76XP18PZBL.pcm +0 -0
  154. package/dist/macos-derived-data/ModuleCache.noindex/QuartzCore-8652P2LLM36I7C3AM568GD7E2.pcm +0 -0
  155. package/dist/macos-derived-data/ModuleCache.noindex/Security-ABNKEKZLLW6JTHZQR5BJCGYZX.pcm +0 -0
  156. package/dist/macos-derived-data/ModuleCache.noindex/Session.modulevalidation +1 -0
  157. package/dist/macos-derived-data/ModuleCache.noindex/Spatial-PVIAGC546YY0DF13PW6AF00Y.pcm +0 -0
  158. package/dist/macos-derived-data/ModuleCache.noindex/SwiftShims-AFSSAMYMUW0QTOWSMZYR1FLG8.pcm +0 -0
  159. package/dist/macos-derived-data/ModuleCache.noindex/SwiftUI-DR6F3BQWG6PJID1ERUNH97XCX.pcm +0 -0
  160. package/dist/macos-derived-data/ModuleCache.noindex/SwiftUICore-T2COTXDI0NGOD7887SDBIVYL.pcm +0 -0
  161. package/dist/macos-derived-data/ModuleCache.noindex/Symbols-3A8X6SZHJ075HPLD1RUT04LPW.pcm +0 -0
  162. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/Accessibility-RCJSN2GG3RAR.pcm +0 -0
  163. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/AppKit-2VI8NB39I5AT6.pcm +0 -0
  164. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/ApplicationServices-3NXEUUZF9JJBD.pcm +0 -0
  165. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/AuthenticationServices-2XR6F0IJCJ3L9.pcm +0 -0
  166. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/CFNetwork-1PNPO1ORVQZLS.pcm +0 -0
  167. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/CUPS-1HLHMKUB322XA.pcm +0 -0
  168. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/ColorSync-3EIM4S8RXNRVI.pcm +0 -0
  169. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/CoreData-1KHK1L2CYC2N6.pcm +0 -0
  170. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/CoreFoundation-16SA8WK3L6MQN.pcm +0 -0
  171. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/CoreGraphics-1PSDCAYCIV3T9.pcm +0 -0
  172. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/CoreImage-39ZO87840M5PP.pcm +0 -0
  173. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/CoreServices-39NCTJOEW7PQ2.pcm +0 -0
  174. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/CoreText-3FAL1B4J38DIR.pcm +0 -0
  175. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/CoreTransferable-27T896KGHFB3R.pcm +0 -0
  176. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/CoreVideo-DBBGB2LXU3HG.pcm +0 -0
  177. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/Darwin-1FXX23EKWOBA9.pcm +0 -0
  178. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/DataDetection-R5W4QHNMPWVH.pcm +0 -0
  179. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/DeveloperToolsSupport-3SUCMSK9ZS2JA.pcm +0 -0
  180. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/DiskArbitration-3LBJF5I58QD8.pcm +0 -0
  181. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/Dispatch-R76HXUP80TVL.pcm +0 -0
  182. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/Foundation-24LYWIP48SHNP.pcm +0 -0
  183. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/IOKit-1IAL9NTK1TABA.pcm +0 -0
  184. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/IOSurface-26455DPS9NDS0.pcm +0 -0
  185. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/ImageIO-2ZSF831VT29UB.pcm +0 -0
  186. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/LocalAuthentication-26H9AZG3KEECH.pcm +0 -0
  187. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/MachO-20RPYVQSX341K.pcm +0 -0
  188. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/Metal-1GCZV9N85NJOH.pcm +0 -0
  189. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/OSLog-218FBXNFJGY61.pcm +0 -0
  190. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/ObjectiveC-1G8H182PQX3QE.pcm +0 -0
  191. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/OpenGL-H89XJT7GTCP.pcm +0 -0
  192. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/QuartzCore-39A8LQKF980J1.pcm +0 -0
  193. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/Security-3QCVXOV25KK54.pcm +0 -0
  194. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/Spatial-1JZLH83HN83CS.pcm +0 -0
  195. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/SwiftShims-2IMTS4WWRU7VJ.pcm +0 -0
  196. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/SwiftUI-3DCHKT5UWXXCX.pcm +0 -0
  197. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/SwiftUICore-86HIVXUC6WOA.pcm +0 -0
  198. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/Symbols-3KC1789KJFX94.pcm +0 -0
  199. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/UniformTypeIdentifiers-1OLJP4K3PLM48.pcm +0 -0
  200. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/XPC-T0ZXCAST7PE3.pcm +0 -0
  201. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/_AvailabilityInternal-2YSBQADOLX02V.pcm +0 -0
  202. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/_Builtin_float-2OQWMRBVRD4OJ.pcm +0 -0
  203. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/_Builtin_intrinsics-2OQWMRBVRD4OJ.pcm +0 -0
  204. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/_Builtin_inttypes-2OQWMRBVRD4OJ.pcm +0 -0
  205. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/_Builtin_limits-2OQWMRBVRD4OJ.pcm +0 -0
  206. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/_Builtin_stdarg-2OQWMRBVRD4OJ.pcm +0 -0
  207. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/_Builtin_stdatomic-2OQWMRBVRD4OJ.pcm +0 -0
  208. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/_Builtin_stdbool-2OQWMRBVRD4OJ.pcm +0 -0
  209. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/_Builtin_stddef-2OQWMRBVRD4OJ.pcm +0 -0
  210. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/_Builtin_stdint-2OQWMRBVRD4OJ.pcm +0 -0
  211. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/_Builtin_tgmath-2OQWMRBVRD4OJ.pcm +0 -0
  212. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/_DarwinFoundation1-2YSBQADOLX02V.pcm +0 -0
  213. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/_DarwinFoundation2-3J4ZFA06I5V1P.pcm +0 -0
  214. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/_DarwinFoundation3-2NSGASPTSNBVQ.pcm +0 -0
  215. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/_SwiftConcurrencyShims-2IMTS4WWRU7VJ.pcm +0 -0
  216. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/launch-3T3BU4MASLMUM.pcm +0 -0
  217. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/libDER-26DYHF6GC6WWA.pcm +0 -0
  218. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/libkern-2KQ0X67RTM1JF.pcm +0 -0
  219. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/os-2MV8OP7R98AN8.pcm +0 -0
  220. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/os_object-2MV8OP7R98AN8.pcm +0 -0
  221. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/os_workgroup-2MV8OP7R98AN8.pcm +0 -0
  222. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/ptrauth-2OQWMRBVRD4OJ.pcm +0 -0
  223. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/ptrcheck-2OQWMRBVRD4OJ.pcm +0 -0
  224. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/simd-KY25Q80SBOHY.pcm +0 -0
  225. package/dist/macos-derived-data/ModuleCache.noindex/UAVS3N7R9SV4/sys_types-3J4ZFA06I5V1P.pcm +0 -0
  226. package/dist/macos-derived-data/ModuleCache.noindex/UniformTypeIdentifiers-83SQLNZQRK3H2KXUK111O5I4K.pcm +0 -0
  227. package/dist/macos-derived-data/ModuleCache.noindex/XPC-EZEGWTHE1GMGJ73B5QPV637PF.pcm +0 -0
  228. package/dist/macos-derived-data/ModuleCache.noindex/_AvailabilityInternal-DUBFS7PPVT4O9ATB4G9TOJHF7.pcm +0 -0
  229. package/dist/macos-derived-data/ModuleCache.noindex/_Builtin_float-5YBOEE147SLFHCGNRI09APS4N.pcm +0 -0
  230. package/dist/macos-derived-data/ModuleCache.noindex/_Builtin_intrinsics-7FFXB6JNF9XOZJHGGC13VBM1N.pcm +0 -0
  231. package/dist/macos-derived-data/ModuleCache.noindex/_Builtin_inttypes-5EZP7WE0FC5LOMR6J3D74BYFX.pcm +0 -0
  232. package/dist/macos-derived-data/ModuleCache.noindex/_Builtin_limits-AEGUFKD0C1K1D4OQ4DQ5YVKY9.pcm +0 -0
  233. package/dist/macos-derived-data/ModuleCache.noindex/_Builtin_stdarg-DK9R0I8EMZ861TR8854YLP0D4.pcm +0 -0
  234. package/dist/macos-derived-data/ModuleCache.noindex/_Builtin_stdatomic-CJ0MCKZU947OKLAE06A9T64MT.pcm +0 -0
  235. package/dist/macos-derived-data/ModuleCache.noindex/_Builtin_stdbool-5N87U878MWGYKCJZ9SNB8XXIK.pcm +0 -0
  236. package/dist/macos-derived-data/ModuleCache.noindex/_Builtin_stddef-5NTIEISJIP4ZKO8TB1BI1MDYR.pcm +0 -0
  237. package/dist/macos-derived-data/ModuleCache.noindex/_Builtin_stdint-C7SU5781UV8N5GF087ARLX2C4.pcm +0 -0
  238. package/dist/macos-derived-data/ModuleCache.noindex/_Builtin_tgmath-AB0ON95W4VQ2ZKFZ3DM1BG314.pcm +0 -0
  239. package/dist/macos-derived-data/ModuleCache.noindex/_DarwinFoundation1-E190GMAISVTHCX284OP284XYH.pcm +0 -0
  240. package/dist/macos-derived-data/ModuleCache.noindex/_DarwinFoundation2-1UPXDZK39B21OVOJW0QJ8N41.pcm +0 -0
  241. package/dist/macos-derived-data/ModuleCache.noindex/_DarwinFoundation3-9I64E6FHLFV81I7VF3GF99Y2O.pcm +0 -0
  242. package/dist/macos-derived-data/ModuleCache.noindex/_SwiftConcurrencyShims-BW2FJ1L8883MXMIPFO8JRC5VL.pcm +0 -0
  243. package/dist/macos-derived-data/ModuleCache.noindex/launch-BE5QHHN47PFYGFWGPQMCTRIKL.pcm +0 -0
  244. package/dist/macos-derived-data/ModuleCache.noindex/libDER-2ON8L8KUT13HZCKEK8EK9KKJO.pcm +0 -0
  245. package/dist/macos-derived-data/ModuleCache.noindex/libkern-1X2SPINFK3MU0VSFY2BDKYG21.pcm +0 -0
  246. package/dist/macos-derived-data/ModuleCache.noindex/modules.timestamp +0 -0
  247. package/dist/macos-derived-data/ModuleCache.noindex/os-6QG5F30JDNX1SM0T0XTAPXOXX.pcm +0 -0
  248. package/dist/macos-derived-data/ModuleCache.noindex/os_object-9WK0CD2ZN2XAFN1CKUF4P9YRC.pcm +0 -0
  249. package/dist/macos-derived-data/ModuleCache.noindex/os_workgroup-F0PKWLCF5BPHJGRAVEJRTIBHM.pcm +0 -0
  250. package/dist/macos-derived-data/ModuleCache.noindex/ptrauth-2HBU40YY8OCO6Z4BGEYQM5HTO.pcm +0 -0
  251. package/dist/macos-derived-data/ModuleCache.noindex/ptrcheck-F0QI8P4RBM2GGQESSOJQZODBZ.pcm +0 -0
  252. package/dist/macos-derived-data/ModuleCache.noindex/simd-CVY24EZJFO3GIR64TY70A1NYA.pcm +0 -0
  253. package/dist/macos-derived-data/ModuleCache.noindex/sys_types-DFWCO03XIAVMD6AF060H66F56.pcm +0 -0
  254. package/dist/macos-derived-data/SDKStatCaches.noindex/macosx26.5-25F70-e082c4a02f00227109f4ed75e425c832.sdkstatcache +0 -0
  255. package/dist/macos-derived-data/info.plist +10 -0
  256. package/dist/main.js +1 -1
  257. package/dist/worker-main.js +1 -1
  258. package/package.json +1 -1
@@ -0,0 +1,31 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>CFBundleExecutable</key>
6
+ <string>DuclawMac</string>
7
+ <key>CFBundleIdentifier</key>
8
+ <string>dev.duclaw.mac</string>
9
+ <key>CFBundleName</key>
10
+ <string>DuclawMac</string>
11
+ <key>CFBundlePackageType</key>
12
+ <string>APPL</string>
13
+ <key>CFBundleURLTypes</key>
14
+ <array>
15
+ <dict>
16
+ <key>CFBundleTypeRole</key>
17
+ <string>Editor</string>
18
+ <key>CFBundleURLName</key>
19
+ <string>dev.duclaw.mac.auth</string>
20
+ <key>CFBundleURLSchemes</key>
21
+ <array>
22
+ <string>duclaw</string>
23
+ </array>
24
+ </dict>
25
+ </array>
26
+ <key>LSMinimumSystemVersion</key>
27
+ <string>14.0</string>
28
+ <key>NSPrincipalClass</key>
29
+ <string>NSApplication</string>
30
+ </dict>
31
+ </plist>
package/dist/bundle.js CHANGED
@@ -30242,7 +30242,7 @@ function printHelp() {
30242
30242
  `);
30243
30243
  }
30244
30244
  function printVersion() {
30245
- console.log(`duclaw-cli v${true ? "1.9.15" : "unknown"}`);
30245
+ console.log(`duclaw-cli v${true ? "1.9.17" : "unknown"}`);
30246
30246
  }
30247
30247
  function getDuclawTemplate() {
30248
30248
  return {
@@ -30516,6 +30516,18 @@ var getDuclawWorktreesDir = () => {
30516
30516
  return dir;
30517
30517
  };
30518
30518
 
30519
+ // src/runtime/runtimeMode.ts
30520
+ var LOCAL_MACOS_RUNTIME_PROVIDER = "local-macos";
30521
+ var isLocalMacOSRuntime = () => {
30522
+ return process.env.DUCLAW_RUNTIME_PROVIDER === LOCAL_MACOS_RUNTIME_PROVIDER;
30523
+ };
30524
+ var isSpoolQueueRuntime = () => {
30525
+ return process.env.DUCLAW_QUEUE_DRIVER === "spool" || process.env.DUCLAW_RUNTIME_PROVIDER === "e2b" || isLocalMacOSRuntime();
30526
+ };
30527
+ var isFileBackedRuntimeMode = () => {
30528
+ return process.env.DUCLAW_STORAGE_DRIVER === "file" || isSpoolQueueRuntime();
30529
+ };
30530
+
30519
30531
  // src/worker/spool.ts
30520
30532
  var STATES = ["pending", "processing", "done", "failed"];
30521
30533
  var safeSegment = (value) => {
@@ -30523,7 +30535,7 @@ var safeSegment = (value) => {
30523
30535
  return normalized || "default";
30524
30536
  };
30525
30537
  var isVolumeSpoolEnabled = () => {
30526
- return process.env.DUCLAW_QUEUE_DRIVER === "spool" || process.env.DUCLAW_RUNTIME_PROVIDER === "e2b";
30538
+ return isSpoolQueueRuntime();
30527
30539
  };
30528
30540
  var getSpoolRoot = () => {
30529
30541
  return process.env.DUCLAW_SPOOL_ROOT || import_node_path.default.join(getDuclawHomeDir(), "mailbox", "inbox");
@@ -38584,7 +38596,7 @@ var createRedisStorage = (options = {}) => {
38584
38596
 
38585
38597
  // src/storage/runtimeStorage.ts
38586
38598
  var isFileBackedRuntime = () => {
38587
- return process.env.DUCLAW_STORAGE_DRIVER === "file" || process.env.DUCLAW_QUEUE_DRIVER === "spool" || process.env.DUCLAW_RUNTIME_PROVIDER === "e2b";
38599
+ return isFileBackedRuntimeMode();
38588
38600
  };
38589
38601
  var createRuntimeStorage = (options = {}) => {
38590
38602
  if (isFileBackedRuntime()) {
@@ -38854,13 +38866,13 @@ var searchChatHistory = async (messageStorage, topicStorage, userId, query, date
38854
38866
  return { matches: [], total, matchCount: 0 };
38855
38867
  }
38856
38868
  const keyCache = /* @__PURE__ */ new Map();
38857
- const buildKey = (d, c) => {
38869
+ const buildKey2 = (d, c) => {
38858
38870
  let k = `mem:${userId}:${d}`;
38859
38871
  if (c) k += `:${c}`;
38860
38872
  return k;
38861
38873
  };
38862
38874
  const loadMessages = async (d, c) => {
38863
- const k = buildKey(d, c);
38875
+ const k = buildKey2(d, c);
38864
38876
  if (keyCache.has(k)) return keyCache.get(k);
38865
38877
  const msgs = await messageStorage.get(k);
38866
38878
  keyCache.set(k, msgs);
@@ -43652,6 +43664,45 @@ var departmentCreate = {
43652
43664
  }
43653
43665
  };
43654
43666
 
43667
+ // src/tools/tools/department/mailboxQueueGuard.ts
43668
+ var states = /* @__PURE__ */ new Map();
43669
+ var buildKey = (userRequest) => {
43670
+ const mailboxId = userRequest?.departmentAgentId;
43671
+ const requestId = userRequest?.requestId;
43672
+ if (!mailboxId || !requestId) return null;
43673
+ return `${mailboxId}::${requestId}`;
43674
+ };
43675
+ var sameMessageSet = (left, right) => {
43676
+ if (left.length !== right.length) return false;
43677
+ const sortedLeft = [...left].sort();
43678
+ const sortedRight = [...right].sort();
43679
+ return sortedLeft.every((id, index) => id === sortedRight[index]);
43680
+ };
43681
+ var beginMailboxListOrBlock = (userRequest, visibleMessageIds) => {
43682
+ const key = buildKey(userRequest);
43683
+ if (!key) return null;
43684
+ const previous = states.get(key);
43685
+ if (previous?.awaitingAction && sameMessageSet(previous.listedMessageIds, visibleMessageIds)) {
43686
+ return [
43687
+ `[listMailbox] \u5DF2\u963B\u6B62\u91CD\u590D\u67E5\u770B\u540C\u4E00\u6279\u90AE\u7BB1\u961F\u5217\u3002`,
43688
+ `\u4F60\u521A\u521A\u5DF2\u7ECF\u770B\u8FC7\u8FD9\u4E9B\u5F85\u5904\u7406 message_id: ${visibleMessageIds.join(", ") || "-"}`,
43689
+ `\u7981\u6B62\u7A7A\u8F6C list_mailbox\u3002\u4E0B\u4E00\u6B65\u5FC5\u987B\u9009\u62E9\u4E00\u5C01\u8C03\u7528 get_mailbox(message_id="...") \u6253\u5F00\u5904\u7406\uFF0C\u6216\u5BF9\u65E0\u9700\u5904\u7406\u7684\u90AE\u4EF6\u8C03\u7528 discard_mailbox\uFF0C\u6216\u5BF9\u5DF2\u5F62\u6210\u8FDB\u5C55/\u7ED3\u679C\u7684\u90AE\u4EF6\u8C03\u7528 mailbox_followup / reply_mailbox\u3002`,
43690
+ `\u5B8C\u6210\u4E00\u4E2A\u5B9E\u9645\u52A8\u4F5C\u540E\uFF0C\u624D\u53EF\u4EE5\u518D\u6B21\u8C03\u7528 list_mailbox \u91CD\u65B0\u8BC4\u4F30\u961F\u5217\u3002`
43691
+ ].join(`
43692
+ `);
43693
+ }
43694
+ states.set(key, {
43695
+ awaitingAction: visibleMessageIds.length > 0,
43696
+ listedMessageIds: visibleMessageIds
43697
+ });
43698
+ return null;
43699
+ };
43700
+ var markMailboxQueueAction = (userRequest) => {
43701
+ const key = buildKey(userRequest);
43702
+ if (!key) return;
43703
+ states.delete(key);
43704
+ };
43705
+
43655
43706
  // src/tools/tools/department/DepartmentCommunicate.ts
43656
43707
  var CEO_MAILBOX_ID = `manager`;
43657
43708
  var MANAGER_ALIAS_PATTERN = /(^|::)(manager|main[-_\s]?manager|ceo)$/i;
@@ -43805,6 +43856,9 @@ var departmentCommunicate = {
43805
43856
  } catch (err) {
43806
43857
  return `[departmentCommunicate] \u53D1\u9001\u6D88\u606F\u5931\u8D25: ${err.message}`;
43807
43858
  }
43859
+ if (departmentAgentId) {
43860
+ markMailboxQueueAction(userRequest);
43861
+ }
43808
43862
  return `[departmentCommunicate] \u6D88\u606F\u5DF2\u53D1\u9001\u5230 ${toMailboxId}`;
43809
43863
  }
43810
43864
  };
@@ -44855,6 +44909,7 @@ var mailboxFollowup = {
44855
44909
  preview: content.slice(0, 200)
44856
44910
  }
44857
44911
  });
44912
+ markMailboxQueueAction(userRequest);
44858
44913
  return `[mailboxFollowup] \u5DF2\u5728\u6D88\u606F ${messageId} \u6240\u5C5E\u7EBF\u7A0B\u4E2D\u8FFD\u52A0\u4E00\u6761${kind}\u6D88\u606F\uFF0C\u53D1\u9001\u5230 ${counterpartMailboxId}\uFF08message: ${followupMsg.id}, thread: ${followupMsg.threadId}\uFF09`;
44859
44914
  }
44860
44915
  };
@@ -47024,6 +47079,16 @@ var llmRequestIdForTurn = (request, messages, system, tools) => {
47024
47079
  const hash = (0, import_node_crypto16.createHash)("sha256").update(request.requestId).update("\0").update(system).update("\0").update(JSON.stringify(messages)).update("\0").update(JSON.stringify(tools.map((tool) => tool.name).sort())).digest("hex").slice(0, 40);
47025
47080
  return `dreq_${hash}`;
47026
47081
  };
47082
+ var LLM_CREDIT_EXHAUSTED_MESSAGE = "Credit \u4F59\u989D\u4E0D\u8DB3\uFF0C\u6682\u65F6\u65E0\u6CD5\u7EE7\u7EED\u8C03\u7528\u4E3B\u6A21\u578B\u5904\u7406\u8FD9\u6761\u6D88\u606F\u3002\u8BF7\u5148\u5145\u503C\u6216\u4F7F\u7528\u6FC0\u6D3B\u7801\u589E\u52A0 Credit \u540E\u518D\u8BD5\u3002";
47083
+ var isLlmCreditExhaustedError = (error) => {
47084
+ const err = error;
47085
+ const message = [
47086
+ err?.message,
47087
+ err?.error?.type,
47088
+ err?.error?.message
47089
+ ].filter((value) => typeof value === "string").join("\n");
47090
+ return err?.status === 402 || err?.status === 403 && /预扣费额度失败|额度不足|剩余额度|pre_consume.*quota|insufficient.*quota/i.test(message) || /预扣费额度失败|用户剩余额度|Credit balance is insufficient|credit_exhausted/i.test(message);
47091
+ };
47027
47092
  var getDefaultAgentConfig = (tools, systemPrompt) => {
47028
47093
  loadEnv();
47029
47094
  (0, import_node_fs8.mkdirSync)(DEFAULT_WORKSPACE_PATH, { recursive: true });
@@ -47253,7 +47318,7 @@ ${getSkillMeta()}
47253
47318
  return agentConfig;
47254
47319
  };
47255
47320
  var createAgent = (config2 = getDefaultAgentConfig()) => {
47256
- const { systemPrompt, llm, storage, topicStorage, compactSummaryStorage, recallIndexStorage, toolExecutor, tools, backgroundManager, maxIterations = 50, dreamEngine, skillForgeEngine, memoryEngine } = config2;
47321
+ const { systemPrompt, llm, storage, topicStorage, compactSummaryStorage, recallIndexStorage, toolExecutor, tools, backgroundManager, maxIterations = 50, dreamEngine, skillForgeEngine, memoryEngine, onLlmRequestId } = config2;
47257
47322
  const signals = /* @__PURE__ */ new Map();
47258
47323
  return async (request) => {
47259
47324
  if (config2.workspacePath && !request.defaultWorkDir) {
@@ -47561,12 +47626,14 @@ ${memoryInjection}` : "") + dreamInjection;
47561
47626
  const turnAbortController = new AbortController();
47562
47627
  activeTurnAbortController = turnAbortController;
47563
47628
  try {
47629
+ const llmRequestId = llmRequestIdForTurn(request, messages, effectiveSystemPrompt, tools);
47630
+ onLlmRequestId?.(llmRequestId);
47564
47631
  response = await llm.chat(
47565
47632
  messages,
47566
47633
  effectiveSystemPrompt,
47567
47634
  tools,
47568
47635
  {
47569
- requestId: llmRequestIdForTurn(request, messages, effectiveSystemPrompt, tools),
47636
+ requestId: llmRequestId,
47570
47637
  signal: turnAbortController.signal
47571
47638
  }
47572
47639
  );
@@ -47579,6 +47646,29 @@ ${memoryInjection}` : "") + dreamInjection;
47579
47646
  await recoverFromContextOverflow("prompt_too_long", messages, effectiveSystemPrompt);
47580
47647
  continue;
47581
47648
  }
47649
+ if (isLlmCreditExhaustedError(error)) {
47650
+ let alreadySent = false;
47651
+ if (config2.channelPlugin && !internalOnly) {
47652
+ if (claimOutboundSend(request.userId, LLM_CREDIT_EXHAUSTED_MESSAGE)) {
47653
+ await config2.channelPlugin.outbound.sendText({
47654
+ cfg: {},
47655
+ to: request.userId,
47656
+ text: LLM_CREDIT_EXHAUSTED_MESSAGE,
47657
+ accountId: request.requestId,
47658
+ metadata: request.metadata
47659
+ });
47660
+ alreadySent = true;
47661
+ } else {
47662
+ console.log(`[outbound-dedup] \u8DF3\u8FC7\u5BF9\u7528\u6237 ${request.userId} \u7684\u8FD1\u91CD\u590D LLM \u989D\u5EA6\u4E0D\u8DB3\u63D0\u793A`);
47663
+ }
47664
+ }
47665
+ await addMessage(storage, userId, assistantMessage(text(LLM_CREDIT_EXHAUSTED_MESSAGE)), beijingTime, job?.title);
47666
+ markAgentEventsHandled([...injectedEventIds], "ignored");
47667
+ return {
47668
+ content: LLM_CREDIT_EXHAUSTED_MESSAGE,
47669
+ alreadySent
47670
+ };
47671
+ }
47582
47672
  throw error;
47583
47673
  } finally {
47584
47674
  if (activeTurnAbortController === turnAbortController) {
@@ -48128,6 +48218,11 @@ var listMailbox = {
48128
48218
  ORDER BY send_time ASC`
48129
48219
  );
48130
48220
  const msgs = stmt.all(myMailboxId);
48221
+ const visibleMessageIds = msgs.map((msg) => msg.id);
48222
+ const repeatedListBlock = beginMailboxListOrBlock(userRequest, visibleMessageIds);
48223
+ if (repeatedListBlock) {
48224
+ return repeatedListBlock;
48225
+ }
48131
48226
  if (msgs.length === 0) {
48132
48227
  recordMailboxEvent({
48133
48228
  mailboxId: myMailboxId,
@@ -48135,7 +48230,7 @@ var listMailbox = {
48135
48230
  eventType: "mailbox_listed",
48136
48231
  detail: {
48137
48232
  visibleCount: 0,
48138
- visibleMessageIds: []
48233
+ visibleMessageIds
48139
48234
  }
48140
48235
  });
48141
48236
  return `[listMailbox] \u4F60\u7684\u90AE\u7BB1\u4E2D\u6CA1\u6709\u5F85\u5904\u7406\u90AE\u4EF6\u3002`;
@@ -48147,10 +48242,10 @@ var listMailbox = {
48147
48242
  eventType: "mailbox_listed",
48148
48243
  detail: {
48149
48244
  visibleCount: msgs.length,
48150
- visibleMessageIds: msgs.map((msg) => msg.id)
48245
+ visibleMessageIds
48151
48246
  }
48152
48247
  });
48153
- const list = msgs.map((msg, i) => {
48248
+ const renderMessage2 = (msg, i) => {
48154
48249
  const time = new Date(msg.sendTime).toLocaleString("zh-CN", { timeZone: "Asia/Shanghai" });
48155
48250
  const preview2 = msg.content.length > 100 ? msg.content.slice(0, 100) + "..." : msg.content;
48156
48251
  return `[${i + 1}] id: ${msg.id}
@@ -48158,10 +48253,22 @@ var listMailbox = {
48158
48253
  \u65F6\u95F4: ${time}
48159
48254
  \u72B6\u6001: ${msg.status}
48160
48255
  \u6458\u8981: ${preview2}`;
48161
- }).join("\n\n");
48162
- return `[listMailbox] \u4F60\u6709 ${msgs.length} \u5C01\u5F85\u5904\u7406\u90AE\u4EF6\uFF1A
48163
-
48164
- ${list}`;
48256
+ };
48257
+ const pending = msgs.filter((msg) => msg.status === "pending");
48258
+ const processing = msgs.filter((msg) => msg.status === "processing");
48259
+ const sections = [
48260
+ pending.length > 0 ? `\u65B0\u90AE\u4EF6 pending\uFF08\u5C1A\u672A\u9886\u53D6\uFF09\uFF1A
48261
+ ${pending.map(renderMessage2).join("\n\n")}` : null,
48262
+ processing.length > 0 ? `\u5DF2\u9886\u53D6/\u5904\u7406\u4E2D processing\uFF08\u4ECD\u9700\u7EE7\u7EED\u95ED\u73AF\uFF09\uFF1A
48263
+ ${processing.map(renderMessage2).join("\n\n")}` : null
48264
+ ].filter(Boolean).join("\n\n");
48265
+ return [
48266
+ `[listMailbox] \u4F60\u6709 ${msgs.length} \u5C01\u5F85\u5904\u7406\u90AE\u4EF6\uFF1A`,
48267
+ ``,
48268
+ sections,
48269
+ ``,
48270
+ `\u4E0B\u4E00\u6B65\u5FC5\u987B\u4ECE\u4EE5\u4E0A message_id \u4E2D\u9009\u62E9\u4E00\u5C01\u8C03\u7528 get_mailbox(message_id="...") \u6253\u5F00\u5904\u7406\uFF1B\u5982\u679C\u786E\u8BA4\u67D0\u5C01\u65E0\u7528/\u8FC7\u65F6\uFF0C\u8C03\u7528 discard_mailbox\uFF1B\u5982\u679C\u5DF2\u7ECF\u6709\u8FDB\u5C55\u6216\u7ED3\u679C\uFF0C\u8C03\u7528 mailbox_followup \u6216 reply_mailbox\u3002\u4E0D\u8981\u8FDE\u7EED\u91CD\u590D\u8C03\u7528 list_mailbox\u3002`
48271
+ ].join("\n");
48165
48272
  }
48166
48273
  };
48167
48274
 
@@ -48269,6 +48376,7 @@ var getMailbox = {
48269
48376
  counterpartMailboxId: msg.fromMailboxId,
48270
48377
  eventType: "message_opened"
48271
48378
  });
48379
+ markMailboxQueueAction(userRequest);
48272
48380
  const time = new Date(msg.sendTime).toLocaleString("zh-CN", { timeZone: "Asia/Shanghai" });
48273
48381
  const threadId = msg.threadId || msg.id;
48274
48382
  const upstreamContext = buildUpstreamContext(msg);
@@ -48381,6 +48489,7 @@ var discardMailbox = {
48381
48489
  parentMessageId: msg.parentMessageId || null
48382
48490
  }
48383
48491
  });
48492
+ markMailboxQueueAction(userRequest);
48384
48493
  return `[discardMailbox] \u5DF2\u4E22\u5F03\u90AE\u4EF6 ${messageId}\uFF0C\u539F\u56E0\uFF1A${reason}`;
48385
48494
  }
48386
48495
  };
@@ -48532,6 +48641,7 @@ var replyMailbox = {
48532
48641
  }
48533
48642
  });
48534
48643
  const upstreamReminder = buildUpstreamReminder(myMailboxId, msg.fromMailboxId, msg.threadId || msg.id, msg.workItemId);
48644
+ markMailboxQueueAction(userRequest);
48535
48645
  return `[replyMailbox] ${claimedFromPending ? "\u5DF2\u9886\u53D6\u5E76" : "\u5DF2"}\u6B63\u5F0F\u56DE\u590D\u90AE\u4EF6 ${messageId}\uFF0C\u56DE\u590D\u6D88\u606F ${replyMsg.id} \u5DF2\u53D1\u9001\u5230 ${msg.fromMailboxId} \u7684\u90AE\u7BB1\uFF08thread: ${replyMsg.threadId}\uFF09${upstreamReminder}`;
48536
48646
  }
48537
48647
  };
@@ -48656,6 +48766,10 @@ var recoverStaleProcessingWork = () => {
48656
48766
  console.warn(`[mailbox] \u5DF2\u6062\u590D stale processing: mailbox=${mailboxRecovered}, ceo_followups=${followupsRecovered}`);
48657
48767
  }
48658
48768
  };
48769
+ var isMaxIterationsError = (err) => {
48770
+ const message = err?.message ?? "";
48771
+ return /达到最大迭代次数|max iterations?/i.test(message);
48772
+ };
48659
48773
  var markMailboxStatus = (msgId, status) => {
48660
48774
  const fromStatusMap = {
48661
48775
  processing: ["pending"],
@@ -48669,6 +48783,55 @@ var markMailboxStatus = (msgId, status) => {
48669
48783
  reason: "mailbox_poller"
48670
48784
  });
48671
48785
  };
48786
+ var failDepartmentWakeupMessages = (mailboxId, msgIds, reason) => {
48787
+ const rows = msgIds.map((id) => db2.prepare(
48788
+ `SELECT
48789
+ id,
48790
+ from_mailbox_id as fromMailboxId,
48791
+ status,
48792
+ origin_user_id as originUserId,
48793
+ origin_platform as originPlatform,
48794
+ thread_id as threadId
48795
+ FROM mailbox
48796
+ WHERE id = ?`
48797
+ ).get(id)).filter(
48798
+ (row) => Boolean(row && (row.status === "pending" || row.status === "processing"))
48799
+ );
48800
+ const bySender = /* @__PURE__ */ new Map();
48801
+ for (const row of rows) {
48802
+ const senderRows = bySender.get(row.fromMailboxId) ?? [];
48803
+ senderRows.push(row);
48804
+ bySender.set(row.fromMailboxId, senderRows);
48805
+ }
48806
+ for (const [senderMailboxId, senderRows] of bySender.entries()) {
48807
+ const changedRows = senderRows.filter((row) => updateMailboxMessageStatus(row.id, "failed", {
48808
+ fromStatus: ["pending", "processing"],
48809
+ actorMailboxId: mailboxId,
48810
+ counterpartMailboxId: senderMailboxId,
48811
+ reason: "department_agent_wakeup_terminal_failed"
48812
+ }));
48813
+ if (changedRows.length === 0) continue;
48814
+ const first = changedRows[0];
48815
+ const ids = changedRows.map((row) => row.id).join(", ");
48816
+ sendMessage2(mailboxId, senderMailboxId, [
48817
+ `[\u7CFB\u7EDF\u901A\u77E5] ${mailboxId} \u672C\u8F6E\u5904\u7406\u672A\u80FD\u6B63\u5E38\u5B8C\u6210\uFF0C\u5DF2\u505C\u6B62\u81EA\u52A8\u91CD\u8BD5\uFF0C\u907F\u514D\u540C\u4E00\u6279\u90AE\u4EF6\u88AB\u53CD\u590D\u6295\u9012\u3002`,
48818
+ `\u5931\u8D25\u539F\u56E0: ${reason}`,
48819
+ `\u53D7\u5F71\u54CD\u90AE\u4EF6: ${ids}`,
48820
+ `\u8BF7\u4E0A\u6E38\u6839\u636E\u9700\u8981\u91CD\u65B0\u59D4\u6D3E\u3001\u8865\u5145\u4E0A\u4E0B\u6587\uFF0C\u6216\u4EBA\u5DE5\u68C0\u67E5\u8BE5\u8D1F\u8D23\u4EBA\u3002`
48821
+ ].join("\n"), {
48822
+ originUserId: first.originUserId,
48823
+ originPlatform: first.originPlatform,
48824
+ threadId: first.threadId || first.id,
48825
+ parentMessageId: first.id,
48826
+ auditDetail: {
48827
+ fallbackReason: "department_agent_wakeup_terminal_failed",
48828
+ affectedMessageIds: changedRows.map((row) => row.id),
48829
+ error: reason
48830
+ }
48831
+ });
48832
+ console.warn(`[mailbox] department agent ${mailboxId} \u7EC8\u6B62\u5931\u8D25\uFF0C\u5DF2\u5C06 ${changedRows.length} \u5C01\u90AE\u4EF6\u6807\u8BB0 failed \u5E76\u901A\u77E5 ${senderMailboxId}`);
48833
+ }
48834
+ };
48672
48835
  var handleCeoFollowupGroup = async (followups) => {
48673
48836
  const originUserId = followups[0].originUserId;
48674
48837
  const originPlatform = followups[0].originPlatform;
@@ -48817,6 +48980,10 @@ var wakeDepartmentAgent = async (mailboxId, msgIds) => {
48817
48980
  finalizeDepartmentAgentUnrepliedMessages(mailboxId, msgIds, result);
48818
48981
  } catch (err) {
48819
48982
  console.error(`[mailbox] \u5524\u9192 department agent ${mailboxId} \u5931\u8D25:`, err);
48983
+ if (isMaxIterationsError(err)) {
48984
+ failDepartmentWakeupMessages(mailboxId, msgIds, err.message);
48985
+ return;
48986
+ }
48820
48987
  for (const id of msgIds) {
48821
48988
  updateMailboxMessageStatus(id, "pending", {
48822
48989
  fromStatus: "processing",
@@ -48932,10 +49099,14 @@ var pollMailbox = async () => {
48932
49099
  const livenessSnapshot = getMailboxLivenessSnapshot();
48933
49100
  logMailboxPollerHeartbeat(livenessSnapshot);
48934
49101
  await reportMailboxLiveness(livenessSnapshot);
48935
- const mailBoxMsgs = selectStmt.all("pending");
49102
+ const allPendingMailboxMsgs = selectStmt.all("pending");
49103
+ const mailBoxMsgs = allPendingMailboxMsgs.filter(
49104
+ (msg) => msg.toMailboxId === "manager" || !inFlightDepartmentMailboxes.has(msg.toMailboxId)
49105
+ );
48936
49106
  const pendingFollowups = listPendingCeoFollowups();
48937
49107
  if (mailBoxMsgs.length === 0 && pendingFollowups.length === 0) return;
48938
- console.log(`[mailbox] \u62C9\u53D6\u5230 ${mailBoxMsgs.length} \u6761\u5F85\u5904\u7406\u6D88\u606F`);
49108
+ const skippedInFlight = allPendingMailboxMsgs.length - mailBoxMsgs.length;
49109
+ console.log(`[mailbox] \u62C9\u53D6\u5230 ${mailBoxMsgs.length} \u6761\u53EF\u8C03\u5EA6\u5F85\u5904\u7406\u6D88\u606F${skippedInFlight > 0 ? `\uFF0C\u8DF3\u8FC7 ${skippedInFlight} \u6761 in-flight mailbox \u6D88\u606F` : ""}`);
48939
49110
  const grouped = /* @__PURE__ */ new Map();
48940
49111
  for (const msg of mailBoxMsgs) {
48941
49112
  const group = grouped.get(msg.toMailboxId) || [];
@@ -49079,6 +49250,7 @@ ${workspacePath ? `
49079
49250
  ` : ""}
49080
49251
  <Mailbox \u5DE5\u4F5C\u65B9\u5F0F>
49081
49252
  \u4F60\u901A\u8FC7\u90AE\u7BB1\u548C\u540C\u4E8B\u534F\u4F5C\u3002\u6536\u5230\u65B0\u90AE\u4EF6\u63D0\u9192\u540E\uFF0C\u7528 list_mailbox \u770B\u770B\u6709\u54EA\u4E9B\u5F85\u5904\u7406\u7684\u90AE\u4EF6\uFF0C\u6311\u4E00\u5C01\u7528 get_mailbox \u9886\u53D6\u5E76\u8BFB\u5168\u6587\uFF0C\u628A\u5B83\u505A\u5B8C\u6216\u95EE\u6E05\u695A\uFF0C\u518D\u56DE\u590D\u3002\u5904\u7406\u5B8C\u4E00\u5C01\u7EE7\u7EED list_mailbox \u770B\u4E0B\u4E00\u5C01\u3002
49253
+ list_mailbox \u53EA\u662F\u961F\u5217\u5165\u53E3\uFF0C\u4E0D\u662F\u7B49\u5F85\u52A8\u4F5C\uFF1B\u540C\u4E00\u8F6E\u770B\u8FC7\u5217\u8868\u540E\uFF0C\u4E0B\u4E00\u6B65\u5FC5\u987B\u5BF9\u5176\u4E2D\u4E00\u5C01\u90AE\u4EF6\u8C03\u7528 get_mailbox\u3001reply_mailbox\u3001mailbox_followup\u3001discard_mailbox \u6216 department_communicate\uFF0C\u7981\u6B62\u8FDE\u7EED\u91CD\u590D list_mailbox \u7A7A\u8F6C\u3002
49082
49254
 
49083
49255
  \u51E0\u4E2A\u5DE5\u5177\u7684\u542B\u4E49\u8981\u5206\u6E05\uFF0C\u522B\u53EA\u7528\u81EA\u7136\u8BED\u8A00\u8BF4\u8BF4\u5C31\u7B97\u6570\uFF1A
49084
49256
  - mailbox_followup(message_id, content)\uFF1A\u5728\u540C\u4E00\u7EBF\u7A0B\u91CC\u7EE7\u7EED\u6C9F\u901A\u2014\u2014\u540C\u6B65\u8FDB\u5C55\u3001\u8865\u5145\u7ED3\u679C\u3001\u8865\u5145\u4E0A\u4E0B\u6587\u6216\u8BE2\u95EE\u72B6\u6001\uFF1B\u53EF\u4EE5\u591A\u6B21\uFF0C\u4E0D\u4F1A\u7ED3\u675F\u8FD9\u5C01\u90AE\u4EF6\u3002
@@ -52444,6 +52616,12 @@ var import_crypto6 = require("crypto");
52444
52616
  var agentRoutes = new Hono2();
52445
52617
  var runningTasks = /* @__PURE__ */ new Map();
52446
52618
  var runningGoals = /* @__PURE__ */ new Map();
52619
+ var normalizeClientMessageId = (value) => {
52620
+ if (typeof value !== "string") return null;
52621
+ const trimmed = value.trim();
52622
+ if (!trimmed || trimmed.length > 120) return null;
52623
+ return /^[A-Za-z0-9_.:-]+$/.test(trimmed) ? trimmed : null;
52624
+ };
52447
52625
  var parseJsonObject = (raw2) => {
52448
52626
  const match2 = raw2.match(/\{[\s\S]*\}/);
52449
52627
  if (!match2) return null;
@@ -52453,7 +52631,7 @@ var parseJsonObject = (raw2) => {
52453
52631
  return null;
52454
52632
  }
52455
52633
  };
52456
- async function deriveGoalSnapshot(goalId, userMessageText, agentReply) {
52634
+ async function deriveGoalSnapshot(goalId, userMessageText, agentReply, traceRequestId, onLlmRequestId) {
52457
52635
  const goal = getGoalById(goalId);
52458
52636
  if (!goal) return;
52459
52637
  loadEnv();
@@ -52497,7 +52675,14 @@ ${goal.tasks.map((task) => `- [${task.status}] ${task.subject}`).join("\n")}` :
52497
52675
  `- blockers \u53EA\u4FDD\u7559\u5F53\u524D\u771F\u5B9E\u963B\u585E\uFF0C\u6CA1\u6709\u5C31\u8FD4\u56DE []`
52498
52676
  ].join("\n");
52499
52677
  try {
52500
- const response = await llm.chat([userMessage(text(prompt))], "\u4F60\u662F\u4E00\u4E2A\u7ED3\u6784\u5316\u9879\u76EE\u6458\u8981\u52A9\u624B\u3002");
52678
+ const snapshotRequestId = traceRequestId ? `dmeta_${traceRequestId}` : void 0;
52679
+ if (snapshotRequestId) onLlmRequestId?.(snapshotRequestId);
52680
+ const response = await llm.chat(
52681
+ [userMessage(text(prompt))],
52682
+ "\u4F60\u662F\u4E00\u4E2A\u7ED3\u6784\u5316\u9879\u76EE\u6458\u8981\u52A9\u624B\u3002",
52683
+ void 0,
52684
+ snapshotRequestId ? { requestId: snapshotRequestId } : void 0
52685
+ );
52501
52686
  const json = parseJsonObject(extractText(response.content));
52502
52687
  if (!json) return;
52503
52688
  const updated = {
@@ -52775,7 +52960,7 @@ agentRoutes.get("/goals/:gid/tasks/:tid/logs", async (c) => {
52775
52960
  });
52776
52961
  agentRoutes.post("/goals/:gid/chat", async (c) => {
52777
52962
  const { gid } = c.req.param();
52778
- const { message } = await c.req.json();
52963
+ const { message, clientMessageId } = await c.req.json();
52779
52964
  if (!message?.trim()) return c.json({ error: "Message is required" }, 400);
52780
52965
  const goal = getGoalById(gid);
52781
52966
  if (!goal) return c.json({ error: "Goal not found" }, 404);
@@ -52817,9 +53002,7 @@ agentRoutes.post("/goals/:gid/chat", async (c) => {
52817
53002
  `;
52818
53003
  prompt += `
52819
53004
  \u7528\u6237\u6D88\u606F\uFF1A${message}`;
52820
- const requestId = (0, import_crypto6.randomUUID)().slice(0, 8);
52821
- const goalState = { aborted: false, logs: [] };
52822
- runningGoals.set(runKey, goalState);
53005
+ const requestId = normalizeClientMessageId(clientMessageId) ?? (0, import_crypto6.randomUUID)().slice(0, 8);
52823
53006
  const request = {
52824
53007
  platform: "kanban",
52825
53008
  userId: threadId,
@@ -52830,10 +53013,17 @@ agentRoutes.post("/goals/:gid/chat", async (c) => {
52830
53013
  const config2 = getDefaultAgentConfig();
52831
53014
  const replyChannel = refreshedContext?.syncReplyToOrigin && refreshedContext.originPlatform === "feishu" && refreshedContext.originUserId ? config2.channelPlugin : void 0;
52832
53015
  config2.channelPlugin = void 0;
53016
+ const goalState = { aborted: false, logs: [], requestId, llmRequestIds: [] };
53017
+ config2.onLlmRequestId = (llmRequestId) => {
53018
+ if (!goalState.llmRequestIds.includes(llmRequestId)) {
53019
+ goalState.llmRequestIds.push(llmRequestId);
53020
+ }
53021
+ };
53022
+ runningGoals.set(runKey, goalState);
52833
53023
  const agent = createAgent(config2);
52834
53024
  agent(request).then(async (result) => {
52835
53025
  goalState.logs.push(`[\u5B8C\u6210] ${result.content.slice(0, 500)}`);
52836
- await deriveGoalSnapshot(gid, message, result.content);
53026
+ await deriveGoalSnapshot(gid, message, result.content, requestId, config2.onLlmRequestId);
52837
53027
  markGoalDiscussed(gid);
52838
53028
  if (replyChannel && result.content) {
52839
53029
  try {
@@ -52853,7 +53043,7 @@ agentRoutes.post("/goals/:gid/chat", async (c) => {
52853
53043
  }).finally(() => {
52854
53044
  setTimeout(() => runningGoals.delete(runKey), 6e4);
52855
53045
  });
52856
- return c.json({ ok: true, message: "Goal chat started" });
53046
+ return c.json({ ok: true, message: "Goal chat started", requestId });
52857
53047
  });
52858
53048
  agentRoutes.post("/goals/:gid/chat/refresh-summary", async (c) => {
52859
53049
  const { gid } = c.req.param();
@@ -52866,9 +53056,14 @@ agentRoutes.get("/goals/:gid/chat/status", (c) => {
52866
53056
  const { gid } = c.req.param();
52867
53057
  const state = runningGoals.get(`goal:${gid}`);
52868
53058
  if (!state) {
52869
- return c.json({ running: false, logs: [] });
53059
+ return c.json({ running: false, logs: [], requestId: null, llmRequestIds: [] });
52870
53060
  }
52871
- return c.json({ running: true, logs: state.logs });
53061
+ return c.json({
53062
+ running: true,
53063
+ logs: state.logs,
53064
+ requestId: state.requestId ?? null,
53065
+ llmRequestIds: state.llmRequestIds
53066
+ });
52872
53067
  });
52873
53068
  agentRoutes.get("/goals/:gid/chat/logs", async (c) => {
52874
53069
  const { gid } = c.req.param();
@@ -52890,7 +53085,8 @@ agentRoutes.get("/goals/:gid/chat/logs", async (c) => {
52890
53085
  if (messages.length === 0) {
52891
53086
  messages = await getMessages(storage, threadId, 300);
52892
53087
  }
52893
- const isRunning = runningGoals.has(`goal:${gid}`);
53088
+ const state = runningGoals.get(`goal:${gid}`);
53089
+ const isRunning = Boolean(state);
52894
53090
  const logs = messages.map((msg, idx) => {
52895
53091
  const blocks = msg.content.map((block) => {
52896
53092
  if (block.type === "text") {
@@ -52930,7 +53126,12 @@ agentRoutes.get("/goals/:gid/chat/logs", async (c) => {
52930
53126
  blocks
52931
53127
  };
52932
53128
  });
52933
- return c.json({ logs, running: isRunning });
53129
+ return c.json({
53130
+ logs,
53131
+ running: isRunning,
53132
+ requestId: state?.requestId ?? null,
53133
+ llmRequestIds: state?.llmRequestIds ?? []
53134
+ });
52934
53135
  });
52935
53136
 
52936
53137
  // src/server/routes/departments.ts
@@ -54107,7 +54308,7 @@ var systemRoutes = new Hono2();
54107
54308
  var startTime = Date.now();
54108
54309
  systemRoutes.get("/system/info", (c) => {
54109
54310
  return c.json({
54110
- version: true ? "1.9.15" : "unknown",
54311
+ version: true ? "1.9.17" : "unknown",
54111
54312
  uptime: Math.floor((Date.now() - startTime) / 1e3),
54112
54313
  env: process.env.NODE_ENV || "development",
54113
54314
  nodeVersion: process.version
@@ -0,0 +1,50 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>BuildMachineOSBuild</key>
6
+ <string>25C56</string>
7
+ <key>CFBundleDevelopmentRegion</key>
8
+ <string>en</string>
9
+ <key>CFBundleDisplayName</key>
10
+ <string>Duclaw</string>
11
+ <key>CFBundleExecutable</key>
12
+ <string>Duclaw</string>
13
+ <key>CFBundleIdentifier</key>
14
+ <string>dev.duclaw.mac</string>
15
+ <key>CFBundleInfoDictionaryVersion</key>
16
+ <string>6.0</string>
17
+ <key>CFBundleName</key>
18
+ <string>Duclaw</string>
19
+ <key>CFBundlePackageType</key>
20
+ <string>APPL</string>
21
+ <key>CFBundleShortVersionString</key>
22
+ <string>0.1.0</string>
23
+ <key>CFBundleSupportedPlatforms</key>
24
+ <array>
25
+ <string>MacOSX</string>
26
+ </array>
27
+ <key>CFBundleVersion</key>
28
+ <string>1</string>
29
+ <key>DTCompiler</key>
30
+ <string>com.apple.compilers.llvm.clang.1_0</string>
31
+ <key>DTPlatformBuild</key>
32
+ <string>25F70</string>
33
+ <key>DTPlatformName</key>
34
+ <string>macosx</string>
35
+ <key>DTPlatformVersion</key>
36
+ <string>26.5</string>
37
+ <key>DTSDKBuild</key>
38
+ <string>25F70</string>
39
+ <key>DTSDKName</key>
40
+ <string>macosx26.5</string>
41
+ <key>DTXcode</key>
42
+ <string>2650</string>
43
+ <key>DTXcodeBuild</key>
44
+ <string>17F42</string>
45
+ <key>LSApplicationCategoryType</key>
46
+ <string>public.app-category.productivity</string>
47
+ <key>LSMinimumSystemVersion</key>
48
+ <string>14.0</string>
49
+ </dict>
50
+ </plist>
@@ -0,0 +1 @@
1
+ APPL????