@ashx-j/lunr-dev 0.2.19-dev.10.1 → 0.2.21-dev.12.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/CHANGELOG.md +36 -1
- package/README.md +2 -2
- package/dist/builtin-extensions/index.d.ts.map +1 -1
- package/dist/builtin-extensions/index.js +0 -2
- package/dist/builtin-extensions/index.js.map +1 -1
- package/dist/builtin-extensions/lunr-computer-use.d.ts.map +1 -1
- package/dist/builtin-extensions/lunr-computer-use.js +15 -14
- package/dist/builtin-extensions/lunr-computer-use.js.map +1 -1
- package/dist/builtin-extensions/lunr-todos.d.ts +6 -5
- package/dist/builtin-extensions/lunr-todos.d.ts.map +1 -1
- package/dist/builtin-extensions/lunr-todos.js +9 -7
- package/dist/builtin-extensions/lunr-todos.js.map +1 -1
- package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts +6 -4
- package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-intercom/broker/spawn.js +114 -61
- package/dist/builtin-extensions/pi-intercom/broker/spawn.js.map +1 -1
- package/dist/builtin-extensions/pi-intercom/index.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-intercom/index.js +360 -351
- package/dist/builtin-extensions/pi-intercom/index.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js +2 -2
- package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts +8 -6
- package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/index.js +128 -57
- package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts +18 -8
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js +38 -13
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts +4 -3
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js +24 -14
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts +8 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js +247 -18
- package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.d.ts +1 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.js +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.d.ts +29 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.js +179 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.d.ts +89 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.js +541 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts +11 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js +38 -12
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js +3 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts +2 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js +35 -8
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts +7 -3
- package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js +26 -4
- package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js +55 -38
- package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts +100 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js +46 -31
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts +3 -6
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js +64 -5
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.d.ts +15 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.js +14 -4
- package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js +2 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js +21 -8
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts +0 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +71 -25
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts +2 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js +75 -18
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.d.ts +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.js +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts +13 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js +67 -11
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts +3 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js +7 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js +13 -3
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts +2 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js +5 -10
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.d.ts +2 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.js +3 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts +3 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js +68 -11
- package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts +12 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js +21 -2
- package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +21 -4
- package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/types.js +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts +7 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js +11 -7
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts +6 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js +46 -29
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +46 -4
- package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/tui/render.js +407 -450
- package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.js +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.d.ts +2 -13
- package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.js +5 -91
- package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.js.map +1 -1
- package/dist/core/computer-use/image.d.ts +26 -0
- package/dist/core/computer-use/image.d.ts.map +1 -0
- package/dist/core/computer-use/image.js +64 -0
- package/dist/core/computer-use/image.js.map +1 -0
- package/dist/core/computer-use/policy.d.ts.map +1 -1
- package/dist/core/computer-use/policy.js +2 -6
- package/dist/core/computer-use/policy.js.map +1 -1
- package/dist/core/computer-use/schemas.d.ts +13 -10
- package/dist/core/computer-use/schemas.d.ts.map +1 -1
- package/dist/core/computer-use/schemas.js +26 -35
- package/dist/core/computer-use/schemas.js.map +1 -1
- package/dist/core/computer-use/workflow.d.ts +16 -8
- package/dist/core/computer-use/workflow.d.ts.map +1 -1
- package/dist/core/computer-use/workflow.js +271 -260
- package/dist/core/computer-use/workflow.js.map +1 -1
- package/dist/core/customize.d.ts +2 -0
- package/dist/core/customize.d.ts.map +1 -1
- package/dist/core/customize.js +3 -0
- package/dist/core/customize.js.map +1 -1
- package/dist/core/permissions.d.ts +1 -0
- package/dist/core/permissions.d.ts.map +1 -1
- package/dist/core/permissions.js +8 -4
- package/dist/core/permissions.js.map +1 -1
- package/dist/core/plan-mode.d.ts.map +1 -1
- package/dist/core/plan-mode.js +0 -5
- package/dist/core/plan-mode.js.map +1 -1
- package/dist/core/runtime-bridges.d.ts.map +1 -1
- package/dist/core/runtime-bridges.js +0 -2
- package/dist/core/runtime-bridges.js.map +1 -1
- package/dist/core/settings-manager.d.ts +4 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +11 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/subagent-cancellation.d.ts +21 -0
- package/dist/core/subagent-cancellation.d.ts.map +1 -0
- package/dist/core/subagent-cancellation.js +53 -0
- package/dist/core/subagent-cancellation.js.map +1 -0
- package/dist/core/subagent-spinner-setting.d.ts +6 -0
- package/dist/core/subagent-spinner-setting.d.ts.map +1 -0
- package/dist/core/subagent-spinner-setting.js +12 -0
- package/dist/core/subagent-spinner-setting.js.map +1 -0
- package/dist/core/subagent-spinner.d.ts +4 -0
- package/dist/core/subagent-spinner.d.ts.map +1 -0
- package/dist/core/subagent-spinner.js +6 -0
- package/dist/core/subagent-spinner.js.map +1 -0
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +12 -18
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +4 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +73 -1
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +12 -0
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/extension-widget-order.d.ts +8 -0
- package/dist/modes/interactive/extension-widget-order.d.ts.map +1 -0
- package/dist/modes/interactive/extension-widget-order.js +37 -0
- package/dist/modes/interactive/extension-widget-order.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +44 -22
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/node-runtime/{agent-session-services-RSGP5GDN.js → agent-session-services-QANFGM2V.js} +14 -13
- package/dist/node-runtime/{builtin-extensions-7STLFW3A.js → builtin-extensions-SRCYQPZ6.js} +4 -3
- package/dist/node-runtime/{chunk-5OLJGVCB.js → chunk-3ONQTOMR.js} +2 -2
- package/dist/node-runtime/chunk-5ZH3ZFIZ.js +308 -0
- package/dist/node-runtime/{chunk-4SJWFTUP.js → chunk-7NBZ5P7I.js} +1 -1
- package/dist/node-runtime/chunk-A3KMVBZV.js +60 -0
- package/dist/node-runtime/{chunk-FLYMHKCS.js → chunk-BJ6H7DPI.js} +25 -25
- package/dist/node-runtime/{chunk-T5GM5BFH.js → chunk-BYQ2MOFI.js} +6 -6
- package/dist/node-runtime/{chunk-W7S2REEG.js → chunk-CZUBYPFP.js} +157 -74
- package/dist/node-runtime/{chunk-ZRDIMBEQ.js → chunk-D466UAID.js} +9 -6
- package/dist/node-runtime/{chunk-K72NVGUB.js → chunk-GT5F3OKM.js} +1 -1
- package/dist/node-runtime/chunk-H2BI7G7T.js +73 -0
- package/dist/node-runtime/{chunk-ISQDQIZN.js → chunk-HXJS2PJM.js} +2 -2
- package/dist/node-runtime/chunk-LISUTZS3.js +19 -0
- package/dist/node-runtime/{chunk-BKAZ6BKX.js → chunk-LOYUC2ID.js} +7 -7
- package/dist/node-runtime/{chunk-OTT6JMPU.js → chunk-LTYWTR3V.js} +1 -369
- package/dist/node-runtime/{chunk-5Q45AVQG.js → chunk-MW2XJZIK.js} +1 -1
- package/dist/node-runtime/{chunk-MUMMMTW4.js → chunk-N3PNL74S.js} +536 -265
- package/dist/node-runtime/{chunk-HQCKFM2O.js → chunk-VGYZ3APQ.js} +3 -0
- package/dist/node-runtime/{chunk-5NWQCSKR.js → chunk-VQ4UBWSA.js} +11 -1
- package/dist/node-runtime/{chunk-6SPPH4FY.js → chunk-VTGEKB7R.js} +4 -4
- package/dist/node-runtime/chunk-W3SILANP.js +24 -0
- package/dist/node-runtime/{chunk-J7QGQD45.js → chunk-WJVFOIB5.js} +1 -1
- package/dist/node-runtime/{chunk-JT6YCS5B.js → chunk-XAUQOKYK.js} +408 -45
- package/dist/node-runtime/{chunk-LCACDWHJ.js → chunk-XSRCAQK2.js} +13 -13
- package/dist/node-runtime/{chunk-TAP7QTUT.js → chunk-ZOIIMEN6.js} +24 -425
- package/dist/node-runtime/{chunk-MGSB2C3M.js → chunk-ZVSORYRM.js} +1 -1
- package/dist/node-runtime/{command-6UXQ6XZN.js → command-ZURZJDXF.js} +1 -1
- package/dist/node-runtime/{commands-LGR5VT5X.js → commands-BZGSLIP7.js} +3 -3
- package/dist/node-runtime/{customize-XEXL2DGQ.js → customize-LF5VST47.js} +1 -1
- package/dist/node-runtime/{direct-tool-executor-TDJS7TBD.js → direct-tool-executor-BSZDHIYR.js} +4 -4
- package/dist/node-runtime/{extract-IUCVZCWC.js → extract-XLQSJN4V.js} +2 -2
- package/dist/node-runtime/{gateway-3OLC4GQN.js → gateway-FWHRIBK5.js} +9 -9
- package/dist/node-runtime/{gemini-search-NCIDF7NE.js → gemini-search-U7SUMPQA.js} +1 -1
- package/dist/node-runtime/{gemini-url-context-OKIN7AIP.js → gemini-url-context-PXWCBQHK.js} +2 -2
- package/dist/node-runtime/index.js +34 -31
- package/dist/node-runtime/{init-EKE277AG.js → init-DVJUAOUO.js} +3 -3
- package/dist/node-runtime/{interactive-mode-S5M26CQ7.js → interactive-mode-BBASNWHN.js} +18 -15
- package/dist/node-runtime/lunr-computer-use-TJNDAMWM.js +135 -0
- package/dist/node-runtime/{lunr-cron-KKBOGAEF.js → lunr-cron-J64I72C6.js} +5 -5
- package/dist/node-runtime/main.js +22 -20
- package/dist/node-runtime/{package-manager-cli-C4EJOO5Q.js → package-manager-cli-VMYX4Y2S.js} +8 -7
- package/dist/node-runtime/{pi-intercom-EEMBGQID.js → pi-intercom-NV2LW6X7.js} +108 -87
- package/dist/node-runtime/{pi-mcp-adapter-DPTJGAAL.js → pi-mcp-adapter-JLB5YL2F.js} +6 -6
- package/dist/node-runtime/{pi-subagents-VKCLYIBY.js → pi-subagents-WEHV3W7H.js} +1267 -604
- package/dist/node-runtime/{pi-web-access-BV6DSZOP.js → pi-web-access-FN5YC5T6.js} +5 -5
- package/dist/node-runtime/{proxy-modes-R64LU6WZ.js → proxy-modes-OR7ISBXK.js} +7 -7
- package/dist/node-runtime/rpc-entry.js +22 -20
- package/dist/node-runtime/{runtime-bridges-UJ5WJJLN.js → runtime-bridges-2VQTLPOZ.js} +3 -5
- package/dist/node-runtime/{settings-manager-K6IPIQTI.js → settings-manager-3CCU326G.js} +3 -2
- package/dist/node-runtime/{subagent-executor-EFLTO32A.js → subagent-executor-CXKXQDHH.js} +186 -299
- package/dist/node-runtime/{update-cli-I6OVDRPL.js → update-cli-NM7B4CKL.js} +3 -2
- package/dist/node-runtime/{video-extract-ETA5RA7U.js → video-extract-OYT5WKS5.js} +2 -2
- package/dist/node-runtime/workflow-C26QCUTW.js +468 -0
- package/dist/node-runtime/{youtube-extract-SRVGNN26.js → youtube-extract-TQYKGFGS.js} +2 -2
- package/docs/computer-use.md +233 -268
- package/docs/features.md +22 -4
- package/docs/keybindings.md +3 -1
- package/docs/settings.md +3 -2
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/install-lock/package-lock.json +24 -24
- package/install-lock/package.json +2 -2
- package/npm-shrinkwrap.json +21 -21
- package/package.json +7 -7
- package/dist/builtin-extensions/lunr-settings-tools.d.ts +0 -4
- package/dist/builtin-extensions/lunr-settings-tools.d.ts.map +0 -1
- package/dist/builtin-extensions/lunr-settings-tools.js +0 -120
- package/dist/builtin-extensions/lunr-settings-tools.js.map +0 -1
- package/dist/core/settings-tools-bridge.d.ts +0 -35
- package/dist/core/settings-tools-bridge.d.ts.map +0 -1
- package/dist/core/settings-tools-bridge.js +0 -56
- package/dist/core/settings-tools-bridge.js.map +0 -1
- package/dist/node-runtime/chunk-EH2LJQPM.js +0 -64
- package/dist/node-runtime/image-resize-6ZPBFMWW.js +0 -11
- package/dist/node-runtime/lunr-computer-use-4X3KUNF4.js +0 -206
- package/dist/node-runtime/workflow-SA34S4VX.js +0 -325
- package/dist/node-runtime/{chunk-EHMBW7FA.js → chunk-VSELYKWU.js} +3 -3
- package/dist/node-runtime/{chunk-ZSEZY3II.js → chunk-VTPM5V35.js} +0 -0
- package/dist/node-runtime/{src-GPFAU3N6.js → src-BPQFJR76.js} +3 -3
package/docs/computer-use.md
CHANGED
|
@@ -1,277 +1,242 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Image-only computer use
|
|
2
2
|
|
|
3
|
-
This
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
launch path is implemented but has not run on macOS hardware. Neither platform
|
|
9
|
-
has passed live desktop acceptance. Production publication remains blocked.
|
|
3
|
+
This dev-channel integration combines stable lunR 0.2.21 with image-only computer
|
|
4
|
+
use. Offline builds, focused automated tests, local scripted-provider startup
|
|
5
|
+
checks, and isolated package installation pass. No live desktop capture or input,
|
|
6
|
+
native runtime launch, or remote inference ran. Stable production publication
|
|
7
|
+
remains blocked. Smooth cursor animation is not included.
|
|
10
8
|
|
|
11
|
-
|
|
9
|
+
The dev package is `@ashx-j/lunr-dev`, with command `lunr-dev` and update command
|
|
10
|
+
`lunr-dev update`. Stable `@ashx-j/lunr` and `lunr` remain separate. Both commands
|
|
11
|
+
share `~/.lunr/agent` credentials, settings, and sessions.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
bundled runtime without downloading code, capturing the screen, or operating an
|
|
15
|
-
application. Setup is user-invoked and unavailable from gateway or headless
|
|
16
|
-
sessions.
|
|
17
|
-
|
|
18
|
-
On Windows, keep the desktop logged in and unlocked. On macOS, setup prints the
|
|
19
|
-
exact installed `CuaDriver.app` path. Add that app under System Settings > Privacy
|
|
20
|
-
& Security to both Accessibility and Screen & System Audio Recording, named
|
|
21
|
-
Screen Recording on older macOS versions. Enable both grants, then restart lunR.
|
|
22
|
-
These OS grants require the user; Auto mode cannot supply them. Setup never
|
|
23
|
-
selects or changes an existing `/Applications/CuaDriver.app` installation.
|
|
13
|
+
## Setup and permissions
|
|
24
14
|
|
|
25
|
-
|
|
26
|
-
|
|
15
|
+
Run `/computer setup` in the local lunR terminal. Setup verifies and installs the
|
|
16
|
+
bundled runtime without downloading code, capturing the screen, or operating an
|
|
17
|
+
application. It is unavailable in headless and gateway sessions.
|
|
27
18
|
|
|
28
|
-
|
|
19
|
+
Windows needs an active, unlocked desktop. On Apple Silicon macOS, setup prints
|
|
20
|
+
the exact installed `CuaDriver.app` path. Add that app to Accessibility and
|
|
21
|
+
Screen & System Audio Recording in System Settings > Privacy & Security, then
|
|
22
|
+
restart lunR. Older macOS versions call the second grant Screen Recording.
|
|
23
|
+
Only the user can grant these permissions. Setup leaves an existing
|
|
24
|
+
`/Applications/CuaDriver.app` alone.
|
|
29
25
|
|
|
30
26
|
Computer use and Allow foreground control default to on. Windows x64/arm64 and
|
|
31
|
-
Apple Silicon
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
image
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
27
|
+
Apple Silicon expose `computer_load`; detailed tools load on demand. Linux and
|
|
28
|
+
Intel macOS have no native discovery tool. All computer tools except release
|
|
29
|
+
require an image-capable model. There is no text-only accessibility fallback.
|
|
30
|
+
Gateway sessions operate the gateway host, not the chat client's device.
|
|
31
|
+
|
|
32
|
+
Manual approves observation and input. `computer_end` releases without approval.
|
|
33
|
+
Plan allows relevant observation and release, but blocks mutation. Auto allows
|
|
34
|
+
requested, implied, or necessary GUI work without lunR per-call prompts. In
|
|
35
|
+
Yolo, ask before introducing GUI work into an otherwise non-GUI task. These
|
|
36
|
+
intent rules are agent guidance, not a natural-language authorization classifier.
|
|
37
|
+
|
|
38
|
+
Prefer background window input. Foreground window input requires a verified
|
|
39
|
+
background failure and a fresh image. Desktop input requires `desktop=true` and
|
|
40
|
+
`foreground=true`. Disabling foreground control blocks desktop input, foreground
|
|
41
|
+
window input, launch, and window management. An application can still change its
|
|
42
|
+
own focus after background input.
|
|
43
|
+
|
|
44
|
+
Native tools are excluded from children and refuse child execution. Children
|
|
45
|
+
with shell access are not OS-sandboxed. No raw driver administration, update,
|
|
46
|
+
recording, or permission tool is exposed.
|
|
47
|
+
|
|
48
|
+
## Observe, act, inspect
|
|
49
|
+
|
|
50
|
+
1. Use `computer_apps` for app identities or windows for a PID. Results allowlist
|
|
51
|
+
at most 50 rows and truncate titles to 240 characters. Pass `next_offset` as
|
|
52
|
+
`offset` with the same PID selection to retrieve more apps or windows. Lists
|
|
53
|
+
refresh per call, so changing native order can shift page boundaries. PID zero
|
|
54
|
+
identifies an installed app that is not running. Window `bounds` are native
|
|
55
|
+
geometry, not screenshot coordinates.
|
|
56
|
+
2. Use `computer_observe` with an exact `pid` and `window_id`, or `desktop=true`.
|
|
57
|
+
The result contains one image and a short coordinate/token record.
|
|
58
|
+
3. Choose one action from that image. Pass its `observation` token and coordinates
|
|
59
|
+
in the returned image. The workflow applies the mapping; do not scale twice.
|
|
60
|
+
4. Inspect the post-action image before continuing. The tool executes one action
|
|
61
|
+
and captures the same target once. It never polls or retries input internally.
|
|
62
|
+
5. Call `computer_end` when finished.
|
|
63
|
+
|
|
64
|
+
The token lasts 30 seconds, belongs to one exact target, and permits one action.
|
|
65
|
+
Every new observation invalidates the previous token before capture. Failed,
|
|
66
|
+
cancelled, or malformed captures issue no token. Old tokens cannot be replayed,
|
|
67
|
+
including after a successful action returns a new image.
|
|
68
|
+
|
|
69
|
+
Supported input is single, double, and right click with modifiers, a complete
|
|
70
|
+
press-drag-release gesture, scrolling at image coordinates, Unicode text, and
|
|
71
|
+
keys or modifier shortcuts. Window text/keys can use image coordinates or the
|
|
72
|
+
observed focused field. Desktop text/keys use the observed focused field only;
|
|
73
|
+
change focus with a separate grounded click.
|
|
74
|
+
|
|
75
|
+
`computer_window` supports `frame` in native window-bounds units and `focus` on
|
|
76
|
+
an exact observed window. Minimize/restore uses a grounded image click on a
|
|
77
|
+
visible control. The pinned driver has no portable minimize/restore RPC.
|
|
78
|
+
`computer_launch` returns bounded app metadata, not an inferred input target;
|
|
79
|
+
capture an exact window before acting.
|
|
80
|
+
|
|
81
|
+
A successful transport or a changed image does not prove the intended application
|
|
82
|
+
effect. Results preserve partial/unverifiable outcomes and bounded refusal codes.
|
|
83
|
+
When input returns but its post-image fails, the tool reports possible effects
|
|
84
|
+
and stops the workflow. Capture again before deciding; never repeat input blindly.
|
|
85
|
+
After an unchanged post-image, the same action against identical captured pixels
|
|
86
|
+
is refused. Click signatures normalize omitted left-button/single-click/empty
|
|
87
|
+
modifier defaults and modifier order. Three consecutive unchanged full observations
|
|
88
|
+
stop polling in that workflow. Crops are explicit requests, not an automatic retry loop.
|
|
89
|
+
|
|
90
|
+
Partial typing retains validated `requested_chars`, `delivered_chars`, `retryable`,
|
|
91
|
+
and `retry_from_character` when supplied by the driver. Counts must be safe integers
|
|
92
|
+
within the submitted text's Unicode code-point length, capped at 20000; the retry
|
|
93
|
+
index must equal the delivered count. The index is zero-based in Unicode code
|
|
94
|
+
points, not UTF-16 units. Verify the field in a fresh image before considering a
|
|
95
|
+
remaining suffix. `retryable` is driver advice, not permission or proof that
|
|
96
|
+
repeating input is safe. The workflow never retries typing automatically.
|
|
97
|
+
|
|
98
|
+
## Image contract and cost limits
|
|
99
|
+
|
|
100
|
+
Window capture requests `include_accessibility_tree:false` and
|
|
101
|
+
`include_screenshot:true`. Neither native accessibility trees nor duplicate raw
|
|
102
|
+
JSON reach the model. The macOS driver still reads minimal native accessibility
|
|
103
|
+
facts for window identity and background-input safety. Windows window discovery
|
|
104
|
+
can use UIA as a fallback. Image-only describes application observation sent to
|
|
105
|
+
the model, not the removal of every native accessibility API call.
|
|
106
|
+
|
|
107
|
+
Window capture requests a 2560-pixel maximum. The runtime can impose a lower
|
|
108
|
+
configured ceiling, so this is not a promised capture resolution. The workflow
|
|
109
|
+
checks actual PNG dimensions against native screenshot metadata and rejects
|
|
110
|
+
invalid frames. Primary-desktop capture is tree-free and uses the native PNG.
|
|
111
|
+
Desktop coordinates map back to that PNG once; macOS `scale_factor` is not an
|
|
112
|
+
additional multiplier.
|
|
113
|
+
|
|
114
|
+
Returned images have a maximum 1280-pixel edge, one million pixels, and 1.5 MiB
|
|
115
|
+
of base64 payload. The existing image processor bounds dimensions and encoding
|
|
116
|
+
size. The workflow refuses images it cannot decode or map. Source PNGs also have
|
|
117
|
+
allocation limits. These are engineering bounds, not measured token savings.
|
|
118
|
+
|
|
119
|
+
For small text or controls, request `crop:{x,y,width,height}` with the latest
|
|
120
|
+
observation token. The rectangle uses that returned image's pixels. The workflow
|
|
121
|
+
captures fresh pixels, maps the rectangle into the full capture, and sends only
|
|
122
|
+
the crop. Its record gives the source dimensions, crop offset, and separate x/y
|
|
123
|
+
ratios. Changed source dimensions or reported window bounds reject the crop;
|
|
124
|
+
request a full image again. Cropping cannot recover detail absent from the native
|
|
125
|
+
capture. Post-action captures return the full target so dialogs outside a crop
|
|
126
|
+
remain visible.
|
|
127
|
+
|
|
128
|
+
Saved sessions retain the returned screenshots. Provider-facing screenshot
|
|
129
|
+
history also accumulates until normal compaction. This change does not prune
|
|
130
|
+
user images, rewrite saved sessions, or implement a generic rolling history
|
|
131
|
+
filter. A targeted `context` hook could remove old computer screenshots while
|
|
132
|
+
leaving sessions intact, but a rolling cutoff changes an earlier prompt prefix
|
|
133
|
+
and can invalidate cached input. That tradeoff needs approved provider measurements
|
|
134
|
+
before adopting a retention policy. Image-only is not automatically cheaper than
|
|
135
|
+
text. Current cost controls bound each new payload, remove tree/JSON duplication,
|
|
136
|
+
and combine one action with its post-image.
|
|
137
|
+
|
|
138
|
+
## Cursor status
|
|
139
|
+
|
|
140
|
+
Cursor animation remains a separate native-runtime decision. The inherited
|
|
141
|
+
runtime launch still uses `--no-overlay`. Upstream Windows drag animation uses a
|
|
142
|
+
timer separate from actual input, and desktop pointer movement can teleport.
|
|
143
|
+
This branch does not claim smooth actual-cursor motion or synchronized drag
|
|
144
|
+
feedback. Any eventual animation must stay local, preserve full gestures and
|
|
145
|
+
cancellation, and send zero intermediate frames to the model.
|
|
146
|
+
|
|
147
|
+
## Ownership and cancellation
|
|
148
|
+
|
|
149
|
+
An OS-account lease spans observations and actions, independent of settings
|
|
150
|
+
profiles. Competing workflows receive busy rather than queueing. Calls within a
|
|
151
|
+
workflow serialize. One cross-process lock covers creation, atomic replacement,
|
|
152
|
+
and deletion of the owner record. A separate lock protects runtime installation.
|
|
153
|
+
A live owner is not displaced because its heartbeat is late.
|
|
154
|
+
|
|
155
|
+
After MCP initialization and before any driver tool dispatch, the adapter records
|
|
156
|
+
the transport PID and, on macOS, daemon PID. Missing identities or failed lease
|
|
157
|
+
updates refuse dispatch. Recovery requires both owner and recorded runtimes to
|
|
158
|
+
have exited. PID reuse and malformed owner records fail closed. A crash during
|
|
159
|
+
initialization can leave an unrecorded idle runtime that received no input.
|
|
160
|
+
|
|
161
|
+
Release, cancellation, agent end, settings changes, and session shutdown close
|
|
162
|
+
the owned runtime before releasing the lease. Queued work cannot survive
|
|
163
|
+
cancellation. Unconfirmed shutdown retains ownership. Cancellation cannot retract
|
|
164
|
+
already delivered input, and forced termination does not prove held input was
|
|
165
|
+
released. Driver-internal helper lifetime and held-input cancellation still need
|
|
166
|
+
native acceptance.
|
|
167
|
+
|
|
168
|
+
Gateway cron creates fresh permission contexts with the configured default mode,
|
|
169
|
+
without gateway approvals or its approval handler. Missing approval blocks calls.
|
|
170
|
+
Session shutdown precedes disposal, even after partial extension binding failure.
|
|
171
|
+
TUI cron continues to use its live permission context.
|
|
172
|
+
|
|
173
|
+
## Runtime and distribution
|
|
127
174
|
|
|
128
175
|
The development pin is [CuaDriver 0.28.1](https://github.com/trycua/cua/releases/tag/cua-driver-rs-v0.28.1),
|
|
129
|
-
source `d8028a7943087ee258dc1b4d19dc12a7cd27669c`.
|
|
130
|
-
|
|
131
|
-
`
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
The runtime
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
`
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
the
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
An installed payload package must match the CLI version. A CLI upgrade that keeps
|
|
198
|
-
the same runtime bytes can reuse the verified cache. A changed or older cached
|
|
199
|
-
runtime fails closed rather than replacing a possibly running app. After all
|
|
200
|
-
owned processes stop, removing the inactive lunR runtime directory allows a fresh
|
|
201
|
-
extraction at the same stable macOS path.
|
|
202
|
-
|
|
203
|
-
## Verification and remaining gates
|
|
204
|
-
|
|
205
|
-
Local verification includes actual Windows initialize/tools/list and a
|
|
206
|
-
metadata-only `health_report`, with capture and accessibility checks excluded.
|
|
207
|
-
The binary reported 0.28.1 and 57 tools. Health results include human-readable
|
|
208
|
-
text and `structuredContent`. Its `session_active` check reports MCP activity,
|
|
209
|
-
not an unlocked or input-ready desktop. A separate real Windows metadata probe
|
|
210
|
-
confirmed an active session and Default input desktop without screen, AX, or
|
|
211
|
-
input calls. Snapshot identity and operation mapping
|
|
212
|
-
were checked against the exact released tool schemas and source; no live
|
|
213
|
-
snapshot was taken.
|
|
214
|
-
|
|
215
|
-
Focused tests cover policy, result interpretation, image coordinate mapping,
|
|
216
|
-
new GUI operation mapping, interrupted initialization, partial shutdown,
|
|
217
|
-
settings/session tool rosters, real separate-process contention and death,
|
|
218
|
-
orphan-runtime ownership, cache tampering, redirected paths, concurrent
|
|
219
|
-
extraction, and the fresh gateway cron factory's approval/disposal lifecycle.
|
|
220
|
-
The dev review passes 167 focused Vitest tests across 14 files and
|
|
221
|
-
eight archive/package tests. All five offline production builds, including the
|
|
222
|
-
coding-agent Node bundle, pass. Touched native TypeScript lint and the repository's
|
|
223
|
-
relative-import, workflow-publication, browser-smoke, and diff checks pass.
|
|
224
|
-
|
|
225
|
-
A loopback fixture registry served all seven public-name tarballs without changing
|
|
226
|
-
their bytes. A fresh Windows install used `--ignore-scripts`, fetched only the host
|
|
227
|
-
payload, then passed archive validation and first-paint/first-request fixtures
|
|
228
|
-
after relocation. Separate npm installs selected the correct package for each
|
|
229
|
-
supported OS/CPU combination and no package for Linux. An omitted-optional install
|
|
230
|
-
returned the expected missing-payload error. The shipped installer lock passed
|
|
231
|
-
`npm ci --ignore-scripts`. Standalone asset tests copied and rechecked all three
|
|
232
|
-
opaque archives. No installed app or desktop operation ran in these packaging
|
|
233
|
-
tests. Cross-platform npm selection on Windows is not macOS runtime acceptance.
|
|
234
|
-
|
|
235
|
-
The first-request fixture strips inherited subagent environment state before
|
|
236
|
-
checking the default tool inventory. The supported-host inventory includes only
|
|
237
|
-
`computer_load`; detailed computer tools remain lazy. The unsupported-host
|
|
238
|
-
baseline is unchanged.
|
|
239
|
-
|
|
240
|
-
To repeat local distribution checks after the offline build, prepare the pinned
|
|
241
|
-
archives with `scripts/bundle-computer-use.mjs`, create an empty temporary pack
|
|
242
|
-
directory, then run:
|
|
243
|
-
|
|
244
|
-
```sh
|
|
245
|
-
node scripts/generate-computer-use-manifest.mjs --check
|
|
246
|
-
node --test scripts/check-computer-use-release.test.mjs scripts/computer-use-packages.test.mjs
|
|
247
|
-
node scripts/publish.mjs --channel dev --version 0.2.19-dev.0.1 --dry-run --pack-dir /absolute/temporary/pack-directory
|
|
248
|
-
node scripts/check-computer-use-install.mjs /absolute/temporary/pack-directory
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
The install checker uses a loopback registry for the local public packages and
|
|
252
|
-
npm's public registry for external dependencies. It isolates npm configuration,
|
|
253
|
-
cache, and install directories and removes them afterward. It does not publish.
|
|
254
|
-
These checks do not certify desktop behavior.
|
|
255
|
-
|
|
256
|
-
External acceptance gates remain:
|
|
257
|
-
|
|
258
|
-
- Windows locked, disconnected, UAC, and integrity-state acceptance for the
|
|
259
|
-
metadata admission check and the actual driver.
|
|
260
|
-
- Authorized native and Electron fixture desktops, Unicode, moved/resized
|
|
261
|
-
windows, display scaling, stale accessibility handles, application exit,
|
|
262
|
-
outcome verification, and cancellation during held input.
|
|
263
|
-
- Real macOS signature/notarization, TCC, LaunchServices/FIFO environment,
|
|
264
|
-
coexistence, upgrade, and shutdown acceptance.
|
|
265
|
-
- Real macOS and Windows arm64 runtime installation and launch. Their npm
|
|
266
|
-
selection and unchanged archive copying pass locally, but their hardware
|
|
267
|
-
execution and upgrades remain unverified.
|
|
268
|
-
- Full standalone executable acceptance. Payload asset copying passes; this
|
|
269
|
-
verification did not compile and exercise every Bun target.
|
|
270
|
-
|
|
271
|
-
## Privacy and rollback
|
|
272
|
-
|
|
273
|
-
GUI actions are outside lunR's filesystem rollback. Images, accessibility text,
|
|
274
|
-
and typed text can enter selected-provider requests and saved sessions.
|
|
275
|
-
Disabling driver telemetry does not disable lunR session storage. Application
|
|
276
|
-
content is untrusted task data, never authorization. OS permissions, locked
|
|
277
|
-
desktops, UAC, and integrity restrictions still apply.
|
|
176
|
+
source `d8028a7943087ee258dc1b4d19dc12a7cd27669c`. Archive identities and approval
|
|
177
|
+
are in `scripts/computer-use-release.json`; `release.generated.ts` derives from
|
|
178
|
+
it. The upstream MIT license is under `native/computer-use`. No runtime pin or
|
|
179
|
+
native binary changed in the image-only workflow work.
|
|
180
|
+
|
|
181
|
+
The runtime resolves the host's optional payload package or matching archive
|
|
182
|
+
beside a standalone executable. It verifies the archive, extracts a fresh
|
|
183
|
+
reference tree, and checks cached files/helpers against it. Redirected paths and
|
|
184
|
+
escaping symlinks are refused. Installers do not overwrite an existing runtime.
|
|
185
|
+
After confirming all owned processes stopped, an inactive cache can be removed
|
|
186
|
+
for reinstallation. Runtime code is never downloaded at first use.
|
|
187
|
+
|
|
188
|
+
Windows uses system `tar.exe` and an isolated `mcp --direct --embedded
|
|
189
|
+
--no-overlay` process. A hidden system PowerShell metadata probe refuses session
|
|
190
|
+
zero, disconnected sessions, and inaccessible/non-Default input desktops. It
|
|
191
|
+
never switches desktops. Both platforms isolate profiles, strip inherited
|
|
192
|
+
`CUA_*`, set standard permission mode, and disable telemetry/update checks.
|
|
193
|
+
|
|
194
|
+
macOS preserves the unchanged signed app at its stable lunR-owned path, verifies
|
|
195
|
+
its signature with `codesign --verify --deep --strict`, and launches that exact
|
|
196
|
+
path through `open -n -g -W -a`. A private HOME, socket, stdin FIFO, and
|
|
197
|
+
`--parent-liveness-stdio` isolate daemon state and lifetime. Shutdown uses the
|
|
198
|
+
private PID-bound endpoint and waits for the app to exit. No re-signing occurs.
|
|
199
|
+
|
|
200
|
+
Release staging creates exact-version host-specific optional payload packages.
|
|
201
|
+
They contain unchanged archives and no install scripts. Workspace manifests keep
|
|
202
|
+
unpublished payload dependencies out. Standalone asset copying selects one
|
|
203
|
+
opaque archive. Stable publication remains gated on production approval and a
|
|
204
|
+
new CLI version. This integration retains dev-channel CLI naming, update routing,
|
|
205
|
+
and exact-version package/lock rewriting. Dev publication uses `latest` only for
|
|
206
|
+
`@ashx-j/lunr-dev`; shared libraries and payload packages use the `dev` tag. Stable
|
|
207
|
+
tags remain unchanged. The user requested a dev-channel update and installation,
|
|
208
|
+
with automated release checks complete. Publication and global installation remain
|
|
209
|
+
separate distribution steps.
|
|
210
|
+
|
|
211
|
+
## Pending acceptance
|
|
212
|
+
|
|
213
|
+
Source tests cover image-only capture flags, metadata allowlists, image/crop
|
|
214
|
+
mapping, fresh tokens, single-action post-images, bounded unchanged behavior,
|
|
215
|
+
uncertain outcomes, permissions, and ownership. Source-review fixes add equivalent
|
|
216
|
+
click defaults, app/window pagination, and Unicode partial-typing recovery coverage.
|
|
217
|
+
The focused 23-suite run passes 265 tests, including a real Photon PNG crop
|
|
218
|
+
fixture that checks output pixels and coordinate mapping. All five offline package
|
|
219
|
+
builds and the Node bundle pass. Clean-parent first-request capture confirms that
|
|
220
|
+
`computer_load` is the only addition to the unsupported-host tool inventory; the
|
|
221
|
+
supported-host fingerprint is current. Private prompt and tool snapshots remain
|
|
222
|
+
local validation artifacts.
|
|
223
|
+
|
|
224
|
+
Seven dev package tarballs pass isolated installation and relocation checks,
|
|
225
|
+
host-only payload selection, archive verification, omitted-optional handling, and
|
|
226
|
+
the standalone installer lock. First-paint and first-turn subagent, MCP, LSP, and
|
|
227
|
+
local HTTP fixtures pass without remote inference. These checks do not launch the
|
|
228
|
+
native driver or prove application effects.
|
|
229
|
+
|
|
230
|
+
Explicitly authorized desktop acceptance remains required. Native gates include
|
|
231
|
+
Windows locked/UAC/integrity states,
|
|
232
|
+
Electron/native apps, display scaling and moved/resized windows, Unicode,
|
|
233
|
+
held-input cancellation, and macOS TCC/LaunchServices/FIFO/shutdown on hardware.
|
|
234
|
+
Cursor/runtime changes need a separate scoped decision before implementation.
|
|
235
|
+
|
|
236
|
+
## Privacy
|
|
237
|
+
|
|
238
|
+
Images, window titles, and typed text can enter selected-provider requests and
|
|
239
|
+
saved sessions. Disabling driver telemetry does not disable lunR session storage.
|
|
240
|
+
GUI changes are outside filesystem rollback. Application content is untrusted
|
|
241
|
+
task data, never authorization. OS permissions, locked desktops, UAC, and
|
|
242
|
+
integrity restrictions still apply.
|
package/docs/features.md
CHANGED
|
@@ -21,13 +21,31 @@ Permission modes: `manual | yolo | plan | auto`. Shift+Tab (`app.mode.cycle`) cy
|
|
|
21
21
|
|
|
22
22
|
Advertised subagents always start **fresh** (no forked parent context). Default parallel concurrency / max tasks / global run cap are unlimited; an explicit `concurrency` is still honored.
|
|
23
23
|
|
|
24
|
+
Single, parallel, and chain launches run async when `async` is omitted. Set `async:false` for an immediate foreground result or use `clarify:true` for the interactive preview/editor. Continue independent work after an async launch, then yield for normal interactive completion. Use `subagent_wait` only when the same turn or skill must finish after its children. Headless sessions auto-drain current-session work. Use status for one-time inspection rather than polling or sleeping for completion.
|
|
25
|
+
|
|
26
|
+
The legacy extension config keys `asyncByDefault` and `forceTopLevelAsync` remain accepted but no longer change launch mode. Omitted `async` resolves to async, while explicit `async:false`, `clarify:true`, and internal `foregroundOnly` calls stay foreground. RPC and scheduled launches remain always async.
|
|
27
|
+
|
|
28
|
+
Collapsed subagent rows (foreground and async) are one line: status glyph, description, selected tier or explicit model, tokens, and elapsed time. Mixed async runs use the same flat child rows without an aggregate tree. Running rows keep a live spinner and clock; completed collapsed rows freeze those stats. Choose the running child spinner under `/settings` → Customize. Async launches show `subagent async` in the tool header. Completed notify cards show title and status only; the model still receives the full result text.
|
|
29
|
+
|
|
24
30
|
A launch of 3+ parallel children in one `tasks`/`chain.parallel` call, or 3+ same-turn SINGLE `subagent` calls, receives one aggregate confirmation in **manual and yolo**. Sequential work stays `chain`. Auto bypasses this confirmation, and it can be disabled independently in `/settings`.
|
|
25
31
|
|
|
26
32
|
`/goal` sets a session goal and **forces session auto** permission mode.
|
|
27
33
|
|
|
34
|
+
### Questions to async children
|
|
35
|
+
|
|
36
|
+
The parent can use `subagent_supervisor` with `action: "ask"` to ask a running async child for information it needs before the final report. The request names the run, selects one child, and includes a `reason` explaining which decision needs the answer.
|
|
37
|
+
|
|
38
|
+
Asking returns a question ID without waiting. The child receives the question at a safe turn boundary, replies from its current findings, and continues its assigned task. Answers arrive separately from the run's final result and wake an idle parent. A delivery receipt is not an answer. Questions do not change the assignment, broadcast to other children, or restart finished children.
|
|
39
|
+
|
|
40
|
+
The parent calls `subagent_supervisor({ action: "ask", id, index, reason, message })`. It must select an `index` or private `childId` when several children are running. The child answers with `contact_supervisor({ action: "reply", replyTo: questionId, message })`. If the parent's next decision must wait, `subagent_wait({ questionId })` returns the answer instead of sending a second notification. Read-only children can reply without receiving editing tools.
|
|
41
|
+
|
|
42
|
+
A child must have an active question-capable input channel. Only one question may be outstanding per child. Questions expire after ten minutes by default, and child termination, failed delivery, process replacement, or parent session replacement cancels pending questions. A wait timeout ends the wait, not the question. Existing blocking child-to-parent requests take priority to avoid mutual waiting.
|
|
43
|
+
|
|
44
|
+
The agent must ask only when the child has missing context, the answer changes a concrete next decision, and waiting for completion would block progress or risk rework. It must use available results first and batch related questions. Routine progress checks, duplicate questions, polling, and step-by-step supervision are prohibited. A follow-up is appropriate only when the answer leaves the original decision unresolved.
|
|
45
|
+
|
|
28
46
|
## Todos, memory, and global instructions
|
|
29
47
|
|
|
30
|
-
- **Todos** — lunr-todos is a full-replace list. Completed todos prune on the next user turn (no leftover `✓ N done` footer).
|
|
48
|
+
- **Todos** — lunr-todos is a full-replace list. Collapsed lists show all four active items; lists of five or more show three and a `+N more` line. Completed todos prune on the next user turn (no leftover `✓ N done` footer).
|
|
31
49
|
- **Agent memory** — durable established facts and stable preferences in `~/.lunr/simple-memory/memory.md`. `/settings` → Agent memory controls injection and the `memory_add`, `memory_remove`, and `memory_load` tools without deleting stored facts. `memoryCharCap` defaults to 5000. Behavior instructions, transient task state, transcripts, guesses, and secrets do not belong in memory.
|
|
32
50
|
- **Global instructions** — create `~/.lunr/agent/agents/AGENTS.md` yourself when you want global behavior or instructions. lunR injects it through the normal context loader; `/reload` picks up changes. The model cannot modify this user-managed file. The retired `behavior.md` file and behavior presets are no longer loaded.
|
|
33
51
|
- **Model instructions** — `/settings` can enable `~/.lunr/agent/agents/<model-name>/AGENTS.md` and choose **Both** (global then model-specific) or **Model only**. The folder name is provider-independent and filesystem-safe. Project `AGENTS.md`/`CLAUDE.md` files are unaffected, and `--no-context-files` disables all instruction files.
|
|
@@ -83,10 +101,10 @@ Without runnable adapters (enabled platform + resolvable token), `lunr gateway`
|
|
|
83
101
|
- `/fast [on|off|status]` controls `service_tier: "fast"` for OpenAI Codex subscriptions only. It persists across new sessions, gateway turns, and subagents. Paid `openai` API models do not use it.
|
|
84
102
|
- Footer plan bar prefers a 5h window and falls back to weekly (`planUsageWindow`). In Customize, Plan usage hides the whole segment while Plan bar hides only the █░ fill and keeps the percent.
|
|
85
103
|
- Click a ✻ Thought or tool card to expand/collapse that item. `app.tools.expand` is unbound. `/tree` still uses `ctrl+o` for filters.
|
|
86
|
-
- Smooth streaming (`smoothStreaming`, default off)
|
|
104
|
+
- Smooth streaming (`smoothStreaming`, default off) reveals assistant text and thinking in small character batches at about 30 FPS in the interactive TUI. The thinking preview shows the last four revealed lines. Completed thinking collapses after its reveal catches up. Message completion flushes any remaining text immediately. Print, RPC, and gateway stay unsmoothed.
|
|
87
105
|
- Image paste inserts `[image_n]` chips. Windows uses **Alt+V**; VS Code must forward it because it owns Ctrl+V and Alt+V. `/paste-image` bypasses terminal shortcuts.
|
|
88
|
-
- Model
|
|
89
|
-
- Settings
|
|
106
|
+
- Model selection: every child launch chooses exactly one of `tier: light|standard|heavy` (default) or an explicit `model: provider/id` when the user names a model. Configure tier routes in `/settings`. Optional `thinking` is only valid with an explicit model; tier launches use configured tier thinking. Direct model launches do not require tier mode. Missing, both, inherit, unavailable, or unauthenticated selections fail closed before spawn.
|
|
107
|
+
- Settings changes stay on `/settings`. The agent does not get `settings_load` or other agent-managed settings tools, and direct file-tool writes to lunR `settings.json` are blocked.
|
|
90
108
|
|
|
91
109
|
## Updates, catalogs, local models
|
|
92
110
|
|