@openclaw/lobster 2026.9.4 → 2026.9.5
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/assets/activity.svg +4 -0
- package/assets/icon.png +0 -0
- package/dist/index.js +39 -10
- package/node_modules/@clawdbot/lobster/README.md +112 -1
- package/node_modules/@clawdbot/lobster/bin/clawd.invoke.js +13 -7
- package/node_modules/@clawdbot/lobster/bin/lobster.js +7 -7
- package/node_modules/@clawdbot/lobster/bin/openclaw.invoke.js +16 -10
- package/node_modules/@clawdbot/lobster/dist/src/abortable_process.js +297 -0
- package/node_modules/@clawdbot/lobster/dist/src/abortable_process.js.map +1 -0
- package/node_modules/@clawdbot/lobster/dist/src/cli.js +96 -248
- package/node_modules/@clawdbot/lobster/dist/src/cli.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/commands_list.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/registry.js +2 -0
- package/node_modules/@clawdbot/lobster/dist/src/commands/registry.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/approve.js +2 -0
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/approve.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/ask.js +3 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/ask.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/dedupe.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/diff_last.js +6 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/diff_last.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/email_triage.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/exec.js +30 -34
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/exec.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/gog_gmail_search.js +12 -25
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/gog_gmail_search.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/gog_gmail_send.js +19 -25
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/gog_gmail_send.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/group_by.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/head.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/json.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/llm_invoke.js +596 -42
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/llm_invoke.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/map.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/openclaw_agent.js +139 -0
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/openclaw_agent.js.map +1 -0
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/openclaw_invoke.js +20 -2
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/openclaw_invoke.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/pick.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/sort.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/state.js +48 -20
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/state.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/table.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/template.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/where.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/workflows/workflows_list.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/commands/workflows/workflows_run.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/core/cost_tracker.js +45 -3
- package/node_modules/@clawdbot/lobster/dist/src/core/cost_tracker.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/core/filters.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/core/retry.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/core/tool_runtime.js +147 -21
- package/node_modules/@clawdbot/lobster/dist/src/core/tool_runtime.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/input_request.js +4 -2
- package/node_modules/@clawdbot/lobster/dist/src/input_request.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/parser.js +4 -3
- package/node_modules/@clawdbot/lobster/dist/src/parser.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/pipeline_resume_state.js +241 -74
- package/node_modules/@clawdbot/lobster/dist/src/pipeline_resume_state.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/read_line.js +52 -7
- package/node_modules/@clawdbot/lobster/dist/src/read_line.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/read_response_text.js +86 -0
- package/node_modules/@clawdbot/lobster/dist/src/read_response_text.js.map +1 -0
- package/node_modules/@clawdbot/lobster/dist/src/recipes/github/pr-monitor.js +4 -2
- package/node_modules/@clawdbot/lobster/dist/src/recipes/github/pr-monitor.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/recipes/github/stages/pr-view.js +20 -34
- package/node_modules/@clawdbot/lobster/dist/src/recipes/github/stages/pr-view.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/recipes/registry.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/renderers/json.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/resume.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/runtime.js +187 -17
- package/node_modules/@clawdbot/lobster/dist/src/runtime.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/sdk/Lobster.js +10 -2
- package/node_modules/@clawdbot/lobster/dist/src/sdk/Lobster.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/sdk/primitives/approve.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/sdk/primitives/diff.js +13 -82
- package/node_modules/@clawdbot/lobster/dist/src/sdk/primitives/diff.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/sdk/primitives/exec.js +22 -32
- package/node_modules/@clawdbot/lobster/dist/src/sdk/primitives/exec.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/sdk/primitives/state.js +9 -101
- package/node_modules/@clawdbot/lobster/dist/src/sdk/primitives/state.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/sdk/runtime.js +2 -1
- package/node_modules/@clawdbot/lobster/dist/src/sdk/runtime.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/shell.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/state/store.js +619 -19
- package/node_modules/@clawdbot/lobster/dist/src/state/store.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/token.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/validation.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/workflows/file.js +963 -283
- package/node_modules/@clawdbot/lobster/dist/src/workflows/file.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/workflows/github_pr_monitor.js +27 -28
- package/node_modules/@clawdbot/lobster/dist/src/workflows/github_pr_monitor.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/workflows/graph.js +9 -2
- package/node_modules/@clawdbot/lobster/dist/src/workflows/graph.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/src/workflows/registry.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/approval_id.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/approve_preview.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/bin_smoke.test.js +25 -0
- package/node_modules/@clawdbot/lobster/dist/test/bin_smoke.test.js.map +1 -0
- package/node_modules/@clawdbot/lobster/dist/test/cancellation.test.js +5170 -0
- package/node_modules/@clawdbot/lobster/dist/test/cancellation.test.js.map +1 -0
- package/node_modules/@clawdbot/lobster/dist/test/clawd_invoke.test.js +22 -0
- package/node_modules/@clawdbot/lobster/dist/test/clawd_invoke.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/clawd_invoke_legacy.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/cli_run_file_args_json.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/commands_list.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/condition_comparison.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/core_tool_runtime.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/cost_tracker.test.js +1733 -1
- package/node_modules/@clawdbot/lobster/dist/test/cost_tracker.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/dedupe.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/diff_last.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/doctor.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/dry_run.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/email_triage.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/exec_stdin.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/for_each.test.js +254 -0
- package/node_modules/@clawdbot/lobster/dist/test/for_each.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/github_pr_notify_format.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/github_pr_summary.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/github_pr_view.test.js +176 -0
- package/node_modules/@clawdbot/lobster/dist/test/github_pr_view.test.js.map +1 -0
- package/node_modules/@clawdbot/lobster/dist/test/gog_gmail_send.test.js +100 -0
- package/node_modules/@clawdbot/lobster/dist/test/gog_gmail_send.test.js.map +1 -0
- package/node_modules/@clawdbot/lobster/dist/test/group_by.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/helpers/wait_for_pid.js +19 -0
- package/node_modules/@clawdbot/lobster/dist/test/helpers/wait_for_pid.js.map +1 -0
- package/node_modules/@clawdbot/lobster/dist/test/http_response_body_cap.test.js +318 -0
- package/node_modules/@clawdbot/lobster/dist/test/http_response_body_cap.test.js.map +1 -0
- package/node_modules/@clawdbot/lobster/dist/test/llm_invoke.test.js +946 -1
- package/node_modules/@clawdbot/lobster/dist/test/llm_invoke.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/llm_task_invoke.test.js +103 -0
- package/node_modules/@clawdbot/lobster/dist/test/llm_task_invoke.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/map.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/multi_approval_resume.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/on_error.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/openclaw_agent.test.js +169 -0
- package/node_modules/@clawdbot/lobster/dist/test/openclaw_agent.test.js.map +1 -0
- package/node_modules/@clawdbot/lobster/dist/test/openclaw_dispatch_retry.test.js +96 -0
- package/node_modules/@clawdbot/lobster/dist/test/openclaw_dispatch_retry.test.js.map +1 -0
- package/node_modules/@clawdbot/lobster/dist/test/openclaw_invoke_alias.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/parallel.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/parser.test.js +57 -0
- package/node_modules/@clawdbot/lobster/dist/test/parser.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/process_output_limit.test.js +173 -0
- package/node_modules/@clawdbot/lobster/dist/test/process_output_limit.test.js.map +1 -0
- package/node_modules/@clawdbot/lobster/dist/test/read_line.test.js +54 -0
- package/node_modules/@clawdbot/lobster/dist/test/read_line.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/release_changelog.test.js +39 -0
- package/node_modules/@clawdbot/lobster/dist/test/release_changelog.test.js.map +1 -0
- package/node_modules/@clawdbot/lobster/dist/test/request_input.test.js +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/request_input.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/resume.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/sdk_exec.test.js +201 -0
- package/node_modules/@clawdbot/lobster/dist/test/sdk_exec.test.js.map +1 -0
- package/node_modules/@clawdbot/lobster/dist/test/sdk_lobster.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/shell.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/sort.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/state.test.js +584 -1
- package/node_modules/@clawdbot/lobster/dist/test/state.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/step_retry.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/step_stdin_epipe.test.js +44 -0
- package/node_modules/@clawdbot/lobster/dist/test/step_stdin_epipe.test.js.map +1 -0
- package/node_modules/@clawdbot/lobster/dist/test/step_timeout.test.js +67 -1
- package/node_modules/@clawdbot/lobster/dist/test/step_timeout.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/template.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/template_filters.test.js +37 -0
- package/node_modules/@clawdbot/lobster/dist/test/template_filters.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/tool_envelope_version.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/tool_mode.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/validation.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/where.test.js +94 -0
- package/node_modules/@clawdbot/lobster/dist/test/where.test.js.map +1 -0
- package/node_modules/@clawdbot/lobster/dist/test/workflow_args_env.test.js +5 -3
- package/node_modules/@clawdbot/lobster/dist/test/workflow_args_env.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/workflow_composition.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/workflow_file.test.js +647 -1
- package/node_modules/@clawdbot/lobster/dist/test/workflow_file.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/workflow_graph.test.js +12 -2
- package/node_modules/@clawdbot/lobster/dist/test/workflow_graph.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/dist/test/workflows.test.js.map +1 -1
- package/node_modules/@clawdbot/lobster/package.json +74 -73
- package/node_modules/typebox/build/compile/validator.d.mts +1 -1
- package/node_modules/typebox/build/compile/validator.mjs +1 -1
- package/node_modules/typebox/build/format/idna/idn-hostname.mjs +7 -5
- package/node_modules/typebox/build/format/iri.mjs +5 -1
- package/node_modules/typebox/build/guard/emit.mjs +2 -4
- package/node_modules/typebox/build/guard/guard.mjs +6 -18
- package/node_modules/typebox/build/guard/string.mjs +16 -24
- package/node_modules/typebox/build/schema/build.mjs +2 -2
- package/node_modules/typebox/build/schema/check.mjs +1 -1
- package/node_modules/typebox/build/schema/compile.d.mts +3 -2
- package/node_modules/typebox/build/schema/compile.mjs +8 -8
- package/node_modules/typebox/build/schema/engine/_context.d.mts +6 -7
- package/node_modules/typebox/build/schema/engine/_context.mjs +23 -15
- package/node_modules/typebox/build/schema/engine/_functions.d.mts +2 -2
- package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/_reducer.d.mts +3 -3
- package/node_modules/typebox/build/schema/engine/_refine.d.mts +5 -5
- package/node_modules/typebox/build/schema/engine/_refine.mjs +4 -7
- package/node_modules/typebox/build/schema/engine/_stack.d.mts +34 -16
- package/node_modules/typebox/build/schema/engine/_stack.mjs +148 -104
- package/node_modules/typebox/build/schema/engine/additionalItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/additionalProperties.d.mts +8 -8
- package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +26 -18
- package/node_modules/typebox/build/schema/engine/allOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/allOf.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/anyOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/anyOf.mjs +5 -10
- package/node_modules/typebox/build/schema/engine/boolean.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/boolean.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/const.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/const.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/contains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/contains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/dependencies.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dependencies.mjs +3 -6
- package/node_modules/typebox/build/schema/engine/dependentRequired.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dependentRequired.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/dependentSchemas.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +11 -7
- package/node_modules/typebox/build/schema/engine/enum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/enum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/exclusiveMaximum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/exclusiveMinimum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/format.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/format.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/if.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/if.mjs +7 -15
- package/node_modules/typebox/build/schema/engine/items.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/items.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/maxContains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxContains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxItems.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxLength.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxLength.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxProperties.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maximum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maximum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minContains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minContains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minItems.d.mts +5 -5
- package/node_modules/typebox/build/schema/engine/minItems.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minLength.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minLength.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minProperties.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minimum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minimum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/multipleOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/multipleOf.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/not.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/not.mjs +4 -8
- package/node_modules/typebox/build/schema/engine/oneOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/oneOf.mjs +6 -11
- package/node_modules/typebox/build/schema/engine/pattern.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -7
- package/node_modules/typebox/build/schema/engine/patternProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/patternProperties.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/prefixItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/prefixItems.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/properties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/properties.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/propertyNames.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/propertyNames.mjs +4 -10
- package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +11 -7
- package/node_modules/typebox/build/schema/engine/ref.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/ref.mjs +19 -15
- package/node_modules/typebox/build/schema/engine/required.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/required.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/schema.d.mts +7 -7
- package/node_modules/typebox/build/schema/engine/schema.mjs +137 -133
- package/node_modules/typebox/build/schema/engine/type.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/type.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/unevaluatedItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +5 -9
- package/node_modules/typebox/build/schema/engine/unevaluatedProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +5 -9
- package/node_modules/typebox/build/schema/engine/uniqueItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/uniqueItems.mjs +2 -6
- package/node_modules/typebox/build/schema/errors.d.mts +2 -2
- package/node_modules/typebox/build/schema/errors.mjs +8 -14
- package/node_modules/typebox/build/schema/intern/index.d.mts +1 -0
- package/node_modules/typebox/build/schema/intern/index.mjs +1 -0
- package/node_modules/typebox/build/schema/intern/intern.d.mts +11 -0
- package/node_modules/typebox/build/schema/intern/intern.mjs +293 -0
- package/node_modules/typebox/build/schema/meta/draft_2019_09.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_2019_09.mjs +288 -0
- package/node_modules/typebox/build/schema/meta/draft_2020_12.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_2020_12.mjs +300 -0
- package/node_modules/typebox/build/schema/meta/draft_3.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_3.mjs +143 -0
- package/node_modules/typebox/build/schema/meta/draft_4.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_4.mjs +149 -0
- package/node_modules/typebox/build/schema/meta/draft_6.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_6.mjs +155 -0
- package/node_modules/typebox/build/schema/meta/draft_7.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_7.mjs +172 -0
- package/node_modules/typebox/build/schema/meta/index.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/index.mjs +2 -0
- package/node_modules/typebox/build/schema/meta/meta.d.mts +9 -0
- package/node_modules/typebox/build/schema/meta/meta.mjs +15 -0
- package/node_modules/typebox/build/schema/meta/schema.d.mts +6 -0
- package/node_modules/typebox/build/schema/meta/schema.mjs +1 -0
- package/node_modules/typebox/build/schema/parse.d.mts +1 -0
- package/node_modules/typebox/build/schema/parse.mjs +10 -5
- package/node_modules/typebox/build/schema/resolve/resolve.d.mts +8 -3
- package/node_modules/typebox/build/schema/resolve/resolve.mjs +268 -139
- package/node_modules/typebox/build/schema/schema.d.mts +2 -0
- package/node_modules/typebox/build/schema/schema.mjs +2 -0
- package/node_modules/typebox/build/value/errors/errors.d.mts +2 -12
- package/node_modules/typebox/build/value/errors/errors.mjs +2 -7
- package/node_modules/typebox/package.json +1 -1
- package/node_modules/typebox/readme.md +59 -89
- package/openclaw.plugin.json +1 -1
- package/package.json +10 -7
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { StringDecoder } from "node:string_decoder";
|
|
3
|
+
import { resolveInlineShellCommand } from "./shell.js";
|
|
4
|
+
const ABORT_FORCE_KILL_AFTER_MS = 250;
|
|
5
|
+
const forceTerminationCallbacks = new WeakMap();
|
|
6
|
+
// Capped direct SDK calls have no host AbortSignal, but their isolated children
|
|
7
|
+
// must still receive terminal interrupts and be killed if the host exits.
|
|
8
|
+
const interruptSignals = { SIGINT: 130, SIGTERM: 143, SIGHUP: 129, SIGQUIT: 131 };
|
|
9
|
+
const interruptTargets = new Set();
|
|
10
|
+
const interruptHandlers = new Map();
|
|
11
|
+
const killOnExit = () => {
|
|
12
|
+
for (const target of interruptTargets)
|
|
13
|
+
target.kill();
|
|
14
|
+
};
|
|
15
|
+
function registerInterruptTarget(target) {
|
|
16
|
+
if (interruptTargets.size === 0) {
|
|
17
|
+
process.on("exit", killOnExit);
|
|
18
|
+
for (const signal of Object.keys(interruptSignals)) {
|
|
19
|
+
const handler = () => {
|
|
20
|
+
const defaultExit = process.listenerCount(signal) === 1;
|
|
21
|
+
void Promise.allSettled([...interruptTargets].map((item) => item.stop(signal))).then(() => {
|
|
22
|
+
if (defaultExit)
|
|
23
|
+
process.exit(interruptSignals[signal]);
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
interruptHandlers.set(signal, handler);
|
|
27
|
+
// Observe existing once-handlers before EventEmitter removes them.
|
|
28
|
+
process.prependListener(signal, handler);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
interruptTargets.add(target);
|
|
32
|
+
return () => {
|
|
33
|
+
interruptTargets.delete(target);
|
|
34
|
+
if (interruptTargets.size === 0) {
|
|
35
|
+
process.removeListener("exit", killOnExit);
|
|
36
|
+
for (const [signal, handler] of interruptHandlers)
|
|
37
|
+
process.removeListener(signal, handler);
|
|
38
|
+
interruptHandlers.clear();
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function outputLimitFromEnv(env) {
|
|
43
|
+
const raw = env.LOBSTER_MAX_OUTPUT_BYTES?.trim();
|
|
44
|
+
if (!raw)
|
|
45
|
+
return undefined;
|
|
46
|
+
const value = Number(raw);
|
|
47
|
+
if (!/^\d+$/.test(raw) || !Number.isSafeInteger(value) || value <= 0) {
|
|
48
|
+
throw new Error("LOBSTER_MAX_OUTPUT_BYTES must be a positive safe integer (bytes)");
|
|
49
|
+
}
|
|
50
|
+
return value;
|
|
51
|
+
}
|
|
52
|
+
export function forceTerminateAbortableProcesses(signal) {
|
|
53
|
+
for (const terminate of forceTerminationCallbacks.get(signal) ?? [])
|
|
54
|
+
terminate();
|
|
55
|
+
}
|
|
56
|
+
function abortError(signal) {
|
|
57
|
+
if (signal.reason instanceof Error)
|
|
58
|
+
return signal.reason;
|
|
59
|
+
const error = new Error("This operation was aborted");
|
|
60
|
+
error.name = "AbortError";
|
|
61
|
+
return error;
|
|
62
|
+
}
|
|
63
|
+
function terminateProcessTree(child, signal) {
|
|
64
|
+
if (!child.pid)
|
|
65
|
+
return Promise.resolve();
|
|
66
|
+
if (process.platform === "win32") {
|
|
67
|
+
return new Promise((resolve) => {
|
|
68
|
+
const taskkill = spawn("taskkill", ["/pid", String(child.pid), "/T", "/F"], {
|
|
69
|
+
stdio: "ignore",
|
|
70
|
+
windowsHide: true,
|
|
71
|
+
});
|
|
72
|
+
taskkill.once("error", () => {
|
|
73
|
+
child.kill(signal);
|
|
74
|
+
resolve();
|
|
75
|
+
});
|
|
76
|
+
taskkill.once("close", resolve);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
try {
|
|
80
|
+
process.kill(-child.pid, signal);
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
child.kill(signal);
|
|
84
|
+
}
|
|
85
|
+
return Promise.resolve();
|
|
86
|
+
}
|
|
87
|
+
export function runAbortableProcess(options) {
|
|
88
|
+
const { env, cwd, stdin, signal, forceTerminationSignal, killSignal, maxOutputBytes: requestedMaxOutputBytes, outputLimitMessage, notFoundMessage, } = options;
|
|
89
|
+
return new Promise((resolve, reject) => {
|
|
90
|
+
if (requestedMaxOutputBytes !== undefined &&
|
|
91
|
+
(!Number.isSafeInteger(requestedMaxOutputBytes) || requestedMaxOutputBytes < 0)) {
|
|
92
|
+
reject(new Error("maxOutputBytes must be a non-negative safe integer"));
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const envLimit = outputLimitFromEnv(env);
|
|
96
|
+
const maxOutputBytes = envLimit === undefined
|
|
97
|
+
? requestedMaxOutputBytes
|
|
98
|
+
: requestedMaxOutputBytes === undefined
|
|
99
|
+
? envLimit
|
|
100
|
+
: Math.min(envLimit, requestedMaxOutputBytes);
|
|
101
|
+
try {
|
|
102
|
+
signal?.throwIfAborted();
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
reject(err);
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
const spawnOptions = {
|
|
109
|
+
env,
|
|
110
|
+
cwd,
|
|
111
|
+
shell: false,
|
|
112
|
+
stdio: "pipe",
|
|
113
|
+
// A finite cap also owns termination, including background descendants.
|
|
114
|
+
detached: process.platform !== "win32" && (signal !== undefined || maxOutputBytes !== undefined),
|
|
115
|
+
};
|
|
116
|
+
// Keep direct argv and shell command dataflow at distinct spawn sites.
|
|
117
|
+
// Merging them makes shell interpretation leak into direct executable callers.
|
|
118
|
+
const child = "shellCommand" in options
|
|
119
|
+
? (() => {
|
|
120
|
+
const shell = resolveInlineShellCommand({ command: options.shellCommand, env });
|
|
121
|
+
return spawn(shell.command, shell.argv, spawnOptions);
|
|
122
|
+
})()
|
|
123
|
+
: spawn(options.command, options.argv, spawnOptions);
|
|
124
|
+
const stdoutDecoder = new StringDecoder("utf8");
|
|
125
|
+
const stderrDecoder = new StringDecoder("utf8");
|
|
126
|
+
let stdout = "";
|
|
127
|
+
let stderr = "";
|
|
128
|
+
let stdoutBytes = 0;
|
|
129
|
+
let stderrBytes = 0;
|
|
130
|
+
let terminationError;
|
|
131
|
+
let forceKillTimer;
|
|
132
|
+
let processClosed = false;
|
|
133
|
+
let forceKillRequested = false;
|
|
134
|
+
let forceKillIssued = false;
|
|
135
|
+
let settled = false;
|
|
136
|
+
const forceTerminationRegistrations = [];
|
|
137
|
+
let forceTerminate;
|
|
138
|
+
let unregisterInterruptTarget;
|
|
139
|
+
let resolveStopped;
|
|
140
|
+
const stopped = new Promise((resolve) => {
|
|
141
|
+
resolveStopped = resolve;
|
|
142
|
+
});
|
|
143
|
+
const cleanup = () => {
|
|
144
|
+
unregisterInterruptTarget?.();
|
|
145
|
+
resolveStopped();
|
|
146
|
+
signal?.removeEventListener("abort", onAbort);
|
|
147
|
+
if (forceKillTimer)
|
|
148
|
+
clearTimeout(forceKillTimer);
|
|
149
|
+
if (forceTerminate) {
|
|
150
|
+
for (const listeners of forceTerminationRegistrations)
|
|
151
|
+
listeners.delete(forceTerminate);
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
const failTerminationWhenTreeIsStopped = () => {
|
|
155
|
+
if (!terminationError || !processClosed || !forceKillIssued || settled)
|
|
156
|
+
return;
|
|
157
|
+
settled = true;
|
|
158
|
+
cleanup();
|
|
159
|
+
reject(terminationError);
|
|
160
|
+
};
|
|
161
|
+
const fail = (error) => {
|
|
162
|
+
if (settled)
|
|
163
|
+
return;
|
|
164
|
+
settled = true;
|
|
165
|
+
cleanup();
|
|
166
|
+
reject(error);
|
|
167
|
+
};
|
|
168
|
+
const forceKill = () => {
|
|
169
|
+
if (forceKillRequested)
|
|
170
|
+
return;
|
|
171
|
+
forceKillRequested = true;
|
|
172
|
+
void terminateProcessTree(child, "SIGKILL").finally(() => {
|
|
173
|
+
forceKillIssued = true;
|
|
174
|
+
failTerminationWhenTreeIsStopped();
|
|
175
|
+
});
|
|
176
|
+
};
|
|
177
|
+
const startTermination = (error, receivedSignal) => {
|
|
178
|
+
if (settled || terminationError)
|
|
179
|
+
return;
|
|
180
|
+
terminationError = error;
|
|
181
|
+
const initialKillSignal = receivedSignal ??
|
|
182
|
+
(typeof killSignal === "function" ? killSignal() : killSignal) ??
|
|
183
|
+
"SIGTERM";
|
|
184
|
+
if (initialKillSignal === "SIGKILL") {
|
|
185
|
+
forceKill();
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
void terminateProcessTree(child, initialKillSignal);
|
|
189
|
+
forceKillTimer = setTimeout(() => {
|
|
190
|
+
forceKillTimer = undefined;
|
|
191
|
+
forceKill();
|
|
192
|
+
}, ABORT_FORCE_KILL_AFTER_MS);
|
|
193
|
+
};
|
|
194
|
+
forceTerminate = () => {
|
|
195
|
+
if (settled)
|
|
196
|
+
return;
|
|
197
|
+
if (!terminationError) {
|
|
198
|
+
terminationError = signal ? abortError(signal) : new Error("Process termination requested");
|
|
199
|
+
}
|
|
200
|
+
if (forceKillTimer) {
|
|
201
|
+
clearTimeout(forceKillTimer);
|
|
202
|
+
forceKillTimer = undefined;
|
|
203
|
+
}
|
|
204
|
+
forceKill();
|
|
205
|
+
};
|
|
206
|
+
const onAbort = () => {
|
|
207
|
+
if (!signal)
|
|
208
|
+
return;
|
|
209
|
+
startTermination(abortError(signal));
|
|
210
|
+
};
|
|
211
|
+
const appendOutput = (stream, data) => {
|
|
212
|
+
if (terminationError || settled)
|
|
213
|
+
return;
|
|
214
|
+
const bytes = data.byteLength;
|
|
215
|
+
const total = stream === "stdout" ? stdoutBytes + bytes : stderrBytes + bytes;
|
|
216
|
+
if (maxOutputBytes !== undefined && total > maxOutputBytes) {
|
|
217
|
+
startTermination(new Error((maxOutputBytes === requestedMaxOutputBytes ? outputLimitMessage : undefined) ??
|
|
218
|
+
`Process output exceeded ${maxOutputBytes} bytes`));
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
if (stream === "stdout") {
|
|
222
|
+
stdoutBytes = total;
|
|
223
|
+
stdout += stdoutDecoder.write(data);
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
stderrBytes = total;
|
|
227
|
+
stderr += stderrDecoder.write(data);
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
child.stdout?.on("data", (data) => appendOutput("stdout", data));
|
|
231
|
+
child.stderr?.on("data", (data) => appendOutput("stderr", data));
|
|
232
|
+
child.stdin?.on("error", () => { });
|
|
233
|
+
if (typeof stdin === "string")
|
|
234
|
+
child.stdin?.write(stdin);
|
|
235
|
+
child.stdin?.end();
|
|
236
|
+
child.on("error", (error) => {
|
|
237
|
+
if (terminationError) {
|
|
238
|
+
processClosed = true;
|
|
239
|
+
failTerminationWhenTreeIsStopped();
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
if (error.code === "ENOENT") {
|
|
243
|
+
fail(new Error(notFoundMessage));
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
fail(error);
|
|
247
|
+
});
|
|
248
|
+
child.on("close", (code) => {
|
|
249
|
+
if (settled)
|
|
250
|
+
return;
|
|
251
|
+
processClosed = true;
|
|
252
|
+
if (terminationError) {
|
|
253
|
+
failTerminationWhenTreeIsStopped();
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
settled = true;
|
|
257
|
+
cleanup();
|
|
258
|
+
resolve({ stdout: stdout + stdoutDecoder.end(), stderr: stderr + stderrDecoder.end(), code });
|
|
259
|
+
});
|
|
260
|
+
for (const registrationSignal of new Set([signal, forceTerminationSignal].filter((candidate) => candidate !== undefined))) {
|
|
261
|
+
let listeners = forceTerminationCallbacks.get(registrationSignal);
|
|
262
|
+
if (!listeners) {
|
|
263
|
+
listeners = new Set();
|
|
264
|
+
forceTerminationCallbacks.set(registrationSignal, listeners);
|
|
265
|
+
}
|
|
266
|
+
listeners.add(forceTerminate);
|
|
267
|
+
forceTerminationRegistrations.push(listeners);
|
|
268
|
+
}
|
|
269
|
+
if (spawnOptions.detached && signal === undefined) {
|
|
270
|
+
unregisterInterruptTarget = registerInterruptTarget({
|
|
271
|
+
stop(receivedSignal) {
|
|
272
|
+
if (terminationError)
|
|
273
|
+
forceKill();
|
|
274
|
+
else
|
|
275
|
+
startTermination(new Error(`Received ${receivedSignal}`), receivedSignal);
|
|
276
|
+
return stopped;
|
|
277
|
+
},
|
|
278
|
+
kill() {
|
|
279
|
+
if (child.pid) {
|
|
280
|
+
try {
|
|
281
|
+
process.kill(-child.pid, "SIGKILL");
|
|
282
|
+
}
|
|
283
|
+
catch {
|
|
284
|
+
/* Already exited. */
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
},
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
if (signal) {
|
|
291
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
292
|
+
if (signal.aborted)
|
|
293
|
+
onAbort();
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
//# sourceMappingURL=abortable_process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abortable_process.js","sourceRoot":"","sources":["../../src/abortable_process.ts"],"names":[],"mappings":"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"}
|