qlogicagent 0.2.0 → 0.3.0
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/agent.js +1 -0
- package/dist/cli.js +9 -0
- package/dist/contracts.js +1 -0
- package/dist/index.js +5 -16
- package/dist/orchestration.js +118 -0
- package/dist/{agent → types/agent}/agent.d.ts +0 -1
- package/dist/{agent → types/agent}/tool-loop.d.ts +0 -1
- package/dist/{agent → types/agent}/types.d.ts +0 -1
- package/dist/{cli → types/cli}/main.d.ts +0 -1
- package/dist/{cli → types/cli}/stdio-server.d.ts +0 -1
- package/dist/{config → types/config}/config.d.ts +0 -1
- package/dist/{contracts → types/contracts}/hooks.d.ts +0 -1
- package/dist/{contracts/index.js → types/contracts/index.d.ts} +0 -1
- package/dist/{contracts → types/contracts}/planner.d.ts +0 -1
- package/dist/{contracts → types/contracts}/skill-candidate.d.ts +0 -1
- package/dist/{contracts → types/contracts}/todo.d.ts +0 -1
- package/dist/{index.d.ts → types/index.d.ts} +0 -1
- package/dist/{llm → types/llm}/builtin-providers.d.ts +0 -1
- package/dist/{llm → types/llm}/index.d.ts +0 -1
- package/dist/{llm → types/llm}/llm-client.d.ts +0 -1
- package/dist/{llm → types/llm}/model-catalog.d.ts +0 -1
- package/dist/{llm → types/llm}/provider-def.d.ts +0 -1
- package/dist/{llm → types/llm}/provider-registry.d.ts +0 -1
- package/dist/{llm → types/llm}/transport.d.ts +0 -1
- package/dist/{llm → types/llm}/transports/anthropic-messages.d.ts +0 -1
- package/dist/{llm → types/llm}/transports/openai-chat.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/agent-registry.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/approval-aware-tool-plan.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/context-compression.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/conversation-repair.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/curator-scheduler.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/embedded-failover-policy.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/error-classification.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/failover-classification.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/failover-error.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/fork-subagent.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/index.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/memory-flush-policy.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/memory-provider.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/parallel-tool-calls.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/prompt-cache-strategy.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/reactive-compact.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/retry-loop.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/skill-candidate.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/skill-consolidation.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/skill-improvement.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/skill-similarity.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/streaming-tool-executor.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/team-orchestration.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/team-tool-loop-wiring.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/tool-choice-policy.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/tool-loop-state.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/tool-schema.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/transcript-repair.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/turn-loop-guard.d.ts +0 -1
- package/dist/{orchestration → types/orchestration}/web-browser-policy.d.ts +0 -1
- package/dist/{runtime → types/runtime}/context-compression.d.ts +0 -1
- package/dist/{runtime → types/runtime}/hook-registry.d.ts +0 -1
- package/dist/{runtime → types/runtime}/memory-hooks.d.ts +0 -1
- package/dist/{runtime → types/runtime}/tool-eligibility.d.ts +0 -1
- package/dist/{skills → types/skills}/index.d.ts +0 -1
- package/dist/{skills → types/skills}/memory-extractor.d.ts +0 -1
- package/dist/{skills → types/skills}/memory-query-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/memory-store.d.ts +0 -1
- package/dist/{skills → types/skills}/memory-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/portable-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/qmemory-adapter.d.ts +0 -1
- package/dist/{skills → types/skills}/skill-frontmatter.d.ts +0 -1
- package/dist/{skills → types/skills}/skill-guard.d.ts +0 -1
- package/dist/{skills → types/skills}/skill-loader.d.ts +0 -1
- package/dist/{skills → types/skills}/skill-source.d.ts +0 -1
- package/dist/{skills → types/skills}/skill-types.d.ts +0 -1
- package/dist/{skills → types/skills}/think-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/todo-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/agent-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/apply-patch-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/ask-user-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/brief-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/browser-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/checkpoint-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/config-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/cron-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/edit-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/exec-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/image-generate-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/instructions-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/lsp-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/mcp-client-types.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/mcp-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/memory-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/monitor-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/music-generate-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/notify-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/patch-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/pdf-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/plan-mode-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/read-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/repl-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/search-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/send-message-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/skill-list-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/skill-manage-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/skill-view-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/sleep-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/structured-output-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/task-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/team-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/tool-search-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/tts-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/video-edit-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/video-generate-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/video-merge-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/video-upscale-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/web-fetch-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/web-search-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/worktree-tool.d.ts +0 -1
- package/dist/{skills → types/skills}/tools/write-tool.d.ts +0 -1
- package/package.json +56 -42
- package/dist/agent/agent.d.ts.map +0 -1
- package/dist/agent/agent.js +0 -114
- package/dist/agent/agent.js.map +0 -1
- package/dist/agent/tool-loop.d.ts.map +0 -1
- package/dist/agent/tool-loop.js +0 -576
- package/dist/agent/tool-loop.js.map +0 -1
- package/dist/agent/types.d.ts.map +0 -1
- package/dist/agent/types.js +0 -15
- package/dist/agent/types.js.map +0 -1
- package/dist/cli/main.d.ts.map +0 -1
- package/dist/cli/main.js +0 -24
- package/dist/cli/main.js.map +0 -1
- package/dist/cli/stdio-server.d.ts.map +0 -1
- package/dist/cli/stdio-server.js +0 -464
- package/dist/cli/stdio-server.js.map +0 -1
- package/dist/config/config.d.ts.map +0 -1
- package/dist/config/config.js +0 -22
- package/dist/config/config.js.map +0 -1
- package/dist/contracts/hooks.d.ts.map +0 -1
- package/dist/contracts/hooks.js +0 -8
- package/dist/contracts/hooks.js.map +0 -1
- package/dist/contracts/index.d.ts +0 -11
- package/dist/contracts/index.d.ts.map +0 -1
- package/dist/contracts/index.js.map +0 -1
- package/dist/contracts/planner.d.ts.map +0 -1
- package/dist/contracts/planner.js +0 -3
- package/dist/contracts/planner.js.map +0 -1
- package/dist/contracts/skill-candidate.d.ts.map +0 -1
- package/dist/contracts/skill-candidate.js +0 -196
- package/dist/contracts/skill-candidate.js.map +0 -1
- package/dist/contracts/todo.d.ts.map +0 -1
- package/dist/contracts/todo.js +0 -10
- package/dist/contracts/todo.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/llm/builtin-providers.d.ts.map +0 -1
- package/dist/llm/builtin-providers.js +0 -532
- package/dist/llm/builtin-providers.js.map +0 -1
- package/dist/llm/index.d.ts.map +0 -1
- package/dist/llm/index.js +0 -15
- package/dist/llm/index.js.map +0 -1
- package/dist/llm/llm-client.d.ts.map +0 -1
- package/dist/llm/llm-client.js +0 -68
- package/dist/llm/llm-client.js.map +0 -1
- package/dist/llm/model-catalog.d.ts.map +0 -1
- package/dist/llm/model-catalog.js +0 -192
- package/dist/llm/model-catalog.js.map +0 -1
- package/dist/llm/provider-def.d.ts.map +0 -1
- package/dist/llm/provider-def.js +0 -13
- package/dist/llm/provider-def.js.map +0 -1
- package/dist/llm/provider-registry.d.ts.map +0 -1
- package/dist/llm/provider-registry.js +0 -148
- package/dist/llm/provider-registry.js.map +0 -1
- package/dist/llm/transport.d.ts.map +0 -1
- package/dist/llm/transport.js +0 -28
- package/dist/llm/transport.js.map +0 -1
- package/dist/llm/transports/anthropic-messages.d.ts.map +0 -1
- package/dist/llm/transports/anthropic-messages.js +0 -294
- package/dist/llm/transports/anthropic-messages.js.map +0 -1
- package/dist/llm/transports/openai-chat.d.ts.map +0 -1
- package/dist/llm/transports/openai-chat.js +0 -166
- package/dist/llm/transports/openai-chat.js.map +0 -1
- package/dist/orchestration/agent-registry.d.ts.map +0 -1
- package/dist/orchestration/agent-registry.js +0 -117
- package/dist/orchestration/agent-registry.js.map +0 -1
- package/dist/orchestration/approval-aware-tool-plan.d.ts.map +0 -1
- package/dist/orchestration/approval-aware-tool-plan.js +0 -88
- package/dist/orchestration/approval-aware-tool-plan.js.map +0 -1
- package/dist/orchestration/context-compression.d.ts.map +0 -1
- package/dist/orchestration/context-compression.js +0 -584
- package/dist/orchestration/context-compression.js.map +0 -1
- package/dist/orchestration/conversation-repair.d.ts.map +0 -1
- package/dist/orchestration/conversation-repair.js +0 -430
- package/dist/orchestration/conversation-repair.js.map +0 -1
- package/dist/orchestration/curator-scheduler.d.ts.map +0 -1
- package/dist/orchestration/curator-scheduler.js +0 -136
- package/dist/orchestration/curator-scheduler.js.map +0 -1
- package/dist/orchestration/embedded-failover-policy.d.ts.map +0 -1
- package/dist/orchestration/embedded-failover-policy.js +0 -169
- package/dist/orchestration/embedded-failover-policy.js.map +0 -1
- package/dist/orchestration/error-classification.d.ts.map +0 -1
- package/dist/orchestration/error-classification.js +0 -78
- package/dist/orchestration/error-classification.js.map +0 -1
- package/dist/orchestration/failover-classification.d.ts.map +0 -1
- package/dist/orchestration/failover-classification.js +0 -382
- package/dist/orchestration/failover-classification.js.map +0 -1
- package/dist/orchestration/failover-error.d.ts.map +0 -1
- package/dist/orchestration/failover-error.js +0 -199
- package/dist/orchestration/failover-error.js.map +0 -1
- package/dist/orchestration/fork-subagent.d.ts.map +0 -1
- package/dist/orchestration/fork-subagent.js +0 -99
- package/dist/orchestration/fork-subagent.js.map +0 -1
- package/dist/orchestration/index.d.ts.map +0 -1
- package/dist/orchestration/index.js +0 -268
- package/dist/orchestration/index.js.map +0 -1
- package/dist/orchestration/memory-flush-policy.d.ts.map +0 -1
- package/dist/orchestration/memory-flush-policy.js +0 -86
- package/dist/orchestration/memory-flush-policy.js.map +0 -1
- package/dist/orchestration/memory-provider.d.ts.map +0 -1
- package/dist/orchestration/memory-provider.js +0 -3
- package/dist/orchestration/memory-provider.js.map +0 -1
- package/dist/orchestration/parallel-tool-calls.d.ts.map +0 -1
- package/dist/orchestration/parallel-tool-calls.js +0 -60
- package/dist/orchestration/parallel-tool-calls.js.map +0 -1
- package/dist/orchestration/prompt-cache-strategy.d.ts.map +0 -1
- package/dist/orchestration/prompt-cache-strategy.js +0 -229
- package/dist/orchestration/prompt-cache-strategy.js.map +0 -1
- package/dist/orchestration/reactive-compact.d.ts.map +0 -1
- package/dist/orchestration/reactive-compact.js +0 -79
- package/dist/orchestration/reactive-compact.js.map +0 -1
- package/dist/orchestration/retry-loop.d.ts.map +0 -1
- package/dist/orchestration/retry-loop.js +0 -25
- package/dist/orchestration/retry-loop.js.map +0 -1
- package/dist/orchestration/skill-candidate.d.ts.map +0 -1
- package/dist/orchestration/skill-candidate.js +0 -142
- package/dist/orchestration/skill-candidate.js.map +0 -1
- package/dist/orchestration/skill-consolidation.d.ts.map +0 -1
- package/dist/orchestration/skill-consolidation.js +0 -221
- package/dist/orchestration/skill-consolidation.js.map +0 -1
- package/dist/orchestration/skill-improvement.d.ts.map +0 -1
- package/dist/orchestration/skill-improvement.js +0 -67
- package/dist/orchestration/skill-improvement.js.map +0 -1
- package/dist/orchestration/skill-similarity.d.ts.map +0 -1
- package/dist/orchestration/skill-similarity.js +0 -132
- package/dist/orchestration/skill-similarity.js.map +0 -1
- package/dist/orchestration/streaming-tool-executor.d.ts.map +0 -1
- package/dist/orchestration/streaming-tool-executor.js +0 -97
- package/dist/orchestration/streaming-tool-executor.js.map +0 -1
- package/dist/orchestration/team-orchestration.d.ts.map +0 -1
- package/dist/orchestration/team-orchestration.js +0 -370
- package/dist/orchestration/team-orchestration.js.map +0 -1
- package/dist/orchestration/team-tool-loop-wiring.d.ts.map +0 -1
- package/dist/orchestration/team-tool-loop-wiring.js +0 -148
- package/dist/orchestration/team-tool-loop-wiring.js.map +0 -1
- package/dist/orchestration/tool-choice-policy.d.ts.map +0 -1
- package/dist/orchestration/tool-choice-policy.js +0 -165
- package/dist/orchestration/tool-choice-policy.js.map +0 -1
- package/dist/orchestration/tool-loop-state.d.ts.map +0 -1
- package/dist/orchestration/tool-loop-state.js +0 -134
- package/dist/orchestration/tool-loop-state.js.map +0 -1
- package/dist/orchestration/tool-schema.d.ts.map +0 -1
- package/dist/orchestration/tool-schema.js +0 -298
- package/dist/orchestration/tool-schema.js.map +0 -1
- package/dist/orchestration/transcript-repair.d.ts.map +0 -1
- package/dist/orchestration/transcript-repair.js +0 -427
- package/dist/orchestration/transcript-repair.js.map +0 -1
- package/dist/orchestration/turn-loop-guard.d.ts.map +0 -1
- package/dist/orchestration/turn-loop-guard.js +0 -93
- package/dist/orchestration/turn-loop-guard.js.map +0 -1
- package/dist/orchestration/web-browser-policy.d.ts.map +0 -1
- package/dist/orchestration/web-browser-policy.js +0 -40
- package/dist/orchestration/web-browser-policy.js.map +0 -1
- package/dist/runtime/context-compression.d.ts.map +0 -1
- package/dist/runtime/context-compression.js +0 -275
- package/dist/runtime/context-compression.js.map +0 -1
- package/dist/runtime/hook-registry.d.ts.map +0 -1
- package/dist/runtime/hook-registry.js +0 -54
- package/dist/runtime/hook-registry.js.map +0 -1
- package/dist/runtime/memory-hooks.d.ts.map +0 -1
- package/dist/runtime/memory-hooks.js +0 -66
- package/dist/runtime/memory-hooks.js.map +0 -1
- package/dist/runtime/tool-eligibility.d.ts.map +0 -1
- package/dist/runtime/tool-eligibility.js +0 -112
- package/dist/runtime/tool-eligibility.js.map +0 -1
- package/dist/skills/index.d.ts.map +0 -1
- package/dist/skills/index.js +0 -83
- package/dist/skills/index.js.map +0 -1
- package/dist/skills/memory-extractor.d.ts.map +0 -1
- package/dist/skills/memory-extractor.js +0 -174
- package/dist/skills/memory-extractor.js.map +0 -1
- package/dist/skills/memory-query-tool.d.ts.map +0 -1
- package/dist/skills/memory-query-tool.js +0 -128
- package/dist/skills/memory-query-tool.js.map +0 -1
- package/dist/skills/memory-store.d.ts.map +0 -1
- package/dist/skills/memory-store.js +0 -229
- package/dist/skills/memory-store.js.map +0 -1
- package/dist/skills/memory-tool.d.ts.map +0 -1
- package/dist/skills/memory-tool.js +0 -193
- package/dist/skills/memory-tool.js.map +0 -1
- package/dist/skills/portable-tool.d.ts.map +0 -1
- package/dist/skills/portable-tool.js +0 -15
- package/dist/skills/portable-tool.js.map +0 -1
- package/dist/skills/qmemory-adapter.d.ts.map +0 -1
- package/dist/skills/qmemory-adapter.js +0 -166
- package/dist/skills/qmemory-adapter.js.map +0 -1
- package/dist/skills/skill-frontmatter.d.ts.map +0 -1
- package/dist/skills/skill-frontmatter.js +0 -345
- package/dist/skills/skill-frontmatter.js.map +0 -1
- package/dist/skills/skill-guard.d.ts.map +0 -1
- package/dist/skills/skill-guard.js +0 -230
- package/dist/skills/skill-guard.js.map +0 -1
- package/dist/skills/skill-loader.d.ts.map +0 -1
- package/dist/skills/skill-loader.js +0 -304
- package/dist/skills/skill-loader.js.map +0 -1
- package/dist/skills/skill-source.d.ts.map +0 -1
- package/dist/skills/skill-source.js +0 -127
- package/dist/skills/skill-source.js.map +0 -1
- package/dist/skills/skill-types.d.ts.map +0 -1
- package/dist/skills/skill-types.js +0 -7
- package/dist/skills/skill-types.js.map +0 -1
- package/dist/skills/think-tool.d.ts.map +0 -1
- package/dist/skills/think-tool.js +0 -60
- package/dist/skills/think-tool.js.map +0 -1
- package/dist/skills/todo-tool.d.ts.map +0 -1
- package/dist/skills/todo-tool.js +0 -115
- package/dist/skills/todo-tool.js.map +0 -1
- package/dist/skills/tools/agent-tool.d.ts.map +0 -1
- package/dist/skills/tools/agent-tool.js +0 -143
- package/dist/skills/tools/agent-tool.js.map +0 -1
- package/dist/skills/tools/apply-patch-tool.d.ts.map +0 -1
- package/dist/skills/tools/apply-patch-tool.js +0 -185
- package/dist/skills/tools/apply-patch-tool.js.map +0 -1
- package/dist/skills/tools/ask-user-tool.d.ts.map +0 -1
- package/dist/skills/tools/ask-user-tool.js +0 -122
- package/dist/skills/tools/ask-user-tool.js.map +0 -1
- package/dist/skills/tools/brief-tool.d.ts.map +0 -1
- package/dist/skills/tools/brief-tool.js +0 -96
- package/dist/skills/tools/brief-tool.js.map +0 -1
- package/dist/skills/tools/browser-tool.d.ts.map +0 -1
- package/dist/skills/tools/browser-tool.js +0 -156
- package/dist/skills/tools/browser-tool.js.map +0 -1
- package/dist/skills/tools/checkpoint-tool.d.ts.map +0 -1
- package/dist/skills/tools/checkpoint-tool.js +0 -103
- package/dist/skills/tools/checkpoint-tool.js.map +0 -1
- package/dist/skills/tools/config-tool.d.ts.map +0 -1
- package/dist/skills/tools/config-tool.js +0 -144
- package/dist/skills/tools/config-tool.js.map +0 -1
- package/dist/skills/tools/cron-tool.d.ts.map +0 -1
- package/dist/skills/tools/cron-tool.js +0 -176
- package/dist/skills/tools/cron-tool.js.map +0 -1
- package/dist/skills/tools/edit-tool.d.ts.map +0 -1
- package/dist/skills/tools/edit-tool.js +0 -71
- package/dist/skills/tools/edit-tool.js.map +0 -1
- package/dist/skills/tools/exec-tool.d.ts.map +0 -1
- package/dist/skills/tools/exec-tool.js +0 -134
- package/dist/skills/tools/exec-tool.js.map +0 -1
- package/dist/skills/tools/image-generate-tool.d.ts.map +0 -1
- package/dist/skills/tools/image-generate-tool.js +0 -68
- package/dist/skills/tools/image-generate-tool.js.map +0 -1
- package/dist/skills/tools/instructions-tool.d.ts.map +0 -1
- package/dist/skills/tools/instructions-tool.js +0 -188
- package/dist/skills/tools/instructions-tool.js.map +0 -1
- package/dist/skills/tools/lsp-tool.d.ts.map +0 -1
- package/dist/skills/tools/lsp-tool.js +0 -228
- package/dist/skills/tools/lsp-tool.js.map +0 -1
- package/dist/skills/tools/mcp-client-types.d.ts.map +0 -1
- package/dist/skills/tools/mcp-client-types.js +0 -54
- package/dist/skills/tools/mcp-client-types.js.map +0 -1
- package/dist/skills/tools/mcp-tool.d.ts.map +0 -1
- package/dist/skills/tools/mcp-tool.js +0 -504
- package/dist/skills/tools/mcp-tool.js.map +0 -1
- package/dist/skills/tools/memory-tool.d.ts.map +0 -1
- package/dist/skills/tools/memory-tool.js +0 -89
- package/dist/skills/tools/memory-tool.js.map +0 -1
- package/dist/skills/tools/monitor-tool.d.ts.map +0 -1
- package/dist/skills/tools/monitor-tool.js +0 -132
- package/dist/skills/tools/monitor-tool.js.map +0 -1
- package/dist/skills/tools/music-generate-tool.d.ts.map +0 -1
- package/dist/skills/tools/music-generate-tool.js +0 -63
- package/dist/skills/tools/music-generate-tool.js.map +0 -1
- package/dist/skills/tools/notify-tool.d.ts.map +0 -1
- package/dist/skills/tools/notify-tool.js +0 -63
- package/dist/skills/tools/notify-tool.js.map +0 -1
- package/dist/skills/tools/patch-tool.d.ts.map +0 -1
- package/dist/skills/tools/patch-tool.js +0 -506
- package/dist/skills/tools/patch-tool.js.map +0 -1
- package/dist/skills/tools/pdf-tool.d.ts.map +0 -1
- package/dist/skills/tools/pdf-tool.js +0 -89
- package/dist/skills/tools/pdf-tool.js.map +0 -1
- package/dist/skills/tools/plan-mode-tool.d.ts.map +0 -1
- package/dist/skills/tools/plan-mode-tool.js +0 -123
- package/dist/skills/tools/plan-mode-tool.js.map +0 -1
- package/dist/skills/tools/read-tool.d.ts.map +0 -1
- package/dist/skills/tools/read-tool.js +0 -85
- package/dist/skills/tools/read-tool.js.map +0 -1
- package/dist/skills/tools/repl-tool.d.ts.map +0 -1
- package/dist/skills/tools/repl-tool.js +0 -70
- package/dist/skills/tools/repl-tool.js.map +0 -1
- package/dist/skills/tools/search-tool.d.ts.map +0 -1
- package/dist/skills/tools/search-tool.js +0 -226
- package/dist/skills/tools/search-tool.js.map +0 -1
- package/dist/skills/tools/send-message-tool.d.ts.map +0 -1
- package/dist/skills/tools/send-message-tool.js +0 -77
- package/dist/skills/tools/send-message-tool.js.map +0 -1
- package/dist/skills/tools/skill-list-tool.d.ts.map +0 -1
- package/dist/skills/tools/skill-list-tool.js +0 -55
- package/dist/skills/tools/skill-list-tool.js.map +0 -1
- package/dist/skills/tools/skill-manage-tool.d.ts.map +0 -1
- package/dist/skills/tools/skill-manage-tool.js +0 -154
- package/dist/skills/tools/skill-manage-tool.js.map +0 -1
- package/dist/skills/tools/skill-view-tool.d.ts.map +0 -1
- package/dist/skills/tools/skill-view-tool.js +0 -73
- package/dist/skills/tools/skill-view-tool.js.map +0 -1
- package/dist/skills/tools/sleep-tool.d.ts.map +0 -1
- package/dist/skills/tools/sleep-tool.js +0 -82
- package/dist/skills/tools/sleep-tool.js.map +0 -1
- package/dist/skills/tools/structured-output-tool.d.ts.map +0 -1
- package/dist/skills/tools/structured-output-tool.js +0 -177
- package/dist/skills/tools/structured-output-tool.js.map +0 -1
- package/dist/skills/tools/task-tool.d.ts.map +0 -1
- package/dist/skills/tools/task-tool.js +0 -162
- package/dist/skills/tools/task-tool.js.map +0 -1
- package/dist/skills/tools/team-tool.d.ts.map +0 -1
- package/dist/skills/tools/team-tool.js +0 -106
- package/dist/skills/tools/team-tool.js.map +0 -1
- package/dist/skills/tools/tool-search-tool.d.ts.map +0 -1
- package/dist/skills/tools/tool-search-tool.js +0 -111
- package/dist/skills/tools/tool-search-tool.js.map +0 -1
- package/dist/skills/tools/tts-tool.d.ts.map +0 -1
- package/dist/skills/tools/tts-tool.js +0 -46
- package/dist/skills/tools/tts-tool.js.map +0 -1
- package/dist/skills/tools/video-edit-tool.d.ts.map +0 -1
- package/dist/skills/tools/video-edit-tool.js +0 -75
- package/dist/skills/tools/video-edit-tool.js.map +0 -1
- package/dist/skills/tools/video-generate-tool.d.ts.map +0 -1
- package/dist/skills/tools/video-generate-tool.js +0 -67
- package/dist/skills/tools/video-generate-tool.js.map +0 -1
- package/dist/skills/tools/video-merge-tool.d.ts.map +0 -1
- package/dist/skills/tools/video-merge-tool.js +0 -93
- package/dist/skills/tools/video-merge-tool.js.map +0 -1
- package/dist/skills/tools/video-upscale-tool.d.ts.map +0 -1
- package/dist/skills/tools/video-upscale-tool.js +0 -53
- package/dist/skills/tools/video-upscale-tool.js.map +0 -1
- package/dist/skills/tools/web-fetch-tool.d.ts.map +0 -1
- package/dist/skills/tools/web-fetch-tool.js +0 -93
- package/dist/skills/tools/web-fetch-tool.js.map +0 -1
- package/dist/skills/tools/web-search-tool.d.ts.map +0 -1
- package/dist/skills/tools/web-search-tool.js +0 -87
- package/dist/skills/tools/web-search-tool.js.map +0 -1
- package/dist/skills/tools/worktree-tool.d.ts.map +0 -1
- package/dist/skills/tools/worktree-tool.js +0 -148
- package/dist/skills/tools/worktree-tool.js.map +0 -1
- package/dist/skills/tools/write-tool.d.ts.map +0 -1
- package/dist/skills/tools/write-tool.js +0 -82
- package/dist/skills/tools/write-tool.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"video-generate-tool.js","sourceRoot":"","sources":["../../../src/skills/tools/video-generate-tool.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,0DAA0D;AAC1D,kBAAkB;AAClB,+DAA+D;AAI/D,MAAM,CAAC,MAAM,wBAAwB,GAAG,gBAAyB,CAAC;AAWlE,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,IAAI,EAAE,QAAiB;IACvB,UAAU,EAAE;QACV,MAAM,EAAE;YACN,IAAI,EAAE,QAAiB;YACvB,WAAW,EACT,uGAAuG;SAC1G;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAiB;YACvB,WAAW,EAAE,mEAAmE;SACjF;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAiB;YACvB,WAAW,EAAE,wDAAwD;SACtE;QACD,SAAS,EAAE;YACT,IAAI,EAAE,QAAiB;YACvB,WAAW,EACT,mGAAmG;SACtG;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAiB;YACvB,WAAW,EAAE,8FAA8F;SAC5G;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAiB;YACvB,WAAW,EACT,8GAA8G;SACjH;KACF;IACD,QAAQ,EAAE,CAAC,QAAQ,CAAU;CACrB,CAAC;AAyBX,MAAM,UAAU,uBAAuB,CACrC,IAA2B;IAE3B,OAAO;QACL,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,iFAAiF;YACjF,uFAAuF;YACvF,mFAAmF;QACrF,UAAU,EAAE,0BAA0B;QAEtC,OAAO,EAAE,KAAK,EAAE,WAAmB,EAAE,MAA+B,EAA+B,EAAE;YACnG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC;gBACtC,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,QAAQ,EAAE,MAAM,CAAC,SAAS;gBAC1B,WAAW,EAAE,MAAM,CAAC,YAAY;gBAChC,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;YACtC,MAAM,IAAI,GAAG,aAAa,KAAK,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAEjH,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBACjC,OAAO,EAAE;oBACP,IAAI,EAAE,gBAAgB;oBACtB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"video-merge-tool.d.ts","sourceRoot":"","sources":["../../../src/skills/tools/video-merge-tool.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAE5E,eAAO,MAAM,qBAAqB,EAAG,aAAsB,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgD1B,CAAC;AAEX,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE;QAClB,KAAK,EAAE,cAAc,EAAE,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC/B;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,kBAAkB,GACvB,YAAY,CAAC,oBAAoB,CAAC,CA2CpC"}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
// ============================================================
|
|
2
|
-
// Video Merge Tool — merge multiple video clips with transitions.
|
|
3
|
-
// Category: media
|
|
4
|
-
// ============================================================
|
|
5
|
-
export const VIDEO_MERGE_TOOL_NAME = "video_merge";
|
|
6
|
-
export const VIDEO_MERGE_TOOL_SCHEMA = {
|
|
7
|
-
type: "object",
|
|
8
|
-
properties: {
|
|
9
|
-
clips: {
|
|
10
|
-
type: "array",
|
|
11
|
-
items: {
|
|
12
|
-
type: "object",
|
|
13
|
-
properties: {
|
|
14
|
-
video: { type: "string", description: "Video file path." },
|
|
15
|
-
audio: { type: "string", description: "Narration audio file path (from TTS)." },
|
|
16
|
-
trimStart: { type: "number", description: "Trim start in seconds (default 0)." },
|
|
17
|
-
trimEnd: { type: "number", description: "Trim end in seconds (default: full)." },
|
|
18
|
-
},
|
|
19
|
-
required: ["video"],
|
|
20
|
-
},
|
|
21
|
-
minItems: 2,
|
|
22
|
-
description: "Array of video clips to merge, in order.",
|
|
23
|
-
},
|
|
24
|
-
transition: {
|
|
25
|
-
type: "string",
|
|
26
|
-
description: "Transition effect: 'crossfade' (default), 'fade', 'wipeleft', 'cut', 'dissolve', etc.",
|
|
27
|
-
},
|
|
28
|
-
transitionDuration: {
|
|
29
|
-
type: "number",
|
|
30
|
-
description: "Transition duration in seconds (0.1-2.0, default 0.5).",
|
|
31
|
-
},
|
|
32
|
-
subtitles: {
|
|
33
|
-
type: "string",
|
|
34
|
-
description: "Path to SRT subtitle file to burn-in.",
|
|
35
|
-
},
|
|
36
|
-
bgm: {
|
|
37
|
-
type: "string",
|
|
38
|
-
description: "Background music file path.",
|
|
39
|
-
},
|
|
40
|
-
bgmVolume: {
|
|
41
|
-
type: "number",
|
|
42
|
-
description: "BGM volume (0.0-1.0, default 0.15).",
|
|
43
|
-
},
|
|
44
|
-
outputResolution: {
|
|
45
|
-
type: "string",
|
|
46
|
-
description: "Output resolution: '1920x1080', '1080x1920', etc. Default: auto.",
|
|
47
|
-
},
|
|
48
|
-
outputFps: {
|
|
49
|
-
type: "number",
|
|
50
|
-
description: "Output FPS (default 30).",
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
required: ["clips"],
|
|
54
|
-
};
|
|
55
|
-
export function createVideoMergeTool(deps) {
|
|
56
|
-
return {
|
|
57
|
-
name: VIDEO_MERGE_TOOL_NAME,
|
|
58
|
-
label: "Video Merge",
|
|
59
|
-
description: "Merge multiple video clips into a single video with transitions, subtitles, and background music. " +
|
|
60
|
-
"Requires at least 2 clips. Supports crossfade, fade, wipe, dissolve, and cut transitions. " +
|
|
61
|
-
"Audio per clip is preserved; BGM is mixed at adjustable volume.",
|
|
62
|
-
parameters: VIDEO_MERGE_TOOL_SCHEMA,
|
|
63
|
-
execute: async (_toolCallId, params) => {
|
|
64
|
-
if (!params.clips || params.clips.length < 2) {
|
|
65
|
-
return { content: [{ type: "text", text: "Error: at least 2 clips are required for merging." }] };
|
|
66
|
-
}
|
|
67
|
-
const result = await deps.mergeVideos({
|
|
68
|
-
clips: params.clips,
|
|
69
|
-
transition: params.transition,
|
|
70
|
-
transitionDuration: params.transitionDuration,
|
|
71
|
-
subtitles: params.subtitles,
|
|
72
|
-
bgm: params.bgm,
|
|
73
|
-
bgmVolume: params.bgmVolume,
|
|
74
|
-
outputResolution: params.outputResolution,
|
|
75
|
-
outputFps: params.outputFps,
|
|
76
|
-
});
|
|
77
|
-
const text = `Merged ${result.clipCount} clips → ${result.durationSec.toFixed(1)}s video` +
|
|
78
|
-
(params.transition ? ` (transition: ${params.transition})` : "");
|
|
79
|
-
return {
|
|
80
|
-
content: [{ type: "text", text }],
|
|
81
|
-
details: {
|
|
82
|
-
type: "video_merge",
|
|
83
|
-
localPath: result.localPath,
|
|
84
|
-
servePath: result.servePath,
|
|
85
|
-
durationSec: result.durationSec,
|
|
86
|
-
clipCount: result.clipCount,
|
|
87
|
-
mediaUrls: result.mediaUrls,
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
|
-
},
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
//# sourceMappingURL=video-merge-tool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"video-merge-tool.js","sourceRoot":"","sources":["../../../src/skills/tools/video-merge-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"video-upscale-tool.d.ts","sourceRoot":"","sources":["../../../src/skills/tools/video-upscale-tool.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAE5E,eAAO,MAAM,uBAAuB,EAAG,eAAwB,CAAC;AAEhE,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;CAiB5B,CAAC;AAEX,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACjC;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,oBAAoB,GACzB,YAAY,CAAC,sBAAsB,CAAC,CAgCtC"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
// ============================================================
|
|
2
|
-
// Video Upscale Tool — upscale video resolution + sharpen.
|
|
3
|
-
// Category: media
|
|
4
|
-
// ============================================================
|
|
5
|
-
export const VIDEO_UPSCALE_TOOL_NAME = "video_upscale";
|
|
6
|
-
export const VIDEO_UPSCALE_TOOL_SCHEMA = {
|
|
7
|
-
type: "object",
|
|
8
|
-
properties: {
|
|
9
|
-
video: {
|
|
10
|
-
type: "string",
|
|
11
|
-
description: "Video file path (local or serve path).",
|
|
12
|
-
},
|
|
13
|
-
targetResolution: {
|
|
14
|
-
type: "string",
|
|
15
|
-
description: "Target resolution: '1080p' (default, 1920x1080/1080x1920), '2k' (2560x1440/1440x2560).",
|
|
16
|
-
},
|
|
17
|
-
sharpness: {
|
|
18
|
-
type: "string",
|
|
19
|
-
description: "Sharpening intensity: 'light' (default), 'medium', 'strong'.",
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
required: ["video"],
|
|
23
|
-
};
|
|
24
|
-
export function createVideoUpscaleTool(deps) {
|
|
25
|
-
return {
|
|
26
|
-
name: VIDEO_UPSCALE_TOOL_NAME,
|
|
27
|
-
label: "Video Upscale",
|
|
28
|
-
description: "Upscale a video to higher resolution with optional sharpening. " +
|
|
29
|
-
"Auto-detects orientation (landscape/portrait). Uses Lanczos interpolation + unsharp mask. " +
|
|
30
|
-
"Supports 1080p and 2K targets. Best used as post-processing after video_merge.",
|
|
31
|
-
parameters: VIDEO_UPSCALE_TOOL_SCHEMA,
|
|
32
|
-
execute: async (_toolCallId, params) => {
|
|
33
|
-
const result = await deps.upscaleVideo({
|
|
34
|
-
video: params.video,
|
|
35
|
-
targetResolution: params.targetResolution,
|
|
36
|
-
sharpness: params.sharpness,
|
|
37
|
-
});
|
|
38
|
-
const text = `Upscaled to ${result.resolution}${params.sharpness ? ` (sharpness: ${params.sharpness})` : ""}`;
|
|
39
|
-
return {
|
|
40
|
-
content: [{ type: "text", text }],
|
|
41
|
-
details: {
|
|
42
|
-
type: "video_upscale",
|
|
43
|
-
localPath: result.localPath,
|
|
44
|
-
servePath: result.servePath,
|
|
45
|
-
resolution: result.resolution,
|
|
46
|
-
durationSec: result.durationSec,
|
|
47
|
-
mediaUrls: result.mediaUrls,
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=video-upscale-tool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"video-upscale-tool.js","sourceRoot":"","sources":["../../../src/skills/tools/video-upscale-tool.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,2DAA2D;AAC3D,kBAAkB;AAClB,+DAA+D;AAI/D,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAwB,CAAC;AAQhE,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,IAAI,EAAE,QAAiB;IACvB,UAAU,EAAE;QACV,KAAK,EAAE;YACL,IAAI,EAAE,QAAiB;YACvB,WAAW,EAAE,wCAAwC;SACtD;QACD,gBAAgB,EAAE;YAChB,IAAI,EAAE,QAAiB;YACvB,WAAW,EAAE,wFAAwF;SACtG;QACD,SAAS,EAAE;YACT,IAAI,EAAE,QAAiB;YACvB,WAAW,EAAE,8DAA8D;SAC5E;KACF;IACD,QAAQ,EAAE,CAAC,OAAO,CAAU;CACpB,CAAC;AAuBX,MAAM,UAAU,sBAAsB,CACpC,IAA0B;IAE1B,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,iEAAiE;YACjE,4FAA4F;YAC5F,gFAAgF;QAClF,UAAU,EAAE,yBAAyB;QAErC,OAAO,EAAE,KAAK,EAAE,WAAmB,EAAE,MAA8B,EAA+B,EAAE;YAClG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC;gBACrC,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,eAAe,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAE9G,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBACjC,OAAO,EAAE;oBACP,IAAI,EAAE,eAAe;oBACrB,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"web-fetch-tool.d.ts","sourceRoot":"","sources":["../../../src/skills/tools/web-fetch-tool.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAE5E,eAAO,MAAM,mBAAmB,EAAG,WAAoB,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCxB,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;QAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAE5B;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACrE;AAID,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,gBAAgB,GACrB,YAAY,CAAC,kBAAkB,CAAC,CAyDlC"}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
// ============================================================
|
|
2
|
-
// Web Fetch Tool — fetch and extract web page content.
|
|
3
|
-
// Category: web
|
|
4
|
-
// ============================================================
|
|
5
|
-
export const WEB_FETCH_TOOL_NAME = "web_fetch";
|
|
6
|
-
export const WEB_FETCH_TOOL_SCHEMA = {
|
|
7
|
-
type: "object",
|
|
8
|
-
properties: {
|
|
9
|
-
url: {
|
|
10
|
-
type: "string",
|
|
11
|
-
description: "HTTP or HTTPS URL to fetch.",
|
|
12
|
-
},
|
|
13
|
-
extractMode: {
|
|
14
|
-
type: "string",
|
|
15
|
-
enum: ["markdown", "text", "json"],
|
|
16
|
-
description: 'Extraction mode: "markdown" (default), "text", or "json" (LLM-driven structured extraction).',
|
|
17
|
-
},
|
|
18
|
-
maxChars: {
|
|
19
|
-
type: "number",
|
|
20
|
-
description: "Maximum characters to return (truncates when exceeded).",
|
|
21
|
-
minimum: 100,
|
|
22
|
-
},
|
|
23
|
-
query: {
|
|
24
|
-
type: "string",
|
|
25
|
-
description: "Original search query. When provided, returns the most query-relevant sections.",
|
|
26
|
-
},
|
|
27
|
-
extract: {
|
|
28
|
-
type: "boolean",
|
|
29
|
-
description: "When true, returns structured extraction (title, summary, key facts, entities, topics, sentiment).",
|
|
30
|
-
},
|
|
31
|
-
summarize: {
|
|
32
|
-
type: "boolean",
|
|
33
|
-
description: "When true, returns a concise summary (< 500 chars) of the page content. " +
|
|
34
|
-
"Useful for long pages to reduce context usage while preserving key information.",
|
|
35
|
-
},
|
|
36
|
-
},
|
|
37
|
-
required: ["url"],
|
|
38
|
-
};
|
|
39
|
-
const DEFAULT_MAX_CHARS = 50000;
|
|
40
|
-
export function createWebFetchTool(deps) {
|
|
41
|
-
return {
|
|
42
|
-
name: WEB_FETCH_TOOL_NAME,
|
|
43
|
-
label: "Web Fetch",
|
|
44
|
-
description: "Fetch content from a URL and extract it as markdown, text, or structured JSON. " +
|
|
45
|
-
"Supports query-based relevance filtering and structured extraction " +
|
|
46
|
-
"(title, summary, key facts, entities, topics, sentiment).",
|
|
47
|
-
parameters: WEB_FETCH_TOOL_SCHEMA,
|
|
48
|
-
execute: async (_toolCallId, params) => {
|
|
49
|
-
const result = await deps.fetchUrl({
|
|
50
|
-
url: params.url,
|
|
51
|
-
extractMode: params.extractMode,
|
|
52
|
-
maxChars: params.maxChars ?? DEFAULT_MAX_CHARS,
|
|
53
|
-
query: params.query,
|
|
54
|
-
extract: params.extract,
|
|
55
|
-
});
|
|
56
|
-
// Summarization: if requested and content is long enough to warrant it
|
|
57
|
-
if (params.summarize && deps.summarizeContent && result.content.length > 1000) {
|
|
58
|
-
const summary = await deps.summarizeContent(result.content, params.query);
|
|
59
|
-
return {
|
|
60
|
-
content: [{ type: "text", text: result.title ? `# ${result.title}\n\n${summary}` : summary }],
|
|
61
|
-
details: {
|
|
62
|
-
type: "web_fetch",
|
|
63
|
-
url: params.url,
|
|
64
|
-
summarized: true,
|
|
65
|
-
originalLength: result.content.length,
|
|
66
|
-
summaryLength: summary.length,
|
|
67
|
-
},
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
const parts = [];
|
|
71
|
-
if (result.title)
|
|
72
|
-
parts.push(`# ${result.title}\n`);
|
|
73
|
-
parts.push(result.content);
|
|
74
|
-
if (result.relevantExcerpts?.length) {
|
|
75
|
-
parts.push("\n---\n## Relevant Excerpts\n");
|
|
76
|
-
for (const excerpt of result.relevantExcerpts) {
|
|
77
|
-
parts.push(`- ${excerpt}`);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return {
|
|
81
|
-
content: [{ type: "text", text: parts.join("\n") }],
|
|
82
|
-
details: {
|
|
83
|
-
type: "web_fetch",
|
|
84
|
-
url: params.url,
|
|
85
|
-
extractMode: params.extractMode ?? "markdown",
|
|
86
|
-
hasExtraction: !!result.extraction,
|
|
87
|
-
extraction: result.extraction,
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
|
-
},
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
//# sourceMappingURL=web-fetch-tool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"web-fetch-tool.js","sourceRoot":"","sources":["../../../src/skills/tools/web-fetch-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"web-search-tool.d.ts","sourceRoot":"","sources":["../../../src/skills/tools/web-search-tool.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAE5E,eAAO,MAAM,oBAAoB,EAAG,YAAqB,CAAC;AAE1D,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;CAsBzB,CAAC;AAEX,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QACR,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GACA,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7B;AAID,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAgE9F"}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
// ============================================================
|
|
2
|
-
// Web Search Tool — search the web for information.
|
|
3
|
-
// Reference: claude-code-haha/src/tools/WebSearchTool/WebSearchTool.ts
|
|
4
|
-
// hermes-agent-2026.4.30/tools/web_tools.py
|
|
5
|
-
// Category: web
|
|
6
|
-
// ============================================================
|
|
7
|
-
export const WEB_SEARCH_TOOL_NAME = "web_search";
|
|
8
|
-
export const WEB_SEARCH_TOOL_SCHEMA = {
|
|
9
|
-
type: "object",
|
|
10
|
-
properties: {
|
|
11
|
-
query: {
|
|
12
|
-
type: "string",
|
|
13
|
-
description: "Search query string. Be specific and concise for best results.",
|
|
14
|
-
},
|
|
15
|
-
allowedDomains: {
|
|
16
|
-
type: "array",
|
|
17
|
-
items: { type: "string" },
|
|
18
|
-
description: "Only include results from these domains (e.g. ['docs.python.org', 'stackoverflow.com']). " +
|
|
19
|
-
"Cannot be used together with blockedDomains.",
|
|
20
|
-
},
|
|
21
|
-
blockedDomains: {
|
|
22
|
-
type: "array",
|
|
23
|
-
items: { type: "string" },
|
|
24
|
-
description: "Exclude results from these domains. Cannot be used together with allowedDomains.",
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
required: ["query"],
|
|
28
|
-
};
|
|
29
|
-
const MAX_RESULTS = 10;
|
|
30
|
-
export function createWebSearchTool(deps) {
|
|
31
|
-
return {
|
|
32
|
-
name: WEB_SEARCH_TOOL_NAME,
|
|
33
|
-
label: "Web Search",
|
|
34
|
-
description: "Search the web for current information. Returns top results with title, URL, and snippet. " +
|
|
35
|
-
"Use this when you need up-to-date information that may not be in your training data. " +
|
|
36
|
-
"You MUST include source URLs as markdown links when citing search results.",
|
|
37
|
-
parameters: WEB_SEARCH_TOOL_SCHEMA,
|
|
38
|
-
execute: async (_toolCallId, params) => {
|
|
39
|
-
// Validate mutual exclusivity
|
|
40
|
-
if (params.allowedDomains?.length && params.blockedDomains?.length) {
|
|
41
|
-
return {
|
|
42
|
-
content: [{ type: "text", text: "Error: allowedDomains and blockedDomains cannot both be specified." }],
|
|
43
|
-
details: { type: "web_search", error: "mutual_exclusion" },
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
// Validate query
|
|
47
|
-
if (!params.query || params.query.trim().length < 2) {
|
|
48
|
-
return {
|
|
49
|
-
content: [{ type: "text", text: "Error: query must be at least 2 characters." }],
|
|
50
|
-
details: { type: "web_search", error: "invalid_query" },
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
const output = await deps.search(params.query.trim(), {
|
|
54
|
-
allowedDomains: params.allowedDomains,
|
|
55
|
-
blockedDomains: params.blockedDomains,
|
|
56
|
-
maxResults: MAX_RESULTS,
|
|
57
|
-
});
|
|
58
|
-
if (output.results.length === 0) {
|
|
59
|
-
return {
|
|
60
|
-
content: [{ type: "text", text: `No results found for: "${params.query}"` }],
|
|
61
|
-
details: { type: "web_search", query: params.query, resultCount: 0 },
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
const lines = [
|
|
65
|
-
`Web search results for: "${output.query}"`,
|
|
66
|
-
"",
|
|
67
|
-
"REMINDER: You MUST include source URLs as markdown links when referencing these results.",
|
|
68
|
-
"",
|
|
69
|
-
];
|
|
70
|
-
for (let i = 0; i < output.results.length; i++) {
|
|
71
|
-
const r = output.results[i];
|
|
72
|
-
lines.push(`${i + 1}. [${r.title}](${r.url})`);
|
|
73
|
-
lines.push(` ${r.snippet}`);
|
|
74
|
-
lines.push("");
|
|
75
|
-
}
|
|
76
|
-
return {
|
|
77
|
-
content: [{ type: "text", text: lines.join("\n") }],
|
|
78
|
-
details: {
|
|
79
|
-
type: "web_search",
|
|
80
|
-
query: output.query,
|
|
81
|
-
resultCount: output.results.length,
|
|
82
|
-
},
|
|
83
|
-
};
|
|
84
|
-
},
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
//# sourceMappingURL=web-search-tool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"web-search-tool.js","sourceRoot":"","sources":["../../../src/skills/tools/web-search-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-tool.d.ts","sourceRoot":"","sources":["../../../src/skills/tools/worktree-tool.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAE5E,eAAO,MAAM,kBAAkB,EAAG,UAAmB,CAAC;AAEtD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IACjC,8EAA8E;IAC9E,MAAM,EAAE,cAAc,CAAC;IACvB,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC/B,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;CA8BvB,CAAC;AAEX,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACtD,qCAAqC;IACrC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3F,yBAAyB;IACzB,aAAa,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,uCAAuC;IACvC,YAAY,IAAI,OAAO,CAAC;IACxB,gCAAgC;IAChC,eAAe,CAAC,IAAI,YAAY,GAAG,IAAI,CAAC;CACzC;AAID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAuH3F"}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
// ============================================================
|
|
2
|
-
// Worktree Tool — git worktree isolation for parallel development.
|
|
3
|
-
// Reference: claude-code-haha/src/tools/EnterWorktreeTool/EnterWorktreeTool.ts
|
|
4
|
-
// claude-code-haha/src/tools/ExitWorktreeTool/ExitWorktreeTool.ts
|
|
5
|
-
// Category: system (git)
|
|
6
|
-
// Dependency: #13 AgentTool
|
|
7
|
-
// ============================================================
|
|
8
|
-
export const WORKTREE_TOOL_NAME = "worktree";
|
|
9
|
-
export const WORKTREE_TOOL_SCHEMA = {
|
|
10
|
-
type: "object",
|
|
11
|
-
properties: {
|
|
12
|
-
action: {
|
|
13
|
-
type: "string",
|
|
14
|
-
enum: ["enter", "exit", "list"],
|
|
15
|
-
description: "enter: Create and switch to an isolated git worktree branch.\n" +
|
|
16
|
-
"exit: Leave worktree (keep or remove it).\n" +
|
|
17
|
-
"list: Show all active worktrees.",
|
|
18
|
-
},
|
|
19
|
-
name: {
|
|
20
|
-
type: "string",
|
|
21
|
-
description: "Worktree/branch name (for enter). Must be kebab-case, max 64 characters. " +
|
|
22
|
-
"If omitted, auto-generated from task context.",
|
|
23
|
-
},
|
|
24
|
-
exitAction: {
|
|
25
|
-
type: "string",
|
|
26
|
-
enum: ["keep", "remove"],
|
|
27
|
-
description: "For exit: 'keep' retains the worktree for later use; 'remove' deletes it.",
|
|
28
|
-
},
|
|
29
|
-
discardChanges: {
|
|
30
|
-
type: "boolean",
|
|
31
|
-
description: "Required true to confirm discarding uncommitted changes when exitAction='remove'. " +
|
|
32
|
-
"Safety mechanism to prevent data loss.",
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
required: ["action"],
|
|
36
|
-
};
|
|
37
|
-
const NAME_PATTERN = /^[a-z0-9][a-z0-9-]{0,62}[a-z0-9]?$/;
|
|
38
|
-
export function createWorktreeTool(deps) {
|
|
39
|
-
return {
|
|
40
|
-
name: WORKTREE_TOOL_NAME,
|
|
41
|
-
label: "Git Worktree",
|
|
42
|
-
description: "Create isolated git worktree branches for parallel development. " +
|
|
43
|
-
"Each worktree has its own working directory independent of the main branch. " +
|
|
44
|
-
"Use for: parallel features, safe experimentation, sub-agent isolation. " +
|
|
45
|
-
"Exit to keep or remove the worktree when done.",
|
|
46
|
-
parameters: WORKTREE_TOOL_SCHEMA,
|
|
47
|
-
execute: async (_toolCallId, params) => {
|
|
48
|
-
switch (params.action) {
|
|
49
|
-
case "enter": {
|
|
50
|
-
if (deps.isInWorktree()) {
|
|
51
|
-
return {
|
|
52
|
-
content: [{ type: "text", text: "Error: already in a worktree. Exit first before entering another." }],
|
|
53
|
-
details: { type: "worktree", error: "already_in_worktree" },
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
if (params.name && !NAME_PATTERN.test(params.name)) {
|
|
57
|
-
return {
|
|
58
|
-
content: [{ type: "text", text: "Error: name must be kebab-case (a-z, 0-9, hyphens), 2-64 characters." }],
|
|
59
|
-
details: { type: "worktree", error: "invalid_name" },
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
const result = await deps.enterWorktree(params.name);
|
|
63
|
-
if (!result.success) {
|
|
64
|
-
return {
|
|
65
|
-
content: [{ type: "text", text: `Error: ${result.error || "failed to create worktree"}` }],
|
|
66
|
-
details: { type: "worktree", error: result.error },
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
const wt = result.worktree;
|
|
70
|
-
const lines = [
|
|
71
|
-
`Entered worktree: ${wt.name}`,
|
|
72
|
-
` Branch: ${wt.branch}`,
|
|
73
|
-
` Path: ${wt.path}`,
|
|
74
|
-
"",
|
|
75
|
-
"Working in isolated branch. Changes here do not affect the main branch.",
|
|
76
|
-
"Use action='exit' when done (keep or remove).",
|
|
77
|
-
];
|
|
78
|
-
return {
|
|
79
|
-
content: [{ type: "text", text: lines.join("\n") }],
|
|
80
|
-
details: { type: "worktree", action: "enter", name: wt.name, branch: wt.branch, path: wt.path },
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
case "exit": {
|
|
84
|
-
if (!deps.isInWorktree()) {
|
|
85
|
-
return {
|
|
86
|
-
content: [{ type: "text", text: "Error: not in a worktree." }],
|
|
87
|
-
details: { type: "worktree", error: "not_in_worktree" },
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
const exitAction = params.exitAction || "keep";
|
|
91
|
-
// Safety: require explicit discard confirmation for remove with changes
|
|
92
|
-
if (exitAction === "remove") {
|
|
93
|
-
const current = deps.currentWorktree?.();
|
|
94
|
-
if (current && (current.hasChanges || current.unpushedCommits > 0) && !params.discardChanges) {
|
|
95
|
-
const warnings = [];
|
|
96
|
-
if (current.hasChanges)
|
|
97
|
-
warnings.push("uncommitted changes");
|
|
98
|
-
if (current.unpushedCommits > 0)
|
|
99
|
-
warnings.push(`${current.unpushedCommits} unpushed commit(s)`);
|
|
100
|
-
return {
|
|
101
|
-
content: [{ type: "text", text: `Error: worktree has ${warnings.join(" and ")}. Set discardChanges=true to confirm removal, or use exitAction='keep'.` }],
|
|
102
|
-
details: { type: "worktree", error: "has_changes", hasChanges: current.hasChanges, unpushedCommits: current.unpushedCommits },
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
const result = await deps.exitWorktree(exitAction, params.discardChanges);
|
|
107
|
-
if (!result.success) {
|
|
108
|
-
return {
|
|
109
|
-
content: [{ type: "text", text: `Error: ${result.error || "failed to exit worktree"}` }],
|
|
110
|
-
details: { type: "worktree", error: result.error },
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
const action = exitAction === "keep" ? "Worktree kept for later use." : "Worktree removed.";
|
|
114
|
-
return {
|
|
115
|
-
content: [{ type: "text", text: `Exited worktree. ${action}\nRestored to: ${result.previousCwd || "main workspace"}` }],
|
|
116
|
-
details: { type: "worktree", action: "exit", exitAction, previousCwd: result.previousCwd },
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
case "list": {
|
|
120
|
-
const result = await deps.listWorktrees();
|
|
121
|
-
if (!result.worktrees || result.worktrees.length === 0) {
|
|
122
|
-
return {
|
|
123
|
-
content: [{ type: "text", text: "No worktrees (only the main working tree)." }],
|
|
124
|
-
details: { type: "worktree", action: "list", count: 0 },
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
const lines = [`Worktrees (${result.worktrees.length}):`, ""];
|
|
128
|
-
for (const wt of result.worktrees) {
|
|
129
|
-
const current = wt.isCurrent ? " ← current" : "";
|
|
130
|
-
const status = wt.hasChanges ? " (has changes)" : "";
|
|
131
|
-
lines.push(` ${wt.name} [${wt.branch}]${current}${status}`);
|
|
132
|
-
lines.push(` path: ${wt.path}`);
|
|
133
|
-
}
|
|
134
|
-
return {
|
|
135
|
-
content: [{ type: "text", text: lines.join("\n") }],
|
|
136
|
-
details: { type: "worktree", action: "list", count: result.worktrees.length },
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
default:
|
|
140
|
-
return {
|
|
141
|
-
content: [{ type: "text", text: `Error: unknown action "${params.action}".` }],
|
|
142
|
-
details: { type: "worktree", error: "unknown_action" },
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
},
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
//# sourceMappingURL=worktree-tool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-tool.js","sourceRoot":"","sources":["../../../src/skills/tools/worktree-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"write-tool.d.ts","sourceRoot":"","sources":["../../../src/skills/tools/write-tool.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAE5E,eAAO,MAAM,eAAe,EAAG,OAAgB,CAAC;AAEhD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAapB,CAAC;AAEX,0DAA0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,2CAA2C;IAC3C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC;;;;OAIG;IACH,oBAAoB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACnD;;;OAGG;IACH,YAAY,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3C;;;;OAIG;IACH,2BAA2B,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC3D;AAID,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,YAAY,CAAC,eAAe,CAAC,CAmElF"}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
// ============================================================
|
|
2
|
-
// File Write Tool — create/overwrite files.
|
|
3
|
-
// Reference: claude-code-haha/src/tools/FileWriteTool/FileWriteTool.ts
|
|
4
|
-
// Category: coding
|
|
5
|
-
// ============================================================
|
|
6
|
-
export const WRITE_TOOL_NAME = "write";
|
|
7
|
-
export const WRITE_TOOL_SCHEMA = {
|
|
8
|
-
type: "object",
|
|
9
|
-
properties: {
|
|
10
|
-
path: {
|
|
11
|
-
type: "string",
|
|
12
|
-
description: "Absolute path to the file to write.",
|
|
13
|
-
},
|
|
14
|
-
content: {
|
|
15
|
-
type: "string",
|
|
16
|
-
description: "Content to write to the file.",
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
required: ["path", "content"],
|
|
20
|
-
};
|
|
21
|
-
const MAX_WRITE_SIZE = 500_000; // 500KB safety limit
|
|
22
|
-
export function createWriteTool(deps) {
|
|
23
|
-
return {
|
|
24
|
-
name: WRITE_TOOL_NAME,
|
|
25
|
-
label: "Write File",
|
|
26
|
-
description: "Write content to a file. Creates the file if it doesn't exist, overwrites if it does. " +
|
|
27
|
-
"Automatically creates parent directories. " +
|
|
28
|
-
"Prefer edit/patch for modifying existing files (safer than full overwrite).",
|
|
29
|
-
parameters: WRITE_TOOL_SCHEMA,
|
|
30
|
-
execute: async (_toolCallId, params) => {
|
|
31
|
-
const resolved = deps.resolvePath(params.path);
|
|
32
|
-
// Validate path access
|
|
33
|
-
if (deps.validatePath) {
|
|
34
|
-
const blocked = deps.validatePath(resolved);
|
|
35
|
-
if (blocked) {
|
|
36
|
-
return {
|
|
37
|
-
content: [{ type: "text", text: `Access denied: ${blocked}` }],
|
|
38
|
-
details: { type: "write", path: resolved, error: "access_denied" },
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
// Large file protection
|
|
43
|
-
if (params.content.length > MAX_WRITE_SIZE) {
|
|
44
|
-
return {
|
|
45
|
-
content: [{
|
|
46
|
-
type: "text",
|
|
47
|
-
text: `Content too large (${params.content.length} chars, max ${MAX_WRITE_SIZE}). ` +
|
|
48
|
-
"Split into multiple writes or use a different approach.",
|
|
49
|
-
}],
|
|
50
|
-
details: { type: "write", path: resolved, error: "content_too_large" },
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
// First-read-then-write protection
|
|
54
|
-
if (deps.checkReadBeforeWrite) {
|
|
55
|
-
const warning = deps.checkReadBeforeWrite(resolved);
|
|
56
|
-
if (warning) {
|
|
57
|
-
return {
|
|
58
|
-
content: [{ type: "text", text: warning }],
|
|
59
|
-
details: { type: "write", path: resolved, error: "not_read_first" },
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
// Concurrent modification detection
|
|
64
|
-
if (deps.checkConcurrentModification) {
|
|
65
|
-
const conflict = deps.checkConcurrentModification(resolved);
|
|
66
|
-
if (conflict) {
|
|
67
|
-
return {
|
|
68
|
-
content: [{ type: "text", text: `Concurrent modification detected: ${conflict}. Re-read the file first.` }],
|
|
69
|
-
details: { type: "write", path: resolved, error: "concurrent_modification" },
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
await deps.writeFile(resolved, params.content);
|
|
74
|
-
const lineCount = params.content.split("\n").length;
|
|
75
|
-
return {
|
|
76
|
-
content: [{ type: "text", text: `Wrote ${lineCount} lines to ${resolved}` }],
|
|
77
|
-
details: { type: "write", path: resolved, lineCount },
|
|
78
|
-
};
|
|
79
|
-
},
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
//# sourceMappingURL=write-tool.js.map
|