@yanglaofish/fishtools 0.5.2 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -12
- package/manual/README.md +24 -12
- package/manual/docs/deployment.md +3 -3
- package/manual/docs/examples/action-plugin/package.json +1 -1
- package/manual/docs/modules.md +2 -0
- package/manual/docs/plans/2026-10-13-effective-inputs-and-tables.md +39 -0
- package/manual/docs/plans/2026-10-13-plugin-defaults.md +45 -0
- package/manual/docs/plans/2026-10-14-issue7-recovery.md +33 -0
- package/manual/docs/plans/2026-10-14-issue8-10-workflows.md +26 -0
- package/manual/docs/plans/2026-10-14-issue9-completion.md +47 -0
- package/manual/docs/plans/2026-10-14-managed-execution.md +58 -0
- package/manual/docs/plans/2026-10-14-plugin-discovery-history.md +41 -0
- package/manual/docs/plans/2026-10-14-structured-reports.md +77 -0
- package/manual/docs/plans/2026-10-14-unreleased-review.md +47 -0
- package/manual/docs/plugin-development.md +175 -11
- package/manual/docs/releases.md +49 -6
- package/manual/docs/superpowers/plans/2026-10-13-command-shortcuts.md +3 -2
- package/manual/docs/superpowers/plans/2026-10-13-global-plugins.md +56 -0
- package/manual/docs/superpowers/plans/2026-10-13-tui-readable-sessions.md +21 -0
- package/manual/docs/superpowers/reviews/2026-10-13-0.5.3-review.md +28 -0
- package/manual/docs/superpowers/reviews/2026-10-13-command-shortcuts-review.md +7 -0
- package/manual/docs/superpowers/reviews/2026-10-13-tui-sessions-review.md +57 -0
- package/manual/docs/superpowers/reviews/2026-10-14-0.6.0-release-review.md +19 -0
- package/manual/docs/superpowers/specs/2026-10-13-issue-4-workflow-menu.md +23 -0
- package/manual/docs/superpowers/specs/2026-10-13-issue-5-results-and-history.md +20 -0
- package/manual/docs/terminal-commands.md +8 -0
- package/manual/docs/verification.md +47 -0
- package/manual/packages/core/README.md +8 -0
- package/manual/packages/core/package.json +1 -1
- package/manual/packages/core/src/application.js +108 -53
- package/manual/packages/core/src/development-watch-worker.js +10 -1
- package/manual/packages/core/src/development.js +1 -1
- package/manual/packages/core/src/plugin-catalog.js +60 -0
- package/manual/packages/core/src/plugin-loading.js +24 -0
- package/manual/packages/core/src/version.js +1 -1
- package/manual/packages/fst-cli/README.md +8 -0
- package/manual/packages/fst-cli/bin/fst.js +7 -6
- package/manual/packages/fst-cli/package.json +1 -1
- package/manual/packages/fst-cli/src/development.js +6 -1
- package/manual/packages/fst-cli/src/terminal/command-menu.js +11 -5
- package/manual/packages/fst-cli/src/terminal/file-autocomplete.js +106 -0
- package/manual/packages/fst-cli/src/terminal/log-viewer.js +4 -3
- package/manual/packages/fst-cli/src/terminal/navigation.js +25 -1
- package/manual/packages/fst-cli/src/terminal/presentation.js +5 -3
- package/manual/packages/fst-cli/src/terminal/report-presentation.js +38 -0
- package/manual/packages/fst-cli/src/terminal/result-table.js +66 -0
- package/manual/packages/fst-cli/src/terminal/run-feed.js +104 -23
- package/manual/packages/fst-cli/src/terminal/run-presentation.js +91 -14
- package/manual/packages/fst-cli/src/terminal/run-viewer.js +34 -15
- package/manual/packages/fst-cli/src/terminal/schema.js +114 -4
- package/manual/packages/fst-cli/src/terminal/session-history.js +82 -0
- package/manual/packages/fst-cli/src/terminal/session.js +158 -54
- package/manual/packages/fst-cli/src/terminal/view.js +108 -73
- package/manual/packages/fst-cli/src/terminal/workflow-menu.js +17 -10
- package/manual/packages/fst-devtools/README.md +2 -0
- package/manual/packages/fst-devtools/package.json +2 -2
- package/manual/packages/fst-devtools/src/plugin-quality.js +4 -1
- package/manual/packages/fst-devtools/src/plugin-tools.js +2 -1
- package/manual/packages/fst-devtools/src/process-usage.js +62 -0
- package/manual/packages/fst-logs/README.md +23 -2
- package/manual/packages/fst-logs/package.json +2 -1
- package/manual/packages/fst-logs/src/file-identity.js +23 -0
- package/manual/packages/fst-logs/src/markdown-log.js +4 -3
- package/manual/packages/fst-logs/src/run-logs.js +3 -2
- package/manual/packages/fst-logs/src/session-history.js +180 -0
- package/manual/packages/fst-platform/README.md +9 -0
- package/manual/packages/fst-platform/package.json +4 -3
- package/manual/packages/fst-platform/src/managed-process.js +36 -0
- package/manual/packages/fst-platform/src/process.js +11 -3
- package/manual/packages/fst-platform/src/shell.js +46 -1
- package/manual/packages/fst-plugin/README.md +4 -0
- package/manual/packages/fst-plugin/package.json +1 -1
- package/manual/packages/fst-plugin/src/contracts.js +3 -0
- package/manual/packages/fst-plugin/src/host.js +54 -31
- package/manual/packages/fst-plugin/src/runtime.js +14 -8
- package/manual/packages/fst-workflow/package.json +1 -1
- package/manual/packages/fst-workflow/src/engine.js +1 -1
- package/manual/packages/fst-workspace/README.md +6 -0
- package/manual/packages/fst-workspace/package.json +2 -1
- package/manual/packages/fst-workspace/src/plugin-registry.js +58 -0
- package/manual/packages/fst-workspace/src/plugins.js +10 -5
- package/manual/packages/fst-workspace/src/workflows.js +32 -12
- package/manual/packages/pack/package.json +3 -3
- package/manual/packages/pack/runtime-cache.js +26 -0
- package/manual/packages/pack/runtime.js +6 -10
- package/manual/packages/sdk/README.md +10 -0
- package/manual/packages/sdk/inputs.js +53 -0
- package/manual/packages/sdk/package.json +2 -0
- package/manual/packages/sdk/reports.js +53 -0
- package/manual/plugins/commands/package.json +1 -1
- package/node_modules/@mytools/commands/package.json +1 -1
- package/node_modules/@mytools/core/README.md +8 -0
- package/node_modules/@mytools/core/package.json +1 -1
- package/node_modules/@mytools/core/src/application.js +108 -53
- package/node_modules/@mytools/core/src/development-watch-worker.js +10 -1
- package/node_modules/@mytools/core/src/development.js +1 -1
- package/node_modules/@mytools/core/src/plugin-catalog.js +60 -0
- package/node_modules/@mytools/core/src/plugin-loading.js +24 -0
- package/node_modules/@mytools/core/src/version.js +1 -1
- package/node_modules/@mytools/fst-cli/README.md +8 -0
- package/node_modules/@mytools/fst-cli/bin/fst.js +7 -6
- package/node_modules/@mytools/fst-cli/package.json +1 -1
- package/node_modules/@mytools/fst-cli/src/development.js +6 -1
- package/node_modules/@mytools/fst-cli/src/terminal/command-menu.js +11 -5
- package/node_modules/@mytools/fst-cli/src/terminal/file-autocomplete.js +106 -0
- package/node_modules/@mytools/fst-cli/src/terminal/log-viewer.js +4 -3
- package/node_modules/@mytools/fst-cli/src/terminal/navigation.js +25 -1
- package/node_modules/@mytools/fst-cli/src/terminal/presentation.js +5 -3
- package/node_modules/@mytools/fst-cli/src/terminal/report-presentation.js +38 -0
- package/node_modules/@mytools/fst-cli/src/terminal/result-table.js +66 -0
- package/node_modules/@mytools/fst-cli/src/terminal/run-feed.js +104 -23
- package/node_modules/@mytools/fst-cli/src/terminal/run-presentation.js +91 -14
- package/node_modules/@mytools/fst-cli/src/terminal/run-viewer.js +34 -15
- package/node_modules/@mytools/fst-cli/src/terminal/schema.js +114 -4
- package/node_modules/@mytools/fst-cli/src/terminal/session-history.js +82 -0
- package/node_modules/@mytools/fst-cli/src/terminal/session.js +158 -54
- package/node_modules/@mytools/fst-cli/src/terminal/view.js +108 -73
- package/node_modules/@mytools/fst-cli/src/terminal/workflow-menu.js +17 -10
- package/node_modules/@mytools/fst-devtools/README.md +2 -0
- package/node_modules/@mytools/fst-devtools/package.json +2 -2
- package/node_modules/@mytools/fst-devtools/src/plugin-quality.js +4 -1
- package/node_modules/@mytools/fst-devtools/src/plugin-tools.js +2 -1
- package/node_modules/@mytools/fst-devtools/src/process-usage.js +62 -0
- package/node_modules/@mytools/fst-logs/README.md +23 -2
- package/node_modules/@mytools/fst-logs/package.json +2 -1
- package/node_modules/@mytools/fst-logs/src/file-identity.js +23 -0
- package/node_modules/@mytools/fst-logs/src/markdown-log.js +4 -3
- package/node_modules/@mytools/fst-logs/src/run-logs.js +3 -2
- package/node_modules/@mytools/fst-logs/src/session-history.js +180 -0
- package/node_modules/@mytools/fst-platform/README.md +9 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/LICENSE +21 -0
- package/node_modules/{undici/docs/docs/index.md → @mytools/fst-platform/node_modules/undici/README.md} +85 -137
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Agent.md +84 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/BalancedPool.md +99 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/CacheStorage.md +30 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/CacheStore.md +164 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Client.md +288 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/ClientStats.md +27 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Connector.md +115 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/ContentType.md +57 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Cookies.md +128 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Debug.md +62 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +317 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Dispatcher.md +1393 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +159 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Errors.md +49 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/EventSource.md +45 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Fetch.md +60 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/GlobalInstallation.md +139 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/H2CClient.md +263 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockAgent.md +603 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockCallHistory.md +197 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +43 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockClient.md +81 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockErrors.md +12 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockPool.md +555 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Pool.md +84 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/PoolStats.md +35 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/ProxyAgent.md +229 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/RedirectHandler.md +93 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/RetryAgent.md +50 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/RetryHandler.md +118 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/RoundRobinPool.md +145 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/SnapshotAgent.md +616 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +275 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Util.md +25 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/WebSocket.md +141 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/api-lifecycle.md +91 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/best-practices/client-certificate.md +64 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/docs/docs/best-practices/crawling.md +1 -3
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/best-practices/mocking-request.md +190 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/best-practices/proxy.md +127 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/docs/docs/best-practices/undici-vs-builtin-fetch.md +8 -10
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/best-practices/writing-tests.md +63 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/index-fetch.js +65 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/index.d.ts +3 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/index.js +234 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/abort-signal.js +59 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/api-connect.js +110 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/api-pipeline.js +252 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/api-request.js +214 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/api-stream.js +209 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/api-upgrade.js +111 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/index.js +7 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/readable.js +580 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/cache/memory-cache-store.js +3 -3
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/cache/sqlite-cache-store.js +1 -3
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/connect.js +153 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/constants.js +143 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/diagnostics.js +227 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/errors.js +477 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/request.js +485 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/symbols.js +75 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/tree.js +160 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/util.js +992 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/agent.js +158 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/balanced-pool.js +221 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/client-h1.js +1746 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/client-h2.js +1060 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/client.js +668 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/dispatcher-base.js +184 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/dispatcher.js +48 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +146 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/fixed-queue.js +135 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/dispatcher/h2c-client.js +4 -4
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/pool-base.js +214 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/pool.js +118 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/proxy-agent.js +319 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/retry-agent.js +35 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/dispatcher/round-robin-pool.js +10 -32
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/dispatcher/socks5-proxy-agent.js +63 -153
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/global.js +59 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/handler/cache-handler.js +7 -49
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/handler/cache-revalidation-handler.js +0 -10
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/handler/decorator-handler.js +67 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/handler/deduplication-handler.js +10 -29
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/handler/redirect-handler.js +238 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/handler/retry-handler.js +504 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/handler/unwrap-handler.js +106 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/handler/wrap-handler.js +105 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/interceptor/cache.js +26 -79
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/interceptor/decompress.js +3 -13
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/interceptor/deduplicate.js +4 -5
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/interceptor/dns.js +571 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/interceptor/dump.js +99 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/interceptor/redirect.js +21 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/interceptor/response-error.js +95 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/interceptor/retry.js +19 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/llhttp/.gitkeep +0 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/llhttp/constants.js +531 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/llhttp/llhttp-wasm.js +15 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +15 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/llhttp/utils.js +12 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-agent.js +232 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/mock/mock-call-history.js +1 -1
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-client.js +68 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-errors.js +29 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-interceptor.js +209 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-pool.js +68 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-symbols.js +32 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-utils.js +486 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/pending-interceptors-formatter.js +43 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/mock/snapshot-agent.js +7 -25
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/mock/snapshot-recorder.js +3 -38
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/util/cache.js +10 -92
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/util/promise.js +28 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/util/runtime-features.js +34 -3
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/util/timers.js +425 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cache/cache.js +864 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cache/cachestorage.js +152 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cache/util.js +45 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cookies/constants.js +12 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cookies/index.js +199 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cookies/parse.js +314 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cookies/util.js +352 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/eventsource/eventsource-stream.js +494 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/eventsource/eventsource.js +501 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/eventsource/util.js +29 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/LICENSE +21 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/body.js +509 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/constants.js +131 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/data-url.js +596 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/formdata-parser.js +586 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/formdata.js +259 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/global.js +40 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/headers.js +719 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/index.js +2413 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/request.js +1115 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/response.js +641 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/util.js +1522 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/infra/index.js +1 -16
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/webidl/index.js +21 -7
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/connection.js +339 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/constants.js +126 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/events.js +331 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/frame.js +133 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/permessage-deflate.js +105 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/receiver.js +507 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/sender.js +109 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/websocket/stream/websocketerror.js +10 -13
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/websocket/stream/websocketstream.js +14 -29
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/util.js +347 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/websocket.js +758 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/package.json +152 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/scripts/strip-comments.js +10 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/README.md +6 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/agent.d.ts +32 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/api.d.ts +43 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/balanced-pool.d.ts +30 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/cache.d.ts +36 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/client.d.ts +139 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/connector.d.ts +36 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/content-type.d.ts +21 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/cookies.d.ts +30 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/diagnostics-channel.d.ts +74 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/dispatcher.d.ts +275 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/env-http-proxy-agent.d.ts +22 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/errors.d.ts +177 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/eventsource.d.ts +66 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/fetch.d.ts +231 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/formdata.d.ts +114 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/global-dispatcher.d.ts +9 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/global-origin.d.ts +7 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/h2c-client.d.ts +6 -6
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/handlers.d.ts +14 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/header.d.ts +160 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/index.d.ts +91 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/interceptors.d.ts +82 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/mock-agent.d.ts +68 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/mock-client.d.ts +27 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/mock-errors.d.ts +12 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/mock-interceptor.d.ts +94 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/mock-pool.d.ts +27 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/patch.d.ts +29 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/pool-stats.d.ts +19 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/pool.d.ts +41 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/proxy-agent.d.ts +29 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/readable.d.ts +68 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/retry-agent.d.ts +8 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/retry-handler.d.ts +125 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/round-robin-pool.d.ts +2 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/snapshot-agent.d.ts +0 -4
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/socks5-proxy-agent.d.ts +2 -4
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/util.d.ts +18 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/webidl.d.ts +347 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/websocket.d.ts +188 -0
- package/node_modules/@mytools/fst-platform/package.json +4 -3
- package/node_modules/@mytools/fst-platform/src/managed-process.js +36 -0
- package/node_modules/@mytools/fst-platform/src/process.js +11 -3
- package/node_modules/@mytools/fst-platform/src/shell.js +46 -1
- package/node_modules/@mytools/fst-plugin/README.md +4 -0
- package/node_modules/@mytools/fst-plugin/package.json +1 -1
- package/node_modules/@mytools/fst-plugin/src/contracts.js +3 -0
- package/node_modules/@mytools/fst-plugin/src/host.js +54 -31
- package/node_modules/@mytools/fst-plugin/src/runtime.js +14 -8
- package/node_modules/@mytools/fst-workflow/package.json +1 -1
- package/node_modules/@mytools/fst-workflow/src/engine.js +1 -1
- package/node_modules/@mytools/fst-workspace/README.md +6 -0
- package/node_modules/@mytools/fst-workspace/package.json +2 -1
- package/node_modules/@mytools/fst-workspace/src/plugin-registry.js +58 -0
- package/node_modules/@mytools/fst-workspace/src/plugins.js +10 -5
- package/node_modules/@mytools/fst-workspace/src/workflows.js +32 -12
- package/node_modules/@mytools/pack/package.json +3 -3
- package/node_modules/@mytools/pack/runtime-cache.js +26 -0
- package/node_modules/@mytools/pack/runtime.js +6 -10
- package/node_modules/@mytools/sdk/README.md +10 -0
- package/node_modules/@mytools/sdk/inputs.js +53 -0
- package/node_modules/@mytools/sdk/package.json +2 -0
- package/node_modules/@mytools/sdk/reports.js +53 -0
- package/node_modules/@mytools/web/public/THIRD_PARTY_NOTICES.txt +1197 -1207
- package/node_modules/@npmcli/agent/lib/agents.js +0 -10
- package/node_modules/@npmcli/agent/package.json +12 -11
- package/node_modules/@npmcli/arborist/README.md +2 -2
- package/node_modules/@npmcli/arborist/bin/index.js +2 -1
- package/node_modules/@npmcli/arborist/bin/shrinkwrap.js +7 -0
- package/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js +25 -159
- package/node_modules/@npmcli/arborist/lib/arborist/isolated-reifier.js +49 -11
- package/node_modules/@npmcli/arborist/lib/arborist/load-actual.js +0 -67
- package/node_modules/@npmcli/arborist/lib/arborist/load-virtual.js +37 -5
- package/node_modules/@npmcli/arborist/lib/arborist/rebuild.js +8 -15
- package/node_modules/@npmcli/arborist/lib/arborist/reify.js +42 -59
- package/node_modules/@npmcli/arborist/lib/consistent-resolve.js +1 -1
- package/node_modules/@npmcli/arborist/lib/diff.js +22 -17
- package/node_modules/@npmcli/arborist/lib/edge.js +2 -22
- package/node_modules/@npmcli/arborist/lib/index.js +0 -2
- package/node_modules/@npmcli/arborist/lib/isolated-classes.js +1 -4
- package/node_modules/@npmcli/arborist/lib/node.js +9 -13
- package/node_modules/@npmcli/arborist/lib/place-dep.js +0 -6
- package/node_modules/@npmcli/arborist/lib/printable.js +5 -0
- package/node_modules/@npmcli/arborist/lib/shrinkwrap.js +32 -55
- package/node_modules/@npmcli/arborist/package.json +26 -32
- package/node_modules/@npmcli/fs/lib/move-file.js +5 -5
- package/node_modules/@npmcli/fs/package.json +5 -5
- package/node_modules/@npmcli/git/package.json +12 -13
- package/node_modules/@npmcli/installed-package-contents/package.json +7 -7
- package/node_modules/@npmcli/map-workspaces/package.json +7 -7
- package/node_modules/@npmcli/metavuln-calculator/package.json +16 -10
- package/node_modules/@npmcli/name-from-folder/package.json +16 -13
- package/node_modules/@npmcli/node-gyp/package.json +5 -5
- package/node_modules/@npmcli/package-json/lib/index.js +1 -2
- package/node_modules/@npmcli/package-json/lib/normalize.js +22 -23
- package/node_modules/@npmcli/package-json/package.json +10 -11
- package/node_modules/@npmcli/promise-spawn/README.md +2 -1
- package/node_modules/@npmcli/promise-spawn/package.json +5 -5
- package/node_modules/@npmcli/redact/package.json +4 -4
- package/node_modules/@npmcli/run-script/lib/is-server-package.js +11 -0
- package/node_modules/@npmcli/run-script/lib/make-spawn-args.js +6 -5
- package/node_modules/@npmcli/run-script/lib/run-script-pkg.js +13 -4
- package/node_modules/@npmcli/run-script/lib/run-script.js +2 -1
- package/node_modules/@npmcli/run-script/package.json +11 -12
- package/node_modules/@sigstore/bundle/README.md +1 -1
- package/node_modules/@sigstore/bundle/dist/error.js +0 -1
- package/node_modules/@sigstore/bundle/package.json +2 -2
- package/node_modules/@sigstore/core/README.md +1 -1
- package/node_modules/@sigstore/core/dist/asn1/length.js +1 -12
- package/node_modules/@sigstore/core/dist/asn1/obj.js +7 -25
- package/node_modules/@sigstore/core/dist/asn1/parse.js +5 -24
- package/node_modules/@sigstore/core/package.json +2 -2
- package/node_modules/@sigstore/sign/README.md +1 -1
- package/node_modules/@sigstore/sign/dist/signer/fulcio/ephemeral.js +1 -1
- package/node_modules/@sigstore/sign/package.json +9 -9
- package/node_modules/@sigstore/tuf/README.md +1 -1
- package/node_modules/@sigstore/tuf/package.json +4 -4
- package/node_modules/@sigstore/tuf/seeds.json +1 -1
- package/node_modules/@sigstore/verify/README.md +1 -1
- package/node_modules/@sigstore/verify/dist/bundle/dsse.d.ts +0 -1
- package/node_modules/@sigstore/verify/dist/bundle/dsse.js +0 -6
- package/node_modules/@sigstore/verify/dist/bundle/message.d.ts +0 -1
- package/node_modules/@sigstore/verify/dist/bundle/message.js +0 -5
- package/node_modules/@sigstore/verify/dist/policy.d.ts +1 -1
- package/node_modules/@sigstore/verify/dist/policy.js +2 -0
- package/node_modules/@sigstore/verify/dist/shared.types.d.ts +1 -6
- package/node_modules/@sigstore/verify/dist/tlog/checkpoint.js +3 -17
- package/node_modules/@sigstore/verify/dist/tlog/hashedrekord.js +4 -4
- package/node_modules/@sigstore/verify/dist/tlog/index.js +1 -13
- package/node_modules/@sigstore/verify/dist/tlog/merkle.js +1 -12
- package/node_modules/@sigstore/verify/dist/verifier.js +5 -13
- package/node_modules/@sigstore/verify/package.json +5 -5
- package/node_modules/@tufjs/models/package.json +3 -3
- package/node_modules/abbrev/package.json +8 -9
- package/node_modules/agent-base/dist/helpers.d.ts +5 -0
- package/node_modules/agent-base/dist/helpers.d.ts.map +1 -1
- package/node_modules/agent-base/dist/helpers.js +34 -5
- package/node_modules/agent-base/dist/helpers.js.map +1 -1
- package/node_modules/agent-base/dist/index.d.ts +5 -1
- package/node_modules/agent-base/dist/index.d.ts.map +1 -1
- package/node_modules/agent-base/dist/index.js +40 -8
- package/node_modules/agent-base/dist/index.js.map +1 -1
- package/node_modules/agent-base/package.json +12 -12
- package/node_modules/bin-links/README.md +4 -5
- package/node_modules/bin-links/lib/fix-bin.js +1 -3
- package/node_modules/bin-links/lib/index.js +16 -8
- package/node_modules/bin-links/lib/link-mans.js +53 -0
- package/node_modules/bin-links/package.json +12 -11
- package/node_modules/cacache/lib/content/write.js +0 -2
- package/node_modules/cacache/lib/entry-index.js +0 -3
- package/node_modules/cacache/lib/rm.js +0 -1
- package/node_modules/cacache/lib/util/tmp.js +1 -5
- package/node_modules/cacache/lib/verify.js +2 -2
- package/node_modules/cacache/package.json +7 -7
- package/node_modules/cmd-shim/lib/index.js +32 -67
- package/node_modules/cmd-shim/package.json +5 -5
- package/node_modules/hosted-git-info/README.md +1 -1
- package/node_modules/hosted-git-info/lib/parse-url.js +3 -1
- package/node_modules/hosted-git-info/package.json +4 -4
- package/node_modules/http-proxy-agent/dist/index.d.ts +5 -8
- package/node_modules/http-proxy-agent/dist/index.d.ts.map +1 -1
- package/node_modules/http-proxy-agent/dist/index.js +42 -26
- package/node_modules/http-proxy-agent/dist/index.js.map +1 -1
- package/node_modules/http-proxy-agent/package.json +14 -15
- package/node_modules/https-proxy-agent/dist/index.d.ts +5 -9
- package/node_modules/https-proxy-agent/dist/index.d.ts.map +1 -1
- package/node_modules/https-proxy-agent/dist/index.js +44 -98
- package/node_modules/https-proxy-agent/dist/index.js.map +1 -1
- package/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts +3 -0
- package/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts.map +1 -1
- package/node_modules/https-proxy-agent/dist/parse-proxy-response.js +10 -3
- package/node_modules/https-proxy-agent/dist/parse-proxy-response.js.map +1 -1
- package/node_modules/https-proxy-agent/package.json +15 -16
- package/node_modules/ignore-walk/package.json +4 -4
- package/node_modules/ini/package.json +5 -5
- package/node_modules/ip-address/README.md +70 -70
- package/node_modules/ip-address/dist/ipv6.js +7 -4
- package/node_modules/ip-address/dist/ipv6.js.map +1 -1
- package/node_modules/ip-address/dist/v6/constants.d.ts +3 -0
- package/node_modules/ip-address/dist/v6/constants.js +3 -0
- package/node_modules/ip-address/dist/v6/constants.js.map +1 -1
- package/node_modules/ip-address/package.json +2 -1
- package/node_modules/json-parse-even-better-errors/lib/index.js +1 -3
- package/node_modules/json-parse-even-better-errors/package.json +17 -13
- package/node_modules/make-fetch-happen/package.json +11 -11
- package/node_modules/minipass-fetch/package.json +4 -4
- package/node_modules/node-gyp/.release-please-manifest.json +1 -1
- package/node_modules/node-gyp/CHANGELOG.md +0 -102
- package/node_modules/node-gyp/README.md +2 -3
- package/node_modules/node-gyp/eslint.config.js +1 -4
- package/node_modules/node-gyp/gyp/.release-please-manifest.json +1 -1
- package/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py +19 -14
- package/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +2 -7
- package/node_modules/node-gyp/gyp/pyproject.toml +1 -1
- package/node_modules/node-gyp/lib/build.js +6 -18
- package/node_modules/node-gyp/lib/create-config-gypi.js +0 -5
- package/node_modules/node-gyp/lib/node-gyp.js +2 -9
- package/node_modules/node-gyp/lib/rebuild.js +3 -3
- package/node_modules/node-gyp/package.json +9 -11
- package/node_modules/nopt/README.md +4 -2
- package/node_modules/nopt/lib/debug.js +5 -0
- package/node_modules/nopt/lib/nopt-lib.js +43 -7
- package/node_modules/nopt/lib/nopt.js +4 -2
- package/node_modules/nopt/lib/type-defs.js +13 -8
- package/node_modules/nopt/package.json +17 -15
- package/node_modules/npm-bundled/package.json +6 -6
- package/node_modules/npm-install-checks/package.json +5 -5
- package/node_modules/npm-normalize-package-bin/package.json +16 -13
- package/node_modules/npm-package-arg/package.json +7 -7
- package/node_modules/npm-packlist/README.md +30 -45
- package/node_modules/npm-packlist/lib/index.js +47 -115
- package/node_modules/npm-packlist/package.json +8 -10
- package/node_modules/npm-pick-manifest/package.json +19 -15
- package/node_modules/npm-registry-fetch/lib/errors.js +3 -8
- package/node_modules/npm-registry-fetch/package.json +12 -12
- package/node_modules/pacote/lib/dir.js +5 -60
- package/node_modules/pacote/lib/fetcher.js +0 -4
- package/node_modules/pacote/lib/git.js +3 -11
- package/node_modules/pacote/lib/util/add-git-sha.js +1 -1
- package/node_modules/pacote/package.json +18 -19
- package/node_modules/parse-conflict-json/package.json +6 -6
- package/node_modules/proc-log/package.json +4 -4
- package/node_modules/read-cmd-shim/lib/index.js +1 -1
- package/node_modules/read-cmd-shim/package.json +18 -14
- package/node_modules/sigstore/README.md +1 -1
- package/node_modules/sigstore/package.json +10 -10
- package/node_modules/socks-proxy-agent/dist/index.d.ts +3 -1
- package/node_modules/socks-proxy-agent/dist/index.d.ts.map +1 -1
- package/node_modules/socks-proxy-agent/dist/index.js +43 -17
- package/node_modules/socks-proxy-agent/dist/index.js.map +1 -1
- package/node_modules/socks-proxy-agent/package.json +15 -15
- package/node_modules/ssri/package.json +4 -4
- package/node_modules/tuf-js/dist/config.d.ts +2 -2
- package/node_modules/tuf-js/dist/fetcher.d.ts +4 -4
- package/node_modules/tuf-js/dist/fetcher.js +16 -55
- package/node_modules/tuf-js/dist/updater.js +2 -2
- package/node_modules/tuf-js/package.json +8 -8
- package/node_modules/undici/README.md +72 -405
- package/node_modules/undici/docs/docs/api/Agent.md +41 -252
- package/node_modules/undici/docs/docs/api/BalancedPool.md +48 -246
- package/node_modules/undici/docs/docs/api/CacheStorage.md +13 -171
- package/node_modules/undici/docs/docs/api/Client.md +139 -395
- package/node_modules/undici/docs/docs/api/Connector.md +35 -118
- package/node_modules/undici/docs/docs/api/ContentType.md +25 -65
- package/node_modules/undici/docs/docs/api/Cookies.md +47 -125
- package/node_modules/undici/docs/docs/api/Debug.md +31 -47
- package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +97 -409
- package/node_modules/undici/docs/docs/api/DispatchInterceptor.md +60 -0
- package/node_modules/undici/docs/docs/api/Dispatcher.md +1011 -500
- package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +96 -105
- package/node_modules/undici/docs/docs/api/Errors.md +28 -528
- package/node_modules/undici/docs/docs/api/EventSource.md +13 -326
- package/node_modules/undici/docs/docs/api/Fetch.md +24 -693
- package/node_modules/undici/docs/docs/api/MockAgent.md +264 -346
- package/node_modules/undici/docs/docs/api/MockClient.md +31 -153
- package/node_modules/undici/docs/docs/api/MockErrors.md +5 -56
- package/node_modules/undici/docs/docs/api/MockPool.md +253 -324
- package/node_modules/undici/docs/docs/api/Pool.md +41 -235
- package/node_modules/undici/docs/docs/api/PoolStats.md +13 -119
- package/node_modules/undici/docs/docs/api/ProxyAgent.md +81 -198
- package/node_modules/undici/docs/docs/api/RedirectHandler.md +58 -238
- package/node_modules/undici/docs/docs/api/RetryAgent.md +28 -119
- package/node_modules/undici/docs/docs/api/RetryHandler.md +78 -161
- package/node_modules/undici/docs/docs/api/Util.md +11 -68
- package/node_modules/undici/docs/docs/api/WebSocket.md +24 -509
- package/node_modules/undici/docs/docs/api/api-lifecycle.md +33 -101
- package/node_modules/undici/docs/docs/best-practices/client-certificate.md +0 -2
- package/node_modules/undici/docs/docs/best-practices/mocking-request.md +2 -58
- package/node_modules/undici/docs/docs/best-practices/proxy.md +1 -3
- package/node_modules/undici/docs/docs/best-practices/writing-tests.md +0 -45
- package/node_modules/undici/index-fetch.js +4 -34
- package/node_modules/undici/index.d.ts +1 -1
- package/node_modules/undici/index.js +20 -87
- package/node_modules/undici/lib/api/abort-signal.js +0 -2
- package/node_modules/undici/lib/api/api-connect.js +11 -15
- package/node_modules/undici/lib/api/api-pipeline.js +19 -33
- package/node_modules/undici/lib/api/api-request.js +59 -89
- package/node_modules/undici/lib/api/api-stream.js +64 -114
- package/node_modules/undici/lib/api/api-upgrade.js +13 -26
- package/node_modules/undici/lib/api/readable.js +87 -317
- package/node_modules/undici/lib/api/util.js +93 -0
- package/node_modules/undici/lib/core/connect.js +125 -77
- package/node_modules/undici/lib/core/constants.js +9 -11
- package/node_modules/undici/lib/core/diagnostics.js +129 -154
- package/node_modules/undici/lib/core/errors.js +50 -122
- package/node_modules/undici/lib/core/request.js +87 -172
- package/node_modules/undici/lib/core/symbols.js +2 -14
- package/node_modules/undici/lib/core/tree.js +2 -10
- package/node_modules/undici/lib/core/util.js +190 -481
- package/node_modules/undici/lib/dispatcher/agent.js +35 -83
- package/node_modules/undici/lib/dispatcher/balanced-pool.js +38 -46
- package/node_modules/undici/lib/dispatcher/client-h1.js +199 -492
- package/node_modules/undici/lib/dispatcher/client-h2.js +380 -1409
- package/node_modules/undici/lib/dispatcher/client.js +130 -253
- package/node_modules/undici/lib/dispatcher/dispatcher-base.js +52 -50
- package/node_modules/undici/lib/dispatcher/dispatcher.js +24 -17
- package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +45 -75
- package/node_modules/undici/lib/dispatcher/fixed-queue.js +50 -68
- package/node_modules/undici/lib/dispatcher/pool-base.js +54 -153
- package/node_modules/undici/lib/dispatcher/pool-stats.js +34 -0
- package/node_modules/undici/lib/dispatcher/pool.js +16 -135
- package/node_modules/undici/lib/dispatcher/proxy-agent.js +41 -175
- package/node_modules/undici/lib/dispatcher/retry-agent.js +0 -3
- package/node_modules/undici/lib/global.js +9 -59
- package/node_modules/undici/lib/handler/decorator-handler.js +15 -43
- package/node_modules/undici/lib/handler/redirect-handler.js +116 -127
- package/node_modules/undici/lib/handler/retry-handler.js +182 -398
- package/node_modules/undici/lib/interceptor/dns.js +47 -254
- package/node_modules/undici/lib/interceptor/dump.js +56 -32
- package/node_modules/undici/lib/interceptor/redirect-interceptor.js +21 -0
- package/node_modules/undici/lib/interceptor/redirect.js +14 -11
- package/node_modules/undici/lib/interceptor/response-error.js +22 -31
- package/node_modules/undici/lib/llhttp/.gitkeep +0 -0
- package/node_modules/undici/lib/llhttp/constants.js +193 -446
- package/node_modules/undici/lib/llhttp/llhttp-wasm.js +1 -11
- package/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +1 -11
- package/node_modules/undici/lib/llhttp/utils.js +12 -9
- package/node_modules/undici/lib/mock/mock-agent.js +22 -106
- package/node_modules/undici/lib/mock/mock-client.js +4 -13
- package/node_modules/undici/lib/mock/mock-errors.js +2 -3
- package/node_modules/undici/lib/mock/mock-interceptor.js +13 -33
- package/node_modules/undici/lib/mock/mock-pool.js +4 -13
- package/node_modules/undici/lib/mock/mock-symbols.js +1 -10
- package/node_modules/undici/lib/mock/mock-utils.js +51 -404
- package/node_modules/undici/lib/mock/pluralizer.js +29 -0
- package/node_modules/undici/lib/util/timers.js +9 -11
- package/node_modules/undici/lib/web/cache/cache.js +51 -63
- package/node_modules/undici/lib/web/cache/cachestorage.js +7 -13
- package/node_modules/undici/lib/web/cache/symbols.js +5 -0
- package/node_modules/undici/lib/web/cookies/index.js +18 -45
- package/node_modules/undici/lib/web/cookies/parse.js +149 -157
- package/node_modules/undici/lib/web/cookies/util.js +2 -4
- package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +9 -37
- package/node_modules/undici/lib/web/eventsource/eventsource.js +64 -108
- package/node_modules/undici/lib/web/eventsource/util.js +5 -28
- package/node_modules/undici/lib/web/fetch/body.js +148 -173
- package/node_modules/undici/lib/web/fetch/constants.js +6 -13
- package/node_modules/undici/lib/web/fetch/data-url.js +167 -19
- package/node_modules/undici/lib/web/fetch/dispatcher-weakref.js +46 -0
- package/node_modules/undici/lib/web/fetch/file.js +126 -0
- package/node_modules/undici/lib/web/fetch/formdata-parser.js +117 -229
- package/node_modules/undici/lib/web/fetch/formdata.js +65 -85
- package/node_modules/undici/lib/web/fetch/headers.js +108 -143
- package/node_modules/undici/lib/web/fetch/index.js +446 -627
- package/node_modules/undici/lib/web/fetch/request.js +115 -217
- package/node_modules/undici/lib/web/fetch/response.js +82 -110
- package/node_modules/undici/lib/web/fetch/symbols.js +9 -0
- package/node_modules/undici/lib/web/fetch/util.js +393 -291
- package/node_modules/undici/lib/web/fetch/webidl.js +695 -0
- package/node_modules/undici/lib/web/fileapi/encoding.js +290 -0
- package/node_modules/undici/lib/web/fileapi/filereader.js +344 -0
- package/node_modules/undici/lib/web/fileapi/progressevent.js +78 -0
- package/node_modules/undici/lib/web/fileapi/symbols.js +10 -0
- package/node_modules/undici/lib/web/fileapi/util.js +391 -0
- package/node_modules/undici/lib/web/websocket/connection.js +160 -139
- package/node_modules/undici/lib/web/websocket/constants.js +10 -70
- package/node_modules/undici/lib/web/websocket/events.js +30 -49
- package/node_modules/undici/lib/web/websocket/frame.js +20 -51
- package/node_modules/undici/lib/web/websocket/receiver.js +87 -83
- package/node_modules/undici/lib/web/websocket/sender.js +13 -18
- package/node_modules/undici/lib/web/websocket/symbols.js +12 -0
- package/node_modules/undici/lib/web/websocket/util.js +90 -115
- package/node_modules/undici/lib/web/websocket/websocket.js +171 -359
- package/node_modules/undici/package.json +57 -49
- package/node_modules/undici/scripts/strip-comments.js +1 -3
- package/node_modules/undici/types/agent.d.ts +13 -12
- package/node_modules/undici/types/api.d.ts +26 -26
- package/node_modules/undici/types/balanced-pool.d.ts +12 -13
- package/node_modules/undici/types/client.d.ts +39 -98
- package/node_modules/undici/types/connector.d.ts +2 -5
- package/node_modules/undici/types/cookies.d.ts +1 -3
- package/node_modules/undici/types/diagnostics-channel.d.ts +11 -20
- package/node_modules/undici/types/dispatcher.d.ts +139 -136
- package/node_modules/undici/types/env-http-proxy-agent.d.ts +3 -4
- package/node_modules/undici/types/errors.d.ts +54 -86
- package/node_modules/undici/types/eventsource.d.ts +4 -9
- package/node_modules/undici/types/fetch.d.ts +25 -51
- package/node_modules/undici/types/file.d.ts +39 -0
- package/node_modules/undici/types/filereader.d.ts +54 -0
- package/node_modules/undici/types/formdata.d.ts +7 -7
- package/node_modules/undici/types/global-dispatcher.d.ts +4 -4
- package/node_modules/undici/types/global-origin.d.ts +5 -5
- package/node_modules/undici/types/handlers.d.ts +9 -10
- package/node_modules/undici/types/header.d.ts +1 -162
- package/node_modules/undici/types/index.d.ts +47 -69
- package/node_modules/undici/types/interceptors.d.ts +12 -62
- package/node_modules/undici/types/mock-agent.d.ts +27 -46
- package/node_modules/undici/types/mock-client.d.ts +4 -6
- package/node_modules/undici/types/mock-errors.d.ts +3 -3
- package/node_modules/undici/types/mock-interceptor.d.ts +21 -26
- package/node_modules/undici/types/mock-pool.d.ts +4 -6
- package/node_modules/undici/types/patch.d.ts +4 -0
- package/node_modules/undici/types/pool-stats.d.ts +8 -8
- package/node_modules/undici/types/pool.d.ts +14 -14
- package/node_modules/undici/types/proxy-agent.d.ts +6 -13
- package/node_modules/undici/types/readable.d.ts +16 -19
- package/node_modules/undici/types/retry-agent.d.ts +1 -1
- package/node_modules/undici/types/retry-handler.d.ts +9 -18
- package/node_modules/undici/types/util.d.ts +3 -3
- package/node_modules/undici/types/webidl.d.ts +32 -156
- package/node_modules/undici/types/websocket.d.ts +10 -48
- package/node_modules/validate-npm-package-name/package.json +4 -4
- package/node_modules/which/package.json +4 -4
- package/node_modules/write-file-atomic/package.json +4 -4
- package/package.json +56 -60
- package/node_modules/@npmcli/arborist/lib/npm-extension.js +0 -237
- package/node_modules/@npmcli/arborist/lib/package-extensions.js +0 -236
- package/node_modules/@npmcli/arborist/lib/patch.js +0 -111
- package/node_modules/@npmcli/arborist/lib/patched-dependencies.js +0 -168
- package/node_modules/cacache/lib/util/cache-dir.js +0 -29
- package/node_modules/diff/CONTRIBUTING.md +0 -28
- package/node_modules/diff/LICENSE +0 -29
- package/node_modules/diff/README.md +0 -388
- package/node_modules/diff/dist/diff.js +0 -1782
- package/node_modules/diff/dist/diff.min.js +0 -1
- package/node_modules/diff/eslint.config.mjs +0 -182
- package/node_modules/diff/libcjs/convert/dmp.d.ts +0 -8
- package/node_modules/diff/libcjs/convert/dmp.d.ts.map +0 -1
- package/node_modules/diff/libcjs/convert/dmp.js +0 -24
- package/node_modules/diff/libcjs/convert/xml.d.ts +0 -6
- package/node_modules/diff/libcjs/convert/xml.d.ts.map +0 -1
- package/node_modules/diff/libcjs/convert/xml.js +0 -34
- package/node_modules/diff/libcjs/diff/array.d.ts +0 -19
- package/node_modules/diff/libcjs/diff/array.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/array.js +0 -40
- package/node_modules/diff/libcjs/diff/base.d.ts +0 -20
- package/node_modules/diff/libcjs/diff/base.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/base.js +0 -265
- package/node_modules/diff/libcjs/diff/character.d.ts +0 -19
- package/node_modules/diff/libcjs/diff/character.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/character.js +0 -31
- package/node_modules/diff/libcjs/diff/css.d.ts +0 -18
- package/node_modules/diff/libcjs/diff/css.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/css.js +0 -34
- package/node_modules/diff/libcjs/diff/json.d.ts +0 -24
- package/node_modules/diff/libcjs/diff/json.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/json.js +0 -105
- package/node_modules/diff/libcjs/diff/line.d.ts +0 -24
- package/node_modules/diff/libcjs/diff/line.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/line.js +0 -89
- package/node_modules/diff/libcjs/diff/sentence.d.ts +0 -21
- package/node_modules/diff/libcjs/diff/sentence.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/sentence.js +0 -67
- package/node_modules/diff/libcjs/diff/word.d.ts +0 -35
- package/node_modules/diff/libcjs/diff/word.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/word.js +0 -312
- package/node_modules/diff/libcjs/index.d.ts +0 -20
- package/node_modules/diff/libcjs/index.d.ts.map +0 -1
- package/node_modules/diff/libcjs/index.js +0 -64
- package/node_modules/diff/libcjs/package.json +0 -1
- package/node_modules/diff/libcjs/patch/apply.d.ts +0 -62
- package/node_modules/diff/libcjs/patch/apply.d.ts.map +0 -1
- package/node_modules/diff/libcjs/patch/apply.js +0 -267
- package/node_modules/diff/libcjs/patch/create.d.ts +0 -122
- package/node_modules/diff/libcjs/patch/create.d.ts.map +0 -1
- package/node_modules/diff/libcjs/patch/create.js +0 -251
- package/node_modules/diff/libcjs/patch/line-endings.d.ts +0 -17
- package/node_modules/diff/libcjs/patch/line-endings.d.ts.map +0 -1
- package/node_modules/diff/libcjs/patch/line-endings.js +0 -61
- package/node_modules/diff/libcjs/patch/parse.d.ts +0 -8
- package/node_modules/diff/libcjs/patch/parse.d.ts.map +0 -1
- package/node_modules/diff/libcjs/patch/parse.js +0 -150
- package/node_modules/diff/libcjs/patch/reverse.d.ts +0 -9
- package/node_modules/diff/libcjs/patch/reverse.d.ts.map +0 -1
- package/node_modules/diff/libcjs/patch/reverse.js +0 -37
- package/node_modules/diff/libcjs/types.d.ts +0 -213
- package/node_modules/diff/libcjs/types.d.ts.map +0 -1
- package/node_modules/diff/libcjs/types.js +0 -2
- package/node_modules/diff/libcjs/util/array.d.ts +0 -3
- package/node_modules/diff/libcjs/util/array.d.ts.map +0 -1
- package/node_modules/diff/libcjs/util/array.js +0 -21
- package/node_modules/diff/libcjs/util/distance-iterator.d.ts +0 -2
- package/node_modules/diff/libcjs/util/distance-iterator.d.ts.map +0 -1
- package/node_modules/diff/libcjs/util/distance-iterator.js +0 -40
- package/node_modules/diff/libcjs/util/params.d.ts +0 -4
- package/node_modules/diff/libcjs/util/params.d.ts.map +0 -1
- package/node_modules/diff/libcjs/util/params.js +0 -17
- package/node_modules/diff/libcjs/util/string.d.ts +0 -30
- package/node_modules/diff/libcjs/util/string.d.ts.map +0 -1
- package/node_modules/diff/libcjs/util/string.js +0 -200
- package/node_modules/diff/libesm/convert/dmp.d.ts +0 -8
- package/node_modules/diff/libesm/convert/dmp.d.ts.map +0 -1
- package/node_modules/diff/libesm/convert/dmp.js +0 -21
- package/node_modules/diff/libesm/convert/xml.d.ts +0 -6
- package/node_modules/diff/libesm/convert/xml.d.ts.map +0 -1
- package/node_modules/diff/libesm/convert/xml.js +0 -31
- package/node_modules/diff/libesm/diff/array.d.ts +0 -19
- package/node_modules/diff/libesm/diff/array.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/array.js +0 -16
- package/node_modules/diff/libesm/diff/base.d.ts +0 -20
- package/node_modules/diff/libesm/diff/base.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/base.js +0 -253
- package/node_modules/diff/libesm/diff/character.d.ts +0 -19
- package/node_modules/diff/libesm/diff/character.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/character.js +0 -7
- package/node_modules/diff/libesm/diff/css.d.ts +0 -18
- package/node_modules/diff/libesm/diff/css.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/css.js +0 -10
- package/node_modules/diff/libesm/diff/json.d.ts +0 -24
- package/node_modules/diff/libesm/diff/json.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/json.js +0 -78
- package/node_modules/diff/libesm/diff/line.d.ts +0 -24
- package/node_modules/diff/libesm/diff/line.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/line.js +0 -65
- package/node_modules/diff/libesm/diff/sentence.d.ts +0 -21
- package/node_modules/diff/libesm/diff/sentence.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/sentence.js +0 -43
- package/node_modules/diff/libesm/diff/word.d.ts +0 -35
- package/node_modules/diff/libesm/diff/word.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/word.js +0 -281
- package/node_modules/diff/libesm/index.d.ts +0 -20
- package/node_modules/diff/libesm/index.d.ts.map +0 -1
- package/node_modules/diff/libesm/index.js +0 -30
- package/node_modules/diff/libesm/package.json +0 -1
- package/node_modules/diff/libesm/patch/apply.d.ts +0 -62
- package/node_modules/diff/libesm/patch/apply.d.ts.map +0 -1
- package/node_modules/diff/libesm/patch/apply.js +0 -257
- package/node_modules/diff/libesm/patch/create.d.ts +0 -122
- package/node_modules/diff/libesm/patch/create.d.ts.map +0 -1
- package/node_modules/diff/libesm/patch/create.js +0 -228
- package/node_modules/diff/libesm/patch/line-endings.d.ts +0 -17
- package/node_modules/diff/libesm/patch/line-endings.d.ts.map +0 -1
- package/node_modules/diff/libesm/patch/line-endings.js +0 -44
- package/node_modules/diff/libesm/patch/parse.d.ts +0 -8
- package/node_modules/diff/libesm/patch/parse.d.ts.map +0 -1
- package/node_modules/diff/libesm/patch/parse.js +0 -147
- package/node_modules/diff/libesm/patch/reverse.d.ts +0 -9
- package/node_modules/diff/libesm/patch/reverse.d.ts.map +0 -1
- package/node_modules/diff/libesm/patch/reverse.js +0 -23
- package/node_modules/diff/libesm/types.d.ts +0 -213
- package/node_modules/diff/libesm/types.d.ts.map +0 -1
- package/node_modules/diff/libesm/types.js +0 -1
- package/node_modules/diff/libesm/util/array.d.ts +0 -3
- package/node_modules/diff/libesm/util/array.d.ts.map +0 -1
- package/node_modules/diff/libesm/util/array.js +0 -17
- package/node_modules/diff/libesm/util/distance-iterator.d.ts +0 -2
- package/node_modules/diff/libesm/util/distance-iterator.d.ts.map +0 -1
- package/node_modules/diff/libesm/util/distance-iterator.js +0 -37
- package/node_modules/diff/libesm/util/params.d.ts +0 -4
- package/node_modules/diff/libesm/util/params.d.ts.map +0 -1
- package/node_modules/diff/libesm/util/params.js +0 -14
- package/node_modules/diff/libesm/util/string.d.ts +0 -30
- package/node_modules/diff/libesm/util/string.d.ts.map +0 -1
- package/node_modules/diff/libesm/util/string.js +0 -184
- package/node_modules/diff/package.json +0 -130
- package/node_modules/diff/release-notes.md +0 -432
- package/node_modules/node-gyp/commitlint.config.mjs +0 -3
- package/node_modules/node-gyp/gyp/commitlint.config.js +0 -6
- package/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake_test.py +0 -105
- package/node_modules/node-gyp/zizmor.yml +0 -5
- package/node_modules/proxy-agent-negotiate/dist/index.d.ts +0 -14
- package/node_modules/proxy-agent-negotiate/dist/index.d.ts.map +0 -1
- package/node_modules/proxy-agent-negotiate/dist/index.js +0 -35
- package/node_modules/proxy-agent-negotiate/dist/index.js.map +0 -1
- package/node_modules/proxy-agent-negotiate/package.json +0 -47
- package/node_modules/undici/docs/docs/api/CacheStore.md +0 -360
- package/node_modules/undici/docs/docs/api/ClientStats.md +0 -93
- package/node_modules/undici/docs/docs/api/GlobalInstallation.md +0 -121
- package/node_modules/undici/docs/docs/api/H2CClient.md +0 -385
- package/node_modules/undici/docs/docs/api/Interceptors.md +0 -419
- package/node_modules/undici/docs/docs/api/MockCallHistory.md +0 -371
- package/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +0 -206
- package/node_modules/undici/docs/docs/api/RoundRobinPool.md +0 -239
- package/node_modules/undici/docs/docs/api/SnapshotAgent.md +0 -361
- package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +0 -256
- package/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +0 -233
- package/node_modules/undici/docs/docs/getting-started.md +0 -281
- package/node_modules/undici/docs/docs/site.json +0 -125
- package/node_modules/undici/docs/docs/type-map.json +0 -79
- package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +0 -110
- package/node_modules/undici/types/dispatcher1-wrapper.d.ts +0 -7
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/core/socks5-client.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/core/socks5-utils.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/encoding/index.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/llhttp/constants.d.ts +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/llhttp/utils.d.ts +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/mock/snapshot-utils.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/util/date.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/util/stats.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/subresource-integrity/Readme.md +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/subresource-integrity/subresource-integrity.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/cache-interceptor.d.ts +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/client-stats.d.ts +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/mock-call-history.d.ts +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/utility.d.ts +0 -0
package/README.md
CHANGED
|
@@ -4,22 +4,22 @@
|
|
|
4
4
|
|
|
5
5
|
目标是提供轻量、可扩展的工作流工具:用户查看可用能力与现成工作流,将它们加入列表、填写输入、设置条件、选择输出并运行;也能将选定工作流及其依赖打包成可离线运行的 Windows 或 Linux 分发包。Linux 包可挂载到兼容的 Linux 容器内运行。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
TUI 是主要交互入口,支持选择能力、配置参数和流程编排。CLI 保留必要的直接运行、自动化、打包和故障恢复命令,不要求每个界面操作都另配一套命令;官方 Web 插件按使用需求提供浏览器入口。各入口共用应用服务。YAML、依赖锁和版本解析由系统维护,不要求普通用户手写。
|
|
8
8
|
|
|
9
|
-
0.
|
|
9
|
+
0.6.0 新增有效参数及继承来源预览、业务报告与表格展示、统一受管执行和参数脱敏选项,并修复故障插件恢复、坏工作流诊断、文件补全阻塞及子流程预检。`!` 系统命令透传、常用命令注册、中文快捷名称和 Shift+Enter 多行输入继续可用。发布与验证状态见 [版本记录](manual/docs/releases.md) 和 [验收记录](manual/docs/verification.md)。
|
|
10
10
|
|
|
11
11
|
插件接入层使用 JavaScript/TypeScript,通过通用进程接口调用 Python 脚本和系统命令。首款官方插件负责 Python/pip、NPU 与系统环境检查,使用与第三方插件相同的公开接口,按工作流依赖选入分发包。插件声明 Python 等环境使用宿主机还是自带资源;环境检查与业务兼容性由插件作者负责。包内始终携带编排器所需的 Node,完整便携包也携带 npm。
|
|
12
12
|
|
|
13
13
|
## npm 安装与启动(Windows / Linux)
|
|
14
14
|
|
|
15
|
-
安装端需要 Node.js 24.
|
|
15
|
+
安装端需要 Node.js **22.22.2+(22 系列)或 24.0.0+**,以及 npm。已发布版本可从 npm 安装:
|
|
16
16
|
|
|
17
17
|
```sh
|
|
18
18
|
npm install -g @yanglaofish/fishtools
|
|
19
19
|
fst
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
也可从 GitHub Release 下载当前版本的 `.tgz` 后执行 `npm install -g ./yanglaofish-fishtools-0.5.
|
|
22
|
+
也可从 GitHub Release 下载当前版本的 `.tgz` 后执行 `npm install -g ./yanglaofish-fishtools-0.5.3.tgz`。没有 Node/npm 的机器使用 Release 中的 Windows `.zip` 或 Linux `.tar.gz` 自包含包,解压后运行 `fst.cmd` 或 `./fst`。发布结果以 [GitHub Releases](https://github.com/yanglaofish/Fishtools/releases) 为准;当前仓库为私有,下载附件需要仓库访问权限。
|
|
23
23
|
|
|
24
24
|
`fst` 在交互终端里启动终端工作台(TUI);`fst web` 启动 Web 并打印访问地址;`fst run hello` 直接执行工作流。首次使用在 `~/.fishtools` 创建工作区,也可通过 `FISHTOOLS_HOME` 指定。安装包已包含官方插件、页面和生产依赖,不需要源码仓库或前端构建。
|
|
25
25
|
|
|
@@ -45,13 +45,21 @@ fst --project ./my-project pack hello --target linux-x64-glibc --web
|
|
|
45
45
|
|
|
46
46
|
首页展示 FISHtools 字符标识、欢迎介绍、当前工作区以及插件和工作流数量;小窗口自动使用紧凑标题。首次使用可以输入 `/run hello`,按提示输入文本(也可保留默认值),体验“转为大写 → 追加标记 → 保存文件”。运行过程与输入输出留在主面板,期间仍可打开配置或执行其他工作流。PgUp/PgDn 或鼠标滚轮浏览会话中的过程,向下翻至末尾恢复跟随。首页只推荐当前工作区实际存在的工作流;空工作区从 `/workflows` 新建。
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
顶部的“位置”显示主面板或当前操作入口,菜单标题显示正在操作的对象。提交的命令、反馈与运行结果自动保存在所属工作区;返回菜单不会清空执行过程。`/history` 可恢复旧会话并继续输入,也可分页查看完整交互记录;恢复不会重新执行旧命令或覆盖旧会话。若已有插件或快捷名使用 `history`,从 `/tools` → 历史会话进入。
|
|
49
49
|
|
|
50
50
|
主面板查看当前执行,`/logs` 回看某次执行的步骤状态、输入输出和日志,也能重新打开正在运行的任务详情。查看记录不会重新执行工作流。旧 `/runs` 和 F4 仅作为兼容方式转到同一个 `/logs` 入口,不再提供独立列表。
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
`/logs` 标明每次执行属于工作流、插件动作、插件命令或系统命令,以及本次或历史启动。可以按本次启动或调用类型筛选,先显示最近 20 条,再按需显示更多。一个工作流的子流程和内部步骤放在同一条记录中。
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
插件生成的业务文件放在工作区可见的 `results/运行ID/`,日志放在 `.flow/runs/运行ID/`;两者隔离,业务文件即使叫 `result.json` 也不会被内核运行记录覆盖。指定 `--output 目录` 时,该目录仍保存日志,业务文件在其 `files/运行ID/`。TUI 显示实际生成文件的目录,日志保留设置不会删除业务结果,历史文件仍在原位置。
|
|
55
|
+
|
|
56
|
+
普通 CLI/TUI 的 `plugin add` 与 `plugin link` 默认登记到用户级 `~/.fishtools/plugins`(设置 `FISHTOOLS_HOME` 时为其 `plugins` 子目录),安装一次,各工作区可用。各工作区单独保存工作流、插件参数和代理规则;未填写必填配置的插件显示“待配置”,其他插件仍可使用。旧工作区安装兼容读取,同名全局版本优先。全局卸载检查已登记工作区的工作流引用;其他已运行进程保留自己的代码,重启后读取新状态。离线分发包继续使用包内快照及自身可写工作区。
|
|
57
|
+
|
|
58
|
+
主面板默认显示步骤状态、输入及实际执行指令;业务报告、表格、分组和插件 `print()` 的提示缩进展示。步骤旁提示 **Ctrl+O 展开原始输出与诊断**,包括系统命令的 stdout/stderr。`runProcess` 记录程序路径、参数、执行目录及可用的原始命令,敏感参数需由插件显式声明脱敏策略;内核无法观察绕过受管接口执行的任意代码或文件访问。详情及 `m` 格式化阅读保留完整报告。主面板和运行总览显示总耗时,运行中实时更新,结束后固定。平台声明不匹配也会直接在 TUI 中提示。
|
|
59
|
+
|
|
60
|
+
主输入框用 **↑ / ↓** 回看已提交的命令,向下回到底部恢复未提交草稿。补全菜单打开时,方向键仍选择候选;配置表单内容不进入命令历史。恢复会话同时恢复最近 100 条、合计不超过 256 KiB 的输入,相邻重复命令合并;更长和更早的输入仍在完整交互记录中。未提交草稿不保存。
|
|
61
|
+
|
|
62
|
+
会话保存在 `.flow/sessions/`;只读包使用可写日志目录的 `sessions/` 子目录。追加日志保存命令和反馈,快照保存有界近期面板,较大运行结果通过 `/logs` 读取原始记录;运行日志仍遵循用户设置的保留策略。会话使用本地 UTF-8 文件,首版不加密、不压缩,也不自动删除旧会话。
|
|
55
63
|
|
|
56
64
|
`/plugin` 直接列出当前已加载的插件名称、版本和状态。上下选择后可查看用途、编排能力、输入输出、环境声明及斜杠命令;有配置的插件提供配置入口,自行安装的插件提供移除入口。内置插件标明来源,避免误以为没有安装。`/help` 在终端内提供可翻页的用法说明。顶层补全标明 `[内置]` 或 `[插件]`,插件能力收进插件名入口的二级菜单。
|
|
57
65
|
|
|
@@ -60,13 +68,16 @@ fst --project ./my-project pack hello --target linux-x64-glibc --web
|
|
|
60
68
|
| `/workflows` | 浏览、新建;进入某个流程后添加/编辑步骤、设置输出、保存、运行或删除 |
|
|
61
69
|
| `/run 工作流ID` | 可按 ID 或中文标题补全,填写参数后执行已保存版本;只输入 `/run` 打开已保存工作流列表 |
|
|
62
70
|
| `/logs` | 回看执行记录,运行中的任务优先;可切换总览、输入输出与日志,支持键盘或鼠标滚轮阅读 |
|
|
71
|
+
| `/history` | 恢复旧 TUI 会话的输入、反馈和结果,或分页查看完整交互 |
|
|
63
72
|
| `/plugin` | 浏览已安装插件、用途及能力,进入插件配置、安装和移除操作 |
|
|
64
73
|
| `/pack` | 勾选工作流并选择目标平台打包 |
|
|
65
74
|
| `/config` | 配置 Fishtools:查看工作区信息,设置日志保留次数和代理规则 |
|
|
66
|
-
| `/tools` |
|
|
75
|
+
| `/tools` | 历史会话、启动 Web 或阅读离线资料 |
|
|
67
76
|
| `/help`、`/exit` | 查看帮助、退出 |
|
|
68
77
|
|
|
69
|
-
旧 `/new`、`/add`、`/steps`、`/outputs`、`/save`、`/plugins`、`/docs`、`/web` 和 `/runs`
|
|
78
|
+
旧 `/new`、`/add`、`/steps`、`/outputs`、`/save`、`/plugins`、`/docs`、`/web` 和 `/runs` 仍可直接输入,顶层补全主要呈现上表的对象入口。有实际未保存修改时,工作流编辑菜单返回会保留草稿,切换流程或退出会确认是否放弃。查看后原样完成、修改后还原为已保存值不会产生草稿提示。
|
|
79
|
+
|
|
80
|
+
删除时提供“备份后删除、直接删除、取消”,默认选择取消。备份后删除将已保存文件移入 `.flow/deleted-workflows/工作流ID-编号.yaml`;恢复时将备份复制回 `workflows/原工作流ID.yaml`,先确认同名文件不存在。直接删除不创建本次删除的备份;仍被其他流程引用时,两种删除方式都拒绝执行。
|
|
70
81
|
|
|
71
82
|
`/run` 不要求保存当前编辑草稿,也不会丢弃它。要运行尚未保存的修改,请在 `/workflows` 的编辑菜单选择“运行工作流”,再选择“保存并运行”;已有磁盘版本时也可选择“运行已保存版本”并保留草稿。“返回编辑”会留在当前工作流,不会反复弹出保存确认。只查看参数或拒绝删除步骤不会产生未保存修改。
|
|
72
83
|
|
|
@@ -107,10 +118,11 @@ outputs:
|
|
|
107
118
|
| `f` | 切换日志跟随 |
|
|
108
119
|
| Enter | 在总览中查看所选步骤详情,不退出面板 |
|
|
109
120
|
| `j` | 在易读字段与原始 JSON 诊断之间切换 |
|
|
121
|
+
| `m` | 单独格式化阅读输出;插件标注的 Markdown 结果按 Markdown 呈现 |
|
|
110
122
|
| Esc、q、Ctrl+C | 返回上一级,运行中的任务继续;输入 `/logs` 可重新打开 |
|
|
111
|
-
| `x`,再按 `y` |
|
|
123
|
+
| `x`,再按 `y` | 任务仍在运行时,确认取消整个运行 |
|
|
112
124
|
|
|
113
|
-
运行记录同时列出正在执行和保留的历史记录,运行中任务优先;同一个工作流的多次执行分别显示时间和记录编号。查看详情后返回列表,可以继续选择另一次执行。本次启动期间每次运行分别保存阅读位置;重启后可通过 `/logs`
|
|
125
|
+
运行记录同时列出正在执行和保留的历史记录,运行中任务优先;同一个工作流的多次执行分别显示时间和记录编号。查看详情后返回列表,可以继续选择另一次执行。本次启动期间每次运行分别保存阅读位置;重启后可通过 `/logs` 查看保存的运行,`/history` 恢复旧主面板。上次退出时仍在运行且缺少最终记录的任务会明确显示“未记录最终状态”。日志保留设置在 `/config`。主提示符 `/exit` 或 Ctrl+C 遇到后台任务时,会说明退出将取消任务并请求确认,默认不退出。
|
|
114
126
|
|
|
115
127
|
插件可以注册自己的命令:官方示例的 `/examples` 入口包含文本转大写与交互文本输入,`/environment` 入口包含环境检查与报告。原 `/text.upper`、`/text.ask`、`/env.check`、`/env.report` 仍可直接调用。`check` 在环境未通过时抛错;`report` 正常返回 `ok:false` 和检查明细,适合交给工作流条件判断。安装或移除插件会同步刷新 `/` 菜单;命令和工作流共用日志、取消和结果机制。
|
|
116
128
|
|
|
@@ -135,7 +147,7 @@ outputs:
|
|
|
135
147
|
|
|
136
148
|
### 常规源码启动
|
|
137
149
|
|
|
138
|
-
开发机器安装 **Node.js 24.
|
|
150
|
+
开发机器安装 **Node.js 22.22.2+(22 系列)或 24.0.0+** 和 npm,在仓库根目录执行;便携包自带的固定 Node 仍为 24.15.0:
|
|
139
151
|
|
|
140
152
|
```sh
|
|
141
153
|
npm ci
|
package/manual/README.md
CHANGED
|
@@ -4,22 +4,22 @@
|
|
|
4
4
|
|
|
5
5
|
目标是提供轻量、可扩展的工作流工具:用户查看可用能力与现成工作流,将它们加入列表、填写输入、设置条件、选择输出并运行;也能将选定工作流及其依赖打包成可离线运行的 Windows 或 Linux 分发包。Linux 包可挂载到兼容的 Linux 容器内运行。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
TUI 是主要交互入口,支持选择能力、配置参数和流程编排。CLI 保留必要的直接运行、自动化、打包和故障恢复命令,不要求每个界面操作都另配一套命令;官方 Web 插件按使用需求提供浏览器入口。各入口共用应用服务。YAML、依赖锁和版本解析由系统维护,不要求普通用户手写。
|
|
8
8
|
|
|
9
|
-
0.
|
|
9
|
+
0.6.0 新增有效参数及继承来源预览、业务报告与表格展示、统一受管执行和参数脱敏选项,并修复故障插件恢复、坏工作流诊断、文件补全阻塞及子流程预检。`!` 系统命令透传、常用命令注册、中文快捷名称和 Shift+Enter 多行输入继续可用。发布与验证状态见 [版本记录](docs/releases.md) 和 [验收记录](docs/verification.md)。
|
|
10
10
|
|
|
11
11
|
插件接入层使用 JavaScript/TypeScript,通过通用进程接口调用 Python 脚本和系统命令。首款官方插件负责 Python/pip、NPU 与系统环境检查,使用与第三方插件相同的公开接口,按工作流依赖选入分发包。插件声明 Python 等环境使用宿主机还是自带资源;环境检查与业务兼容性由插件作者负责。包内始终携带编排器所需的 Node,完整便携包也携带 npm。
|
|
12
12
|
|
|
13
13
|
## npm 安装与启动(Windows / Linux)
|
|
14
14
|
|
|
15
|
-
安装端需要 Node.js 24.
|
|
15
|
+
安装端需要 Node.js **22.22.2+(22 系列)或 24.0.0+**,以及 npm。已发布版本可从 npm 安装:
|
|
16
16
|
|
|
17
17
|
```sh
|
|
18
18
|
npm install -g @yanglaofish/fishtools
|
|
19
19
|
fst
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
也可从 GitHub Release 下载当前版本的 `.tgz` 后执行 `npm install -g ./yanglaofish-fishtools-0.5.
|
|
22
|
+
也可从 GitHub Release 下载当前版本的 `.tgz` 后执行 `npm install -g ./yanglaofish-fishtools-0.5.3.tgz`。没有 Node/npm 的机器使用 Release 中的 Windows `.zip` 或 Linux `.tar.gz` 自包含包,解压后运行 `fst.cmd` 或 `./fst`。发布结果以 [GitHub Releases](https://github.com/yanglaofish/Fishtools/releases) 为准;当前仓库为私有,下载附件需要仓库访问权限。
|
|
23
23
|
|
|
24
24
|
`fst` 在交互终端里启动终端工作台(TUI);`fst web` 启动 Web 并打印访问地址;`fst run hello` 直接执行工作流。首次使用在 `~/.fishtools` 创建工作区,也可通过 `FISHTOOLS_HOME` 指定。安装包已包含官方插件、页面和生产依赖,不需要源码仓库或前端构建。
|
|
25
25
|
|
|
@@ -45,13 +45,21 @@ fst --project ./my-project pack hello --target linux-x64-glibc --web
|
|
|
45
45
|
|
|
46
46
|
首页展示 FISHtools 字符标识、欢迎介绍、当前工作区以及插件和工作流数量;小窗口自动使用紧凑标题。首次使用可以输入 `/run hello`,按提示输入文本(也可保留默认值),体验“转为大写 → 追加标记 → 保存文件”。运行过程与输入输出留在主面板,期间仍可打开配置或执行其他工作流。PgUp/PgDn 或鼠标滚轮浏览会话中的过程,向下翻至末尾恢复跟随。首页只推荐当前工作区实际存在的工作流;空工作区从 `/workflows` 新建。
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
顶部的“位置”显示主面板或当前操作入口,菜单标题显示正在操作的对象。提交的命令、反馈与运行结果自动保存在所属工作区;返回菜单不会清空执行过程。`/history` 可恢复旧会话并继续输入,也可分页查看完整交互记录;恢复不会重新执行旧命令或覆盖旧会话。若已有插件或快捷名使用 `history`,从 `/tools` → 历史会话进入。
|
|
49
49
|
|
|
50
50
|
主面板查看当前执行,`/logs` 回看某次执行的步骤状态、输入输出和日志,也能重新打开正在运行的任务详情。查看记录不会重新执行工作流。旧 `/runs` 和 F4 仅作为兼容方式转到同一个 `/logs` 入口,不再提供独立列表。
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
`/logs` 标明每次执行属于工作流、插件动作、插件命令或系统命令,以及本次或历史启动。可以按本次启动或调用类型筛选,先显示最近 20 条,再按需显示更多。一个工作流的子流程和内部步骤放在同一条记录中。
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
插件生成的业务文件放在工作区可见的 `results/运行ID/`,日志放在 `.flow/runs/运行ID/`;两者隔离,业务文件即使叫 `result.json` 也不会被内核运行记录覆盖。指定 `--output 目录` 时,该目录仍保存日志,业务文件在其 `files/运行ID/`。TUI 显示实际生成文件的目录,日志保留设置不会删除业务结果,历史文件仍在原位置。
|
|
55
|
+
|
|
56
|
+
普通 CLI/TUI 的 `plugin add` 与 `plugin link` 默认登记到用户级 `~/.fishtools/plugins`(设置 `FISHTOOLS_HOME` 时为其 `plugins` 子目录),安装一次,各工作区可用。各工作区单独保存工作流、插件参数和代理规则;未填写必填配置的插件显示“待配置”,其他插件仍可使用。旧工作区安装兼容读取,同名全局版本优先。全局卸载检查已登记工作区的工作流引用;其他已运行进程保留自己的代码,重启后读取新状态。离线分发包继续使用包内快照及自身可写工作区。
|
|
57
|
+
|
|
58
|
+
主面板默认显示步骤状态、输入及实际执行指令;业务报告、表格、分组和插件 `print()` 的提示缩进展示。步骤旁提示 **Ctrl+O 展开原始输出与诊断**,包括系统命令的 stdout/stderr。`runProcess` 记录程序路径、参数、执行目录及可用的原始命令,敏感参数需由插件显式声明脱敏策略;内核无法观察绕过受管接口执行的任意代码或文件访问。详情及 `m` 格式化阅读保留完整报告。主面板和运行总览显示总耗时,运行中实时更新,结束后固定。平台声明不匹配也会直接在 TUI 中提示。
|
|
59
|
+
|
|
60
|
+
主输入框用 **↑ / ↓** 回看已提交的命令,向下回到底部恢复未提交草稿。补全菜单打开时,方向键仍选择候选;配置表单内容不进入命令历史。恢复会话同时恢复最近 100 条、合计不超过 256 KiB 的输入,相邻重复命令合并;更长和更早的输入仍在完整交互记录中。未提交草稿不保存。
|
|
61
|
+
|
|
62
|
+
会话保存在 `.flow/sessions/`;只读包使用可写日志目录的 `sessions/` 子目录。追加日志保存命令和反馈,快照保存有界近期面板,较大运行结果通过 `/logs` 读取原始记录;运行日志仍遵循用户设置的保留策略。会话使用本地 UTF-8 文件,首版不加密、不压缩,也不自动删除旧会话。
|
|
55
63
|
|
|
56
64
|
`/plugin` 直接列出当前已加载的插件名称、版本和状态。上下选择后可查看用途、编排能力、输入输出、环境声明及斜杠命令;有配置的插件提供配置入口,自行安装的插件提供移除入口。内置插件标明来源,避免误以为没有安装。`/help` 在终端内提供可翻页的用法说明。顶层补全标明 `[内置]` 或 `[插件]`,插件能力收进插件名入口的二级菜单。
|
|
57
65
|
|
|
@@ -60,13 +68,16 @@ fst --project ./my-project pack hello --target linux-x64-glibc --web
|
|
|
60
68
|
| `/workflows` | 浏览、新建;进入某个流程后添加/编辑步骤、设置输出、保存、运行或删除 |
|
|
61
69
|
| `/run 工作流ID` | 可按 ID 或中文标题补全,填写参数后执行已保存版本;只输入 `/run` 打开已保存工作流列表 |
|
|
62
70
|
| `/logs` | 回看执行记录,运行中的任务优先;可切换总览、输入输出与日志,支持键盘或鼠标滚轮阅读 |
|
|
71
|
+
| `/history` | 恢复旧 TUI 会话的输入、反馈和结果,或分页查看完整交互 |
|
|
63
72
|
| `/plugin` | 浏览已安装插件、用途及能力,进入插件配置、安装和移除操作 |
|
|
64
73
|
| `/pack` | 勾选工作流并选择目标平台打包 |
|
|
65
74
|
| `/config` | 配置 Fishtools:查看工作区信息,设置日志保留次数和代理规则 |
|
|
66
|
-
| `/tools` |
|
|
75
|
+
| `/tools` | 历史会话、启动 Web 或阅读离线资料 |
|
|
67
76
|
| `/help`、`/exit` | 查看帮助、退出 |
|
|
68
77
|
|
|
69
|
-
旧 `/new`、`/add`、`/steps`、`/outputs`、`/save`、`/plugins`、`/docs`、`/web` 和 `/runs`
|
|
78
|
+
旧 `/new`、`/add`、`/steps`、`/outputs`、`/save`、`/plugins`、`/docs`、`/web` 和 `/runs` 仍可直接输入,顶层补全主要呈现上表的对象入口。有实际未保存修改时,工作流编辑菜单返回会保留草稿,切换流程或退出会确认是否放弃。查看后原样完成、修改后还原为已保存值不会产生草稿提示。
|
|
79
|
+
|
|
80
|
+
删除时提供“备份后删除、直接删除、取消”,默认选择取消。备份后删除将已保存文件移入 `.flow/deleted-workflows/工作流ID-编号.yaml`;恢复时将备份复制回 `workflows/原工作流ID.yaml`,先确认同名文件不存在。直接删除不创建本次删除的备份;仍被其他流程引用时,两种删除方式都拒绝执行。
|
|
70
81
|
|
|
71
82
|
`/run` 不要求保存当前编辑草稿,也不会丢弃它。要运行尚未保存的修改,请在 `/workflows` 的编辑菜单选择“运行工作流”,再选择“保存并运行”;已有磁盘版本时也可选择“运行已保存版本”并保留草稿。“返回编辑”会留在当前工作流,不会反复弹出保存确认。只查看参数或拒绝删除步骤不会产生未保存修改。
|
|
72
83
|
|
|
@@ -107,10 +118,11 @@ outputs:
|
|
|
107
118
|
| `f` | 切换日志跟随 |
|
|
108
119
|
| Enter | 在总览中查看所选步骤详情,不退出面板 |
|
|
109
120
|
| `j` | 在易读字段与原始 JSON 诊断之间切换 |
|
|
121
|
+
| `m` | 单独格式化阅读输出;插件标注的 Markdown 结果按 Markdown 呈现 |
|
|
110
122
|
| Esc、q、Ctrl+C | 返回上一级,运行中的任务继续;输入 `/logs` 可重新打开 |
|
|
111
|
-
| `x`,再按 `y` |
|
|
123
|
+
| `x`,再按 `y` | 任务仍在运行时,确认取消整个运行 |
|
|
112
124
|
|
|
113
|
-
运行记录同时列出正在执行和保留的历史记录,运行中任务优先;同一个工作流的多次执行分别显示时间和记录编号。查看详情后返回列表,可以继续选择另一次执行。本次启动期间每次运行分别保存阅读位置;重启后可通过 `/logs`
|
|
125
|
+
运行记录同时列出正在执行和保留的历史记录,运行中任务优先;同一个工作流的多次执行分别显示时间和记录编号。查看详情后返回列表,可以继续选择另一次执行。本次启动期间每次运行分别保存阅读位置;重启后可通过 `/logs` 查看保存的运行,`/history` 恢复旧主面板。上次退出时仍在运行且缺少最终记录的任务会明确显示“未记录最终状态”。日志保留设置在 `/config`。主提示符 `/exit` 或 Ctrl+C 遇到后台任务时,会说明退出将取消任务并请求确认,默认不退出。
|
|
114
126
|
|
|
115
127
|
插件可以注册自己的命令:官方示例的 `/examples` 入口包含文本转大写与交互文本输入,`/environment` 入口包含环境检查与报告。原 `/text.upper`、`/text.ask`、`/env.check`、`/env.report` 仍可直接调用。`check` 在环境未通过时抛错;`report` 正常返回 `ok:false` 和检查明细,适合交给工作流条件判断。安装或移除插件会同步刷新 `/` 菜单;命令和工作流共用日志、取消和结果机制。
|
|
116
128
|
|
|
@@ -135,7 +147,7 @@ outputs:
|
|
|
135
147
|
|
|
136
148
|
### 常规源码启动
|
|
137
149
|
|
|
138
|
-
开发机器安装 **Node.js 24.
|
|
150
|
+
开发机器安装 **Node.js 22.22.2+(22 系列)或 24.0.0+** 和 npm,在仓库根目录执行;便携包自带的固定 Node 仍为 24.15.0:
|
|
139
151
|
|
|
140
152
|
```sh
|
|
141
153
|
npm ci
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
## 直接在 Linux / Windows 安装 Fishtools
|
|
4
4
|
|
|
5
|
-
完整工具支持 npm 安装,目标机器需要 Node.js 24.
|
|
5
|
+
完整工具支持 npm 安装,目标机器需要 Node.js 22.22.2+(22 系列)或 24.0.0+ 和 npm:
|
|
6
6
|
|
|
7
7
|
```sh
|
|
8
|
-
npm install -g ./yanglaofish-fishtools-0.5.
|
|
8
|
+
npm install -g ./yanglaofish-fishtools-0.5.3.tgz
|
|
9
9
|
fst
|
|
10
10
|
fst run hello
|
|
11
11
|
```
|
|
@@ -14,7 +14,7 @@ fst run hello
|
|
|
14
14
|
|
|
15
15
|
默认用户工作区为 `~/.fishtools`,可用 `FISHTOOLS_HOME` 覆盖。`fst init ./project` 创建独立项目,`fst --project ./project` 打开它。数据放在工作区,升级或卸载全局 npm 包不会覆盖工作流。
|
|
16
16
|
|
|
17
|
-
Linux 无 npm 全局目录写权限时,可使用 `npm install -g --prefix "$HOME/.local" ./yanglaofish-fishtools-0.5.
|
|
17
|
+
Linux 无 npm 全局目录写权限时,可使用 `npm install -g --prefix "$HOME/.local" ./yanglaofish-fishtools-0.5.3.tgz` 并把 `$HOME/.local/bin` 加入 PATH。`fst` 提供斜杠命令、文件补全和方向键选择;Web 使用 `fst web`,交互容器需要分配终端(例如 `docker run -it`)。不分配终端时使用 `fst run` 等原子命令。
|
|
18
18
|
|
|
19
19
|
以下章节描述按选定工作流导出的自包含运行包;它们携带 Node,运行端无需 npm。新运行包提供 `fst.cmd` / `./fst` 启动入口,兼容保留 `run.cmd` / `run.sh`。
|
|
20
20
|
|
package/manual/docs/modules.md
CHANGED
|
@@ -50,6 +50,8 @@ Fishtools 在同一仓库维护十一模块,使用 npm workspaces 连接,继
|
|
|
50
50
|
|
|
51
51
|
后续代理和权限能力沿用这十一模块:platform 负责网络策略及 HTTP/子进程代理环境;plugin 负责权限声明和执行前检查;workspace 持久化独立的工作流副本;core 保存项目设置、安排受影响插件的更新;CLI、Web 负责交互与提示。内部包仍随同一个 npm 产品交付。
|
|
52
52
|
|
|
53
|
+
受管进程的共享包装位于 platform/managed-process,plugin 上下文与 core 的 Shell 透传共同消费;workflow 透传调用标识,CLI 用标识区分并发回显,devtools 检查可识别的绕行调用。统一入口保留现有并发,不引入提权服务或安全沙箱。
|
|
54
|
+
|
|
53
55
|
## 完整能力阶段
|
|
54
56
|
|
|
55
57
|
- 大量输出持续落盘、有界事件及步骤摘要、UTF-8 分页、队列和磁盘预算:由 logs 主导,platform 提供可背压的 stream 输出。
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# 参数来源与结构化结果阅读(本地演进)
|
|
2
|
+
|
|
3
|
+
基线:`8229742`;沿用 `codex/plugin-defaults`。用户已授权直接编码,只修改内核和开发规范,不改插件、不推送、不发包、不调整版本。
|
|
4
|
+
|
|
5
|
+
## Issue 回顾
|
|
6
|
+
|
|
7
|
+
已重新读取 GitHub [#1](https://github.com/yanglaofish/Fishtools/issues/1)、[#2](https://github.com/yanglaofish/Fishtools/issues/2)、[#3](https://github.com/yanglaofish/Fishtools/issues/3)、[#4](https://github.com/yanglaofish/Fishtools/issues/4)、[#5](https://github.com/yanglaofish/Fishtools/issues/5) 的正文与评论。#1/#2 已关闭;#3/#4/#5 仍开放,开放状态不等于对应能力尚未实现。未修改远端 issue 状态或留言。
|
|
8
|
+
|
|
9
|
+
- #1/#2:脚手架、声明检查、开发引用、安装清理、进程编码与输出策略、持久目录、动态输出路径已有实现。
|
|
10
|
+
- #3:质量检查、Windows 输出、受限文件访问、日志限额与占用、开发重载已有入口;保持“不能保证中断内核不可中断挂载”的边界。
|
|
11
|
+
- #4:复制归入工作流管理、兼容版本范围、准确的修改提示已有修正。
|
|
12
|
+
- #5:全局插件、结果目录、执行分类、完整 TUI 会话已有实现。
|
|
13
|
+
- 最近试用仍有两项明确缺口:参数默认继承关系不可声明;检测结果缺少通用表格阅读。本次补齐这两项,既有能力跑相关回归,不重复改写插件。
|
|
14
|
+
|
|
15
|
+
## 参数契约
|
|
16
|
+
|
|
17
|
+
输入对象的顶层字段可声明 `x-fst`:`fromConfig` 是插件配置字段的点分路径,`unsetLabel` 说明省略的含义,`unit` 是显示单位。配置继承优先于输入 schema 的固定 `default`,显式输入(包括 false、0、空字符串和 null)优先于继承。缺少配置时采用固定默认值,否则保持省略;最终仍按输入 schema 校验。
|
|
18
|
+
|
|
19
|
+
共享 SDK 解析供宿主实际执行与 TUI 预览使用。宿主提供参数预览接口,使用已校验且含默认值的插件配置;不把整个插件配置暴露给界面。字段来源分为本次输入、插件配置、默认值、未提供。声明格式、配置路径及支持位置在插件加载/validate 时检查;当前仅支持简单对象顶层字段,复杂分支及嵌套声明明确拒绝,避免看似支持却静默失效。
|
|
20
|
+
|
|
21
|
+
TUI 保留原始输入与显示值的区别。查看、执行或编辑其他字段,不把继承值写成显式输入。可为字段显式设值,也可恢复继承/省略。参数文件、快捷名称、工作流动作及交互命令执行共用同一宿主解析。旧插件未声明时不猜测其运行代码,不将“未提供”声称为已知的实际默认行为。
|
|
22
|
+
|
|
23
|
+
## 表格阅读
|
|
24
|
+
|
|
25
|
+
内核为重复结构的记录数组/字典提供表格。按字段标题、中文显示宽度及当前终端宽度布局;保留 false、0、错误信息;窄窗口回退紧凑字段格式。可通过输出 schema 的 `x-fst-table` 声明列顺序(字段名数组);不需要 LLM。额外复杂字段继续用正文展示,原始 JSON 和业务输出不变。主面板、详情共用规则,缩窗重排,所有省略必须有可定位的阅读途径,不能把表格摘要当完整输出。
|
|
26
|
+
|
|
27
|
+
## 验证
|
|
28
|
+
|
|
29
|
+
先建立失败回归,再实现。覆盖配置变化 8000→15000、显式 3000、恢复继承、可选省略含义、非法声明、工作流与直接命令一致;表格覆盖中文宽度、窄窗、长字段、异构结构及原始数据不变。完成后运行相关回归及项目测试,按 code-review 的 Standards/Spec 两轴复审,修复有效发现。保留 `flow-results/` 现有数据。
|
|
30
|
+
|
|
31
|
+
## 本地验证记录
|
|
32
|
+
|
|
33
|
+
- SDK 输入解析、宿主预览与执行、普通能力表单、工作流绑定和快捷名称编辑已接通。明确取值的输入与未传参数分别保留;快捷名称保存 `{}` 后修改配置,真实执行跟随新值。
|
|
34
|
+
- 表格接入主面板、运行详情及 `m` 阅读,窗口缩放时重新排版;表头换行/Tab 单行化,正文中的换行/Tab 移至表后全文,原始结果不变。
|
|
35
|
+
- `npm test`:620 项,617 通过、3 跳过、0 失败(约 224 秒)。跳过项为 Windows 下的只读权限模拟及两项文件符号链接权限测试,均为现有平台条件。
|
|
36
|
+
- 随后的评审修正回归:`node --test tests/terminal*.test.js tests/effective-inputs.test.js tests/plugin-contract.test.js tests/plugin-tools.test.js tests/workflows.test.js tests/schema-diagnostics.test.js tests/runtime-scoped-update.test.js tests/module-interfaces.test.js tests/modules.test.js`,220 项全部通过。全量日志 `.cache/effective-inputs-full-test.log`,最终定向日志 `.cache/effective-inputs-final-regression.log`。
|
|
37
|
+
- 两轴评审发现快捷名称旧编辑器固化默认值、`dependencies` 内声明被漏查、多行表头错位,均先复现再修正并复审。另补单元格 Tab 回归,避免终端跳列破坏边框。
|
|
38
|
+
- 读取真实检测结果 `cc72a5af-e68c-4e50-a320-76fcb659b851` 及真实输出 schema:120 列下原紧凑阅读 668 屏幕行,表格阅读 636 屏幕行、8 张表,Pacman/RPM 各为表内一行;原始 JSON 不变。表格主旨是对齐比较,宽屏下不保证总行数下降,长内容继续保留。
|
|
39
|
+
- `node scripts/log-preview.mjs --prepare` 确認原入口仍接入真实 `fst-env-probe` 源码;外部插件仓库无改动。继续使用根目录 `fst-preview.cmd` 本地试用。未声明继承的旧插件不会自动获得“继承配置”标签,需要插件作者按开发文档接入。
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# 插件默认参数补丁
|
|
2
|
+
|
|
3
|
+
基线:`af53d70178ac05b02a0d82ed0d5663076a6eb84c`。用户已要求直接修改,并确认交互为:选择插件能力,展示当前配置,选择执行或配置参数。
|
|
4
|
+
|
|
5
|
+
## 本次范围
|
|
6
|
+
|
|
7
|
+
- 普通插件能力进入参数预览,提供执行、配置参数、返回;修改后回到预览,不立即执行。
|
|
8
|
+
- 用户补充:参数多时按终端宽度分为一至三列,预览最多四行;完整参数可滚动阅读,执行入口不能被挤出窗口。
|
|
9
|
+
- 预览和编辑采用执行层相同的 schema 默认值,不覆盖已有 false、0、空字符串,不擅自启用可选嵌套对象。
|
|
10
|
+
- 缺少必填项时仍可看到其他默认值,执行校验失败不启动任务。
|
|
11
|
+
- 快捷名称已有预设及显式参数文件继续直接调用。参数配置在本次调用中保留,跨次复用仍通过已有快捷名称保存。
|
|
12
|
+
- 布尔值和枚举编辑默认选中当前值,避免回车改变已有设置。
|
|
13
|
+
- 补充插件开发规范:常规选项必须提供适用的合理默认值;需要用户指定的业务对象、环境和凭据明确说明;不能为凑齐默认值而启用可选能力。`defaultConfig` 保持公开部署配置的既有语义,普通调用使用 schema `default`。
|
|
14
|
+
|
|
15
|
+
## 实施与验收
|
|
16
|
+
|
|
17
|
+
1. 先复现默认值显示和布尔值回车问题,并建立失败测试。
|
|
18
|
+
2. 修改参数编辑器及插件调用入口,覆盖执行、修改、返回、缺参、快捷入口。
|
|
19
|
+
3. 更新文档,按用户要求做 Standards 和 Spec 两路审查,修复有效意见。
|
|
20
|
+
4. 执行相关终端回归和本地试用。用户明确要求本轮不推送、不发包,不修改发布版本。
|
|
21
|
+
|
|
22
|
+
## 本地验收结果
|
|
23
|
+
|
|
24
|
+
- `node --test tests/terminal*.test.js`:145 项全部通过,包含新增 9 项默认参数回归。
|
|
25
|
+
- 实际调用内置 `/env.check`,预览与提交参数一致,默认不检查 Python 或 NPU,可直接完成系统检查。
|
|
26
|
+
- 30 字段预览分列有界;打开菜单后从 120×20 缩到 48×12,重新排版且执行入口可见。
|
|
27
|
+
- Standards 与 Spec 两路复审均无遗留问题。首次审查发现缩窗溢出及 JSON 形态字符串显示变义,均已复现、修正并加入回归。
|
|
28
|
+
- 分支 `codex/plugin-defaults`,版本号保持不变,未推送或发布。
|
|
29
|
+
|
|
30
|
+
本地试用:在仓库目录执行 `npm start`,进入示例工作区,输入 `/env.check` 即可查看当前默认参数并选择执行或配置参数。使用自己的工作区可执行 `npm run fst -- --project "工作区绝对路径"`。
|
|
31
|
+
|
|
32
|
+
用户原有入口 `fst-preview.cmd` / `npm run preview` 保留。它现在会在同级 `tools-plugin/fst-env-probe/fst-env-probe` 存在时加载真实环境探测插件的开发源码;也可用 `FISHTOOLS_PREVIEW_PLUGIN` 指定插件目录。重启预览后输入 `/fst-env-probe` 选择能力,或 `/envprobe.system` 查看当前默认参数并执行。预览工作区仍独立,加载过程不改插件源码、不做全局安装。
|
|
33
|
+
|
|
34
|
+
接入验证:`node scripts/log-preview.mjs --prepare` 确认加载 `fst-env-probe 0.1.1` 的源码;20 个命令可见,`/envprobe.system` 默认参数预览正确,`envprobe.catalog` 实际执行成功。未运行全量环境扫描。
|
|
35
|
+
|
|
36
|
+
## 截图反馈修正(本地)
|
|
37
|
+
|
|
38
|
+
基线 `f592c8e`。用户要求仅修改内核,禁止修改插件源码;保持不推送、不发包。
|
|
39
|
+
|
|
40
|
+
- 9 项参数全部显示时不显示多余的“查看完整参数”;仅在字段数量或内容被省略时出现展开入口,缩放窗口时同步更新。
|
|
41
|
+
- 通用输出阅读合并短字段并折叠空字段,避免把每项检测结果展开为十几行。保留 false、0、错误及多行输出;原始日志和 JSON 不变。
|
|
42
|
+
- 主面板、详情及格式化阅读共用紧凑规则;直接命令加载自身字段标题。参数编辑继续显示真实值,不折叠必填输入。
|
|
43
|
+
- 不新增任何插件专用判定逻辑,不修改外部环境探测插件。
|
|
44
|
+
|
|
45
|
+
截图修正验收:152 项终端测试全部通过,两路复审均无剩余问题。真实已保存检测结果 `cc72a5af-e68c-4e50-a320-76fcb659b851` 用相同数据对比,普通逐字段显示 3047 行,紧凑显示 531 行;其中 Pacman、RPM 各合并为一条。额外覆盖连续空格不变、参数展开项随缩放消失时回退返回且回车不会执行。外部插件仓库状态未变;本轮只保存本地提交。
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Issue #7:已安装插件故障后的工作台恢复
|
|
2
|
+
|
|
3
|
+
## 问题与约束
|
|
4
|
+
|
|
5
|
+
全局链接中的语法错误、丢失目录或 SDK 不兼容会在应用启动的导入或声明检查阶段抛出错误,导致所有使用该注册表的工作区无法进入插件管理。修复应保留注册表、插件身份和来源,让用户能够诊断并卸载故障插件;无关工作流继续可用。
|
|
6
|
+
|
|
7
|
+
本次不修改插件源码、版本号或发布配置,不增加沙箱,不处理 `process.exit`、无限循环以及导入前无法捕获的进程终止。运行时服务激活失败仍沿用现有失败与清理机制。
|
|
8
|
+
|
|
9
|
+
## 实现
|
|
10
|
+
|
|
11
|
+
- `loadInstalledEntry` 只处理已安装条目:捕获模块解析、导入、默认导出、单插件契约及配置 schema 声明错误,保留注册 ID、来源、错误阶段和错误详情。非法导出不能覆盖注册身份;故障条目提供安全的展示元数据。
|
|
12
|
+
- 宿主拆出单插件声明验证。整批检查仍拒绝重复 ID、命令与服务冲突、可确定的缺失或版本不匹配依赖,以及已知服务环。服务注入仅在故障依赖导致提供者声明不可读取时允许暂时无法确定,并将整个消费者标为不可用。
|
|
13
|
+
- 插件目录将故障节点和传递依赖消费者记为 `unavailable`,仅装配无关健康插件。原有 `unconfigured` 配置状态及配置后激活路径保持原语义。
|
|
14
|
+
- 插件列表和 TUI 详情展示不可用状态、来源及原因;工作流解析和直接动作调用在接触不可用插件时抛出 `PLUGIN_UNAVAILABLE`,包含插件 ID、来源和故障详情。嵌套流程使用同一解析入口。
|
|
15
|
+
- 多个故障插件可逐个卸载。安装批次接口只在纯卸载操作中使用恢复加载回调,剩余旧故障保留为不可用;新安装、链接仍严格检查。原有维护模式跳过卸载目标导入的恢复入口保留。
|
|
16
|
+
- 卸载引用扫描使用严格工作流清单,配合 Issue #8 的诊断清单,避免损坏工作流被当成无引用。
|
|
17
|
+
|
|
18
|
+
## 数据与恢复
|
|
19
|
+
|
|
20
|
+
恢复启动不写回插件注册表、不删除插件源码,也不自动禁用或卸载插件。用户选择卸载时沿用已有注册表备份和原子保存机制。修复来源后须重新启动进程,以避开 Node ESM 模块缓存并重新检查契约。
|
|
21
|
+
|
|
22
|
+
## 验证记录
|
|
23
|
+
|
|
24
|
+
- 先新增 `tests/issue7-plugin-recovery.test.js`,初始 7 项全部失败,复现语法、目录、SDK、非法默认导出和动作契约故障阻止启动。
|
|
25
|
+
- 首轮实现后 7 项通过;随后为受损链中的已知重复服务与服务环新增失败回归,补强图检查后通过。
|
|
26
|
+
- 多坏插件逐个移除回归先在剩余插件目录缺失处失败;引入仅卸载使用的恢复加载后通过。目前 Issue #7 独立用例为 9 项,全部通过。
|
|
27
|
+
- 已运行包含 Issue #7、全局插件、插件契约、宿主上下文、应用的定向套件,33 项通过。多故障卸载改动后运行 `node --test tests/issue7-plugin-recovery.test.js tests/runtime.test.js tests/runtime-scoped-update.test.js tests/global-plugins.test.js tests/application-plugin-removal-race.test.js tests/plugin-contract.test.js tests/terminal-plugin-discovery.test.js`,43 项全部通过;运行时故障测试按预期打印激活错误日志。最终完整套件由主任务统一执行。
|
|
28
|
+
- 独立评审补充发现:故障节点自身的缺失依赖仍可能阻断恢复。新增“动作契约损坏且依赖缺失”回归先失败;修正为跳过已隔离节点自身依赖检查,健康节点和依赖受阻节点的可确定图错误继续拒绝。Issue #7 现共 10 项;与插件契约、终端回归一起运行 35 项全部通过。
|
|
29
|
+
- 并行改动期间一次完整套件快照为 687 项、682 通过、2 失败、3 跳过。失败分别是开发监听旧断言仍等待坏链接令应用启动失败,以及另一个任务的空格路径补全测试。开发监听实际已成功启动降级工作台,无漏监听;已更新集成回归验证第 3 代插件不可用、源码修复后第 4 代恢复,并始终保持端口和令牌,随后 `node --test tests/development-watch.test.js` 的 14 项全部通过。此快照不能替代主任务最终全量验证。
|
|
30
|
+
|
|
31
|
+
## 边界
|
|
32
|
+
|
|
33
|
+
可恢复范围是已安装/链接条目的可捕获加载与单插件契约故障。项目预置插件、注册表 JSON 本身损坏、明确可判断的跨插件依赖图错误仍拒绝启动,避免把图错误伪装为可用状态。无法导入的插件不能提供其命令或服务声明,所以消费者按已声明的插件依赖传播不可用;不推测未声明的服务关系。
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# 工作流列表容错与输入 Schema 预检(#8 / #10)
|
|
2
|
+
|
|
3
|
+
## 范围与约束
|
|
4
|
+
|
|
5
|
+
本次只在本地工作分支试用,不提交、不推送、不发布、不变更版本,不修改 `plugins/` 源码,不操作已有 `flow-results`。测试全部使用临时项目。
|
|
6
|
+
|
|
7
|
+
## 根因和修复
|
|
8
|
+
|
|
9
|
+
- #8:`WorkflowStore.list()` 原先直接 `Promise.all(get)`,任一 YAML 解析失败会拒绝整个列表。TUI 在创建主输入框前读取列表,因此启动中断;Web 列表接口也返回错误。
|
|
10
|
+
- 列表仍返回数组。正常定义保持原样;坏文件返回 `status: invalid`、`diagnostic`(绝对路径、消息及可用的解析行列),并提供 `title`、`description`、空 `steps` 等已有展示字段。因此现有 Web 界面能显示诊断,无需修改插件。诊断条目不是工作流定义,保存和复制会被拒绝。
|
|
11
|
+
- TUI 启动显示坏文件诊断,欢迎示例从正常流程选择;工作流菜单选择坏项只显示诊断,不进入编辑。运行、检查、打包始终通过严格读取,不能执行诊断占位条目或悄悄丢掉坏文件。
|
|
12
|
+
- `get` 包装读取错误,保留原因并提供绝对路径;YAML 解析异常包含解析器给出的行列。
|
|
13
|
+
- `list({strict:true})` 用于删除和插件依赖扫描。坏文件存在时无法证明没有依赖,必须拒绝删除;跨工作区的全局插件扫描也遵循这一原则。`core/application.js` 的工作区插件扫描由 #7 协作任务同步调整。
|
|
14
|
+
- #10:闭包遍历原先只编译动作 input/output Schema,遗漏每个工作流的 inputs。现在每个根流程及子流程在遍历步骤之前执行 `assertSchema(w.inputs ?? emptyObject)`。check、start、pack 共用此预检,非法子流程 Schema 在任何业务动作前失败。保留合法的 `true`、`false` Schema 和缺省 Schema。
|
|
15
|
+
|
|
16
|
+
## 验证记录
|
|
17
|
+
|
|
18
|
+
初始新增测试共 8 项:修复前 7 项按预期失败,合法 boolean Schema 兼容测试通过;修复后 8 项全部通过。额外补充全局插件依赖扫描测试,先复现漏报(缺少预期拒绝),再添加严格扫描后通过。
|
|
19
|
+
|
|
20
|
+
新增测试覆盖正常流程仍可运行、坏 YAML 原文不变、TUI 可进入主输入框、坏条目不能编辑、Web 列表诊断与拒绝保存占位条目、删除依赖保护、全局插件依赖保护、打包拒绝坏文件、各执行入口提前编译输入 Schema、boolean Schema 兼容。
|
|
21
|
+
|
|
22
|
+
相关回归覆盖工作流执行、Schema、TUI 导航/草稿/删除/复制、Web、模块接口。共享工作区正在并行修复文件补全,因此曾出现两项旧同步补全测试失败;最终结果以主任务统一回归为准。
|
|
23
|
+
|
|
24
|
+
## 边界
|
|
25
|
+
|
|
26
|
+
此修复不会自动修复、覆盖或删除损坏文件。列表展示可恢复,但目录本身不可访问等整体文件系统错误仍正常上报。解析行列来自 YAML 解析器;格式校验或文件读取错误只提供文件路径和具体原因。未修改 Web 插件,所以坏项仍使用现有卡片布局;其 title/description 明确说明不可用,后端阻止保存、复制及执行。
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Issue #9:终端文件补全不阻塞输入
|
|
2
|
+
|
|
3
|
+
## 范围和依据
|
|
4
|
+
|
|
5
|
+
基线 `a0e6396`,工作分支 `codex/plugin-defaults`。只调整终端补全与其验证,不修改插件、版本、运行产物或工作流执行逻辑。
|
|
6
|
+
|
|
7
|
+
原实现 `FileAutocomplete.getSuggestions` 在按键调用栈中执行 `readdirSync`,并逐个 `statSync` 符号链接。上游 `CombinedAutocompleteProvider` 的普通路径分支也使用同步文件操作,因此仅替换 `@` 分支不足以解决问题。
|
|
8
|
+
|
|
9
|
+
## 实现
|
|
10
|
+
|
|
11
|
+
- 新增 `terminal/file-autocomplete.js`,同步 provider 只解析字符串、处理命令和读取有界目录缓存。通过定时调度调用 platform 的 `createFileProbe`,文件 I/O 在隔离子进程内完成。
|
|
12
|
+
- 默认 40 ms 防抖、1200 ms 探测超时、一个活动探测及一个排队请求。输入变化或 Esc 取消旧请求;provider 释放和终端退出都会调用探测器的有界 `close()`。
|
|
13
|
+
- 每次最多读取 1000 个目录条目、展示 100 个候选、缓存 16 个目录、缓存有效期 5 秒。测试及调用方可以降低预算;实现保留硬上限。缓存失败和超时结果,避免持续按键造成重试风暴。
|
|
14
|
+
- 显式 UNC、NT UNC、Mup、WebDAV 等远程路径默认在解析前跳过,远程工作目录同样处理。只有调用方显式设置 `allowRemote: true` 才允许探测;没有同步文件回退。
|
|
15
|
+
- 目录条目直接使用探测器返回的类型,不逐个读取链接目标。链接显示为“符号链接”,不猜测目标是否为目录;用户显式输入尾部 `/` 后可探测其内容。
|
|
16
|
+
- 保留 `@`、中文、空格与嵌套目录补全、普通本地路径补全、工作流补全和斜杠命令补全。`files: false` 禁用文件探测。
|
|
17
|
+
|
|
18
|
+
## pi-tui 刷新适配
|
|
19
|
+
|
|
20
|
+
检查了本地固定依赖 pi-tui 0.50.0:`getSuggestions` 是同步接口;`updateAutocomplete` 仅更新已经展开的菜单,空缓存导致菜单关闭后不会恢复。使用其运行时 `tryTriggerAutocomplete()` 重新建立菜单,同时请求渲染,不合成 Tab、不自动应用候选。
|
|
21
|
+
|
|
22
|
+
异步通知携带请求时的全文和光标。刷新前校验当前编辑器实例、输入状态、全文和光标;查看其他页面、编辑新文本、移动光标、按 Esc 或关闭编辑器后,旧结果不能重新弹出菜单。真实 Editor 集成测试覆盖这一适配,升级 pi-tui 时必须保留相关测试。
|
|
23
|
+
|
|
24
|
+
## 验证证据
|
|
25
|
+
|
|
26
|
+
1. 先运行冷缓存回归,旧实现失败:预期返回 `null`,实际同步返回 `@"目录 空格/"` 候选,证明测试覆盖同步读盘路径。
|
|
27
|
+
2. `node --test tests/issue9-file-autocomplete.test.js`:9 项通过。
|
|
28
|
+
3. `node --test tests/issue9-file-autocomplete.test.js tests/terminal*.test.js tests/file-probe.test.js`:201 项通过,零失败、取消、跳过,约 18.4 秒。
|
|
29
|
+
4. 新增验证包含真实隔离子进程的本地中文和空格目录读取、条目截断,以及进入 `Atomics.wait` 同步阻塞的真实 worker:宿主仍可处理输入、Esc 和事件循环,取消后活动进程数回到零。
|
|
30
|
+
5. 可控延迟探测验证过期结果、全文/光标变化、菜单刷新与 Esc、缓存淘汰、失败缓存、关闭清理。不使用延长断言时间代替功能验证。既有文件补全测试仅改为等待异步候选并释放 provider,保留原始结果断言。
|
|
31
|
+
|
|
32
|
+
完整仓库测试由主任务在并行修复汇合后统一运行。
|
|
33
|
+
|
|
34
|
+
## 发布前复核:跨输入框的未回收预算
|
|
35
|
+
|
|
36
|
+
针对 `5151143` 的独立复核发现:每个输入框各自创建并关闭探测器,关闭后仍未退出的 worker 会随 provider 移出终端跟踪集合;下一次输入得到全新预算。新增真实阻塞 worker 和模拟终止失败的回归已复现此问题。
|
|
37
|
+
|
|
38
|
+
修正约定:TerminalView 持有一个会话级探测器,每个输入框只拥有自己的缓存、回调与取消信号。输入结束时释放 provider 并取消请求,不关闭共享探测器。未回收进程持续占会话预算,直到真实退出;终端退出时才关闭探测器,返回有界关闭报告。启动入口遇到未回收报告须在恢复终端之后明确报错。独立使用 FileAutocomplete 仍自行关闭其探测器。
|
|
39
|
+
|
|
40
|
+
回归覆盖多次进入、Esc、队列取消、真实退出后重新获得名额及最终关闭报告;模拟进程均由测试主动回收,不冒称真实网络挂载故障验收。
|
|
41
|
+
|
|
42
|
+
## 明确边界
|
|
43
|
+
|
|
44
|
+
- 没有真实 NFS/SMB 挂载环境验收;阻塞 worker 只证明宿主隔离、取消和资源预算行为。
|
|
45
|
+
- 挂载为本地路径的网络盘、映射盘或经过链接间接访问的远程路径不能靠字符串识别,仍依赖隔离进程和超时。操作系统无法立即终止底层 I/O 时沿用平台探测器的有界退出与未回收状态约定。
|
|
46
|
+
- 目录截断后,超出扫描预算的名称可能没有候选,不继续无界扫描。结果携带 `incomplete` / `entryLimit`,并通过 `lastResult` 保留探测状态。
|
|
47
|
+
- 缓存有效期内可能显示旧名称;候选仅用于填入文本,不保证文件在后续使用时仍存在。
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# 统一执行入口与插件开发约束实施计划
|
|
2
|
+
|
|
3
|
+
> 实施方式:使用 superpowers:executing-plans 在当前会话实施,测试先行,最后按 code-review 分规范与需求两轴审查。用户已确认设计并要求直接改进。
|
|
4
|
+
|
|
5
|
+
## 目标和设计
|
|
6
|
+
|
|
7
|
+
插件动作、交互命令与感叹号透传共用受管进程包装,复用已有平台执行器。调用身份、指令记录、输出落盘和取消信号在同一处绑定;每次子进程调用生成 processId,区分同一步中的并发输出。权限预检仍位于插件动作执行前,代理规则仍按插件/动作注入环境。
|
|
8
|
+
|
|
9
|
+
JavaScript 插件在 Node.js 宿主内的纯计算无需新进程。Python、Shell、外部二进制无论使用系统解释器还是离线随包解释器,都必须通过上下文 runProcess 调用。随包环境负责解释器定位,不豁免执行管理。
|
|
10
|
+
|
|
11
|
+
开发工具用已有 Acorn 语法树识别可确认的直接进程 API 调用,包括 child_process 的 spawn/exec/fork 及同步变体、execa、cross-spawn、shelljs.exec。诊断为可定位的迁移警告,旧插件不因此拒绝加载。忽略注释、字符串、仅导入未调用及无法确认的局部重名绑定;明确动态计算、复杂别名、依赖包内部、Python/Shell 内部调用等不在静态检查保证范围。
|
|
12
|
+
|
|
13
|
+
## 全局约束
|
|
14
|
+
|
|
15
|
+
- 继续在 codex/plugin-defaults 分支本地试用;不推送、不发包、不修改版本号,不改任何插件源码。
|
|
16
|
+
- 统一入口不增加全局串行队列;沿用工作流 parallel.concurrency,插件内部自行发起的并发须合理控制,不宣称已有全局进程限额或资源锁。
|
|
17
|
+
- 不做命令黑名单、不执行自动提权、不声称实现安全沙箱或强制拦截。长期后台进程的专门生命周期接口留待真实需求,当前动作须 await 所有进程,不得以脱离管理的启动方式代替。
|
|
18
|
+
- 旧日志没有 processId 时继续可读;原始结果字段与公开 ctx.runProcess 签名保持兼容。
|
|
19
|
+
- flow-results 为用户数据,不移动、不删除、不纳入提交。
|
|
20
|
+
|
|
21
|
+
## 审查重点
|
|
22
|
+
|
|
23
|
+
1. 并行任务不能因公共入口被串行化;取消一条不能取消其他任务。
|
|
24
|
+
2. 一次调用的日志身份不能被并行调用或自定义回调覆盖,分块输出不能跨进程拼接。
|
|
25
|
+
3. 源码中的同名局部函数、注释和未调用导入不能被当作绕行执行。
|
|
26
|
+
4. 原有 onStart/onOutput 回调、代理环境、错误和取消行为保持一致,记录失败不得继续启动。
|
|
27
|
+
5. 权限不足仍在动作主体执行前阻止;检查通过不意味着可以绕过系统权限或自动提权。
|
|
28
|
+
|
|
29
|
+
### Task 1:共用受管执行包装
|
|
30
|
+
|
|
31
|
+
文件:新增 packages/fst-platform/src/managed-process.js;修改平台 exports、plugin/host.js、core/application.js、workflow/engine.js、CLI/run-presentation.js 与 run-feed.js;新增 tests/managed-execution.test.js。
|
|
32
|
+
|
|
33
|
+
接口:createProcessRunner({execute=runProcess, signal, log, audience}) 返回兼容 runProcess(file,args,options) 的函数;每次调用独立 processId,通过日志 meta 传递,用户回调参数保持现状。
|
|
34
|
+
|
|
35
|
+
- [x] 写测试:真实插件与 Shell 产生身份一致的启动/输出事件;并发真实子进程相互等待启动标记,证明同时运行;独立取消;权限预检与回调失败。
|
|
36
|
+
- [x] 运行失败测试,实施共享包装,更新日志透传与 TUI 分块归属。
|
|
37
|
+
- [x] 运行受管执行、进程、Shell、权限、网络及终端相关回归。
|
|
38
|
+
|
|
39
|
+
### Task 2:静态绕行诊断与规范
|
|
40
|
+
|
|
41
|
+
文件:新增 packages/fst-devtools/src/process-usage.js;修改 plugin-quality.js、plugin-tools.js、tests/plugin-lint.test.js 及模块 README、docs/plugin-development.md。
|
|
42
|
+
|
|
43
|
+
接口:inspectProcessUsage(ast,{bindings,isRequire,walk},warning,location) 复用已有绑定统计及字面量 require 判断,不执行扫描到的调用。
|
|
44
|
+
|
|
45
|
+
- [x] 写失败测试:ESM 别名、CJS、createRequire、动态字面量 import、进程库;局部重名/注释/字符串/仅导入不告警;JSON 诊断保留 warning 与定位。
|
|
46
|
+
- [x] 实施分析,补充准确的静态检查边界说明及迁移示例。
|
|
47
|
+
- [x] 两轴审查,修复实际发现,执行相关回归与全量测试,记录结果并本地提交。
|
|
48
|
+
|
|
49
|
+
## 验收记录
|
|
50
|
+
|
|
51
|
+
基线:ce1ca95。
|
|
52
|
+
|
|
53
|
+
- 受管执行首轮 4 项测试先失败,暴露缺少指令/回显关联以及跨进程半行拼接;实施后全部通过。另验证真实进程并发、独立取消、日志失败阻止启动、权限前置检查。
|
|
54
|
+
- lint 首轮直接调用用例先失败再修正。自查及 Standards 审查共同指出 Execa 对象参数仅绑定选项,不能当作启动;新增定位测试先失败,修正为在绑定函数实际调用时提示。Spec 审查没有剩余问题。
|
|
55
|
+
- 自查增加历史自定义数值 processId 的兼容用例,先复现 slice 异常后修正;旧日志仍能阅读。
|
|
56
|
+
- 全量 `npm test`:654 项,651 通过、3 个既有跳过、0 失败,耗时约 267 秒,日志 `.cache/managed-execution-full.log`。
|
|
57
|
+
- 全量启动后的 Execa 定位与历史元数据兼容修正,已通过最后的 286 项相关回归:受管执行、lint、全部 terminal、网络、进程、Shell、宿主、权限和模块入口,0 失败、0 跳过。日志 `.cache/managed-execution-regression.log`。这两项新增用例不计入此前全量数量。
|
|
58
|
+
- 无未处理的审查问题;未增加全局限流/资源锁、长期后台进程接口或提权服务,这些边界已与实现一同写入开发规范。无依赖升级,无插件源码与产品版本改动;仅本地提交。
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# 插件补全与菜单执行历史修正
|
|
2
|
+
|
|
3
|
+
基线 `43c6769`,沿用本地分支 `codex/plugin-defaults`。用户反馈:从插件管理执行能力后,上下键历史只有 `/plugin`;输入 `/env` 不能发现插件命名空间及其命令。
|
|
4
|
+
|
|
5
|
+
## 原因与修正
|
|
6
|
+
|
|
7
|
+
- 顶层精简菜单被同时用作完整补全目录,插件声明命令没有进入补全。保留空 `/` 的精简菜单,非空前缀查询完整命令目录。插件声明的唯一命名空间(例如 `envprobe.check` 的 `envprobe`)可作为插件菜单别名;有内置命令、快捷名、其他插件或直接命令冲突时不创建别名。现有插件 ID 入口继续保留。
|
|
8
|
+
- 输入历史仅在主输入框提交时追加。菜单中实际启动插件命令后,将真实 `/插件命令` 加入可召回历史和会话正文;取消参数或未能启动不记录。参数仍在运行记录中保存,不把私有表单内容拼入可召回命令。直接输入的命令不重复记录。
|
|
9
|
+
- 先写复现,再修正,再检查输入历史、会话恢复、补全及菜单回归;按 code-review 两轴复审。
|
|
10
|
+
|
|
11
|
+
## 范围与已有目标核对
|
|
12
|
+
|
|
13
|
+
- 上轮表格与参数继承已有代码,设计见 `2026-10-13-effective-inputs-and-tables.md`,公开约定已写入 `docs/plugin-development.md`;不是仅有规划。
|
|
14
|
+
- 通用表格、列提示 `x-fst-table`、字段标题、缩窗与全文阅读已实现。自动业务诊断不在内核本轮目标内,业务结论由插件返回;内核已有 Markdown 阅读能力。
|
|
15
|
+
- 动态默认值 `x-fst.fromConfig`、省略含义和单位已实现;准确继承提示须插件声明。旧插件自动获得基础排版,内核不猜测隐藏在业务代码中的规则。
|
|
16
|
+
- 此次历史与发现能力属于实际试用发现的遗漏,修正前不能宣称交互目标完全闭环。继续本地试用,不改插件、不改版本、不推送、不发包。
|
|
17
|
+
|
|
18
|
+
## 最近目标验收表
|
|
19
|
+
|
|
20
|
+
本表记录 `718676d` 时点的状态。后续统一业务报告协议已继续实现,设计与验收见 [统一业务报告协议与阅读](2026-10-14-structured-reports.md)。
|
|
21
|
+
|
|
22
|
+
| 目标 | 当前状态 | 边界 |
|
|
23
|
+
| --- | --- | --- |
|
|
24
|
+
| 选择能力后执行或配置参数 | 已实现 | 多参数有界分列,内容未完全显示才出现展开 |
|
|
25
|
+
| 有效值和来源一致 | 已实现 | 当前声明支持顶层参数;复杂嵌套规则尚未支持,明确拒绝 |
|
|
26
|
+
| 不固定继承值、支持恢复继承 | 已实现并回归 | 普通调用、工作流及快捷名称编辑共用规则 |
|
|
27
|
+
| 表格、中文对齐、缩窗、长内容全文 | 已实现 | 按结构规则推断,列顺序可由插件声明 |
|
|
28
|
+
| 业务结论与完整报告 | 已支持插件文本/Markdown阅读 | 内核不自动理解业务或生成诊断;没有新增统一的业务报告分组协议 |
|
|
29
|
+
| 真实插件准确展示内部默认行为 | 内核接口已完成,插件接入待作者处理 | 用户明确禁止修改插件,本轮不替插件伪造继承声明 |
|
|
30
|
+
| 菜单执行进入真实命令历史 | 本次修正,定向测试通过 | 不把参数拼进可召回命令,运行记录保留参数 |
|
|
31
|
+
| 非空前缀补全插件和命令 | 本次修正,定向测试通过 | 空 `/` 仍精简,名称冲突时不生成菜单别名 |
|
|
32
|
+
|
|
33
|
+
设计文件在各轮实现前创建;开发规范在实现过程中同步补充。上述表格用于区分代码已落地、插件接入待完成和能力边界,不将所有历史目标统称为已完成。
|
|
34
|
+
|
|
35
|
+
## 验证记录
|
|
36
|
+
|
|
37
|
+
- 先复现前缀缺失、菜单历史缺失,再补充冲突与取消测试;最后补充命名空间入口优先于其大量子命令的排序测试。
|
|
38
|
+
- 终端和持久会话相关测试共 184 项全部通过;实际环境探测插件 `/env` 候选首项为 `envprobe`,其后为 `envprobe.detect` 等命令,`/envprobe.` 可发现 20 个已注册命令。
|
|
39
|
+
- Standards、Spec 两轴审查均无剩余问题;未改动插件源码。
|
|
40
|
+
- 首次全量 627 项:623 通过、3 跳过、1 失败;失败为原有 `control-flow` 并发测试依赖 20ms 的时间重叠假设,单独运行 13 项全部通过。已将该测试改为等待两条任务实际启动的同步屏障,再检查原有并发上限和输出;未修改生产调度器。测试自身设 10 秒超时,清理时释放屏障,避免真实串行回归时悬挂。
|
|
41
|
+
- 修正测试后,`control-flow` 13 项通过;最终 `npm test` 全量复测 627 项:624 通过、3 跳过、0 失败。日志位于 `.cache/plugin-discovery-full-retest.log`。3 项跳过属于既有 Windows 权限模拟及文件符号链接权限测试。
|