@xopcai/xopc 0.0.102 → 0.0.104
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -5
- package/README.zh-CN.md +8 -5
- package/dist/_virtual/_rolldown/runtime.js +2 -3
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/feishu/src/adapters/cli-login.d.ts +1 -1
- package/dist/extensions/feishu/src/adapters/cli-login.js +1 -1
- package/dist/extensions/feishu/src/adapters/cli-login.js.map +1 -1
- package/dist/extensions/feishu/src/adapters/gateway-setup.d.ts +2 -0
- package/dist/extensions/feishu/src/adapters/gateway-setup.js +225 -0
- package/dist/extensions/feishu/src/adapters/gateway-setup.js.map +1 -0
- package/dist/extensions/feishu/src/index.d.ts +8 -1
- package/dist/extensions/feishu/src/index.js +14 -1
- package/dist/extensions/feishu/src/index.js.map +1 -0
- package/dist/extensions/feishu/src/outbound/outbound-adapter.js +1 -1
- package/dist/extensions/feishu/src/plugin.d.ts +2 -1
- package/dist/extensions/feishu/src/plugin.js +2 -0
- package/dist/extensions/feishu/src/plugin.js.map +1 -1
- package/dist/extensions/feishu/src/streaming/streaming-adapter.js +1 -1
- package/dist/extensions/feishu/src/transport/webhook/monitor.js +2 -2
- package/dist/extensions/feishu/src/transport/webhook/monitor.js.map +1 -1
- package/dist/extensions/feishu/xopc.extension.json +66 -1
- package/dist/extensions/telegram/src/adapters/gateway-setup.d.ts +2 -0
- package/dist/extensions/telegram/src/adapters/gateway-setup.js +146 -0
- package/dist/extensions/telegram/src/adapters/gateway-setup.js.map +1 -0
- package/dist/extensions/telegram/src/adapters/security-adapter.js +1 -1
- package/dist/extensions/telegram/src/command-handler.js +1 -2
- package/dist/extensions/telegram/src/command-handler.js.map +1 -1
- package/dist/extensions/telegram/src/config-schema.js +2 -2
- package/dist/extensions/telegram/src/config-schema.js.map +1 -1
- package/dist/extensions/telegram/src/doctor.d.ts +1 -0
- package/dist/extensions/telegram/src/doctor.js +68 -0
- package/dist/extensions/telegram/src/doctor.js.map +1 -1
- package/dist/extensions/telegram/src/index.d.ts +8 -1
- package/dist/extensions/telegram/src/index.js +15 -2
- package/dist/extensions/telegram/src/index.js.map +1 -0
- package/dist/extensions/telegram/src/plugin.d.ts +13 -5
- package/dist/extensions/telegram/src/plugin.js +32 -12
- package/dist/extensions/telegram/src/plugin.js.map +1 -1
- package/dist/extensions/telegram/src/proxy-fetch.js +22 -5
- package/dist/extensions/telegram/src/proxy-fetch.js.map +1 -1
- package/dist/extensions/telegram/src/send-options.js +8 -5
- package/dist/extensions/telegram/src/send-options.js.map +1 -1
- package/dist/extensions/telegram/xopc.extension.json +412 -5
- package/dist/extensions/weixin/src/adapters/onboard-cli.js +2 -2
- package/dist/extensions/weixin/src/adapters/onboard-cli.js.map +1 -1
- package/dist/extensions/weixin/src/api/api.js +1 -1
- package/dist/extensions/weixin/src/index.d.ts +8 -0
- package/dist/extensions/weixin/src/index.js +12 -1
- package/dist/extensions/weixin/src/index.js.map +1 -0
- package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
- package/dist/extensions/weixin/src/plugin.d.ts +2 -1
- package/dist/extensions/weixin/src/plugin.js +77 -2
- package/dist/extensions/weixin/src/plugin.js.map +1 -1
- package/dist/extensions/weixin/xopc.extension.json +52 -0
- package/dist/gateway/static/root/assets/agents-CvsBrBfi.js +396 -0
- package/dist/gateway/static/root/assets/{apps-page-Uv4kOmDE.js → apps-page-L-IwQTe0.js} +1 -1
- package/dist/gateway/static/root/assets/browser-BLJWD7WI.js +8 -0
- package/dist/gateway/static/root/assets/channels-settings-D95KuPeP.js +1 -0
- package/dist/gateway/static/root/assets/cron-page-CfkWXDAI.js +1 -0
- package/dist/gateway/static/root/assets/{dist-DH4IuRV0.js → dist-C6vclgEL.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-BNkhvRQW.js → extension-debug-page-D4JYAbsX.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-CcIGQah2.js → extension-page-_T62gi6e.js} +1 -1
- package/dist/gateway/static/root/assets/extension-settings-page-CkJbjyM-.js +1 -0
- package/dist/gateway/static/root/assets/{fetch-drJUxxKP.js → fetch-B5aiIguv.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-startup-retry-DqmLXhs6.js +1 -0
- package/dist/gateway/static/root/assets/heartbeat-config-api-HwJV1K_Y.js +1 -0
- package/dist/gateway/static/root/assets/index-BPYKW7FB.css +1 -0
- package/dist/gateway/static/root/assets/index-DvTb6wNR.js +4845 -0
- package/dist/gateway/static/root/assets/{logs-page-CiG0m81R.js → logs-page-DsjtTjBy.js} +2 -2
- package/dist/gateway/static/root/assets/{note-detail-page-DG3DVFTf.js → note-detail-page-B2V7RhgD.js} +43 -43
- package/dist/gateway/static/root/assets/{note-time-DjlllCF3.js → note-time-BG8GCTr4.js} +1 -1
- package/dist/gateway/static/root/assets/notes-page-xrcVBQ6Z.js +1 -0
- package/dist/gateway/static/root/assets/schema-form-S-QUvhul.js +1 -0
- package/dist/gateway/static/root/assets/sessions-page-CrQer6Au.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-DujQl9c7.js +2 -0
- package/dist/gateway/static/root/assets/{settings-form-section-C3_sEFfD.js → settings-form-section-r1V7dRV6.js} +1 -1
- package/dist/gateway/static/root/assets/settings-page-C9nrONQ2.js +3 -0
- package/dist/gateway/static/root/assets/share-preview-page-DOFy0FNt.js +2 -0
- package/dist/gateway/static/root/assets/skills-page-DmTsrs_a.js +2 -0
- package/dist/gateway/static/root/assets/{theme-store-B6KXPHgK.js → theme-store-Bo3j5Ovv.js} +1 -1
- package/dist/gateway/static/root/assets/url-WgQIjFZu.js +3 -0
- package/dist/gateway/static/root/assets/voice-api-key-field-AjmUAlEQ.js +1 -0
- package/dist/gateway/static/root/assets/{workflow-page.utils-g57BRfEd.js → workflow-page.utils-DLEJ92gK.js} +1 -1
- package/dist/gateway/static/root/assets/workflows-page-BnjjKrM1.js +27 -0
- package/dist/gateway/static/root/index.html +6 -5
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-manager.d.ts +18 -6
- package/dist/src/agent/agent-manager.js +60 -35
- package/dist/src/agent/agent-manager.js.map +1 -1
- package/dist/src/agent/builtin-agent-ids.d.ts +2 -0
- package/dist/src/agent/builtin-agent-ids.js +17 -0
- package/dist/src/agent/builtin-agent-ids.js.map +1 -0
- package/dist/src/agent/child-agent-factory.d.ts +4 -0
- package/dist/src/agent/child-agent-factory.js +28 -8
- package/dist/src/agent/child-agent-factory.js.map +1 -1
- package/dist/src/agent/context/workspace-seed.js +1 -1
- package/dist/src/agent/context/workspace-templates/AGENTS.md +23 -184
- package/dist/src/agent/embedded/run-turn.js +8 -2
- package/dist/src/agent/embedded/run-turn.js.map +1 -1
- package/dist/src/agent/embedded/session-tool-result-guard.js +1 -1
- package/dist/src/agent/embedded/subscribe-session.js +33 -51
- package/dist/src/agent/embedded/subscribe-session.js.map +1 -1
- package/dist/src/agent/embedded/types.d.ts +36 -35
- package/dist/src/agent/fallback/candidates.js +1 -1
- package/dist/src/agent/fallback/candidates.js.map +1 -1
- package/dist/src/agent/inbound/attachment-pipeline.js +2 -2
- package/dist/src/agent/inbound/attachment-pipeline.js.map +1 -1
- package/dist/src/agent/inbound/inbound-loop.js +1 -1
- package/dist/src/agent/inbound/turn-dispatcher.d.ts +1 -0
- package/dist/src/agent/inbound/turn-dispatcher.js +24 -5
- package/dist/src/agent/inbound/turn-dispatcher.js.map +1 -1
- package/dist/src/agent/models/manager.d.ts +1 -1
- package/dist/src/agent/models/manager.js +1 -1
- package/dist/src/agent/models/manager.js.map +1 -1
- package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.d.ts +1 -1
- package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.js +1 -1
- package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.js.map +1 -1
- package/dist/src/agent/prompt/sections/tooling.js +4 -0
- package/dist/src/agent/prompt/sections/tooling.js.map +1 -1
- package/dist/src/agent/service/direct-turn-helpers.d.ts +1 -0
- package/dist/src/agent/service/direct-turn-helpers.js +1 -1
- package/dist/src/agent/service/direct-turn-helpers.js.map +1 -1
- package/dist/src/agent/service/process-direct-streaming.d.ts +1 -0
- package/dist/src/agent/service/process-direct-streaming.js +35 -18
- package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
- package/dist/src/agent/service-inbound-utils.d.ts +0 -1
- package/dist/src/agent/service-inbound-utils.js +1 -17
- package/dist/src/agent/service-inbound-utils.js.map +1 -1
- package/dist/src/agent/service.d.ts +4 -4
- package/dist/src/agent/service.js +27 -15
- package/dist/src/agent/service.js.map +1 -1
- package/dist/src/agent/session/session-config-service.d.ts +1 -0
- package/dist/src/agent/session/session-config-service.js +9 -1
- package/dist/src/agent/session/session-config-service.js.map +1 -1
- package/dist/src/agent/session/session-inspector.d.ts +2 -1
- package/dist/src/agent/session/session-inspector.js +4 -0
- package/dist/src/agent/session/session-inspector.js.map +1 -1
- package/dist/src/agent/skills/config.js +1 -3
- package/dist/src/agent/skills/config.js.map +1 -1
- package/dist/src/agent/skills/format-skills-prompt.d.ts +1 -0
- package/dist/src/agent/skills/format-skills-prompt.js +3 -2
- package/dist/src/agent/skills/format-skills-prompt.js.map +1 -1
- package/dist/src/agent/skills/hub-pull.js +1 -1
- package/dist/src/agent/skills/index.js +20 -5
- package/dist/src/agent/skills/index.js.map +1 -1
- package/dist/src/agent/skills/installer.js +14 -27
- package/dist/src/agent/skills/installer.js.map +1 -1
- package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js +11 -1
- package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js.map +1 -1
- package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js +18 -4
- package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js.map +1 -1
- package/dist/src/agent/skills/marketplace/adapters/store/adapter.js +11 -2
- package/dist/src/agent/skills/marketplace/adapters/store/adapter.js.map +1 -1
- package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.d.ts +2 -2
- package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js.map +1 -1
- package/dist/src/agent/skills/skill-manager.d.ts +4 -1
- package/dist/src/agent/skills/skill-manager.js +3 -3
- package/dist/src/agent/skills/skill-manager.js.map +1 -1
- package/dist/src/agent/skills/skill-view-path.d.ts +1 -17
- package/dist/src/agent/skills/skill-view-path.js +3 -66
- package/dist/src/agent/skills/skill-view-path.js.map +1 -1
- package/dist/src/agent/skills/test-framework.js +2 -3
- package/dist/src/agent/skills/test-framework.js.map +1 -1
- package/dist/src/agent/streaming/reasoning-visibility-sse.js +1 -0
- package/dist/src/agent/streaming/reasoning-visibility-sse.js.map +1 -1
- package/dist/src/agent/tool-manuals/browser.d.ts +1 -0
- package/{skills/browser/SKILL.md → dist/src/agent/tool-manuals/browser.js} +51 -54
- package/dist/src/agent/tool-manuals/browser.js.map +1 -0
- package/dist/src/agent/tool-manuals/index.d.ts +10 -0
- package/dist/src/agent/tool-manuals/index.js +28 -0
- package/dist/src/agent/tool-manuals/index.js.map +1 -0
- package/dist/src/agent/tools/browser/tool/browser-use-tool.js +1 -1
- package/dist/src/agent/tools/browser/tool/browser-use-tool.js.map +1 -1
- package/dist/src/agent/tools/factory.js +7 -5
- package/dist/src/agent/tools/factory.js.map +1 -1
- package/dist/src/agent/tools/index.d.ts +1 -0
- package/dist/src/agent/tools/index.js +5 -4
- package/dist/src/agent/tools/send-media.js +1 -2
- package/dist/src/agent/tools/send-media.js.map +1 -1
- package/dist/src/agent/tools/session-search-tool.js +1 -1
- package/dist/src/agent/tools/shell.js +1 -1
- package/dist/src/agent/tools/skills-tools.js +37 -8
- package/dist/src/agent/tools/skills-tools.js.map +1 -1
- package/dist/src/agent/tools/tool-manual-tool.d.ts +6 -0
- package/dist/src/agent/tools/tool-manual-tool.js +34 -0
- package/dist/src/agent/tools/tool-manual-tool.js.map +1 -0
- package/dist/src/agent/tools/web-extract.js +2 -2
- package/dist/src/agent/tools/web.js +1 -1
- package/dist/src/agent/workflow/catalog.d.ts +7 -2
- package/dist/src/agent/workflow/catalog.js +66 -25
- package/dist/src/agent/workflow/catalog.js.map +1 -1
- package/dist/src/agent/workflow/subagent-runner.d.ts +3 -0
- package/dist/src/agent/workflow/subagent-runner.js +50 -4
- package/dist/src/agent/workflow/subagent-runner.js.map +1 -1
- package/dist/src/agent/workflow/types.d.ts +10 -0
- package/dist/src/auth/credentials.d.ts +7 -0
- package/dist/src/auth/credentials.js +45 -7
- package/dist/src/auth/credentials.js.map +1 -1
- package/dist/src/auth/index.d.ts +1 -1
- package/dist/src/auth/index.js.map +1 -1
- package/dist/src/auth/oauth/github-copilot.d.ts +1 -1
- package/dist/src/auth/oauth/google-antigravity.d.ts +1 -3
- package/dist/src/auth/oauth/google-antigravity.js +1 -1
- package/dist/src/auth/oauth/google-gemini-cli.d.ts +1 -3
- package/dist/src/auth/oauth/google-gemini-cli.js +1 -1
- package/dist/src/auth/oauth/{vendor-pi-google → google-oauth}/google-antigravity.js +3 -5
- package/dist/src/auth/oauth/google-oauth/google-antigravity.js.map +1 -0
- package/dist/src/auth/oauth/{vendor-pi-google → google-oauth}/google-gemini-cli.js +4 -5
- package/dist/src/auth/oauth/google-oauth/google-gemini-cli.js.map +1 -0
- package/dist/src/auth/oauth/{vendor-pi-google → google-oauth}/oauth-page.js +12 -4
- package/dist/src/auth/oauth/google-oauth/oauth-page.js.map +1 -0
- package/dist/src/auth/oauth/{vendor-pi-google → google-oauth}/pkce.d.ts +1 -1
- package/dist/src/auth/oauth/{vendor-pi-google → google-oauth}/pkce.js +2 -2
- package/dist/src/auth/oauth/google-oauth/pkce.js.map +1 -0
- package/dist/src/auth/oauth/index.js +2 -2
- package/dist/src/auth/oauth/kimi-coding.d.ts +1 -1
- package/dist/src/auth/oauth/kimi-coding.js +1 -1
- package/dist/src/auth/oauth/kimi-coding.js.map +1 -1
- package/dist/src/auth/oauth/minimax-cn.js +1 -1
- package/dist/src/auth/oauth/minimax-cn.js.map +1 -1
- package/dist/src/auth/oauth/minimax.js +1 -1
- package/dist/src/auth/oauth/minimax.js.map +1 -1
- package/dist/src/auth/oauth/openai-codex.d.ts +7 -2
- package/dist/src/auth/oauth/openai-codex.js +318 -1
- package/dist/src/auth/oauth/openai-codex.js.map +1 -0
- package/dist/src/auth/profiles/store.js +3 -2
- package/dist/src/auth/profiles/store.js.map +1 -1
- package/dist/src/browser/actions/extension-registry-bridge.js +1 -1
- package/dist/src/browser/actions/registry.js +2 -2
- package/dist/src/browser/cdp-local-launcher.js +1 -1
- package/dist/src/browser/index.js +3 -3
- package/dist/src/browser/providers/browser-ext-install.js +1 -1
- package/dist/src/browser/providers/cloakbrowser.js +1 -1
- package/dist/src/channels/attachments/attachment-classifiers.d.ts +1 -0
- package/dist/src/channels/attachments/attachment-classifiers.js +13 -2
- package/dist/src/channels/attachments/attachment-classifiers.js.map +1 -1
- package/dist/src/channels/catalog/channel-catalog-service.d.ts +11 -0
- package/dist/src/channels/catalog/channel-catalog-service.js +168 -0
- package/dist/src/channels/catalog/channel-catalog-service.js.map +1 -0
- package/dist/src/channels/catalog/channel-catalog-types.d.ts +22 -0
- package/dist/src/channels/catalog/channel-catalog-types.js +1 -0
- package/dist/src/channels/dock.d.ts +0 -7
- package/dist/src/channels/dock.js +1 -21
- package/dist/src/channels/index.d.ts +1 -3
- package/dist/src/channels/index.js +1 -5
- package/dist/src/channels/lifecycle-supervisor.d.ts +1 -0
- package/dist/src/channels/lifecycle-supervisor.js +11 -0
- package/dist/src/channels/lifecycle-supervisor.js.map +1 -1
- package/dist/src/channels/manager.d.ts +1 -0
- package/dist/src/channels/manager.js +3 -0
- package/dist/src/channels/manager.js.map +1 -1
- package/dist/src/channels/pairing/pairing-channel.d.ts +2 -3
- package/dist/src/channels/pairing/pairing-messages.js +1 -1
- package/dist/src/channels/pairing/pairing-messages.js.map +1 -1
- package/dist/src/channels/pairing/pairing-service.d.ts +1 -1
- package/dist/src/channels/pairing/pairing-service.js +8 -27
- package/dist/src/channels/pairing/pairing-service.js.map +1 -1
- package/dist/src/channels/plugin-types.d.ts +3 -1
- package/dist/src/channels/plugins/types.adapters.d.ts +55 -2
- package/dist/src/channels/telegram/index.js +1 -1
- package/dist/src/chat-commands/builtins/config.js +4 -4
- package/dist/src/chat-commands/builtins/config.js.map +1 -1
- package/dist/src/chat-commands/builtins/model.js +2 -2
- package/dist/src/chat-commands/builtins/model.js.map +1 -1
- package/dist/src/chat-commands/config-paths.js +1 -1
- package/dist/src/chat-commands/config-paths.js.map +1 -1
- package/dist/src/chat-commands/context.js +1 -1
- package/dist/src/chat-commands/context.js.map +1 -1
- package/dist/src/cli/bin.js +1 -1
- package/dist/src/cli/command-manifest.js +2 -2
- package/dist/src/cli/command-manifest.js.map +1 -1
- package/dist/src/cli/commands/agent.js +2 -2
- package/dist/src/cli/commands/agent.js.map +1 -1
- package/dist/src/cli/commands/agents.js +2 -4
- package/dist/src/cli/commands/agents.js.map +1 -1
- package/dist/src/cli/commands/auth.js +40 -52
- package/dist/src/cli/commands/auth.js.map +1 -1
- package/dist/src/cli/commands/browser-cli-helpers.js +1 -1
- package/dist/src/cli/commands/channels.d.ts +1 -5
- package/dist/src/cli/commands/channels.js +115 -281
- package/dist/src/cli/commands/channels.js.map +1 -1
- package/dist/src/cli/commands/config.js +2 -2
- package/dist/src/cli/commands/config.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/channel-config.js +16 -69
- package/dist/src/cli/commands/doctor/checks/channel-config.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/channel-pairing-pending.js +6 -4
- package/dist/src/cli/commands/doctor/checks/channel-pairing-pending.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/channel-plugins.js +2 -2
- package/dist/src/cli/commands/doctor/checks/channel-plugins.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/doctor/checks/provider-auth.js +13 -9
- package/dist/src/cli/commands/doctor/checks/provider-auth.js.map +1 -1
- package/dist/src/cli/commands/extension-dev.js +2 -1
- package/dist/src/cli/commands/extension-dev.js.map +1 -1
- package/dist/src/cli/commands/extension-marketplace.js +2 -1
- package/dist/src/cli/commands/extension-marketplace.js.map +1 -1
- package/dist/src/cli/commands/extension-pack.js +2 -1
- package/dist/src/cli/commands/extension-pack.js.map +1 -1
- package/dist/src/cli/commands/models.js +192 -54
- package/dist/src/cli/commands/models.js.map +1 -1
- package/dist/src/cli/commands/onboard/channels/index.js +1 -1
- package/dist/src/cli/commands/onboard/channels/index.js.map +1 -1
- package/dist/src/cli/commands/onboard/channels/registry.d.ts +2 -1
- package/dist/src/cli/commands/onboard/channels/registry.js +32 -8
- package/dist/src/cli/commands/onboard/channels/registry.js.map +1 -1
- package/dist/src/cli/commands/onboard/model.d.ts +1 -4
- package/dist/src/cli/commands/onboard/model.js +257 -184
- package/dist/src/cli/commands/onboard/model.js.map +1 -1
- package/dist/src/cli/commands/onboard.js +4 -6
- package/dist/src/cli/commands/onboard.js.map +1 -1
- package/dist/src/cli/commands/setup-shared/runner.d.ts +1 -1
- package/dist/src/cli/commands/setup-shared/runner.js.map +1 -1
- package/dist/src/cli/commands/setup-shared/types.d.ts +1 -1
- package/dist/src/cli/commands/setup-shared/types.js.map +1 -1
- package/dist/src/cli/commands/tui.js +13 -5
- package/dist/src/cli/commands/tui.js.map +1 -1
- package/dist/src/cli/extension-cli-register.js +1 -1
- package/dist/src/cli/utils/oauth-login.d.ts +17 -0
- package/dist/src/cli/utils/oauth-login.js +93 -0
- package/dist/src/cli/utils/oauth-login.js.map +1 -0
- package/dist/src/cli/utils/oauth-providers.js +2 -2
- package/dist/src/commands/agents.config.d.ts +3 -3
- package/dist/src/commands/agents.config.js +7 -7
- package/dist/src/commands/agents.config.js.map +1 -1
- package/dist/src/config/agent-profile.d.ts +1 -1
- package/dist/src/config/agent-profile.js +6 -2
- package/dist/src/config/agent-profile.js.map +1 -1
- package/dist/src/config/agent-typed-models.d.ts +2 -2
- package/dist/src/config/agent-typed-models.js +13 -2
- package/dist/src/config/agent-typed-models.js.map +1 -1
- package/dist/src/config/index.js +3 -3
- package/dist/src/config/integration.d.ts +1 -1
- package/dist/src/config/loader.d.ts +0 -1
- package/dist/src/config/loader.js +4 -9
- package/dist/src/config/loader.js.map +1 -1
- package/dist/src/config/models-json.d.ts +6 -6
- package/dist/src/config/rules.js +2 -12
- package/dist/src/config/rules.js.map +1 -1
- package/dist/src/config/schema.d.ts +74 -47
- package/dist/src/config/schema.js +28 -66
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/config/validate-channel-configs.d.ts +0 -3
- package/dist/src/config/validate-channel-configs.js +29 -10
- package/dist/src/config/validate-channel-configs.js.map +1 -1
- package/dist/src/cron/executor.js +1 -4
- package/dist/src/cron/executor.js.map +1 -1
- package/dist/src/extensions/activation-context.js +3 -1
- package/dist/src/extensions/activation-context.js.map +1 -1
- package/dist/src/extensions/activation-planner.js +12 -0
- package/dist/src/extensions/activation-planner.js.map +1 -1
- package/dist/src/extensions/api.d.ts +5 -1
- package/dist/src/extensions/api.js +12 -0
- package/dist/src/extensions/api.js.map +1 -1
- package/dist/src/extensions/discover-extensions.js +17 -13
- package/dist/src/extensions/discover-extensions.js.map +1 -1
- package/dist/src/extensions/extension-metadata-snapshot.js +11 -5
- package/dist/src/extensions/extension-metadata-snapshot.js.map +1 -1
- package/dist/src/extensions/index.js +12 -4
- package/dist/src/extensions/index.js.map +1 -0
- package/dist/src/extensions/loader.d.ts +5 -1
- package/dist/src/extensions/loader.js +12 -11
- package/dist/src/extensions/loader.js.map +1 -1
- package/dist/src/extensions/manifest-registry.js +98 -93
- package/dist/src/extensions/manifest-registry.js.map +1 -1
- package/dist/src/extensions/normalize-manifest.js +91 -15
- package/dist/src/extensions/normalize-manifest.js.map +1 -1
- package/dist/src/extensions/sdk/index.js +1 -1
- package/dist/src/extensions/sdk/testing.js +4 -0
- package/dist/src/extensions/sdk/testing.js.map +1 -1
- package/dist/src/extensions/types/core.d.ts +32 -1
- package/dist/src/extensions/types/manifest.d.ts +60 -0
- package/dist/src/extensions/types/tui.d.ts +414 -5
- package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
- package/dist/src/gateway/agent-builtin-tools.js +16 -0
- package/dist/src/gateway/agent-builtin-tools.js.map +1 -1
- package/dist/src/gateway/agent-run-relay.d.ts +2 -3
- package/dist/src/gateway/agent-run-relay.js +10 -3
- package/dist/src/gateway/agent-run-relay.js.map +1 -1
- package/dist/src/gateway/agents-admin.d.ts +32 -19
- package/dist/src/gateway/agents-admin.js +113 -93
- package/dist/src/gateway/agents-admin.js.map +1 -1
- package/dist/src/gateway/chat-stream/mapper.d.ts +34 -0
- package/dist/src/gateway/chat-stream/mapper.js +244 -0
- package/dist/src/gateway/chat-stream/mapper.js.map +1 -0
- package/dist/src/gateway/chat-stream/protocol.d.ts +100 -0
- package/dist/src/gateway/chat-stream/protocol.js +1 -0
- package/dist/src/gateway/hono/lib/agent-model.d.ts +4 -4
- package/dist/src/gateway/hono/lib/agent-model.js +13 -11
- package/dist/src/gateway/hono/lib/agent-model.js.map +1 -1
- package/dist/src/gateway/hono/lib/config-payload.d.ts +19 -7
- package/dist/src/gateway/hono/lib/config-payload.js +16 -15
- package/dist/src/gateway/hono/lib/config-payload.js.map +1 -1
- package/dist/src/gateway/hono/oauth-async.js +2 -2
- package/dist/src/gateway/hono/oauth.js +2 -2
- package/dist/src/gateway/hono/routes/agents.js +83 -48
- package/dist/src/gateway/hono/routes/agents.js.map +1 -1
- package/dist/src/gateway/hono/routes/channels.js +134 -214
- package/dist/src/gateway/hono/routes/channels.js.map +1 -1
- package/dist/src/gateway/hono/routes/commands-skills.js +10 -4
- package/dist/src/gateway/hono/routes/commands-skills.js.map +1 -1
- package/dist/src/gateway/hono/routes/config-patch/agents.js +26 -13
- package/dist/src/gateway/hono/routes/config-patch/agents.js.map +1 -1
- package/dist/src/gateway/hono/routes/config-patch/channels.d.ts +1 -11
- package/dist/src/gateway/hono/routes/config-patch/channels.js +18 -165
- package/dist/src/gateway/hono/routes/config-patch/channels.js.map +1 -1
- package/dist/src/gateway/hono/routes/config.js +5 -2
- package/dist/src/gateway/hono/routes/config.js.map +1 -1
- package/dist/src/gateway/hono/routes/dreaming.js +1 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js +13 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
- package/dist/src/gateway/hono/routes/models.js +25 -5
- package/dist/src/gateway/hono/routes/models.js.map +1 -1
- package/dist/src/gateway/hono/routes/public-gateway.js +2 -4
- package/dist/src/gateway/hono/routes/public-gateway.js.map +1 -1
- package/dist/src/gateway/hono/routes/sessions.js +179 -0
- package/dist/src/gateway/hono/routes/sessions.js.map +1 -1
- package/dist/src/gateway/hono/routes/tui.d.ts +3 -0
- package/dist/src/gateway/hono/routes/tui.js +16 -0
- package/dist/src/gateway/hono/routes/tui.js.map +1 -0
- package/dist/src/gateway/hono/routes/workflows.js +25 -1
- package/dist/src/gateway/hono/routes/workflows.js.map +1 -1
- package/dist/src/gateway/hono/sse.d.ts +5 -7
- package/dist/src/gateway/hono/sse.js +21 -38
- package/dist/src/gateway/hono/sse.js.map +1 -1
- package/dist/src/gateway/protocol.js.map +1 -1
- package/dist/src/gateway/service/agent-runner.d.ts +2 -4
- package/dist/src/gateway/service/agent-runner.js +1 -1
- package/dist/src/gateway/service/agent-runner.js.map +1 -1
- package/dist/src/gateway/service/marketplace-service.d.ts +4 -3
- package/dist/src/gateway/service/marketplace-service.js +7 -4
- package/dist/src/gateway/service/marketplace-service.js.map +1 -1
- package/dist/src/gateway/service/run-gateway-agent.d.ts +2 -6
- package/dist/src/gateway/service/run-gateway-agent.js +63 -36
- package/dist/src/gateway/service/run-gateway-agent.js.map +1 -1
- package/dist/src/gateway/service/sessions-api.d.ts +19 -0
- package/dist/src/gateway/service/sessions-api.js +12 -0
- package/dist/src/gateway/service/sessions-api.js.map +1 -1
- package/dist/src/gateway/service.d.ts +6 -0
- package/dist/src/gateway/service.js +73 -57
- package/dist/src/gateway/service.js.map +1 -1
- package/dist/src/mcp/channel-bridge.js +1 -1
- package/dist/src/media/store.js +3 -0
- package/dist/src/media/store.js.map +1 -1
- package/dist/src/notes/service.js +1 -1
- package/dist/src/notes/service.js.map +1 -1
- package/dist/src/project-trust/trust-store.d.ts +30 -0
- package/dist/src/project-trust/trust-store.js +194 -0
- package/dist/src/project-trust/trust-store.js.map +1 -0
- package/dist/src/providers/index.d.ts +4 -4
- package/dist/src/providers/index.js +41 -22
- package/dist/src/providers/index.js.map +1 -1
- package/dist/src/providers/presentation.d.ts +34 -0
- package/dist/src/providers/presentation.js +162 -0
- package/dist/src/providers/presentation.js.map +1 -0
- package/dist/src/routing/resolve-route.d.ts +0 -3
- package/dist/src/routing/resolve-route.js.map +1 -1
- package/dist/src/routing/resolve-tui-session-key.d.ts +2 -0
- package/dist/src/routing/resolve-tui-session-key.js +8 -3
- package/dist/src/routing/resolve-tui-session-key.js.map +1 -1
- package/dist/src/session/client-history.d.ts +32 -0
- package/dist/src/session/client-history.js +232 -1
- package/dist/src/session/client-history.js.map +1 -1
- package/dist/src/session/manager.d.ts +37 -4
- package/dist/src/session/manager.js +39 -15
- package/dist/src/session/manager.js.map +1 -1
- package/dist/src/session/session-context-for-llm.d.ts +93 -1
- package/dist/src/session/session-context-for-llm.js +105 -2
- package/dist/src/session/session-context-for-llm.js.map +1 -1
- package/dist/src/session/store.d.ts +37 -0
- package/dist/src/session/store.js +127 -2
- package/dist/src/session/store.js.map +1 -1
- package/dist/src/session/stored-rows-to-file-entries.js +37 -1
- package/dist/src/session/stored-rows-to-file-entries.js.map +1 -1
- package/dist/src/session/types.d.ts +14 -1
- package/dist/src/session/types.js.map +1 -1
- package/dist/src/share/share-thumbnail.js +1 -1
- package/dist/src/storage/sqlite/migrations/004_add_session_type_metadata.sql +15 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +3 -3
- package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
- package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
- package/dist/src/storage/sqlite/row-mappers.d.ts +14 -1
- package/dist/src/storage/sqlite/row-mappers.js +14 -1
- package/dist/src/storage/sqlite/row-mappers.js.map +1 -1
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/storage/sqlite/session-metadata.js +1 -0
- package/dist/src/storage/sqlite/session-metadata.js.map +1 -1
- package/dist/src/storage/sqlite/session-repository.js +52 -25
- package/dist/src/storage/sqlite/session-repository.js.map +1 -1
- package/dist/src/tui/backends/embedded-backend.d.ts +53 -4
- package/dist/src/tui/backends/embedded-backend.js +227 -39
- package/dist/src/tui/backends/embedded-backend.js.map +1 -1
- package/dist/src/tui/backends/gateway-sse-backend.d.ts +59 -3
- package/dist/src/tui/backends/gateway-sse-backend.js +416 -26
- package/dist/src/tui/backends/gateway-sse-backend.js.map +1 -1
- package/dist/src/tui/chat-history.d.ts +5 -1
- package/dist/src/tui/chat-history.js +78 -8
- package/dist/src/tui/chat-history.js.map +1 -1
- package/dist/src/tui/clipboard-text.d.ts +5 -0
- package/dist/src/tui/clipboard-text.js +46 -0
- package/dist/src/tui/clipboard-text.js.map +1 -0
- package/dist/src/tui/components/assistant-message.d.ts +19 -3
- package/dist/src/tui/components/assistant-message.js +115 -9
- package/dist/src/tui/components/assistant-message.js.map +1 -1
- package/dist/src/tui/components/bash-execution.d.ts +3 -2
- package/dist/src/tui/components/bash-execution.js +31 -3
- package/dist/src/tui/components/bash-execution.js.map +1 -1
- package/dist/src/tui/components/bash-summary.d.ts +23 -0
- package/dist/src/tui/components/bash-summary.js +87 -0
- package/dist/src/tui/components/bash-summary.js.map +1 -0
- package/dist/src/tui/components/branch-message-summary.d.ts +17 -0
- package/dist/src/tui/components/branch-message-summary.js +43 -0
- package/dist/src/tui/components/branch-message-summary.js.map +1 -0
- package/dist/src/tui/components/branch-summary.d.ts +13 -0
- package/dist/src/tui/components/branch-summary.js +51 -0
- package/dist/src/tui/components/branch-summary.js.map +1 -0
- package/dist/src/tui/components/chat-log.d.ts +46 -6
- package/dist/src/tui/components/chat-log.js +183 -21
- package/dist/src/tui/components/chat-log.js.map +1 -1
- package/dist/src/tui/components/compaction-summary.d.ts +13 -0
- package/dist/src/tui/components/compaction-summary.js +46 -0
- package/dist/src/tui/components/compaction-summary.js.map +1 -0
- package/dist/src/tui/components/custom-editor.d.ts +1 -0
- package/dist/src/tui/components/custom-editor.js +2 -0
- package/dist/src/tui/components/custom-editor.js.map +1 -1
- package/dist/src/tui/components/custom-message.d.ts +23 -0
- package/dist/src/tui/components/custom-message.js +65 -0
- package/dist/src/tui/components/custom-message.js.map +1 -0
- package/dist/src/tui/components/extension-dialog.d.ts +42 -0
- package/dist/src/tui/components/extension-dialog.js +127 -0
- package/dist/src/tui/components/extension-dialog.js.map +1 -0
- package/dist/src/tui/components/scoped-models-selector.d.ts +7 -2
- package/dist/src/tui/components/scoped-models-selector.js +89 -16
- package/dist/src/tui/components/scoped-models-selector.js.map +1 -1
- package/dist/src/tui/components/searchable-select-list.d.ts +30 -3
- package/dist/src/tui/components/searchable-select-list.js +82 -10
- package/dist/src/tui/components/searchable-select-list.js.map +1 -1
- package/dist/src/tui/components/session-selector.d.ts +18 -4
- package/dist/src/tui/components/session-selector.js +207 -40
- package/dist/src/tui/components/session-selector.js.map +1 -1
- package/dist/src/tui/components/settings-selector.d.ts +6 -2
- package/dist/src/tui/components/settings-selector.js +126 -7
- package/dist/src/tui/components/settings-selector.js.map +1 -1
- package/dist/src/tui/components/thinking-selector.d.ts +12 -0
- package/dist/src/tui/components/thinking-selector.js +48 -0
- package/dist/src/tui/components/thinking-selector.js.map +1 -0
- package/dist/src/tui/components/tool-execution.d.ts +57 -3
- package/dist/src/tui/components/tool-execution.js +378 -28
- package/dist/src/tui/components/tool-execution.js.map +1 -1
- package/dist/src/tui/components/tui-bottom-bar.d.ts +9 -1
- package/dist/src/tui/components/tui-bottom-bar.js +56 -11
- package/dist/src/tui/components/tui-bottom-bar.js.map +1 -1
- package/dist/src/tui/components/tui-header.d.ts +9 -2
- package/dist/src/tui/components/tui-header.js +25 -5
- package/dist/src/tui/components/tui-header.js.map +1 -1
- package/dist/src/tui/components/user-message.d.ts +4 -2
- package/dist/src/tui/components/user-message.js +42 -9
- package/dist/src/tui/components/user-message.js.map +1 -1
- package/dist/src/tui/components/visual-truncate.d.ts +11 -0
- package/dist/src/tui/components/visual-truncate.js +27 -0
- package/dist/src/tui/components/visual-truncate.js.map +1 -0
- package/dist/src/tui/extension-host/autocomplete.d.ts +43 -0
- package/dist/src/tui/extension-host/autocomplete.js +116 -0
- package/dist/src/tui/extension-host/autocomplete.js.map +1 -0
- package/dist/src/tui/extension-host/host.d.ts +31 -1
- package/dist/src/tui/extension-host/host.js +123 -6
- package/dist/src/tui/extension-host/host.js.map +1 -1
- package/dist/src/tui/extension-host/load-extensions.d.ts +6 -1
- package/dist/src/tui/extension-host/load-extensions.js +4 -3
- package/dist/src/tui/extension-host/load-extensions.js.map +1 -1
- package/dist/src/tui/extension-host/runtime-context.d.ts +21 -0
- package/dist/src/tui/extension-host/runtime-context.js +152 -0
- package/dist/src/tui/extension-host/runtime-context.js.map +1 -0
- package/dist/src/tui/extension-host/runtime.d.ts +52 -4
- package/dist/src/tui/extension-host/runtime.js +547 -85
- package/dist/src/tui/extension-host/runtime.js.map +1 -1
- package/dist/src/tui/extension-host/surface.d.ts +20 -0
- package/dist/src/tui/extension-host/surface.js +30 -6
- package/dist/src/tui/extension-host/surface.js.map +1 -1
- package/dist/src/tui/extension-host/tool-renderers.d.ts +6 -3
- package/dist/src/tui/extension-host/tool-renderers.js +43 -5
- package/dist/src/tui/extension-host/tool-renderers.js.map +1 -1
- package/dist/src/tui/format-tui-hotkeys.d.ts +12 -2
- package/dist/src/tui/format-tui-hotkeys.js +22 -5
- package/dist/src/tui/format-tui-hotkeys.js.map +1 -1
- package/dist/src/tui/tui-agent-events.d.ts +8 -6
- package/dist/src/tui/tui-agent-events.js +200 -59
- package/dist/src/tui/tui-agent-events.js.map +1 -1
- package/dist/src/tui/tui-backend.d.ts +169 -3
- package/dist/src/tui/tui-command-formatters.d.ts +76 -0
- package/dist/src/tui/tui-command-formatters.js +594 -0
- package/dist/src/tui/tui-command-formatters.js.map +1 -0
- package/dist/src/tui/tui-commands.d.ts +57 -7
- package/dist/src/tui/tui-commands.js +639 -43
- package/dist/src/tui/tui-commands.js.map +1 -1
- package/dist/src/tui/tui-context-usage.d.ts +1 -1
- package/dist/src/tui/tui-context-usage.js +9 -1
- package/dist/src/tui/tui-context-usage.js.map +1 -1
- package/dist/src/tui/tui-extension-user-message.d.ts +8 -0
- package/dist/src/tui/tui-extension-user-message.js +32 -0
- package/dist/src/tui/tui-extension-user-message.js.map +1 -0
- package/dist/src/tui/tui-follow-up-queue.d.ts +9 -0
- package/dist/src/tui/tui-follow-up-queue.js +18 -0
- package/dist/src/tui/tui-follow-up-queue.js.map +1 -0
- package/dist/src/tui/tui-local-shell.d.ts +11 -1
- package/dist/src/tui/tui-local-shell.js +50 -8
- package/dist/src/tui/tui-local-shell.js.map +1 -1
- package/dist/src/tui/tui-model-picker.d.ts +26 -0
- package/dist/src/tui/tui-model-picker.js +152 -0
- package/dist/src/tui/tui-model-picker.js.map +1 -0
- package/dist/src/tui/tui-oauth-login.d.ts +16 -0
- package/dist/src/tui/tui-oauth-login.js +189 -0
- package/dist/src/tui/tui-oauth-login.js.map +1 -0
- package/dist/src/tui/tui-overlays.d.ts +3 -3
- package/dist/src/tui/tui-overlays.js +6 -7
- package/dist/src/tui/tui-overlays.js.map +1 -1
- package/dist/src/tui/tui-picker-overlay.d.ts +27 -32
- package/dist/src/tui/tui-picker-overlay.js +340 -30
- package/dist/src/tui/tui-picker-overlay.js.map +1 -1
- package/dist/src/tui/tui-picker-services.d.ts +41 -0
- package/dist/src/tui/tui-picker-services.js +1 -0
- package/dist/src/tui/tui-run-state.d.ts +11 -0
- package/dist/src/tui/tui-run-state.js +114 -0
- package/dist/src/tui/tui-run-state.js.map +1 -0
- package/dist/src/tui/tui-runtime-hints.d.ts +4 -0
- package/dist/src/tui/tui-runtime-hints.js +18 -0
- package/dist/src/tui/tui-runtime-hints.js.map +1 -0
- package/dist/src/tui/tui-scoped-models.d.ts +1 -1
- package/dist/src/tui/tui-scoped-models.js +2 -2
- package/dist/src/tui/tui-scoped-models.js.map +1 -1
- package/dist/src/tui/tui-session-actions.d.ts +5 -3
- package/dist/src/tui/tui-session-actions.js +21 -9
- package/dist/src/tui/tui-session-actions.js.map +1 -1
- package/dist/src/tui/tui-session-format.d.ts +4 -1
- package/dist/src/tui/tui-session-format.js +17 -3
- package/dist/src/tui/tui-session-format.js.map +1 -1
- package/dist/src/tui/tui-session-snapshot.d.ts +82 -0
- package/dist/src/tui/tui-session-snapshot.js +184 -0
- package/dist/src/tui/tui-session-snapshot.js.map +1 -0
- package/dist/src/tui/tui-session-stats.d.ts +3 -0
- package/dist/src/tui/tui-session-stats.js +59 -0
- package/dist/src/tui/tui-session-stats.js.map +1 -0
- package/dist/src/tui/tui-settings.d.ts +21 -0
- package/dist/src/tui/tui-settings.js +28 -1
- package/dist/src/tui/tui-settings.js.map +1 -1
- package/dist/src/tui/tui-skills-autocomplete.js +1 -1
- package/dist/src/tui/tui-skills-autocomplete.js.map +1 -1
- package/dist/src/tui/tui-startup-resources.d.ts +3 -0
- package/dist/src/tui/tui-startup-resources.js +39 -0
- package/dist/src/tui/tui-startup-resources.js.map +1 -0
- package/dist/src/tui/tui-startup-text.d.ts +10 -0
- package/dist/src/tui/tui-startup-text.js +58 -0
- package/dist/src/tui/tui-startup-text.js.map +1 -0
- package/dist/src/tui/tui-stdio-filter.d.ts +1 -0
- package/dist/src/tui/tui-stdio-filter.js +11 -7
- package/dist/src/tui/tui-stdio-filter.js.map +1 -1
- package/dist/src/tui/tui-submit.d.ts +2 -0
- package/dist/src/tui/tui-submit.js +2 -1
- package/dist/src/tui/tui-submit.js.map +1 -1
- package/dist/src/tui/tui-tool-diff.js +61 -7
- package/dist/src/tui/tui-tool-diff.js.map +1 -1
- package/dist/src/tui/tui-tool-result.d.ts +17 -0
- package/dist/src/tui/tui-tool-result.js +74 -0
- package/dist/src/tui/tui-tool-result.js.map +1 -0
- package/dist/src/tui/tui-transcript-tree-picker.d.ts +57 -0
- package/dist/src/tui/tui-transcript-tree-picker.js +604 -0
- package/dist/src/tui/tui-transcript-tree-picker.js.map +1 -0
- package/dist/src/tui/tui-transcript-tree.d.ts +7 -0
- package/dist/src/tui/tui-transcript-tree.js +316 -0
- package/dist/src/tui/tui-transcript-tree.js.map +1 -0
- package/dist/src/tui/tui-types.d.ts +25 -34
- package/dist/src/tui/tui-types.js +12 -0
- package/dist/src/tui/tui-types.js.map +1 -1
- package/dist/src/tui/tui.js +1288 -112
- package/dist/src/tui/tui.js.map +1 -1
- package/dist/src/tui/xopc-tui-keybindings.d.ts +127 -2
- package/dist/src/tui/xopc-tui-keybindings.js +127 -2
- package/dist/src/tui/xopc-tui-keybindings.js.map +1 -1
- package/dist/src/workflows/domain/definition-utils.d.ts +2 -1
- package/dist/src/workflows/domain/definition-utils.js +18 -8
- package/dist/src/workflows/domain/definition-utils.js.map +1 -1
- package/dist/src/workflows/domain/definition.d.ts +25 -0
- package/dist/src/workflows/domain/event.d.ts +1 -0
- package/dist/src/workflows/domain/result.d.ts +15 -0
- package/dist/src/workflows/domain/run.d.ts +2 -0
- package/dist/src/workflows/domain/run.js.map +1 -1
- package/dist/src/workflows/engine/projector.js +4 -0
- package/dist/src/workflows/engine/projector.js.map +1 -1
- package/dist/src/workflows/engine/workflow-engine.d.ts +37 -1
- package/dist/src/workflows/engine/workflow-engine.js +75 -11
- package/dist/src/workflows/engine/workflow-engine.js.map +1 -1
- package/dist/src/workflows/index.d.ts +1 -0
- package/dist/src/workflows/index.js +4 -1
- package/dist/src/workflows/registry/catalog-workflow-definition-registry.d.ts +9 -0
- package/dist/src/workflows/registry/catalog-workflow-definition-registry.js +40 -0
- package/dist/src/workflows/registry/catalog-workflow-definition-registry.js.map +1 -0
- package/dist/src/workflows/registry/index.d.ts +2 -0
- package/dist/src/workflows/registry/index.js +2 -0
- package/dist/src/workflows/registry/workflow-definition-registry.d.ts +15 -0
- package/dist/src/workflows/registry/workflow-definition-registry.js +1 -0
- package/dist/src/workflows/runtime/index.d.ts +2 -0
- package/dist/src/workflows/runtime/index.js +2 -1
- package/dist/src/workflows/runtime/script-workflow-runtime.d.ts +5 -0
- package/dist/src/workflows/runtime/script-workflow-runtime.js +15 -0
- package/dist/src/workflows/runtime/script-workflow-runtime.js.map +1 -0
- package/dist/src/workflows/runtime/workflow-runtime-port.d.ts +16 -0
- package/dist/src/workflows/runtime/workflow-runtime-port.js +1 -0
- package/dist/src/workflows/service/run-view-to-snapshot.js +3 -0
- package/dist/src/workflows/service/run-view-to-snapshot.js.map +1 -1
- package/dist/src/workflows/service/workflow-run-service.d.ts +3 -0
- package/dist/src/workflows/service/workflow-run-service.js +10 -15
- package/dist/src/workflows/service/workflow-run-service.js.map +1 -1
- package/dist/src/workflows/service/workflow-session-bridge.d.ts +1 -1
- package/dist/src/workflows/service/workflow-session-bridge.js +4 -1
- package/dist/src/workflows/service/workflow-session-bridge.js.map +1 -1
- package/package.json +21 -15
- package/skills/creative/frontend-design/SKILL.md +1 -1
- package/skills/creative/theme-factory/SKILL.md +1 -1
- package/skills/documents/xlsx/SKILL.md +1 -1
- package/skills/engineering/diagnose/SKILL.md +2 -2
- package/skills/engineering/tdd/SKILL.md +1 -1
- package/skills/tools/github/SKILL.md +6 -1
- package/skills/tools/webapp-testing/SKILL.md +4 -1
- package/dist/extensions/telegram/src/adapters/config-surface.d.ts +0 -2
- package/dist/extensions/telegram/src/adapters/config-surface.js +0 -26
- package/dist/extensions/telegram/src/adapters/config-surface.js.map +0 -1
- package/dist/extensions/weixin/src/__tests__/workflow-progress.test.js +0 -158
- package/dist/extensions/weixin/src/__tests__/workflow-progress.test.js.map +0 -1
- package/dist/gateway/static/root/assets/agents-DQ0mQxIA.js +0 -222
- package/dist/gateway/static/root/assets/channels-settings-BEtP53V6.js +0 -1
- package/dist/gateway/static/root/assets/channels-status-swr-CxTtS1hI.js +0 -8
- package/dist/gateway/static/root/assets/cron-api-CznlPIZT.js +0 -1
- package/dist/gateway/static/root/assets/cron-page-Dx6dE3eD.js +0 -1
- package/dist/gateway/static/root/assets/extension-settings-page-DuDCSb3J.js +0 -1
- package/dist/gateway/static/root/assets/field-primitives-BUwUiDf5.js +0 -1
- package/dist/gateway/static/root/assets/heartbeat-config-api-BjFW1cl-.js +0 -1
- package/dist/gateway/static/root/assets/index-DKgHC1Ta.js +0 -4840
- package/dist/gateway/static/root/assets/index-DjNDHzwG.css +0 -1
- package/dist/gateway/static/root/assets/notes-page-D40ZpS0Y.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-BvtdbmW8.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-BQamRjkV.js +0 -2
- package/dist/gateway/static/root/assets/settings-page-D972_jaS.js +0 -3
- package/dist/gateway/static/root/assets/share-preview-page-CKCTMo0_.js +0 -2
- package/dist/gateway/static/root/assets/skills-page-QwFCB4yV.js +0 -2
- package/dist/gateway/static/root/assets/url-q28QhI7l.js +0 -3
- package/dist/gateway/static/root/assets/utils-DCm11_KW.js +0 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-CywiB7Dw.js +0 -1
- package/dist/gateway/static/root/assets/workflows-page-Be7l_SWw.js +0 -27
- package/dist/src/agent/embedded/map-stream-events.d.ts +0 -9
- package/dist/src/agent/embedded/map-stream-events.js +0 -63
- package/dist/src/agent/embedded/map-stream-events.js.map +0 -1
- package/dist/src/auth/oauth/vendor-pi-google/google-antigravity.js.map +0 -1
- package/dist/src/auth/oauth/vendor-pi-google/google-gemini-cli.js.map +0 -1
- package/dist/src/auth/oauth/vendor-pi-google/oauth-page.js.map +0 -1
- package/dist/src/auth/oauth/vendor-pi-google/pkce.js.map +0 -1
- package/dist/src/channels/dock.js.map +0 -1
- package/dist/src/channels/plugins/bundled.d.ts +0 -11
- package/dist/src/channels/plugins/bundled.js +0 -10
- package/dist/src/channels/plugins/bundled.js.map +0 -1
- package/dist/src/channels/registry.d.ts +0 -25
- package/dist/src/channels/registry.js +0 -82
- package/dist/src/channels/registry.js.map +0 -1
- package/dist/src/config/localized-text.d.ts +0 -6
- package/dist/src/config/localized-text.js +0 -42
- package/dist/src/config/localized-text.js.map +0 -1
- package/dist/src/generated/bundled-channel-plugins.d.ts +0 -10
- package/dist/src/generated/bundled-channel-plugins.js +0 -16
- package/dist/src/generated/bundled-channel-plugins.js.map +0 -1
- package/dist/src/tui/stream-assembler.d.ts +0 -22
- package/dist/src/tui/stream-assembler.js +0 -63
- package/dist/src/tui/stream-assembler.js.map +0 -1
- package/skills/browser/SKILL-zh.md +0 -188
- package/skills/business/company-values/SKILL-zh.md +0 -80
- package/skills/business/company-values/SKILL.md +0 -80
- package/skills/business/find-community/SKILL-zh.md +0 -50
- package/skills/business/find-community/SKILL.md +0 -50
- package/skills/business/first-customers/SKILL-zh.md +0 -76
- package/skills/business/first-customers/SKILL.md +0 -76
- package/skills/business/grow-sustainably/SKILL-zh.md +0 -92
- package/skills/business/grow-sustainably/SKILL.md +0 -92
- package/skills/business/marketing-plan/SKILL-zh.md +0 -100
- package/skills/business/marketing-plan/SKILL.md +0 -100
- package/skills/business/minimalist-review/SKILL-zh.md +0 -82
- package/skills/business/minimalist-review/SKILL.md +0 -82
- package/skills/business/mvp/SKILL-zh.md +0 -81
- package/skills/business/mvp/SKILL.md +0 -81
- package/skills/business/pricing/SKILL-zh.md +0 -64
- package/skills/business/pricing/SKILL.md +0 -64
- package/skills/business/processize/SKILL-zh.md +0 -91
- package/skills/business/processize/SKILL.md +0 -91
- package/skills/business/validate-idea/SKILL-zh.md +0 -68
- package/skills/business/validate-idea/SKILL.md +0 -68
- package/skills/creative/algorithmic-art/LICENSE.txt +0 -202
- package/skills/creative/algorithmic-art/SKILL-zh.md +0 -405
- package/skills/creative/algorithmic-art/SKILL.md +0 -405
- package/skills/creative/algorithmic-art/templates/generator_template.js +0 -223
- package/skills/creative/algorithmic-art/templates/viewer.html +0 -599
- package/skills/creative/frontend-design/SKILL-zh.md +0 -42
- package/skills/creative/theme-factory/SKILL-zh.md +0 -59
- package/skills/creative/web-artifacts-builder/LICENSE.txt +0 -202
- package/skills/creative/web-artifacts-builder/SKILL-zh.md +0 -74
- package/skills/creative/web-artifacts-builder/SKILL.md +0 -74
- package/skills/creative/web-artifacts-builder/scripts/bundle-artifact.sh +0 -54
- package/skills/creative/web-artifacts-builder/scripts/init-artifact.sh +0 -322
- package/skills/creative/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/skills/documents/doc-coauthoring/SKILL-zh.md +0 -375
- package/skills/documents/doc-coauthoring/SKILL.md +0 -375
- package/skills/documents/docx/LICENSE.txt +0 -30
- package/skills/documents/docx/SKILL-zh.md +0 -590
- package/skills/documents/docx/SKILL.md +0 -590
- package/skills/documents/docx/scripts/__init__.py +0 -1
- package/skills/documents/docx/scripts/accept_changes.py +0 -135
- package/skills/documents/docx/scripts/comment.py +0 -318
- package/skills/documents/docx/scripts/office/helpers/__init__.py +0 -0
- package/skills/documents/docx/scripts/office/helpers/merge_runs.py +0 -199
- package/skills/documents/docx/scripts/office/helpers/simplify_redlines.py +0 -197
- package/skills/documents/docx/scripts/office/pack.py +0 -159
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
- package/skills/documents/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
- package/skills/documents/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
- package/skills/documents/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
- package/skills/documents/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
- package/skills/documents/docx/scripts/office/schemas/mce/mc.xsd +0 -75
- package/skills/documents/docx/scripts/office/schemas/microsoft/wml-2010.xsd +0 -560
- package/skills/documents/docx/scripts/office/schemas/microsoft/wml-2012.xsd +0 -67
- package/skills/documents/docx/scripts/office/schemas/microsoft/wml-2018.xsd +0 -14
- package/skills/documents/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -20
- package/skills/documents/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -13
- package/skills/documents/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
- package/skills/documents/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -8
- package/skills/documents/docx/scripts/office/soffice.py +0 -183
- package/skills/documents/docx/scripts/office/unpack.py +0 -132
- package/skills/documents/docx/scripts/office/validate.py +0 -111
- package/skills/documents/docx/scripts/office/validators/__init__.py +0 -15
- package/skills/documents/docx/scripts/office/validators/base.py +0 -847
- package/skills/documents/docx/scripts/office/validators/docx.py +0 -446
- package/skills/documents/docx/scripts/office/validators/pptx.py +0 -275
- package/skills/documents/docx/scripts/office/validators/redlining.py +0 -247
- package/skills/documents/docx/scripts/templates/comments.xml +0 -3
- package/skills/documents/docx/scripts/templates/commentsExtended.xml +0 -3
- package/skills/documents/docx/scripts/templates/commentsExtensible.xml +0 -3
- package/skills/documents/docx/scripts/templates/commentsIds.xml +0 -3
- package/skills/documents/docx/scripts/templates/people.xml +0 -3
- package/skills/documents/pdf/LICENSE.txt +0 -30
- package/skills/documents/pdf/SKILL-zh.md +0 -314
- package/skills/documents/pdf/SKILL.md +0 -314
- package/skills/documents/pdf/forms.md +0 -294
- package/skills/documents/pdf/reference.md +0 -612
- package/skills/documents/pdf/scripts/check_bounding_boxes.py +0 -65
- package/skills/documents/pdf/scripts/check_fillable_fields.py +0 -11
- package/skills/documents/pdf/scripts/convert_pdf_to_images.py +0 -33
- package/skills/documents/pdf/scripts/create_validation_image.py +0 -37
- package/skills/documents/pdf/scripts/extract_form_field_info.py +0 -122
- package/skills/documents/pdf/scripts/extract_form_structure.py +0 -115
- package/skills/documents/pdf/scripts/fill_fillable_fields.py +0 -98
- package/skills/documents/pdf/scripts/fill_pdf_form_with_annotations.py +0 -107
- package/skills/documents/pptx/LICENSE.txt +0 -30
- package/skills/documents/pptx/SKILL-zh.md +0 -232
- package/skills/documents/pptx/SKILL.md +0 -232
- package/skills/documents/pptx/editing.md +0 -205
- package/skills/documents/pptx/pptxgenjs.md +0 -420
- package/skills/documents/pptx/scripts/__init__.py +0 -0
- package/skills/documents/pptx/scripts/add_slide.py +0 -195
- package/skills/documents/pptx/scripts/clean.py +0 -286
- package/skills/documents/pptx/scripts/office/helpers/__init__.py +0 -0
- package/skills/documents/pptx/scripts/office/helpers/merge_runs.py +0 -199
- package/skills/documents/pptx/scripts/office/helpers/simplify_redlines.py +0 -197
- package/skills/documents/pptx/scripts/office/pack.py +0 -159
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
- package/skills/documents/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
- package/skills/documents/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
- package/skills/documents/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
- package/skills/documents/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
- package/skills/documents/pptx/scripts/office/schemas/mce/mc.xsd +0 -75
- package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +0 -560
- package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +0 -67
- package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +0 -14
- package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -20
- package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -13
- package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
- package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -8
- package/skills/documents/pptx/scripts/office/soffice.py +0 -183
- package/skills/documents/pptx/scripts/office/unpack.py +0 -132
- package/skills/documents/pptx/scripts/office/validate.py +0 -111
- package/skills/documents/pptx/scripts/office/validators/__init__.py +0 -15
- package/skills/documents/pptx/scripts/office/validators/base.py +0 -847
- package/skills/documents/pptx/scripts/office/validators/docx.py +0 -446
- package/skills/documents/pptx/scripts/office/validators/pptx.py +0 -275
- package/skills/documents/pptx/scripts/office/validators/redlining.py +0 -247
- package/skills/documents/pptx/scripts/thumbnail.py +0 -289
- package/skills/documents/xlsx/SKILL-zh.md +0 -292
- package/skills/engineering/diagnose/SKILL-zh.md +0 -117
- package/skills/engineering/grill-with-docs/ADR-FORMAT.md +0 -47
- package/skills/engineering/grill-with-docs/CONTEXT-FORMAT.md +0 -77
- package/skills/engineering/grill-with-docs/SKILL-zh.md +0 -88
- package/skills/engineering/grill-with-docs/SKILL.md +0 -88
- package/skills/engineering/improve-codebase-architecture/DEEPENING.md +0 -37
- package/skills/engineering/improve-codebase-architecture/INTERFACE-DESIGN.md +0 -44
- package/skills/engineering/improve-codebase-architecture/LANGUAGE.md +0 -53
- package/skills/engineering/improve-codebase-architecture/SKILL-zh.md +0 -71
- package/skills/engineering/improve-codebase-architecture/SKILL.md +0 -71
- package/skills/engineering/tdd/SKILL-zh.md +0 -109
- package/skills/engineering/to-issues/SKILL-zh.md +0 -81
- package/skills/engineering/to-issues/SKILL.md +0 -81
- package/skills/engineering/to-prd/SKILL-zh.md +0 -76
- package/skills/engineering/to-prd/SKILL.md +0 -74
- package/skills/engineering/zoom-out/SKILL-zh.md +0 -7
- package/skills/engineering/zoom-out/SKILL.md +0 -7
- package/skills/tools/find-skills/SKILL-zh.md +0 -440
- package/skills/tools/github/SKILL-zh.md +0 -48
- package/skills/tools/internal-comms/LICENSE.txt +0 -202
- package/skills/tools/internal-comms/SKILL-zh.md +0 -32
- package/skills/tools/internal-comms/SKILL.md +0 -32
- package/skills/tools/internal-comms/examples/3p-updates.md +0 -47
- package/skills/tools/internal-comms/examples/company-newsletter.md +0 -65
- package/skills/tools/internal-comms/examples/faq-answers.md +0 -30
- package/skills/tools/internal-comms/examples/general-comms.md +0 -16
- package/skills/tools/skill-creator/LICENSE.txt +0 -202
- package/skills/tools/skill-creator/SKILL-zh.md +0 -483
- package/skills/tools/skill-creator/SKILL.md +0 -485
- package/skills/tools/skill-creator/agents/analyzer.md +0 -274
- package/skills/tools/skill-creator/agents/comparator.md +0 -202
- package/skills/tools/skill-creator/agents/grader.md +0 -223
- package/skills/tools/skill-creator/assets/eval_review.html +0 -146
- package/skills/tools/skill-creator/eval-viewer/generate_review.py +0 -471
- package/skills/tools/skill-creator/eval-viewer/viewer.html +0 -1325
- package/skills/tools/skill-creator/references/schemas.md +0 -430
- package/skills/tools/skill-creator/scripts/__init__.py +0 -0
- package/skills/tools/skill-creator/scripts/aggregate_benchmark.py +0 -401
- package/skills/tools/skill-creator/scripts/generate_report.py +0 -326
- package/skills/tools/skill-creator/scripts/improve_description.py +0 -247
- package/skills/tools/skill-creator/scripts/package_skill.py +0 -136
- package/skills/tools/skill-creator/scripts/quick_validate.py +0 -103
- package/skills/tools/skill-creator/scripts/run_eval.py +0 -310
- package/skills/tools/skill-creator/scripts/run_loop.py +0 -328
- package/skills/tools/skill-creator/scripts/utils.py +0 -47
- package/skills/tools/summarize/SKILL-zh.md +0 -47
- package/skills/tools/weather/SKILL-zh.md +0 -46
- package/skills/tools/weather/SKILL.md +0 -46
- package/skills/tools/webapp-testing/SKILL-zh.md +0 -96
- /package/dist/src/auth/oauth/{vendor-pi-google → google-oauth}/google-antigravity.d.ts +0 -0
- /package/dist/src/auth/oauth/{vendor-pi-google → google-oauth}/google-gemini-cli.d.ts +0 -0
- /package/dist/src/auth/oauth/{vendor-pi-google → google-oauth}/oauth-page.d.ts +0 -0
|
@@ -1,289 +0,0 @@
|
|
|
1
|
-
"""Create thumbnail grids from PowerPoint presentation slides.
|
|
2
|
-
|
|
3
|
-
Creates a grid layout of slide thumbnails for quick visual analysis.
|
|
4
|
-
Labels each thumbnail with its XML filename (e.g., slide1.xml).
|
|
5
|
-
Hidden slides are shown with a placeholder pattern.
|
|
6
|
-
|
|
7
|
-
Usage:
|
|
8
|
-
python thumbnail.py input.pptx [output_prefix] [--cols N]
|
|
9
|
-
|
|
10
|
-
Examples:
|
|
11
|
-
python thumbnail.py presentation.pptx
|
|
12
|
-
# Creates: thumbnails.jpg
|
|
13
|
-
|
|
14
|
-
python thumbnail.py template.pptx grid --cols 4
|
|
15
|
-
# Creates: grid.jpg (or grid-1.jpg, grid-2.jpg for large decks)
|
|
16
|
-
"""
|
|
17
|
-
|
|
18
|
-
import argparse
|
|
19
|
-
import subprocess
|
|
20
|
-
import sys
|
|
21
|
-
import tempfile
|
|
22
|
-
import zipfile
|
|
23
|
-
from pathlib import Path
|
|
24
|
-
|
|
25
|
-
import defusedxml.minidom
|
|
26
|
-
from office.soffice import get_soffice_env
|
|
27
|
-
from PIL import Image, ImageDraw, ImageFont
|
|
28
|
-
|
|
29
|
-
THUMBNAIL_WIDTH = 300
|
|
30
|
-
CONVERSION_DPI = 100
|
|
31
|
-
MAX_COLS = 6
|
|
32
|
-
DEFAULT_COLS = 3
|
|
33
|
-
JPEG_QUALITY = 95
|
|
34
|
-
GRID_PADDING = 20
|
|
35
|
-
BORDER_WIDTH = 2
|
|
36
|
-
FONT_SIZE_RATIO = 0.10
|
|
37
|
-
LABEL_PADDING_RATIO = 0.4
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
def main():
|
|
41
|
-
parser = argparse.ArgumentParser(
|
|
42
|
-
description="Create thumbnail grids from PowerPoint slides."
|
|
43
|
-
)
|
|
44
|
-
parser.add_argument("input", help="Input PowerPoint file (.pptx)")
|
|
45
|
-
parser.add_argument(
|
|
46
|
-
"output_prefix",
|
|
47
|
-
nargs="?",
|
|
48
|
-
default="thumbnails",
|
|
49
|
-
help="Output prefix for image files (default: thumbnails)",
|
|
50
|
-
)
|
|
51
|
-
parser.add_argument(
|
|
52
|
-
"--cols",
|
|
53
|
-
type=int,
|
|
54
|
-
default=DEFAULT_COLS,
|
|
55
|
-
help=f"Number of columns (default: {DEFAULT_COLS}, max: {MAX_COLS})",
|
|
56
|
-
)
|
|
57
|
-
|
|
58
|
-
args = parser.parse_args()
|
|
59
|
-
|
|
60
|
-
cols = min(args.cols, MAX_COLS)
|
|
61
|
-
if args.cols > MAX_COLS:
|
|
62
|
-
print(f"Warning: Columns limited to {MAX_COLS}")
|
|
63
|
-
|
|
64
|
-
input_path = Path(args.input)
|
|
65
|
-
if not input_path.exists() or input_path.suffix.lower() != ".pptx":
|
|
66
|
-
print(f"Error: Invalid PowerPoint file: {args.input}", file=sys.stderr)
|
|
67
|
-
sys.exit(1)
|
|
68
|
-
|
|
69
|
-
output_path = Path(f"{args.output_prefix}.jpg")
|
|
70
|
-
|
|
71
|
-
try:
|
|
72
|
-
slide_info = get_slide_info(input_path)
|
|
73
|
-
|
|
74
|
-
with tempfile.TemporaryDirectory() as temp_dir:
|
|
75
|
-
temp_path = Path(temp_dir)
|
|
76
|
-
visible_images = convert_to_images(input_path, temp_path)
|
|
77
|
-
|
|
78
|
-
if not visible_images and not any(s["hidden"] for s in slide_info):
|
|
79
|
-
print("Error: No slides found", file=sys.stderr)
|
|
80
|
-
sys.exit(1)
|
|
81
|
-
|
|
82
|
-
slides = build_slide_list(slide_info, visible_images, temp_path)
|
|
83
|
-
|
|
84
|
-
grid_files = create_grids(slides, cols, THUMBNAIL_WIDTH, output_path)
|
|
85
|
-
|
|
86
|
-
print(f"Created {len(grid_files)} grid(s):")
|
|
87
|
-
for grid_file in grid_files:
|
|
88
|
-
print(f" {grid_file}")
|
|
89
|
-
|
|
90
|
-
except Exception as e:
|
|
91
|
-
print(f"Error: {e}", file=sys.stderr)
|
|
92
|
-
sys.exit(1)
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
def get_slide_info(pptx_path: Path) -> list[dict]:
|
|
96
|
-
with zipfile.ZipFile(pptx_path, "r") as zf:
|
|
97
|
-
rels_content = zf.read("ppt/_rels/presentation.xml.rels").decode("utf-8")
|
|
98
|
-
rels_dom = defusedxml.minidom.parseString(rels_content)
|
|
99
|
-
|
|
100
|
-
rid_to_slide = {}
|
|
101
|
-
for rel in rels_dom.getElementsByTagName("Relationship"):
|
|
102
|
-
rid = rel.getAttribute("Id")
|
|
103
|
-
target = rel.getAttribute("Target")
|
|
104
|
-
rel_type = rel.getAttribute("Type")
|
|
105
|
-
if "slide" in rel_type and target.startswith("slides/"):
|
|
106
|
-
rid_to_slide[rid] = target.replace("slides/", "")
|
|
107
|
-
|
|
108
|
-
pres_content = zf.read("ppt/presentation.xml").decode("utf-8")
|
|
109
|
-
pres_dom = defusedxml.minidom.parseString(pres_content)
|
|
110
|
-
|
|
111
|
-
slides = []
|
|
112
|
-
for sld_id in pres_dom.getElementsByTagName("p:sldId"):
|
|
113
|
-
rid = sld_id.getAttribute("r:id")
|
|
114
|
-
if rid in rid_to_slide:
|
|
115
|
-
hidden = sld_id.getAttribute("show") == "0"
|
|
116
|
-
slides.append({"name": rid_to_slide[rid], "hidden": hidden})
|
|
117
|
-
|
|
118
|
-
return slides
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
def build_slide_list(
|
|
122
|
-
slide_info: list[dict],
|
|
123
|
-
visible_images: list[Path],
|
|
124
|
-
temp_dir: Path,
|
|
125
|
-
) -> list[tuple[Path, str]]:
|
|
126
|
-
if visible_images:
|
|
127
|
-
with Image.open(visible_images[0]) as img:
|
|
128
|
-
placeholder_size = img.size
|
|
129
|
-
else:
|
|
130
|
-
placeholder_size = (1920, 1080)
|
|
131
|
-
|
|
132
|
-
slides = []
|
|
133
|
-
visible_idx = 0
|
|
134
|
-
|
|
135
|
-
for info in slide_info:
|
|
136
|
-
if info["hidden"]:
|
|
137
|
-
placeholder_path = temp_dir / f"hidden-{info['name']}.jpg"
|
|
138
|
-
placeholder_img = create_hidden_placeholder(placeholder_size)
|
|
139
|
-
placeholder_img.save(placeholder_path, "JPEG")
|
|
140
|
-
slides.append((placeholder_path, f"{info['name']} (hidden)"))
|
|
141
|
-
else:
|
|
142
|
-
if visible_idx < len(visible_images):
|
|
143
|
-
slides.append((visible_images[visible_idx], info["name"]))
|
|
144
|
-
visible_idx += 1
|
|
145
|
-
|
|
146
|
-
return slides
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
def create_hidden_placeholder(size: tuple[int, int]) -> Image.Image:
|
|
150
|
-
img = Image.new("RGB", size, color="#F0F0F0")
|
|
151
|
-
draw = ImageDraw.Draw(img)
|
|
152
|
-
line_width = max(5, min(size) // 100)
|
|
153
|
-
draw.line([(0, 0), size], fill="#CCCCCC", width=line_width)
|
|
154
|
-
draw.line([(size[0], 0), (0, size[1])], fill="#CCCCCC", width=line_width)
|
|
155
|
-
return img
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
def convert_to_images(pptx_path: Path, temp_dir: Path) -> list[Path]:
|
|
159
|
-
pdf_path = temp_dir / f"{pptx_path.stem}.pdf"
|
|
160
|
-
|
|
161
|
-
result = subprocess.run(
|
|
162
|
-
[
|
|
163
|
-
"soffice",
|
|
164
|
-
"--headless",
|
|
165
|
-
"--convert-to",
|
|
166
|
-
"pdf",
|
|
167
|
-
"--outdir",
|
|
168
|
-
str(temp_dir),
|
|
169
|
-
str(pptx_path),
|
|
170
|
-
],
|
|
171
|
-
capture_output=True,
|
|
172
|
-
text=True,
|
|
173
|
-
env=get_soffice_env(),
|
|
174
|
-
)
|
|
175
|
-
if result.returncode != 0 or not pdf_path.exists():
|
|
176
|
-
raise RuntimeError("PDF conversion failed")
|
|
177
|
-
|
|
178
|
-
result = subprocess.run(
|
|
179
|
-
[
|
|
180
|
-
"pdftoppm",
|
|
181
|
-
"-jpeg",
|
|
182
|
-
"-r",
|
|
183
|
-
str(CONVERSION_DPI),
|
|
184
|
-
str(pdf_path),
|
|
185
|
-
str(temp_dir / "slide"),
|
|
186
|
-
],
|
|
187
|
-
capture_output=True,
|
|
188
|
-
text=True,
|
|
189
|
-
)
|
|
190
|
-
if result.returncode != 0:
|
|
191
|
-
raise RuntimeError("Image conversion failed")
|
|
192
|
-
|
|
193
|
-
return sorted(temp_dir.glob("slide-*.jpg"))
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
def create_grids(
|
|
197
|
-
slides: list[tuple[Path, str]],
|
|
198
|
-
cols: int,
|
|
199
|
-
width: int,
|
|
200
|
-
output_path: Path,
|
|
201
|
-
) -> list[str]:
|
|
202
|
-
max_per_grid = cols * (cols + 1)
|
|
203
|
-
grid_files = []
|
|
204
|
-
|
|
205
|
-
for chunk_idx, start_idx in enumerate(range(0, len(slides), max_per_grid)):
|
|
206
|
-
end_idx = min(start_idx + max_per_grid, len(slides))
|
|
207
|
-
chunk_slides = slides[start_idx:end_idx]
|
|
208
|
-
|
|
209
|
-
grid = create_grid(chunk_slides, cols, width)
|
|
210
|
-
|
|
211
|
-
if len(slides) <= max_per_grid:
|
|
212
|
-
grid_filename = output_path
|
|
213
|
-
else:
|
|
214
|
-
stem = output_path.stem
|
|
215
|
-
suffix = output_path.suffix
|
|
216
|
-
grid_filename = output_path.parent / f"{stem}-{chunk_idx + 1}{suffix}"
|
|
217
|
-
|
|
218
|
-
grid_filename.parent.mkdir(parents=True, exist_ok=True)
|
|
219
|
-
grid.save(str(grid_filename), quality=JPEG_QUALITY)
|
|
220
|
-
grid_files.append(str(grid_filename))
|
|
221
|
-
|
|
222
|
-
return grid_files
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
def create_grid(
|
|
226
|
-
slides: list[tuple[Path, str]],
|
|
227
|
-
cols: int,
|
|
228
|
-
width: int,
|
|
229
|
-
) -> Image.Image:
|
|
230
|
-
font_size = int(width * FONT_SIZE_RATIO)
|
|
231
|
-
label_padding = int(font_size * LABEL_PADDING_RATIO)
|
|
232
|
-
|
|
233
|
-
with Image.open(slides[0][0]) as img:
|
|
234
|
-
aspect = img.height / img.width
|
|
235
|
-
height = int(width * aspect)
|
|
236
|
-
|
|
237
|
-
rows = (len(slides) + cols - 1) // cols
|
|
238
|
-
grid_w = cols * width + (cols + 1) * GRID_PADDING
|
|
239
|
-
grid_h = rows * (height + font_size + label_padding * 2) + (rows + 1) * GRID_PADDING
|
|
240
|
-
|
|
241
|
-
grid = Image.new("RGB", (grid_w, grid_h), "white")
|
|
242
|
-
draw = ImageDraw.Draw(grid)
|
|
243
|
-
|
|
244
|
-
try:
|
|
245
|
-
font = ImageFont.load_default(size=font_size)
|
|
246
|
-
except Exception:
|
|
247
|
-
font = ImageFont.load_default()
|
|
248
|
-
|
|
249
|
-
for i, (img_path, slide_name) in enumerate(slides):
|
|
250
|
-
row, col = i // cols, i % cols
|
|
251
|
-
x = col * width + (col + 1) * GRID_PADDING
|
|
252
|
-
y_base = (
|
|
253
|
-
row * (height + font_size + label_padding * 2) + (row + 1) * GRID_PADDING
|
|
254
|
-
)
|
|
255
|
-
|
|
256
|
-
label = slide_name
|
|
257
|
-
bbox = draw.textbbox((0, 0), label, font=font)
|
|
258
|
-
text_w = bbox[2] - bbox[0]
|
|
259
|
-
draw.text(
|
|
260
|
-
(x + (width - text_w) // 2, y_base + label_padding),
|
|
261
|
-
label,
|
|
262
|
-
fill="black",
|
|
263
|
-
font=font,
|
|
264
|
-
)
|
|
265
|
-
|
|
266
|
-
y_thumbnail = y_base + label_padding + font_size + label_padding
|
|
267
|
-
|
|
268
|
-
with Image.open(img_path) as img:
|
|
269
|
-
img.thumbnail((width, height), Image.Resampling.LANCZOS)
|
|
270
|
-
w, h = img.size
|
|
271
|
-
tx = x + (width - w) // 2
|
|
272
|
-
ty = y_thumbnail + (height - h) // 2
|
|
273
|
-
grid.paste(img, (tx, ty))
|
|
274
|
-
|
|
275
|
-
if BORDER_WIDTH > 0:
|
|
276
|
-
draw.rectangle(
|
|
277
|
-
[
|
|
278
|
-
(tx - BORDER_WIDTH, ty - BORDER_WIDTH),
|
|
279
|
-
(tx + w + BORDER_WIDTH - 1, ty + h + BORDER_WIDTH - 1),
|
|
280
|
-
],
|
|
281
|
-
outline="gray",
|
|
282
|
-
width=BORDER_WIDTH,
|
|
283
|
-
)
|
|
284
|
-
|
|
285
|
-
return grid
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
if __name__ == "__main__":
|
|
289
|
-
main()
|
|
@@ -1,292 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: xlsx
|
|
3
|
-
description: "在任何以电子表格文件为主要输入或输出的任务中使用本技能。这意味着用户想要:打开、读取、编辑或修复现有的 .xlsx、.xlsm、.csv 或 .tsv 文件(如添加列、计算公式、格式化、制图、清理混乱数据);从头开始或从其他数据源创建新电子表格;或在表格文件格式之间进行转换。特别是当用户按名称或路径引用电子表格文件时——即使是随口一提(如\"我下载文件夹里的那个 xlsx\")——并希望对它进行操作或从中生成内容时触发。也用于将混乱的表格数据文件(格式错误的行、错位的标题、垃圾数据)清理或重构为规范的电子表格。交付物必须是电子表格文件。当主要交付物是 Word 文档、HTML 报告、独立 Python 脚本、数据库管道或 Google Sheets API 集成时,即使涉及表格数据,也不要触发。"
|
|
4
|
-
license: 专有。完整条款见 LICENSE.txt
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# 输出要求
|
|
8
|
-
|
|
9
|
-
## 所有 Excel 文件
|
|
10
|
-
|
|
11
|
-
### 专业字体
|
|
12
|
-
- 除非用户另有指示,对所有交付物使用一致的专业字体(如 Arial、Times New Roman)
|
|
13
|
-
|
|
14
|
-
### 零公式错误
|
|
15
|
-
- 每个 Excel 模型交付时必须包含零公式错误(#REF!、#DIV/0!、#VALUE!、#N/A、#NAME?)
|
|
16
|
-
|
|
17
|
-
### 保留现有模板(更新模板时)
|
|
18
|
-
- 修改文件时研究和精确匹配现有格式、样式和约定
|
|
19
|
-
- 绝不对已有既定模式的文件强加标准格式
|
|
20
|
-
- 现有模板的约定始终优先于这些指南
|
|
21
|
-
|
|
22
|
-
## 财务模型
|
|
23
|
-
|
|
24
|
-
### 颜色编码标准
|
|
25
|
-
除非用户或现有模板另有说明
|
|
26
|
-
|
|
27
|
-
#### 行业标准颜色约定
|
|
28
|
-
- **蓝色文字(RGB:0,0,255)**:硬编码输入,以及用户会为不同场景更改的数字
|
|
29
|
-
- **黑色文字(RGB:0,0,0)**:所有公式和计算
|
|
30
|
-
- **绿色文字(RGB:0,128,0)**:从同一工作簿中其他工作表链接的数据
|
|
31
|
-
- **红色文字(RGB:255,0,0)**:指向其他文件的外部链接
|
|
32
|
-
- **黄色背景(RGB:255,255,0)**:需要注意的关键假设或需要更新的单元格
|
|
33
|
-
|
|
34
|
-
### 数字格式标准
|
|
35
|
-
|
|
36
|
-
#### 必需的格式规则
|
|
37
|
-
- **年份**:格式化为文本字符串(如"2024"而非"2,024")
|
|
38
|
-
- **货币**:使用 $#,##0 格式;始终在标题中指定单位("收入($mm)")
|
|
39
|
-
- **零值**:使用数字格式使所有零显示为"-",包括百分比(如"$#,##0;($#,##0);-")
|
|
40
|
-
- **百分比**:默认为 0.0% 格式(一位小数)
|
|
41
|
-
- **倍数**:估值倍数(EV/EBITDA、P/E)格式化为 0.0x
|
|
42
|
-
- **负数**:使用括号(123)而非负号 -123
|
|
43
|
-
|
|
44
|
-
### 公式构建规则
|
|
45
|
-
|
|
46
|
-
#### 假设条件放置
|
|
47
|
-
- 将所有假设条件(增长率、利润率、倍数等)放在单独的假设单元格中
|
|
48
|
-
- 在公式中使用单元格引用而非硬编码值
|
|
49
|
-
- 示例:使用 =B5*(1+$B$6) 而非 =B5*1.05
|
|
50
|
-
|
|
51
|
-
#### 公式错误预防
|
|
52
|
-
- 验证所有单元格引用正确
|
|
53
|
-
- 检查范围中的差一错误
|
|
54
|
-
- 确保所有预测期间的公式一致
|
|
55
|
-
- 用极端值(零值、负数)测试
|
|
56
|
-
- 验证没有意外的循环引用
|
|
57
|
-
|
|
58
|
-
#### 硬编码的文档化要求
|
|
59
|
-
- 在单元格中或旁边注释(如果在表格末尾)。格式:"来源:[系统/文档],[日期],[具体引用],[URL(如适用)]"
|
|
60
|
-
- 示例:
|
|
61
|
-
- "来源:公司 10-K 年报,FY2024,第 45 页,收入注释,[SEC EDGAR URL]"
|
|
62
|
-
- "来源:公司 10-Q 季报,Q2 2025,附件 99.1,[SEC EDGAR URL]"
|
|
63
|
-
- "来源:Bloomberg 终端,2025/8/15,AAPL US Equity"
|
|
64
|
-
- "来源:FactSet,2025/8/20,一致预期界面"
|
|
65
|
-
|
|
66
|
-
# XLSX 创建、编辑和分析
|
|
67
|
-
|
|
68
|
-
## 概述
|
|
69
|
-
|
|
70
|
-
用户可能要求你创建、编辑或分析 .xlsx 文件的内容。针对不同任务,有不同的工具和工作流可用。
|
|
71
|
-
|
|
72
|
-
## 重要要求
|
|
73
|
-
|
|
74
|
-
**LibreOffice 用于公式重新计算**:假设已安装 LibreOffice,可通过 `scripts/recalc.py` 脚本重新计算公式值。该脚本在首次运行时自动配置 LibreOffice,包括在 Unix socket 受限的沙箱环境中(由 `scripts/office/soffice.py` 处理)。
|
|
75
|
-
|
|
76
|
-
## 读取和分析数据
|
|
77
|
-
|
|
78
|
-
### 使用 pandas 进行数据分析
|
|
79
|
-
对于数据分析、可视化和基本操作,使用 **pandas**,它提供了强大的数据处理能力:
|
|
80
|
-
|
|
81
|
-
```python
|
|
82
|
-
import pandas as pd
|
|
83
|
-
|
|
84
|
-
# 读取 Excel
|
|
85
|
-
df = pd.read_excel('file.xlsx') # 默认:第一个工作表
|
|
86
|
-
all_sheets = pd.read_excel('file.xlsx', sheet_name=None) # 所有工作表(字典形式)
|
|
87
|
-
|
|
88
|
-
# 分析
|
|
89
|
-
df.head() # 预览数据
|
|
90
|
-
df.info() # 列信息
|
|
91
|
-
df.describe() # 统计信息
|
|
92
|
-
|
|
93
|
-
# 写入 Excel
|
|
94
|
-
df.to_excel('output.xlsx', index=False)
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
## Excel 文件工作流
|
|
98
|
-
|
|
99
|
-
## 关键:使用公式,而非硬编码值
|
|
100
|
-
|
|
101
|
-
**始终使用 Excel 公式,而不是在 Python 中计算值并硬编码。** 这确保电子表格保持动态和可更新性。
|
|
102
|
-
|
|
103
|
-
### ❌ 错误 - 硬编码计算值
|
|
104
|
-
```python
|
|
105
|
-
# 糟糕:在 Python 中计算并硬编码结果
|
|
106
|
-
total = df['Sales'].sum()
|
|
107
|
-
sheet['B10'] = total # 硬编码 5000
|
|
108
|
-
|
|
109
|
-
# 糟糕:在 Python 中计算增长率
|
|
110
|
-
growth = (df.iloc[-1]['Revenue'] - df.iloc[0]['Revenue']) / df.iloc[0]['Revenue']
|
|
111
|
-
sheet['C5'] = growth # 硬编码 0.15
|
|
112
|
-
|
|
113
|
-
# 糟糕:Python 计算平均值
|
|
114
|
-
avg = sum(values) / len(values)
|
|
115
|
-
sheet['D20'] = avg # 硬编码 42.5
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
### ✅ 正确 - 使用 Excel 公式
|
|
119
|
-
```python
|
|
120
|
-
# 好:让 Excel 计算总和
|
|
121
|
-
sheet['B10'] = '=SUM(B2:B9)'
|
|
122
|
-
|
|
123
|
-
# 好:增长率为 Excel 公式
|
|
124
|
-
sheet['C5'] = '=(C4-C2)/C2'
|
|
125
|
-
|
|
126
|
-
# 好:使用 Excel 函数计算平均值
|
|
127
|
-
sheet['D20'] = '=AVERAGE(D2:D19)'
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
这适用于所有计算——总计、百分比、比率、差异等。电子表格应在源数据更改时能够重新计算。
|
|
131
|
-
|
|
132
|
-
## 常见工作流
|
|
133
|
-
1. **选择工具**:数据处理用 pandas,公式/格式用 openpyxl
|
|
134
|
-
2. **创建/加载**:创建工作簿或加载现有文件
|
|
135
|
-
3. **修改**:添加/编辑数据、公式和格式
|
|
136
|
-
4. **保存**:写入文件
|
|
137
|
-
5. **重新计算公式(如果使用公式则必须执行)**:使用 scripts/recalc.py 脚本
|
|
138
|
-
```bash
|
|
139
|
-
python scripts/recalc.py output.xlsx
|
|
140
|
-
```
|
|
141
|
-
6. **验证并修复任何错误**:
|
|
142
|
-
- 脚本返回包含错误详情的 JSON
|
|
143
|
-
- 如果 `status` 为 `errors_found`,检查 `error_summary` 获取具体错误类型和位置
|
|
144
|
-
- 修复发现的错误并重新计算
|
|
145
|
-
- 需要修复的常见错误:
|
|
146
|
-
- `#REF!`:无效的单元格引用
|
|
147
|
-
- `#DIV/0!`:除零错误
|
|
148
|
-
- `#VALUE!`:公式中数据类型错误
|
|
149
|
-
- `#NAME?`:无法识别的公式名称
|
|
150
|
-
|
|
151
|
-
### 创建新的 Excel 文件
|
|
152
|
-
|
|
153
|
-
```python
|
|
154
|
-
# 使用 openpyxl 处理公式和格式
|
|
155
|
-
from openpyxl import Workbook
|
|
156
|
-
from openpyxl.styles import Font, PatternFill, Alignment
|
|
157
|
-
|
|
158
|
-
wb = Workbook()
|
|
159
|
-
sheet = wb.active
|
|
160
|
-
|
|
161
|
-
# 添加数据
|
|
162
|
-
sheet['A1'] = '你好'
|
|
163
|
-
sheet['B1'] = '世界'
|
|
164
|
-
sheet.append(['行', '的', '数据'])
|
|
165
|
-
|
|
166
|
-
# 添加公式
|
|
167
|
-
sheet['B2'] = '=SUM(A1:A10)'
|
|
168
|
-
|
|
169
|
-
# 格式化
|
|
170
|
-
sheet['A1'].font = Font(bold=True, color='FF0000')
|
|
171
|
-
sheet['A1'].fill = PatternFill('solid', start_color='FFFF00')
|
|
172
|
-
sheet['A1'].alignment = Alignment(horizontal='center')
|
|
173
|
-
|
|
174
|
-
# 列宽
|
|
175
|
-
sheet.column_dimensions['A'].width = 20
|
|
176
|
-
|
|
177
|
-
wb.save('output.xlsx')
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
### 编辑现有的 Excel 文件
|
|
181
|
-
|
|
182
|
-
```python
|
|
183
|
-
# 使用 openpyxl 保留公式和格式
|
|
184
|
-
from openpyxl import load_workbook
|
|
185
|
-
|
|
186
|
-
# 加载现有文件
|
|
187
|
-
wb = load_workbook('existing.xlsx')
|
|
188
|
-
sheet = wb.active # 或 wb['SheetName'] 获取特定工作表
|
|
189
|
-
|
|
190
|
-
# 处理多个工作表
|
|
191
|
-
for sheet_name in wb.sheetnames:
|
|
192
|
-
sheet = wb[sheet_name]
|
|
193
|
-
print(f"工作表:{sheet_name}")
|
|
194
|
-
|
|
195
|
-
# 修改单元格
|
|
196
|
-
sheet['A1'] = '新值'
|
|
197
|
-
sheet.insert_rows(2) # 在第 2 行位置插入行
|
|
198
|
-
sheet.delete_cols(3) # 删除第 3 列
|
|
199
|
-
|
|
200
|
-
# 添加新工作表
|
|
201
|
-
new_sheet = wb.create_sheet('新工作表')
|
|
202
|
-
new_sheet['A1'] = '数据'
|
|
203
|
-
|
|
204
|
-
wb.save('modified.xlsx')
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
## 重新计算公式
|
|
208
|
-
|
|
209
|
-
由 openpyxl 创建或修改的 Excel 文件包含公式字符串但不包含计算值。使用提供的 `scripts/recalc.py` 脚本重新计算公式:
|
|
210
|
-
|
|
211
|
-
```bash
|
|
212
|
-
python scripts/recalc.py <excel_file> [timeout_seconds]
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
示例:
|
|
216
|
-
```bash
|
|
217
|
-
python scripts/recalc.py output.xlsx 30
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
该脚本:
|
|
221
|
-
- 首次运行时自动设置 LibreOffice 宏
|
|
222
|
-
- 重新计算所有工作表中的所有公式
|
|
223
|
-
- 扫描所有单元格以查找 Excel 错误(#REF!、#DIV/0! 等)
|
|
224
|
-
- 返回包含详细错误位置和计数的 JSON
|
|
225
|
-
- 可在 Linux 和 macOS 上运行
|
|
226
|
-
|
|
227
|
-
## 公式验证清单
|
|
228
|
-
|
|
229
|
-
确保公式正确运行的快速检查:
|
|
230
|
-
|
|
231
|
-
### 基本验证
|
|
232
|
-
- [ ] **测试 2-3 个示例引用**:在构建完整模型前验证它们引用了正确的值
|
|
233
|
-
- [ ] **列映射**:确认 Excel 列匹配(如第 64 列 = BL,不是 BK)
|
|
234
|
-
- [ ] **行偏移**:记住 Excel 行从 1 开始(DataFrame 第 5 行 = Excel 第 6 行)
|
|
235
|
-
|
|
236
|
-
### 常见陷阱
|
|
237
|
-
- [ ] **NaN 处理**:使用 `pd.notna()` 检查空值
|
|
238
|
-
- [ ] **靠右的列**:财务数据通常在 50+ 列
|
|
239
|
-
- [ ] **多处匹配**:搜索所有出现,不只是第一个
|
|
240
|
-
- [ ] **除零错误**:在公式中使用 `/` 前检查分母(#DIV/0!)
|
|
241
|
-
- [ ] **错误引用**:验证所有单元格引用指向预期单元格(#REF!)
|
|
242
|
-
- [ ] **跨工作表引用**:使用正确格式(Sheet1!A1)链接工作表
|
|
243
|
-
|
|
244
|
-
### 公式测试策略
|
|
245
|
-
- [ ] **从小开始**:在广泛应用前先对 2-3 个单元格测试公式
|
|
246
|
-
- [ ] **验证依赖**:检查公式中引用的所有单元格都存在
|
|
247
|
-
- [ ] **测试边界情况**:包括零、负数和非常大的值
|
|
248
|
-
|
|
249
|
-
### 解读 scripts/recalc.py 输出
|
|
250
|
-
脚本返回包含错误详情的 JSON:
|
|
251
|
-
```json
|
|
252
|
-
{
|
|
253
|
-
"status": "success", // 或 "errors_found"
|
|
254
|
-
"total_errors": 0, // 错误总数
|
|
255
|
-
"total_formulas": 42, // 文件中的公式数量
|
|
256
|
-
"error_summary": { // 仅当发现错误时存在
|
|
257
|
-
"#REF!": {
|
|
258
|
-
"count": 2,
|
|
259
|
-
"locations": ["Sheet1!B5", "Sheet1!C10"]
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
## 最佳实践
|
|
266
|
-
|
|
267
|
-
### 库选择
|
|
268
|
-
- **pandas**:最适合数据分析、批量操作和简单数据导出
|
|
269
|
-
- **openpyxl**:最适合复杂格式、公式和 Excel 特定功能
|
|
270
|
-
|
|
271
|
-
### 使用 openpyxl
|
|
272
|
-
- 单元格索引从 1 开始(row=1,column=1 指单元格 A1)
|
|
273
|
-
- 使用 `data_only=True` 读取计算值:`load_workbook('file.xlsx', data_only=True)`
|
|
274
|
-
- **警告**:如果以 `data_only=True` 打开并保存,公式将被值替换且永久丢失
|
|
275
|
-
- 对大文件:使用 `read_only=True` 读取或 `write_only=True` 写入
|
|
276
|
-
- 公式会保留但不会求值——使用 scripts/recalc.py 更新值
|
|
277
|
-
|
|
278
|
-
### 使用 pandas
|
|
279
|
-
- 指定数据类型以避免推断问题:`pd.read_excel('file.xlsx', dtype={'id': str})`
|
|
280
|
-
- 对大文件,读取特定列:`pd.read_excel('file.xlsx', usecols=['A', 'C', 'E'])`
|
|
281
|
-
- 正确处理日期:`pd.read_excel('file.xlsx', parse_dates=['date_column'])`
|
|
282
|
-
|
|
283
|
-
## 代码风格指南
|
|
284
|
-
**重要**:生成用于 Excel 操作的 Python 代码时:
|
|
285
|
-
- 编写简洁的 Python 代码,无需不必要的注释
|
|
286
|
-
- 避免冗长的变量名和冗余操作
|
|
287
|
-
- 避免不必要的 print 语句
|
|
288
|
-
|
|
289
|
-
**对于 Excel 文件本身**:
|
|
290
|
-
- 为包含复杂公式或重要假设的单元格添加注释
|
|
291
|
-
- 记录硬编码值的数据来源
|
|
292
|
-
- 为关键计算和模型章节添加说明
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: diagnose
|
|
3
|
-
description: 针对难以解决的错误和性能回归的有纪律的诊断循环。重现 → 最小化 → 假设 → 检测 → 修复 → 回归测试。当用户说"诊断这个"/"调试这个"、报告错误、说某东西坏了/抛出异常/失败、或描述性能回归时使用。
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# 诊断
|
|
7
|
-
|
|
8
|
-
针对难以解决的错误的方法论。只有在明确有理由时才跳过阶段。
|
|
9
|
-
|
|
10
|
-
探索代码库时,使用项目的领域词汇表来建立相关模块的清晰心智模型,并检查你所触及区域的 ADR。
|
|
11
|
-
|
|
12
|
-
## 阶段 1 — 构建反馈回路
|
|
13
|
-
|
|
14
|
-
**这是核心技能。** 其他都是机械性的。如果你有一个快速、确定性的、可由代理运行的针对该错误的是/否信号,你就能找到原因——二分搜索、假设测试和检测都只是在消费这个信号。如果你没有这个信号,再看多少代码也没用。
|
|
15
|
-
|
|
16
|
-
把不成比例的努力花在这里。**要激进。要创新。拒绝放弃。**
|
|
17
|
-
|
|
18
|
-
### 构建反馈回路的方法——大致按此顺序尝试
|
|
19
|
-
|
|
20
|
-
1. **失败的测试**——在能触及 bug 的任何接缝处——单元测试、集成测试、端到端测试。
|
|
21
|
-
2. **Curl / HTTP 脚本**——针对正在运行的开发服务器。
|
|
22
|
-
3. **CLI 调用**——使用预置输入,将标准输出与已知良好的快照进行对比。
|
|
23
|
-
4. **无头浏览器脚本**(Playwright / Puppeteer)——驱动 UI,在 DOM/控制台/网络上进行断言。
|
|
24
|
-
5. **重放捕获的跟踪。** 将真实的网络请求/负载/事件日志保存到磁盘;在隔离环境中通过代码路径重放。
|
|
25
|
-
6. **一次性测试工具。** 搭建系统的最小子集(一个服务,模拟依赖),通过单个函数调用执行 bug 代码路径。
|
|
26
|
-
7. **属性/模糊测试循环。** 如果 bug 是"有时输出错误",运行 1000 个随机输入并寻找故障模式。
|
|
27
|
-
8. **二分搜索工具。** 如果 bug 出现在两个已知状态之间(提交、数据集、版本),自动化"在状态 X 启动,检查,重复",以便你可以运行 `git bisect run`。
|
|
28
|
-
9. **差分循环。** 将相同的输入通过旧版本 vs 新版本(或两种配置)运行,并对比输出。
|
|
29
|
-
10. **人机协作 bash 脚本。** 最后手段。如果必须有人点击,用 `scripts/hitl-loop.template.sh` 来驱动**他们**,使循环仍然有结构。捕获的输出反馈给你。
|
|
30
|
-
|
|
31
|
-
构建正确的反馈回路,bug 就解决了 90%。
|
|
32
|
-
|
|
33
|
-
### 迭代循环本身
|
|
34
|
-
|
|
35
|
-
把循环当作产品来对待。一旦你有了一个循环,问:
|
|
36
|
-
|
|
37
|
-
- 能更快吗?(缓存设置、跳过无关初始化、缩小测试范围。)
|
|
38
|
-
- 信号能更明确吗?(针对特定症状断言,而不是"没有崩溃"。)
|
|
39
|
-
- 能更确定吗?(固定时间、种子化 RNG、隔离文件系统、冻结网络。)
|
|
40
|
-
|
|
41
|
-
一个 30 秒的不稳定循环比没有循环好不了多少。一个 2 秒的确定性循环是调试超能力。
|
|
42
|
-
|
|
43
|
-
### 非确定性错误
|
|
44
|
-
|
|
45
|
-
目标不是干净的复现,而是**更高的复现率**。循环触发器 100 次、并行化、增加压力、缩小时间窗口、注入延迟。50% 飘忽的 bug 是可调试的;1% 不是——不断提高比率直到可调试为止。
|
|
46
|
-
|
|
47
|
-
### 当你真的无法构建循环时
|
|
48
|
-
|
|
49
|
-
停下来并明确说明。列出你尝试过的方法。向用户请求:(a) 访问复现所需的环境、(b) 捕获的制品(HAR 文件、日志转储、核心转储、带时间戳的屏幕录制),或 (c) 添加临时生产检测的权限。**没有循环就不要继续到假设阶段。**
|
|
50
|
-
|
|
51
|
-
在拥有你相信的循环之前,不要进入阶段 2。
|
|
52
|
-
|
|
53
|
-
## 阶段 2 — 重现
|
|
54
|
-
|
|
55
|
-
运行循环。观察 bug 出现。
|
|
56
|
-
|
|
57
|
-
确认:
|
|
58
|
-
|
|
59
|
-
- [ ] 循环产生**用户**描述的故障模式——而不是碰巧附近的另一个不同故障。错误的 bug = 错误的修复。
|
|
60
|
-
- [ ] 故障在多次运行中是可重现的(或者对于非确定性 bug,在足够高的比率下可重现以便调试)。
|
|
61
|
-
- [ ] 你已经捕获了确切的症状(错误消息、错误输出、缓慢的时间),以便后续阶段可以验证修复确实解决了它。
|
|
62
|
-
|
|
63
|
-
在重现 bug 之前不要继续。
|
|
64
|
-
|
|
65
|
-
## 阶段 3 — 假设
|
|
66
|
-
|
|
67
|
-
在测试任何一个假设之前,生成 **3-5 个排序的假设**。单一假设生成会锚定在第一个看似合理的想法上。
|
|
68
|
-
|
|
69
|
-
每个假设必须是**可证伪的**:陈述它所做的预测。
|
|
70
|
-
|
|
71
|
-
> 格式:"如果 <X> 是原因,那么 <改变 Y> 将使 bug 消失 / <改变 Z> 将使 bug 更严重。"
|
|
72
|
-
|
|
73
|
-
如果你无法陈述预测,那这个假设只是一种感觉——放弃它或让它更精确。
|
|
74
|
-
|
|
75
|
-
**在测试之前向用户展示排序列表。** 他们通常有领域知识可以立即重新排序("我们刚部署了 #3 的更改"),或者知道他们已经排除的假设。廉价检查点,节省大量时间。如果用户不在,不要阻塞——按你的排序继续。
|
|
76
|
-
|
|
77
|
-
## 阶段 4 — 检测
|
|
78
|
-
|
|
79
|
-
每个探测必须映射到阶段 3 的具体预测。**一次只改变一个变量。**
|
|
80
|
-
|
|
81
|
-
工具偏好:
|
|
82
|
-
|
|
83
|
-
1. **调试器 / REPL 检查**——如果环境支持。一个断点胜过十个日志。
|
|
84
|
-
2. **针对性日志**——在能够区分假设的边界处。
|
|
85
|
-
3. 绝不"记录一切然后 grep"。
|
|
86
|
-
|
|
87
|
-
**给每个调试日志打上唯一前缀标签**,例如 `[DEBUG-a4f2]`。最后清理时一次 grep 搞定。未标记的日志保留;标记的日志删除。
|
|
88
|
-
|
|
89
|
-
**性能分支。** 对于性能回归,日志通常是错误的。改为:建立基线测量(时间测试工具、`performance.now()`、性能分析器、查询计划),然后二分搜索。先测量,后修复。
|
|
90
|
-
|
|
91
|
-
## 阶段 5 — 修复 + 回归测试
|
|
92
|
-
|
|
93
|
-
**在修复之前**编写回归测试——但只有在有一个**正确的接缝**时才这样做。
|
|
94
|
-
|
|
95
|
-
一个正确的接缝是测试可以像在调用点一样执行**真实 bug 模式**。如果唯一可用的接缝太浅(单个调用者的测试当 bug 需要多个调用者时,无法复现触发 bug 的链的单元测试),在那里的回归测试会给出虚假的信心。
|
|
96
|
-
|
|
97
|
-
**如果没有正确的接缝,这本身就是发现。** 记下它。代码库架构阻止了将该 bug 锁定。将其标记出来供下一个阶段使用。
|
|
98
|
-
|
|
99
|
-
如果存在正确的接缝:
|
|
100
|
-
|
|
101
|
-
1. 将最小化的复现转化为该接缝处的失败测试。
|
|
102
|
-
2. 观察它失败。
|
|
103
|
-
3. 应用修复。
|
|
104
|
-
4. 观察它通过。
|
|
105
|
-
5. 针对原始(未最小化的)场景重新运行阶段 1 的反馈回路。
|
|
106
|
-
|
|
107
|
-
## 阶段 6 — 清理 + 事后分析
|
|
108
|
-
|
|
109
|
-
在宣布完成之前必须完成:
|
|
110
|
-
|
|
111
|
-
- [ ] 原始复现不再复现(重新运行阶段 1 的循环)
|
|
112
|
-
- [ ] 回归测试通过(或接缝缺失已记录)
|
|
113
|
-
- [ ] 所有 `[DEBUG-...]` 检测已移除(grep 前缀)
|
|
114
|
-
- [ ] 一次性原型已删除(或移到明确标记的调试位置)
|
|
115
|
-
- [ ] 正确的假设在提交/PR 消息中说明——以便下一个调试者学习
|
|
116
|
-
|
|
117
|
-
**然后问:什么本来可以防止这个 bug?** 如果答案涉及架构变更(没有好的测试接缝、调用者纠缠、隐藏耦合),将具体内容交给 `/improve-codebase-architecture` 技能。在修复**之后**提出建议,而不是之前——你现在拥有的信息比开始时更多。
|