nolo-cli 0.143.0-alpha.1 → 0.145.0-alpha.1
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.
- package/README.md +2 -0
- package/{_executeModel-QK43QR2R.js → _executeModel-M3FASQ2Z.js} +18 -17
- package/{agentDeleteCommand-SE4WUIRR.js → agentDeleteCommand-K7GCEEVS.js} +10 -9
- package/{agentEmailCommands-LW5JMYH2.js → agentEmailCommands-MNXRO36L.js} +24 -23
- package/{agentListCommands-LGZG2OQR.js → agentListCommands-KMZR6VVM.js} +12 -11
- package/{agentMachineCommands-BNOXYSPZ.js → agentMachineCommands-75TIBYDY.js} +10 -9
- package/{agentProviderCommands-AOG3OZJA.js → agentProviderCommands-TWB6E5WD.js} +1 -1
- package/{agentRecordCommands-W5ZXPHZV.js → agentRecordCommands-RDO5L3N4.js} +23 -22
- package/{agentRunCommand-VRLCL57M.js → agentRunCommand-FVJJPL27.js} +23 -22
- package/{agentRuntimeLocal-VOQ3UYZB.js → agentRuntimeLocal-DAK7RCER.js} +8 -7
- package/{agentSlice-4AK24F5F.js → agentSlice-6MRJR2BJ.js} +1 -1
- package/{appDeleteCommands-XWAIUHTN.js → appDeleteCommands-JMMXK3XT.js} +11 -10
- package/{appDeployCommands-CBJJCUMG.js → appDeployCommands-JFU6GALI.js} +11 -10
- package/{appDeployStatusCommands-LTTZTJQS.js → appDeployStatusCommands-AXTZ4GAN.js} +11 -10
- package/{appGetCommands-QHUB7MFF.js → appGetCommands-CR2W3DCM.js} +11 -10
- package/{appListCommands-HINIDJE7.js → appListCommands-2TV6P3EU.js} +11 -10
- package/{authCommand-LARLQ3GC.js → authCommand-UBJ4EWYZ.js} +6 -6
- package/{authCommands-GBIFZWD3.js → authCommands-H6WKKCRW.js} +1 -1
- package/{builtinSkillRegistry-AFPSTTAU.js → builtinSkillRegistry-ZMF6YGNO.js} +4 -3
- package/{chatQueueReduxAdapter-KIQ3FQ62.js → chatQueueReduxAdapter-CDOHVTSE.js} +2 -2
- package/{chromeCommands-NKU3OWKH.js → chromeCommands-2N6MEWRU.js} +94 -23
- package/{chromeOpsCommands-OQDJGD4Y.js → chromeOpsCommands-IXRLN57H.js} +4 -3
- package/{chunk-7MUSNQ6E.js → chunk-27ONFIEY.js} +20 -2
- package/{chunk-OZ6V53WV.js → chunk-2EE5UD3N.js} +1 -1
- package/{chunk-44QZPYLI.js → chunk-2SYTUTLI.js} +92 -20
- package/{chunk-DID5AVGT.js → chunk-2TKVOEQF.js} +11 -10
- package/chunk-5J3PYNUP.js +255 -0
- package/{chunk-OUOJE2P2.js → chunk-5XYFIDFU.js} +5 -5
- package/{chunk-WTUVMKSQ.js → chunk-62XHRZG4.js} +2 -2
- package/{chunk-WC6A2Q7S.js → chunk-6TPOEJMQ.js} +5 -2
- package/{chunk-RRMAZ2BI.js → chunk-7NANRWL4.js} +1 -1
- package/{chunk-44F6KKUE.js → chunk-7YAK46ML.js} +3 -3
- package/{chunk-NOGH7HCP.js → chunk-A6FNUMCF.js} +47 -6
- package/{chunk-OFYHCA6W.js → chunk-AATZZAZE.js} +1 -1
- package/{chunk-KUPDS66Q.js → chunk-ANX7Z7Z2.js} +8 -8
- package/{chunk-J5H6SUOW.js → chunk-B2XUQXQX.js} +2 -2
- package/{chunk-A5MB5RIT.js → chunk-CCOXTK3I.js} +1 -1
- package/chunk-GNMAFAIS.js +29 -0
- package/{chunk-GZQNKKDG.js → chunk-HKBFZONG.js} +1 -1
- package/{chunk-7LLWEG6F.js → chunk-I44MDY73.js} +3 -3
- package/{chunk-QDT5T7MK.js → chunk-I4OPU5TK.js} +1 -1
- package/{chunk-VPFEPRME.js → chunk-IVZJWTDI.js} +3 -0
- package/{chunk-CTGZO35O.js → chunk-JLQKV2ZJ.js} +2 -2
- package/{chunk-PQVOC2CZ.js → chunk-M2YBIBBS.js} +1 -1
- package/{chunk-ZOI6KA4N.js → chunk-M76SRQ3H.js} +34 -22
- package/{chunk-K25DK52L.js → chunk-OKSJZ4UU.js} +21 -223
- package/{chunk-U5QTKTZE.js → chunk-P6GMCCAT.js} +1 -1
- package/{chunk-L6RB42ZR.js → chunk-QFZM5BFI.js} +3 -3
- package/{chunk-GH4MH73K.js → chunk-RHDOQWXZ.js} +175 -17
- package/{chunk-M6NK74VP.js → chunk-S5XGT6GB.js} +1 -1
- package/{chunk-KUWT3C2P.js → chunk-T76D3OYX.js} +1 -1
- package/{chunk-MXRUAINC.js → chunk-UMB7CHAY.js} +3 -3
- package/{chunk-VVUSRF5D.js → chunk-VJ4FUWPC.js} +3 -3
- package/{chunk-T36EFAW7.js → chunk-VZVTPDPL.js} +3 -3
- package/{chunk-AAROOKLX.js → chunk-X2QRZXZH.js} +1 -1
- package/{chunk-WYYO2YOL.js → chunk-XNXNHAAP.js} +1 -1
- package/{chunk-O6OSWFZQ.js → chunk-XUWRURDF.js} +6 -0
- package/{chunk-DOBBRISY.js → chunk-Y6XHJ4JJ.js} +22 -10
- package/{chunk-W247GBSQ.js → chunk-YU2THNST.js} +1 -1
- package/{chunk-OY5IJI2N.js → chunk-YUNJN43V.js} +23 -3
- package/{commandRegistry-DETYXF5I.js → commandRegistry-ZF6YXQWV.js} +76 -65
- package/{contentThunks-6QBTPLWT.js → contentThunks-6Y6ATG3A.js} +3 -3
- package/{createAgentAutomationAction-TZVIJTZ7.js → createAgentAutomationAction-OQTLA2FC.js} +3 -3
- package/{createDialogAction-KTDAEA42.js → createDialogAction-IF5EZMBD.js} +6 -5
- package/{createPageAction-4RASVDAU.js → createPageAction-GU766R3L.js} +3 -3
- package/{dialogCommands-GY7LRERG.js → dialogCommands-QV7XAX2V.js} +11 -10
- package/{dialogSlice-J24APUGG.js → dialogSlice-CVHMDSVV.js} +2 -2
- package/{docCreateCommands-T7KII3WP.js → docCreateCommands-FSBANQTO.js} +10 -9
- package/{docDeleteCommands-SQ26EFE6.js → docDeleteCommands-4IR4YSGU.js} +11 -10
- package/{docReadCommands-I6NA2ZKV.js → docReadCommands-4EYPGUE3.js} +10 -9
- package/{docStore-SPOGE7K3.js → docStore-RQOWPNON.js} +1 -1
- package/{docUpdateCommands-IG43SZ6U.js → docUpdateCommands-RW2BYLSE.js} +10 -9
- package/{handleSendMessageAction-I2IN64DS.js → handleSendMessageAction-UDTPG5WK.js} +4 -3
- package/index.js +4 -4
- package/{machineCommands-U7VABJPW.js → machineCommands-WBQ4TCPD.js} +22 -21
- package/{machineWsRunDispatch-ZNU6LRNG.js → machineWsRunDispatch-7DNDXUOS.js} +22 -21
- package/node_modules/abstract-level/CHANGELOG.md +150 -0
- package/node_modules/abstract-level/LICENSE +21 -0
- package/node_modules/abstract-level/README.md +1957 -0
- package/node_modules/abstract-level/UPGRADING.md +669 -0
- package/node_modules/abstract-level/abstract-chained-batch.js +397 -0
- package/node_modules/abstract-level/abstract-iterator.js +404 -0
- package/node_modules/abstract-level/abstract-level.js +1127 -0
- package/node_modules/abstract-level/abstract-snapshot.js +84 -0
- package/node_modules/abstract-level/index.d.ts +52 -0
- package/node_modules/abstract-level/index.js +9 -0
- package/node_modules/abstract-level/lib/abstract-sublevel-iterator.js +141 -0
- package/node_modules/abstract-level/lib/abstract-sublevel.js +290 -0
- package/node_modules/abstract-level/lib/common.js +33 -0
- package/node_modules/abstract-level/lib/default-chained-batch.js +29 -0
- package/node_modules/abstract-level/lib/default-kv-iterator.js +74 -0
- package/node_modules/abstract-level/lib/deferred-iterator.js +110 -0
- package/node_modules/abstract-level/lib/deferred-queue.js +84 -0
- package/node_modules/abstract-level/lib/errors.js +21 -0
- package/node_modules/abstract-level/lib/event-monitor.js +30 -0
- package/node_modules/abstract-level/lib/hooks.js +78 -0
- package/node_modules/abstract-level/lib/prefixes.js +21 -0
- package/node_modules/abstract-level/lib/prewrite-batch.js +96 -0
- package/node_modules/abstract-level/lib/range-options.js +26 -0
- package/node_modules/abstract-level/package.json +66 -0
- package/node_modules/abstract-level/test/async-iterator-test.js +132 -0
- package/node_modules/abstract-level/test/batch-test.js +214 -0
- package/node_modules/abstract-level/test/chained-batch-test.js +315 -0
- package/node_modules/abstract-level/test/clear-range-test.js +262 -0
- package/node_modules/abstract-level/test/clear-test.js +110 -0
- package/node_modules/abstract-level/test/common.js +90 -0
- package/node_modules/abstract-level/test/deferred-open-test.js +209 -0
- package/node_modules/abstract-level/test/del-test.js +65 -0
- package/node_modules/abstract-level/test/encoding-buffer-test.js +336 -0
- package/node_modules/abstract-level/test/encoding-custom-test.js +92 -0
- package/node_modules/abstract-level/test/encoding-decode-error-test.js +85 -0
- package/node_modules/abstract-level/test/encoding-json-test.js +75 -0
- package/node_modules/abstract-level/test/encoding-test.js +130 -0
- package/node_modules/abstract-level/test/events/write.js +132 -0
- package/node_modules/abstract-level/test/factory-test.js +36 -0
- package/node_modules/abstract-level/test/get-many-test.js +157 -0
- package/node_modules/abstract-level/test/get-sync-test.js +61 -0
- package/node_modules/abstract-level/test/get-test.js +83 -0
- package/node_modules/abstract-level/test/has-many-test.js +144 -0
- package/node_modules/abstract-level/test/has-test.js +81 -0
- package/node_modules/abstract-level/test/hooks/newsub.js +57 -0
- package/node_modules/abstract-level/test/hooks/postopen.js +229 -0
- package/node_modules/abstract-level/test/hooks/prewrite.js +816 -0
- package/node_modules/abstract-level/test/hooks/shared.js +38 -0
- package/node_modules/abstract-level/test/index.js +86 -0
- package/node_modules/abstract-level/test/iterator-explicit-snapshot-test.js +393 -0
- package/node_modules/abstract-level/test/iterator-no-snapshot-test.js +49 -0
- package/node_modules/abstract-level/test/iterator-range-test.js +277 -0
- package/node_modules/abstract-level/test/iterator-seek-test.js +335 -0
- package/node_modules/abstract-level/test/iterator-snapshot-test.js +56 -0
- package/node_modules/abstract-level/test/iterator-test.js +621 -0
- package/node_modules/abstract-level/test/manifest-test.js +21 -0
- package/node_modules/abstract-level/test/open-create-if-missing-test.js +39 -0
- package/node_modules/abstract-level/test/open-error-if-exists-test.js +25 -0
- package/node_modules/abstract-level/test/open-test.js +263 -0
- package/node_modules/abstract-level/test/put-get-del-test.js +97 -0
- package/node_modules/abstract-level/test/put-test.js +70 -0
- package/node_modules/abstract-level/test/self/abstract-iterator-test.js +182 -0
- package/node_modules/abstract-level/test/self/async-iterator-test.js +242 -0
- package/node_modules/abstract-level/test/self/attach-resource-test.js +74 -0
- package/node_modules/abstract-level/test/self/defer-test.js +140 -0
- package/node_modules/abstract-level/test/self/deferred-iterator-test.js +314 -0
- package/node_modules/abstract-level/test/self/deferred-operations-test.js +86 -0
- package/node_modules/abstract-level/test/self/deferred-queue-test.js +93 -0
- package/node_modules/abstract-level/test/self/encoding-test.js +391 -0
- package/node_modules/abstract-level/test/self/errors-test.js +11 -0
- package/node_modules/abstract-level/test/self/iterator-test.js +1050 -0
- package/node_modules/abstract-level/test/self/sublevel-test.js +1039 -0
- package/node_modules/abstract-level/test/self.js +905 -0
- package/node_modules/abstract-level/test/sublevel-test.js +209 -0
- package/node_modules/abstract-level/test/traits/closed.js +42 -0
- package/node_modules/abstract-level/test/traits/index.js +4 -0
- package/node_modules/abstract-level/test/traits/open.js +62 -0
- package/node_modules/abstract-level/test/util.js +275 -0
- package/node_modules/abstract-level/types/abstract-chained-batch.d.ts +124 -0
- package/node_modules/abstract-level/types/abstract-iterator.d.ts +241 -0
- package/node_modules/abstract-level/types/abstract-level.d.ts +636 -0
- package/node_modules/abstract-level/types/abstract-snapshot.d.ts +30 -0
- package/node_modules/abstract-level/types/abstract-sublevel.d.ts +76 -0
- package/node_modules/abstract-level/types/interfaces.d.ts +43 -0
- package/node_modules/base64-js/LICENSE +21 -0
- package/node_modules/base64-js/README.md +34 -0
- package/node_modules/base64-js/base64js.min.js +1 -0
- package/node_modules/base64-js/index.d.ts +3 -0
- package/node_modules/base64-js/index.js +150 -0
- package/node_modules/base64-js/package.json +47 -0
- package/node_modules/browser-level/CHANGELOG.md +44 -0
- package/node_modules/browser-level/LICENSE +21 -0
- package/node_modules/browser-level/README.md +124 -0
- package/node_modules/browser-level/UPGRADING.md +143 -0
- package/node_modules/browser-level/index.d.ts +108 -0
- package/node_modules/browser-level/index.js +323 -0
- package/node_modules/browser-level/iterator.js +239 -0
- package/node_modules/browser-level/package.json +48 -0
- package/node_modules/browser-level/util/clear.js +38 -0
- package/node_modules/browser-level/util/deserialize.js +17 -0
- package/node_modules/browser-level/util/key-range.js +20 -0
- package/node_modules/buffer/AUTHORS.md +73 -0
- package/node_modules/buffer/LICENSE +21 -0
- package/node_modules/buffer/README.md +410 -0
- package/node_modules/buffer/index.d.ts +194 -0
- package/node_modules/buffer/index.js +2106 -0
- package/node_modules/buffer/package.json +93 -0
- package/node_modules/classic-level/CHANGELOG.md +115 -0
- package/node_modules/classic-level/LICENSE +21 -0
- package/node_modules/classic-level/README.md +274 -0
- package/node_modules/classic-level/UPGRADING.md +131 -0
- package/node_modules/classic-level/binding.cc +2652 -0
- package/node_modules/classic-level/binding.gyp +71 -0
- package/node_modules/classic-level/binding.js +1 -0
- package/node_modules/classic-level/chained-batch.js +35 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/LICENSE +27 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/Makefile +424 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/build_detect_platform +256 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/autocompact_test.cc +118 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/builder.cc +88 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/builder.h +34 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/c.cc +595 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/c_test.c +390 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/corruption_test.cc +374 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_bench.cc +1020 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_impl.cc +1568 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_impl.h +212 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_iter.cc +317 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_iter.h +28 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_test.cc +2158 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dbformat.cc +140 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dbformat.h +230 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dbformat_test.cc +112 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dumpfile.cc +225 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/fault_injection_test.cc +554 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/filename.cc +144 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/filename.h +85 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/filename_test.cc +123 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/leveldbutil.cc +64 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_format.h +35 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_reader.cc +284 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_reader.h +113 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_test.cc +591 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_writer.cc +112 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_writer.h +54 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/memtable.cc +145 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/memtable.h +89 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/recovery_test.cc +324 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/repair.cc +461 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/skiplist.h +384 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/skiplist_test.cc +378 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/snapshot.h +67 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/table_cache.cc +127 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/table_cache.h +61 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_edit.cc +266 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_edit.h +107 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_edit_test.cc +46 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_set.cc +1535 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_set.h +399 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_set_test.cc +179 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/write_batch.cc +147 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/write_batch_internal.h +50 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/write_batch_test.cc +120 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/helpers/memenv/memenv.cc +398 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/helpers/memenv/memenv.h +20 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/helpers/memenv/memenv_test.cc +241 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/c.h +290 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/cache.h +110 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/comparator.h +63 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/db.h +164 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/dumpfile.h +25 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/env.h +351 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/filter_policy.h +70 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/iterator.h +100 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/options.h +213 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/slice.h +109 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/status.h +112 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/table.h +85 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/table_builder.h +92 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/value_sink.h +26 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/write_batch.h +64 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/issues/issue178_test.cc +92 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/issues/issue200_test.cc +59 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/atomic_pointer.h +242 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port.h +21 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_example.h +141 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_posix.cc +53 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_posix.h +156 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_posix_sse.cc +129 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/thread_annotations.h +60 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/win/stdint.h +24 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block.cc +268 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block.h +44 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block_builder.cc +109 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block_builder.h +57 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/filter_block.cc +111 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/filter_block.h +68 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/filter_block_test.cc +128 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/format.cc +144 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/format.h +108 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/iterator.cc +67 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/iterator_wrapper.h +66 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/merger.cc +197 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/merger.h +26 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/table.cc +285 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/table_builder.cc +270 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/table_test.cc +876 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/two_level_iterator.cc +182 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/two_level_iterator.h +34 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/arena.cc +68 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/arena.h +68 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/arena_test.cc +68 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/bloom.cc +95 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/bloom_test.cc +162 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/cache.cc +405 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/cache_test.cc +226 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/coding.cc +194 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/coding.h +104 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/coding_test.cc +196 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/comparator.cc +81 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/crc32c.cc +350 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/crc32c.h +45 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/crc32c_test.cc +72 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env.cc +100 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_posix.cc +695 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_posix_test.cc +66 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_posix_test_helper.h +28 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_test.cc +106 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/filter_policy.cc +11 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/hash.cc +52 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/hash.h +19 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/hash_test.cc +54 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/histogram.cc +139 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/histogram.h +42 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/logging.cc +72 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/logging.h +43 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/mutexlock.h +41 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/options.cc +30 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/posix_logger.h +98 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/random.h +64 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/status.cc +75 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testharness.cc +77 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testharness.h +138 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testutil.cc +51 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testutil.h +63 -0
- package/node_modules/classic-level/deps/leveldb/leveldb.gyp +282 -0
- package/node_modules/classic-level/deps/leveldb/patches/001-value-sink.patch +164 -0
- package/node_modules/classic-level/deps/leveldb/port-libuv/atomic_pointer_win.h +48 -0
- package/node_modules/classic-level/deps/leveldb/port-libuv/env_win.cc +692 -0
- package/node_modules/classic-level/deps/leveldb/port-libuv/port_uv.cc +36 -0
- package/node_modules/classic-level/deps/leveldb/port-libuv/port_uv.h +157 -0
- package/node_modules/classic-level/deps/leveldb/port-libuv/port_uv.h.bak +153 -0
- package/node_modules/classic-level/deps/leveldb/port-libuv/stdint-msvc2008.h +247 -0
- package/node_modules/classic-level/deps/leveldb/port-libuv/uv_condvar.h +45 -0
- package/node_modules/classic-level/deps/leveldb/port-libuv/uv_condvar_posix.cc +139 -0
- package/node_modules/classic-level/deps/leveldb/port-libuv/win_logger.cc +79 -0
- package/node_modules/classic-level/deps/leveldb/port-libuv/win_logger.h +28 -0
- package/node_modules/classic-level/deps/snappy/freebsd/config.h +135 -0
- package/node_modules/classic-level/deps/snappy/freebsd/snappy-stubs-public.h +100 -0
- package/node_modules/classic-level/deps/snappy/linux/config.h +135 -0
- package/node_modules/classic-level/deps/snappy/linux/snappy-stubs-public.h +100 -0
- package/node_modules/classic-level/deps/snappy/mac/config.h +137 -0
- package/node_modules/classic-level/deps/snappy/mac/snappy-stubs-public.h +100 -0
- package/node_modules/classic-level/deps/snappy/openbsd/config.h +135 -0
- package/node_modules/classic-level/deps/snappy/openbsd/snappy-stubs-public.h +100 -0
- package/node_modules/classic-level/deps/snappy/snappy/COPYING +54 -0
- package/node_modules/classic-level/deps/snappy/snappy/cmake/SnappyConfig.cmake +1 -0
- package/node_modules/classic-level/deps/snappy/snappy/cmake/config.h.in +62 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy-c.cc +90 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy-c.h +138 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy-internal.h +224 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy-sinksource.cc +104 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy-sinksource.h +182 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy-stubs-internal.cc +42 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy-stubs-internal.h +561 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy-stubs-public.h.in +94 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy-test.cc +612 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy-test.h +573 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy.cc +1515 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy.h +203 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy_unittest.cc +1410 -0
- package/node_modules/classic-level/deps/snappy/snappy.gyp +119 -0
- package/node_modules/classic-level/deps/snappy/solaris/config.h +135 -0
- package/node_modules/classic-level/deps/snappy/solaris/snappy-stubs-public.h +100 -0
- package/node_modules/classic-level/deps/snappy/win32/config.h +29 -0
- package/node_modules/classic-level/deps/snappy/win32/snappy-stubs-public.h +100 -0
- package/node_modules/classic-level/index.d.ts +343 -0
- package/node_modules/classic-level/index.js +311 -0
- package/node_modules/classic-level/iterator.js +122 -0
- package/node_modules/classic-level/package.json +70 -0
- package/node_modules/classic-level/prebuilds/android-arm/classic-level.armv7.node +0 -0
- package/node_modules/classic-level/prebuilds/android-arm64/classic-level.armv8.node +0 -0
- package/node_modules/classic-level/prebuilds/darwin-x64+arm64/classic-level.node +0 -0
- package/node_modules/classic-level/prebuilds/linux-arm/classic-level.armv6.node +0 -0
- package/node_modules/classic-level/prebuilds/linux-arm/classic-level.armv7.node +0 -0
- package/node_modules/classic-level/prebuilds/linux-arm64/classic-level.armv8.node +0 -0
- package/node_modules/classic-level/prebuilds/linux-x64/classic-level.musl.node +0 -0
- package/node_modules/classic-level/prebuilds/linux-x64/classic-level.node +0 -0
- package/node_modules/classic-level/prebuilds/win32-ia32/classic-level.node +0 -0
- package/node_modules/classic-level/prebuilds/win32-x64/classic-level.node +0 -0
- package/node_modules/ieee754/LICENSE +11 -0
- package/node_modules/ieee754/README.md +51 -0
- package/node_modules/ieee754/index.d.ts +10 -0
- package/node_modules/ieee754/index.js +85 -0
- package/node_modules/ieee754/package.json +52 -0
- package/node_modules/is-buffer/LICENSE +21 -0
- package/node_modules/is-buffer/README.md +54 -0
- package/node_modules/is-buffer/index.d.ts +2 -0
- package/node_modules/is-buffer/index.js +11 -0
- package/node_modules/is-buffer/package.json +65 -0
- package/node_modules/level/CHANGELOG.md +532 -0
- package/node_modules/level/LICENSE +21 -0
- package/node_modules/level/README.md +107 -0
- package/node_modules/level/UPGRADING.md +413 -0
- package/node_modules/level/browser.js +1 -0
- package/node_modules/level/index.d.ts +75 -0
- package/node_modules/level/index.js +1 -0
- package/node_modules/level/package.json +62 -0
- package/node_modules/level-supports/CHANGELOG.md +140 -0
- package/node_modules/level-supports/LICENSE +21 -0
- package/node_modules/level-supports/README.md +276 -0
- package/node_modules/level-supports/index.d.ts +137 -0
- package/node_modules/level-supports/index.js +26 -0
- package/node_modules/level-supports/package.json +46 -0
- package/node_modules/level-supports/test/cloneable.js +26 -0
- package/node_modules/level-supports/test/index.js +24 -0
- package/node_modules/level-supports/test/self.js +86 -0
- package/node_modules/level-supports/test/shape.js +23 -0
- package/node_modules/level-transcoder/CHANGELOG.md +15 -0
- package/node_modules/level-transcoder/LICENSE +21 -0
- package/node_modules/level-transcoder/README.md +214 -0
- package/node_modules/level-transcoder/UPGRADING.md +13 -0
- package/node_modules/level-transcoder/index.d.ts +27 -0
- package/node_modules/level-transcoder/index.js +158 -0
- package/node_modules/level-transcoder/lib/encoding.d.ts +158 -0
- package/node_modules/level-transcoder/lib/encoding.js +105 -0
- package/node_modules/level-transcoder/lib/encodings.d.ts +9 -0
- package/node_modules/level-transcoder/lib/encodings.js +135 -0
- package/node_modules/level-transcoder/lib/formats.d.ts +13 -0
- package/node_modules/level-transcoder/lib/formats.js +111 -0
- package/node_modules/level-transcoder/lib/text-endec.d.ts +6 -0
- package/node_modules/level-transcoder/lib/text-endec.js +19 -0
- package/node_modules/level-transcoder/package.json +46 -0
- package/node_modules/maybe-combine-errors/LICENSE.md +21 -0
- package/node_modules/maybe-combine-errors/README.md +94 -0
- package/node_modules/maybe-combine-errors/index.js +60 -0
- package/node_modules/maybe-combine-errors/package.json +33 -0
- package/node_modules/module-error/CHANGELOG.md +23 -0
- package/node_modules/module-error/LICENSE +21 -0
- package/node_modules/module-error/README.md +89 -0
- package/node_modules/module-error/index.d.ts +18 -0
- package/node_modules/module-error/index.js +22 -0
- package/node_modules/module-error/package.json +36 -0
- package/node_modules/napi-macros/LICENSE +21 -0
- package/node_modules/napi-macros/README.md +277 -0
- package/node_modules/napi-macros/index.js +1 -0
- package/node_modules/napi-macros/napi-macros.h +255 -0
- package/node_modules/napi-macros/package.json +22 -0
- package/node_modules/node-gyp-build/LICENSE +21 -0
- package/node_modules/node-gyp-build/README.md +58 -0
- package/node_modules/node-gyp-build/SECURITY.md +5 -0
- package/node_modules/node-gyp-build/bin.js +84 -0
- package/node_modules/node-gyp-build/build-test.js +19 -0
- package/node_modules/node-gyp-build/index.js +6 -0
- package/node_modules/node-gyp-build/node-gyp-build.js +207 -0
- package/node_modules/node-gyp-build/optional.js +7 -0
- package/node_modules/node-gyp-build/package.json +43 -0
- package/package.json +6 -3
- package/{providerPresetApply-7XEHTODR.js → providerPresetApply-XTEXOH7X.js} +3 -3
- package/{providerRegistry-GNV4FFSA.js → providerRegistry-ADYDSLKR.js} +3 -3
- package/{readlineWorkspace-46KDFUHN.js → readlineWorkspace-LO6ZLFTO.js} +1381 -1317
- package/{runAgentClientLoop-CQWLWU4W.js → runAgentClientLoop-KAYGKVTK.js} +16 -15
- package/{runtimeDoctorCommands-3USD722U.js → runtimeDoctorCommands-ID23PNNZ.js} +28 -0
- package/{spaceCommands-TSBC5UWP.js → spaceCommands-FA6RCZ2Y.js} +10 -9
- package/{streamAgentChatTurn-XD5JEJXA.js → streamAgentChatTurn-DFNDU2UY.js} +17 -16
- package/{tools-5NAJJTFN.js → tools-6HKH75NT.js} +13 -12
- package/{tuiSummaryLlmCaller-7KLLDP22.js → tuiSummaryLlmCaller-CFFVXQWX.js} +2 -2
- package/{updateCommands-XYMGOKF4.js → updateCommands-4EHDLF5J.js} +1 -1
- package/{updateDialogTitleAction-IKZPJCRA.js → updateDialogTitleAction-FFSYTLBC.js} +3 -3
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
NOLO_CHROME_CONNECTOR_EXTENSION_ID,
|
|
3
3
|
NOLO_CHROME_CONNECTOR_PROTOCOL_VERSION,
|
|
4
|
+
NOLO_CONNECTOR_EXTENSION_IDS,
|
|
5
|
+
NOLO_FIREFOX_CONNECTOR_EXTENSION_ID,
|
|
4
6
|
REQUIRED_CHROME_CONNECTOR_FEATURES,
|
|
5
7
|
createChromeConnectorClient
|
|
6
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-YUNJN43V.js";
|
|
7
9
|
import {
|
|
8
10
|
toErrorMessage
|
|
9
11
|
} from "./chunk-HNMXYYJR.js";
|
|
@@ -11,11 +13,11 @@ import "./chunk-KUG52IAP.js";
|
|
|
11
13
|
import "./chunk-4VNS5WPM.js";
|
|
12
14
|
|
|
13
15
|
// packages/cli/chromeCommands.ts
|
|
14
|
-
import { existsSync as existsSync2, readFileSync as readFileSync2, statSync } from "node:fs";
|
|
16
|
+
import { existsSync as existsSync2, readFileSync as readFileSync2, statSync as statSync2 } from "node:fs";
|
|
15
17
|
import { resolve as resolve2 } from "node:path";
|
|
16
18
|
|
|
17
19
|
// packages/desktop-chrome-connector/nativeHostInstall.mjs
|
|
18
|
-
import { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
20
|
+
import { chmodSync, existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
|
|
19
21
|
import { createHash, randomBytes } from "node:crypto";
|
|
20
22
|
import { dirname, resolve } from "node:path";
|
|
21
23
|
import { execFileSync } from "node:child_process";
|
|
@@ -144,6 +146,21 @@ var CLI_CONNECTOR_ROOT_CANDIDATES = [
|
|
|
144
146
|
var FULL_SUPPORT_CHROME_FEATURES = [
|
|
145
147
|
...new Set(Object.values(REQUIRED_CHROME_CONNECTOR_FEATURES).flat())
|
|
146
148
|
].sort();
|
|
149
|
+
var FIREFOX_UNAVAILABLE_FEATURES = ["browser_debug", "file_upload"];
|
|
150
|
+
function resolveConnectorBrowser(extensionId) {
|
|
151
|
+
if (!extensionId) return null;
|
|
152
|
+
if (extensionId === NOLO_FIREFOX_CONNECTOR_EXTENSION_ID) return "firefox";
|
|
153
|
+
if (NOLO_CONNECTOR_EXTENSION_IDS.includes(extensionId)) return "chrome";
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
function expectedFeaturesForBrowser(browser) {
|
|
157
|
+
return browser === "firefox" ? FULL_SUPPORT_CHROME_FEATURES.filter(
|
|
158
|
+
(feature) => !FIREFOX_UNAVAILABLE_FEATURES.includes(feature)
|
|
159
|
+
) : FULL_SUPPORT_CHROME_FEATURES;
|
|
160
|
+
}
|
|
161
|
+
function browserLabel(browser) {
|
|
162
|
+
return browser === "firefox" ? "Firefox" : browser === "chrome" ? "Chrome" : "browser";
|
|
163
|
+
}
|
|
147
164
|
function pickCliConnectorRoot(candidates) {
|
|
148
165
|
for (const candidate of candidates) {
|
|
149
166
|
if (existsSync2(resolve2(candidate, "extension", "manifest.json"))) return candidate;
|
|
@@ -183,7 +200,7 @@ function detectWorktreeCheckout(connectorRoot) {
|
|
|
183
200
|
if (existsSync2(gitEntry)) {
|
|
184
201
|
let isGitFile = null;
|
|
185
202
|
try {
|
|
186
|
-
isGitFile =
|
|
203
|
+
isGitFile = statSync2(gitEntry).isFile();
|
|
187
204
|
} catch {
|
|
188
205
|
}
|
|
189
206
|
if (isGitFile === true) {
|
|
@@ -258,9 +275,13 @@ async function probeConnectorRpc(requestChrome) {
|
|
|
258
275
|
}
|
|
259
276
|
}
|
|
260
277
|
function resolveStatusNextStep(report) {
|
|
278
|
+
const targetBrowser = report.rpc.browser ?? report.nativeHost.browser;
|
|
279
|
+
const installCmd = targetBrowser === "firefox" ? "nolo chrome install --browser firefox" : "nolo chrome install";
|
|
280
|
+
const connectedLabel = browserLabel(targetBrowser);
|
|
281
|
+
const browserText = connectedLabel === "browser" ? "the browser" : connectedLabel;
|
|
261
282
|
if (!report.connectorRoot) {
|
|
262
283
|
if (report.rpc.online && report.rpc.protocolVersion === report.rpc.expectedProtocolVersion) {
|
|
263
|
-
return "
|
|
284
|
+
return "The Nolo Browser Connector is online, but this CLI cannot see a connector checkout, so `nolo chrome install` / manifest checks are unavailable here. Set NOLO_CHROME_CONNECTOR_ROOT (or run the CLI from a repo checkout) to enable them.";
|
|
264
285
|
}
|
|
265
286
|
return "Run the CLI from a repo checkout that contains packages/desktop-chrome-connector, or set NOLO_CHROME_CONNECTOR_ROOT to one, then rerun `nolo chrome status`.";
|
|
266
287
|
}
|
|
@@ -268,20 +289,20 @@ function resolveStatusNextStep(report) {
|
|
|
268
289
|
return `This platform has no supported native messaging host install (Chrome looks the host up through a registry value on Windows), so non-interactive install is not available: ${report.nativeHost.platformError ?? "unsupported platform"}`;
|
|
269
290
|
}
|
|
270
291
|
if (!report.nativeHost.installed || !report.token.present) {
|
|
271
|
-
return
|
|
292
|
+
return installCmd;
|
|
272
293
|
}
|
|
273
294
|
if (!report.nativeHost.wrapperPathMatches || !report.nativeHost.allowedOriginMatches) {
|
|
274
295
|
const installedWrapperPath = report.nativeHost.installedWrapperPath;
|
|
275
296
|
if (!report.nativeHost.wrapperPathMatches && installedWrapperPath && installedWrapperPath !== report.nativeHost.wrapperPath && existsSync2(installedWrapperPath)) {
|
|
276
|
-
return `Native host is installed for a different checkout (${installedWrapperPath}); this CLI is looking at ${report.connectorRoot}. Run \`nolo chrome status\` from the checkout that installed it, or run \`
|
|
297
|
+
return `Native host is installed for a different checkout (${installedWrapperPath}); this CLI is looking at ${report.connectorRoot}. Run \`nolo chrome status\` from the checkout that installed it, or run \`${installCmd}\` from here only if ${browserText} should switch to this one.`;
|
|
277
298
|
}
|
|
278
|
-
return
|
|
299
|
+
return `${installCmd} (the installed manifest does not point at this checkout's wrapper / extension id, which ${browserText} silently ignores)`;
|
|
279
300
|
}
|
|
280
301
|
if (!report.rpc.online) {
|
|
281
|
-
return `Load the unpacked extension from ${report.extension.path} in chrome://extensions (
|
|
302
|
+
return `Load the unpacked extension from ${report.extension.path} in chrome://extensions (Chrome) or about:debugging#/runtime/this-firefox (Firefox), or install the Nolo Browser Connector from https://nolo.chat/downloads, then rerun \`nolo chrome status\`.`;
|
|
282
303
|
}
|
|
283
|
-
if (report.rpc.extensionId && report.rpc.
|
|
284
|
-
return `The connected extension (${report.rpc.extensionId}) is not
|
|
304
|
+
if (report.rpc.extensionId && report.rpc.browser === null) {
|
|
305
|
+
return `The connected extension (${report.rpc.extensionId}) is not a recognized Nolo Browser Connector build; reload it (\`nolo chrome reload\`) or remove the other copy, then rerun \`nolo chrome status\`.`;
|
|
285
306
|
}
|
|
286
307
|
if (report.rpc.protocolVersion !== report.rpc.expectedProtocolVersion) {
|
|
287
308
|
return `nolo chrome reload (the running extension does not speak protocol ${report.rpc.expectedProtocolVersion}; a reload restarts the worker with the files on disk)`;
|
|
@@ -289,7 +310,7 @@ function resolveStatusNextStep(report) {
|
|
|
289
310
|
if (report.rpc.missingFeatures.length > 0) {
|
|
290
311
|
return `nolo chrome reload (the running extension is missing ${report.rpc.missingFeatures.join(", ")}); if that persists, the checkout's extension is older than the CLI expects.`;
|
|
291
312
|
}
|
|
292
|
-
return
|
|
313
|
+
return `The Nolo Browser Connector is online (${connectedLabel}): connector tools execute against this ${connectedLabel} profile.`;
|
|
293
314
|
}
|
|
294
315
|
async function buildChromeConnectorStatus(args = {}) {
|
|
295
316
|
const env = args.env ?? process.env;
|
|
@@ -320,7 +341,8 @@ async function buildChromeConnectorStatus(args = {}) {
|
|
|
320
341
|
wrapperPath: null,
|
|
321
342
|
installedWrapperPath: null,
|
|
322
343
|
wrapperPathMatches: false,
|
|
323
|
-
allowedOriginMatches: false
|
|
344
|
+
allowedOriginMatches: false,
|
|
345
|
+
browser: null
|
|
324
346
|
},
|
|
325
347
|
token: { path: null, present: false },
|
|
326
348
|
rpc: {
|
|
@@ -328,6 +350,7 @@ async function buildChromeConnectorStatus(args = {}) {
|
|
|
328
350
|
extensionId: null,
|
|
329
351
|
protocolVersion: null,
|
|
330
352
|
features: [],
|
|
353
|
+
browser: null,
|
|
331
354
|
missingFeatures: [...FULL_SUPPORT_CHROME_FEATURES],
|
|
332
355
|
expectedProtocolVersion: NOLO_CHROME_CONNECTOR_PROTOCOL_VERSION
|
|
333
356
|
},
|
|
@@ -339,19 +362,48 @@ async function buildChromeConnectorStatus(args = {}) {
|
|
|
339
362
|
report.rpc.extensionId = probe.extensionId;
|
|
340
363
|
report.rpc.protocolVersion = probe.protocolVersion;
|
|
341
364
|
report.rpc.features = probe.features;
|
|
342
|
-
report.rpc.
|
|
365
|
+
report.rpc.browser = probe.online ? resolveConnectorBrowser(probe.extensionId) ?? (probe.extensionId === expectedId ? "chrome" : null) : null;
|
|
366
|
+
report.rpc.missingFeatures = expectedFeaturesForBrowser(report.rpc.browser).filter(
|
|
343
367
|
(feature) => !probe.features.includes(feature)
|
|
344
368
|
);
|
|
345
369
|
if (!probe.online) report.rpc.error = probe.error;
|
|
346
370
|
if (!connectorRoot) {
|
|
347
371
|
if (rootError) report.connectorRootError = rootError;
|
|
348
|
-
report.
|
|
372
|
+
report.nativeHost.browser = report.rpc.browser;
|
|
373
|
+
report.ok = report.rpc.online && report.rpc.browser !== null && probe.protocolVersion === NOLO_CHROME_CONNECTOR_PROTOCOL_VERSION && report.rpc.missingFeatures.length === 0;
|
|
349
374
|
report.nextStep = resolveStatusNextStep(report);
|
|
350
375
|
return report;
|
|
351
376
|
}
|
|
377
|
+
let manifestBrowser = report.rpc.browser === "firefox" ? "firefox" : "chrome";
|
|
378
|
+
if (!report.rpc.browser) {
|
|
379
|
+
try {
|
|
380
|
+
const chromeManifestPath = resolveNativeHostInstallPaths({
|
|
381
|
+
home,
|
|
382
|
+
connectorRoot,
|
|
383
|
+
platform,
|
|
384
|
+
browser: "chrome"
|
|
385
|
+
}).nativeManifestPath;
|
|
386
|
+
const firefoxManifestPath = resolveNativeHostInstallPaths({
|
|
387
|
+
home,
|
|
388
|
+
connectorRoot,
|
|
389
|
+
platform,
|
|
390
|
+
browser: "firefox"
|
|
391
|
+
}).nativeManifestPath;
|
|
392
|
+
if (!existsSync2(chromeManifestPath) && existsSync2(firefoxManifestPath)) {
|
|
393
|
+
manifestBrowser = "firefox";
|
|
394
|
+
}
|
|
395
|
+
} catch {
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
report.nativeHost.browser = manifestBrowser;
|
|
352
399
|
let paths = null;
|
|
353
400
|
try {
|
|
354
|
-
paths = resolveNativeHostInstallPaths({
|
|
401
|
+
paths = resolveNativeHostInstallPaths({
|
|
402
|
+
home,
|
|
403
|
+
connectorRoot,
|
|
404
|
+
platform,
|
|
405
|
+
browser: manifestBrowser
|
|
406
|
+
});
|
|
355
407
|
} catch (error) {
|
|
356
408
|
report.nativeHost.supported = false;
|
|
357
409
|
report.nativeHost.platformError = toErrorMessage(error);
|
|
@@ -365,8 +417,7 @@ async function buildChromeConnectorStatus(args = {}) {
|
|
|
365
417
|
report.nativeHost.installed = installedManifest !== null;
|
|
366
418
|
report.nativeHost.installedWrapperPath = typeof installedManifest?.path === "string" ? installedManifest.path : null;
|
|
367
419
|
report.nativeHost.wrapperPathMatches = report.nativeHost.installedWrapperPath === paths.wrapperPath;
|
|
368
|
-
|
|
369
|
-
report.nativeHost.allowedOriginMatches = Array.isArray(installedManifest?.allowed_origins) && installedManifest.allowed_origins.includes(expectedOrigin);
|
|
420
|
+
report.nativeHost.allowedOriginMatches = manifestBrowser === "firefox" ? Array.isArray(installedManifest?.allowed_extensions) && installedManifest.allowed_extensions.includes(NOLO_FIREFOX_CONNECTOR_EXTENSION_ID) : Array.isArray(installedManifest?.allowed_origins) && installedManifest.allowed_origins.includes(`chrome-extension://${expectedId}/`);
|
|
370
421
|
if (existsSync2(paths.tokenPath)) {
|
|
371
422
|
try {
|
|
372
423
|
report.token.present = readFileSync2(paths.tokenPath, "utf8").trim().length > 0;
|
|
@@ -374,7 +425,7 @@ async function buildChromeConnectorStatus(args = {}) {
|
|
|
374
425
|
report.token.present = false;
|
|
375
426
|
}
|
|
376
427
|
}
|
|
377
|
-
report.ok = report.nativeHost.supported && report.nativeHost.installed && report.nativeHost.wrapperPathMatches && report.nativeHost.allowedOriginMatches && report.token.present && probe.online &&
|
|
428
|
+
report.ok = report.nativeHost.supported && report.nativeHost.installed && report.nativeHost.wrapperPathMatches && report.nativeHost.allowedOriginMatches && report.token.present && probe.online && report.rpc.browser !== null && probe.protocolVersion === NOLO_CHROME_CONNECTOR_PROTOCOL_VERSION && report.rpc.missingFeatures.length === 0;
|
|
378
429
|
report.nextStep = resolveStatusNextStep(report);
|
|
379
430
|
return report;
|
|
380
431
|
}
|
|
@@ -382,7 +433,7 @@ function yesNo(value) {
|
|
|
382
433
|
return value ? "ok" : "mismatch";
|
|
383
434
|
}
|
|
384
435
|
function formatChromeConnectorStatus(report) {
|
|
385
|
-
const lines = ["Nolo
|
|
436
|
+
const lines = ["Nolo Browser Connector"];
|
|
386
437
|
lines.push(
|
|
387
438
|
` connector source : ${report.connectorRoot ?? "(not found)"}`
|
|
388
439
|
);
|
|
@@ -402,7 +453,7 @@ function formatChromeConnectorStatus(report) {
|
|
|
402
453
|
const rpc = report.rpc;
|
|
403
454
|
if (rpc.online) {
|
|
404
455
|
lines.push(
|
|
405
|
-
` RPC : online extension ${rpc.extensionId ?? "unknown"} protocolVersion ${rpc.protocolVersion ?? "unknown"} features ${rpc.features.length > 0 ? rpc.features.join(", ") : "(none)"}`
|
|
456
|
+
` RPC : online browser ${rpc.browser ?? "unrecognized"} extension ${rpc.extensionId ?? "unknown"} protocolVersion ${rpc.protocolVersion ?? "unknown"} features ${rpc.features.length > 0 ? rpc.features.join(", ") : "(none)"}`
|
|
406
457
|
);
|
|
407
458
|
} else {
|
|
408
459
|
lines.push(
|
|
@@ -431,9 +482,25 @@ async function runChromeStatusCommand(args, deps = {}) {
|
|
|
431
482
|
}
|
|
432
483
|
return report.ok ? 0 : 1;
|
|
433
484
|
}
|
|
485
|
+
function readBrowserOption(args) {
|
|
486
|
+
const equalsForm = args.find((arg) => arg.startsWith("--browser="));
|
|
487
|
+
const index = args.indexOf("--browser");
|
|
488
|
+
const raw = equalsForm !== void 0 ? equalsForm.slice("--browser=".length) : index >= 0 ? args[index + 1] : void 0;
|
|
489
|
+
if (raw === void 0) return "chrome";
|
|
490
|
+
const value = raw.trim();
|
|
491
|
+
if (value === "chrome" || value === "firefox") return value;
|
|
492
|
+
return null;
|
|
493
|
+
}
|
|
434
494
|
async function runChromeInstallCommand(args, deps = {}) {
|
|
435
495
|
const env = deps.env ?? process.env;
|
|
436
496
|
const output = deps.output ?? process.stdout;
|
|
497
|
+
const browser = readBrowserOption(args);
|
|
498
|
+
if (browser === null) {
|
|
499
|
+
output.write(
|
|
500
|
+
'[nolo] Chrome native host install failed: --browser must be "chrome" or "firefox".\n'
|
|
501
|
+
);
|
|
502
|
+
return 1;
|
|
503
|
+
}
|
|
437
504
|
const install = deps.installNativeHost ?? installNativeHostManifest;
|
|
438
505
|
let connectorRoot;
|
|
439
506
|
try {
|
|
@@ -457,6 +524,7 @@ async function runChromeInstallCommand(args, deps = {}) {
|
|
|
457
524
|
result = install({
|
|
458
525
|
home: deps.home ?? env.HOME ?? "",
|
|
459
526
|
connectorRoot,
|
|
527
|
+
browser,
|
|
460
528
|
...deps.platform ? { platform: deps.platform } : {},
|
|
461
529
|
...deps.nodePath ? { nodePath: deps.nodePath } : {}
|
|
462
530
|
});
|
|
@@ -471,12 +539,12 @@ async function runChromeInstallCommand(args, deps = {}) {
|
|
|
471
539
|
} else {
|
|
472
540
|
output.write(
|
|
473
541
|
[
|
|
474
|
-
|
|
542
|
+
`Nolo Browser Connector native host installed (${browser}).`,
|
|
475
543
|
` manifest : ${result.nativeManifestPath}`,
|
|
476
544
|
` wrapper : ${result.wrapperPath} -> ${result.nodePath}`,
|
|
477
545
|
` token : ${result.tokenPath} (an existing token is kept, so reruns are idempotent)`,
|
|
478
546
|
` extension: ${result.extensionId}`,
|
|
479
|
-
`Next step: load the unpacked extension from ${resolve2(connectorRoot, "extension")} in chrome://extensions (Developer mode), or install the Nolo Browser Connector from https://nolo.chat/downloads (Chrome or Firefox), then run
|
|
547
|
+
`Next step: load the unpacked extension from ${resolve2(connectorRoot, "extension")} in ` + (browser === "firefox" ? "about:debugging#/runtime/this-firefox, or install the signed Nolo Browser Connector add-on from https://nolo.chat/downloads, then run `nolo chrome status`." : "chrome://extensions (Developer mode), or install the Nolo Browser Connector from https://nolo.chat/downloads (Chrome or Firefox), then run `nolo chrome status`."),
|
|
480
548
|
""
|
|
481
549
|
].join("\n")
|
|
482
550
|
);
|
|
@@ -513,11 +581,14 @@ The connector service worker restarts within ~1s; verify with \`nolo chrome stat
|
|
|
513
581
|
}
|
|
514
582
|
export {
|
|
515
583
|
CLI_CONNECTOR_ROOT_CANDIDATES,
|
|
584
|
+
FIREFOX_UNAVAILABLE_FEATURES,
|
|
516
585
|
FULL_SUPPORT_CHROME_FEATURES,
|
|
517
586
|
buildChromeConnectorStatus,
|
|
518
587
|
detectWorktreeCheckout,
|
|
588
|
+
expectedFeaturesForBrowser,
|
|
519
589
|
formatChromeConnectorStatus,
|
|
520
590
|
resolveCliConnectorRoot,
|
|
591
|
+
resolveConnectorBrowser,
|
|
521
592
|
runChromeInstallCommand,
|
|
522
593
|
runChromeReloadCommand,
|
|
523
594
|
runChromeStatusCommand
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createChromeConnectorClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YUNJN43V.js";
|
|
4
4
|
import {
|
|
5
5
|
toErrorMessage
|
|
6
6
|
} from "./chunk-HNMXYYJR.js";
|
|
@@ -197,8 +197,8 @@ var CHROME_OPS_SUBCOMMANDS = {
|
|
|
197
197
|
};
|
|
198
198
|
function renderChromeOpsHelp() {
|
|
199
199
|
const lines = [
|
|
200
|
-
"Operate the user's Chrome through the Nolo
|
|
201
|
-
"the same RPC the
|
|
200
|
+
"Operate the user's browser (Chrome or Firefox) through the Nolo Browser Connector",
|
|
201
|
+
"(the desktop bridge; the same RPC the browser_* agent tools use \u2014 legacy `chrome_*` names still work).",
|
|
202
202
|
"",
|
|
203
203
|
"Usage:",
|
|
204
204
|
" nolo chrome <subcommand> [flags]",
|
|
@@ -213,6 +213,7 @@ function renderChromeOpsHelp() {
|
|
|
213
213
|
" preferred over --selector); --selector takes a CSS selector.",
|
|
214
214
|
" Actions the connector classifies as irreversible (Submit / Delete / Pay ...)",
|
|
215
215
|
" are refused with CONFIRMATION_REQUIRED \u2014 ask the user to perform them.",
|
|
216
|
+
" read-console / read-network / upload work on Chrome only (Firefox lacks chrome.debugger).",
|
|
216
217
|
" Every subcommand prints the connector's raw JSON result; failures exit 1.",
|
|
217
218
|
" Endpoint: NOLO_CHROME_CONNECTOR_RPC_URL or http://127.0.0.1:38947/rpc."
|
|
218
219
|
];
|
|
@@ -164,10 +164,28 @@ function resolveProviderAuthHeaderName(args) {
|
|
|
164
164
|
if (/xiaomimimo\.com/i.test(args.endpoint)) return "api-key";
|
|
165
165
|
return "Authorization";
|
|
166
166
|
}
|
|
167
|
+
var OPENCODE_GO_ENDPOINT_RE = /^https?:\/\/opencode\.ai\/zen\/go\//i;
|
|
168
|
+
var OPENCODE_SESSION_HEADER = "x-opencode-session";
|
|
169
|
+
var OPENCODE_USER_AGENT = "nolo-agent/1.0";
|
|
170
|
+
var PROCESS_FALLBACK_SESSION_ID = `nolo-${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`;
|
|
171
|
+
function isOpenCodeGoEndpoint(endpoint) {
|
|
172
|
+
return typeof endpoint === "string" && OPENCODE_GO_ENDPOINT_RE.test(endpoint.trim());
|
|
173
|
+
}
|
|
174
|
+
function buildProviderSessionHeaders(args) {
|
|
175
|
+
if (!isOpenCodeGoEndpoint(args.endpoint)) return {};
|
|
176
|
+
return {
|
|
177
|
+
[OPENCODE_SESSION_HEADER]: args.sessionId?.trim() || PROCESS_FALLBACK_SESSION_ID,
|
|
178
|
+
"User-Agent": OPENCODE_USER_AGENT
|
|
179
|
+
};
|
|
180
|
+
}
|
|
167
181
|
function buildProviderAuthHeaders(args) {
|
|
168
|
-
|
|
182
|
+
const sessionHeaders = buildProviderSessionHeaders(args);
|
|
183
|
+
if (!args.apiKey) return sessionHeaders;
|
|
169
184
|
const headerName = resolveProviderAuthHeaderName(args);
|
|
170
|
-
return
|
|
185
|
+
return {
|
|
186
|
+
...sessionHeaders,
|
|
187
|
+
...headerName.toLowerCase() === "authorization" ? { Authorization: `Bearer ${args.apiKey}` } : { [headerName]: args.apiKey }
|
|
188
|
+
};
|
|
171
189
|
}
|
|
172
190
|
async function buildProviderExecutionPlan(args) {
|
|
173
191
|
const { agentConfig, env } = args;
|
|
@@ -362,6 +362,27 @@ const isWithin = (root, candidate) => {
|
|
|
362
362
|
const quoteCmd = (value) => '"' + String(value).replace(/"/g, '""') + '"';
|
|
363
363
|
const quotePowerShell = (value) => "'" + String(value).replace(/'/g, "''") + "'";
|
|
364
364
|
const quoteSh = (value) => "'" + String(value).replace(/'/g, "'\\''") + "'";
|
|
365
|
+
|
|
366
|
+
let stagedDirReferenced = false;
|
|
367
|
+
let lockOwnershipLost = false;
|
|
368
|
+
let shimLeftUnrestored = false;
|
|
369
|
+
|
|
370
|
+
const assertLockOwnership = () => {
|
|
371
|
+
try {
|
|
372
|
+
if (!existsSync(payload.lockPath)) {
|
|
373
|
+
throw new Error("Update lock was released or removed; aborting to avoid racing another process");
|
|
374
|
+
}
|
|
375
|
+
const raw = readFileSync(payload.lockPath, "utf8").trim();
|
|
376
|
+
const owner = raw.startsWith("{") ? JSON.parse(raw).updateId : raw;
|
|
377
|
+
if (owner !== payload.updateId) {
|
|
378
|
+
throw new Error("Update lock was reclaimed by " + owner + "; aborting to avoid racing another updater");
|
|
379
|
+
}
|
|
380
|
+
} catch (e) {
|
|
381
|
+
lockOwnershipLost = true;
|
|
382
|
+
throw new Error("Lock ownership check failed: " + (e && e.message ? e.message : String(e)));
|
|
383
|
+
}
|
|
384
|
+
};
|
|
385
|
+
|
|
365
386
|
const switchWindowsShims = (shimDir, entrypoint) => {
|
|
366
387
|
const shims = [
|
|
367
388
|
{ path: join(shimDir, "nolo.cmd"), content: "@ECHO off\r\n" + quoteCmd(payload.nodePath) + " " + quoteCmd(entrypoint) + " %*\r\n" },
|
|
@@ -376,14 +397,45 @@ const switchWindowsShims = (shimDir, entrypoint) => {
|
|
|
376
397
|
return { ...shim, temp, backup, existed: existsSync(shim.path) };
|
|
377
398
|
});
|
|
378
399
|
const activated = [];
|
|
400
|
+
const attemptRollback = () => {
|
|
401
|
+
let allRestored = true;
|
|
402
|
+
for (const shim of [...activated].reverse()) {
|
|
403
|
+
try { rmSync(shim.path, { force: true }); } catch (e) {
|
|
404
|
+
log("CRITICAL: Failed to remove new shim " + shim.path + ": " + (e && e.message ? e.message : String(e)));
|
|
405
|
+
}
|
|
406
|
+
if (shim.existed) {
|
|
407
|
+
try {
|
|
408
|
+
renameSync(shim.backup, shim.path);
|
|
409
|
+
} catch (e) {
|
|
410
|
+
allRestored = false;
|
|
411
|
+
log("CRITICAL: Failed to restore backup shim for " + shim.path + ": " + (e && e.message ? e.message : String(e)));
|
|
412
|
+
}
|
|
413
|
+
} else if (existsSync(shim.path)) {
|
|
414
|
+
// The delete above did not remove this shim (locked file, ACL, ...).
|
|
415
|
+
// It still points at the staged directory, so the rollback is NOT clean.
|
|
416
|
+
allRestored = false;
|
|
417
|
+
log("CRITICAL: New shim still present after rollback attempt: " + shim.path);
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
for (const shim of prepared) try { rmSync(shim.temp, { force: true }); } catch {}
|
|
421
|
+
stagedDirReferenced = !allRestored;
|
|
422
|
+
return allRestored;
|
|
423
|
+
};
|
|
424
|
+
|
|
379
425
|
try {
|
|
380
426
|
for (const shim of prepared) {
|
|
381
427
|
if (shim.existed) renameSync(shim.path, shim.backup);
|
|
382
428
|
try {
|
|
383
429
|
renameSync(shim.temp, shim.path);
|
|
430
|
+
stagedDirReferenced = true;
|
|
384
431
|
} catch (error) {
|
|
385
432
|
if (shim.existed) {
|
|
386
|
-
try {
|
|
433
|
+
try {
|
|
434
|
+
renameSync(shim.backup, shim.path);
|
|
435
|
+
} catch (restoreErr) {
|
|
436
|
+
shimLeftUnrestored = true;
|
|
437
|
+
log("CRITICAL: Failed to restore backup shim for " + shim.path + ": " + (restoreErr && restoreErr.message ? restoreErr.message : String(restoreErr)));
|
|
438
|
+
}
|
|
387
439
|
}
|
|
388
440
|
throw error;
|
|
389
441
|
}
|
|
@@ -391,22 +443,19 @@ const switchWindowsShims = (shimDir, entrypoint) => {
|
|
|
391
443
|
activated.push(shim);
|
|
392
444
|
}
|
|
393
445
|
} catch (error) {
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
try { renameSync(shim.backup, shim.path); } catch {}
|
|
446
|
+
if (!attemptRollback() || shimLeftUnrestored) {
|
|
447
|
+
if (error && typeof error === "object") {
|
|
448
|
+
error.message = (error.message ? error.message : String(error)) + "; rollback incomplete";
|
|
398
449
|
}
|
|
450
|
+
log("CRITICAL: Rollback incomplete while switching launch shims");
|
|
399
451
|
}
|
|
400
|
-
for (const shim of prepared) try { rmSync(shim.temp, { force: true }); } catch {}
|
|
401
452
|
throw error;
|
|
402
453
|
}
|
|
403
454
|
return {
|
|
404
455
|
rollback: () => {
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
try { renameSync(shim.backup, shim.path); } catch {}
|
|
409
|
-
}
|
|
456
|
+
const restored = attemptRollback();
|
|
457
|
+
if (!restored) {
|
|
458
|
+
throw new Error("Rollback incomplete: one or more launch shims could not be restored or removed");
|
|
410
459
|
}
|
|
411
460
|
},
|
|
412
461
|
commit: () => {
|
|
@@ -492,6 +541,7 @@ const switchWindowsShims = (shimDir, entrypoint) => {
|
|
|
492
541
|
}
|
|
493
542
|
const stagedEntrypoint = join(versionPrefix, "node_modules", "nolo-cli", "index.js");
|
|
494
543
|
if (!existsSync(stagedEntrypoint)) throw new Error("Staged nolo entrypoint is missing");
|
|
544
|
+
assertLockOwnership();
|
|
495
545
|
progress = setPhase(progress, "switch-shims", 60 * 1000);
|
|
496
546
|
const switchedShims = switchWindowsShims(prefix, stagedEntrypoint);
|
|
497
547
|
const verify = spawnSync(payload.nodePath, [stagedEntrypoint, "-v"], {
|
|
@@ -502,17 +552,31 @@ const switchWindowsShims = (shimDir, entrypoint) => {
|
|
|
502
552
|
timeout: 30 * 1000,
|
|
503
553
|
});
|
|
504
554
|
if (verify.error || verify.status !== 0 || !String(verify.stdout || "").includes(targetVersion)) {
|
|
505
|
-
|
|
555
|
+
let rollbackError = null;
|
|
556
|
+
try {
|
|
557
|
+
switchedShims.rollback();
|
|
558
|
+
} catch (e) {
|
|
559
|
+
rollbackError = e;
|
|
560
|
+
}
|
|
561
|
+
if (rollbackError) {
|
|
562
|
+
throw new Error(
|
|
563
|
+
"The staged CLI failed its post-switch version check; " +
|
|
564
|
+
(rollbackError && rollbackError.message ? rollbackError.message : String(rollbackError)),
|
|
565
|
+
);
|
|
566
|
+
}
|
|
506
567
|
throw new Error("The staged CLI failed its post-switch version check; the previous launch shims were restored");
|
|
507
568
|
}
|
|
569
|
+
// The lock could have been reclaimed (stale timeout / competing updater)
|
|
570
|
+
// during the verify window. Re-check before committing so we never claim
|
|
571
|
+
// success for an update we no longer own. We deliberately do not roll the
|
|
572
|
+
// shims back here: a competing updater may be mid-switch, and nothing is
|
|
573
|
+
// deleted, so leaving our shims in place is recoverable (last writer wins).
|
|
574
|
+
assertLockOwnership();
|
|
508
575
|
switchedShims.commit();
|
|
509
576
|
uncommittedVersionPrefix = null;
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
try { rmSync(candidate, { recursive: true, force: true }); } catch {}
|
|
514
|
-
}
|
|
515
|
-
}
|
|
577
|
+
// Previous versions are intentionally retained (unbounded until a
|
|
578
|
+
// reference-aware cleanup exists) because deleting them risks removing a
|
|
579
|
+
// directory that a shim or a rolled-back update still references.
|
|
516
580
|
log("Verified nolo-cli " + targetVersion + " at " + stagedEntrypoint);
|
|
517
581
|
} else {
|
|
518
582
|
log("Already current at " + targetVersion);
|
|
@@ -522,9 +586,17 @@ const switchWindowsShims = (shimDir, entrypoint) => {
|
|
|
522
586
|
const message = error && error.message ? error.message : String(error);
|
|
523
587
|
log("ERROR: " + message);
|
|
524
588
|
if (uncommittedVersionPrefix) {
|
|
525
|
-
|
|
589
|
+
if (stagedDirReferenced) {
|
|
590
|
+
log("PRESERVING staged directory " + uncommittedVersionPrefix + " because launch shims may still reference it; deleting it would cause MODULE_NOT_FOUND");
|
|
591
|
+
} else {
|
|
592
|
+
try { rmSync(uncommittedVersionPrefix, { recursive: true, force: true }); } catch {}
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
if (lockOwnershipLost) {
|
|
596
|
+
log("Not writing a failed status record: the update lock belongs to another updater");
|
|
597
|
+
} else {
|
|
598
|
+
writeState({ ...progress, status: "failed", finishedAt: new Date().toISOString(), message });
|
|
526
599
|
}
|
|
527
|
-
writeState({ ...progress, status: "failed", finishedAt: new Date().toISOString(), message });
|
|
528
600
|
process.exitCode = 1;
|
|
529
601
|
} finally {
|
|
530
602
|
try {
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
import {
|
|
11
11
|
clipMultilineText,
|
|
12
12
|
fetchAndSerializeTable
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-OKSJZ4UU.js";
|
|
14
14
|
import {
|
|
15
15
|
resolvePageReadMarkdown,
|
|
16
16
|
slateToSimplifiedMarkdown
|
|
@@ -20,19 +20,19 @@ import {
|
|
|
20
20
|
} from "./chunk-MEYIRKDN.js";
|
|
21
21
|
import {
|
|
22
22
|
fetchAndCacheMessages
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-ANX7Z7Z2.js";
|
|
24
24
|
import {
|
|
25
25
|
shouldUseServerProxy
|
|
26
26
|
} from "./chunk-YYLHWIW6.js";
|
|
27
27
|
import {
|
|
28
28
|
fetchServerSyncedCredential
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-UMB7CHAY.js";
|
|
30
30
|
import {
|
|
31
31
|
buildSkillGuidancePromptBlock,
|
|
32
32
|
extractRuntimePageCapabilities,
|
|
33
33
|
resolveBuiltinSkillPage,
|
|
34
34
|
resolveSkillGraphFromRoots
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-B2XUQXQX.js";
|
|
36
36
|
import {
|
|
37
37
|
DELETE_SAFETY_RED_LINE,
|
|
38
38
|
buildIdentityBlock,
|
|
@@ -41,7 +41,7 @@ import {
|
|
|
41
41
|
detectDispatchIntentFromMessages,
|
|
42
42
|
normalizeChatCompletionsBodyForProvider,
|
|
43
43
|
resolveToolGuidedSections
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-JLQKV2ZJ.js";
|
|
45
45
|
import {
|
|
46
46
|
convertMessagesToResponsesInput,
|
|
47
47
|
getUsageRequestOptions,
|
|
@@ -51,10 +51,10 @@ import {
|
|
|
51
51
|
import {
|
|
52
52
|
ANTIGRAVITY_CLOUD_CODE_BASE_URL,
|
|
53
53
|
isAntigravityOAuthAgent
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-S5XGT6GB.js";
|
|
55
55
|
import {
|
|
56
56
|
buildProviderAuthHeaders
|
|
57
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-27ONFIEY.js";
|
|
58
58
|
import {
|
|
59
59
|
estimateTokenCount
|
|
60
60
|
} from "./chunk-PSCNXBYA.js";
|
|
@@ -84,7 +84,7 @@ import {
|
|
|
84
84
|
} from "./chunk-2GRGFCF6.js";
|
|
85
85
|
import {
|
|
86
86
|
canonicalizeToolNames
|
|
87
|
-
} from "./chunk-
|
|
87
|
+
} from "./chunk-XUWRURDF.js";
|
|
88
88
|
import {
|
|
89
89
|
isDeepInfraKimiModel,
|
|
90
90
|
isFireworksKimiModel,
|
|
@@ -1124,7 +1124,7 @@ var buildProxyPayload = (bodyData, api, agentConfig, dialogId) => {
|
|
|
1124
1124
|
};
|
|
1125
1125
|
};
|
|
1126
1126
|
var fetchDirectly = async (params) => {
|
|
1127
|
-
const { api, agentConfig, bodyData, signal, currentServer, token } = params;
|
|
1127
|
+
const { api, agentConfig, bodyData, signal, currentServer, token, dialogId } = params;
|
|
1128
1128
|
try {
|
|
1129
1129
|
const apiKey = await resolveDirectRequestApiKey(agentConfig, {
|
|
1130
1130
|
syncFetcher: currentServer && token ? (ref) => fetchServerSyncedCredential({ currentServer, authToken: token }, ref) : void 0,
|
|
@@ -1144,7 +1144,8 @@ var fetchDirectly = async (params) => {
|
|
|
1144
1144
|
const authHeaders = buildProviderAuthHeaders({
|
|
1145
1145
|
endpoint: api,
|
|
1146
1146
|
apiKey: apiKey ?? "",
|
|
1147
|
-
apiKeyHeader: agentConfig.apiKeyHeader
|
|
1147
|
+
apiKeyHeader: agentConfig.apiKeyHeader,
|
|
1148
|
+
sessionId: dialogId || agentConfig.dbKey || agentConfig.key
|
|
1148
1149
|
});
|
|
1149
1150
|
return await fetch(api, {
|
|
1150
1151
|
method: "POST",
|