@aibyzero/byz 0.0.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/LICENSE +21 -0
- package/README.md +136 -5
- package/dist/cli.js +46 -0
- package/dist/core/export-html/template.css +1066 -0
- package/dist/core/export-html/template.html +55 -0
- package/dist/core/export-html/template.js +1864 -0
- package/dist/core/export-html/vendor/highlight.min.js +1213 -0
- package/dist/core/export-html/vendor/marked.min.js +78 -0
- package/dist/modes/interactive/assets/clankolas.png +0 -0
- package/dist/modes/interactive/theme/dark.json +90 -0
- package/dist/modes/interactive/theme/light.json +89 -0
- package/dist/modes/interactive/theme/theme-schema.json +352 -0
- package/dist/runtime/bun/cli.d.ts +3 -0
- package/dist/runtime/bun/cli.d.ts.map +1 -0
- package/dist/runtime/bun/cli.js +11 -0
- package/dist/runtime/bun/cli.js.map +1 -0
- package/dist/runtime/bun/register-bedrock.d.ts +2 -0
- package/dist/runtime/bun/register-bedrock.d.ts.map +1 -0
- package/dist/runtime/bun/register-bedrock.js +4 -0
- package/dist/runtime/bun/register-bedrock.js.map +1 -0
- package/dist/runtime/bun/restore-sandbox-env.d.ts +17 -0
- package/dist/runtime/bun/restore-sandbox-env.d.ts.map +1 -0
- package/dist/runtime/bun/restore-sandbox-env.js +36 -0
- package/dist/runtime/bun/restore-sandbox-env.js.map +1 -0
- package/dist/runtime/bundle/chunks/anthropic-messages-JWX2WP65.js +45 -0
- package/dist/runtime/bundle/chunks/anthropic.js +75 -0
- package/dist/runtime/bundle/chunks/azure-openai-responses-5ENVCQ7U.js +2 -0
- package/dist/runtime/bundle/chunks/bedrock-converse-stream.js +74 -0
- package/dist/runtime/bundle/chunks/chunk-4L3WN2XY.js +2 -0
- package/dist/runtime/bundle/chunks/chunk-6CYCI3EJ.js +12 -0
- package/dist/runtime/bundle/chunks/chunk-6R7UI4IY.js +2 -0
- package/dist/runtime/bundle/chunks/chunk-AXIIZGTV.js +2 -0
- package/dist/runtime/bundle/chunks/chunk-DRQDKNXA.js +2 -0
- package/dist/runtime/bundle/chunks/chunk-GMWCTUPB.js +2 -0
- package/dist/runtime/bundle/chunks/chunk-GPPBJGBU.js +50 -0
- package/dist/runtime/bundle/chunks/chunk-JUUC5AZY.js +2 -0
- package/dist/runtime/bundle/chunks/chunk-L2ZPNLYD.js +2 -0
- package/dist/runtime/bundle/chunks/chunk-MNAIPA3J.js +2 -0
- package/dist/runtime/bundle/chunks/chunk-NBBFIJUL.js +11 -0
- package/dist/runtime/bundle/chunks/chunk-NUHFSC37.js +25 -0
- package/dist/runtime/bundle/chunks/chunk-PGXDEOVV.js +2 -0
- package/dist/runtime/bundle/chunks/chunk-PJACZCIR.js +2 -0
- package/dist/runtime/bundle/chunks/chunk-PRRNXB7S.js +2 -0
- package/dist/runtime/bundle/chunks/chunk-Q4KIHSRR.js +1547 -0
- package/dist/runtime/bundle/chunks/chunk-TEPMHNKQ.js +2 -0
- package/dist/runtime/bundle/chunks/chunk-TRDNDS6A.js +4 -0
- package/dist/runtime/bundle/chunks/chunk-UAQELI3K.js +2 -0
- package/dist/runtime/bundle/chunks/chunk-XDUWOHPL.js +6 -0
- package/dist/runtime/bundle/chunks/chunk-XNGRGP62.js +2 -0
- package/dist/runtime/bundle/chunks/dist-RDWOYWHR.js +13 -0
- package/dist/runtime/bundle/chunks/github-copilot.js +2 -0
- package/dist/runtime/bundle/chunks/google-generative-ai-XDKMGBCJ.js +2 -0
- package/dist/runtime/bundle/chunks/google-vertex-D5FGEO3Y.js +2 -0
- package/dist/runtime/bundle/chunks/image-resize-worker.js +2 -0
- package/dist/runtime/bundle/chunks/kimi-coding.js +2 -0
- package/dist/runtime/bundle/chunks/lib-HGQMNYVT.js +9 -0
- package/dist/runtime/bundle/chunks/mistral-conversations-YK73UAOZ.js +5 -0
- package/dist/runtime/bundle/chunks/multipart-parser-SQ6GDJL7.js +3 -0
- package/dist/runtime/bundle/chunks/openai-codex-responses-GJVBJXLB.js +8 -0
- package/dist/runtime/bundle/chunks/openai-codex.js +75 -0
- package/dist/runtime/bundle/chunks/openai-completions-XGHMB3UO.js +7 -0
- package/dist/runtime/bundle/chunks/openai-responses-BSOJMSEV.js +2 -0
- package/dist/runtime/bundle/chunks/openrouter-images-N4XVVFSD.js +2 -0
- package/dist/runtime/bundle/chunks/openrouter.js +75 -0
- package/dist/runtime/bundle/chunks/pi-messages-TPFH44NP.js +8 -0
- package/dist/runtime/bundle/chunks/radius.js +75 -0
- package/dist/runtime/bundle/chunks/src-UK77SYZE.js +4 -0
- package/dist/runtime/bundle/chunks/xai.js +2 -0
- package/dist/runtime/bundle/cli.js +3 -0
- package/dist/runtime/bundle/client.js +2 -0
- package/dist/runtime/bundle/index.js +2 -0
- package/dist/runtime/bundle/rpc-entry.js +3 -0
- package/dist/runtime/cli/args.d.ts +61 -0
- package/dist/runtime/cli/args.d.ts.map +1 -0
- package/dist/runtime/cli/args.js +439 -0
- package/dist/runtime/cli/args.js.map +1 -0
- package/dist/runtime/cli/auth-check.d.ts +19 -0
- package/dist/runtime/cli/auth-check.d.ts.map +1 -0
- package/dist/runtime/cli/auth-check.js +50 -0
- package/dist/runtime/cli/auth-check.js.map +1 -0
- package/dist/runtime/cli/auth-command.d.ts +24 -0
- package/dist/runtime/cli/auth-command.d.ts.map +1 -0
- package/dist/runtime/cli/auth-command.js +103 -0
- package/dist/runtime/cli/auth-command.js.map +1 -0
- package/dist/runtime/cli/config-selector.d.ts +16 -0
- package/dist/runtime/cli/config-selector.d.ts.map +1 -0
- package/dist/runtime/cli/config-selector.js +31 -0
- package/dist/runtime/cli/config-selector.js.map +1 -0
- package/dist/runtime/cli/credential-print.d.ts +13 -0
- package/dist/runtime/cli/credential-print.d.ts.map +1 -0
- package/dist/runtime/cli/credential-print.js +76 -0
- package/dist/runtime/cli/credential-print.js.map +1 -0
- package/dist/runtime/cli/experimental/auth.d.ts +16 -0
- package/dist/runtime/cli/experimental/auth.d.ts.map +1 -0
- package/dist/runtime/cli/experimental/auth.js +13 -0
- package/dist/runtime/cli/experimental/auth.js.map +1 -0
- package/dist/runtime/cli/experimental/cli.d.ts +6 -0
- package/dist/runtime/cli/experimental/cli.d.ts.map +1 -0
- package/dist/runtime/cli/experimental/cli.js +5 -0
- package/dist/runtime/cli/experimental/cli.js.map +1 -0
- package/dist/runtime/cli/experimental/command-options.d.ts +17 -0
- package/dist/runtime/cli/experimental/command-options.d.ts.map +1 -0
- package/dist/runtime/cli/experimental/command-options.js +35 -0
- package/dist/runtime/cli/experimental/command-options.js.map +1 -0
- package/dist/runtime/cli/experimental/command.d.ts +63 -0
- package/dist/runtime/cli/experimental/command.d.ts.map +1 -0
- package/dist/runtime/cli/experimental/command.js +130 -0
- package/dist/runtime/cli/experimental/command.js.map +1 -0
- package/dist/runtime/cli/experimental/commands/client.d.ts +13 -0
- package/dist/runtime/cli/experimental/commands/client.d.ts.map +1 -0
- package/dist/runtime/cli/experimental/commands/client.js +25 -0
- package/dist/runtime/cli/experimental/commands/client.js.map +1 -0
- package/dist/runtime/cli/experimental/commands/pi.d.ts +15 -0
- package/dist/runtime/cli/experimental/commands/pi.d.ts.map +1 -0
- package/dist/runtime/cli/experimental/commands/pi.js +28 -0
- package/dist/runtime/cli/experimental/commands/pi.js.map +1 -0
- package/dist/runtime/cli/experimental/commands/server.d.ts +13 -0
- package/dist/runtime/cli/experimental/commands/server.d.ts.map +1 -0
- package/dist/runtime/cli/experimental/commands/server.js +25 -0
- package/dist/runtime/cli/experimental/commands/server.js.map +1 -0
- package/dist/runtime/cli/experimental/transport-address.d.ts +10 -0
- package/dist/runtime/cli/experimental/transport-address.d.ts.map +1 -0
- package/dist/runtime/cli/experimental/transport-address.js +38 -0
- package/dist/runtime/cli/experimental/transport-address.js.map +1 -0
- package/dist/runtime/cli/file-processor.d.ts +15 -0
- package/dist/runtime/cli/file-processor.d.ts.map +1 -0
- package/dist/runtime/cli/file-processor.js +71 -0
- package/dist/runtime/cli/file-processor.js.map +1 -0
- package/dist/runtime/cli/initial-message.d.ts +18 -0
- package/dist/runtime/cli/initial-message.d.ts.map +1 -0
- package/dist/runtime/cli/initial-message.js +22 -0
- package/dist/runtime/cli/initial-message.js.map +1 -0
- package/dist/runtime/cli/list-models.d.ts +9 -0
- package/dist/runtime/cli/list-models.d.ts.map +1 -0
- package/dist/runtime/cli/list-models.js +98 -0
- package/dist/runtime/cli/list-models.js.map +1 -0
- package/dist/runtime/cli/project-trust.d.ts +10 -0
- package/dist/runtime/cli/project-trust.d.ts.map +1 -0
- package/dist/runtime/cli/project-trust.js +48 -0
- package/dist/runtime/cli/project-trust.js.map +1 -0
- package/dist/runtime/cli/session-picker.d.ts +10 -0
- package/dist/runtime/cli/session-picker.d.ts.map +1 -0
- package/dist/runtime/cli/session-picker.js +36 -0
- package/dist/runtime/cli/session-picker.js.map +1 -0
- package/dist/runtime/cli/startup-ui.d.ts +20 -0
- package/dist/runtime/cli/startup-ui.d.ts.map +1 -0
- package/dist/runtime/cli/startup-ui.js +184 -0
- package/dist/runtime/cli/startup-ui.js.map +1 -0
- package/dist/runtime/cli.d.ts +3 -0
- package/dist/runtime/cli.d.ts.map +1 -0
- package/dist/runtime/cli.js +19 -0
- package/dist/runtime/cli.js.map +1 -0
- package/dist/runtime/client/index.d.ts +3 -0
- package/dist/runtime/client/index.d.ts.map +1 -0
- package/dist/runtime/client/index.js +3 -0
- package/dist/runtime/client/index.js.map +1 -0
- package/dist/runtime/client/remote-session.d.ts +53 -0
- package/dist/runtime/client/remote-session.d.ts.map +1 -0
- package/dist/runtime/client/remote-session.js +340 -0
- package/dist/runtime/client/remote-session.js.map +1 -0
- package/dist/runtime/client/transcript.d.ts +12 -0
- package/dist/runtime/client/transcript.d.ts.map +1 -0
- package/dist/runtime/client/transcript.js +98 -0
- package/dist/runtime/client/transcript.js.map +1 -0
- package/dist/runtime/config.d.ts +98 -0
- package/dist/runtime/config.d.ts.map +1 -0
- package/dist/runtime/config.js +469 -0
- package/dist/runtime/config.js.map +1 -0
- package/dist/runtime/core/agent-session-runtime.d.ts +119 -0
- package/dist/runtime/core/agent-session-runtime.d.ts.map +1 -0
- package/dist/runtime/core/agent-session-runtime.js +309 -0
- package/dist/runtime/core/agent-session-runtime.js.map +1 -0
- package/dist/runtime/core/agent-session-services.d.ts +86 -0
- package/dist/runtime/core/agent-session-services.d.ts.map +1 -0
- package/dist/runtime/core/agent-session-services.js +134 -0
- package/dist/runtime/core/agent-session-services.js.map +1 -0
- package/dist/runtime/core/agent-session.d.ts +678 -0
- package/dist/runtime/core/agent-session.d.ts.map +1 -0
- package/dist/runtime/core/agent-session.js +2808 -0
- package/dist/runtime/core/agent-session.js.map +1 -0
- package/dist/runtime/core/auth-guidance.d.ts +5 -0
- package/dist/runtime/core/auth-guidance.d.ts.map +1 -0
- package/dist/runtime/core/auth-guidance.js +21 -0
- package/dist/runtime/core/auth-guidance.js.map +1 -0
- package/dist/runtime/core/auth-storage.d.ts +72 -0
- package/dist/runtime/core/auth-storage.d.ts.map +1 -0
- package/dist/runtime/core/auth-storage.js +426 -0
- package/dist/runtime/core/auth-storage.js.map +1 -0
- package/dist/runtime/core/bash-executor.d.ts +32 -0
- package/dist/runtime/core/bash-executor.d.ts.map +1 -0
- package/dist/runtime/core/bash-executor.js +111 -0
- package/dist/runtime/core/bash-executor.js.map +1 -0
- package/dist/runtime/core/cache-stats.d.ts +49 -0
- package/dist/runtime/core/cache-stats.d.ts.map +1 -0
- package/dist/runtime/core/cache-stats.js +101 -0
- package/dist/runtime/core/cache-stats.js.map +1 -0
- package/dist/runtime/core/compaction/branch-summarization.d.ts +98 -0
- package/dist/runtime/core/compaction/branch-summarization.d.ts.map +1 -0
- package/dist/runtime/core/compaction/branch-summarization.js +250 -0
- package/dist/runtime/core/compaction/branch-summarization.js.map +1 -0
- package/dist/runtime/core/compaction/compaction.d.ts +143 -0
- package/dist/runtime/core/compaction/compaction.d.ts.map +1 -0
- package/dist/runtime/core/compaction/compaction.js +669 -0
- package/dist/runtime/core/compaction/compaction.js.map +1 -0
- package/dist/runtime/core/compaction/index.d.ts +7 -0
- package/dist/runtime/core/compaction/index.d.ts.map +1 -0
- package/dist/runtime/core/compaction/index.js +7 -0
- package/dist/runtime/core/compaction/index.js.map +1 -0
- package/dist/runtime/core/compaction/utils.d.ts +38 -0
- package/dist/runtime/core/compaction/utils.d.ts.map +1 -0
- package/dist/runtime/core/compaction/utils.js +142 -0
- package/dist/runtime/core/compaction/utils.js.map +1 -0
- package/dist/runtime/core/defaults.d.ts +4 -0
- package/dist/runtime/core/defaults.d.ts.map +1 -0
- package/dist/runtime/core/defaults.js +11 -0
- package/dist/runtime/core/defaults.js.map +1 -0
- package/dist/runtime/core/diagnostics.d.ts +15 -0
- package/dist/runtime/core/diagnostics.d.ts.map +1 -0
- package/dist/runtime/core/diagnostics.js +2 -0
- package/dist/runtime/core/diagnostics.js.map +1 -0
- package/dist/runtime/core/event-bus.d.ts +9 -0
- package/dist/runtime/core/event-bus.d.ts.map +1 -0
- package/dist/runtime/core/event-bus.js +25 -0
- package/dist/runtime/core/event-bus.js.map +1 -0
- package/dist/runtime/core/exec.d.ts +29 -0
- package/dist/runtime/core/exec.d.ts.map +1 -0
- package/dist/runtime/core/exec.js +75 -0
- package/dist/runtime/core/exec.js.map +1 -0
- package/dist/runtime/core/experimental.d.ts +6 -0
- package/dist/runtime/core/experimental.d.ts.map +1 -0
- package/dist/runtime/core/experimental.js +8 -0
- package/dist/runtime/core/experimental.js.map +1 -0
- package/dist/runtime/core/export-html/ansi-to-html.d.ts +22 -0
- package/dist/runtime/core/export-html/ansi-to-html.d.ts.map +1 -0
- package/dist/runtime/core/export-html/ansi-to-html.js +249 -0
- package/dist/runtime/core/export-html/ansi-to-html.js.map +1 -0
- package/dist/runtime/core/export-html/index.d.ts +37 -0
- package/dist/runtime/core/export-html/index.d.ts.map +1 -0
- package/dist/runtime/core/export-html/index.js +226 -0
- package/dist/runtime/core/export-html/index.js.map +1 -0
- package/dist/runtime/core/export-html/template.css +1066 -0
- package/dist/runtime/core/export-html/template.html +55 -0
- package/dist/runtime/core/export-html/template.js +1864 -0
- package/dist/runtime/core/export-html/tool-renderer.d.ts +34 -0
- package/dist/runtime/core/export-html/tool-renderer.d.ts.map +1 -0
- package/dist/runtime/core/export-html/tool-renderer.js +108 -0
- package/dist/runtime/core/export-html/tool-renderer.js.map +1 -0
- package/dist/runtime/core/export-html/vendor/highlight.min.js +1213 -0
- package/dist/runtime/core/export-html/vendor/marked.min.js +78 -0
- package/dist/runtime/core/extensions/index.d.ts +12 -0
- package/dist/runtime/core/extensions/index.d.ts.map +1 -0
- package/dist/runtime/core/extensions/index.js +9 -0
- package/dist/runtime/core/extensions/index.js.map +1 -0
- package/dist/runtime/core/extensions/loader.d.ts +23 -0
- package/dist/runtime/core/extensions/loader.d.ts.map +1 -0
- package/dist/runtime/core/extensions/loader.js +648 -0
- package/dist/runtime/core/extensions/loader.js.map +1 -0
- package/dist/runtime/core/extensions/runner.d.ts +173 -0
- package/dist/runtime/core/extensions/runner.d.ts.map +1 -0
- package/dist/runtime/core/extensions/runner.js +967 -0
- package/dist/runtime/core/extensions/runner.js.map +1 -0
- package/dist/runtime/core/extensions/types.d.ts +1328 -0
- package/dist/runtime/core/extensions/types.d.ts.map +1 -0
- package/dist/runtime/core/extensions/types.js +48 -0
- package/dist/runtime/core/extensions/types.js.map +1 -0
- package/dist/runtime/core/extensions/wrapper.d.ts +20 -0
- package/dist/runtime/core/extensions/wrapper.d.ts.map +1 -0
- package/dist/runtime/core/extensions/wrapper.js +41 -0
- package/dist/runtime/core/extensions/wrapper.js.map +1 -0
- package/dist/runtime/core/footer-data-provider.d.ts +64 -0
- package/dist/runtime/core/footer-data-provider.d.ts.map +1 -0
- package/dist/runtime/core/footer-data-provider.js +338 -0
- package/dist/runtime/core/footer-data-provider.js.map +1 -0
- package/dist/runtime/core/http-dispatcher.d.ts +22 -0
- package/dist/runtime/core/http-dispatcher.d.ts.map +1 -0
- package/dist/runtime/core/http-dispatcher.js +96 -0
- package/dist/runtime/core/http-dispatcher.js.map +1 -0
- package/dist/runtime/core/index.d.ts +13 -0
- package/dist/runtime/core/index.d.ts.map +1 -0
- package/dist/runtime/core/index.js +13 -0
- package/dist/runtime/core/index.js.map +1 -0
- package/dist/runtime/core/keybindings.d.ts +423 -0
- package/dist/runtime/core/keybindings.d.ts.map +1 -0
- package/dist/runtime/core/keybindings.js +317 -0
- package/dist/runtime/core/keybindings.js.map +1 -0
- package/dist/runtime/core/messages.d.ts +77 -0
- package/dist/runtime/core/messages.d.ts.map +1 -0
- package/dist/runtime/core/messages.js +123 -0
- package/dist/runtime/core/messages.js.map +1 -0
- package/dist/runtime/core/model-config.d.ts +576 -0
- package/dist/runtime/core/model-config.d.ts.map +1 -0
- package/dist/runtime/core/model-config.js +256 -0
- package/dist/runtime/core/model-config.js.map +1 -0
- package/dist/runtime/core/model-registry.d.ts +45 -0
- package/dist/runtime/core/model-registry.d.ts.map +1 -0
- package/dist/runtime/core/model-registry.js +107 -0
- package/dist/runtime/core/model-registry.js.map +1 -0
- package/dist/runtime/core/model-resolver.d.ts +124 -0
- package/dist/runtime/core/model-resolver.d.ts.map +1 -0
- package/dist/runtime/core/model-resolver.js +589 -0
- package/dist/runtime/core/model-resolver.js.map +1 -0
- package/dist/runtime/core/model-runtime.d.ts +100 -0
- package/dist/runtime/core/model-runtime.d.ts.map +1 -0
- package/dist/runtime/core/model-runtime.js +599 -0
- package/dist/runtime/core/model-runtime.js.map +1 -0
- package/dist/runtime/core/models-store.d.ts +22 -0
- package/dist/runtime/core/models-store.d.ts.map +1 -0
- package/dist/runtime/core/models-store.js +115 -0
- package/dist/runtime/core/models-store.js.map +1 -0
- package/dist/runtime/core/output-guard.d.ts +7 -0
- package/dist/runtime/core/output-guard.d.ts.map +1 -0
- package/dist/runtime/core/output-guard.js +89 -0
- package/dist/runtime/core/output-guard.js.map +1 -0
- package/dist/runtime/core/package-manager.d.ts +213 -0
- package/dist/runtime/core/package-manager.d.ts.map +1 -0
- package/dist/runtime/core/package-manager.js +2177 -0
- package/dist/runtime/core/package-manager.js.map +1 -0
- package/dist/runtime/core/pi-manifest.d.ts +8 -0
- package/dist/runtime/core/pi-manifest.d.ts.map +1 -0
- package/dist/runtime/core/pi-manifest.js +26 -0
- package/dist/runtime/core/pi-manifest.js.map +1 -0
- package/dist/runtime/core/project-trust.d.ts +15 -0
- package/dist/runtime/core/project-trust.d.ts.map +1 -0
- package/dist/runtime/core/project-trust.js +59 -0
- package/dist/runtime/core/project-trust.js.map +1 -0
- package/dist/runtime/core/prompt-templates.d.ts +54 -0
- package/dist/runtime/core/prompt-templates.d.ts.map +1 -0
- package/dist/runtime/core/prompt-templates.js +236 -0
- package/dist/runtime/core/prompt-templates.js.map +1 -0
- package/dist/runtime/core/provider-attribution.d.ts +4 -0
- package/dist/runtime/core/provider-attribution.d.ts.map +1 -0
- package/dist/runtime/core/provider-attribution.js +72 -0
- package/dist/runtime/core/provider-attribution.js.map +1 -0
- package/dist/runtime/core/provider-composer.d.ts +58 -0
- package/dist/runtime/core/provider-composer.d.ts.map +1 -0
- package/dist/runtime/core/provider-composer.js +396 -0
- package/dist/runtime/core/provider-composer.js.map +1 -0
- package/dist/runtime/core/radius.d.ts +2 -0
- package/dist/runtime/core/radius.d.ts.map +1 -0
- package/dist/runtime/core/radius.js +2 -0
- package/dist/runtime/core/radius.js.map +1 -0
- package/dist/runtime/core/remote-catalog-provider.d.ts +5 -0
- package/dist/runtime/core/remote-catalog-provider.d.ts.map +1 -0
- package/dist/runtime/core/remote-catalog-provider.js +122 -0
- package/dist/runtime/core/remote-catalog-provider.js.map +1 -0
- package/dist/runtime/core/resolve-config-value.d.ts +30 -0
- package/dist/runtime/core/resolve-config-value.d.ts.map +1 -0
- package/dist/runtime/core/resolve-config-value.js +247 -0
- package/dist/runtime/core/resolve-config-value.js.map +1 -0
- package/dist/runtime/core/resource-loader.d.ts +221 -0
- package/dist/runtime/core/resource-loader.d.ts.map +1 -0
- package/dist/runtime/core/resource-loader.js +875 -0
- package/dist/runtime/core/resource-loader.js.map +1 -0
- package/dist/runtime/core/runtime-credentials.d.ts +15 -0
- package/dist/runtime/core/runtime-credentials.d.ts.map +1 -0
- package/dist/runtime/core/runtime-credentials.js +39 -0
- package/dist/runtime/core/runtime-credentials.js.map +1 -0
- package/dist/runtime/core/sdk.d.ts +108 -0
- package/dist/runtime/core/sdk.d.ts.map +1 -0
- package/dist/runtime/core/sdk.js +275 -0
- package/dist/runtime/core/sdk.js.map +1 -0
- package/dist/runtime/core/session-cwd.d.ts +19 -0
- package/dist/runtime/core/session-cwd.d.ts.map +1 -0
- package/dist/runtime/core/session-cwd.js +38 -0
- package/dist/runtime/core/session-cwd.js.map +1 -0
- package/dist/runtime/core/session-export.d.ts +4 -0
- package/dist/runtime/core/session-export.d.ts.map +1 -0
- package/dist/runtime/core/session-export.js +32 -0
- package/dist/runtime/core/session-export.js.map +1 -0
- package/dist/runtime/core/session-manager.d.ts +356 -0
- package/dist/runtime/core/session-manager.d.ts.map +1 -0
- package/dist/runtime/core/session-manager.js +1341 -0
- package/dist/runtime/core/session-manager.js.map +1 -0
- package/dist/runtime/core/settings-diagnostics.d.ts +9 -0
- package/dist/runtime/core/settings-diagnostics.d.ts.map +1 -0
- package/dist/runtime/core/settings-diagnostics.js +21 -0
- package/dist/runtime/core/settings-diagnostics.js.map +1 -0
- package/dist/runtime/core/settings-manager.d.ts +324 -0
- package/dist/runtime/core/settings-manager.d.ts.map +1 -0
- package/dist/runtime/core/settings-manager.js +980 -0
- package/dist/runtime/core/settings-manager.js.map +1 -0
- package/dist/runtime/core/skills.d.ts +60 -0
- package/dist/runtime/core/skills.d.ts.map +1 -0
- package/dist/runtime/core/skills.js +405 -0
- package/dist/runtime/core/skills.js.map +1 -0
- package/dist/runtime/core/slash-commands.d.ts +15 -0
- package/dist/runtime/core/slash-commands.d.ts.map +1 -0
- package/dist/runtime/core/slash-commands.js +27 -0
- package/dist/runtime/core/slash-commands.js.map +1 -0
- package/dist/runtime/core/source-info.d.ts +18 -0
- package/dist/runtime/core/source-info.d.ts.map +1 -0
- package/dist/runtime/core/source-info.js +19 -0
- package/dist/runtime/core/source-info.js.map +1 -0
- package/dist/runtime/core/system-prompt.d.ts +28 -0
- package/dist/runtime/core/system-prompt.d.ts.map +1 -0
- package/dist/runtime/core/system-prompt.js +119 -0
- package/dist/runtime/core/system-prompt.js.map +1 -0
- package/dist/runtime/core/telemetry.d.ts +3 -0
- package/dist/runtime/core/telemetry.d.ts.map +1 -0
- package/dist/runtime/core/telemetry.js +9 -0
- package/dist/runtime/core/telemetry.js.map +1 -0
- package/dist/runtime/core/timings.d.ts +10 -0
- package/dist/runtime/core/timings.d.ts.map +1 -0
- package/dist/runtime/core/timings.js +41 -0
- package/dist/runtime/core/timings.js.map +1 -0
- package/dist/runtime/core/tools/bash.d.ts +87 -0
- package/dist/runtime/core/tools/bash.d.ts.map +1 -0
- package/dist/runtime/core/tools/bash.js +410 -0
- package/dist/runtime/core/tools/bash.js.map +1 -0
- package/dist/runtime/core/tools/edit-diff.d.ts +101 -0
- package/dist/runtime/core/tools/edit-diff.d.ts.map +1 -0
- package/dist/runtime/core/tools/edit-diff.js +421 -0
- package/dist/runtime/core/tools/edit-diff.js.map +1 -0
- package/dist/runtime/core/tools/edit.d.ts +55 -0
- package/dist/runtime/core/tools/edit.d.ts.map +1 -0
- package/dist/runtime/core/tools/edit.js +306 -0
- package/dist/runtime/core/tools/edit.js.map +1 -0
- package/dist/runtime/core/tools/file-mutation-queue.d.ts +6 -0
- package/dist/runtime/core/tools/file-mutation-queue.d.ts.map +1 -0
- package/dist/runtime/core/tools/file-mutation-queue.js +52 -0
- package/dist/runtime/core/tools/file-mutation-queue.js.map +1 -0
- package/dist/runtime/core/tools/find.d.ts +42 -0
- package/dist/runtime/core/tools/find.d.ts.map +1 -0
- package/dist/runtime/core/tools/find.js +302 -0
- package/dist/runtime/core/tools/find.js.map +1 -0
- package/dist/runtime/core/tools/grep.d.ts +41 -0
- package/dist/runtime/core/tools/grep.d.ts.map +1 -0
- package/dist/runtime/core/tools/grep.js +308 -0
- package/dist/runtime/core/tools/grep.js.map +1 -0
- package/dist/runtime/core/tools/index.d.ts +43 -0
- package/dist/runtime/core/tools/index.d.ts.map +1 -0
- package/dist/runtime/core/tools/index.js +129 -0
- package/dist/runtime/core/tools/index.js.map +1 -0
- package/dist/runtime/core/tools/ls.d.ts +41 -0
- package/dist/runtime/core/tools/ls.d.ts.map +1 -0
- package/dist/runtime/core/tools/ls.js +171 -0
- package/dist/runtime/core/tools/ls.js.map +1 -0
- package/dist/runtime/core/tools/output-accumulator.d.ts +52 -0
- package/dist/runtime/core/tools/output-accumulator.d.ts.map +1 -0
- package/dist/runtime/core/tools/output-accumulator.js +184 -0
- package/dist/runtime/core/tools/output-accumulator.js.map +1 -0
- package/dist/runtime/core/tools/path-utils.d.ts +10 -0
- package/dist/runtime/core/tools/path-utils.d.ts.map +1 -0
- package/dist/runtime/core/tools/path-utils.js +99 -0
- package/dist/runtime/core/tools/path-utils.js.map +1 -0
- package/dist/runtime/core/tools/powershell.d.ts +16 -0
- package/dist/runtime/core/tools/powershell.d.ts.map +1 -0
- package/dist/runtime/core/tools/powershell.js +39 -0
- package/dist/runtime/core/tools/powershell.js.map +1 -0
- package/dist/runtime/core/tools/read.d.ts +39 -0
- package/dist/runtime/core/tools/read.d.ts.map +1 -0
- package/dist/runtime/core/tools/read.js +282 -0
- package/dist/runtime/core/tools/read.js.map +1 -0
- package/dist/runtime/core/tools/render-utils.d.ts +24 -0
- package/dist/runtime/core/tools/render-utils.d.ts.map +1 -0
- package/dist/runtime/core/tools/render-utils.js +65 -0
- package/dist/runtime/core/tools/render-utils.js.map +1 -0
- package/dist/runtime/core/tools/tool-definition-wrapper.d.ts +14 -0
- package/dist/runtime/core/tools/tool-definition-wrapper.d.ts.map +1 -0
- package/dist/runtime/core/tools/tool-definition-wrapper.js +36 -0
- package/dist/runtime/core/tools/tool-definition-wrapper.js.map +1 -0
- package/dist/runtime/core/tools/truncate.d.ts +70 -0
- package/dist/runtime/core/tools/truncate.d.ts.map +1 -0
- package/dist/runtime/core/tools/truncate.js +215 -0
- package/dist/runtime/core/tools/truncate.js.map +1 -0
- package/dist/runtime/core/tools/write.d.ts +30 -0
- package/dist/runtime/core/tools/write.d.ts.map +1 -0
- package/dist/runtime/core/tools/write.js +203 -0
- package/dist/runtime/core/tools/write.js.map +1 -0
- package/dist/runtime/core/trust-manager.d.ts +36 -0
- package/dist/runtime/core/trust-manager.d.ts.map +1 -0
- package/dist/runtime/core/trust-manager.js +203 -0
- package/dist/runtime/core/trust-manager.js.map +1 -0
- package/dist/runtime/core/usage-totals.d.ts +19 -0
- package/dist/runtime/core/usage-totals.d.ts.map +1 -0
- package/dist/runtime/core/usage-totals.js +52 -0
- package/dist/runtime/core/usage-totals.js.map +1 -0
- package/dist/runtime/extensions/index.d.ts +3 -0
- package/dist/runtime/extensions/index.d.ts.map +1 -0
- package/dist/runtime/extensions/index.js +3 -0
- package/dist/runtime/extensions/index.js.map +1 -0
- package/dist/runtime/extensions/llama/client.d.ts +67 -0
- package/dist/runtime/extensions/llama/client.d.ts.map +1 -0
- package/dist/runtime/extensions/llama/client.js +309 -0
- package/dist/runtime/extensions/llama/client.js.map +1 -0
- package/dist/runtime/extensions/llama/huggingface.d.ts +23 -0
- package/dist/runtime/extensions/llama/huggingface.d.ts.map +1 -0
- package/dist/runtime/extensions/llama/huggingface.js +141 -0
- package/dist/runtime/extensions/llama/huggingface.js.map +1 -0
- package/dist/runtime/extensions/llama/index.d.ts +3 -0
- package/dist/runtime/extensions/llama/index.d.ts.map +1 -0
- package/dist/runtime/extensions/llama/index.js +219 -0
- package/dist/runtime/extensions/llama/index.js.map +1 -0
- package/dist/runtime/extensions/llama/provider.d.ts +12 -0
- package/dist/runtime/extensions/llama/provider.d.ts.map +1 -0
- package/dist/runtime/extensions/llama/provider.js +146 -0
- package/dist/runtime/extensions/llama/provider.js.map +1 -0
- package/dist/runtime/extensions/llama/ui.d.ts +42 -0
- package/dist/runtime/extensions/llama/ui.d.ts.map +1 -0
- package/dist/runtime/extensions/llama/ui.js +416 -0
- package/dist/runtime/extensions/llama/ui.js.map +1 -0
- package/dist/runtime/index.d.ts +37 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +49 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/main.d.ts +16 -0
- package/dist/runtime/main.d.ts.map +1 -0
- package/dist/runtime/main.js +799 -0
- package/dist/runtime/main.js.map +1 -0
- package/dist/runtime/migrations.d.ts +33 -0
- package/dist/runtime/migrations.d.ts.map +1 -0
- package/dist/runtime/migrations.js +282 -0
- package/dist/runtime/migrations.js.map +1 -0
- package/dist/runtime/modes/index.d.ts +10 -0
- package/dist/runtime/modes/index.d.ts.map +1 -0
- package/dist/runtime/modes/index.js +8 -0
- package/dist/runtime/modes/index.js.map +1 -0
- package/dist/runtime/modes/interactive/assets/clankolas.png +0 -0
- package/dist/runtime/modes/interactive/components/armin.d.ts +34 -0
- package/dist/runtime/modes/interactive/components/armin.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/armin.js +333 -0
- package/dist/runtime/modes/interactive/components/armin.js.map +1 -0
- package/dist/runtime/modes/interactive/components/assistant-message.d.ts +25 -0
- package/dist/runtime/modes/interactive/components/assistant-message.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/assistant-message.js +150 -0
- package/dist/runtime/modes/interactive/components/assistant-message.js.map +1 -0
- package/dist/runtime/modes/interactive/components/bash-execution.d.ts +34 -0
- package/dist/runtime/modes/interactive/components/bash-execution.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/bash-execution.js +175 -0
- package/dist/runtime/modes/interactive/components/bash-execution.js.map +1 -0
- package/dist/runtime/modes/interactive/components/bordered-loader.d.ts +16 -0
- package/dist/runtime/modes/interactive/components/bordered-loader.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/bordered-loader.js +54 -0
- package/dist/runtime/modes/interactive/components/bordered-loader.js.map +1 -0
- package/dist/runtime/modes/interactive/components/branch-summary-message.d.ts +16 -0
- package/dist/runtime/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/branch-summary-message.js +44 -0
- package/dist/runtime/modes/interactive/components/branch-summary-message.js.map +1 -0
- package/dist/runtime/modes/interactive/components/compaction-summary-message.d.ts +16 -0
- package/dist/runtime/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/compaction-summary-message.js +45 -0
- package/dist/runtime/modes/interactive/components/compaction-summary-message.js.map +1 -0
- package/dist/runtime/modes/interactive/components/config-selector.d.ts +102 -0
- package/dist/runtime/modes/interactive/components/config-selector.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/config-selector.js +761 -0
- package/dist/runtime/modes/interactive/components/config-selector.js.map +1 -0
- package/dist/runtime/modes/interactive/components/countdown-timer.d.ts +14 -0
- package/dist/runtime/modes/interactive/components/countdown-timer.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/countdown-timer.js +33 -0
- package/dist/runtime/modes/interactive/components/countdown-timer.js.map +1 -0
- package/dist/runtime/modes/interactive/components/custom-editor.d.ts +21 -0
- package/dist/runtime/modes/interactive/components/custom-editor.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/custom-editor.js +77 -0
- package/dist/runtime/modes/interactive/components/custom-editor.js.map +1 -0
- package/dist/runtime/modes/interactive/components/custom-entry.d.ts +19 -0
- package/dist/runtime/modes/interactive/components/custom-entry.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/custom-entry.js +52 -0
- package/dist/runtime/modes/interactive/components/custom-entry.js.map +1 -0
- package/dist/runtime/modes/interactive/components/custom-message.d.ts +22 -0
- package/dist/runtime/modes/interactive/components/custom-message.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/custom-message.js +87 -0
- package/dist/runtime/modes/interactive/components/custom-message.js.map +1 -0
- package/dist/runtime/modes/interactive/components/daxnuts.d.ts +23 -0
- package/dist/runtime/modes/interactive/components/daxnuts.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/daxnuts.js +140 -0
- package/dist/runtime/modes/interactive/components/daxnuts.js.map +1 -0
- package/dist/runtime/modes/interactive/components/diff.d.ts +12 -0
- package/dist/runtime/modes/interactive/components/diff.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/diff.js +133 -0
- package/dist/runtime/modes/interactive/components/diff.js.map +1 -0
- package/dist/runtime/modes/interactive/components/dynamic-border.d.ts +15 -0
- package/dist/runtime/modes/interactive/components/dynamic-border.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/dynamic-border.js +21 -0
- package/dist/runtime/modes/interactive/components/dynamic-border.js.map +1 -0
- package/dist/runtime/modes/interactive/components/earendil-announcement.d.ts +5 -0
- package/dist/runtime/modes/interactive/components/earendil-announcement.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/earendil-announcement.js +40 -0
- package/dist/runtime/modes/interactive/components/earendil-announcement.js.map +1 -0
- package/dist/runtime/modes/interactive/components/extension-editor.d.ts +21 -0
- package/dist/runtime/modes/interactive/components/extension-editor.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/extension-editor.js +98 -0
- package/dist/runtime/modes/interactive/components/extension-editor.js.map +1 -0
- package/dist/runtime/modes/interactive/components/extension-input.d.ts +23 -0
- package/dist/runtime/modes/interactive/components/extension-input.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/extension-input.js +61 -0
- package/dist/runtime/modes/interactive/components/extension-input.js.map +1 -0
- package/dist/runtime/modes/interactive/components/extension-selector.d.ts +26 -0
- package/dist/runtime/modes/interactive/components/extension-selector.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/extension-selector.js +83 -0
- package/dist/runtime/modes/interactive/components/extension-selector.js.map +1 -0
- package/dist/runtime/modes/interactive/components/first-time-setup.d.ts +25 -0
- package/dist/runtime/modes/interactive/components/first-time-setup.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/first-time-setup.js +103 -0
- package/dist/runtime/modes/interactive/components/first-time-setup.js.map +1 -0
- package/dist/runtime/modes/interactive/components/footer.d.ts +32 -0
- package/dist/runtime/modes/interactive/components/footer.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/footer.js +222 -0
- package/dist/runtime/modes/interactive/components/footer.js.map +1 -0
- package/dist/runtime/modes/interactive/components/index.d.ts +34 -0
- package/dist/runtime/modes/interactive/components/index.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/index.js +35 -0
- package/dist/runtime/modes/interactive/components/index.js.map +1 -0
- package/dist/runtime/modes/interactive/components/keybinding-hints.d.ts +13 -0
- package/dist/runtime/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/keybinding-hints.js +36 -0
- package/dist/runtime/modes/interactive/components/keybinding-hints.js.map +1 -0
- package/dist/runtime/modes/interactive/components/login-dialog.d.ts +52 -0
- package/dist/runtime/modes/interactive/components/login-dialog.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/login-dialog.js +188 -0
- package/dist/runtime/modes/interactive/components/login-dialog.js.map +1 -0
- package/dist/runtime/modes/interactive/components/markdown-transform.d.ts +3 -0
- package/dist/runtime/modes/interactive/components/markdown-transform.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/markdown-transform.js +19 -0
- package/dist/runtime/modes/interactive/components/markdown-transform.js.map +1 -0
- package/dist/runtime/modes/interactive/components/mermaid.d.ts +11 -0
- package/dist/runtime/modes/interactive/components/mermaid.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/mermaid.js +75 -0
- package/dist/runtime/modes/interactive/components/mermaid.js.map +1 -0
- package/dist/runtime/modes/interactive/components/model-selector.d.ts +60 -0
- package/dist/runtime/modes/interactive/components/model-selector.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/model-selector.js +370 -0
- package/dist/runtime/modes/interactive/components/model-selector.js.map +1 -0
- package/dist/runtime/modes/interactive/components/oauth-selector.d.ts +33 -0
- package/dist/runtime/modes/interactive/components/oauth-selector.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/oauth-selector.js +163 -0
- package/dist/runtime/modes/interactive/components/oauth-selector.js.map +1 -0
- package/dist/runtime/modes/interactive/components/scoped-models-selector.d.ts +46 -0
- package/dist/runtime/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/scoped-models-selector.js +328 -0
- package/dist/runtime/modes/interactive/components/scoped-models-selector.js.map +1 -0
- package/dist/runtime/modes/interactive/components/session-selector-search.d.ts +23 -0
- package/dist/runtime/modes/interactive/components/session-selector-search.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/session-selector-search.js +155 -0
- package/dist/runtime/modes/interactive/components/session-selector-search.js.map +1 -0
- package/dist/runtime/modes/interactive/components/session-selector.d.ts +95 -0
- package/dist/runtime/modes/interactive/components/session-selector.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/session-selector.js +867 -0
- package/dist/runtime/modes/interactive/components/session-selector.js.map +1 -0
- package/dist/runtime/modes/interactive/components/settings-selector.d.ts +90 -0
- package/dist/runtime/modes/interactive/components/settings-selector.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/settings-selector.js +695 -0
- package/dist/runtime/modes/interactive/components/settings-selector.js.map +1 -0
- package/dist/runtime/modes/interactive/components/settings-submenu.d.ts +72 -0
- package/dist/runtime/modes/interactive/components/settings-submenu.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/settings-submenu.js +165 -0
- package/dist/runtime/modes/interactive/components/settings-submenu.js.map +1 -0
- package/dist/runtime/modes/interactive/components/show-images-selector.d.ts +10 -0
- package/dist/runtime/modes/interactive/components/show-images-selector.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/show-images-selector.js +39 -0
- package/dist/runtime/modes/interactive/components/show-images-selector.js.map +1 -0
- package/dist/runtime/modes/interactive/components/skill-invocation-message.d.ts +17 -0
- package/dist/runtime/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/skill-invocation-message.js +47 -0
- package/dist/runtime/modes/interactive/components/skill-invocation-message.js.map +1 -0
- package/dist/runtime/modes/interactive/components/status-indicator.d.ts +28 -0
- package/dist/runtime/modes/interactive/components/status-indicator.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/status-indicator.js +60 -0
- package/dist/runtime/modes/interactive/components/status-indicator.js.map +1 -0
- package/dist/runtime/modes/interactive/components/theme-selector.d.ts +11 -0
- package/dist/runtime/modes/interactive/components/theme-selector.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/theme-selector.js +50 -0
- package/dist/runtime/modes/interactive/components/theme-selector.js.map +1 -0
- package/dist/runtime/modes/interactive/components/thinking-selector.d.ts +23 -0
- package/dist/runtime/modes/interactive/components/thinking-selector.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/thinking-selector.js +109 -0
- package/dist/runtime/modes/interactive/components/thinking-selector.js.map +1 -0
- package/dist/runtime/modes/interactive/components/tool-execution.d.ts +63 -0
- package/dist/runtime/modes/interactive/components/tool-execution.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/tool-execution.js +326 -0
- package/dist/runtime/modes/interactive/components/tool-execution.js.map +1 -0
- package/dist/runtime/modes/interactive/components/tree-selector.d.ts +94 -0
- package/dist/runtime/modes/interactive/components/tree-selector.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/tree-selector.js +1245 -0
- package/dist/runtime/modes/interactive/components/tree-selector.js.map +1 -0
- package/dist/runtime/modes/interactive/components/trust-selector.d.ts +23 -0
- package/dist/runtime/modes/interactive/components/trust-selector.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/trust-selector.js +91 -0
- package/dist/runtime/modes/interactive/components/trust-selector.js.map +1 -0
- package/dist/runtime/modes/interactive/components/user-message-selector.d.ts +30 -0
- package/dist/runtime/modes/interactive/components/user-message-selector.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/user-message-selector.js +114 -0
- package/dist/runtime/modes/interactive/components/user-message-selector.js.map +1 -0
- package/dist/runtime/modes/interactive/components/user-message.d.ts +16 -0
- package/dist/runtime/modes/interactive/components/user-message.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/user-message.js +49 -0
- package/dist/runtime/modes/interactive/components/user-message.js.map +1 -0
- package/dist/runtime/modes/interactive/components/visual-truncate.d.ts +24 -0
- package/dist/runtime/modes/interactive/components/visual-truncate.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/components/visual-truncate.js +33 -0
- package/dist/runtime/modes/interactive/components/visual-truncate.js.map +1 -0
- package/dist/runtime/modes/interactive/external-editor.d.ts +12 -0
- package/dist/runtime/modes/interactive/external-editor.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/external-editor.js +38 -0
- package/dist/runtime/modes/interactive/external-editor.js.map +1 -0
- package/dist/runtime/modes/interactive/interactive-mode.d.ts +446 -0
- package/dist/runtime/modes/interactive/interactive-mode.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/interactive-mode.js +5509 -0
- package/dist/runtime/modes/interactive/interactive-mode.js.map +1 -0
- package/dist/runtime/modes/interactive/model-catalog-refresh.d.ts +7 -0
- package/dist/runtime/modes/interactive/model-catalog-refresh.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/model-catalog-refresh.js +34 -0
- package/dist/runtime/modes/interactive/model-catalog-refresh.js.map +1 -0
- package/dist/runtime/modes/interactive/model-search.d.ts +12 -0
- package/dist/runtime/modes/interactive/model-search.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/model-search.js +15 -0
- package/dist/runtime/modes/interactive/model-search.js.map +1 -0
- package/dist/runtime/modes/interactive/session-share.d.ts +16 -0
- package/dist/runtime/modes/interactive/session-share.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/session-share.js +188 -0
- package/dist/runtime/modes/interactive/session-share.js.map +1 -0
- package/dist/runtime/modes/interactive/theme/dark.json +90 -0
- package/dist/runtime/modes/interactive/theme/light.json +89 -0
- package/dist/runtime/modes/interactive/theme/theme-controller.d.ts +40 -0
- package/dist/runtime/modes/interactive/theme/theme-controller.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/theme/theme-controller.js +125 -0
- package/dist/runtime/modes/interactive/theme/theme-controller.js.map +1 -0
- package/dist/runtime/modes/interactive/theme/theme-schema.json +352 -0
- package/dist/runtime/modes/interactive/theme/theme.d.ts +122 -0
- package/dist/runtime/modes/interactive/theme/theme.d.ts.map +1 -0
- package/dist/runtime/modes/interactive/theme/theme.js +1092 -0
- package/dist/runtime/modes/interactive/theme/theme.js.map +1 -0
- package/dist/runtime/modes/json-event.d.ts +34 -0
- package/dist/runtime/modes/json-event.d.ts.map +1 -0
- package/dist/runtime/modes/json-event.js +29 -0
- package/dist/runtime/modes/json-event.js.map +1 -0
- package/dist/runtime/modes/print-mode.d.ts +28 -0
- package/dist/runtime/modes/print-mode.d.ts.map +1 -0
- package/dist/runtime/modes/print-mode.js +142 -0
- package/dist/runtime/modes/print-mode.js.map +1 -0
- package/dist/runtime/modes/rpc/jsonl.d.ts +17 -0
- package/dist/runtime/modes/rpc/jsonl.d.ts.map +1 -0
- package/dist/runtime/modes/rpc/jsonl.js +49 -0
- package/dist/runtime/modes/rpc/jsonl.js.map +1 -0
- package/dist/runtime/modes/rpc/rpc-client.d.ts +254 -0
- package/dist/runtime/modes/rpc/rpc-client.d.ts.map +1 -0
- package/dist/runtime/modes/rpc/rpc-client.js +495 -0
- package/dist/runtime/modes/rpc/rpc-client.js.map +1 -0
- package/dist/runtime/modes/rpc/rpc-mode.d.ts +20 -0
- package/dist/runtime/modes/rpc/rpc-mode.d.ts.map +1 -0
- package/dist/runtime/modes/rpc/rpc-mode.js +657 -0
- package/dist/runtime/modes/rpc/rpc-mode.js.map +1 -0
- package/dist/runtime/modes/rpc/rpc-types.d.ts +469 -0
- package/dist/runtime/modes/rpc/rpc-types.d.ts.map +1 -0
- package/dist/runtime/modes/rpc/rpc-types.js +8 -0
- package/dist/runtime/modes/rpc/rpc-types.js.map +1 -0
- package/dist/runtime/package-manager-cli.d.ts +9 -0
- package/dist/runtime/package-manager-cli.d.ts.map +1 -0
- package/dist/runtime/package-manager-cli.js +961 -0
- package/dist/runtime/package-manager-cli.js.map +1 -0
- package/dist/runtime/rpc-entry.d.ts +3 -0
- package/dist/runtime/rpc-entry.d.ts.map +1 -0
- package/dist/runtime/rpc-entry.js +11 -0
- package/dist/runtime/rpc-entry.js.map +1 -0
- package/dist/runtime/server/create-harness.d.ts +26 -0
- package/dist/runtime/server/create-harness.d.ts.map +1 -0
- package/dist/runtime/server/create-harness.js +106 -0
- package/dist/runtime/server/create-harness.js.map +1 -0
- package/dist/runtime/utils/abort.d.ts +5 -0
- package/dist/runtime/utils/abort.d.ts.map +1 -0
- package/dist/runtime/utils/abort.js +48 -0
- package/dist/runtime/utils/abort.js.map +1 -0
- package/dist/runtime/utils/ansi.d.ts +2 -0
- package/dist/runtime/utils/ansi.d.ts.map +1 -0
- package/dist/runtime/utils/ansi.js +52 -0
- package/dist/runtime/utils/ansi.js.map +1 -0
- package/dist/runtime/utils/changelog.d.ts +22 -0
- package/dist/runtime/utils/changelog.d.ts.map +1 -0
- package/dist/runtime/utils/changelog.js +165 -0
- package/dist/runtime/utils/changelog.js.map +1 -0
- package/dist/runtime/utils/child-process.d.ts +18 -0
- package/dist/runtime/utils/child-process.d.ts.map +1 -0
- package/dist/runtime/utils/child-process.js +106 -0
- package/dist/runtime/utils/child-process.js.map +1 -0
- package/dist/runtime/utils/clipboard-image.d.ts +11 -0
- package/dist/runtime/utils/clipboard-image.d.ts.map +1 -0
- package/dist/runtime/utils/clipboard-image.js +245 -0
- package/dist/runtime/utils/clipboard-image.js.map +1 -0
- package/dist/runtime/utils/clipboard-native.d.ts +11 -0
- package/dist/runtime/utils/clipboard-native.d.ts.map +1 -0
- package/dist/runtime/utils/clipboard-native.js +20 -0
- package/dist/runtime/utils/clipboard-native.js.map +1 -0
- package/dist/runtime/utils/clipboard.d.ts +4 -0
- package/dist/runtime/utils/clipboard.d.ts.map +1 -0
- package/dist/runtime/utils/clipboard.js +161 -0
- package/dist/runtime/utils/clipboard.js.map +1 -0
- package/dist/runtime/utils/deprecation.d.ts +4 -0
- package/dist/runtime/utils/deprecation.d.ts.map +1 -0
- package/dist/runtime/utils/deprecation.js +13 -0
- package/dist/runtime/utils/deprecation.js.map +1 -0
- package/dist/runtime/utils/exif-orientation.d.ts +5 -0
- package/dist/runtime/utils/exif-orientation.d.ts.map +1 -0
- package/dist/runtime/utils/exif-orientation.js +158 -0
- package/dist/runtime/utils/exif-orientation.js.map +1 -0
- package/dist/runtime/utils/frontmatter.d.ts +8 -0
- package/dist/runtime/utils/frontmatter.d.ts.map +1 -0
- package/dist/runtime/utils/frontmatter.js +27 -0
- package/dist/runtime/utils/frontmatter.js.map +1 -0
- package/dist/runtime/utils/fs-watch.d.ts +5 -0
- package/dist/runtime/utils/fs-watch.d.ts.map +1 -0
- package/dist/runtime/utils/fs-watch.js +25 -0
- package/dist/runtime/utils/fs-watch.js.map +1 -0
- package/dist/runtime/utils/git.d.ts +26 -0
- package/dist/runtime/utils/git.d.ts.map +1 -0
- package/dist/runtime/utils/git.js +195 -0
- package/dist/runtime/utils/git.js.map +1 -0
- package/dist/runtime/utils/html.d.ts +7 -0
- package/dist/runtime/utils/html.d.ts.map +1 -0
- package/dist/runtime/utils/html.js +40 -0
- package/dist/runtime/utils/html.js.map +1 -0
- package/dist/runtime/utils/image-convert.d.ts +10 -0
- package/dist/runtime/utils/image-convert.d.ts.map +1 -0
- package/dist/runtime/utils/image-convert.js +45 -0
- package/dist/runtime/utils/image-convert.js.map +1 -0
- package/dist/runtime/utils/image-process.d.ts +18 -0
- package/dist/runtime/utils/image-process.d.ts.map +1 -0
- package/dist/runtime/utils/image-process.js +83 -0
- package/dist/runtime/utils/image-process.js.map +1 -0
- package/dist/runtime/utils/image-resize-core.d.ts +30 -0
- package/dist/runtime/utils/image-resize-core.d.ts.map +1 -0
- package/dist/runtime/utils/image-resize-core.js +124 -0
- package/dist/runtime/utils/image-resize-core.js.map +1 -0
- package/dist/runtime/utils/image-resize-worker.d.ts +2 -0
- package/dist/runtime/utils/image-resize-worker.d.ts.map +1 -0
- package/dist/runtime/utils/image-resize-worker.js +31 -0
- package/dist/runtime/utils/image-resize-worker.js.map +1 -0
- package/dist/runtime/utils/image-resize.d.ts +16 -0
- package/dist/runtime/utils/image-resize.d.ts.map +1 -0
- package/dist/runtime/utils/image-resize.js +97 -0
- package/dist/runtime/utils/image-resize.js.map +1 -0
- package/dist/runtime/utils/json.d.ts +3 -0
- package/dist/runtime/utils/json.d.ts.map +1 -0
- package/dist/runtime/utils/json.js +7 -0
- package/dist/runtime/utils/json.js.map +1 -0
- package/dist/runtime/utils/management-http.d.ts +25 -0
- package/dist/runtime/utils/management-http.d.ts.map +1 -0
- package/dist/runtime/utils/management-http.js +54 -0
- package/dist/runtime/utils/management-http.js.map +1 -0
- package/dist/runtime/utils/mime.d.ts +3 -0
- package/dist/runtime/utils/mime.d.ts.map +1 -0
- package/dist/runtime/utils/mime.js +110 -0
- package/dist/runtime/utils/mime.js.map +1 -0
- package/dist/runtime/utils/open-browser.d.ts +9 -0
- package/dist/runtime/utils/open-browser.d.ts.map +1 -0
- package/dist/runtime/utils/open-browser.js +22 -0
- package/dist/runtime/utils/open-browser.js.map +1 -0
- package/dist/runtime/utils/paths.d.ts +34 -0
- package/dist/runtime/utils/paths.d.ts.map +1 -0
- package/dist/runtime/utils/paths.js +114 -0
- package/dist/runtime/utils/paths.js.map +1 -0
- package/dist/runtime/utils/photon.d.ts +21 -0
- package/dist/runtime/utils/photon.d.ts.map +1 -0
- package/dist/runtime/utils/photon.js +121 -0
- package/dist/runtime/utils/photon.js.map +1 -0
- package/dist/runtime/utils/pi-user-agent.d.ts +2 -0
- package/dist/runtime/utils/pi-user-agent.d.ts.map +1 -0
- package/dist/runtime/utils/pi-user-agent.js +5 -0
- package/dist/runtime/utils/pi-user-agent.js.map +1 -0
- package/dist/runtime/utils/shell.d.ts +34 -0
- package/dist/runtime/utils/shell.d.ts.map +1 -0
- package/dist/runtime/utils/shell.js +214 -0
- package/dist/runtime/utils/shell.js.map +1 -0
- package/dist/runtime/utils/sleep.d.ts +5 -0
- package/dist/runtime/utils/sleep.d.ts.map +1 -0
- package/dist/runtime/utils/sleep.js +17 -0
- package/dist/runtime/utils/sleep.js.map +1 -0
- package/dist/runtime/utils/syntax-highlight.d.ts +13 -0
- package/dist/runtime/utils/syntax-highlight.d.ts.map +1 -0
- package/dist/runtime/utils/syntax-highlight.js +177 -0
- package/dist/runtime/utils/syntax-highlight.js.map +1 -0
- package/dist/runtime/utils/text.d.ts +8 -0
- package/dist/runtime/utils/text.d.ts.map +1 -0
- package/dist/runtime/utils/text.js +9 -0
- package/dist/runtime/utils/text.js.map +1 -0
- package/dist/runtime/utils/tool-result-images.d.ts +19 -0
- package/dist/runtime/utils/tool-result-images.d.ts.map +1 -0
- package/dist/runtime/utils/tool-result-images.js +45 -0
- package/dist/runtime/utils/tool-result-images.js.map +1 -0
- package/dist/runtime/utils/tools-manager.d.ts +12 -0
- package/dist/runtime/utils/tools-manager.d.ts.map +1 -0
- package/dist/runtime/utils/tools-manager.js +321 -0
- package/dist/runtime/utils/tools-manager.js.map +1 -0
- package/dist/runtime/utils/version-check.d.ts +19 -0
- package/dist/runtime/utils/version-check.d.ts.map +1 -0
- package/dist/runtime/utils/version-check.js +79 -0
- package/dist/runtime/utils/version-check.js.map +1 -0
- package/dist/runtime/utils/windows-self-update.d.ts +3 -0
- package/dist/runtime/utils/windows-self-update.d.ts.map +1 -0
- package/dist/runtime/utils/windows-self-update.js +77 -0
- package/dist/runtime/utils/windows-self-update.js.map +1 -0
- package/dist/update.js +134 -0
- package/dist/workflows.js +264 -0
- package/docs/compaction.md +416 -0
- package/docs/containerization.md +111 -0
- package/docs/custom-provider.md +777 -0
- package/docs/development.md +71 -0
- package/docs/docs.json +156 -0
- package/docs/environment-variables.md +94 -0
- package/docs/extensions.md +3002 -0
- package/docs/images/doom-extension.png +0 -0
- package/docs/images/exy.png +0 -0
- package/docs/images/interactive-mode.png +0 -0
- package/docs/images/tree-view.png +0 -0
- package/docs/index.md +84 -0
- package/docs/json.md +98 -0
- package/docs/keybindings.md +236 -0
- package/docs/llama-cpp.md +101 -0
- package/docs/models.md +571 -0
- package/docs/packages.md +228 -0
- package/docs/prompt-templates.md +96 -0
- package/docs/providers.md +317 -0
- package/docs/quickstart.md +167 -0
- package/docs/rpc.md +1618 -0
- package/docs/sdk.md +1219 -0
- package/docs/security.md +59 -0
- package/docs/session-format.md +438 -0
- package/docs/sessions.md +145 -0
- package/docs/settings.md +361 -0
- package/docs/shell-aliases.md +13 -0
- package/docs/skills.md +232 -0
- package/docs/terminal-setup.md +165 -0
- package/docs/termux.md +127 -0
- package/docs/themes.md +320 -0
- package/docs/tmux.md +63 -0
- package/docs/tui.md +942 -0
- package/docs/usage.md +310 -0
- package/docs/windows.md +39 -0
- package/examples/README.md +25 -0
- package/examples/extensions/README.md +213 -0
- package/examples/extensions/auto-commit-on-exit.ts +49 -0
- package/examples/extensions/bash-spawn-hook.ts +30 -0
- package/examples/extensions/bookmark.ts +50 -0
- package/examples/extensions/border-status-editor.ts +150 -0
- package/examples/extensions/built-in-tool-renderer.ts +249 -0
- package/examples/extensions/claude-rules.ts +86 -0
- package/examples/extensions/commands.ts +72 -0
- package/examples/extensions/confirm-destructive.ts +59 -0
- package/examples/extensions/custom-compaction.ts +117 -0
- package/examples/extensions/custom-footer.ts +64 -0
- package/examples/extensions/custom-header.ts +73 -0
- package/examples/extensions/custom-provider-anthropic/index.ts +611 -0
- package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
- package/examples/extensions/custom-provider-anthropic/package.json +19 -0
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +405 -0
- package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
- package/examples/extensions/dirty-repo-guard.ts +56 -0
- package/examples/extensions/doom-overlay/README.md +46 -0
- package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
- package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
- package/examples/extensions/doom-overlay/doom/build.sh +152 -0
- package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
- package/examples/extensions/doom-overlay/doom-component.ts +132 -0
- package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
- package/examples/extensions/doom-overlay/doom-keys.ts +104 -0
- package/examples/extensions/doom-overlay/index.ts +74 -0
- package/examples/extensions/doom-overlay/wad-finder.ts +55 -0
- package/examples/extensions/dynamic-resources/SKILL.md +8 -0
- package/examples/extensions/dynamic-resources/dynamic.json +79 -0
- package/examples/extensions/dynamic-resources/dynamic.md +5 -0
- package/examples/extensions/dynamic-resources/index.ts +15 -0
- package/examples/extensions/dynamic-tools.ts +74 -0
- package/examples/extensions/entry-renderer.ts +41 -0
- package/examples/extensions/event-bus.ts +43 -0
- package/examples/extensions/file-trigger.ts +41 -0
- package/examples/extensions/git-checkpoint.ts +53 -0
- package/examples/extensions/git-merge-and-resolve.ts +115 -0
- package/examples/extensions/github-issue-autocomplete.ts +185 -0
- package/examples/extensions/gondolin/index.ts +531 -0
- package/examples/extensions/gondolin/package-lock.json +185 -0
- package/examples/extensions/gondolin/package.json +19 -0
- package/examples/extensions/handoff.ts +190 -0
- package/examples/extensions/hello.ts +26 -0
- package/examples/extensions/hidden-thinking-label.ts +53 -0
- package/examples/extensions/inline-bash.ts +94 -0
- package/examples/extensions/input-transform-streaming.ts +39 -0
- package/examples/extensions/input-transform.ts +43 -0
- package/examples/extensions/interactive-shell.ts +196 -0
- package/examples/extensions/kimi-deferred-tools.ts +61 -0
- package/examples/extensions/mac-system-theme.ts +47 -0
- package/examples/extensions/message-renderer.ts +59 -0
- package/examples/extensions/minimal-mode.ts +426 -0
- package/examples/extensions/modal-editor.ts +85 -0
- package/examples/extensions/model-status.ts +31 -0
- package/examples/extensions/notify.ts +57 -0
- package/examples/extensions/overlay-qa-tests.ts +1450 -0
- package/examples/extensions/overlay-test.ts +153 -0
- package/examples/extensions/permission-gate.ts +34 -0
- package/examples/extensions/pirate.ts +47 -0
- package/examples/extensions/plan-mode/README.md +66 -0
- package/examples/extensions/plan-mode/index.ts +390 -0
- package/examples/extensions/plan-mode/utils.ts +168 -0
- package/examples/extensions/preset.ts +436 -0
- package/examples/extensions/project-trust.ts +64 -0
- package/examples/extensions/prompt-customizer.ts +97 -0
- package/examples/extensions/protected-paths.ts +30 -0
- package/examples/extensions/provider-payload.ts +18 -0
- package/examples/extensions/qna.ts +118 -0
- package/examples/extensions/question.ts +286 -0
- package/examples/extensions/questionnaire.ts +448 -0
- package/examples/extensions/rainbow-editor.ts +88 -0
- package/examples/extensions/reload-runtime.ts +37 -0
- package/examples/extensions/rpc-demo.ts +118 -0
- package/examples/extensions/sandbox/index.ts +321 -0
- package/examples/extensions/sandbox/package-lock.json +92 -0
- package/examples/extensions/sandbox/package.json +19 -0
- package/examples/extensions/send-user-message.ts +97 -0
- package/examples/extensions/session-name.ts +27 -0
- package/examples/extensions/shutdown-command.ts +63 -0
- package/examples/extensions/snake.ts +343 -0
- package/examples/extensions/space-invaders.ts +560 -0
- package/examples/extensions/ssh.ts +220 -0
- package/examples/extensions/status-line.ts +32 -0
- package/examples/extensions/structured-output.ts +65 -0
- package/examples/extensions/subagent/README.md +177 -0
- package/examples/extensions/subagent/agents/planner.md +37 -0
- package/examples/extensions/subagent/agents/reviewer.md +35 -0
- package/examples/extensions/subagent/agents/scout.md +50 -0
- package/examples/extensions/subagent/agents/worker.md +24 -0
- package/examples/extensions/subagent/agents.ts +157 -0
- package/examples/extensions/subagent/index.ts +1038 -0
- package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
- package/examples/extensions/subagent/prompts/implement.md +10 -0
- package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
- package/examples/extensions/summarize.ts +199 -0
- package/examples/extensions/system-prompt-header.ts +17 -0
- package/examples/extensions/tic-tac-toe.ts +1008 -0
- package/examples/extensions/timed-confirm.ts +70 -0
- package/examples/extensions/titlebar-spinner.ts +58 -0
- package/examples/extensions/todo.ts +297 -0
- package/examples/extensions/tool-override.ts +144 -0
- package/examples/extensions/tools.ts +146 -0
- package/examples/extensions/trigger-compact.ts +50 -0
- package/examples/extensions/truncated-tool.ts +195 -0
- package/examples/extensions/widget-placement.ts +9 -0
- package/examples/extensions/with-deps/index.ts +32 -0
- package/examples/extensions/with-deps/package-lock.json +31 -0
- package/examples/extensions/with-deps/package.json +22 -0
- package/examples/extensions/working-indicator.ts +123 -0
- package/examples/extensions/working-message-test.ts +25 -0
- package/examples/rpc-extension-ui.ts +641 -0
- package/examples/sdk/01-minimal.ts +26 -0
- package/examples/sdk/02-custom-model.ts +49 -0
- package/examples/sdk/03-custom-prompt.ts +75 -0
- package/examples/sdk/04-skills.ts +55 -0
- package/examples/sdk/05-tools.ts +48 -0
- package/examples/sdk/06-extensions.ts +99 -0
- package/examples/sdk/07-context-files.ts +47 -0
- package/examples/sdk/08-prompt-templates.ts +51 -0
- package/examples/sdk/09-api-keys-and-oauth.ts +34 -0
- package/examples/sdk/10-settings.ts +53 -0
- package/examples/sdk/11-sessions.ts +52 -0
- package/examples/sdk/12-full-control.ts +74 -0
- package/examples/sdk/13-session-runtime.ts +67 -0
- package/examples/sdk/README.md +140 -0
- package/package.json +66 -12
- package/upstream.json +6 -0
- package/workflows/cm/LICENSE +21 -0
- package/workflows/cm/README.md +333 -0
- package/workflows/cm/THIRD_PARTY_NOTICES.md +29 -0
- package/workflows/cm/VERSION +1 -0
- package/workflows/cm/agents/cm-backend-agent.md +34 -0
- package/workflows/cm/agents/cm-contract-agent.md +34 -0
- package/workflows/cm/agents/cm-database-agent.md +34 -0
- package/workflows/cm/agents/cm-frontend-agent.md +33 -0
- package/workflows/cm/agents/cm-miniprogram-agent.md +33 -0
- package/workflows/cm/agents/cm-ui-agent.md +34 -0
- package/workflows/cm/assets/docs/command-picker-mobile.svg +56 -0
- package/workflows/cm/assets/docs/command-picker.svg +56 -0
- package/workflows/cm/assets/docs/user-guide-hero-mobile.svg +35 -0
- package/workflows/cm/assets/docs/user-guide-hero.svg +36 -0
- package/workflows/cm/assets/readme/delivery-flow.svg +86 -0
- package/workflows/cm/assets/readme/hero.svg +77 -0
- package/workflows/cm/assets/readme/recovery-record.svg +73 -0
- package/workflows/cm/assets/readme/test-evidence.svg +64 -0
- package/workflows/cm/compat/claude-commands/cm-ai.md +3 -0
- package/workflows/cm/compat/claude-commands/cm-check.md +3 -0
- package/workflows/cm/compat/claude-commands/cm-fix.md +3 -0
- package/workflows/cm/compat/claude-commands/cm-idea.md +3 -0
- package/workflows/cm/compat/claude-commands/cm-init.md +3 -0
- package/workflows/cm/compat/claude-commands/cm-prd.md +3 -0
- package/workflows/cm/compat/claude-commands/cm-refactor.md +3 -0
- package/workflows/cm/compat/claude-commands/cm-test.md +3 -0
- package/workflows/cm/docs/architecture.md +130 -0
- package/workflows/cm/docs/fixes/.reviews/fix-manifest-runtime-checkbox-drift-r1.md +33 -0
- package/workflows/cm/docs/fixes/.reviews/fix-manifest-runtime-checkbox-drift-r2.md +31 -0
- package/workflows/cm/docs/fixes/.reviews/fix-model-call-boundary-identity-T-FIX-model-call-boundary-identity-a1-handoff.json +56 -0
- package/workflows/cm/docs/fixes/.reviews/fix-model-call-boundary-identity-T-FIX-model-call-boundary-identity-a2-handoff.json +85 -0
- package/workflows/cm/docs/fixes/.reviews/fix-model-call-boundary-identity-T-FIX-model-call-boundary-identity-r1.md +53 -0
- package/workflows/cm/docs/fixes/.reviews/fix-model-call-boundary-identity-T-FIX-model-call-boundary-identity-r2.md +80 -0
- package/workflows/cm/docs/fixes/.reviews/fix-review-evidence-scope-honesty-T-FIX-review-evidence-scope-honesty-a1-handoff.json +35 -0
- package/workflows/cm/docs/fixes/.reviews/fix-review-evidence-scope-honesty-T-FIX-review-evidence-scope-honesty-r1.md +33 -0
- package/workflows/cm/docs/fixes/.reviews/fix-windows-cp1252-log-output-r1.md +30 -0
- package/workflows/cm/docs/fixes/.reviews/fix-windows-cp1252-log-output-r2.md +16 -0
- package/workflows/cm/docs/fixes/.reviews/openai-compatible-depth-fixture-T-FIX-openai-compatible-depth-fixture-a1-handoff.json +40 -0
- package/workflows/cm/docs/fixes/.reviews/openai-compatible-depth-fixture-T-FIX-openai-compatible-depth-fixture-r1.md +30 -0
- package/workflows/cm/docs/fixes/20260729-windows-cp1252-log-output.md +65 -0
- package/workflows/cm/docs/fixes/20260804-manifest-runtime-checkbox-drift.md +67 -0
- package/workflows/cm/docs/fixes/20260806-model-call-boundary-identity.md +80 -0
- package/workflows/cm/docs/fixes/20260807-prelanding-integrity.md +58 -0
- package/workflows/cm/docs/fixes/20260826-openai-compatible-depth-fixture.md +39 -0
- package/workflows/cm/docs/installation.md +149 -0
- package/workflows/cm/docs/sample-prd/prd-funding-rate-alert.md +42 -0
- package/workflows/cm/docs/sample-specs/docs//351/234/200/346/261/202/347/244/272/344/276/213.md +24 -0
- package/workflows/cm/docs/user-guide.md +521 -0
- package/workflows/cm/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/README.md +19 -0
- package/workflows/cm/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/refactor-flow.excalidraw +3650 -0
- package/workflows/cm/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/refactor-flow.mp4 +0 -0
- package/workflows/cm/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/refactor-flow.png +0 -0
- package/workflows/cm/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/refactor-flow.spec.json +223 -0
- package/workflows/cm/package.json +45 -0
- package/workflows/cm/runtime/external-expert.md +302 -0
- package/workflows/cm/runtime/logging.md +206 -0
- package/workflows/cm/runtime/model-efficiency.md +201 -0
- package/workflows/cm/runtime/orchestration.md +113 -0
- package/workflows/cm/runtime/project-context.md +37 -0
- package/workflows/cm/runtime/review.md +114 -0
- package/workflows/cm/runtime/task-gates.md +114 -0
- package/workflows/cm/runtime/task-handoff.schema.json +103 -0
- package/workflows/cm/runtime/test-contract.md +212 -0
- package/workflows/cm/runtime/workflow-config.md +115 -0
- package/workflows/cm/runtime/workflow-routing.md +82 -0
- package/workflows/cm/scripts/cm-check-runtime.ps1 +69 -0
- package/workflows/cm/scripts/cm-check-runtime.sh +866 -0
- package/workflows/cm/scripts/cm-log-event.py +1270 -0
- package/workflows/cm/scripts/cm-openai-compatible-call.py +661 -0
- package/workflows/cm/scripts/cm-prd-review-gate.py +319 -0
- package/workflows/cm/scripts/cm-prd-timing.py +272 -0
- package/workflows/cm/scripts/cm-spec-manifest.py +171 -0
- package/workflows/cm/scripts/cm-task-gate.py +760 -0
- package/workflows/cm/scripts/cm-usage-report.py +516 -0
- package/workflows/cm/scripts/cm_workflow_config.py +612 -0
- package/workflows/cm/scripts/scan-public-safety.py +89 -0
- package/workflows/cm/scripts/test-cm-log-event.py +1213 -0
- package/workflows/cm/scripts/test-cm-openai-compatible-call.py +1185 -0
- package/workflows/cm/scripts/test-cm-prd-review-gate.py +243 -0
- package/workflows/cm/scripts/test-cm-prd-timing.py +168 -0
- package/workflows/cm/scripts/test-cm-usage-report.py +584 -0
- package/workflows/cm/scripts/test-shell-compat.sh +338 -0
- package/workflows/cm/scripts/test-spec-manifest.py +220 -0
- package/workflows/cm/scripts/test-task-gate.py +540 -0
- package/workflows/cm/scripts/test-workflow-config.py +394 -0
- package/workflows/cm/scripts/validate-public-repo.py +200 -0
- package/workflows/cm/scripts/validate-test-cases.py +127 -0
- package/workflows/cm/skills/cm-ai/SKILL.md +120 -0
- package/workflows/cm/skills/cm-ai/references/N1-init.md +92 -0
- package/workflows/cm/skills/cm-ai/references/N2-enter-feature.md +38 -0
- package/workflows/cm/skills/cm-ai/references/N3-execute-task.md +99 -0
- package/workflows/cm/skills/cm-ai/references/N4-review.md +96 -0
- package/workflows/cm/skills/cm-ai/references/N5-mark-done.md +107 -0
- package/workflows/cm/skills/cm-ai/references/N6-qa-eval.md +102 -0
- package/workflows/cm/skills/cm-ai/references/N7-context.md +23 -0
- package/workflows/cm/skills/cm-ai/references/N8-finish.md +97 -0
- package/workflows/cm/skills/cm-backend-engineer/SKILL.md +100 -0
- package/workflows/cm/skills/cm-check/SKILL.md +60 -0
- package/workflows/cm/skills/cm-contract-engineer/SKILL.md +136 -0
- package/workflows/cm/skills/cm-database-engineer/SKILL.md +89 -0
- package/workflows/cm/skills/cm-devops-engineer/SKILL.md +137 -0
- package/workflows/cm/skills/cm-doc-syncer/SKILL.md +150 -0
- package/workflows/cm/skills/cm-finance-expert/SKILL.md +85 -0
- package/workflows/cm/skills/cm-fix/SKILL.md +159 -0
- package/workflows/cm/skills/cm-frontend-engineer/SKILL.md +127 -0
- package/workflows/cm/skills/cm-idea/SKILL.md +42 -0
- package/workflows/cm/skills/cm-idea/references/domains/trading.md +97 -0
- package/workflows/cm/skills/cm-idea/references/example-prd.md +92 -0
- package/workflows/cm/skills/cm-idea/references/idea-to-prd.md +282 -0
- package/workflows/cm/skills/cm-init/SKILL.md +158 -0
- package/workflows/cm/skills/cm-miniprogram-engineer/SKILL.md +141 -0
- package/workflows/cm/skills/cm-miniprogram-engineer/references/platform-readiness.md +58 -0
- package/workflows/cm/skills/cm-miniprogram-engineer/references/release-checklist.md +59 -0
- package/workflows/cm/skills/cm-prd/SKILL.md +521 -0
- package/workflows/cm/skills/cm-prd/references/brownfield.md +13 -0
- package/workflows/cm/skills/cm-prd/references/change-mode.md +145 -0
- package/workflows/cm/skills/cm-prd/references/context-scope.md +62 -0
- package/workflows/cm/skills/cm-prd/references/greenfield.md +80 -0
- package/workflows/cm/skills/cm-prd/references/phase-timing.md +60 -0
- package/workflows/cm/skills/cm-prd/references/spec-self-check.md +22 -0
- package/workflows/cm/skills/cm-product-manager/SKILL.md +83 -0
- package/workflows/cm/skills/cm-qa-engineer/SKILL.md +142 -0
- package/workflows/cm/skills/cm-refactor/SKILL.md +209 -0
- package/workflows/cm/skills/cm-test/SKILL.md +259 -0
- package/workflows/cm/skills/cm-ui-engineer/SKILL.md +105 -0
- package/workflows/cm/skills/codebase-context/SKILL.md +489 -0
- package/workflows/cm/skills/darwin-skill/NOTICE.md +26 -0
- package/workflows/cm/skills/darwin-skill/README.md +272 -0
- package/workflows/cm/skills/darwin-skill/SKILL.md +492 -0
- package/workflows/cm/skills/darwin-skill/references/runtime-neutrality.md +68 -0
- package/workflows/cm/skills/darwin-skill/references/skilllens-evidence.md +142 -0
- package/workflows/cm/skills/darwin-skill/scripts/screenshot.mjs +71 -0
- package/workflows/cm/skills/darwin-skill/templates/result-card-dark.html +698 -0
- package/workflows/cm/skills/darwin-skill/templates/result-card-white.html +444 -0
- package/workflows/cm/skills/darwin-skill/templates/result-card.html +616 -0
- package/workflows/cm/skills/external-expert/SKILL.md +250 -0
- package/workflows/cm/templates/arch-reference.md +68 -0
- package/workflows/cm/templates/auto-update/cm-announce.sh +19 -0
- package/workflows/cm/templates/auto-update/cm-update.sh +274 -0
- package/workflows/cm/templates/cm-workflow.yml +52 -0
- package/workflows/cm/templates/dashboard/dashboard.html +153 -0
- package/workflows/cm/templates/dashboard/serve.sh +10 -0
- package/workflows/cm/templates/hooks/pre-commit-cm-task-check +67 -0
- package/workflows/cm/templates/pixel/cm-pixel.html +388 -0
- package/workflows/cm/templates/pixel/cm-pixel.sh +212 -0
- package/workflows/cm/templates/pixel/dev/README.md +20 -0
- package/workflows/cm/templates/pixel/dev/atlas-preview.png +0 -0
- package/workflows/cm/templates/pixel/dev/build.py +55 -0
- package/workflows/cm/templates/pixel/dev/sheets/roguelikeChar_transparent.png +0 -0
- package/workflows/cm/templates/pixel/dev/sheets/roguelikeCity_tilemap.png +0 -0
- package/workflows/cm/templates/pixel/dev/sheets/roguelikeIndoor_transparent.png +0 -0
- package/workflows/cm/templates/pixel/dev/template.html +388 -0
- package/workflows/cm/templates/pixel/serve.sh +12 -0
- package/workflows/cm/templates/refactor/cm-refactor-denies.json +14 -0
- package/workflows/cm/templates/rules/backend-api.md +36 -0
- package/workflows/cm/templates/rules/coding-style.md +44 -0
- package/workflows/cm/templates/rules/database.md +27 -0
- package/workflows/cm/templates/rules/finance.md +32 -0
- package/workflows/cm/templates/rules/frontend.md +32 -0
- package/workflows/cm/templates/rules/git-workflow.md +25 -0
- package/workflows/cm/templates/rules/miniprogram.md +31 -0
- package/workflows/cm/templates/rules/security.md +31 -0
- package/workflows/cm/templates/rules/smart-contract.md +28 -0
- package/workflows/cm/templates/rules/testing.md +36 -0
- package/workflows/cm/templates/statusline/cm-statusline.sh +73 -0
- package/workflows/cm/templates/ui-lens/cm-ui-lens-extract.mjs +55 -0
- package/workflows/cm-plugin/LICENSE +21 -0
- package/workflows/cm-plugin/README.md +195 -0
- package/workflows/cm-plugin/VERSION +1 -0
- package/workflows/cm-plugin/agents/cm-plugin-backend-agent.md +34 -0
- package/workflows/cm-plugin/agents/cm-plugin-extension-agent.md +35 -0
- package/workflows/cm-plugin/agents/cm-plugin-ui-agent.md +34 -0
- package/workflows/cm-plugin/commands/cm-plugin-ai-nodes/N1-init.md +60 -0
- package/workflows/cm-plugin/commands/cm-plugin-ai-nodes/N2-enter-feature.md +51 -0
- package/workflows/cm-plugin/commands/cm-plugin-ai-nodes/N3-execute-task.md +32 -0
- package/workflows/cm-plugin/commands/cm-plugin-ai-nodes/N4-review.md +58 -0
- package/workflows/cm-plugin/commands/cm-plugin-ai-nodes/N5-mark-done.md +80 -0
- package/workflows/cm-plugin/commands/cm-plugin-ai-nodes/N6-qa-eval.md +69 -0
- package/workflows/cm-plugin/commands/cm-plugin-ai-nodes/N7-context.md +23 -0
- package/workflows/cm-plugin/commands/cm-plugin-ai-nodes/N8-finish.md +61 -0
- package/workflows/cm-plugin/commands/cm-plugin-prd-modes/brownfield.md +13 -0
- package/workflows/cm-plugin/commands/cm-plugin-prd-modes/change-mode.md +130 -0
- package/workflows/cm-plugin/commands/cm-plugin-prd-modes/greenfield.md +82 -0
- package/workflows/cm-plugin/commands/cm-plugin:ai.md +75 -0
- package/workflows/cm-plugin/commands/cm-plugin:check.md +66 -0
- package/workflows/cm-plugin/commands/cm-plugin:fix.md +100 -0
- package/workflows/cm-plugin/commands/cm-plugin:idea.md +29 -0
- package/workflows/cm-plugin/commands/cm-plugin:init.md +145 -0
- package/workflows/cm-plugin/commands/cm-plugin:prd.md +403 -0
- package/workflows/cm-plugin/commands/cm-plugin:refactor.md +147 -0
- package/workflows/cm-plugin/commands/cm-plugin:rewrite.md +90 -0
- package/workflows/cm-plugin/commands/cm-plugin:scout.md +202 -0
- package/workflows/cm-plugin/docs//346/265/213/350/257/225/346/214/207/345/274/225-/345/277/253/351/200/237/344/270/212/346/211/213.md +189 -0
- package/workflows/cm-plugin/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/README.md +17 -0
- package/workflows/cm-plugin/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/refactor-flow.excalidraw +3650 -0
- package/workflows/cm-plugin/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/refactor-flow.mp4 +0 -0
- package/workflows/cm-plugin/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/refactor-flow.png +0 -0
- package/workflows/cm-plugin/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/refactor-flow.spec.json +223 -0
- package/workflows/cm-plugin/package.json +33 -0
- package/workflows/cm-plugin/skills/cm-plugin-backend-engineer/SKILL.md +100 -0
- package/workflows/cm-plugin/skills/cm-plugin-devops-engineer/NOTICE.md +14 -0
- package/workflows/cm-plugin/skills/cm-plugin-devops-engineer/SKILL.md +120 -0
- package/workflows/cm-plugin/skills/cm-plugin-devops-engineer/references/cws-ci-cd.md +139 -0
- package/workflows/cm-plugin/skills/cm-plugin-devops-engineer/references/cws-submission-checklist.md +87 -0
- package/workflows/cm-plugin/skills/cm-plugin-doc-syncer/SKILL.md +149 -0
- package/workflows/cm-plugin/skills/cm-plugin-extension-engineer/SKILL.md +105 -0
- package/workflows/cm-plugin/skills/cm-plugin-product-manager/SKILL.md +83 -0
- package/workflows/cm-plugin/skills/cm-plugin-qa-engineer/NOTICE.md +14 -0
- package/workflows/cm-plugin/skills/cm-plugin-qa-engineer/SKILL.md +134 -0
- package/workflows/cm-plugin/skills/cm-plugin-qa-engineer/references/cws-scan-checklist.md +136 -0
- package/workflows/cm-plugin/skills/cm-plugin-qa-engineer/references/cws-violation-codes.md +68 -0
- package/workflows/cm-plugin/skills/cm-plugin-ui-engineer/SKILL.md +94 -0
- package/workflows/cm-plugin/skills/codebase-context/SKILL.md +489 -0
- package/workflows/cm-plugin/skills/darwin-skill/NOTICE.md +24 -0
- package/workflows/cm-plugin/skills/darwin-skill/README.md +272 -0
- package/workflows/cm-plugin/skills/darwin-skill/SKILL.md +492 -0
- package/workflows/cm-plugin/skills/darwin-skill/references/runtime-neutrality.md +68 -0
- package/workflows/cm-plugin/skills/darwin-skill/references/skilllens-evidence.md +142 -0
- package/workflows/cm-plugin/skills/darwin-skill/scripts/screenshot.mjs +71 -0
- package/workflows/cm-plugin/skills/darwin-skill/templates/result-card-dark.html +698 -0
- package/workflows/cm-plugin/skills/darwin-skill/templates/result-card-white.html +444 -0
- package/workflows/cm-plugin/skills/darwin-skill/templates/result-card.html +616 -0
- package/workflows/cm-plugin/skills/idea-to-prd/SKILL.md +289 -0
- package/workflows/cm-plugin/skills/idea-to-prd/references/domains/trading.md +97 -0
- package/workflows/cm-plugin/skills/idea-to-prd/references/example-prd.md +92 -0
- package/workflows/cm-plugin/templates/arch-reference.md +55 -0
- package/workflows/cm-plugin/templates/auto-update/cm-announce.sh +19 -0
- package/workflows/cm-plugin/templates/auto-update/cm-update.sh +251 -0
- package/workflows/cm-plugin/templates/dashboard/dashboard.html +153 -0
- package/workflows/cm-plugin/templates/dashboard/serve.sh +10 -0
- package/workflows/cm-plugin/templates/e2e/extension-harness.ts +110 -0
- package/workflows/cm-plugin/templates/e2e/smoke.spec.example.ts +51 -0
- package/workflows/cm-plugin/templates/hooks/pre-commit-cm-task-check +33 -0
- package/workflows/cm-plugin/templates/pixel/cm-pixel.html +388 -0
- package/workflows/cm-plugin/templates/pixel/cm-pixel.sh +212 -0
- package/workflows/cm-plugin/templates/pixel/dev/README.md +20 -0
- package/workflows/cm-plugin/templates/pixel/dev/atlas-preview.png +0 -0
- package/workflows/cm-plugin/templates/pixel/dev/build.py +55 -0
- package/workflows/cm-plugin/templates/pixel/dev/sheets/roguelikeChar_transparent.png +0 -0
- package/workflows/cm-plugin/templates/pixel/dev/sheets/roguelikeCity_tilemap.png +0 -0
- package/workflows/cm-plugin/templates/pixel/dev/sheets/roguelikeIndoor_transparent.png +0 -0
- package/workflows/cm-plugin/templates/pixel/dev/template.html +388 -0
- package/workflows/cm-plugin/templates/pixel/serve.sh +12 -0
- package/workflows/cm-plugin/templates/refactor/cm-refactor-denies.json +14 -0
- package/workflows/cm-plugin/templates/rules/backend-api.md +36 -0
- package/workflows/cm-plugin/templates/rules/chrome-extension.md +53 -0
- package/workflows/cm-plugin/templates/rules/coding-style.md +44 -0
- package/workflows/cm-plugin/templates/rules/frontend.md +32 -0
- package/workflows/cm-plugin/templates/rules/git-workflow.md +25 -0
- package/workflows/cm-plugin/templates/rules/security.md +31 -0
- package/workflows/cm-plugin/templates/rules/testing.md +36 -0
- package/workflows/cm-plugin/templates/scripts/cm-plugin-codex.sh +52 -0
- package/workflows/cm-plugin/templates/scripts/cm-plugin-log.sh +41 -0
- package/workflows/cm-plugin/templates/scripts/cm-plugin-preflight.sh +60 -0
- package/workflows/cm-plugin/templates/statusline/cm-plugin-statusline.sh +73 -0
- package/workflows.lock.json +40 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="zh">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>cm 工作流看板</title>
|
|
6
|
+
<style>
|
|
7
|
+
:root{--bg:#f7f8f6;--card:#fff;--ink:#1e2628;--muted:#55646a;--line:#dde3e1;
|
|
8
|
+
--accent:#0e7a6b;--soft:#e3f0ed;--warn:#9a6a14;--warnbg:#f5eddc;--drop:#b4231f;
|
|
9
|
+
--num:ui-monospace,"SF Mono",Menlo,monospace}
|
|
10
|
+
*{box-sizing:border-box}
|
|
11
|
+
body{margin:0;background:var(--bg);color:var(--ink);
|
|
12
|
+
font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;font-size:14px}
|
|
13
|
+
.wrap{max-width:980px;margin:0 auto;padding:28px 20px}
|
|
14
|
+
header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px}
|
|
15
|
+
h1{font-size:20px;margin:0}
|
|
16
|
+
#meta{color:var(--muted);font-size:12px}
|
|
17
|
+
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:18px 0}
|
|
18
|
+
.tile{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px 16px}
|
|
19
|
+
.tile b{display:block;font-size:22px;font-family:var(--num)}
|
|
20
|
+
.tile span{color:var(--muted);font-size:12px}
|
|
21
|
+
.feature{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:14px}
|
|
22
|
+
.fhead{display:flex;justify-content:space-between;align-items:center;gap:10px}
|
|
23
|
+
.fhead h2{font-size:15px;margin:0}
|
|
24
|
+
.bar{height:8px;background:var(--soft);border-radius:99px;margin:10px 0;overflow:hidden}
|
|
25
|
+
.bar i{display:block;height:100%;background:var(--accent);border-radius:99px;transition:width .5s}
|
|
26
|
+
.task{display:flex;gap:8px;padding:3px 0;font-size:13px;align-items:baseline}
|
|
27
|
+
.task .id{font-family:var(--num);color:var(--muted);min-width:52px}
|
|
28
|
+
.done{color:var(--muted)}.done .title{text-decoration:line-through}
|
|
29
|
+
.current{background:var(--warnbg);border-radius:6px;padding:3px 8px;margin:2px -8px}
|
|
30
|
+
.current .st{color:var(--warn);font-weight:700}
|
|
31
|
+
.dropped{color:var(--drop);opacity:.7}.dropped .title{text-decoration:line-through}
|
|
32
|
+
.pct{font-family:var(--num);font-size:12px;color:var(--muted)}
|
|
33
|
+
table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:8px;font-size:12.5px}
|
|
34
|
+
th,td{text-align:left;padding:7px 12px;border-bottom:1px solid var(--line)}
|
|
35
|
+
th{color:var(--muted);font-weight:600}
|
|
36
|
+
tr:last-child td{border-bottom:none}
|
|
37
|
+
td{font-family:var(--num)}
|
|
38
|
+
h3{font-size:14px;margin:24px 0 10px}
|
|
39
|
+
#lessons li{font-size:13px;color:var(--muted);margin:4px 0}
|
|
40
|
+
.empty{color:var(--muted);padding:30px;text-align:center}
|
|
41
|
+
/* 状态机横条 */
|
|
42
|
+
#pipeline{display:none;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 18px;margin:16px 0}
|
|
43
|
+
#statusline{font-size:13px;margin-bottom:10px}
|
|
44
|
+
#statusline b{color:var(--accent)}
|
|
45
|
+
.nodes{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
|
|
46
|
+
.node{padding:6px 10px;border-radius:6px;border:1px solid var(--line);font-size:12px;color:var(--muted);background:var(--bg);white-space:nowrap}
|
|
47
|
+
.node.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700;animation:pulse 1.2s ease-in-out infinite}
|
|
48
|
+
.node.passed{background:var(--soft);color:var(--accent);border-color:var(--soft)}
|
|
49
|
+
.arrowc{color:var(--line);font-size:11px}
|
|
50
|
+
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.55}}
|
|
51
|
+
#pausebanner{display:none;background:var(--warnbg);border:1px solid var(--warn);color:var(--warn);
|
|
52
|
+
border-radius:8px;padding:10px 16px;margin:12px 0;font-weight:700;font-size:14px}
|
|
53
|
+
</style>
|
|
54
|
+
</head>
|
|
55
|
+
<body>
|
|
56
|
+
<div class="wrap">
|
|
57
|
+
<header>
|
|
58
|
+
<h1>cm 工作流看板 <span id="dot" style="color:var(--accent)">●</span></h1>
|
|
59
|
+
<div id="meta">加载中…</div>
|
|
60
|
+
</header>
|
|
61
|
+
<div id="pausebanner"></div>
|
|
62
|
+
<div id="pipeline">
|
|
63
|
+
<div id="statusline"></div>
|
|
64
|
+
<div class="nodes" id="nodes"></div>
|
|
65
|
+
</div>
|
|
66
|
+
<div class="tiles" id="tiles"></div>
|
|
67
|
+
<div id="features"><div class="empty">正在读取 specs…(确认由 serve.sh 启动且 specs 目录下有编号 feature)</div></div>
|
|
68
|
+
<h3>📊 METRICS(每任务度量)</h3>
|
|
69
|
+
<div id="metrics"><div class="empty">尚无 METRICS.md——执行到第一个 N5 后出现</div></div>
|
|
70
|
+
<h3>📝 LESSONS(经验库)</h3>
|
|
71
|
+
<ul id="lessons"><li>尚无记录</li></ul>
|
|
72
|
+
</div>
|
|
73
|
+
<script>
|
|
74
|
+
const $=id=>document.getElementById(id);
|
|
75
|
+
async function txt(p){try{const r=await fetch(p+'?t='+Date.now());return r.ok?await r.text():null}catch{return null}}
|
|
76
|
+
|
|
77
|
+
function parseTasks(md){
|
|
78
|
+
const out=[];if(!md)return out;
|
|
79
|
+
for(const m of md.matchAll(/^- \[( |x)\] (T-\d+):?\s*(.+)$/gm)){
|
|
80
|
+
const line=m[3];
|
|
81
|
+
out.push({id:m[2],done:m[1]==='x',dropped:/\[DROPPED/.test(line),changed:/\[CHANGED/.test(line),
|
|
82
|
+
title:line.replace(/`\[[^\]]*\]`?/g,'').replace(/~.*$/,'').trim().slice(0,60)});
|
|
83
|
+
}
|
|
84
|
+
return out;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
const NODES=[['N1','初始化'],['N2','进Feature'],['N3','执行'],['N4','审查'],['N5','标记'],['N6','QA'],['N7','轮换'],['N8','收尾']];
|
|
88
|
+
async function renderStatus(){
|
|
89
|
+
const raw=await txt('./.cm-status.json');
|
|
90
|
+
const pl=$('pipeline'),pb=$('pausebanner');
|
|
91
|
+
if(!raw){pl.style.display='none';pb.style.display='none';return}
|
|
92
|
+
let s;try{s=JSON.parse(raw)}catch{return}
|
|
93
|
+
pl.style.display='block';
|
|
94
|
+
const curIdx=NODES.findIndex(n=>n[0]===s.node);
|
|
95
|
+
$('nodes').innerHTML=NODES.map((n,i)=>{
|
|
96
|
+
const cls=s.state==='done'?'passed':(i===curIdx?'active':(i<curIdx||['N3','N4','N5','N6','N7'].includes(s.node)&&i<2?'passed':''));
|
|
97
|
+
return `<span class="node ${cls}">${n[0]} ${n[1]}</span>`;
|
|
98
|
+
}).join('<span class="arrowc">▸</span>');
|
|
99
|
+
$('statusline').innerHTML=s.state==='done'
|
|
100
|
+
?`🎉 全部完成 · ${s.at||''}`
|
|
101
|
+
:`当前: <b>${s.feature||'—'}</b> / <b>${s.task||'—'}</b> / <b>${s.node}</b> · ${s.detail||''} · ${s.at||''}`;
|
|
102
|
+
if(s.state==='paused_for_human'){pb.style.display='block';pb.textContent=`⏸ 等待人工介入: ${s.detail||'请查看会话'}`}
|
|
103
|
+
else pb.style.display='none';
|
|
104
|
+
}
|
|
105
|
+
async function load(){
|
|
106
|
+
renderStatus();
|
|
107
|
+
const idx=await txt('./');if(!idx){$('meta').textContent='无法读取 specs 目录';return}
|
|
108
|
+
const dirs=[...new Set([...idx.matchAll(/href="(\d+\.[^"\/]+)\//g)].map(m=>decodeURIComponent(m[1])))]
|
|
109
|
+
.sort((a,b)=>parseInt(a)-parseInt(b));
|
|
110
|
+
let total=0,done=0,fh='';
|
|
111
|
+
for(const d of dirs){
|
|
112
|
+
const tasks=parseTasks(await txt(`./${d}/tasks.md`));
|
|
113
|
+
const act=tasks.filter(t=>!t.dropped);
|
|
114
|
+
const dn=act.filter(t=>t.done).length;
|
|
115
|
+
total+=act.length;done+=dn;
|
|
116
|
+
const cur=act.find(t=>!t.done);
|
|
117
|
+
const pct=act.length?Math.round(dn/act.length*100):0;
|
|
118
|
+
fh+=`<div class="feature"><div class="fhead"><h2>📂 ${d}</h2><span class="pct">${dn}/${act.length} · ${pct}%</span></div>
|
|
119
|
+
<div class="bar"><i style="width:${pct}%"></i></div>`+
|
|
120
|
+
tasks.map(t=>{
|
|
121
|
+
const cls=t.dropped?'dropped':t.done?'done':(t===cur?'current':'');
|
|
122
|
+
const st=t.dropped?'🚫':t.done?'✅':(t===cur?'▶':'⬜');
|
|
123
|
+
return `<div class="task ${cls}"><span class="st">${st}</span><span class="id">${t.id}</span><span class="title">${t.title}${t.changed?' 🔁':''}</span></div>`;
|
|
124
|
+
}).join('')+`</div>`;
|
|
125
|
+
}
|
|
126
|
+
$('features').innerHTML=fh||'<div class="empty">未发现编号 feature 目录</div>';
|
|
127
|
+
|
|
128
|
+
const met=await txt('./METRICS.md');
|
|
129
|
+
let rows=[],human=0,firstPass=0;
|
|
130
|
+
if(met){
|
|
131
|
+
rows=[...met.matchAll(/^\|\s*(T-\d+)\s*\|(.+)$/gm)].map(m=>[m[1],...m[2].split('|').map(s=>s.trim()).slice(0,7)]);
|
|
132
|
+
for(const r of rows){human+=parseInt(r[7])||0;if((r[4]||'')==='1')firstPass++}
|
|
133
|
+
if(rows.length){
|
|
134
|
+
$('metrics').innerHTML='<table><tr><th>任务</th><th>Feature</th><th>开始</th><th>结束</th><th>审查轮</th><th>独立审查拦截</th><th>QA</th><th>人工介入</th></tr>'+
|
|
135
|
+
rows.map(r=>'<tr>'+r.map(c=>`<td>${c}</td>`).join('')+'</tr>').join('')+'</table>';
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
const lessons=await txt('./LESSONS.md');
|
|
139
|
+
const ls=lessons?[...lessons.matchAll(/^## (.+)$/gm)].map(m=>m[1]):[];
|
|
140
|
+
$('lessons').innerHTML=ls.length?ls.slice(-8).reverse().map(l=>`<li>${l}</li>`).join(''):'<li>尚无记录</li>';
|
|
141
|
+
|
|
142
|
+
$('tiles').innerHTML=`
|
|
143
|
+
<div class="tile"><b>${done}/${total}</b><span>任务完成</span></div>
|
|
144
|
+
<div class="tile"><b>${rows.length?(human/rows.length).toFixed(1):'—'}</b><span>人工介入/任务</span></div>
|
|
145
|
+
<div class="tile"><b>${rows.length?Math.round(firstPass/rows.length*100)+'%':'—'}</b><span>一次通过率</span></div>
|
|
146
|
+
<div class="tile"><b>${ls.length}</b><span>LESSONS 条目</span></div>`;
|
|
147
|
+
$('meta').textContent=`数据源: specs 落盘文件 · 只读 · ${new Date().toLocaleTimeString()} 刷新`;
|
|
148
|
+
$('dot').style.color='var(--accent)';
|
|
149
|
+
}
|
|
150
|
+
load();setInterval(load,2000);
|
|
151
|
+
</script>
|
|
152
|
+
</body>
|
|
153
|
+
</html>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# cm 工作流可视化看板 · 纯只读,零侵入(只消费 specs 落盘文件)
|
|
3
|
+
# 用法: ./serve.sh /path/to/specs [端口,默认 8788]
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
SPECS="${1:?用法: ./serve.sh /path/to/specs [端口]}"
|
|
6
|
+
PORT="${2:-8788}"
|
|
7
|
+
[ -d "$SPECS" ] || { echo "specs 目录不存在: $SPECS"; exit 1; }
|
|
8
|
+
cp "$(cd "$(dirname "$0")" && pwd)/dashboard.html" "$SPECS/.cm-dashboard.html"
|
|
9
|
+
echo "✓ 看板已启动: http://localhost:$PORT/.cm-dashboard.html (Ctrl+C 停止)"
|
|
10
|
+
cd "$SPECS" && exec python3 -m http.server "$PORT" --bind 127.0.0.1
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# cm 工作流 · 任务标记双保险(灰度阶段启用,可选)
|
|
3
|
+
#
|
|
4
|
+
# 用途:防止 N5 漏标记——代码提交时校验 tasks.md 的勾选状态有同步更新。
|
|
5
|
+
# 安装(在代码仓库内):
|
|
6
|
+
# export CM_SPECS_DIR=/path/to/specs # specs 文件夹路径(含 N.feature 目录)
|
|
7
|
+
# cp templates/hooks/pre-commit-cm-task-check .git/hooks/pre-commit
|
|
8
|
+
# chmod +x .git/hooks/pre-commit
|
|
9
|
+
#
|
|
10
|
+
# 逻辑:本次提交包含源码变更、且 CM_SPECS_DIR 已设置时,检查 specs 下
|
|
11
|
+
# 是否存在"最近修改时间晚于上次提交"的 tasks.md——没有则给出警告。
|
|
12
|
+
# 默认仅警告不阻断;置 CM_TASK_CHECK_STRICT=1 时阻断提交。
|
|
13
|
+
set -uo pipefail
|
|
14
|
+
|
|
15
|
+
[ -z "${CM_SPECS_DIR:-}" ] && exit 0 # 未启用则直接放行
|
|
16
|
+
[ -d "$CM_SPECS_DIR" ] || exit 0
|
|
17
|
+
|
|
18
|
+
find_python() {
|
|
19
|
+
local candidate
|
|
20
|
+
for candidate in python3 python; do
|
|
21
|
+
if command -v "$candidate" >/dev/null 2>&1 &&
|
|
22
|
+
"$candidate" -c 'import sys; raise SystemExit(sys.version_info < (3, 9))' >/dev/null 2>&1; then
|
|
23
|
+
command -v "$candidate"
|
|
24
|
+
return 0
|
|
25
|
+
fi
|
|
26
|
+
done
|
|
27
|
+
return 1
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
# 本次提交是否包含源码变更(排除纯文档)
|
|
31
|
+
changed=$(git diff --cached --name-only | grep -vE '\.(md|txt)$' || true)
|
|
32
|
+
[ -z "$changed" ] && exit 0
|
|
33
|
+
|
|
34
|
+
last_commit_ts=$(git log -1 --format=%ct 2>/dev/null || echo 0)
|
|
35
|
+
python_bin="$(find_python 2>/dev/null || true)"
|
|
36
|
+
fresh_tasks=""
|
|
37
|
+
if [ -n "$python_bin" ]; then
|
|
38
|
+
# BSD find on macOS has no -newermt. Python keeps this timestamp check
|
|
39
|
+
# portable while preserving support for specs outside the code repository.
|
|
40
|
+
fresh_tasks="$("$python_bin" - "$CM_SPECS_DIR" "$last_commit_ts" <<'PY'
|
|
41
|
+
from pathlib import Path
|
|
42
|
+
import sys
|
|
43
|
+
|
|
44
|
+
root = Path(sys.argv[1])
|
|
45
|
+
cutoff = float(sys.argv[2])
|
|
46
|
+
try:
|
|
47
|
+
for path in root.rglob("tasks.md"):
|
|
48
|
+
try:
|
|
49
|
+
if path.is_file() and path.stat().st_mtime > cutoff:
|
|
50
|
+
print(path)
|
|
51
|
+
except OSError:
|
|
52
|
+
continue
|
|
53
|
+
except OSError:
|
|
54
|
+
pass
|
|
55
|
+
PY
|
|
56
|
+
)"
|
|
57
|
+
fi
|
|
58
|
+
|
|
59
|
+
if [ -z "$fresh_tasks" ]; then
|
|
60
|
+
echo "⚠ [cm] 本次提交含源码变更,但 $CM_SPECS_DIR 下没有新更新的 tasks.md。" >&2
|
|
61
|
+
echo " 若刚完成某个任务,请确认 N5 已将其标记为 [x](漏标会导致断点恢复时重复执行)。" >&2
|
|
62
|
+
if [ "${CM_TASK_CHECK_STRICT:-0}" = "1" ]; then
|
|
63
|
+
echo " 严格模式已开启:提交被阻断。确认无碍可用 git commit --no-verify 跳过。" >&2
|
|
64
|
+
exit 1
|
|
65
|
+
fi
|
|
66
|
+
fi
|
|
67
|
+
exit 0
|
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="zh">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
6
|
+
<title>cm 工作流 · 像素办公室</title>
|
|
7
|
+
<style>
|
|
8
|
+
* { margin:0; padding:0; box-sizing:border-box; }
|
|
9
|
+
body { background:#131120; color:#e8e2d0; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
|
|
10
|
+
min-height:100vh; display:flex; flex-direction:column; align-items:center; padding:18px 12px; }
|
|
11
|
+
#wrap { width:min(980px, 100%); }
|
|
12
|
+
#hud { display:flex; align-items:center; gap:12px; padding:8px 2px; font-size:14px; }
|
|
13
|
+
#logo { background:#f0b03c; color:#1c1a14; font-weight:800; padding:3px 9px; border-radius:3px;
|
|
14
|
+
letter-spacing:2px; box-shadow:0 3px 0 #8a6210; }
|
|
15
|
+
#phase { background:#232033; padding:4px 12px; border-radius:3px; letter-spacing:1px; font-weight:700; }
|
|
16
|
+
#phase.paused { background:#f5d95c; color:#1c1a14; }
|
|
17
|
+
#phase.stale { background:#d25050; color:#fff; }
|
|
18
|
+
#task { color:#9a93b8; font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1; }
|
|
19
|
+
#coins { color:#f0b03c; font-weight:700; }
|
|
20
|
+
#stage { position:relative; border:4px solid #2a2438; border-radius:8px; overflow:hidden;
|
|
21
|
+
box-shadow:0 18px 50px rgba(0,0,0,.55), inset 0 0 0 2px #0d0b16; background:#0d0b16; }
|
|
22
|
+
canvas { display:block; width:100%; image-rendering:pixelated; image-rendering:crisp-edges; }
|
|
23
|
+
#bubble { position:absolute; transform:translate(-50%,-115%); max-width:380px; padding:8px 12px;
|
|
24
|
+
background:#faf6ec; color:#1c1a14; border:2px solid #1c1a14; border-radius:6px;
|
|
25
|
+
font-size:13px; line-height:1.5; display:none; box-shadow:3px 4px 0 rgba(0,0,0,.4); z-index:2; }
|
|
26
|
+
#bubble.paused { background:#f5d95c; transform:translate(-12%,-115%); }
|
|
27
|
+
#bubble.paused:after { left:12%; }
|
|
28
|
+
#bubble:after { content:""; position:absolute; left:50%; bottom:-10px; margin-left:-5px;
|
|
29
|
+
border:5px solid transparent; border-top-color:#1c1a14; }
|
|
30
|
+
#note { position:absolute; right:14px; bottom:16px; width:250px; display:none;
|
|
31
|
+
background:#f7ecc0; color:#4a3c14; border:2px solid #c8b478; padding:9px 11px;
|
|
32
|
+
font-size:12px; line-height:1.65; white-space:pre-wrap; transform:rotate(-1.6deg);
|
|
33
|
+
box-shadow:4px 5px 0 rgba(0,0,0,.35); border-radius:2px; }
|
|
34
|
+
#note b { color:#8a6210; }
|
|
35
|
+
#barrow { display:flex; align-items:center; gap:10px; margin-top:10px; }
|
|
36
|
+
#bar { flex:1; height:16px; background:#232033; border:2px solid #2a2438; border-radius:4px; overflow:hidden; }
|
|
37
|
+
#fill { height:100%; width:0; transition:width .6s;
|
|
38
|
+
background:repeating-linear-gradient(45deg,#f0b03c 0 10px,#d99a28 10px 20px); }
|
|
39
|
+
#count { font-size:13px; color:#f0b03c; min-width:44px; text-align:right; font-weight:700; }
|
|
40
|
+
#hint { margin-top:8px; font-size:12px; color:#6f6890; }
|
|
41
|
+
</style>
|
|
42
|
+
</head>
|
|
43
|
+
<body>
|
|
44
|
+
<div id="wrap">
|
|
45
|
+
<div id="hud">
|
|
46
|
+
<span id="logo">CM</span><span id="phase">连接中…</span>
|
|
47
|
+
<span id="task"></span><span id="coins"></span>
|
|
48
|
+
</div>
|
|
49
|
+
<div id="stage">
|
|
50
|
+
<canvas id="cv" width="744" height="420"></canvas>
|
|
51
|
+
<div id="bubble"></div>
|
|
52
|
+
<div id="note"></div>
|
|
53
|
+
</div>
|
|
54
|
+
<div id="barrow"><div id="bar"><div id="fill"></div></div><span id="count"></span></div>
|
|
55
|
+
<div id="hint"></div>
|
|
56
|
+
</div>
|
|
57
|
+
<script>
|
|
58
|
+
const ATLAS = "data:image/png;base64,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";
|
|
59
|
+
const T = {"wall": [0, 0], "wall2": [1, 0], "wallB": [2, 0], "flr": [3, 0], "flr2": [4, 0], "flr3": [5, 0], "desk": [6, 0], "chairL": [7, 0], "chairR": [0, 1], "mon": [1, 1], "mon2": [2, 1], "sofaL": [3, 1], "sofaM": [4, 1], "sofaR": [5, 1], "rugL": [6, 1], "rugM": [7, 1], "rugM2": [0, 2], "rugR": [1, 2], "plant": [2, 2], "plant2": [3, 2], "art1": [4, 2], "art2": [5, 2], "art3": [6, 2], "gold": [7, 2], "mirror": [0, 3], "shelfA": [1, 3], "shelfB": [2, 3], "dresser": [3, 3], "vend": [4, 3], "fridge": [5, 3], "bin": [6, 3], "crate": [7, 3], "lamp": [0, 4], "lamp2": [1, 4], "cntL": [2, 4], "cntM": [3, 4], "cntR": [4, 4], "brick": [5, 4], "brick2": [6, 4], "wood": [7, 4], "wood2": [0, 5], "wood3": [1, 5], "rgA": [2, 5], "rgB": [3, 5], "rgC": [4, 5], "rgD": [5, 5], "chairF": [6, 5], "tblO1": [7, 5], "tblO2": [0, 6], "worker": [1, 6], "codex": [2, 6], "sleep": [3, 6], "celA": [4, 6], "celB": [5, 6], "celC": [6, 6]};
|
|
60
|
+
const IMG = new Image(); let loaded = false;
|
|
61
|
+
IMG.onload = () => loaded = true; IMG.src = ATLAS;
|
|
62
|
+
|
|
63
|
+
const SKY = {
|
|
64
|
+
dawn:["#c98d78","#dba98a","#e8c49a"], day:["#7fa8c8","#93b9d4","#a9cbdd"],
|
|
65
|
+
dusk:["#8a5f7a","#b07a6a","#d0996a"], night:["#242138","#2e2a48","#3a3560"],
|
|
66
|
+
};
|
|
67
|
+
const TINT = { dawn:"rgba(230,150,100,.09)", day:"rgba(255,180,90,.05)",
|
|
68
|
+
dusk:"rgba(210,120,70,.12)", night:"rgba(30,34,90,.17)" };
|
|
69
|
+
const NODES = ["N1","N2","N3","N4","N5","N6","N7","N8"];
|
|
70
|
+
const PHASE = { N1:"启动准备", N2:"规划任务", N3:"开发中", N4:"检查代码",
|
|
71
|
+
N5:"保存进度", N6:"质量检测", N7:"整理现场", N8:"收尾总结" };
|
|
72
|
+
const ZONE = i => i<2 ? "dawn" : i<5 ? "day" : i<7 ? "dusk" : "night";
|
|
73
|
+
const PROPS = { 0:"plant2", 1:"crate", 2:"bin", 4:"dresser", 5:"fridge", 6:"shelfB", 7:"plant" };
|
|
74
|
+
|
|
75
|
+
const cv = document.getElementById("cv"), cx = cv.getContext("2d");
|
|
76
|
+
cx.imageSmoothingEnabled = false;
|
|
77
|
+
const W = cv.width, H = cv.height, TOPW = 48; // 顶墙高度
|
|
78
|
+
// 工位:两排四列,像真办公室
|
|
79
|
+
const POD = []; for (let i=0;i<8;i++)
|
|
80
|
+
POD.push({ x: 128 + (i%4)*162, y: 168 + ((i/4)|0)*150 });
|
|
81
|
+
const BENCH = { x:20, y:252, cx:44 }; // 等候长椅(左墙)
|
|
82
|
+
const LOUNGE = { x:W/2, y:252 }; // 中央过道=休息区
|
|
83
|
+
const seed = n => { let x = Math.sin(n*127.1)*43758.5; return x - Math.floor(x); };
|
|
84
|
+
|
|
85
|
+
function rect(x,y,w,h,c){ cx.fillStyle = c; cx.fillRect(x|0, y|0, w, h); }
|
|
86
|
+
function tile(n,dx,dy,z=3){ const [c,r] = T[n];
|
|
87
|
+
cx.drawImage(IMG, c*16, r*16, 16, 16, dx|0, dy|0, 16*z, 16*z); }
|
|
88
|
+
function shadow(x,y,rx,ry,a=.26){ cx.fillStyle = "rgba(12,8,20,"+a+")";
|
|
89
|
+
cx.beginPath(); cx.ellipse(x,y,rx,ry,0,0,7); cx.fill(); }
|
|
90
|
+
|
|
91
|
+
let cur = { node:"N1", state:"running", detail:"", feature:"", task:"" };
|
|
92
|
+
let mode = "wait", staleRun = false, firstSnap = true;
|
|
93
|
+
let wk = { x:POD[0].x-58, y:POD[0].y+18 }; // 小人(2D 自由走动)
|
|
94
|
+
let frame = 0, confetti = [];
|
|
95
|
+
|
|
96
|
+
// ---------- 房间(俯视) ----------
|
|
97
|
+
function room(zone) {
|
|
98
|
+
for (let r=0; r<Math.ceil((H-TOPW)/48); r++) // 暖木地板
|
|
99
|
+
for (let c=0; c<Math.ceil(W/48); c++)
|
|
100
|
+
tile(seed(c*3+r*11)>.62 ? "wood2" : (seed(c*5+r)>.85 ? "wood3" : "wood"), c*48, TOPW + r*48);
|
|
101
|
+
for (let c=0; c<Math.ceil(W/48); c++) tile("brick", c*48, 0); // 红砖顶墙
|
|
102
|
+
rect(0,0,W,6,"#171310");
|
|
103
|
+
rect(0,TOPW-7,W,7,"#4a3626"); rect(0,TOPW-7,W,2,"#5f4630"); // 木梁压边
|
|
104
|
+
rect(0,TOPW,W,5,"rgba(12,8,20,.35)"); // 墙脚阴影
|
|
105
|
+
rect(0,TOPW,4,H-TOPW,"rgba(12,8,20,.30)"); // 左右墙沿
|
|
106
|
+
rect(W-4,TOPW,4,H-TOPW,"rgba(12,8,20,.30)");
|
|
107
|
+
const p = SKY[zone]; // 4 扇窗,窗外=当前进度时辰
|
|
108
|
+
for (let i=0;i<4;i++) {
|
|
109
|
+
const x = 96 + i*168, y = 7, w = 52, h = 32;
|
|
110
|
+
rect(x-3,y-3,w+6,h+6,"#241f1a");
|
|
111
|
+
for (let b=0;b<3;b++) rect(x, y+b*h/3, w, h/3+1, p[b]);
|
|
112
|
+
if (zone==="day" && i===1) { rect(x+34,y+5,9,9,"#f5e8b0"); }
|
|
113
|
+
if (zone==="dawn" && i===0) { rect(x+8,y+h-12,10,5,"#f0c890"); }
|
|
114
|
+
if (zone==="dusk" && i===2) { rect(x+30,y+h-14,11,6,"#e8a060"); }
|
|
115
|
+
if (zone==="night") { if (i===1) { rect(x+34,y+5,8,8,"#e8e2d0");
|
|
116
|
+
rect(x+35,y+6,2,2,"#c8c2b0"); rect(x+38,y+9,2,2,"#c8c2b0"); }
|
|
117
|
+
for (let s2=0;s2<3;s2++) if ((frame>>4)%3 !== s2)
|
|
118
|
+
rect(x+4+seed(s2+i)*44, y+3+seed(s2+9)*24, 2,2,"#e8e2d0"); }
|
|
119
|
+
if (zone==="day" || zone==="dawn") {
|
|
120
|
+
cx.save(); cx.beginPath(); cx.rect(x,y,w,h); cx.clip();
|
|
121
|
+
const cxp = x + ((frame*0.22 + i*53) % (w+30)) - 15;
|
|
122
|
+
rect(cxp, y+6+(i%2)*8, 14, 4, "rgba(250,246,236,.85)"); cx.restore(); }
|
|
123
|
+
rect(x-3, y+h/2-1, w+6, 2, "#241f1a");
|
|
124
|
+
if (i%2===0) tile("plant2", x+w-6, y+h-8, 1); // 窗台盆栽
|
|
125
|
+
else tile("plant", x-12, y+h-8, 1);
|
|
126
|
+
}
|
|
127
|
+
tile("art1", 40, 10, 2); tile("gold", 660, 8, 2); // 顶墙挂画
|
|
128
|
+
const ckx = 24, cky = 12; // 挂钟
|
|
129
|
+
rect(ckx-2,cky-2,16,16,"#241f1a"); rect(ckx,cky,12,12,"#e8e2d0");
|
|
130
|
+
rect(ckx+5,cky+2,2,5,"#241f1a"); rect(ckx+6,cky+6,4,2,"#241f1a");
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// ---------- 深度排序渲染(y 小在后,y 大在前=离观众近) ----------
|
|
134
|
+
function drawSorted(ents) {
|
|
135
|
+
ents.sort((a,b) => a.by - b.by);
|
|
136
|
+
for (const e of ents) e.f();
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function podEnts(ents, idx, done) {
|
|
140
|
+
for (let i=0;i<8;i++) {
|
|
141
|
+
const P = POD[i], x = P.x, y = P.y,
|
|
142
|
+
active = i===idx && !done && mode==="run", passed = done || i<idx;
|
|
143
|
+
ents.push({ by: y+30, f: () => {
|
|
144
|
+
tile("rgA", x-32, y-14, 2); tile("rgB", x, y-14, 2); // 奶油地垫
|
|
145
|
+
tile("rgC", x-32, y+18, 2); tile("rgD", x, y+18, 2);
|
|
146
|
+
shadow(x, y+30, 30, 6);
|
|
147
|
+
tile("desk", x-24, y-18);
|
|
148
|
+
tile("lamp2", x+13, y-30, 1.1); // 桌灯
|
|
149
|
+
tile(active ? "mon" : "mon2", x-14, y-38, 1.75);
|
|
150
|
+
if (passed) { rect(x-11, y-35, 22, 17, "rgba(80,170,90,.85)");
|
|
151
|
+
cx.fillStyle="#eaf6ea"; cx.font="bold 11px monospace"; cx.textAlign="center";
|
|
152
|
+
cx.fillText("✓", x, y-22); }
|
|
153
|
+
else if (!active) rect(x-11, y-35, 22, 17, "rgba(24,20,34,.88)");
|
|
154
|
+
else if ((frame>>4)%4===0) rect(x-11, y-35, 22, 17, "rgba(159,216,240,.25)");
|
|
155
|
+
tile("chairF", x-14, y+16, 1.75); // 桌前椅(背对观众)
|
|
156
|
+
}});
|
|
157
|
+
if (i===3) ents.push({ by: P.y+26, f: () => { // Codex 审查员常驻 N4
|
|
158
|
+
shadow(P.x+44, P.y+26, 13, 4); tile("codex", P.x+22, P.y-22); }});
|
|
159
|
+
else if (i===5) ents.push({ by: P.y+28, f: () => { // 服务器机架(CI/测试机)
|
|
160
|
+
shadow(P.x+46, P.y+28, 13, 4);
|
|
161
|
+
tile("mon2", P.x+30, P.y-36, 2); tile("mon2", P.x+30, P.y-4, 2);
|
|
162
|
+
for (let k=0;k<4;k++) if ((frame>>3)%4!==k)
|
|
163
|
+
rect(P.x+36+k*6, P.y-30+((k%2)*32), 3, 3, k%2?"#7fdc6a":"#63b8b0"); }});
|
|
164
|
+
else if (PROPS[i]) ents.push({ by: P.y+28, f: () => {
|
|
165
|
+
shadow(P.x+46, P.y+28, 13, 4); tile(PROPS[i], P.x+30, P.y-4, 2); }});
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
function furnitureEnts(ents) {
|
|
170
|
+
ents.push({ by: 96, f: () => { // 咖啡台(靠顶墙)
|
|
171
|
+
shadow(608, 98, 52, 6);
|
|
172
|
+
tile("cntL", 560, 64, 2); tile("cntM", 592, 64, 2); tile("cntR", 624, 64, 2); }});
|
|
173
|
+
ents.push({ by: 98, f: () => { shadow(40, 98, 20, 5); tile("shelfA", 16, 56, 2.5); }}); // 书架
|
|
174
|
+
ents.push({ by: BENCH.y+34, f: () => { // 等候区:售货机+长椅
|
|
175
|
+
shadow(36, BENCH.y-14, 18, 5); tile("vend", 16, BENCH.y-62, 2);
|
|
176
|
+
shadow(BENCH.cx+22, BENCH.y+32, 26, 5);
|
|
177
|
+
tile("sofaM", BENCH.x, BENCH.y, 2); tile("sofaR", BENCH.x+32, BENCH.y, 2); }});
|
|
178
|
+
ents.push({ by: H-8, f: () => { // 角落绿植
|
|
179
|
+
tile("plant", 12, H-56, 2); tile("plant2", W-46, H-58, 2); }});
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
function person(n, x, y, bob) { // x,y = 脚底中心
|
|
183
|
+
return { by: y, f: () => { shadow(x, y+2, 14, 4, .32);
|
|
184
|
+
tile(n, x-24, y-46 + (bob ? ((frame>>3)%2) : 0)); } };
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
function lighting(idx, paused, done, zone) {
|
|
188
|
+
const lit = [];
|
|
189
|
+
if (mode==="run" && !done && !paused)
|
|
190
|
+
lit.push({x:POD[idx].x, y:POD[idx].y-10, c: staleRun ? "255,95,80" : "255,205,120", a:.26});
|
|
191
|
+
if (paused) lit.push({x:BENCH.cx+16, y:BENCH.y-10, c:"255,205,120", a:.24});
|
|
192
|
+
if (done || mode==="wait") lit.push({x:LOUNGE.x, y:LOUNGE.y, c:"255,205,120", a:.10});
|
|
193
|
+
cx.globalCompositeOperation = "lighter";
|
|
194
|
+
for (const L of lit) {
|
|
195
|
+
const g = cx.createRadialGradient(L.x,L.y,10, L.x,L.y,130);
|
|
196
|
+
g.addColorStop(0,"rgba("+L.c+","+L.a+")"); g.addColorStop(1,"rgba("+L.c+",0)");
|
|
197
|
+
cx.fillStyle = g; cx.fillRect(L.x-130, L.y-130, 260, 260);
|
|
198
|
+
}
|
|
199
|
+
cx.globalCompositeOperation = "source-over";
|
|
200
|
+
rect(0,0,W,H, TINT[zone]); // 时辰环境色
|
|
201
|
+
const v = cx.createRadialGradient(W/2, H*.44, H*.42, W/2, H*.52, W*.62);
|
|
202
|
+
v.addColorStop(0,"rgba(8,6,18,0)"); v.addColorStop(1,"rgba(8,6,18,.48)");
|
|
203
|
+
cx.fillStyle = v; cx.fillRect(0,0,W,H);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
function labels(idx, done) {
|
|
207
|
+
cx.font = "bold 11px ui-monospace,monospace"; cx.textAlign = "center";
|
|
208
|
+
for (let i=0;i<8;i++) {
|
|
209
|
+
const P = POD[i], active = i===idx && !done && mode==="run", passed = done || i<idx;
|
|
210
|
+
const t = NODES[i]+" "+PHASE[NODES[i]].slice(0,2);
|
|
211
|
+
cx.fillStyle = "rgba(20,14,8,.75)"; cx.fillText(t, P.x+1, P.y+53);
|
|
212
|
+
cx.fillStyle = active ? "#faf6ec" : passed ? "#8fdc78" : "#b8a888";
|
|
213
|
+
cx.fillText(t, P.x, P.y+52);
|
|
214
|
+
}
|
|
215
|
+
const name = (cur.feature ? cur.feature.replace(/^\d+\./,"") : "cm 工作流") + " 的办公室";
|
|
216
|
+
cx.font = "bold 12px ui-monospace,monospace";
|
|
217
|
+
const tw = cx.measureText("★ "+name+" ★").width + 24;
|
|
218
|
+
rect(W/2-tw/2, H-24, tw, 19, "#241f1a"); rect(W/2-tw/2+2, H-22, tw-4, 15, "#3a2c1e");
|
|
219
|
+
cx.fillStyle = "#f0c05a"; cx.fillText("★ "+name+" ★", W/2, H-10);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
function emote(ch, x, y, col) {
|
|
223
|
+
if ((frame>>4)%2) return;
|
|
224
|
+
cx.fillStyle = col; cx.font = "bold 17px monospace"; cx.textAlign = "center";
|
|
225
|
+
cx.fillText(ch, x, y);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
function drawIdle() {
|
|
229
|
+
room("night");
|
|
230
|
+
const ents = []; podEnts(ents, 0, false); furnitureEnts(ents);
|
|
231
|
+
ents.push({ by: LOUNGE.y+34, f: () => { // 中央沙发打盹
|
|
232
|
+
shadow(LOUNGE.x, LOUNGE.y+34, 66, 7);
|
|
233
|
+
tile("sofaL", LOUNGE.x-72, LOUNGE.y-6); tile("sofaM", LOUNGE.x-24, LOUNGE.y-6);
|
|
234
|
+
tile("sofaR", LOUNGE.x+24, LOUNGE.y-6); }});
|
|
235
|
+
ents.push(person("sleep", LOUNGE.x, LOUNGE.y+2, false));
|
|
236
|
+
drawSorted(ents); labels(0, false);
|
|
237
|
+
const zi = (frame>>4)%3;
|
|
238
|
+
cx.fillStyle="#cfc8e8"; cx.font="bold 13px monospace"; cx.textAlign="left";
|
|
239
|
+
cx.fillText("z".repeat(zi+1), LOUNGE.x+26, LOUNGE.y-40-zi*4);
|
|
240
|
+
lighting(0,false,false,"night");
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
function draw() {
|
|
244
|
+
frame++;
|
|
245
|
+
if (!loaded) { rect(0,0,W,H,"#0d0b16"); requestAnimationFrame(draw); return; }
|
|
246
|
+
if (mode==="wait") { drawIdle(); requestAnimationFrame(draw); return; }
|
|
247
|
+
const idx = Math.max(0, NODES.indexOf(cur.node)),
|
|
248
|
+
paused = cur.state==="paused_for_human", done = mode==="done",
|
|
249
|
+
zone = done ? "night" : ZONE(idx);
|
|
250
|
+
room(zone);
|
|
251
|
+
const ents = []; podEnts(ents, idx, done); furnitureEnts(ents);
|
|
252
|
+
let sat = false;
|
|
253
|
+
if (!done) {
|
|
254
|
+
const t = paused ? {x:BENCH.cx+16, y:BENCH.y+26} : {x:POD[idx].x-52, y:POD[idx].y+20};
|
|
255
|
+
const dx = t.x-wk.x, dy = t.y-wk.y, d = Math.hypot(dx,dy);
|
|
256
|
+
const spd = isDemo ? 8 : 2.6;
|
|
257
|
+
if (d>3) { wk.x += dx/d*Math.min(spd,d); wk.y += dy/d*Math.min(spd,d); }
|
|
258
|
+
const walking = d>3;
|
|
259
|
+
sat = paused && !walking;
|
|
260
|
+
ents.push(person("worker", wk.x, wk.y, walking));
|
|
261
|
+
if (sat) ents.push({ by: wk.y+1, f: () => { // 补画椅面盖腿=坐下
|
|
262
|
+
tile("sofaM", BENCH.x, BENCH.y, 2); tile("sofaR", BENCH.x+32, BENCH.y, 2); }});
|
|
263
|
+
} else {
|
|
264
|
+
ents.push({ by: LOUNGE.y+18, f: () => { shadow(LOUNGE.x, LOUNGE.y+18, 34, 7);
|
|
265
|
+
tile("tblO1", LOUNGE.x-24, LOUNGE.y-54); tile("tblO2", LOUNGE.x-24, LOUNGE.y-8); }});
|
|
266
|
+
ents.push(person("worker", LOUNGE.x-64, LOUNGE.y+6, true));
|
|
267
|
+
ents.push(person("celA", LOUNGE.x+64, LOUNGE.y+6, true));
|
|
268
|
+
ents.push(person("celB", LOUNGE.x-40, LOUNGE.y+52, true));
|
|
269
|
+
ents.push(person("celC", LOUNGE.x+40, LOUNGE.y+52, true));
|
|
270
|
+
}
|
|
271
|
+
if (paused) { drawSorted(ents.filter(e=>true)); rect(0,0,W,H,"rgba(10,8,22,.32)");
|
|
272
|
+
const again = []; again.push(person("worker", wk.x, wk.y, false));
|
|
273
|
+
if (sat) again.push({ by: wk.y+1, f: () => {
|
|
274
|
+
tile("sofaM", BENCH.x, BENCH.y, 2); tile("sofaR", BENCH.x+32, BENCH.y, 2); }});
|
|
275
|
+
drawSorted(again);
|
|
276
|
+
if (sat) emote("!", wk.x, wk.y-56, "#f5d95c");
|
|
277
|
+
} else {
|
|
278
|
+
drawSorted(ents);
|
|
279
|
+
if (staleRun && !done) emote("?", wk.x, wk.y-56, "#f08a80");
|
|
280
|
+
}
|
|
281
|
+
labels(idx, done);
|
|
282
|
+
if (done) {
|
|
283
|
+
if (frame%3===0) confetti.push({ x:Math.random()*W, y:-6, v:1+Math.random()*1.6,
|
|
284
|
+
w:Math.random()>.5?4:3, c:["#f0b03c","#f06a3c","#63b8b0","#95c86a","#8c78c8","#faf6ec"][Math.random()*6|0] });
|
|
285
|
+
confetti = confetti.filter(p => p.y < H-8);
|
|
286
|
+
for (const p of confetti) { p.y += p.v; rect(p.x + Math.sin((p.y+p.x)/14)*5, p.y, p.w, p.w+2, p.c); }
|
|
287
|
+
rect(W/2-104, 66, 208, 34, "#faf6ec"); rect(W/2-104, 66, 208, 4, "#241f1a");
|
|
288
|
+
rect(W/2-104, 96, 208, 4, "#241f1a"); rect(W/2-104, 66, 4, 34, "#241f1a"); rect(W/2+100, 66, 4, 34, "#241f1a");
|
|
289
|
+
cx.fillStyle="#1c1a14"; cx.font="bold 19px ui-monospace,monospace"; cx.textAlign="center";
|
|
290
|
+
cx.fillText("STAGE CLEAR!", W/2, 90);
|
|
291
|
+
}
|
|
292
|
+
lighting(idx, paused, done, zone);
|
|
293
|
+
requestAnimationFrame(draw);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
function hud() {
|
|
297
|
+
const paused = cur.state==="paused_for_human", done = mode==="done";
|
|
298
|
+
const ph = document.getElementById("phase");
|
|
299
|
+
if (mode==="wait") { ph.textContent = "😴 休息中(等 /cm-ai 启动)"; ph.className=""; }
|
|
300
|
+
else if (staleRun) { ph.textContent = "⚠ 可能已中断(去会话确认)"; ph.className="stale"; }
|
|
301
|
+
else { ph.textContent = done ? "STAGE CLEAR — 全部完成" :
|
|
302
|
+
(paused ? "🖐 等你确认" : "STAGE "+cur.node+" · "+(PHASE[cur.node]||"运行中"));
|
|
303
|
+
ph.className = paused ? "paused" : ""; }
|
|
304
|
+
document.getElementById("task").textContent =
|
|
305
|
+
mode==="wait" ? "" : [cur.feature.replace(/^\d+\./,""), cur.task].filter(Boolean).join(" · ");
|
|
306
|
+
const b = document.getElementById("bubble");
|
|
307
|
+
if (mode==="run" && cur.detail) {
|
|
308
|
+
b.style.display="block"; b.className = paused ? "paused" : "";
|
|
309
|
+
b.textContent = (paused ? "🖐 " : "") + cur.detail;
|
|
310
|
+
const idx = Math.max(0, NODES.indexOf(cur.node));
|
|
311
|
+
b.style.left = paused ? (BENCH.cx/W*100+"%")
|
|
312
|
+
: (Math.min(86, Math.max(14, POD[idx].x/W*100)) + "%");
|
|
313
|
+
b.style.top = paused ? ((BENCH.y-58)/H*100+"%") : ((POD[idx].y-34)/H*100 + "%");
|
|
314
|
+
} else b.style.display = "none";
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
// 上次收工小记:读度量汇总.md 最后一节
|
|
318
|
+
async function loadNote() {
|
|
319
|
+
try {
|
|
320
|
+
const md = await (await fetch("度量汇总.md?ts="+Date.now())).text();
|
|
321
|
+
if (md.startsWith("<")) return;
|
|
322
|
+
const secs = md.trim().split(/\n(?=#)/), last = secs[secs.length-1];
|
|
323
|
+
const lines = last.split("\n").filter(l=>l.trim().startsWith("-")).slice(0,4);
|
|
324
|
+
if (!lines.length) return;
|
|
325
|
+
const n = document.getElementById("note");
|
|
326
|
+
n.innerHTML = "<b>📋 上次收工小记</b>\n" + lines.join("\n").replace(/</g,"<");
|
|
327
|
+
n.style.display = "block";
|
|
328
|
+
} catch {}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
const DEMO = [
|
|
332
|
+
["N1","running","正在检查项目环境和版本控制","",""],
|
|
333
|
+
["N2","running","正在读需求、排任务","1.market-board",""],
|
|
334
|
+
["N3","running","正在开发行情数据接口","1.market-board","T-005"],
|
|
335
|
+
["N4","running","第1轮代码审查进行中","1.market-board","T-005"],
|
|
336
|
+
["N4","paused_for_human","确认一下:原型里有3个按钮点了没反应,要做吗?","1.market-board","T-006"],
|
|
337
|
+
["N5","running","保存进度:行情页面完成","1.market-board","T-006"],
|
|
338
|
+
["N6","running","质量检测和业务走查","1.market-board",""],
|
|
339
|
+
["N7","running","整理现场,准备下一个任务","1.market-board",""],
|
|
340
|
+
["N8","running","收尾:整理文档和发布清单","",""],
|
|
341
|
+
["N8","done","全部完成","",""]];
|
|
342
|
+
const q = new URLSearchParams(location.search);
|
|
343
|
+
const isDemo = q.has("demo"), isIdleDemo = q.has("idle");
|
|
344
|
+
|
|
345
|
+
async function poll() {
|
|
346
|
+
if (isIdleDemo) { mode="wait"; hud(); loadNote(); return; }
|
|
347
|
+
if (isDemo) {
|
|
348
|
+
const [node,state,detail,feature,task] = DEMO[(Math.floor(Date.now()/2600))%DEMO.length];
|
|
349
|
+
cur = {node,state,detail,feature,task};
|
|
350
|
+
mode = state==="done" ? "done" : "run"; staleRun = false; setBar(4,6);
|
|
351
|
+
} else {
|
|
352
|
+
try {
|
|
353
|
+
const res = await fetch(".cm-status.json?ts="+Date.now());
|
|
354
|
+
if (!res.ok) throw 0;
|
|
355
|
+
const s = await res.json();
|
|
356
|
+
cur = { node:s.node||"N1", state:s.state||"running", detail:s.detail||"",
|
|
357
|
+
feature:s.feature||"", task:s.task||"" };
|
|
358
|
+
mode = cur.state==="done" ? "done" : "run";
|
|
359
|
+
if (firstSnap && mode==="run") { firstSnap = false;
|
|
360
|
+
if (cur.state==="paused_for_human") { wk.x = BENCH.cx+16; wk.y = BENCH.y+26; }
|
|
361
|
+
else { const P = POD[Math.max(0,NODES.indexOf(cur.node))];
|
|
362
|
+
wk.x = P.x-52; wk.y = P.y+20; } }
|
|
363
|
+
const lm = res.headers.get("last-modified"); // 中断检测(阈值 10 分钟)
|
|
364
|
+
staleRun = !!(lm && mode==="run" && cur.state!=="paused_for_human"
|
|
365
|
+
&& (Date.now()-new Date(lm).getTime()) > 600_000);
|
|
366
|
+
if (cur.feature && mode!=="wait") {
|
|
367
|
+
const md = await (await fetch(cur.feature+"/tasks.md?ts="+Date.now())).text();
|
|
368
|
+
const items = md.match(/^- \[( |x)\] T-\d+/gm)||[];
|
|
369
|
+
setBar(items.filter(l=>l.includes("[x]")).length, items.length);
|
|
370
|
+
} else setBar(0,0);
|
|
371
|
+
document.getElementById("hint").textContent = "";
|
|
372
|
+
document.getElementById("note").style.display = mode==="done" ? "" : "none";
|
|
373
|
+
if (mode==="done") loadNote();
|
|
374
|
+
} catch { mode = "wait"; setBar(0,0); loadNote();
|
|
375
|
+
document.getElementById("hint").textContent = "😴 值班中"; }
|
|
376
|
+
}
|
|
377
|
+
hud(); setTimeout(poll, isDemo?400:2000);
|
|
378
|
+
}
|
|
379
|
+
function setBar(d,t){
|
|
380
|
+
document.getElementById("fill").style.width = t ? (100*d/t)+"%" : "0";
|
|
381
|
+
document.getElementById("count").textContent = t ? d+"/"+t : "";
|
|
382
|
+
document.getElementById("coins").textContent = d ? "⛁ "+d : "";
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
draw(); poll();
|
|
386
|
+
</script>
|
|
387
|
+
</body>
|
|
388
|
+
</html>
|