opc-agent 4.1.1 → 4.1.3
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/dist/analytics/index.d.ts.map +1 -0
- package/dist/analytics/index.js.map +1 -0
- package/dist/channels/dingtalk.d.ts.map +1 -0
- package/dist/channels/dingtalk.js.map +1 -0
- package/dist/channels/discord.d.ts.map +1 -0
- package/dist/channels/discord.js.map +1 -0
- package/dist/channels/email.d.ts.map +1 -0
- package/dist/channels/email.js.map +1 -0
- package/dist/channels/feishu.d.ts.map +1 -0
- package/dist/channels/feishu.js.map +1 -0
- package/dist/channels/googlechat.d.ts.map +1 -0
- package/dist/channels/googlechat.js.map +1 -0
- package/dist/channels/imessage.d.ts.map +1 -0
- package/dist/channels/imessage.js.map +1 -0
- package/dist/channels/index.d.ts.map +1 -0
- package/dist/channels/index.js.map +1 -0
- package/dist/channels/irc.d.ts.map +1 -0
- package/dist/channels/irc.js.map +1 -0
- package/dist/channels/line.d.ts.map +1 -0
- package/dist/channels/line.js.map +1 -0
- package/dist/channels/matrix.d.ts.map +1 -0
- package/dist/channels/matrix.js.map +1 -0
- package/dist/channels/mattermost.d.ts.map +1 -0
- package/dist/channels/mattermost.js.map +1 -0
- package/dist/channels/msteams.d.ts.map +1 -0
- package/dist/channels/msteams.js.map +1 -0
- package/dist/channels/nostr.d.ts.map +1 -0
- package/dist/channels/nostr.js.map +1 -0
- package/dist/channels/qq.d.ts.map +1 -0
- package/dist/channels/qq.js.map +1 -0
- package/dist/channels/signal.d.ts.map +1 -0
- package/dist/channels/signal.js.map +1 -0
- package/dist/channels/slack.d.ts.map +1 -0
- package/dist/channels/slack.js.map +1 -0
- package/dist/channels/sms.d.ts.map +1 -0
- package/dist/channels/sms.js.map +1 -0
- package/dist/channels/telegram.d.ts.map +1 -0
- package/dist/channels/telegram.js.map +1 -0
- package/dist/channels/twitch.d.ts.map +1 -0
- package/dist/channels/twitch.js.map +1 -0
- package/dist/channels/voice-call.d.ts.map +1 -0
- package/dist/channels/voice-call.js.map +1 -0
- package/dist/channels/voice.d.ts.map +1 -0
- package/dist/channels/voice.js.map +1 -0
- package/dist/channels/web.d.ts.map +1 -0
- package/dist/channels/web.js +8 -2
- package/dist/channels/web.js.map +1 -0
- package/dist/channels/webhook.d.ts.map +1 -0
- package/dist/channels/webhook.js.map +1 -0
- package/dist/channels/websocket.d.ts.map +1 -0
- package/dist/channels/websocket.js.map +1 -0
- package/dist/channels/wechat.d.ts.map +1 -0
- package/dist/channels/wechat.js.map +1 -0
- package/dist/channels/whatsapp.d.ts.map +1 -0
- package/dist/channels/whatsapp.js.map +1 -0
- package/dist/cli/chat.d.ts.map +1 -0
- package/dist/cli/chat.js.map +1 -0
- package/dist/cli/setup.d.ts.map +1 -0
- package/dist/cli/setup.js.map +1 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +261 -85
- package/dist/cli.js.map +1 -0
- package/dist/core/a2a.d.ts.map +1 -0
- package/dist/core/a2a.js.map +1 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/core/analytics-engine.d.ts.map +1 -0
- package/dist/core/analytics-engine.js.map +1 -0
- package/dist/core/api-server.d.ts.map +1 -0
- package/dist/core/api-server.js.map +1 -0
- package/dist/core/audio.d.ts.map +1 -0
- package/dist/core/audio.js.map +1 -0
- package/dist/core/auth.d.ts.map +1 -0
- package/dist/core/auth.js.map +1 -0
- package/dist/core/cache.d.ts.map +1 -0
- package/dist/core/cache.js.map +1 -0
- package/dist/core/collaboration.d.ts.map +1 -0
- package/dist/core/collaboration.js.map +1 -0
- package/dist/core/compose.d.ts.map +1 -0
- package/dist/core/compose.js.map +1 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/context-discovery.d.ts.map +1 -0
- package/dist/core/context-discovery.js.map +1 -0
- package/dist/core/context-refs.d.ts.map +1 -0
- package/dist/core/context-refs.js.map +1 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/gateway.d.ts.map +1 -0
- package/dist/core/gateway.js.map +1 -0
- package/dist/core/heartbeat.d.ts.map +1 -0
- package/dist/core/heartbeat.js.map +1 -0
- package/dist/core/hitl.d.ts.map +1 -0
- package/dist/core/hitl.js.map +1 -0
- package/dist/core/hooks.d.ts.map +1 -0
- package/dist/core/hooks.js.map +1 -0
- package/dist/core/ide-bridge.d.ts.map +1 -0
- package/dist/core/ide-bridge.js.map +1 -0
- package/dist/core/knowledge.d.ts.map +1 -0
- package/dist/core/knowledge.js.map +1 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/node-network.d.ts.map +1 -0
- package/dist/core/node-network.js.map +1 -0
- package/dist/core/orchestrator.d.ts.map +1 -0
- package/dist/core/orchestrator.js.map +1 -0
- package/dist/core/performance.d.ts.map +1 -0
- package/dist/core/performance.js.map +1 -0
- package/dist/core/profiles.d.ts.map +1 -0
- package/dist/core/profiles.js.map +1 -0
- package/dist/core/rate-limiter.d.ts.map +1 -0
- package/dist/core/rate-limiter.js.map +1 -0
- package/dist/core/room.d.ts.map +1 -0
- package/dist/core/room.js.map +1 -0
- package/dist/core/runtime.d.ts.map +1 -0
- package/dist/core/runtime.js +37 -15
- package/dist/core/runtime.js.map +1 -0
- package/dist/core/sandbox.d.ts.map +1 -0
- package/dist/core/sandbox.js.map +1 -0
- package/dist/core/scheduler.d.ts.map +1 -0
- package/dist/core/scheduler.js.map +1 -0
- package/dist/core/security.d.ts.map +1 -0
- package/dist/core/security.js.map +1 -0
- package/dist/core/session-manager.d.ts.map +1 -0
- package/dist/core/session-manager.js.map +1 -0
- package/dist/core/streaming.d.ts.map +1 -0
- package/dist/core/streaming.js.map +1 -0
- package/dist/core/subagent.d.ts.map +1 -0
- package/dist/core/subagent.js.map +1 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/versioning.d.ts.map +1 -0
- package/dist/core/versioning.js.map +1 -0
- package/dist/core/vision.d.ts.map +1 -0
- package/dist/core/vision.js.map +1 -0
- package/dist/core/watch.d.ts.map +1 -0
- package/dist/core/watch.js.map +1 -0
- package/dist/core/workflow-graph.d.ts.map +1 -0
- package/dist/core/workflow-graph.js.map +1 -0
- package/dist/core/workflow.d.ts.map +1 -0
- package/dist/core/workflow.js.map +1 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js.map +1 -0
- package/dist/deploy/hermes.d.ts.map +1 -0
- package/dist/deploy/hermes.js.map +1 -0
- package/dist/deploy/index.d.ts.map +1 -0
- package/dist/deploy/index.js.map +1 -0
- package/dist/deploy/openclaw.d.ts.map +1 -0
- package/dist/deploy/openclaw.js.map +1 -0
- package/dist/doctor.d.ts +1 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +105 -10
- package/dist/doctor.js.map +1 -0
- package/dist/eval/index.d.ts.map +1 -0
- package/dist/eval/index.js.map +1 -0
- package/dist/hub/brain-seed.d.ts.map +1 -0
- package/dist/hub/brain-seed.js.map +1 -0
- package/dist/hub/client.d.ts.map +1 -0
- package/dist/hub/client.js.map +1 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/servers/calculator-mcp.d.ts.map +1 -0
- package/dist/mcp/servers/calculator-mcp.js.map +1 -0
- package/dist/mcp/servers/crypto-mcp.d.ts.map +1 -0
- package/dist/mcp/servers/crypto-mcp.js.map +1 -0
- package/dist/mcp/servers/database-mcp.d.ts.map +1 -0
- package/dist/mcp/servers/database-mcp.js.map +1 -0
- package/dist/mcp/servers/datetime-mcp.d.ts.map +1 -0
- package/dist/mcp/servers/datetime-mcp.js.map +1 -0
- package/dist/mcp/servers/filesystem.d.ts.map +1 -0
- package/dist/mcp/servers/filesystem.js.map +1 -0
- package/dist/mcp/servers/github-mcp.d.ts.map +1 -0
- package/dist/mcp/servers/github-mcp.js.map +1 -0
- package/dist/mcp/servers/index.d.ts.map +1 -0
- package/dist/mcp/servers/index.js.map +1 -0
- package/dist/mcp/servers/json-mcp.d.ts.map +1 -0
- package/dist/mcp/servers/json-mcp.js.map +1 -0
- package/dist/mcp/servers/memory-mcp.d.ts.map +1 -0
- package/dist/mcp/servers/memory-mcp.js.map +1 -0
- package/dist/mcp/servers/regex-mcp.d.ts.map +1 -0
- package/dist/mcp/servers/regex-mcp.js.map +1 -0
- package/dist/mcp/servers/web-mcp.d.ts.map +1 -0
- package/dist/mcp/servers/web-mcp.js.map +1 -0
- package/dist/memory/context-compressor.d.ts.map +1 -0
- package/dist/memory/context-compressor.js.map +1 -0
- package/dist/memory/deepbrain.d.ts +1 -1
- package/dist/memory/deepbrain.d.ts.map +1 -0
- package/dist/memory/deepbrain.js +95 -4
- package/dist/memory/deepbrain.js.map +1 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/seed-loader.d.ts.map +1 -0
- package/dist/memory/seed-loader.js.map +1 -0
- package/dist/memory/user-profiler.d.ts.map +1 -0
- package/dist/memory/user-profiler.js.map +1 -0
- package/dist/plugins/content-filter.d.ts.map +1 -0
- package/dist/plugins/content-filter.js.map +1 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/logger.d.ts.map +1 -0
- package/dist/plugins/logger.js.map +1 -0
- package/dist/plugins/rate-limiter.d.ts.map +1 -0
- package/dist/plugins/rate-limiter.js.map +1 -0
- package/dist/protocols/a2a/client.d.ts.map +1 -0
- package/dist/protocols/a2a/client.js.map +1 -0
- package/dist/protocols/a2a/index.d.ts.map +1 -0
- package/dist/protocols/a2a/index.js.map +1 -0
- package/dist/protocols/a2a/server.d.ts.map +1 -0
- package/dist/protocols/a2a/server.js.map +1 -0
- package/dist/protocols/a2a/types.d.ts.map +1 -0
- package/dist/protocols/a2a/types.js.map +1 -0
- package/dist/protocols/a2a/utils.d.ts.map +1 -0
- package/dist/protocols/a2a/utils.js.map +1 -0
- package/dist/protocols/agui/client.d.ts.map +1 -0
- package/dist/protocols/agui/client.js.map +1 -0
- package/dist/protocols/agui/index.d.ts.map +1 -0
- package/dist/protocols/agui/index.js.map +1 -0
- package/dist/protocols/agui/server.d.ts.map +1 -0
- package/dist/protocols/agui/server.js.map +1 -0
- package/dist/protocols/agui/types.d.ts.map +1 -0
- package/dist/protocols/agui/types.js.map +1 -0
- package/dist/protocols/index.d.ts.map +1 -0
- package/dist/protocols/index.js.map +1 -0
- package/dist/protocols/mcp/agent-tools.d.ts.map +1 -0
- package/dist/protocols/mcp/agent-tools.js.map +1 -0
- package/dist/protocols/mcp/index.d.ts.map +1 -0
- package/dist/protocols/mcp/index.js.map +1 -0
- package/dist/protocols/mcp/server.d.ts.map +1 -0
- package/dist/protocols/mcp/server.js.map +1 -0
- package/dist/protocols/mcp/types.d.ts.map +1 -0
- package/dist/protocols/mcp/types.js.map +1 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/publish/index.d.ts.map +1 -0
- package/dist/publish/index.js.map +1 -0
- package/dist/scheduler/cron-engine.d.ts.map +1 -0
- package/dist/scheduler/cron-engine.js +3 -36
- package/dist/scheduler/cron-engine.js.map +1 -0
- package/dist/scheduler/index.d.ts.map +1 -0
- package/dist/scheduler/index.js.map +1 -0
- package/dist/schema/oad.d.ts.map +1 -0
- package/dist/schema/oad.js.map +1 -0
- package/dist/security/approval.d.ts.map +1 -0
- package/dist/security/approval.js.map +1 -0
- package/dist/security/approvals.d.ts.map +1 -0
- package/dist/security/approvals.js.map +1 -0
- package/dist/security/elevated.d.ts.map +1 -0
- package/dist/security/elevated.js.map +1 -0
- package/dist/security/guardrails.d.ts.map +1 -0
- package/dist/security/guardrails.js.map +1 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/keys.d.ts.map +1 -0
- package/dist/security/keys.js.map +1 -0
- package/dist/security/secrets.d.ts.map +1 -0
- package/dist/security/secrets.js.map +1 -0
- package/dist/skills/auto-learn.d.ts.map +1 -0
- package/dist/skills/auto-learn.js.map +1 -0
- package/dist/skills/base.d.ts.map +1 -0
- package/dist/skills/base.js.map +1 -0
- package/dist/skills/builtin/index.d.ts.map +1 -0
- package/dist/skills/builtin/index.js.map +1 -0
- package/dist/skills/document.d.ts.map +1 -0
- package/dist/skills/document.js.map +1 -0
- package/dist/skills/http.d.ts.map +1 -0
- package/dist/skills/http.js.map +1 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/marketplace.d.ts.map +1 -0
- package/dist/skills/marketplace.js.map +1 -0
- package/dist/skills/scheduler.d.ts.map +1 -0
- package/dist/skills/scheduler.js.map +1 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/skills/webhook-trigger.d.ts.map +1 -0
- package/dist/skills/webhook-trigger.js.map +1 -0
- package/dist/studio/server.d.ts.map +1 -0
- package/dist/studio/server.js.map +1 -0
- package/dist/studio/templates-data.d.ts.map +1 -0
- package/dist/studio/templates-data.js.map +1 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/templates/code-reviewer.d.ts.map +1 -0
- package/dist/templates/code-reviewer.js.map +1 -0
- package/dist/templates/content-writer.d.ts.map +1 -0
- package/dist/templates/content-writer.js.map +1 -0
- package/dist/templates/customer-service.d.ts.map +1 -0
- package/dist/templates/customer-service.js.map +1 -0
- package/dist/templates/data-analyst.d.ts.map +1 -0
- package/dist/templates/data-analyst.js.map +1 -0
- package/dist/templates/executive-assistant.d.ts.map +1 -0
- package/dist/templates/executive-assistant.js.map +1 -0
- package/dist/templates/financial-advisor.d.ts.map +1 -0
- package/dist/templates/financial-advisor.js.map +1 -0
- package/dist/templates/hr-recruiter.d.ts.map +1 -0
- package/dist/templates/hr-recruiter.js.map +1 -0
- package/dist/templates/knowledge-base.d.ts.map +1 -0
- package/dist/templates/knowledge-base.js.map +1 -0
- package/dist/templates/legal-assistant.d.ts.map +1 -0
- package/dist/templates/legal-assistant.js.map +1 -0
- package/dist/templates/project-manager.d.ts.map +1 -0
- package/dist/templates/project-manager.js.map +1 -0
- package/dist/templates/sales-assistant.d.ts.map +1 -0
- package/dist/templates/sales-assistant.js.map +1 -0
- package/dist/templates/teacher.d.ts.map +1 -0
- package/dist/templates/teacher.js.map +1 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/tools/builtin/browser.d.ts.map +1 -0
- package/dist/tools/builtin/browser.js.map +1 -0
- package/dist/tools/builtin/datetime.d.ts.map +1 -0
- package/dist/tools/builtin/datetime.js.map +1 -0
- package/dist/tools/builtin/file.d.ts.map +1 -0
- package/dist/tools/builtin/file.js.map +1 -0
- package/dist/tools/builtin/home-assistant.d.ts.map +1 -0
- package/dist/tools/builtin/home-assistant.js.map +1 -0
- package/dist/tools/builtin/index.d.ts.map +1 -0
- package/dist/tools/builtin/index.js.map +1 -0
- package/dist/tools/builtin/rl-tools.d.ts.map +1 -0
- package/dist/tools/builtin/rl-tools.js.map +1 -0
- package/dist/tools/builtin/shell.d.ts.map +1 -0
- package/dist/tools/builtin/shell.js.map +1 -0
- package/dist/tools/builtin/vision.d.ts.map +1 -0
- package/dist/tools/builtin/vision.js.map +1 -0
- package/dist/tools/builtin/web-search.d.ts.map +1 -0
- package/dist/tools/builtin/web-search.js.map +1 -0
- package/dist/tools/builtin/web.d.ts.map +1 -0
- package/dist/tools/builtin/web.js.map +1 -0
- package/dist/tools/calculator.d.ts.map +1 -0
- package/dist/tools/calculator.js.map +1 -0
- package/dist/tools/datetime.d.ts.map +1 -0
- package/dist/tools/datetime.js.map +1 -0
- package/dist/tools/document-processor.d.ts.map +1 -0
- package/dist/tools/document-processor.js.map +1 -0
- package/dist/tools/gateway.d.ts.map +1 -0
- package/dist/tools/gateway.js.map +1 -0
- package/dist/tools/image-generator.d.ts.map +1 -0
- package/dist/tools/image-generator.js.map +1 -0
- package/dist/tools/integrations/calendar.d.ts.map +1 -0
- package/dist/tools/integrations/calendar.js.map +1 -0
- package/dist/tools/integrations/code-exec.d.ts.map +1 -0
- package/dist/tools/integrations/code-exec.js.map +1 -0
- package/dist/tools/integrations/csv-analyzer.d.ts.map +1 -0
- package/dist/tools/integrations/csv-analyzer.js.map +1 -0
- package/dist/tools/integrations/database.d.ts.map +1 -0
- package/dist/tools/integrations/database.js.map +1 -0
- package/dist/tools/integrations/email-send.d.ts.map +1 -0
- package/dist/tools/integrations/email-send.js.map +1 -0
- package/dist/tools/integrations/git-tool.d.ts.map +1 -0
- package/dist/tools/integrations/git-tool.js.map +1 -0
- package/dist/tools/integrations/github-tool.d.ts.map +1 -0
- package/dist/tools/integrations/github-tool.js.map +1 -0
- package/dist/tools/integrations/image-gen.d.ts.map +1 -0
- package/dist/tools/integrations/image-gen.js.map +1 -0
- package/dist/tools/integrations/index.d.ts.map +1 -0
- package/dist/tools/integrations/index.js.map +1 -0
- package/dist/tools/integrations/jira.d.ts.map +1 -0
- package/dist/tools/integrations/jira.js.map +1 -0
- package/dist/tools/integrations/notion.d.ts.map +1 -0
- package/dist/tools/integrations/notion.js.map +1 -0
- package/dist/tools/integrations/npm-tool.d.ts.map +1 -0
- package/dist/tools/integrations/npm-tool.js.map +1 -0
- package/dist/tools/integrations/pdf-reader.d.ts.map +1 -0
- package/dist/tools/integrations/pdf-reader.js.map +1 -0
- package/dist/tools/integrations/slack.d.ts.map +1 -0
- package/dist/tools/integrations/slack.js.map +1 -0
- package/dist/tools/integrations/summarizer.d.ts.map +1 -0
- package/dist/tools/integrations/summarizer.js.map +1 -0
- package/dist/tools/integrations/translator.d.ts.map +1 -0
- package/dist/tools/integrations/translator.js.map +1 -0
- package/dist/tools/integrations/trello.d.ts.map +1 -0
- package/dist/tools/integrations/trello.js.map +1 -0
- package/dist/tools/integrations/vector-search.d.ts.map +1 -0
- package/dist/tools/integrations/vector-search.js.map +1 -0
- package/dist/tools/integrations/web-scraper.d.ts.map +1 -0
- package/dist/tools/integrations/web-scraper.js.map +1 -0
- package/dist/tools/integrations/web-search.d.ts.map +1 -0
- package/dist/tools/integrations/web-search.js.map +1 -0
- package/dist/tools/integrations/webhook.d.ts.map +1 -0
- package/dist/tools/integrations/webhook.js.map +1 -0
- package/dist/tools/json-transform.d.ts.map +1 -0
- package/dist/tools/json-transform.js.map +1 -0
- package/dist/tools/mcp-client.d.ts.map +1 -0
- package/dist/tools/mcp-client.js.map +1 -0
- package/dist/tools/mcp.d.ts.map +1 -0
- package/dist/tools/mcp.js.map +1 -0
- package/dist/tools/text-analysis.d.ts.map +1 -0
- package/dist/tools/text-analysis.js.map +1 -0
- package/dist/tools/web-scraper.d.ts.map +1 -0
- package/dist/tools/web-scraper.js.map +1 -0
- package/dist/tools/web-search.d.ts.map +1 -0
- package/dist/tools/web-search.js.map +1 -0
- package/dist/traces/index.d.ts.map +1 -0
- package/dist/traces/index.js.map +1 -0
- package/dist/ui/components.d.ts.map +1 -0
- package/dist/ui/components.js.map +1 -0
- package/package.json +1 -1
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -20
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -14
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -13
- package/.github/workflows/ci.yml +0 -24
- package/docs/.vitepress/config.ts +0 -103
- package/docs/api/cli.md +0 -48
- package/docs/api/oad-schema.md +0 -64
- package/docs/api/sdk.md +0 -80
- package/docs/guide/concepts.md +0 -51
- package/docs/guide/configuration.md +0 -79
- package/docs/guide/deployment.md +0 -42
- package/docs/guide/getting-started.md +0 -44
- package/docs/guide/templates.md +0 -28
- package/docs/guide/testing.md +0 -84
- package/docs/index.md +0 -27
- package/docs/zh/api/cli.md +0 -54
- package/docs/zh/api/oad-schema.md +0 -87
- package/docs/zh/api/sdk.md +0 -102
- package/docs/zh/guide/concepts.md +0 -104
- package/docs/zh/guide/configuration.md +0 -135
- package/docs/zh/guide/deployment.md +0 -81
- package/docs/zh/guide/getting-started.md +0 -82
- package/docs/zh/guide/templates.md +0 -84
- package/docs/zh/guide/testing.md +0 -88
- package/docs/zh/index.md +0 -27
- package/fix-sidebar.mjs +0 -188
- package/serve-studio.js +0 -13
- package/serve-test.js +0 -25
- package/src/analytics/index.ts +0 -66
- package/src/channels/dingtalk.ts +0 -46
- package/src/channels/discord.ts +0 -192
- package/src/channels/email.ts +0 -351
- package/src/channels/feishu.ts +0 -349
- package/src/channels/googlechat.ts +0 -42
- package/src/channels/imessage.ts +0 -32
- package/src/channels/index.ts +0 -15
- package/src/channels/irc.ts +0 -82
- package/src/channels/line.ts +0 -33
- package/src/channels/matrix.ts +0 -34
- package/src/channels/mattermost.ts +0 -57
- package/src/channels/msteams.ts +0 -33
- package/src/channels/nostr.ts +0 -33
- package/src/channels/qq.ts +0 -34
- package/src/channels/signal.ts +0 -33
- package/src/channels/slack.ts +0 -217
- package/src/channels/sms.ts +0 -34
- package/src/channels/telegram.ts +0 -616
- package/src/channels/twitch.ts +0 -65
- package/src/channels/voice-call.ts +0 -100
- package/src/channels/voice.ts +0 -471
- package/src/channels/web.ts +0 -632
- package/src/channels/webhook.ts +0 -199
- package/src/channels/websocket.ts +0 -399
- package/src/channels/wechat.ts +0 -329
- package/src/channels/whatsapp.ts +0 -33
- package/src/cli/chat.ts +0 -99
- package/src/cli/setup.ts +0 -314
- package/src/cli.ts +0 -2723
- package/src/core/a2a.ts +0 -203
- package/src/core/agent.ts +0 -476
- package/src/core/analytics-engine.ts +0 -186
- package/src/core/api-server.ts +0 -277
- package/src/core/audio.ts +0 -98
- package/src/core/auth.ts +0 -57
- package/src/core/cache.ts +0 -141
- package/src/core/collaboration.ts +0 -275
- package/src/core/compose.ts +0 -77
- package/src/core/config.ts +0 -14
- package/src/core/context-discovery.ts +0 -85
- package/src/core/context-refs.ts +0 -140
- package/src/core/errors.ts +0 -148
- package/src/core/gateway.ts +0 -106
- package/src/core/heartbeat.ts +0 -51
- package/src/core/hitl.ts +0 -138
- package/src/core/hooks.ts +0 -105
- package/src/core/ide-bridge.ts +0 -133
- package/src/core/knowledge.ts +0 -255
- package/src/core/logger.ts +0 -57
- package/src/core/node-network.ts +0 -86
- package/src/core/orchestrator.ts +0 -215
- package/src/core/performance.ts +0 -187
- package/src/core/profiles.ts +0 -122
- package/src/core/rate-limiter.ts +0 -128
- package/src/core/room.ts +0 -109
- package/src/core/runtime.ts +0 -410
- package/src/core/sandbox.ts +0 -344
- package/src/core/scheduler.ts +0 -187
- package/src/core/security.ts +0 -171
- package/src/core/session-manager.ts +0 -137
- package/src/core/streaming.ts +0 -195
- package/src/core/subagent.ts +0 -98
- package/src/core/types.ts +0 -68
- package/src/core/versioning.ts +0 -106
- package/src/core/vision.ts +0 -180
- package/src/core/watch.ts +0 -178
- package/src/core/workflow-graph.ts +0 -365
- package/src/core/workflow.ts +0 -235
- package/src/daemon.ts +0 -96
- package/src/deploy/hermes.ts +0 -156
- package/src/deploy/index.ts +0 -255
- package/src/deploy/openclaw.ts +0 -190
- package/src/doctor.ts +0 -156
- package/src/eval/index.ts +0 -211
- package/src/eval/suites/basic.json +0 -16
- package/src/eval/suites/memory.json +0 -12
- package/src/eval/suites/safety.json +0 -14
- package/src/hub/brain-seed.ts +0 -54
- package/src/hub/client.ts +0 -60
- package/src/i18n/index.ts +0 -216
- package/src/index.ts +0 -283
- package/src/mcp/servers/calculator-mcp.ts +0 -65
- package/src/mcp/servers/crypto-mcp.ts +0 -73
- package/src/mcp/servers/database-mcp.ts +0 -72
- package/src/mcp/servers/datetime-mcp.ts +0 -69
- package/src/mcp/servers/filesystem.ts +0 -66
- package/src/mcp/servers/github-mcp.ts +0 -58
- package/src/mcp/servers/index.ts +0 -63
- package/src/mcp/servers/json-mcp.ts +0 -102
- package/src/mcp/servers/memory-mcp.ts +0 -56
- package/src/mcp/servers/regex-mcp.ts +0 -53
- package/src/mcp/servers/web-mcp.ts +0 -49
- package/src/memory/context-compressor.ts +0 -189
- package/src/memory/deepbrain.ts +0 -108
- package/src/memory/index.ts +0 -41
- package/src/memory/seed-loader.ts +0 -212
- package/src/memory/user-profiler.ts +0 -215
- package/src/plugins/content-filter.ts +0 -23
- package/src/plugins/index.ts +0 -339
- package/src/plugins/logger.ts +0 -18
- package/src/plugins/rate-limiter.ts +0 -38
- package/src/protocols/a2a/client.ts +0 -132
- package/src/protocols/a2a/index.ts +0 -8
- package/src/protocols/a2a/server.ts +0 -333
- package/src/protocols/a2a/types.ts +0 -88
- package/src/protocols/a2a/utils.ts +0 -50
- package/src/protocols/agui/client.ts +0 -83
- package/src/protocols/agui/index.ts +0 -4
- package/src/protocols/agui/server.ts +0 -218
- package/src/protocols/agui/types.ts +0 -153
- package/src/protocols/index.ts +0 -2
- package/src/protocols/mcp/agent-tools.ts +0 -134
- package/src/protocols/mcp/index.ts +0 -8
- package/src/protocols/mcp/server.ts +0 -262
- package/src/protocols/mcp/types.ts +0 -69
- package/src/providers/index.ts +0 -632
- package/src/publish/index.ts +0 -376
- package/src/scheduler/cron-engine.ts +0 -191
- package/src/scheduler/index.ts +0 -2
- package/src/schema/oad.ts +0 -217
- package/src/security/approval.ts +0 -131
- package/src/security/approvals.ts +0 -143
- package/src/security/elevated.ts +0 -105
- package/src/security/guardrails.ts +0 -248
- package/src/security/index.ts +0 -9
- package/src/security/keys.ts +0 -87
- package/src/security/secrets.ts +0 -129
- package/src/skills/auto-learn.ts +0 -262
- package/src/skills/base.ts +0 -16
- package/src/skills/builtin/index.ts +0 -408
- package/src/skills/document.ts +0 -100
- package/src/skills/http.ts +0 -35
- package/src/skills/index.ts +0 -27
- package/src/skills/marketplace.ts +0 -113
- package/src/skills/scheduler.ts +0 -80
- package/src/skills/types.ts +0 -42
- package/src/skills/webhook-trigger.ts +0 -59
- package/src/studio/server.ts +0 -1791
- package/src/studio/templates-data.ts +0 -178
- package/src/studio-ui/index.html +0 -3076
- package/src/telemetry/index.ts +0 -324
- package/src/templates/code-reviewer.ts +0 -30
- package/src/templates/content-writer.ts +0 -58
- package/src/templates/customer-service.ts +0 -76
- package/src/templates/data-analyst.ts +0 -66
- package/src/templates/executive-assistant.ts +0 -71
- package/src/templates/financial-advisor.ts +0 -60
- package/src/templates/hr-recruiter.ts +0 -58
- package/src/templates/knowledge-base.ts +0 -27
- package/src/templates/legal-assistant.ts +0 -71
- package/src/templates/project-manager.ts +0 -58
- package/src/templates/sales-assistant.ts +0 -75
- package/src/templates/teacher.ts +0 -75
- package/src/testing/index.ts +0 -181
- package/src/tools/builtin/browser.ts +0 -299
- package/src/tools/builtin/datetime.ts +0 -41
- package/src/tools/builtin/file.ts +0 -107
- package/src/tools/builtin/home-assistant.ts +0 -116
- package/src/tools/builtin/index.ts +0 -37
- package/src/tools/builtin/rl-tools.ts +0 -243
- package/src/tools/builtin/shell.ts +0 -43
- package/src/tools/builtin/vision.ts +0 -64
- package/src/tools/builtin/web-search.ts +0 -126
- package/src/tools/builtin/web.ts +0 -35
- package/src/tools/calculator.ts +0 -73
- package/src/tools/datetime.ts +0 -149
- package/src/tools/document-processor.ts +0 -213
- package/src/tools/gateway.ts +0 -220
- package/src/tools/image-generator.ts +0 -150
- package/src/tools/integrations/calendar.ts +0 -73
- package/src/tools/integrations/code-exec.ts +0 -39
- package/src/tools/integrations/csv-analyzer.ts +0 -92
- package/src/tools/integrations/database.ts +0 -44
- package/src/tools/integrations/email-send.ts +0 -76
- package/src/tools/integrations/git-tool.ts +0 -42
- package/src/tools/integrations/github-tool.ts +0 -76
- package/src/tools/integrations/image-gen.ts +0 -56
- package/src/tools/integrations/index.ts +0 -92
- package/src/tools/integrations/jira.ts +0 -83
- package/src/tools/integrations/notion.ts +0 -71
- package/src/tools/integrations/npm-tool.ts +0 -48
- package/src/tools/integrations/pdf-reader.ts +0 -58
- package/src/tools/integrations/slack.ts +0 -65
- package/src/tools/integrations/summarizer.ts +0 -49
- package/src/tools/integrations/translator.ts +0 -48
- package/src/tools/integrations/trello.ts +0 -60
- package/src/tools/integrations/vector-search.ts +0 -42
- package/src/tools/integrations/web-scraper.ts +0 -47
- package/src/tools/integrations/web-search.ts +0 -58
- package/src/tools/integrations/webhook.ts +0 -38
- package/src/tools/json-transform.ts +0 -187
- package/src/tools/mcp-client.ts +0 -131
- package/src/tools/mcp.ts +0 -76
- package/src/tools/text-analysis.ts +0 -116
- package/src/tools/web-scraper.ts +0 -179
- package/src/tools/web-search.ts +0 -180
- package/src/traces/index.ts +0 -132
- package/src/types/agent-workstation.d.ts +0 -2
- package/src/ui/components.ts +0 -127
- package/srv-err.txt +0 -0
- package/srv-out.txt +0 -1
- package/test-agent/Dockerfile +0 -9
- package/test-agent/README.md +0 -50
- package/test-agent/agent.yaml +0 -23
- package/test-agent/docker-compose.yml +0 -11
- package/test-agent/oad.yaml +0 -31
- package/test-agent/package-lock.json +0 -1492
- package/test-agent/package.json +0 -18
- package/test-agent/src/index.ts +0 -24
- package/test-agent/src/skills/echo.ts +0 -15
- package/test-agent/tsconfig.json +0 -25
- package/test-full.js +0 -43
- package/test-sidebar.js +0 -22
- package/test-studio3.js +0 -75
- package/test-studio4.js +0 -41
- package/tests/a2a-protocol.test.ts +0 -285
- package/tests/a2a.test.ts +0 -66
- package/tests/agent.test.ts +0 -72
- package/tests/agui-protocol.test.ts +0 -246
- package/tests/analytics.test.ts +0 -50
- package/tests/api-server.test.ts +0 -148
- package/tests/approvals.test.ts +0 -89
- package/tests/audio.test.ts +0 -40
- package/tests/auto-learn.test.ts +0 -105
- package/tests/brain-seed-extended.test.ts +0 -490
- package/tests/brain-seed.test.ts +0 -239
- package/tests/browser.test.ts +0 -179
- package/tests/builtin-tools.test.ts +0 -83
- package/tests/channel.test.ts +0 -39
- package/tests/channels/discord.test.ts +0 -79
- package/tests/channels/email.test.ts +0 -148
- package/tests/channels/feishu.test.ts +0 -123
- package/tests/channels/telegram.test.ts +0 -129
- package/tests/channels/websocket.test.ts +0 -53
- package/tests/channels/wechat.test.ts +0 -170
- package/tests/channels-extra.test.ts +0 -45
- package/tests/chat-cli.test.ts +0 -160
- package/tests/cli.test.ts +0 -46
- package/tests/collaboration.test.ts +0 -319
- package/tests/context-compressor.test.ts +0 -172
- package/tests/context-refs.test.ts +0 -121
- package/tests/cron-engine.test.ts +0 -101
- package/tests/daemon.test.ts +0 -135
- package/tests/deepbrain-wire.test.ts +0 -234
- package/tests/deploy-and-dag.test.ts +0 -196
- package/tests/doctor.test.ts +0 -38
- package/tests/document-processor.test.ts +0 -69
- package/tests/e2e-nocode.test.ts +0 -442
- package/tests/e2e.test.ts +0 -134
- package/tests/elevated.test.ts +0 -69
- package/tests/errors.test.ts +0 -83
- package/tests/eval.test.ts +0 -173
- package/tests/gateway.test.ts +0 -63
- package/tests/guardrails.test.ts +0 -177
- package/tests/hitl.test.ts +0 -71
- package/tests/home-assistant.test.ts +0 -40
- package/tests/hooks.test.ts +0 -79
- package/tests/i18n.test.ts +0 -41
- package/tests/ide-bridge.test.ts +0 -38
- package/tests/image-generator.test.ts +0 -84
- package/tests/init-role.test.ts +0 -124
- package/tests/integrations.test.ts +0 -249
- package/tests/mcp-client.test.ts +0 -92
- package/tests/mcp-server.test.ts +0 -178
- package/tests/mcp-servers.test.ts +0 -260
- package/tests/mcp.test.ts +0 -54
- package/tests/node-network.test.ts +0 -74
- package/tests/oad.test.ts +0 -68
- package/tests/performance.test.ts +0 -115
- package/tests/plugin-a2a-enhanced.test.ts +0 -230
- package/tests/plugin.test.ts +0 -74
- package/tests/profiles.test.ts +0 -61
- package/tests/publish.test.ts +0 -231
- package/tests/rl-tools.test.ts +0 -93
- package/tests/room.test.ts +0 -106
- package/tests/runtime.test.ts +0 -42
- package/tests/sandbox-manager.test.ts +0 -46
- package/tests/sandbox.test.ts +0 -46
- package/tests/scheduler.test.ts +0 -200
- package/tests/secrets.test.ts +0 -107
- package/tests/security-enhanced.test.ts +0 -233
- package/tests/security.test.ts +0 -60
- package/tests/settings-api.test.ts +0 -148
- package/tests/setup.test.ts +0 -73
- package/tests/skill-learner.test.ts +0 -161
- package/tests/streaming.test.ts +0 -109
- package/tests/studio.test.ts +0 -402
- package/tests/subagent.test.ts +0 -193
- package/tests/telegram-discord.test.ts +0 -60
- package/tests/telemetry.test.ts +0 -186
- package/tests/templates.test.ts +0 -77
- package/tests/tools/builtin-extended.test.ts +0 -138
- package/tests/user-profiler.test.ts +0 -169
- package/tests/v070.test.ts +0 -76
- package/tests/v090-features.test.ts +0 -254
- package/tests/versioning.test.ts +0 -75
- package/tests/vision.test.ts +0 -61
- package/tests/voice-call.test.ts +0 -47
- package/tests/voice-enhanced.test.ts +0 -169
- package/tests/voice-interaction.test.ts +0 -38
- package/tests/voice.test.ts +0 -61
- package/tests/web-search.test.ts +0 -155
- package/tests/webhook.test.ts +0 -29
- package/tests/workflow-graph.test.ts +0 -279
- package/tests/workflow.test.ts +0 -143
- package/tmp-js-test.js +0 -1532
- package/tmp-sc.js +0 -1716
- package/tutorial/customer-service-agent/README.md +0 -612
- package/tutorial/customer-service-agent/SOUL.md +0 -26
- package/tutorial/customer-service-agent/agent.yaml +0 -63
- package/tutorial/customer-service-agent/package.json +0 -19
- package/tutorial/customer-service-agent/src/index.ts +0 -69
- package/tutorial/customer-service-agent/src/skills/faq.ts +0 -27
- package/tutorial/customer-service-agent/src/skills/ticket.ts +0 -22
- package/tutorial/customer-service-agent/tsconfig.json +0 -14
- package/vitest.config.ts +0 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
CHANGED
|
@@ -37,6 +37,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
37
37
|
const commander_1 = require("commander");
|
|
38
38
|
const fs = __importStar(require("fs"));
|
|
39
39
|
const path = __importStar(require("path"));
|
|
40
|
+
const os = __importStar(require("os"));
|
|
40
41
|
const yaml = __importStar(require("js-yaml"));
|
|
41
42
|
const readline = __importStar(require("readline"));
|
|
42
43
|
const runtime_1 = require("./core/runtime");
|
|
@@ -124,7 +125,7 @@ async function select(question, options) {
|
|
|
124
125
|
program
|
|
125
126
|
.name('opc')
|
|
126
127
|
.description('OPC Agent - Open Agent Framework for business workstations')
|
|
127
|
-
.version('
|
|
128
|
+
.version(require('../package.json').version);
|
|
128
129
|
// ── Init command ─────────────────────────────────────────────
|
|
129
130
|
program
|
|
130
131
|
.command('init')
|
|
@@ -186,7 +187,7 @@ program
|
|
|
186
187
|
}
|
|
187
188
|
const roleDisplayName = roleMeta.name || matched.role;
|
|
188
189
|
const roleDescription = roleMeta.name_zh ? `${roleMeta.name} (${roleMeta.name_zh})` : (roleMeta.name || matched.role);
|
|
189
|
-
console.log(` ${icon.info} Matched role: ${color.cyan(matched.category + '/' + matched.role)}
|
|
190
|
+
console.log(` ${icon.info} Matched role: ${color.cyan(matched.category + '/' + matched.role)} - ${roleDisplayName}`);
|
|
190
191
|
// Create directories
|
|
191
192
|
fs.mkdirSync(dir, { recursive: true });
|
|
192
193
|
fs.mkdirSync(path.join(dir, 'src', 'skills'), { recursive: true });
|
|
@@ -205,9 +206,9 @@ program
|
|
|
205
206
|
// Company-specific knowledge belongs to Desk (closed-source), not here.
|
|
206
207
|
const workstationSeedFromRole = workstationMatch?.[0]?.trim() || '';
|
|
207
208
|
fs.writeFileSync(path.join(dir, 'brain-seeds', 'workstation.md'), workstationSeedFromRole || `# Workstation Knowledge\n\n## Tools & Environment\n\nCommon tools and setup for this workstation role.\n\n## Workflows\n\nStandard operating procedures and workflows.\n\n## Best Practices\n\nIndustry best practices for this role.\n`);
|
|
208
|
-
//
|
|
209
|
+
// oad.yaml with role system prompt and brain seeds(不再生成 agent.yaml)
|
|
209
210
|
const firstLine = systemPromptContent.split('\n').find((l) => l.trim() && !l.startsWith('#'))?.trim() || 'You are a helpful AI assistant.';
|
|
210
|
-
fs.writeFileSync(path.join(dir, '
|
|
211
|
+
fs.writeFileSync(path.join(dir, 'oad.yaml'), `apiVersion: opc/v1
|
|
211
212
|
kind: Agent
|
|
212
213
|
metadata:
|
|
213
214
|
name: ${name}
|
|
@@ -251,14 +252,14 @@ spec:
|
|
|
251
252
|
if (roleData.files['oad.yaml']) {
|
|
252
253
|
fs.writeFileSync(path.join(dir, 'oad.yaml'), roleData.files['oad.yaml']);
|
|
253
254
|
}
|
|
254
|
-
// src/index.ts
|
|
255
|
+
// src/index.ts - entry point (same as generic)
|
|
255
256
|
fs.writeFileSync(path.join(dir, 'src', 'index.ts'), `import { AgentRuntime } from 'opc-agent';
|
|
256
257
|
import { EchoSkill } from './skills/echo';
|
|
257
258
|
import { readFileSync, existsSync } from 'fs';
|
|
258
259
|
|
|
259
260
|
async function main() {
|
|
260
261
|
const runtime = new AgentRuntime();
|
|
261
|
-
const config = await runtime.loadConfig('./
|
|
262
|
+
const config = await runtime.loadConfig('./oad.yaml');
|
|
262
263
|
|
|
263
264
|
const soul = existsSync('./SOUL.md') ? readFileSync('./SOUL.md', 'utf-8') : '';
|
|
264
265
|
const context = existsSync('./CONTEXT.md') ? readFileSync('./CONTEXT.md', 'utf-8') : '';
|
|
@@ -305,15 +306,15 @@ export class EchoSkill extends BaseSkill {
|
|
|
305
306
|
fs.writeFileSync(path.join(dir, 'package.json'), JSON.stringify({ name, version: '1.0.0', private: true, scripts: { start: 'opc run', dev: 'opc dev', chat: 'opc chat', build: 'tsc' }, dependencies: { 'opc-agent': '^1.3.0' }, devDependencies: { typescript: '^5.5.0', tsx: '^4.0.0' } }, null, 2));
|
|
306
307
|
// .gitignore, .env.example, .env
|
|
307
308
|
fs.writeFileSync(path.join(dir, '.gitignore'), 'node_modules\ndist\n.env\n.opc-knowledge.json\ndata/\n');
|
|
308
|
-
fs.writeFileSync(path.join(dir, '.env.example'), `# LLM API Configuration\
|
|
309
|
-
fs.writeFileSync(path.join(dir, '.env'),
|
|
309
|
+
fs.writeFileSync(path.join(dir, '.env.example'), `# LLM API Configuration\n# Ollama (免费本地,默认,无需 API key):\nOPC_LLM_BASE_URL=http://localhost:11434/v1\nOPC_LLM_MODEL=qwen2.5\n\n# 如需使用商业模型,取消以下注释:\n# OPC_LLM_API_KEY=your-api-key-here\n# OPC_LLM_BASE_URL=https://api.deepseek.com/v1\n# OPC_LLM_MODEL=deepseek-chat\n`);
|
|
310
|
+
fs.writeFileSync(path.join(dir, '.env'), `# Ollama (免费本地) - 无需 API key\nOPC_LLM_BASE_URL=http://localhost:11434/v1\nOPC_LLM_MODEL=qwen2.5\n`);
|
|
310
311
|
// README.md
|
|
311
312
|
fs.writeFileSync(path.join(dir, 'README.md'), `# ${name}\n\nCreated with [OPC Agent](https://github.com/Deepleaper/opc-agent) using the \`${matched.category}/${matched.role}\` workstation role.\n\n## Quick Start\n\n\`\`\`bash\nnpm install\nollama pull qwen2.5\nnpx tsx src/index.ts\n\`\`\`\n\nOpen [http://localhost:3000](http://localhost:3000)\n`);
|
|
312
313
|
// Dockerfile + docker-compose
|
|
313
|
-
fs.writeFileSync(path.join(dir, 'Dockerfile'), `FROM node:22-alpine\nWORKDIR /app\nCOPY package.json package-lock.json* ./\nRUN npm ci --production 2>/dev/null || npm install --production\nCOPY oad.yaml
|
|
314
|
-
fs.writeFileSync(path.join(dir, 'docker-compose.yml'), `version: '3.8'\nservices:\n agent:\n build: .\n ports:\n - "3000:3000"\n env_file:\n - .env\n volumes:\n - ./
|
|
314
|
+
fs.writeFileSync(path.join(dir, 'Dockerfile'), `FROM node:22-alpine\nWORKDIR /app\nCOPY package.json package-lock.json* ./\nRUN npm ci --production 2>/dev/null || npm install --production\nCOPY oad.yaml .env* ./\nCOPY src/ ./src/\nCOPY prompts/ ./prompts/ 2>/dev/null || true\nEXPOSE 3000\nCMD ["npx", "opc", "run"]\n`);
|
|
315
|
+
fs.writeFileSync(path.join(dir, 'docker-compose.yml'), `version: '3.8'\nservices:\n agent:\n build: .\n ports:\n - "3000:3000"\n env_file:\n - .env\n volumes:\n - ./oad.yaml:/app/oad.yaml:ro\n restart: unless-stopped\n`);
|
|
315
316
|
console.log(`\n${icon.success} Created agent project: ${color.bold(name + '/')} from role ${color.cyan(matched.category + '/' + matched.role)}`);
|
|
316
|
-
console.log(` ${icon.file}
|
|
317
|
+
console.log(` ${icon.file} oad.yaml - Agent definition with role system prompt`);
|
|
317
318
|
console.log(` ${icon.file} SOUL.md - Role personality (${systemPromptContent.split('\n').length} lines)`);
|
|
318
319
|
console.log(` ${icon.file} CONTEXT.md - Role context & documentation`);
|
|
319
320
|
console.log(` ${icon.file} brain-seeds/ - 3-tier brain seed knowledge`);
|
|
@@ -344,7 +345,7 @@ export class EchoSkill extends BaseSkill {
|
|
|
344
345
|
}
|
|
345
346
|
}
|
|
346
347
|
catch {
|
|
347
|
-
// Hub unreachable
|
|
348
|
+
// Hub unreachable - fall back to bundled templates
|
|
348
349
|
}
|
|
349
350
|
let template;
|
|
350
351
|
let selectedHubTemplate;
|
|
@@ -364,6 +365,176 @@ export class EchoSkill extends BaseSkill {
|
|
|
364
365
|
else {
|
|
365
366
|
template = await select('Select a template:', Object.entries(TEMPLATES).map(([value, { label }]) => ({ value, label })));
|
|
366
367
|
}
|
|
368
|
+
// ── 硬件检测 + 智能模型推荐 ──
|
|
369
|
+
const totalRAM = Math.round(os.totalmem() / (1024 ** 3)); // GB
|
|
370
|
+
const freeMem = Math.round(os.freemem() / (1024 ** 3));
|
|
371
|
+
const cpuCount = os.cpus().length;
|
|
372
|
+
const MODEL_RECOMMENDATIONS = [
|
|
373
|
+
// Tier 1: 超轻量 (≤4GB RAM)
|
|
374
|
+
{ name: 'qwen2.5:0.5b', size: '0.4GB', minRAM: 2, desc: '超轻量,适合低配机器', priority: 1 },
|
|
375
|
+
{ name: 'qwen2.5:1.5b', size: '1.0GB', minRAM: 4, desc: '轻量但更智能', priority: 2 },
|
|
376
|
+
// Tier 2: 轻量 (4-8GB RAM)
|
|
377
|
+
{ name: 'qwen2.5:3b', size: '2.0GB', minRAM: 6, desc: '性价比最优', priority: 3 },
|
|
378
|
+
{ name: 'llama3.2:3b', size: '2.0GB', minRAM: 6, desc: 'Meta 最新轻量模型', priority: 3 },
|
|
379
|
+
{ name: 'phi3:mini', size: '2.3GB', minRAM: 6, desc: '微软高效小模型', priority: 3 },
|
|
380
|
+
// Tier 3: 标准 (8-16GB RAM)
|
|
381
|
+
{ name: 'qwen2.5:7b', size: '4.7GB', minRAM: 8, desc: '推荐:中文最强 7B', priority: 4 },
|
|
382
|
+
{ name: 'llama3.1:8b', size: '4.7GB', minRAM: 8, desc: 'Meta 通用 8B', priority: 4 },
|
|
383
|
+
{ name: 'mistral:7b', size: '4.1GB', minRAM: 8, desc: 'Mistral 经典 7B', priority: 4 },
|
|
384
|
+
{ name: 'gemma2:9b', size: '5.4GB', minRAM: 10, desc: 'Google 高效 9B', priority: 4 },
|
|
385
|
+
// Tier 4: 高配 (16-32GB RAM)
|
|
386
|
+
{ name: 'qwen2.5:14b', size: '9.0GB', minRAM: 16, desc: '中文强力 14B', priority: 5 },
|
|
387
|
+
{ name: 'deepseek-coder-v2:16b', size: '9.0GB', minRAM: 16, desc: '编程专用', priority: 5 },
|
|
388
|
+
// Tier 5: 旗舰 (32GB+ RAM)
|
|
389
|
+
{ name: 'qwen2.5:32b', size: '20GB', minRAM: 32, desc: '接近 GPT-4 水平', priority: 6 },
|
|
390
|
+
{ name: 'llama3.1:70b', size: '40GB', minRAM: 64, desc: '开源最强', priority: 7 },
|
|
391
|
+
];
|
|
392
|
+
// 根据可用内存筛选合适的模型
|
|
393
|
+
const suitableModels = MODEL_RECOMMENDATIONS.filter(m => m.minRAM <= freeMem + 2); // +2GB 容差
|
|
394
|
+
const bestRec = suitableModels.length > 0 ? suitableModels[suitableModels.length - 1] : MODEL_RECOMMENDATIONS[0];
|
|
395
|
+
// ── LLM Provider 选择(Ollama-first)──
|
|
396
|
+
let llmProvider = 'ollama';
|
|
397
|
+
let llmModel = 'qwen2.5';
|
|
398
|
+
let llmBaseUrl = 'http://localhost:11434/v1';
|
|
399
|
+
let llmApiKey = '';
|
|
400
|
+
let ollamaRunning = false;
|
|
401
|
+
let modelNames = [];
|
|
402
|
+
// 无论 --yes 还是交互式,都先检测 Ollama
|
|
403
|
+
try {
|
|
404
|
+
const controller = new AbortController();
|
|
405
|
+
const ollamaTimeout = setTimeout(() => controller.abort(), 3000);
|
|
406
|
+
const ollamaRes = await fetch('http://localhost:11434/api/tags', { signal: controller.signal });
|
|
407
|
+
clearTimeout(ollamaTimeout);
|
|
408
|
+
const ollamaData = await ollamaRes.json();
|
|
409
|
+
modelNames = (ollamaData.models || []).map((m) => m.name || m.model);
|
|
410
|
+
ollamaRunning = true;
|
|
411
|
+
if (opts.yes && modelNames.length > 0) {
|
|
412
|
+
// --yes 模式:优先用推荐模型(如果已安装),否则用第一个已有模型
|
|
413
|
+
const bestInstalled = suitableModels.reverse().find(m => modelNames.includes(m.name));
|
|
414
|
+
llmModel = bestInstalled ? bestInstalled.name : modelNames[0];
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
catch {
|
|
418
|
+
ollamaRunning = false;
|
|
419
|
+
}
|
|
420
|
+
if (!opts.yes) {
|
|
421
|
+
if (ollamaRunning) {
|
|
422
|
+
console.log(`\n ${icon.info} ${color.dim('正在检测 Ollama...')}`);
|
|
423
|
+
console.log(` ${icon.success} Ollama 已运行,发现 ${modelNames.length} 个模型`);
|
|
424
|
+
console.log(` ${icon.info} 系统: ${totalRAM}GB RAM (${freeMem}GB 可用), ${cpuCount} CPU cores`);
|
|
425
|
+
console.log(` ${icon.info} 推荐模型: ${color.cyan(bestRec.name)} (${bestRec.size}) - ${bestRec.desc}`);
|
|
426
|
+
// 选择 provider
|
|
427
|
+
llmProvider = await select('选择 LLM 引擎:', [
|
|
428
|
+
{ value: 'ollama', label: '🟢 Ollama (免费本地,推荐) - 已检测到运行中' },
|
|
429
|
+
{ value: 'deepseek', label: '🔵 DeepSeek - 高性价比国产模型' },
|
|
430
|
+
{ value: 'openai', label: '⚪ OpenAI (GPT-4o)' },
|
|
431
|
+
{ value: 'anthropic', label: '🟣 Anthropic (Claude)' },
|
|
432
|
+
{ value: 'custom', label: '⚙️ 自定义 (手动输入 Base URL)' },
|
|
433
|
+
]);
|
|
434
|
+
if (llmProvider === 'ollama') {
|
|
435
|
+
// 已有模型 + 推荐未下载的模型
|
|
436
|
+
const existingSet = new Set(modelNames);
|
|
437
|
+
const recommendedNotInstalled = suitableModels.filter(m => !existingSet.has(m.name)).slice(-3); // 推荐最多3个未下载的
|
|
438
|
+
const modelOptions = [
|
|
439
|
+
...modelNames.map((m) => {
|
|
440
|
+
const rec = MODEL_RECOMMENDATIONS.find(r => r.name === m);
|
|
441
|
+
const recLabel = rec ? ` (${rec.size}, ${rec.desc})` : '';
|
|
442
|
+
const isBest = m === bestRec.name ? ' ⭐推荐' : '';
|
|
443
|
+
return { value: m, label: `${m}${recLabel}${isBest} [已安装]` };
|
|
444
|
+
}),
|
|
445
|
+
...recommendedNotInstalled.map(m => ({
|
|
446
|
+
value: `pull:${m.name}`,
|
|
447
|
+
label: `${m.name} (${m.size}, ${m.desc}) [需下载]`,
|
|
448
|
+
})),
|
|
449
|
+
];
|
|
450
|
+
if (modelOptions.length > 0) {
|
|
451
|
+
const chosen = await select('选择 Ollama 模型:', modelOptions);
|
|
452
|
+
if (chosen.startsWith('pull:')) {
|
|
453
|
+
const pullModel = chosen.slice(5);
|
|
454
|
+
console.log(`\n ${icon.info} 正在下载 ${color.cyan(pullModel)}...`);
|
|
455
|
+
console.log(` 运行 ${color.cyan(`ollama pull ${pullModel}`)} 下载`);
|
|
456
|
+
console.log(` 下载完成后运行 ${color.cyan('opc run')} 启动\n`);
|
|
457
|
+
llmModel = pullModel;
|
|
458
|
+
}
|
|
459
|
+
else {
|
|
460
|
+
llmModel = chosen;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
else {
|
|
464
|
+
// 没有本地模型,推荐下载
|
|
465
|
+
console.log(` ${color.yellow('⚠️')} 没有发现已下载的模型`);
|
|
466
|
+
console.log(` ${icon.info} 根据你的硬件 (${freeMem}GB 可用),推荐下载:`);
|
|
467
|
+
for (const m of suitableModels.slice(-3)) {
|
|
468
|
+
console.log(` ${color.cyan(`ollama pull ${m.name}`)} (${m.size}, ${m.desc})`);
|
|
469
|
+
}
|
|
470
|
+
llmModel = bestRec.name;
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
else {
|
|
475
|
+
// Ollama not running
|
|
476
|
+
console.log(`\n ${icon.info} ${color.dim('正在检测 Ollama...')}`);
|
|
477
|
+
console.log(` ${color.yellow('⚠️')} Ollama 未运行或未安装`);
|
|
478
|
+
llmProvider = await select('选择 LLM 引擎:', [
|
|
479
|
+
{ value: 'ollama', label: '🟢 Ollama (免费本地,推荐) - 需先安装: https://ollama.ai' },
|
|
480
|
+
{ value: 'deepseek', label: '🔵 DeepSeek - 高性价比国产模型' },
|
|
481
|
+
{ value: 'openai', label: '⚪ OpenAI (GPT-4o)' },
|
|
482
|
+
{ value: 'anthropic', label: '🟣 Anthropic (Claude)' },
|
|
483
|
+
{ value: 'custom', label: '⚙️ 自定义 (手动输入 Base URL)' },
|
|
484
|
+
]);
|
|
485
|
+
if (llmProvider === 'ollama') {
|
|
486
|
+
console.log(`\n ${icon.info} Ollama 安装指南:`);
|
|
487
|
+
console.log(` 1. 访问 ${color.cyan('https://ollama.ai')} 下载并安装`);
|
|
488
|
+
console.log(` ${icon.info} 根据你的硬件 (${totalRAM}GB RAM, ${freeMem}GB 可用),推荐:`);
|
|
489
|
+
for (const m of suitableModels.slice(-3)) {
|
|
490
|
+
console.log(` ${color.cyan(`ollama pull ${m.name}`)} (${m.size}, ${m.desc})`);
|
|
491
|
+
}
|
|
492
|
+
console.log(` 3. 然后 ${color.cyan('opc run')} 即可开始对话\n`);
|
|
493
|
+
llmModel = bestRec.name;
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
// 商业模型需要 API key
|
|
497
|
+
if (llmProvider === 'deepseek') {
|
|
498
|
+
llmBaseUrl = 'https://api.deepseek.com/v1';
|
|
499
|
+
llmModel = 'deepseek-chat';
|
|
500
|
+
llmApiKey = await promptUser('输入 DeepSeek API Key (可稍后在 .env 中配置,直接回车跳过)');
|
|
501
|
+
if (!llmApiKey) {
|
|
502
|
+
console.log(` ${icon.info} 稍后在 ${color.cyan('.env')} 文件中设置 ${color.bold('OPC_LLM_API_KEY')}`);
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
else if (llmProvider === 'openai') {
|
|
506
|
+
llmBaseUrl = 'https://api.openai.com/v1';
|
|
507
|
+
llmModel = 'gpt-4o-mini';
|
|
508
|
+
llmApiKey = await promptUser('输入 OpenAI API Key (可稍后在 .env 中配置,直接回车跳过)');
|
|
509
|
+
if (!llmApiKey) {
|
|
510
|
+
console.log(` ${icon.info} 稍后在 ${color.cyan('.env')} 文件中设置 ${color.bold('OPC_LLM_API_KEY')}`);
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
else if (llmProvider === 'anthropic') {
|
|
514
|
+
llmBaseUrl = 'https://api.anthropic.com/v1';
|
|
515
|
+
llmModel = 'claude-sonnet-4-20250514';
|
|
516
|
+
llmApiKey = await promptUser('输入 Anthropic API Key (可稍后在 .env 中配置,直接回车跳过)');
|
|
517
|
+
if (!llmApiKey) {
|
|
518
|
+
console.log(` ${icon.info} 稍后在 ${color.cyan('.env')} 文件中设置 ${color.bold('OPC_LLM_API_KEY')}`);
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
else if (llmProvider === 'custom') {
|
|
522
|
+
llmBaseUrl = await promptUser('输入 Base URL', 'http://localhost:11434/v1');
|
|
523
|
+
llmModel = await promptUser('输入模型名称', 'qwen2.5');
|
|
524
|
+
llmApiKey = await promptUser('输入 API Key (可选,直接回车跳过)');
|
|
525
|
+
// 尝试推断 provider
|
|
526
|
+
if (llmBaseUrl.includes('deepseek.com'))
|
|
527
|
+
llmProvider = 'deepseek';
|
|
528
|
+
else if (llmBaseUrl.includes('openai.com'))
|
|
529
|
+
llmProvider = 'openai';
|
|
530
|
+
else if (llmBaseUrl.includes('anthropic.com'))
|
|
531
|
+
llmProvider = 'anthropic';
|
|
532
|
+
else if (llmBaseUrl.includes('localhost:11434'))
|
|
533
|
+
llmProvider = 'ollama';
|
|
534
|
+
else
|
|
535
|
+
llmProvider = 'openai'; // OpenAI-compatible fallback
|
|
536
|
+
}
|
|
537
|
+
}
|
|
367
538
|
const dir = path.resolve(name);
|
|
368
539
|
if (fs.existsSync(dir)) {
|
|
369
540
|
console.error(`\n${icon.error} Directory ${color.bold(name)} already exists.`);
|
|
@@ -374,37 +545,16 @@ export class EchoSkill extends BaseSkill {
|
|
|
374
545
|
const factory = TEMPLATES[template]?.factory ?? customer_service_1.createCustomerServiceConfig;
|
|
375
546
|
const config = factory();
|
|
376
547
|
config.metadata.name = name;
|
|
548
|
+
// 用用户选择的 provider 和 model 覆盖模板默认值
|
|
549
|
+
config.spec.model = llmModel;
|
|
550
|
+
config.spec.provider = { default: llmProvider };
|
|
377
551
|
// Ensure web channel exists
|
|
378
552
|
if (!config.spec.channels.some((c) => c.type === 'web')) {
|
|
379
553
|
config.spec.channels.push({ type: 'web', port: 3000 });
|
|
380
554
|
}
|
|
555
|
+
// 只生成 oad.yaml,不生成 agent.yaml
|
|
381
556
|
fs.writeFileSync(path.join(dir, 'oad.yaml'), yaml.dump(config, { lineWidth: 120 }));
|
|
382
|
-
//
|
|
383
|
-
fs.writeFileSync(path.join(dir, 'agent.yaml'), `apiVersion: opc/v1
|
|
384
|
-
kind: Agent
|
|
385
|
-
metadata:
|
|
386
|
-
name: ${name}
|
|
387
|
-
version: 1.0.0
|
|
388
|
-
description: My AI Agent
|
|
389
|
-
spec:
|
|
390
|
-
model: qwen2.5
|
|
391
|
-
provider:
|
|
392
|
-
default: ollama
|
|
393
|
-
systemPrompt: |
|
|
394
|
-
You are a helpful AI assistant named ${name}.
|
|
395
|
-
Be concise, helpful, and friendly.
|
|
396
|
-
channels:
|
|
397
|
-
- type: web
|
|
398
|
-
port: 3000
|
|
399
|
-
memory:
|
|
400
|
-
shortTerm: true
|
|
401
|
-
longTerm:
|
|
402
|
-
provider: deepbrain
|
|
403
|
-
skills:
|
|
404
|
-
- name: echo
|
|
405
|
-
description: Echo test skill
|
|
406
|
-
`);
|
|
407
|
-
// src/index.ts — entry point
|
|
557
|
+
// src/index.ts - entry point
|
|
408
558
|
fs.writeFileSync(path.join(dir, 'src', 'index.ts'), `import { AgentRuntime } from 'opc-agent';
|
|
409
559
|
import { EchoSkill } from './skills/echo';
|
|
410
560
|
import { readFileSync, existsSync } from 'fs';
|
|
@@ -413,7 +563,7 @@ async function main() {
|
|
|
413
563
|
const runtime = new AgentRuntime();
|
|
414
564
|
|
|
415
565
|
// Load OAD config
|
|
416
|
-
const config = await runtime.loadConfig('./
|
|
566
|
+
const config = await runtime.loadConfig('./oad.yaml');
|
|
417
567
|
|
|
418
568
|
// Load personality and context files
|
|
419
569
|
const soul = existsSync('./SOUL.md') ? readFileSync('./SOUL.md', 'utf-8') : '';
|
|
@@ -439,7 +589,7 @@ async function main() {
|
|
|
439
589
|
|
|
440
590
|
main().catch(console.error);
|
|
441
591
|
`);
|
|
442
|
-
// src/skills/echo.ts
|
|
592
|
+
// src/skills/echo.ts - example skill
|
|
443
593
|
fs.writeFileSync(path.join(dir, 'src', 'skills', 'echo.ts'), `import { BaseSkill } from 'opc-agent';
|
|
444
594
|
import type { AgentContext, Message, SkillResult } from 'opc-agent';
|
|
445
595
|
|
|
@@ -477,23 +627,39 @@ export class EchoSkill extends BaseSkill {
|
|
|
477
627
|
}, null, 2));
|
|
478
628
|
// .env.example
|
|
479
629
|
fs.writeFileSync(path.join(dir, '.env.example'), `# LLM API Configuration
|
|
480
|
-
|
|
481
|
-
OPC_LLM_BASE_URL=
|
|
482
|
-
OPC_LLM_MODEL=
|
|
630
|
+
# Ollama (免费本地,默认):
|
|
631
|
+
# OPC_LLM_BASE_URL=http://localhost:11434/v1
|
|
632
|
+
# OPC_LLM_MODEL=qwen2.5
|
|
633
|
+
# (Ollama 无需 API key)
|
|
483
634
|
|
|
484
|
-
#
|
|
635
|
+
# DeepSeek:
|
|
636
|
+
# OPC_LLM_API_KEY=your-deepseek-key
|
|
485
637
|
# OPC_LLM_BASE_URL=https://api.deepseek.com/v1
|
|
486
638
|
# OPC_LLM_MODEL=deepseek-chat
|
|
487
639
|
|
|
488
|
-
#
|
|
489
|
-
#
|
|
490
|
-
#
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
640
|
+
# OpenAI:
|
|
641
|
+
# OPC_LLM_API_KEY=your-openai-key
|
|
642
|
+
# OPC_LLM_BASE_URL=https://api.openai.com/v1
|
|
643
|
+
# OPC_LLM_MODEL=gpt-4o-mini
|
|
644
|
+
|
|
645
|
+
# Anthropic:
|
|
646
|
+
# OPC_LLM_API_KEY=your-anthropic-key
|
|
647
|
+
# OPC_LLM_BASE_URL=https://api.anthropic.com/v1
|
|
648
|
+
# OPC_LLM_MODEL=claude-sonnet-4-20250514
|
|
496
649
|
`);
|
|
650
|
+
// .env - 根据用户选择生成正确的配置
|
|
651
|
+
const envLines = [];
|
|
652
|
+
if (llmProvider === 'ollama') {
|
|
653
|
+
envLines.push('# Ollama (免费本地) - 无需 API key');
|
|
654
|
+
envLines.push(`OPC_LLM_BASE_URL=${llmBaseUrl}`);
|
|
655
|
+
envLines.push(`OPC_LLM_MODEL=${llmModel}`);
|
|
656
|
+
}
|
|
657
|
+
else {
|
|
658
|
+
envLines.push(`OPC_LLM_API_KEY=${llmApiKey || 'your-api-key-here'}`);
|
|
659
|
+
envLines.push(`OPC_LLM_BASE_URL=${llmBaseUrl}`);
|
|
660
|
+
envLines.push(`OPC_LLM_MODEL=${llmModel}`);
|
|
661
|
+
}
|
|
662
|
+
fs.writeFileSync(path.join(dir, '.env'), envLines.join('\n') + '\n');
|
|
497
663
|
// package.json
|
|
498
664
|
fs.writeFileSync(path.join(dir, 'package.json'), JSON.stringify({
|
|
499
665
|
name,
|
|
@@ -520,7 +686,7 @@ OPC_LLM_MODEL=gpt-4o-mini
|
|
|
520
686
|
WORKDIR /app
|
|
521
687
|
COPY package.json package-lock.json* ./
|
|
522
688
|
RUN npm ci --production 2>/dev/null || npm install --production
|
|
523
|
-
COPY oad.yaml
|
|
689
|
+
COPY oad.yaml .env* ./
|
|
524
690
|
COPY src/ ./src/
|
|
525
691
|
COPY prompts/ ./prompts/ 2>/dev/null || true
|
|
526
692
|
EXPOSE 3000
|
|
@@ -536,7 +702,7 @@ services:
|
|
|
536
702
|
env_file:
|
|
537
703
|
- .env
|
|
538
704
|
volumes:
|
|
539
|
-
- ./
|
|
705
|
+
- ./oad.yaml:/app/oad.yaml:ro
|
|
540
706
|
restart: unless-stopped
|
|
541
707
|
`);
|
|
542
708
|
// README.md
|
|
@@ -577,8 +743,7 @@ npx opc chat # CLI chat
|
|
|
577
743
|
|
|
578
744
|
\`\`\`
|
|
579
745
|
${name}/
|
|
580
|
-
├──
|
|
581
|
-
├── oad.yaml # OAD config (used by opc CLI)
|
|
746
|
+
├── oad.yaml # Agent 配置 (唯一配置文件)
|
|
582
747
|
├── src/
|
|
583
748
|
│ ├── index.ts # Entry point
|
|
584
749
|
│ └── skills/
|
|
@@ -589,9 +754,9 @@ ${name}/
|
|
|
589
754
|
|
|
590
755
|
## Configuration
|
|
591
756
|
|
|
592
|
-
Edit \`
|
|
757
|
+
Edit \`oad.yaml\` to customize your agent's personality, skills, and behavior.
|
|
593
758
|
`);
|
|
594
|
-
// SOUL.md
|
|
759
|
+
// SOUL.md - agent personality
|
|
595
760
|
const createdDate = new Date().toISOString().split('T')[0];
|
|
596
761
|
fs.writeFileSync(path.join(dir, 'SOUL.md'), `# ${name} Personality
|
|
597
762
|
|
|
@@ -607,7 +772,7 @@ Edit \`agent.yaml\` to customize your agent's personality, skills, and behavior.
|
|
|
607
772
|
|
|
608
773
|
## Communication Style
|
|
609
774
|
- Use clear, simple language
|
|
610
|
-
- Be direct
|
|
775
|
+
- Be direct - answer the question first, then explain
|
|
611
776
|
- Use markdown formatting when helpful
|
|
612
777
|
|
|
613
778
|
## Rules
|
|
@@ -615,7 +780,7 @@ Edit \`agent.yaml\` to customize your agent's personality, skills, and behavior.
|
|
|
615
780
|
- Ask for clarification when the request is ambiguous
|
|
616
781
|
- Never make up information
|
|
617
782
|
`);
|
|
618
|
-
// CONTEXT.md
|
|
783
|
+
// CONTEXT.md - project context
|
|
619
784
|
fs.writeFileSync(path.join(dir, 'CONTEXT.md'), `# Project Context
|
|
620
785
|
|
|
621
786
|
## About This Agent
|
|
@@ -631,7 +796,8 @@ on startup to understand the project context.
|
|
|
631
796
|
- Add company policies here
|
|
632
797
|
`);
|
|
633
798
|
console.log(`\n${icon.success} Created agent project: ${color.bold(name + '/')}`);
|
|
634
|
-
console.log(` ${icon.file}
|
|
799
|
+
console.log(` ${icon.file} oad.yaml - Agent 配置 (${llmProvider}/${llmModel})`);
|
|
800
|
+
console.log(` ${icon.file} .env - 环境变量${llmProvider === 'ollama' ? '' : ' (API Key)'}`);
|
|
635
801
|
console.log(` ${icon.file} src/index.ts - Entry point`);
|
|
636
802
|
console.log(` ${icon.file} src/skills/echo.ts - Example skill`);
|
|
637
803
|
console.log(` ${icon.file} SOUL.md - Agent personality`);
|
|
@@ -656,14 +822,24 @@ on startup to understand the project context.
|
|
|
656
822
|
}
|
|
657
823
|
}
|
|
658
824
|
catch {
|
|
659
|
-
// Brain-seed download failed
|
|
825
|
+
// Brain-seed download failed - non-fatal, project still usable
|
|
660
826
|
}
|
|
661
827
|
}
|
|
662
828
|
console.log(`\n${color.bold('Next steps:')}`);
|
|
663
829
|
console.log(` 1. cd ${name}`);
|
|
664
830
|
console.log(` 2. npm install`);
|
|
665
|
-
|
|
666
|
-
|
|
831
|
+
if (llmProvider === 'ollama' && !ollamaRunning) {
|
|
832
|
+
console.log(` 3. ollama pull ${llmModel} ${color.dim('# 下载模型')}`);
|
|
833
|
+
console.log(` 4. npx opc run ${color.dim('# 启动 Agent')}`);
|
|
834
|
+
}
|
|
835
|
+
else if (llmProvider !== 'ollama' && !llmApiKey) {
|
|
836
|
+
console.log(` 3. 编辑 .env 设置 OPC_LLM_API_KEY`);
|
|
837
|
+
console.log(` 4. npx opc run`);
|
|
838
|
+
}
|
|
839
|
+
else {
|
|
840
|
+
console.log(` 3. npx opc run ${color.dim('# 启动 Agent')}`);
|
|
841
|
+
}
|
|
842
|
+
console.log(` Open http://localhost:3000\n`);
|
|
667
843
|
console.log(`${color.dim('💡 Tip: Use --role to start from a workstation template:')}`);
|
|
668
844
|
console.log(`${color.dim(' opc init my-agent --role customer-service')}`);
|
|
669
845
|
console.log(`${color.dim(' opc init --list-roles (see all roles)')}\n`);
|
|
@@ -713,7 +889,7 @@ program
|
|
|
713
889
|
// Print startup banner
|
|
714
890
|
const bannerLines = [
|
|
715
891
|
'╔══════════════════════════════════════╗',
|
|
716
|
-
'║ 🤖 OPC Agent
|
|
892
|
+
'║ 🤖 OPC Agent - Interactive Chat ║',
|
|
717
893
|
`║ Agent: ${(agentName + ' v' + agentVersion).padEnd(27)}║`,
|
|
718
894
|
`║ Model: ${((providerName + '/' + (model ?? 'default')).slice(0, 27)).padEnd(27)}║`,
|
|
719
895
|
`║ Skills: ${(String(skillNames.length) + ' loaded').padEnd(26)}║`,
|
|
@@ -740,12 +916,12 @@ program
|
|
|
740
916
|
}
|
|
741
917
|
if (lower === '/help') {
|
|
742
918
|
console.log(`\n ${color.bold('Available commands:')}`);
|
|
743
|
-
console.log(` ${color.cyan('/help')}
|
|
744
|
-
console.log(` ${color.cyan('/quit')}
|
|
745
|
-
console.log(` ${color.cyan('/clear')}
|
|
746
|
-
console.log(` ${color.cyan('/skills')}
|
|
747
|
-
console.log(` ${color.cyan('/memory')}
|
|
748
|
-
console.log(` ${color.cyan('/info')}
|
|
919
|
+
console.log(` ${color.cyan('/help')} - Show this help`);
|
|
920
|
+
console.log(` ${color.cyan('/quit')} - Exit chat (/exit also works)`);
|
|
921
|
+
console.log(` ${color.cyan('/clear')} - Clear conversation history`);
|
|
922
|
+
console.log(` ${color.cyan('/skills')} - List registered skills`);
|
|
923
|
+
console.log(` ${color.cyan('/memory')} - Show memory stats`);
|
|
924
|
+
console.log(` ${color.cyan('/info')} - Show agent info\n`);
|
|
749
925
|
return true;
|
|
750
926
|
}
|
|
751
927
|
if (lower === '/clear') {
|
|
@@ -1460,7 +1636,7 @@ protocolCmd.command('list')
|
|
|
1460
1636
|
const protocols = config?.spec?.protocols || {};
|
|
1461
1637
|
const items = [
|
|
1462
1638
|
{ name: 'a2a', description: 'Agent-to-Agent protocol', enabled: !!protocols.a2a?.enabled, detail: protocols.a2a?.port ? `port ${protocols.a2a.port}` : '' },
|
|
1463
|
-
{ name: 'agui', description: 'AG-UI
|
|
1639
|
+
{ name: 'agui', description: 'AG-UI - Agent-User Interaction (SSE)', enabled: !!protocols.agui?.enabled, detail: protocols.agui?.path || '/agui' },
|
|
1464
1640
|
];
|
|
1465
1641
|
console.log(`\n${icon.gear} ${color.bold('Protocols')}\n`);
|
|
1466
1642
|
for (const p of items) {
|
|
@@ -1593,7 +1769,7 @@ brainCmd
|
|
|
1593
1769
|
.description('Show brain stats (pages, tiers, last evolve)')
|
|
1594
1770
|
.option('--url <url>', 'DeepBrain server URL', 'http://localhost:3333')
|
|
1595
1771
|
.action(async (opts) => {
|
|
1596
|
-
console.log(`\n${icon.gear} ${color.bold('DeepBrain Status')}
|
|
1772
|
+
console.log(`\n${icon.gear} ${color.bold('DeepBrain Status')} - ${color.dim(opts.url)}\n`);
|
|
1597
1773
|
try {
|
|
1598
1774
|
const res = await fetch(`${opts.url}/api/stats`);
|
|
1599
1775
|
if (!res.ok)
|
|
@@ -1626,7 +1802,7 @@ brainCmd
|
|
|
1626
1802
|
brainCmd
|
|
1627
1803
|
.command('seed')
|
|
1628
1804
|
.description('Import brain seed files into memory')
|
|
1629
|
-
.option('-f, --file <file>', 'OAD file', '
|
|
1805
|
+
.option('-f, --file <file>', 'OAD file', 'oad.yaml')
|
|
1630
1806
|
.option('--status', 'Check if seeds have been imported')
|
|
1631
1807
|
.option('--reset', 'Re-import seeds (clear marker and re-seed)')
|
|
1632
1808
|
.action(async (opts) => {
|
|
@@ -1696,7 +1872,7 @@ brainCmd
|
|
|
1696
1872
|
console.log(` ${color.cyan(c.slug)} → ${c.fromTier} → ${c.toTier} (confidence: ${(c.confidence * 100).toFixed(0)}%)`);
|
|
1697
1873
|
}
|
|
1698
1874
|
if (opts.dryRun) {
|
|
1699
|
-
console.log(`\n ${icon.info} Dry run
|
|
1875
|
+
console.log(`\n ${icon.info} Dry run - no changes made.\n`);
|
|
1700
1876
|
}
|
|
1701
1877
|
else {
|
|
1702
1878
|
console.log(`\n ${icon.success} Promoted ${result.promoted} knowledge entries.\n`);
|
|
@@ -2145,7 +2321,7 @@ program
|
|
|
2145
2321
|
return;
|
|
2146
2322
|
}
|
|
2147
2323
|
// Create a minimal mock agent for eval (real usage would load from OAD)
|
|
2148
|
-
const oadPath = path.resolve('agent.yaml');
|
|
2324
|
+
const oadPath = path.resolve(fs.existsSync('oad.yaml') ? 'oad.yaml' : 'agent.yaml');
|
|
2149
2325
|
let agent;
|
|
2150
2326
|
if (fs.existsSync(oadPath)) {
|
|
2151
2327
|
const runtime = new runtime_1.AgentRuntime();
|
|
@@ -2154,7 +2330,7 @@ program
|
|
|
2154
2330
|
agent = runtime.agent;
|
|
2155
2331
|
}
|
|
2156
2332
|
if (!agent) {
|
|
2157
|
-
console.log(`${icon.warn} No agent.yaml found
|
|
2333
|
+
console.log(`${icon.warn} No oad.yaml or agent.yaml found - running with dry-run mock agent.`);
|
|
2158
2334
|
agent = { chat: async (input) => `[mock response to: ${input}]` };
|
|
2159
2335
|
}
|
|
2160
2336
|
const evaluator = new eval_1.AgentEvaluator(agent);
|
|
@@ -2214,7 +2390,7 @@ guardrailsCmd
|
|
|
2214
2390
|
console.log();
|
|
2215
2391
|
const result = await manager.checkInput(message);
|
|
2216
2392
|
if (result.passed) {
|
|
2217
|
-
console.log(color.green('✓ PASSED
|
|
2393
|
+
console.log(color.green('✓ PASSED - no violations'));
|
|
2218
2394
|
}
|
|
2219
2395
|
else {
|
|
2220
2396
|
if (result.blocked)
|
|
@@ -2243,7 +2419,7 @@ program
|
|
|
2243
2419
|
.action(async (opts) => {
|
|
2244
2420
|
console.log(color.bold('🎤 Voice Conversation Mode'));
|
|
2245
2421
|
console.log(` STT: ${opts.stt} | TTS: ${opts.tts} | Voice: ${opts.voice ?? 'default'} | Language: ${opts.language}`);
|
|
2246
|
-
console.log(color.dim(' (Voice conversation requires audio input integration
|
|
2422
|
+
console.log(color.dim(' (Voice conversation requires audio input integration - use as library)'));
|
|
2247
2423
|
console.log();
|
|
2248
2424
|
console.log('To use voice in your agent:');
|
|
2249
2425
|
console.log(color.cyan(`
|
|
@@ -2307,7 +2483,7 @@ keysCmd
|
|
|
2307
2483
|
});
|
|
2308
2484
|
// ── Approve command ───────────────────────────────────────────
|
|
2309
2485
|
const approveCmd = program.command('approve').description('Manage command approvals');
|
|
2310
|
-
// Singleton for CLI
|
|
2486
|
+
// Singleton for CLI - in real usage this would be loaded from daemon state
|
|
2311
2487
|
const approvalManager = new approval_1.ApprovalManager();
|
|
2312
2488
|
approveCmd
|
|
2313
2489
|
.command('list')
|
|
@@ -2439,7 +2615,7 @@ a2aCmd
|
|
|
2439
2615
|
const { oadToAgentCard } = require('./protocols/a2a');
|
|
2440
2616
|
const oad = loadOADFile();
|
|
2441
2617
|
if (!oad) {
|
|
2442
|
-
console.log(`${icon.error} No agent.yaml found`);
|
|
2618
|
+
console.log(`${icon.error} No oad.yaml or agent.yaml found`);
|
|
2443
2619
|
return;
|
|
2444
2620
|
}
|
|
2445
2621
|
const card = oadToAgentCard(oad, 'http://localhost:3001');
|
|
@@ -2479,7 +2655,7 @@ a2aCmd
|
|
|
2479
2655
|
function loadOADFile() {
|
|
2480
2656
|
const fs = require('fs');
|
|
2481
2657
|
const yaml = require('js-yaml');
|
|
2482
|
-
for (const name of ['agent.yaml', 'agent.yml']) {
|
|
2658
|
+
for (const name of ['oad.yaml', 'agent.yaml', 'agent.yml']) {
|
|
2483
2659
|
if (fs.existsSync(name)) {
|
|
2484
2660
|
return yaml.load(fs.readFileSync(name, 'utf-8'));
|
|
2485
2661
|
}
|
|
@@ -2487,7 +2663,7 @@ function loadOADFile() {
|
|
|
2487
2663
|
return null;
|
|
2488
2664
|
}
|
|
2489
2665
|
// ── MCP Server Commands ────────────────────────────────────
|
|
2490
|
-
const mcpCmd = program.command('mcp').description('MCP server commands
|
|
2666
|
+
const mcpCmd = program.command('mcp').description('MCP server commands - expose agent as MCP tools');
|
|
2491
2667
|
mcpCmd
|
|
2492
2668
|
.command('serve')
|
|
2493
2669
|
.option('--http <port>', 'Start HTTP+SSE mode on given port')
|
|
@@ -2516,7 +2692,7 @@ mcpCmd
|
|
|
2516
2692
|
console.log(`${icon.info} Tools: ${server.getToolCount()}`);
|
|
2517
2693
|
}
|
|
2518
2694
|
else {
|
|
2519
|
-
console.error(`${icon.success} MCP server (stdio) started
|
|
2695
|
+
console.error(`${icon.success} MCP server (stdio) started - ${server.getToolCount()} tools`);
|
|
2520
2696
|
await server.serveStdio();
|
|
2521
2697
|
}
|
|
2522
2698
|
});
|
|
@@ -2565,7 +2741,7 @@ mcpCmd
|
|
|
2565
2741
|
console.log(`${icon.info} Tools: ${server.getToolCount()}`);
|
|
2566
2742
|
}
|
|
2567
2743
|
else {
|
|
2568
|
-
console.error(`${icon.success} MCP server ${color.cyan(name)} (stdio)
|
|
2744
|
+
console.error(`${icon.success} MCP server ${color.cyan(name)} (stdio) - ${server.getToolCount()} tools`);
|
|
2569
2745
|
await server.serveStdio();
|
|
2570
2746
|
}
|
|
2571
2747
|
});
|