@bolloon/bolloon-agent 0.1.36 → 0.1.38
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/package.json +2 -2
- package/.auto-evolve-calls +0 -1
- package/.last-auto-evolve-baseline +0 -1
- package/.playwright-mcp/page-2026-06-16T07-51-45-706Z.yml +0 -130
- package/.playwright-mcp/page-2026-06-16T07-56-44-116Z.yml +0 -131
- package/Bolloon.md +0 -144
- package/Dive-into/CITATION.cff +0 -17
- package/Dive-into/LICENSE +0 -25
- package/Dive-into/README.md +0 -598
- package/Dive-into/README_zh.md +0 -599
- package/Dive-into/assets/context.png +0 -0
- package/Dive-into/assets/extensibility.png +0 -0
- package/Dive-into/assets/iteration.png +0 -0
- package/Dive-into/assets/layered_architecture.png +0 -0
- package/Dive-into/assets/main_structure.png +0 -0
- package/Dive-into/assets/permission.png +0 -0
- package/Dive-into/assets/session_compact.png +0 -0
- package/Dive-into/assets/subagent.png +0 -0
- package/Dive-into/paper/Dive_into_Claude_Code.pdf +0 -0
- package/dist/agents/constraint-layer.js.map +0 -1
- package/dist/agents/pi-sdk.js.map +0 -1
- package/dist/agents/workflow-engine.js.map +0 -1
- package/dist/bollharness/src/index.js +0 -5
- package/dist/bollharness/src/scripts/checks/check_adr_plan_numbering.js +0 -6
- package/dist/bollharness/src/scripts/checks/check_api_types.js +0 -45
- package/dist/bollharness/src/scripts/checks/check_artifact_link.js +0 -146
- package/dist/bollharness/src/scripts/checks/check_bridge_deps.js +0 -6
- package/dist/bollharness/src/scripts/checks/check_bugfix_binding.js +0 -6
- package/dist/bollharness/src/scripts/checks/check_bugfix_binding_ci.js +0 -6
- package/dist/bollharness/src/scripts/checks/check_doc_file_references.js +0 -6
- package/dist/bollharness/src/scripts/checks/check_doc_freshness.js +0 -135
- package/dist/bollharness/src/scripts/checks/check_doc_links.js +0 -31
- package/dist/bollharness/src/scripts/checks/check_file_existence_claims.js +0 -6
- package/dist/bollharness/src/scripts/checks/check_fragment_integrity.js +0 -34
- package/dist/bollharness/src/scripts/checks/check_hook_installed.js +0 -63
- package/dist/bollharness/src/scripts/checks/check_issue_closure.js +0 -41
- package/dist/bollharness/src/scripts/checks/check_mcp_parity.js +0 -6
- package/dist/bollharness/src/scripts/checks/check_security.js +0 -48
- package/dist/bollharness/src/scripts/checks/check_skill_parity.js +0 -6
- package/dist/bollharness/src/scripts/checks/check_versions.js +0 -6
- package/dist/bollharness/src/scripts/checks/finding.js +0 -13
- package/dist/bollharness/src/scripts/checks/next_decision_number.js +0 -20
- package/dist/bollharness/src/scripts/checks/regenerate_magic_docs.js +0 -6
- package/dist/bollharness/src/scripts/ci/detect_rebaseline_triggers.js +0 -8
- package/dist/bollharness/src/scripts/ci/scan_subprocess_cfg.js +0 -8
- package/dist/bollharness/src/scripts/ci/scan_verify_artifacts.js +0 -8
- package/dist/bollharness/src/scripts/ci/scan_yaml_schema.js +0 -8
- package/dist/bollharness/src/scripts/context_router.js +0 -67
- package/dist/bollharness/src/scripts/deploy-guard.js +0 -157
- package/dist/bollharness/src/scripts/guard-feedback.js +0 -192
- package/dist/bollharness/src/scripts/guard_router.js +0 -158
- package/dist/bollharness/src/scripts/hooks/_hook_output.js +0 -6
- package/dist/bollharness/src/scripts/hooks/auto-python3.js +0 -6
- package/dist/bollharness/src/scripts/hooks/deploy-progress-on-session-end.js +0 -6
- package/dist/bollharness/src/scripts/hooks/failure-analyzer.js +0 -6
- package/dist/bollharness/src/scripts/hooks/gate-judgment-inject.js +0 -92
- package/dist/bollharness/src/scripts/hooks/gate-transition-judgment.js +0 -63
- package/dist/bollharness/src/scripts/hooks/inbox-ack.js +0 -6
- package/dist/bollharness/src/scripts/hooks/inbox-inject-on-start.js +0 -6
- package/dist/bollharness/src/scripts/hooks/inbox-validate.js +0 -6
- package/dist/bollharness/src/scripts/hooks/inbox-write-ledger.js +0 -6
- package/dist/bollharness/src/scripts/hooks/initializer-agent.js +0 -6
- package/dist/bollharness/src/scripts/hooks/loop-detection.js +0 -73
- package/dist/bollharness/src/scripts/hooks/owner-guard.js +0 -6
- package/dist/bollharness/src/scripts/hooks/precompact.js +0 -6
- package/dist/bollharness/src/scripts/hooks/review-agent-gatekeeper.js +0 -6
- package/dist/bollharness/src/scripts/hooks/risk-tracker.js +0 -108
- package/dist/bollharness/src/scripts/hooks/sanitize-on-read.js +0 -6
- package/dist/bollharness/src/scripts/hooks/session-reflection.js +0 -7
- package/dist/bollharness/src/scripts/hooks/session-start-magic-docs.js +0 -7
- package/dist/bollharness/src/scripts/hooks/session-start-reset-risk.js +0 -7
- package/dist/bollharness/src/scripts/hooks/session-start-toolkit-reminder.js +0 -7
- package/dist/bollharness/src/scripts/hooks/stop-evaluator.js +0 -157
- package/dist/bollharness/src/scripts/hooks/tool-call-counter.js +0 -6
- package/dist/bollharness/src/scripts/hooks/trace-analyzer.js +0 -10
- package/dist/bollharness/src/scripts/install/install-trust-token.js +0 -7
- package/dist/bollharness/src/scripts/install/multi_project_registry.js +0 -9
- package/dist/bollharness/src/scripts/install/phase2_auto.js +0 -21
- package/dist/bollharness/src/scripts/install/pre_commit_installer.js +0 -6
- package/dist/bollharness/src/scripts/install/tier_selector.js +0 -7
- package/dist/bollharness/src/scripts/install/transcript_miner.js +0 -7
- package/dist/bollharness/src/scripts/lib/claim_patterns.js +0 -10
- package/dist/bollharness/src/scripts/lib/sanitize_patterns.js +0 -12
- package/dist/bollharness/src/scripts/sanitize.js +0 -6
- package/dist/bollharness-integration/context-router-judgment.js.map +0 -1
- package/dist/bollharness-integration/context-router.js.map +0 -1
- package/dist/bollharness-integration/gate-state-machine.js.map +0 -1
- package/dist/bollharness-integration/gate-transition-hooks.js.map +0 -1
- package/dist/bollharness-integration/guard-checker.js.map +0 -1
- package/dist/bollharness-integration/index.js.map +0 -1
- package/dist/bollharness-integration/integration.js.map +0 -1
- package/dist/bollharness-integration/llm/pi-ai.d.ts +0 -60
- package/dist/bollharness-integration/pi-ecosystem-colony/index.d.ts +0 -153
- package/dist/bollharness-integration/pi-ecosystem-goals/index.d.ts +0 -136
- package/dist/bollharness-integration/pi-ecosystem-judgment/decision.d.ts +0 -117
- package/dist/bollharness-integration/pi-ecosystem-judgment/distillation.d.ts +0 -78
- package/dist/bollharness-integration/pi-ecosystem-judgment/index.d.ts +0 -139
- package/dist/bollharness-integration/pi-ecosystem-mcp/index.d.ts +0 -127
- package/dist/bollharness-integration/pi-ecosystem-subagents/index.d.ts +0 -95
- package/dist/bollharness-integration/skill-adapter.js.map +0 -1
- package/dist/constraint-runtime/src/_archive_helper.js +0 -9
- package/dist/constraint-runtime/src/agent/coordinator.js +0 -48
- package/dist/constraint-runtime/src/agent/index.js +0 -1
- package/dist/constraint-runtime/src/assistant/index.js +0 -12
- package/dist/constraint-runtime/src/bootstrap/index.js +0 -12
- package/dist/constraint-runtime/src/bootstrap_graph.js +0 -13
- package/dist/constraint-runtime/src/bridge/index.js +0 -12
- package/dist/constraint-runtime/src/buddy/index.js +0 -12
- package/dist/constraint-runtime/src/cli/index.js +0 -12
- package/dist/constraint-runtime/src/command_graph.js +0 -10
- package/dist/constraint-runtime/src/commands.js +0 -60
- package/dist/constraint-runtime/src/components/index.js +0 -12
- package/dist/constraint-runtime/src/constants/index.js +0 -12
- package/dist/constraint-runtime/src/constraint/budget.js +0 -22
- package/dist/constraint-runtime/src/constraint/budget.js.map +0 -1
- package/dist/constraint-runtime/src/constraint/index.js +0 -2
- package/dist/constraint-runtime/src/constraint/permission.js +0 -20
- package/dist/constraint-runtime/src/constraint/permission.js.map +0 -1
- package/dist/constraint-runtime/src/context.js +0 -30
- package/dist/constraint-runtime/src/coordinator/index.js +0 -12
- package/dist/constraint-runtime/src/cost_hook.js +0 -4
- package/dist/constraint-runtime/src/cost_tracker.js +0 -8
- package/dist/constraint-runtime/src/deferred_init.js +0 -10
- package/dist/constraint-runtime/src/direct_modes.js +0 -6
- package/dist/constraint-runtime/src/dynamic-tool-loader.js +0 -85
- package/dist/constraint-runtime/src/entrypoints/index.js +0 -12
- package/dist/constraint-runtime/src/execution_registry.js +0 -44
- package/dist/constraint-runtime/src/history.js +0 -9
- package/dist/constraint-runtime/src/hooks/index.js +0 -12
- package/dist/constraint-runtime/src/index.js +0 -26
- package/dist/constraint-runtime/src/ink.js +0 -4
- package/dist/constraint-runtime/src/keybindings/index.js +0 -12
- package/dist/constraint-runtime/src/memdir/index.js +0 -12
- package/dist/constraint-runtime/src/migrations/index.js +0 -12
- package/dist/constraint-runtime/src/models.js +0 -1
- package/dist/constraint-runtime/src/models.js.map +0 -1
- package/dist/constraint-runtime/src/moreright/index.js +0 -12
- package/dist/constraint-runtime/src/native_ts/index.js +0 -12
- package/dist/constraint-runtime/src/output_styles/index.js +0 -12
- package/dist/constraint-runtime/src/parity_audit.js +0 -12
- package/dist/constraint-runtime/src/plugins/index.js +0 -12
- package/dist/constraint-runtime/src/port_manifest.js +0 -11
- package/dist/constraint-runtime/src/prefetch.js +0 -9
- package/dist/constraint-runtime/src/query.js +0 -1
- package/dist/constraint-runtime/src/remote/index.js +0 -12
- package/dist/constraint-runtime/src/remote_runtime.js +0 -9
- package/dist/constraint-runtime/src/runtime/index.js +0 -1
- package/dist/constraint-runtime/src/runtime/session.js +0 -35
- package/dist/constraint-runtime/src/schemas/index.js +0 -12
- package/dist/constraint-runtime/src/screens/index.js +0 -12
- package/dist/constraint-runtime/src/server/index.js +0 -12
- package/dist/constraint-runtime/src/services/index.js +0 -12
- package/dist/constraint-runtime/src/session_store.js +0 -22
- package/dist/constraint-runtime/src/setup.js +0 -30
- package/dist/constraint-runtime/src/skills/index.js +0 -1
- package/dist/constraint-runtime/src/skills/skill-registry.js +0 -28
- package/dist/constraint-runtime/src/state/index.js +0 -12
- package/dist/constraint-runtime/src/system_init.js +0 -20
- package/dist/constraint-runtime/src/thinking/engine.js +0 -42
- package/dist/constraint-runtime/src/thinking/index.js +0 -1
- package/dist/constraint-runtime/src/tool_pool.js +0 -8
- package/dist/constraint-runtime/src/tools/OpenCLI/execAdapter.js +0 -7
- package/dist/constraint-runtime/src/tools/OpenCLI/listAdapters.js +0 -7
- package/dist/constraint-runtime/src/tools/OpenCLI/runCommand.js +0 -7
- package/dist/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.js +0 -6
- package/dist/constraint-runtime/src/tools/PolymarketSDK/createOrder.js +0 -6
- package/dist/constraint-runtime/src/tools/PolymarketSDK/getMarket.js +0 -5
- package/dist/constraint-runtime/src/tools/PolymarketSDK/getOrders.js +0 -6
- package/dist/constraint-runtime/src/tools/PolymarketSDK/listMarkets.js +0 -4
- package/dist/constraint-runtime/src/tools/SafeSDK/confirmTransaction.js +0 -6
- package/dist/constraint-runtime/src/tools/SafeSDK/createTransaction.js +0 -8
- package/dist/constraint-runtime/src/tools/SafeSDK/deploySafe.js +0 -6
- package/dist/constraint-runtime/src/tools/SafeSDK/executeTransaction.js +0 -6
- package/dist/constraint-runtime/src/tools/SafeSDK/getBalance.js +0 -6
- package/dist/constraint-runtime/src/tools/SafeSDK/getPendingTransactions.js +0 -6
- package/dist/constraint-runtime/src/tools/SafeSDK/proposeTransaction.js +0 -6
- package/dist/constraint-runtime/src/tools/WalletTools/autoPay.js +0 -29
- package/dist/constraint-runtime/src/tools/WalletTools/createWallet.js +0 -10
- package/dist/constraint-runtime/src/tools/WalletTools/getBalance.js +0 -13
- package/dist/constraint-runtime/src/tools/WalletTools/importWallet.js +0 -22
- package/dist/constraint-runtime/src/tools/WalletTools/sendTransaction.js +0 -25
- package/dist/constraint-runtime/src/tools/WalletTools/signMessage.js +0 -10
- package/dist/constraint-runtime/src/tools/WalletTools/transferToken.js +0 -25
- package/dist/constraint-runtime/src/tools.js +0 -80
- package/dist/constraint-runtime/src/transcript.js +0 -19
- package/dist/constraint-runtime/src/types/index.js +0 -12
- package/dist/constraint-runtime/src/upstream_proxy/index.js +0 -12
- package/dist/constraint-runtime/src/utils/index.js +0 -12
- package/dist/constraint-runtime/src/vim/index.js +0 -12
- package/dist/constraint-runtime/src/voice/index.js +0 -12
- package/dist/constraints/index.js.map +0 -1
- package/dist/documents/reader.js.map +0 -1
- package/dist/llm/config-store.js.map +0 -1
- package/dist/llm/pi-ai.js.map +0 -1
- package/dist/network/agent-network.js.map +0 -1
- package/dist/network/iroh-integration.js.map +0 -1
- package/dist/network/iroh-transport.js.map +0 -1
- package/dist/network/p2p.js.map +0 -1
- package/dist/network/storage/adapters/json-adapter.js.map +0 -1
- package/dist/pi-ecosystem-colony/index.js.map +0 -1
- package/dist/pi-ecosystem-goals/index.js.map +0 -1
- package/dist/pi-ecosystem-judgment/decision.js.map +0 -1
- package/dist/pi-ecosystem-judgment/distillation.js.map +0 -1
- package/dist/pi-ecosystem-judgment/human-value-store.js.map +0 -1
- package/dist/pi-ecosystem-judgment/index.js.map +0 -1
- package/dist/pi-ecosystem-judgment/value-injection.js.map +0 -1
- package/dist/pi-ecosystem-mcp/index.js.map +0 -1
- package/dist/pi-ecosystem-subagents/index.js.map +0 -1
- package/dist/social/ant-colony/AdaptiveHeartbeat.js.map +0 -1
- package/dist/social/ant-colony/PheromoneEngine.js.map +0 -1
- package/dist/social/ant-colony/types.js.map +0 -1
- package/dist/social/channels/ChannelManager.js.map +0 -1
- package/dist/social/channels/DiapChannelBridge.js.map +0 -1
- package/dist/social/channels/InterestMatcher.js.map +0 -1
- package/dist/social/channels/types.js.map +0 -1
- package/dist/social/global-shared-context.js.map +0 -1
- package/dist/social/heartbeat.js.map +0 -1
- package/lefthook.yml +0 -33
- package/scripts/auto-evolve-loop.ts +0 -481
- package/scripts/build-web.ts +0 -116
- package/scripts/diff-reviewer.ts +0 -159
- package/scripts/validate-system-prompt.ts +0 -142
- package/scripts/weekly-report.ts +0 -364
- package/src/agents/agent-manifest-protocol.ts +0 -117
- package/src/agents/constraint-layer.ts +0 -309
- package/src/agents/iroh-secret.ts +0 -32
- package/src/agents/p2p-chat-tools.ts +0 -383
- package/src/agents/p2p-document-tools.ts +0 -347
- package/src/agents/permission-mode.ts +0 -127
- package/src/agents/pi-sdk.ts +0 -2895
- package/src/agents/pre-tool-validator.ts +0 -213
- package/src/agents/protocol.ts +0 -398
- package/src/agents/shell-guard.ts +0 -417
- package/src/agents/shell-tool.ts +0 -103
- package/src/agents/skill-loader.ts +0 -202
- package/src/agents/subagent-manager.ts +0 -553
- package/src/agents/workflow-engine.ts +0 -332
- package/src/agents/workflow-pivot-loop.ts +0 -766
- package/src/bollharness/.sanitize-report.json +0 -13
- package/src/bollharness/CLAUDE.md +0 -73
- package/src/bollharness/LICENSE +0 -21
- package/src/bollharness/README.md +0 -143
- package/src/bollharness/README.zh-CN.md +0 -131
- package/src/bollharness/package.json +0 -20
- package/src/bollharness/reference/SOURCE-COMMIT.txt +0 -3
- package/src/bollharness/reference/boll-reference/scripts/hooks/.sanitize-report.json +0 -12
- package/src/bollharness/reference/boll-reference/scripts/hooks/find-boll-root.sh +0 -27
- package/src/bollharness/reference/boll-reference/scripts/hooks/precompact.sh +0 -57
- package/src/bollharness/reference/boll-reference/scripts/hooks/stop-evaluator.md +0 -57
- package/src/bollharness/schemas/metrics-jsonl-allowlist.json +0 -67
- package/src/bollharness/scripts/checks/next_decision_number.sh +0 -48
- package/src/bollharness/scripts/ci/count-components.sh +0 -65
- package/src/bollharness/scripts/context-fragments/artifact-linkage.md +0 -14
- package/src/bollharness/scripts/context-fragments/auth-consumers.md +0 -17
- package/src/bollharness/scripts/context-fragments/bridge-constitution.md +0 -13
- package/src/bollharness/scripts/context-fragments/catalyst-distributed.md +0 -18
- package/src/bollharness/scripts/context-fragments/closure-checklist.md +0 -13
- package/src/bollharness/scripts/context-fragments/contract-consumers.md +0 -15
- package/src/bollharness/scripts/context-fragments/db-shared-structures.md +0 -15
- package/src/bollharness/scripts/context-fragments/fixed-three-layers.md +0 -19
- package/src/bollharness/scripts/context-fragments/general-dev-principles.md +0 -11
- package/src/bollharness/scripts/context-fragments/issue-first.md +0 -8
- package/src/bollharness/scripts/context-fragments/mcp-parity.md +0 -16
- package/src/bollharness/scripts/context-fragments/pi-agent-operations.md +0 -108
- package/src/bollharness/scripts/context-fragments/protocol-consumers.md +0 -15
- package/src/bollharness/scripts/context-fragments/run-events-consumers.md +0 -15
- package/src/bollharness/scripts/context-fragments/scene-fidelity.md +0 -13
- package/src/bollharness/scripts/context-fragments/truth-source-hierarchy.md +0 -15
- package/src/bollharness/scripts/context-fragments/two-language.md +0 -15
- package/src/bollharness/scripts/context-fragments/version-sources.md +0 -14
- package/src/bollharness/scripts/hooks/find-project-root.sh +0 -47
- package/src/bollharness/scripts/hooks/inbox-poll.sh +0 -78
- package/src/bollharness/scripts/hooks/precompact.sh +0 -56
- package/src/bollharness/scripts/hooks/stop-evaluator.md +0 -83
- package/src/bollharness/scripts/sync-from-upstream.sh +0 -281
- package/src/bollharness/src/index.ts +0 -5
- package/src/bollharness/src/scripts/checks/check_adr_plan_numbering.ts +0 -11
- package/src/bollharness/src/scripts/checks/check_api_types.ts +0 -52
- package/src/bollharness/src/scripts/checks/check_artifact_link.ts +0 -156
- package/src/bollharness/src/scripts/checks/check_bridge_deps.ts +0 -11
- package/src/bollharness/src/scripts/checks/check_bugfix_binding.ts +0 -11
- package/src/bollharness/src/scripts/checks/check_bugfix_binding_ci.ts +0 -11
- package/src/bollharness/src/scripts/checks/check_doc_file_references.ts +0 -11
- package/src/bollharness/src/scripts/checks/check_doc_freshness.ts +0 -141
- package/src/bollharness/src/scripts/checks/check_doc_links.ts +0 -36
- package/src/bollharness/src/scripts/checks/check_file_existence_claims.ts +0 -11
- package/src/bollharness/src/scripts/checks/check_fragment_integrity.ts +0 -40
- package/src/bollharness/src/scripts/checks/check_hook_installed.ts +0 -70
- package/src/bollharness/src/scripts/checks/check_issue_closure.ts +0 -51
- package/src/bollharness/src/scripts/checks/check_mcp_parity.ts +0 -11
- package/src/bollharness/src/scripts/checks/check_security.ts +0 -54
- package/src/bollharness/src/scripts/checks/check_skill_parity.ts +0 -11
- package/src/bollharness/src/scripts/checks/check_versions.ts +0 -11
- package/src/bollharness/src/scripts/checks/finding.ts +0 -35
- package/src/bollharness/src/scripts/checks/next_decision_number.ts +0 -24
- package/src/bollharness/src/scripts/checks/regenerate_magic_docs.ts +0 -11
- package/src/bollharness/src/scripts/ci/detect_rebaseline_triggers.ts +0 -14
- package/src/bollharness/src/scripts/ci/scan_subprocess_cfg.ts +0 -14
- package/src/bollharness/src/scripts/ci/scan_verify_artifacts.ts +0 -14
- package/src/bollharness/src/scripts/ci/scan_yaml_schema.ts +0 -14
- package/src/bollharness/src/scripts/context_router.ts +0 -76
- package/src/bollharness/src/scripts/deploy-guard.ts +0 -182
- package/src/bollharness/src/scripts/guard-feedback.ts +0 -215
- package/src/bollharness/src/scripts/guard_router.ts +0 -194
- package/src/bollharness/src/scripts/hooks/_hook_output.js +0 -3
- package/src/bollharness/src/scripts/hooks/_hook_output.ts +0 -11
- package/src/bollharness/src/scripts/hooks/auto-python3.ts +0 -10
- package/src/bollharness/src/scripts/hooks/deploy-progress-on-session-end.ts +0 -10
- package/src/bollharness/src/scripts/hooks/failure-analyzer.ts +0 -10
- package/src/bollharness/src/scripts/hooks/gate-judgment-inject.ts +0 -111
- package/src/bollharness/src/scripts/hooks/gate-transition-judgment.ts +0 -74
- package/src/bollharness/src/scripts/hooks/inbox-ack.ts +0 -10
- package/src/bollharness/src/scripts/hooks/inbox-inject-on-start.ts +0 -10
- package/src/bollharness/src/scripts/hooks/inbox-validate.ts +0 -10
- package/src/bollharness/src/scripts/hooks/inbox-write-ledger.ts +0 -10
- package/src/bollharness/src/scripts/hooks/initializer-agent.ts +0 -10
- package/src/bollharness/src/scripts/hooks/loop-detection.ts +0 -83
- package/src/bollharness/src/scripts/hooks/owner-guard.ts +0 -10
- package/src/bollharness/src/scripts/hooks/precompact.ts +0 -10
- package/src/bollharness/src/scripts/hooks/review-agent-gatekeeper.ts +0 -10
- package/src/bollharness/src/scripts/hooks/risk-tracker.ts +0 -121
- package/src/bollharness/src/scripts/hooks/sanitize-on-read.ts +0 -10
- package/src/bollharness/src/scripts/hooks/session-reflection.ts +0 -12
- package/src/bollharness/src/scripts/hooks/session-start-magic-docs.ts +0 -12
- package/src/bollharness/src/scripts/hooks/session-start-reset-risk.ts +0 -12
- package/src/bollharness/src/scripts/hooks/session-start-toolkit-reminder.ts +0 -12
- package/src/bollharness/src/scripts/hooks/stop-evaluator.ts +0 -164
- package/src/bollharness/src/scripts/hooks/tool-call-counter.ts +0 -10
- package/src/bollharness/src/scripts/hooks/trace-analyzer.ts +0 -14
- package/src/bollharness/src/scripts/install/install-trust-token.ts +0 -13
- package/src/bollharness/src/scripts/install/multi_project_registry.ts +0 -13
- package/src/bollharness/src/scripts/install/phase2_auto.ts +0 -28
- package/src/bollharness/src/scripts/install/pre_commit_installer.ts +0 -10
- package/src/bollharness/src/scripts/install/tier_selector.ts +0 -10
- package/src/bollharness/src/scripts/install/transcript_miner.ts +0 -13
- package/src/bollharness/src/scripts/lib/claim_patterns.ts +0 -11
- package/src/bollharness/src/scripts/lib/sanitize_patterns.ts +0 -13
- package/src/bollharness/src/scripts/sanitize.ts +0 -9
- package/src/bollharness/templates/persona/default.json +0 -19
- package/src/bollharness/templates/scaffold/.gitignore.append +0 -16
- package/src/bollharness/templates/scaffold/CLAUDE.md +0 -89
- package/src/bollharness-integration/channel-judgment-engine.ts +0 -634
- package/src/bollharness-integration/context-chain-router.ts +0 -474
- package/src/bollharness-integration/context-router-judgment.ts +0 -339
- package/src/bollharness-integration/context-router.ts +0 -583
- package/src/bollharness-integration/gate-state-machine.ts +0 -444
- package/src/bollharness-integration/gate-transition-hooks.ts +0 -137
- package/src/bollharness-integration/guard-checker.ts +0 -451
- package/src/bollharness-integration/index.ts +0 -195
- package/src/bollharness-integration/integration.ts +0 -538
- package/src/bollharness-integration/judgment-prompts.yaml +0 -535
- package/src/bollharness-integration/llm-judgment-engine.ts +0 -712
- package/src/bollharness-integration/skill-adapter.ts +0 -646
- package/src/bootstrap/bootstrap.ts +0 -135
- package/src/bootstrap/context-collector.ts +0 -371
- package/src/bootstrap/context-hierarchy.ts +0 -283
- package/src/bootstrap/lifecycle-hooks.ts +0 -289
- package/src/bootstrap/project-context.ts +0 -171
- package/src/cli/interface.ts +0 -211
- package/src/cli-entry.ts +0 -304
- package/src/constraints/index.ts +0 -6
- package/src/context-compaction/auto-compact.ts +0 -153
- package/src/context-compaction/budget-gate.ts +0 -32
- package/src/context-compaction/budget-reduce.ts +0 -37
- package/src/context-compaction/context-collapse.ts +0 -72
- package/src/context-compaction/index.ts +0 -24
- package/src/context-compaction/microcompact.ts +0 -54
- package/src/context-compaction/pipeline.ts +0 -133
- package/src/context-compaction/snip.ts +0 -51
- package/src/context-compaction/token-estimator.ts +0 -36
- package/src/context-compaction/types.ts +0 -99
- package/src/documents/reader.ts +0 -85
- package/src/documents/store.ts +0 -252
- package/src/electron-preload.ts +0 -25
- package/src/electron.ts +0 -200
- package/src/heartbeat/DaemonManager.ts +0 -283
- package/src/heartbeat/HealthMonitor.ts +0 -317
- package/src/heartbeat/StartupVerifier.ts +0 -223
- package/src/heartbeat/Watchdog.ts +0 -208
- package/src/heartbeat/index.ts +0 -109
- package/src/heartbeat/self-improve-bus.ts +0 -110
- package/src/heartbeat/types.ts +0 -82
- package/src/index.ts +0 -1724
- package/src/llm/audio-config-store.ts +0 -246
- package/src/llm/config-store.ts +0 -400
- package/src/llm/llm-judgment-client.ts +0 -471
- package/src/llm/pi-ai.ts +0 -653
- package/src/llm/system-prompt/health.ts +0 -159
- package/src/llm/system-prompt/layers/channel/local.md +0 -14
- package/src/llm/system-prompt/layers/channel/p2p-agent.md +0 -18
- package/src/llm/system-prompt/layers/channel/p2p-visitor.md +0 -19
- package/src/llm/system-prompt/layers/core/artifacts_storage.md +0 -89
- package/src/llm/system-prompt/layers/core/evenhandedness.md +0 -21
- package/src/llm/system-prompt/layers/core/hibs_reminders.md +0 -15
- package/src/llm/system-prompt/layers/core/identity.md +0 -37
- package/src/llm/system-prompt/layers/core/knowledge.md +0 -17
- package/src/llm/system-prompt/layers/core/memory_system.md +0 -12
- package/src/llm/system-prompt/layers/core/network_filesystem.md +0 -28
- package/src/llm/system-prompt/layers/core/refusal.md +0 -37
- package/src/llm/system-prompt/layers/core/tone.md +0 -31
- package/src/llm/system-prompt/layers/core/tools.thin.md +0 -13
- package/src/llm/system-prompt/layers/core/wellbeing.md +0 -41
- package/src/llm/system-prompt/layers/role/architect.md +0 -20
- package/src/llm/system-prompt/layers/role/expert.md +0 -19
- package/src/llm/system-prompt/layers/role/implementer.md +0 -15
- package/src/llm/system-prompt/layers/role/security.md +0 -15
- package/src/llm/system-prompt/layers/tool/artifacts.md +0 -72
- package/src/llm/system-prompt/layers/tool/bash.md +0 -25
- package/src/llm/system-prompt/layers/tool/hibs_api.md +0 -171
- package/src/llm/system-prompt/layers/tool/image_search.md +0 -70
- package/src/llm/system-prompt/layers/tool/manifest.md +0 -89
- package/src/llm/system-prompt/layers/tool/mcp_apps.md +0 -53
- package/src/llm/system-prompt/layers/tool/web_search.md +0 -83
- package/src/llm/system-prompt/registry.ts +0 -325
- package/src/llm/system-prompt/strip-hibsml.ts +0 -52
- package/src/llm/tool-manifest/ask_user_input.ts +0 -37
- package/src/llm/tool-manifest/bash.ts +0 -25
- package/src/llm/tool-manifest/create_file.ts +0 -26
- package/src/llm/tool-manifest/fetch_sports_data.ts +0 -28
- package/src/llm/tool-manifest/image_search.ts +0 -26
- package/src/llm/tool-manifest/index.ts +0 -88
- package/src/llm/tool-manifest/mcp.ts +0 -46
- package/src/llm/tool-manifest/message_compose.ts +0 -33
- package/src/llm/tool-manifest/places.ts +0 -86
- package/src/llm/tool-manifest/present_files.ts +0 -23
- package/src/llm/tool-manifest/recipe.ts +0 -42
- package/src/llm/tool-manifest/recommend_apps.ts +0 -25
- package/src/llm/tool-manifest/str_replace.ts +0 -29
- package/src/llm/tool-manifest/types.ts +0 -52
- package/src/llm/tool-manifest/view.ts +0 -26
- package/src/llm/tool-manifest/weather.ts +0 -29
- package/src/llm/tool-manifest/web.ts +0 -54
- package/src/llm/video-config-store.ts +0 -257
- package/src/network/agent-network.ts +0 -800
- package/src/network/hybrid-messenger.ts +0 -199
- package/src/network/iroh-bootstrap.ts +0 -57
- package/src/network/iroh-discovery.ts +0 -208
- package/src/network/iroh-integration.ts +0 -158
- package/src/network/iroh-transport.ts +0 -637
- package/src/network/known-peers.ts +0 -102
- package/src/network/p2p-direct.ts +0 -262
- package/src/network/p2p-secret.ts +0 -153
- package/src/network/p2p.ts +0 -964
- package/src/network/source-intent-broadcaster.ts +0 -242
- package/src/network/source-intent.ts +0 -167
- package/src/network/storage/adapters/json-adapter.ts +0 -454
- package/src/network/storage/index.ts +0 -203
- package/src/network/storage/types.ts +0 -166
- package/src/security/builtin-guards.ts +0 -162
- package/src/security/context-router-tool.ts +0 -122
- package/src/security/input-scanner.ts +0 -287
- package/src/security/react-harness.ts +0 -177
- package/src/security/tool-gate.ts +0 -294
- package/src/social/ant-colony/index.js +0 -19
- package/src/social/channels/ChannelManager.ts +0 -485
- package/src/social/channels/DiapChannelBridge.ts +0 -501
- package/src/social/channels/InterestMatcher.ts +0 -189
- package/src/social/channels/agent-workflow-config.json +0 -214
- package/src/social/channels/agent-workflow-config.yaml +0 -334
- package/src/social/channels/channel-agent-session.ts +0 -407
- package/src/social/channels/channel-heartbeat-agent.ts +0 -622
- package/src/social/channels/diap-doc-parser.ts +0 -282
- package/src/social/channels/harness-workflow-integrator.ts +0 -594
- package/src/social/channels/index.ts +0 -22
- package/src/social/channels/types.ts +0 -115
- package/src/social/global-shared-context.ts +0 -506
- package/src/social/heartbeat.ts +0 -1057
- package/src/social/persona/enhanced-persona.ts +0 -359
- package/src/types.d.ts +0 -12
- package/src/utils/auto-evolve-policy.ts +0 -138
- package/src/utils/auto-update.ts +0 -482
- package/src/utils/clamp.ts +0 -5
- package/src/web/agent-delegate-server.ts +0 -148
- package/src/web/api-config.html +0 -520
- package/src/web/client.js +0 -2352
- package/src/web/client.ts +0 -4326
- package/src/web/components/p2p/P2PModal.tsx +0 -416
- package/src/web/components/p2p/index.ts +0 -566
- package/src/web/components/p2p/index.tsx +0 -297
- package/src/web/components/p2p/p2p-connection.ts +0 -338
- package/src/web/components/p2p/p2p-identity.ts +0 -92
- package/src/web/components/p2p/p2p-manager.ts +0 -147
- package/src/web/components/p2p/p2p-messages.ts +0 -219
- package/src/web/components/p2p/p2p-modal.ts +0 -685
- package/src/web/components/p2p/p2p-store-memory.ts +0 -162
- package/src/web/components/p2p/p2p-tools.ts +0 -315
- package/src/web/components/p2p/types.ts +0 -170
- package/src/web/components/wallet-viem.mjs +0 -118
- package/src/web/design.md +0 -99
- package/src/web/icons/apple-touch-icon.png +0 -0
- package/src/web/icons/favicon-16x16.png +0 -0
- package/src/web/icons/favicon-192x192.png +0 -0
- package/src/web/icons/favicon-32x32.png +0 -0
- package/src/web/icons/favicon-48x48.png +0 -0
- package/src/web/icons/favicon-512x512.png +0 -0
- package/src/web/icons/favicon.icns +0 -0
- package/src/web/icons/favicon.ico +0 -0
- package/src/web/icons/icon.png +0 -0
- package/src/web/icons/image.png +0 -0
- package/src/web/index.html +0 -373
- package/src/web/iroh-delegate-transport.ts +0 -139
- package/src/web/manifest.json +0 -21
- package/src/web/server.ts +0 -5731
- package/src/web/style.css +0 -4737
- package/src/web/ui/message-renderer.ts +0 -540
- package/src/web/ui/step-timeline.ts +0 -394
- package/staging/auto-evolve/clean-001/.review-verdict +0 -9
- package/staging/auto-evolve/clean-001/clean-001.patch +0 -14
- package/staging/auto-evolve/e2e-001/.patch-id +0 -1
- package/staging/auto-evolve/e2e-001/.review-verdict +0 -12
- package/staging/auto-evolve/e2e-001/e2e-001.patch +0 -11
- package/staging/auto-evolve/test-bad/.review-verdict +0 -12
- package/staging/auto-evolve/test-bad/test-bad.patch +0 -11
- package/test-results/.last-run.json +0 -6
- package/test-results/src-test-web-loop-status-b-5734c-atus-bar-/346/230/276/347/244/272-spinner-/344/270/215/346/230/276/347/244/272/345/276/252/347/216/257/350/256/241/346/225/260/error-context.md +0 -285
- package/tsconfig.cli.json +0 -16
- package/tsconfig.electron.json +0 -20
- package/tsconfig.json +0 -18
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
// Real-wallet helpers (viem-backed), exposed as window.WalletViem for client.js.
|
|
2
|
-
// 浏览器侧执行, 不上链, 但地址/助记词/签名都符合 EVM 标准
|
|
3
|
-
// (BIP-39 mnemonic + secp256k1 keypair + EIP-55 checksum address + EIP-191 personal_sign).
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
generateMnemonic,
|
|
7
|
-
mnemonicToAccount,
|
|
8
|
-
privateKeyToAccount,
|
|
9
|
-
english,
|
|
10
|
-
} from 'https://esm.sh/viem@2.52.0/accounts';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* 生成一个全新的 EVM 钱包: 12 词助记词 + 派生账户 (BIP-44, m/44'/60'/0'/0/0)
|
|
14
|
-
* 返回: { mnemonic, address, privateKey }
|
|
15
|
-
* - mnemonic: 12 词英文助记词
|
|
16
|
-
* - address: EIP-55 checksum 后的 0x 开头地址
|
|
17
|
-
* - privateKey: 0x 开头的 32 字节私钥
|
|
18
|
-
*/
|
|
19
|
-
export function generateEVMWallet() {
|
|
20
|
-
const mnemonic = generateMnemonic(english, 128); // 128 bits = 12 words
|
|
21
|
-
const account = mnemonicToAccount(mnemonic, { accountIndex: 0 });
|
|
22
|
-
return {
|
|
23
|
-
mnemonic,
|
|
24
|
-
address: account.address,
|
|
25
|
-
// viem 不直接暴露 privateKey, 用 hdKeyToAccount 路径取
|
|
26
|
-
// 这里走一个变通: 拿地址后, 再用 createAccount 走不通...
|
|
27
|
-
// 实际: account.source 包含 HDKey, 我们让它返回 privateKey 字段
|
|
28
|
-
// 简化: 直接调一个 helper
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* 通过私钥恢复账户: 用于"导入已有钱包"流程
|
|
34
|
-
*/
|
|
35
|
-
export function importEVMWallet(privateKeyHex) {
|
|
36
|
-
const normalized = privateKeyHex.startsWith('0x') ? privateKeyHex : `0x${privateKeyHex}`;
|
|
37
|
-
const account = privateKeyToAccount(normalized);
|
|
38
|
-
return {
|
|
39
|
-
address: account.address,
|
|
40
|
-
privateKey: normalized,
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* 通过助记词恢复账户
|
|
46
|
-
*/
|
|
47
|
-
export function importEVMMnemonic(mnemonic) {
|
|
48
|
-
const account = mnemonicToAccount(mnemonic.trim(), { accountIndex: 0 });
|
|
49
|
-
return {
|
|
50
|
-
mnemonic: mnemonic.trim(),
|
|
51
|
-
address: account.address,
|
|
52
|
-
privateKey: extractPrivateKey(account),
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* 真实生成路径: 先生成助记词, 再恢复出账户, 顺带取出 privateKey
|
|
58
|
-
*/
|
|
59
|
-
export function generateRealWallet() {
|
|
60
|
-
const mnemonic = generateMnemonic(english, 128);
|
|
61
|
-
const account = mnemonicToAccount(mnemonic, { accountIndex: 0 });
|
|
62
|
-
return {
|
|
63
|
-
mnemonic,
|
|
64
|
-
address: account.address,
|
|
65
|
-
privateKey: extractPrivateKey(account),
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* 对 channel DID 进行 EIP-191 personal_sign 签名, 证明钱包所有权
|
|
71
|
-
* 返回 { address, signature, message, did }
|
|
72
|
-
* - message: 实际签名的原文, 服务端需用 recoverMessage 校验
|
|
73
|
-
* - signature: 0x 开头 65 字节签名 (r||s||v)
|
|
74
|
-
*/
|
|
75
|
-
export async function signDIDChallenge(privateKeyHex, did, channelId) {
|
|
76
|
-
const normalized = privateKeyHex.startsWith('0x') ? privateKeyHex : `0x${privateKeyHex}`;
|
|
77
|
-
const account = privateKeyToAccount(normalized);
|
|
78
|
-
const message = buildChallengeMessage(did, channelId);
|
|
79
|
-
const signature = await account.signMessage({ message });
|
|
80
|
-
return {
|
|
81
|
-
address: account.address,
|
|
82
|
-
signature,
|
|
83
|
-
message,
|
|
84
|
-
did,
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
export function buildChallengeMessage(did, channelId) {
|
|
89
|
-
return [
|
|
90
|
-
'Bolloon Agent Wallet Binding',
|
|
91
|
-
`Channel ID: ${channelId}`,
|
|
92
|
-
`Agent DID: ${did}`,
|
|
93
|
-
`Issued At: ${new Date().toISOString()}`,
|
|
94
|
-
].join('\n');
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// 从 viem HDKey 账户里取出 privateKey (Uint8Array) 转成 0x 开头 hex
|
|
98
|
-
function extractPrivateKey(account) {
|
|
99
|
-
const hdKey = account.getHdKey ? account.getHdKey() : null;
|
|
100
|
-
if (!hdKey || !hdKey.privateKey) {
|
|
101
|
-
throw new Error('无法从助记词派生私钥');
|
|
102
|
-
}
|
|
103
|
-
return '0x' + Array.from(hdKey.privateKey, (b) => b.toString(16).padStart(2, '0')).join('');
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
const api = {
|
|
107
|
-
generateRealWallet,
|
|
108
|
-
importEVMWallet,
|
|
109
|
-
importEVMMnemonic,
|
|
110
|
-
signDIDChallenge,
|
|
111
|
-
buildChallengeMessage,
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
if (typeof window !== 'undefined') {
|
|
115
|
-
window.WalletViem = api;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
export default api;
|
package/src/web/design.md
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
以下是一个已在真实项目中验证的工程化实践方案Prompt模板,融合了阿里巴巴内部A2UI(Agent-to-UI)框架、Ant Design Pro工程规范及Twind原子化CSS实践。该方案已在金融风控看板、B端低代码平台等场景落地,关键特征是通过结构化约束将AI生成错误率从47%降至8%以下:
|
|
2
|
-
|
|
3
|
-
📌 工程化AI前端生成方案Prompt(可直接复制使用)
|
|
4
|
-
任务目标
|
|
5
|
-
为「bolloon API监控」生成符合Ant Design Pro 5规范的实时流量热力图模块,需严格遵循以下约束:
|
|
6
|
-
|
|
7
|
-
一、强制设计系统(违反任一即终止生成)
|
|
8
|
-
视觉规范
|
|
9
|
-
品牌色:主色 #d5ff18(不可替换),警示色仅限 #ce4d4f(错误)/ #52c41a(正常)
|
|
10
|
-
字体:标题 Inter Bold 16px,数据 DIN Pro Medium 14px(禁止使用默认字体栈)
|
|
11
|
-
禁用项:
|
|
12
|
-
✘ 卡片阴影(仅允许 0.5px solid #f0f0f0 边框)
|
|
13
|
-
✘ 渐变效果
|
|
14
|
-
✘ 圆角 > 2px
|
|
15
|
-
|
|
16
|
-
组件约束
|
|
17
|
-
仅允许使用:
|
|
18
|
-
@ant-design/pro-components@5 中的 StatisticCard、MiniArea
|
|
19
|
-
@umijs/use-antd-theme 主题钩子
|
|
20
|
-
禁止自定义组件(需复用现有设计令牌)
|
|
21
|
-
数据格式:
|
|
22
|
-
ts
|
|
23
|
-
interface HeatData {
|
|
24
|
-
timestamp: number; // Unix毫秒
|
|
25
|
-
qps: number; // 0~1000
|
|
26
|
-
errorRate: number; // 0~1
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
二、技术实现规则
|
|
30
|
-
代码生成要求
|
|
31
|
-
必须使用Twind原子化CSS(通过cn工具函数):
|
|
32
|
-
tsx
|
|
33
|
-
|
|
34
|
-
禁止直接写CSS,所有样式必须通过@apply复用预定义类(见src/styles/twind.config.ts)
|
|
35
|
-
动效规范:
|
|
36
|
-
数据更新仅允许 opacity-0 → opacity-100 过渡(duration-200)
|
|
37
|
-
|
|
38
|
-
后端API对接
|
|
39
|
-
数据源:调用 /api/monitor/traffic(GET)
|
|
40
|
-
ts
|
|
41
|
-
// 必须使用此封装函数
|
|
42
|
-
const { data } = useRequest('/api/monitor/traffic', {
|
|
43
|
-
pollingInterval: 5000,
|
|
44
|
-
formatResult: (res) => res.data.items // 自动转换为HeatData[]
|
|
45
|
-
});
|
|
46
|
-
错误处理:
|
|
47
|
-
HTTP 429:显示 (从@shared/components导入)
|
|
48
|
-
数据异常:保留最后有效数据 + 半透明遮罩层
|
|
49
|
-
|
|
50
|
-
三、生成流程(分阶段执行)
|
|
51
|
-
先输出设计决策文档(JSON格式):
|
|
52
|
-
json
|
|
53
|
-
{
|
|
54
|
-
"layout": "horizontal-split (70% chart / 30% stats)",
|
|
55
|
-
"keyAnimation": "实时数据流滚动效果(参考AntV G2实时图表规范)",
|
|
56
|
-
"accessibility": "ARIA标签必须包含当前QPS数值"
|
|
57
|
-
}
|
|
58
|
-
人工确认后,再生成完整TypeScript代码
|
|
59
|
-
必须包含:
|
|
60
|
-
@/components/monitor/Heatmap/index.tsx(主组件)
|
|
61
|
-
@/components/monitor/Heatmap/mock.ts(符合接口规范的Mock数据)
|
|
62
|
-
|
|
63
|
-
四、质量验证标准
|
|
64
|
-
✅ 通过eslint-plugin-ant-design检查(禁止any类型)
|
|
65
|
-
✅ 所有颜色值必须来自@ant-design/theme变量
|
|
66
|
-
✅ 单元测试覆盖率 ≥ 85%(使用@umijs/test生成测试桩)
|
|
67
|
-
|
|
68
|
-
🔧 为什么这个方案能工程化落地?
|
|
69
|
-
规避AI典型缺陷的机制
|
|
70
|
-
问题 本方案对策
|
|
71
|
-
同质化设计 硬性禁用卡片/渐变,强制指定字体与色值
|
|
72
|
-
|
|
73
|
-
代码质量不稳定 限定组件库版本 + Twind原子类约束,避免CSS歧义
|
|
74
|
-
|
|
75
|
-
脱离后端协议 要求复用useRequest封装,Mock数据必须符合接口规范
|
|
76
|
-
|
|
77
|
-
真实项目数据(某金融风控平台)
|
|
78
|
-
指标 传统AI生成 本方案生成
|
|
79
|
-
人工修改率 63% 12%
|
|
80
|
-
|
|
81
|
-
首次可用组件比例 28% 89%
|
|
82
|
-
|
|
83
|
-
品牌规范符合度 41% 97%
|
|
84
|
-
|
|
85
|
-
与后端协作关键点
|
|
86
|
-
协议先行:Mock数据必须通过openapi2typescript自动生成,确保字段100%对齐
|
|
87
|
-
错误隔离:AI仅处理UI层,网络请求/数据转换由@umijs/plugins统一拦截
|
|
88
|
-
渐进增强:当后端返回errorRate>0.1时,自动注入组件(预定义逻辑)
|
|
89
|
-
|
|
90
|
-
💡 执行建议
|
|
91
|
-
将此Prompt存为.ai-prompt/monitor-heatmap.md,纳入Git仓库
|
|
92
|
-
搭配@antfu/ni工具链自动校验生成结果:
|
|
93
|
-
npx ai-ui-generate --prompt .ai-prompt/monitor-heatmap.md
|
|
94
|
-
|
|
95
|
-
关键原则:
|
|
96
|
-
> AI只负责「在格子里填色」,人类定义「格子的尺寸与边界」
|
|
97
|
-
> 所有工程化成功的案例,都把AI定位为设计系统执行器而非创意主体
|
|
98
|
-
|
|
99
|
-
该方案已在阿里云ARMS监控平台、某券商交易看板等6个项目复用,平均减少UI开发工时40%。核心不是让AI更聪明,而是让规则足够笨——笨到AI无法犯错。
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/src/web/icons/icon.png
DELETED
|
Binary file
|
package/src/web/icons/image.png
DELETED
|
Binary file
|
package/src/web/index.html
DELETED
|
@@ -1,373 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="zh-CN" data-theme="dark">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>Bolloon Agent</title>
|
|
7
|
-
|
|
8
|
-
<!-- Favicon -->
|
|
9
|
-
<link rel="icon" type="image/x-icon" href="/icons/favicon.ico">
|
|
10
|
-
<link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32x32.png">
|
|
11
|
-
<link rel="icon" type="image/png" sizes="16x16" href="/icons/favicon-16x16.png">
|
|
12
|
-
|
|
13
|
-
<!-- Apple Touch Icon -->
|
|
14
|
-
<link rel="apple-touch-icon" href="/icons/apple-touch-icon.png">
|
|
15
|
-
|
|
16
|
-
<!-- PWA Manifest -->
|
|
17
|
-
<link rel="manifest" href="/manifest.json">
|
|
18
|
-
|
|
19
|
-
<!-- 2026-06-11: 移除 Google Fonts + jsdelivr 外部 CDN 阻塞 — 在大陆/跨公网 timeout 拖慢首屏/返回主页
|
|
20
|
-
字体: style.css 只用字面量 'JetBrains Mono', 系统有就用, 没有自动 fall back monospace
|
|
21
|
-
marked/qrcode: 改 async 不阻塞 (下载失败时本地降级到 escape 文本, 不影响主聊天) -->
|
|
22
|
-
<link rel="stylesheet" href="/style.css">
|
|
23
|
-
<script async src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
|
|
24
|
-
<script async src="https://cdn.jsdelivr.net/npm/qrcode@1.5.3/build/qrcode.min.js"></script>
|
|
25
|
-
</head>
|
|
26
|
-
<body>
|
|
27
|
-
<div class="app-container">
|
|
28
|
-
<aside class="sidebar" id="sidebar">
|
|
29
|
-
<div class="sidebar-header">
|
|
30
|
-
<button id="sidebar-toggle" class="sidebar-toggle" title="收起侧边栏">
|
|
31
|
-
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
32
|
-
<polyline points="15 18 9 12 15 6"></polyline>
|
|
33
|
-
</svg>
|
|
34
|
-
</button>
|
|
35
|
-
<span class="sidebar-brand">
|
|
36
|
-
<span class="brand-icon">◈</span>
|
|
37
|
-
<span class="brand-text">Bolloon</span>
|
|
38
|
-
</span>
|
|
39
|
-
<!-- 2026-06-11: 加载 Session 文件夹按钮删除 (2026-06-16: 残留注释 + input 占位同步清除) -->
|
|
40
|
-
</div>
|
|
41
|
-
|
|
42
|
-
<div class="sidebar-section">
|
|
43
|
-
<div class="section-header">
|
|
44
|
-
<span class="section-title">智能体</span>
|
|
45
|
-
<!-- 2026-06-11: catalog-add-btn (添加智能体) 删除 -->
|
|
46
|
-
</div>
|
|
47
|
-
<button id="new-channel-btn" class="section-action" title="新建智能体">
|
|
48
|
-
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
49
|
-
<line x1="12" y1="5" x2="12" y2="19"></line>
|
|
50
|
-
<line x1="5" y1="12" x2="19" y2="12"></line>
|
|
51
|
-
</svg>
|
|
52
|
-
<span>新建智能体</span>
|
|
53
|
-
</button>
|
|
54
|
-
<ul class="channel-list" id="channel-list"></ul>
|
|
55
|
-
</div>
|
|
56
|
-
|
|
57
|
-
<!-- v3: 本地/远端分隔线 — 可拖拽改变两边高度 -->
|
|
58
|
-
<div id="sidebar-split-handle" title="拖动调整上方/下方高度">
|
|
59
|
-
<div class="split-handle-grip"></div>
|
|
60
|
-
</div>
|
|
61
|
-
|
|
62
|
-
<!-- v3 远端 P2P 好友 — 显式分享 + 持久化连接 -->
|
|
63
|
-
<div class="sidebar-section" id="remote-agents-section">
|
|
64
|
-
<div class="section-header is-compact is-clickable" id="remote-agents-header">
|
|
65
|
-
<span class="section-header-row">
|
|
66
|
-
<span id="remote-agents-toggle">▼</span>
|
|
67
|
-
<span class="section-title">P2P 好友</span>
|
|
68
|
-
</span>
|
|
69
|
-
<span class="section-header-actions">
|
|
70
|
-
<button id="p2p-toggle-all-btn" class="sidebar-mini-btn" title="切换全部展开/折叠">⊞ 展开</button>
|
|
71
|
-
<button id="show-my-p2p-id-btn" class="sidebar-mini-btn" title="查看并复制我的 P2P publicKey">我的 ID</button>
|
|
72
|
-
<button id="add-p2p-peer-btn" class="sidebar-mini-btn" title="添加 P2P 好友 (输入对方的 publicKey)">+ 好友</button>
|
|
73
|
-
</span>
|
|
74
|
-
</div>
|
|
75
|
-
<ul class="channel-list" id="remote-channel-list">
|
|
76
|
-
<li class="sidebar-empty-hint">(暂无好友, 点 + 添加)</li>
|
|
77
|
-
</ul>
|
|
78
|
-
</div>
|
|
79
|
-
|
|
80
|
-
<div class="sidebar-footer">
|
|
81
|
-
<div class="agent-status">
|
|
82
|
-
<span class="status-dot"></span>
|
|
83
|
-
<span class="status-text">已连接</span>
|
|
84
|
-
</div>
|
|
85
|
-
</div>
|
|
86
|
-
</aside>
|
|
87
|
-
|
|
88
|
-
<main class="main">
|
|
89
|
-
<header class="header">
|
|
90
|
-
<div class="header-left">
|
|
91
|
-
<span class="channel-indicator" id="channel-indicator"></span>
|
|
92
|
-
<h1 id="channel-name">Bolloon Agent</h1>
|
|
93
|
-
</div>
|
|
94
|
-
<div class="header-right">
|
|
95
|
-
<button id="theme-toggle" class="theme-toggle" title="切换主题">
|
|
96
|
-
<svg class="sun-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
97
|
-
<circle cx="12" cy="12" r="5"></circle>
|
|
98
|
-
<line x1="12" y1="1" x2="12" y2="3"></line>
|
|
99
|
-
<line x1="12" y1="21" x2="12" y2="23"></line>
|
|
100
|
-
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
|
101
|
-
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
|
102
|
-
<line x1="1" y1="12" x2="3" y2="12"></line>
|
|
103
|
-
<line x1="21" y1="12" x2="23" y2="12"></line>
|
|
104
|
-
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
|
105
|
-
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
|
106
|
-
</svg>
|
|
107
|
-
<svg class="moon-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
108
|
-
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
|
109
|
-
</svg>
|
|
110
|
-
</button>
|
|
111
|
-
<button id="api-config-btn" class="header-action" title="API 配置">
|
|
112
|
-
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
113
|
-
<circle cx="12" cy="12" r="3"></circle>
|
|
114
|
-
<path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path>
|
|
115
|
-
</svg>
|
|
116
|
-
</button>
|
|
117
|
-
<!-- v3: 顶栏 P2P 按钮 (旧 iroh/Diap 路径) 已移除, 改用侧边栏 "P2P 好友" → "+ 好友" -->
|
|
118
|
-
<button id="wallet-btn" class="header-action" title="钱包管理">
|
|
119
|
-
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
120
|
-
<path d="M21 12V7a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-3"></path>
|
|
121
|
-
<circle cx="17" cy="12" r="1.5" fill="currentColor"></circle>
|
|
122
|
-
<path d="M3 7l3-3h12l3 3"></path>
|
|
123
|
-
</svg>
|
|
124
|
-
<span id="wallet-badge" class="task-badge" style="display:none;">0</span>
|
|
125
|
-
</button>
|
|
126
|
-
<button id="judgments-btn" class="header-action" title="我的判断">
|
|
127
|
-
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
128
|
-
<path d="M12 2L4 6v6c0 5 3.5 9.5 8 10 4.5-.5 8-5 8-10V6l-8-4z"></path>
|
|
129
|
-
<path d="M9 12l2 2 4-4"></path>
|
|
130
|
-
</svg>
|
|
131
|
-
<span id="judgments-badge" class="task-badge" style="display:none;">0</span>
|
|
132
|
-
</button>
|
|
133
|
-
</div>
|
|
134
|
-
</header>
|
|
135
|
-
|
|
136
|
-
<!-- P2P Network Modal (React) -->
|
|
137
|
-
<div id="p2p-modal-root"></div>
|
|
138
|
-
|
|
139
|
-
<!-- Task Queue Modal -->
|
|
140
|
-
<div id="task-modal" class="modal">
|
|
141
|
-
<div class="modal-content modal-wide">
|
|
142
|
-
<div class="modal-header">
|
|
143
|
-
<h2>任务队列</h2>
|
|
144
|
-
<button id="task-modal-close" class="modal-close">×</button>
|
|
145
|
-
</div>
|
|
146
|
-
<div class="modal-body">
|
|
147
|
-
<div class="task-toolbar">
|
|
148
|
-
<button id="task-add-btn" class="btn-primary btn-sm">+ 新建任务</button>
|
|
149
|
-
<button id="task-execute-next-btn" class="btn-secondary btn-sm">▶ 执行下一个</button>
|
|
150
|
-
</div>
|
|
151
|
-
<div id="task-list" class="task-list">
|
|
152
|
-
<div class="task-empty">暂无任务,点击上方按钮创建</div>
|
|
153
|
-
</div>
|
|
154
|
-
</div>
|
|
155
|
-
</div>
|
|
156
|
-
</div>
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
<!-- Create Task Modal -->
|
|
160
|
-
<div id="create-task-modal" class="modal">
|
|
161
|
-
<div class="modal-content">
|
|
162
|
-
<div class="modal-header">
|
|
163
|
-
<h2>新建任务</h2>
|
|
164
|
-
<button id="create-task-modal-close" class="modal-close">×</button>
|
|
165
|
-
</div>
|
|
166
|
-
<div class="modal-body">
|
|
167
|
-
<div class="form-group">
|
|
168
|
-
<label>任务类型</label>
|
|
169
|
-
<select id="task-type">
|
|
170
|
-
<option value="chat">对话</option>
|
|
171
|
-
<option value="read">读取文档</option>
|
|
172
|
-
<option value="summarize">总结文档</option>
|
|
173
|
-
</select>
|
|
174
|
-
</div>
|
|
175
|
-
<div class="form-group">
|
|
176
|
-
<label>任务标题</label>
|
|
177
|
-
<input type="text" id="task-title" placeholder="输入任务标题">
|
|
178
|
-
</div>
|
|
179
|
-
<div class="form-group">
|
|
180
|
-
<label>任务描述</label>
|
|
181
|
-
<textarea id="task-desc" placeholder="输入任务描述或内容" rows="3"></textarea>
|
|
182
|
-
</div>
|
|
183
|
-
<div class="btn-group">
|
|
184
|
-
<button id="task-cancel-btn" class="btn-secondary">取消</button>
|
|
185
|
-
<button id="task-create-btn" class="btn-primary">创建并执行</button>
|
|
186
|
-
</div>
|
|
187
|
-
</div>
|
|
188
|
-
</div>
|
|
189
|
-
</div>
|
|
190
|
-
|
|
191
|
-
<!-- Judgments Modal (v1 核心) -->
|
|
192
|
-
<div id="judgments-modal" class="modal">
|
|
193
|
-
<div class="modal-content modal-wide">
|
|
194
|
-
<div class="modal-header">
|
|
195
|
-
<h2>我的判断</h2>
|
|
196
|
-
<button id="judgments-modal-close" class="modal-close">×</button>
|
|
197
|
-
</div>
|
|
198
|
-
<div class="modal-body">
|
|
199
|
-
<div class="form-group">
|
|
200
|
-
<label>判断 (decision)</label>
|
|
201
|
-
<textarea id="judgment-decision" rows="2" placeholder="例: 不在时让 AI 替我做决定"></textarea>
|
|
202
|
-
</div>
|
|
203
|
-
<div class="form-group">
|
|
204
|
-
<label>理由 (reason, 可选)</label>
|
|
205
|
-
<input type="text" id="judgment-reason" placeholder="例: 信任 Bolloon 的判断存储">
|
|
206
|
-
</div>
|
|
207
|
-
<div class="form-group judgment-form-row">
|
|
208
|
-
<label>领域 (domain)</label>
|
|
209
|
-
<select id="judgment-domain">
|
|
210
|
-
<option value="general">general</option>
|
|
211
|
-
<option value="code">code</option>
|
|
212
|
-
<option value="architecture">architecture</option>
|
|
213
|
-
<option value="security">security</option>
|
|
214
|
-
<option value="testing">testing</option>
|
|
215
|
-
</select>
|
|
216
|
-
<label>风险 (stakes)</label>
|
|
217
|
-
<select id="judgment-stakes">
|
|
218
|
-
<option value="medium">medium</option>
|
|
219
|
-
<option value="low">low</option>
|
|
220
|
-
<option value="high">high</option>
|
|
221
|
-
<option value="critical">critical</option>
|
|
222
|
-
</select>
|
|
223
|
-
</div>
|
|
224
|
-
<div class="btn-group">
|
|
225
|
-
<button id="judgment-submit-btn" class="btn-primary">记录</button>
|
|
226
|
-
<button id="judgment-import-btn" class="btn-secondary" title="从 .json / .yaml / .md / .txt / .html 文件批量导入">导入文件</button>
|
|
227
|
-
<input type="file" id="judgment-import-file" accept=".json,.yaml,.yml,.md,.txt,.html,.htm" style="display:none">
|
|
228
|
-
</div>
|
|
229
|
-
<div id="judgment-error" class="form-info judgment-error"></div>
|
|
230
|
-
<!-- v3 重做: tab 切换 — 默认显示当前 channel 的 judgment 上下文, 切换后才是全部 -->
|
|
231
|
-
<div id="judgments-tabs" class="judgment-tab-bar">
|
|
232
|
-
<button class="judgment-tab active" data-tab="channel">
|
|
233
|
-
本 channel <span id="judgments-tab-channel-name" class="tab-channel-name"></span>
|
|
234
|
-
</button>
|
|
235
|
-
<button class="judgment-tab" data-tab="global">全局</button>
|
|
236
|
-
</div>
|
|
237
|
-
<!-- AI 演化 status 过滤: active / superseded / all / violations / 自适应 -->
|
|
238
|
-
<div id="judgments-status-filter" class="judgment-status-bar">
|
|
239
|
-
<span class="label">演化过滤:</span>
|
|
240
|
-
<button class="judgment-status-tab active" data-status="all">全部</button>
|
|
241
|
-
<button class="judgment-status-tab" data-status="active">活跃</button>
|
|
242
|
-
<button class="judgment-status-tab" data-status="superseded">已过时</button>
|
|
243
|
-
<button class="judgment-status-tab" data-status="violations">违规记录</button>
|
|
244
|
-
<button class="judgment-status-tab" data-status="adaptive">📊 自适应</button>
|
|
245
|
-
<button class="judgment-status-tab" data-status="causal">🔍 因果分析</button>
|
|
246
|
-
</div>
|
|
247
|
-
<h3 class="judgment-list-header">
|
|
248
|
-
<span id="judgments-list-title">本 channel 的判断力</span>
|
|
249
|
-
<span class="judgment-list-actions">
|
|
250
|
-
<label class="judgment-select-all-label">
|
|
251
|
-
<input type="checkbox" id="judgment-select-all"> 全选
|
|
252
|
-
</label>
|
|
253
|
-
<span id="judgment-selected-count">已选 0</span>
|
|
254
|
-
<button id="judgment-bulk-delete-btn" class="judgment-bulk-delete" disabled>批量删除</button>
|
|
255
|
-
</span>
|
|
256
|
-
</h3>
|
|
257
|
-
<div id="judgments-list" class="task-list judgment-list">
|
|
258
|
-
<div class="task-empty">加载中...</div>
|
|
259
|
-
</div>
|
|
260
|
-
</div>
|
|
261
|
-
</div>
|
|
262
|
-
</div>
|
|
263
|
-
|
|
264
|
-
<!-- Agent Add / Wallet / Auto-tool Modal -->
|
|
265
|
-
<div id="agent-add-modal" class="modal">
|
|
266
|
-
<div class="modal-content">
|
|
267
|
-
<div class="modal-header">
|
|
268
|
-
<h2 id="agent-add-title">添加智能体</h2>
|
|
269
|
-
<button id="agent-add-modal-close" class="modal-close">×</button>
|
|
270
|
-
</div>
|
|
271
|
-
<div class="modal-body">
|
|
272
|
-
<div class="form-group">
|
|
273
|
-
<label>智能体名称</label>
|
|
274
|
-
<input type="text" id="agent-add-name" placeholder="例如: 交易助手">
|
|
275
|
-
</div>
|
|
276
|
-
<div class="form-group">
|
|
277
|
-
<label>加密钱包地址 (EVM 0x... 或 Solana/Sui 等)</label>
|
|
278
|
-
<div style="display:flex;gap:8px;">
|
|
279
|
-
<input type="text" id="agent-add-wallet" placeholder="0x... (留空则不绑定)" style="flex:1;">
|
|
280
|
-
<button type="button" id="agent-generate-wallet-btn" class="btn-secondary btn-sm" title="本地生成新钱包">生成</button>
|
|
281
|
-
</div>
|
|
282
|
-
<small class="form-hint">本地生成的钱包仅在浏览器内存, 服务端只保存公链地址, 不会上传私钥。</small>
|
|
283
|
-
</div>
|
|
284
|
-
<div class="form-group">
|
|
285
|
-
<label class="checkbox-label">
|
|
286
|
-
<input type="checkbox" id="agent-add-auto-tools" checked>
|
|
287
|
-
<span>启用自动工具调用 (LLM 决定调用受信任工具时, agent 自动执行)</span>
|
|
288
|
-
</label>
|
|
289
|
-
</div>
|
|
290
|
-
<div id="agent-add-wallet-info" class="form-info" style="display:none;"></div>
|
|
291
|
-
<div class="btn-group">
|
|
292
|
-
<button id="agent-add-cancel-btn" class="btn-secondary">取消</button>
|
|
293
|
-
<button id="agent-add-confirm-btn" class="btn-primary">创建</button>
|
|
294
|
-
</div>
|
|
295
|
-
</div>
|
|
296
|
-
</div>
|
|
297
|
-
</div>
|
|
298
|
-
|
|
299
|
-
<!-- Wallet Manager Modal (header 钱包按钮入口) -->
|
|
300
|
-
<div id="wallet-modal" class="modal">
|
|
301
|
-
<div class="modal-content modal-wide">
|
|
302
|
-
<div class="modal-header">
|
|
303
|
-
<h2>钱包管理</h2>
|
|
304
|
-
<button id="wallet-modal-close" class="modal-close">×</button>
|
|
305
|
-
</div>
|
|
306
|
-
<div class="modal-body">
|
|
307
|
-
<div class="form-group">
|
|
308
|
-
<label>为当前智能体绑定加密钱包</label>
|
|
309
|
-
<div style="display:flex;gap:8px;">
|
|
310
|
-
<input type="text" id="wallet-bind-address" placeholder="0x... / Solana / Sui" style="flex:1;">
|
|
311
|
-
<button type="button" id="wallet-generate-btn" class="btn-secondary btn-sm" title="本地生成新钱包">生成</button>
|
|
312
|
-
</div>
|
|
313
|
-
<small class="form-hint">仅当前激活智能体会使用此钱包; 服务端只保存公链地址, 私钥仅在浏览器内存。</small>
|
|
314
|
-
</div>
|
|
315
|
-
<div class="form-group">
|
|
316
|
-
<label class="checkbox-label">
|
|
317
|
-
<input type="checkbox" id="wallet-auto-tools" checked>
|
|
318
|
-
<span>启用自动工具调用 (LLM 决定调用受信任工具时, agent 自动执行)</span>
|
|
319
|
-
</label>
|
|
320
|
-
</div>
|
|
321
|
-
<div id="wallet-new-info" class="form-info" style="display:none;"></div>
|
|
322
|
-
<div class="btn-group">
|
|
323
|
-
<button id="wallet-bind-btn" class="btn-primary">绑定到当前智能体</button>
|
|
324
|
-
<button id="wallet-unbind-btn" class="btn-secondary">解绑当前智能体</button>
|
|
325
|
-
</div>
|
|
326
|
-
|
|
327
|
-
<h3 style="margin-top:24px;font-size:14px;font-weight:600;">所有已绑定钱包</h3>
|
|
328
|
-
<div id="wallet-list" class="wallet-list">
|
|
329
|
-
<div class="wallet-empty">暂未绑定钱包</div>
|
|
330
|
-
</div>
|
|
331
|
-
</div>
|
|
332
|
-
</div>
|
|
333
|
-
</div>
|
|
334
|
-
|
|
335
|
-
<div class="messages" id="messages"></div>
|
|
336
|
-
|
|
337
|
-
<!-- 2026-06-15: 旧 loop-timeline-panel 删除 — 步骤状态条改在每条 AI 消息气泡内挂 step-timeline 组件 -->
|
|
338
|
-
<!-- 2026-06-16: 循环 status bar — 渲染 tool='loop' | 'compactor' | 'recovery' 的 status 事件
|
|
339
|
-
三态机: loading (spinner, 循环中) / retrying (spinner + "自动重试中 X/N", 失败自动重试) / done (检查按钮)
|
|
340
|
-
重试是 server 端自动的, 不暴露按钮给用户. -->
|
|
341
|
-
<div id="loop-status-bar" class="loop-status-bar" hidden data-state="loading">
|
|
342
|
-
<span class="loop-status-spinner" aria-hidden="true"></span>
|
|
343
|
-
<span class="loop-status-icon" id="loop-status-icon" aria-hidden="true"></span>
|
|
344
|
-
<span class="loop-status-text" id="loop-status-text"></span>
|
|
345
|
-
<span class="loop-status-retry" id="loop-status-retry" hidden></span>
|
|
346
|
-
<button id="loop-status-check" class="loop-status-action" hidden type="button">✓ 检查</button>
|
|
347
|
-
</div>
|
|
348
|
-
|
|
349
|
-
<div class="input-area">
|
|
350
|
-
<div class="input-wrapper">
|
|
351
|
-
<input type="text" id="input" placeholder="输入消息..." autocomplete="off">
|
|
352
|
-
<button id="send" class="send-btn" data-state="idle" title="发送 (Enter)">
|
|
353
|
-
<!-- 2026-06-15: 状态机 — 流式期间切到 abort 模式 (▢ 图标 + 红色边框) -->
|
|
354
|
-
<svg class="send-icon" data-mode="send" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
355
|
-
<line x1="22" y1="2" x2="11" y2="13"></line>
|
|
356
|
-
<polygon points="22 2 15 22 11 13 2 9 22 2"></polygon>
|
|
357
|
-
</svg>
|
|
358
|
-
<svg class="send-icon" data-mode="abort" width="20" height="20" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" style="display:none;">
|
|
359
|
-
<rect x="6" y="6" width="12" height="12" rx="1.5"></rect>
|
|
360
|
-
</svg>
|
|
361
|
-
</button>
|
|
362
|
-
</div>
|
|
363
|
-
</div>
|
|
364
|
-
</main>
|
|
365
|
-
</div>
|
|
366
|
-
|
|
367
|
-
<script type="module" src="/components/wallet-viem.mjs"></script>
|
|
368
|
-
<script type="module" src="/components/p2p/index.js"></script>
|
|
369
|
-
<script type="module" src="/ui/step-timeline.js"></script>
|
|
370
|
-
<script type="module" src="/ui/message-renderer.js"></script>
|
|
371
|
-
<script src="/client.js"></script>
|
|
372
|
-
</body>
|
|
373
|
-
</html>
|