codna 0.1.0__py3-none-any.whl
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.
- codna/__init__.py +8 -0
- codna/_wheel_guard.py +28 -0
- codna/admission_control.py +275 -0
- codna/agent-core/CLINE_FORK.md +55 -0
- codna/agent-core/CLINE_SDK_AZ_INTEGRATION_PLAN.md +191 -0
- codna/agent-core/CLINE_SDK_INTERFACE.md +655 -0
- codna/agent-core/CLINE_SDK_RESEARCH.md +104 -0
- codna/agent-core/package.json +12 -0
- codna/agent-core/run-server.mjs +87 -0
- codna/agent-core/run-server.stub.mjs +149 -0
- codna/agent-core/vendor/cline/.gitignore +3 -0
- codna/agent-core/vendor/cline/LICENSE +201 -0
- codna/agent-core/vendor/cline/NOTICE +24 -0
- codna/agent-core/vendor/cline/UPSTREAM_COMMIT.txt +1 -0
- codna/agent-core/vendor/cline/algenta/README.md +27 -0
- codna/agent-core/vendor/cline/algenta/acp-editor.ts +176 -0
- codna/agent-core/vendor/cline/algenta/adapter.ts +452 -0
- codna/agent-core/vendor/cline/algenta/algenta-plugin.ts +30 -0
- codna/agent-core/vendor/cline/algenta/artifacts.test.ts +133 -0
- codna/agent-core/vendor/cline/algenta/execution.test.ts +63 -0
- codna/agent-core/vendor/cline/algenta/fallback.test.ts +73 -0
- codna/agent-core/vendor/cline/algenta/fallback.ts +83 -0
- codna/agent-core/vendor/cline/algenta/fix-runner.ts +27 -0
- codna/agent-core/vendor/cline/algenta/http.test.ts +48 -0
- codna/agent-core/vendor/cline/algenta/mojo-gate.test.ts +76 -0
- codna/agent-core/vendor/cline/algenta/mojo-gate.ts +151 -0
- codna/agent-core/vendor/cline/algenta/policy.test.ts +260 -0
- codna/agent-core/vendor/cline/algenta/postbuild.sh +31 -0
- codna/agent-core/vendor/cline/algenta/proof-artifacts.test.ts +55 -0
- codna/agent-core/vendor/cline/algenta/proof-provider.ts +301 -0
- codna/agent-core/vendor/cline/algenta/proofs.ts +311 -0
- codna/agent-core/vendor/cline/algenta/provider-key.test.ts +197 -0
- codna/agent-core/vendor/cline/algenta/run-server.ts +645 -0
- codna/agent-core/vendor/cline/algenta/scheduled-agents.ts +430 -0
- codna/agent-core/vendor/cline/algenta/server/artifacts.ts +532 -0
- codna/agent-core/vendor/cline/algenta/server/contracts.ts +254 -0
- codna/agent-core/vendor/cline/algenta/server/execution.ts +284 -0
- codna/agent-core/vendor/cline/algenta/server/http.ts +146 -0
- codna/agent-core/vendor/cline/algenta/server/policy.ts +391 -0
- codna/agent-core/vendor/cline/algenta/server/state.ts +21 -0
- codna/agent-core/vendor/cline/algenta/server/utils.ts +508 -0
- codna/agent-core/vendor/cline/algenta/task-policy.ts +82 -0
- codna/agent-core/vendor/cline/algenta/telys-localize.test.ts +416 -0
- codna/agent-core/vendor/cline/algenta/telys-localize.ts +608 -0
- codna/agent-core/vendor/cline/algenta/telys-worker.test.ts +99 -0
- codna/agent-core/vendor/cline/algenta/telys-worker.ts +245 -0
- codna/agent-core/vendor/cline/algenta/tools.test.ts +59 -0
- codna/agent-core/vendor/cline/algenta/tools.ts +196 -0
- codna/agent-core/vendor/cline/algenta/write-scope.test.ts +26 -0
- codna/agent-core/vendor/cline/algenta/write-scope.ts +60 -0
- codna/agent-core/vendor/cline/biome.json +19 -0
- codna/agent-core/vendor/cline/bun.lock +1179 -0
- codna/agent-core/vendor/cline/package.json +60 -0
- codna/agent-core/vendor/cline/sdk/.cline/rules/worktree_dependency_hygiene.md +15 -0
- codna/agent-core/vendor/cline/sdk/.cline/skills/plugin.md +892 -0
- codna/agent-core/vendor/cline/sdk/.gitignore +69 -0
- codna/agent-core/vendor/cline/sdk/AGENTS.md +109 -0
- codna/agent-core/vendor/cline/sdk/ARCHITECTURE.md +525 -0
- codna/agent-core/vendor/cline/sdk/CHANGELOG.md +32 -0
- codna/agent-core/vendor/cline/sdk/CONTRIBUTING.md +196 -0
- codna/agent-core/vendor/cline/sdk/README.md +273 -0
- codna/agent-core/vendor/cline/sdk/biome.json +140 -0
- codna/agent-core/vendor/cline/sdk/examples/README.md +196 -0
- codna/agent-core/vendor/cline/sdk/examples/cron/README.md +419 -0
- codna/agent-core/vendor/cline/sdk/examples/cron/changelog-generator.cron.md +37 -0
- codna/agent-core/vendor/cline/sdk/examples/cron/code-style-audit.cron.md +47 -0
- codna/agent-core/vendor/cline/sdk/examples/cron/daily-code-review.cron.md +28 -0
- codna/agent-core/vendor/cline/sdk/examples/cron/dead-code-finder.cron.md +58 -0
- codna/agent-core/vendor/cline/sdk/examples/cron/dependency-check.cron.md +35 -0
- codna/agent-core/vendor/cline/sdk/examples/cron/documentation-check.cron.md +66 -0
- codna/agent-core/vendor/cline/sdk/examples/cron/events/local-manual-test.event.md +28 -0
- codna/agent-core/vendor/cline/sdk/examples/cron/events/local-plugin-event.event.md +20 -0
- codna/agent-core/vendor/cline/sdk/examples/cron/events/pr-changelog-check.event.md +42 -0
- codna/agent-core/vendor/cline/sdk/examples/cron/events/pr-review.event.md +32 -0
- codna/agent-core/vendor/cline/sdk/examples/cron/events/pr-test-coverage.event.md +55 -0
- codna/agent-core/vendor/cline/sdk/examples/cron/performance-baseline.cron.md +45 -0
- codna/agent-core/vendor/cline/sdk/examples/cron/test-coverage-report.cron.md +41 -0
- codna/agent-core/vendor/cline/sdk/examples/cron/type-check-strict.cron.md +44 -0
- codna/agent-core/vendor/cline/sdk/examples/cron/weekly-metrics-summary.cron.md +67 -0
- codna/agent-core/vendor/cline/sdk/examples/hooks/PostToolUse.py +62 -0
- codna/agent-core/vendor/cline/sdk/examples/hooks/PostToolUse.sh +17 -0
- codna/agent-core/vendor/cline/sdk/examples/hooks/PostToolUse.ts +86 -0
- codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse.py +34 -0
- codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse.sh +16 -0
- codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse.ts +66 -0
- codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse_BlockDestructive.sh +25 -0
- codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse_InjectContext.py +116 -0
- codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse_InjectFileContext.sh +57 -0
- codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse_ModifyInput.ts +125 -0
- codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse_RequireReview.sh +19 -0
- codna/agent-core/vendor/cline/sdk/examples/hooks/README.md +435 -0
- codna/agent-core/vendor/cline/sdk/examples/hooks/SessionShutdown.sh +14 -0
- codna/agent-core/vendor/cline/sdk/examples/hooks/TaskComplete.sh +27 -0
- codna/agent-core/vendor/cline/sdk/examples/hooks/TaskStart.sh +14 -0
- codna/agent-core/vendor/cline/sdk/examples/hooks/custom-compaction-hook.example.ts +246 -0
- codna/agent-core/vendor/cline/sdk/examples/package.json +19 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/README.md +203 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/README.md +122 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/agents/anvil.md +16 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/agents/inquisitor.md +18 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/agents/oracle.md +18 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/agents/phantom.md +17 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/index.ts +831 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/package.json +39 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/api-design.md +63 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/code-review.md +61 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/debugging.md +62 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/documentation.md +83 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/migration.md +77 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/refactoring.md +58 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/test-generation.md +76 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/tsconfig.json +4 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/automation-events.ts +91 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/background-terminal.ts +444 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/custom-compaction.ts +225 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/env-blocker.ts +118 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/gitignore-read-files-guard.ts +270 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/mac-notify.ts +67 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/openrouter-provider.ts +144 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/typescript-lsp/README.md +106 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/typescript-lsp/index.ts +298 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/weather-metrics.ts +151 -0
- codna/agent-core/vendor/cline/sdk/examples/plugins/web-search.ts +324 -0
- codna/agent-core/vendor/cline/sdk/examples/tsconfig.json +58 -0
- codna/agent-core/vendor/cline/sdk/packages/README.md +44 -0
- codna/agent-core/vendor/cline/sdk/packages/agents/README.md +278 -0
- codna/agent-core/vendor/cline/sdk/packages/agents/bun.mts +29 -0
- codna/agent-core/vendor/cline/sdk/packages/agents/package.json +45 -0
- codna/agent-core/vendor/cline/sdk/packages/agents/src/agent-runtime.provider-form.test.ts +210 -0
- codna/agent-core/vendor/cline/sdk/packages/agents/src/agent-runtime.test.ts +1427 -0
- codna/agent-core/vendor/cline/sdk/packages/agents/src/agent-runtime.ts +1558 -0
- codna/agent-core/vendor/cline/sdk/packages/agents/src/index.ts +57 -0
- codna/agent-core/vendor/cline/sdk/packages/agents/tsconfig.build.json +13 -0
- codna/agent-core/vendor/cline/sdk/packages/agents/tsconfig.dev.json +13 -0
- codna/agent-core/vendor/cline/sdk/packages/agents/tsconfig.json +9 -0
- codna/agent-core/vendor/cline/sdk/packages/agents/vitest.config.ts +10 -0
- codna/agent-core/vendor/cline/sdk/packages/core/README.md +110 -0
- codna/agent-core/vendor/cline/sdk/packages/core/bun.mts +75 -0
- codna/agent-core/vendor/cline/sdk/packages/core/docs/messages-contract-v1.md +148 -0
- codna/agent-core/vendor/cline/sdk/packages/core/fixtures/messages/success.messages.json +72 -0
- codna/agent-core/vendor/cline/sdk/packages/core/package.json +80 -0
- codna/agent-core/vendor/cline/sdk/packages/core/scripts/telemetry-smoke-host.ts +204 -0
- codna/agent-core/vendor/cline/sdk/packages/core/scripts/telemetry-smoke.ts +431 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/ClineCore.test.ts +607 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/ClineCore.ts +566 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/account/cline-account-service.test.ts +217 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/account/cline-account-service.ts +338 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/account/featurebase-token.test.ts +175 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/account/index.ts +24 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/account/rpc.test.ts +63 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/account/rpc.ts +185 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/account/types.ts +108 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/auth/bounded-ttl-cache.test.ts +38 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/auth/bounded-ttl-cache.ts +53 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/auth/client.test.ts +93 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/auth/client.ts +50 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/auth/cline.test.ts +233 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/auth/cline.ts +722 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/auth/codex.test.ts +170 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/auth/codex.ts +491 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/auth/oca.test.ts +340 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/auth/oca.ts +588 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/auth/server.test.ts +319 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/auth/server.ts +265 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/auth/types.ts +110 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/auth/utils.test.ts +128 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/auth/utils.ts +247 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cline-core/automation.ts +250 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cline-core/runtime-services.ts +75 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cline-core/start-input.ts +91 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cline-core/telemetry.ts +39 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cline-core/types.ts +274 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/events/cron-event-ingress.test.ts +255 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/events/cron-event-ingress.ts +357 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/events/index.ts +1 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/index.ts +7 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/reports/cron-report-writer.ts +153 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/reports/index.ts +1 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/runner/cron-materializer.test.ts +152 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/runner/cron-materializer.ts +100 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/runner/cron-runner.test.ts +342 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/runner/cron-runner.ts +547 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/runner/index.ts +3 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/runner/resource-limiter.ts +46 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/schedule/index.ts +1 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/schedule/scheduler.test.ts +16 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/schedule/scheduler.ts +373 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/service/cron-service.ts +163 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/service/index.ts +3 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/service/schedule-command-service.ts +198 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/service/schedule-service.test.ts +213 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/service/schedule-service.ts +416 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/cron-reconciler.test.ts +138 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/cron-reconciler.ts +241 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/cron-spec-parser.test.ts +198 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/cron-spec-parser.ts +489 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/cron-watcher.test.ts +87 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/cron-watcher.ts +102 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/index.ts +3 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/store/cron-schema.ts +127 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/store/index.ts +2 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/store/sqlite-cron-store.test.ts +354 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/cron/store/sqlite-cron-store.ts +1552 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/index.ts +46 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/runtime-commands.test.ts +185 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/runtime-commands.ts +92 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/skill-frontmatter-toggle.test.ts +109 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/skill-frontmatter-toggle.ts +83 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/unified-config-file-watcher.test.ts +193 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/unified-config-file-watcher.ts +496 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/user-instruction-config-loader.test.ts +424 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/user-instruction-config-loader.ts +628 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/user-instruction-plugin.ts +277 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/user-instruction-service.ts +128 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/context/agentic-compaction.ts +153 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/context/basic-compaction.ts +419 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/context/compaction-shared.ts +511 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/context/compaction.live.test.ts +346 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/context/compaction.test.ts +1729 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/context/compaction.ts +430 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/index.ts +19 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/client.ts +579 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/config-loader.test.ts +402 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/config-loader.ts +446 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/index.ts +57 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/manager.test.ts +105 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/manager.ts +260 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/name-transform.ts +33 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/oauth.test.ts +79 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/oauth.ts +401 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/policies.ts +47 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/tools.ts +47 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/types.ts +135 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-config-loader.test.ts +480 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-config-loader.ts +313 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-load-report.ts +20 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-loader.test.ts +473 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-loader.ts +214 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-module-import.ts +682 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-sandbox-bootstrap.ts +781 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-sandbox.test.ts +810 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-sandbox.ts +640 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-targeting.ts +32 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/constants.ts +37 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/definitions.test.ts +1408 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/definitions.ts +863 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/apply-patch-parser.ts +520 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/apply-patch.test.ts +147 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/apply-patch.ts +348 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/bash.test.ts +108 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/bash.ts +211 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/editor.test.ts +113 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/editor.ts +220 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/file-read.test.ts +167 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/file-read.ts +140 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/index.ts +87 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/search.ts +471 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/web-fetch.ts +259 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/helpers.ts +126 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/index.ts +183 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/model-tool-routing.test.ts +86 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/model-tool-routing.ts +134 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/presets.test.ts +72 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/presets.ts +190 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/runtime.test.ts +74 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/runtime.ts +261 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/schemas.ts +345 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/delegated-agent.ts +136 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/index.ts +5 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/multi-agent.lifecycle.test.ts +649 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/multi-agent.ts +1845 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/projections.ts +283 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/runtime.ts +54 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/spawn-agent-tool.test.ts +378 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/spawn-agent-tool.ts +203 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/subagent-prompts.ts +41 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/team-tools.test.ts +991 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/team-tools.ts +912 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/types.ts +358 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/checkpoint-hooks.test.ts +276 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/checkpoint-hooks.ts +291 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/hook-extension.ts +15 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/hook-file-config.test.ts +17 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/hook-file-config.ts +117 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/hook-file-hooks.test.ts +593 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/hook-file-hooks.ts +1140 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/index.ts +34 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/subprocess-runner.ts +196 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/subprocess.ts +543 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/connect.test.ts +74 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/connect.ts +187 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/index.test.ts +994 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/index.ts +1087 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/session-client.test.ts +310 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/session-client.ts +734 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/ui-client.ts +128 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/daemon/entry.ts +129 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/daemon/index.test.ts +357 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/daemon/index.ts +345 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/daemon/runtime-handlers.ts +144 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/daemon/start-shared-server.ts +61 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/discovery/defaults.test.ts +122 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/discovery/defaults.ts +70 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/discovery/index.test.ts +91 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/discovery/index.ts +260 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/discovery/workspace.ts +19 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/index.ts +37 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/runtime-host/hub-runtime-host.test.ts +1485 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/runtime-host/hub-runtime-host.ts +1948 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/runtime-host/remote-runtime-host.ts +27 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/boundary.test.ts +1142 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/browser-websocket.test.ts +173 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/browser-websocket.ts +295 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/command-transport.ts +14 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/fetch-wiring.test.ts +102 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/approval-handlers.ts +133 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/capability-handlers.ts +278 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/client-handlers.ts +86 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/context.ts +211 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/run-handlers.test.ts +186 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/run-handlers.ts +337 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/session-event-projector.ts +355 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/session-handlers.ts +842 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-capability-tool-executors.test.ts +215 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-client-contributions.ts +687 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-notifications.ts +94 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-schedule-events.ts +20 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-server-logging.ts +69 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-server-options.ts +66 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-server-transport.ts +593 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-session-records.ts +99 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-websocket-server.ts +562 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/index.test.ts +358 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/index.ts +4 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/native-transport.ts +31 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/notification.test.ts +21 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/ui-events.test.ts +232 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/hub/settings.test.ts +143 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/index.ts +789 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/remote-config/integration.ts +133 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/capabilities/index.ts +2 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/capabilities/normalize-runtime-capabilities.ts +33 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/capabilities/runtime-capabilities.ts +9 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/config/agent-message-codec.test.ts +171 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/config/agent-message-codec.ts +301 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/config/agent-runtime-config-builder.test.ts +268 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/config/agent-runtime-config-builder.ts +181 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/history.test.ts +573 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/history.ts +516 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/host.test.ts +297 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/host.ts +248 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local/agent-event-bridge.ts +231 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local/session-record.ts +52 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local/session-service-invoker.ts +40 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local/spawn-tool.ts +162 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local/user-files.ts +18 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local-runtime-host.e2e.test.ts +576 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local-runtime-host.test.ts +5167 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local-runtime-host.ts +1755 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/runtime-host-support.test.ts +55 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/runtime-host-support.ts +140 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/runtime-host.ts +323 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/index.ts +24 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-builder.team-persistence.test.ts +290 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-builder.test.ts +887 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-builder.ts +637 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-event-adapter.test.ts +901 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-event-adapter.ts +426 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-oauth-token-manager.test.ts +137 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-oauth-token-manager.ts +269 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-parity.test.ts +165 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/session-runtime-orchestrator.test.ts +1900 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/session-runtime-orchestrator.ts +1334 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/session-runtime.ts +73 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/user-input-builder.ts +159 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/safety/loop-detection.ts +162 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/safety/mistake-tracker.ts +221 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/safety/rules.test.ts +22 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/safety/rules.ts +49 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/tools/subprocess-sandbox.test.ts +81 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/tools/subprocess-sandbox.ts +333 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/tools/tool-approval.ts +102 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/turn-queue/pending-prompt-service.test.ts +168 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/turn-queue/pending-prompt-service.ts +381 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/agent-events.ts +321 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/config.ts +5 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/global-settings.test.ts +352 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/global-settings.ts +324 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/apihandler-agent-model-adapter.test.ts +229 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/apihandler-agent-model-adapter.ts +170 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/cline-recommended-models.ts +168 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/configured-provider-registry.ts +193 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/handler-factory.test.ts +288 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/handler-factory.ts +197 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/provider-defaults.test.ts +260 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/provider-defaults.ts +887 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/provider-settings.test.ts +26 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/provider-settings.ts +322 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/runtime-config.ts +43 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/runtime-registry.ts +172 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/runtime-types.ts +121 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/local-runtime-bootstrap.startup.test.ts +249 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/local-runtime-bootstrap.test.ts +543 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/local-runtime-bootstrap.ts +470 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/plugin-tools.ts +230 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/plugin-uninstall.test.ts +165 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/plugin-uninstall.ts +425 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/providers/local-provider-registry.ts +468 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/providers/local-provider-service.test.ts +1358 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/providers/local-provider-service.ts +948 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/providers/model-source.ts +105 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/providers/provider-config-fields.test.ts +137 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/providers/provider-config-fields.ts +211 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/session-artifacts.ts +138 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/session-data.test.ts +307 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/session-data.ts +405 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/session-telemetry.ts +89 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/artifact-store.ts +1 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/file-team-store.ts +250 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/index.ts +11 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/provider-settings-legacy-migration.test.ts +656 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/provider-settings-legacy-migration.ts +798 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/provider-settings-manager.test.ts +354 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/provider-settings-manager.ts +194 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/session-store.ts +1 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/sqlite-session-store.ts +272 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/sqlite-team-store.ts +537 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/team-store.ts +36 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/ITelemetryAdapter.ts +94 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/OpenTelemetryAdapter.test.ts +157 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/OpenTelemetryAdapter.ts +348 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/OpenTelemetryProvider.test.ts +401 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/OpenTelemetryProvider.ts +545 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/TelemetryLoggerSink.test.ts +42 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/TelemetryLoggerSink.ts +121 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/TelemetryService.test.ts +134 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/TelemetryService.ts +139 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/core-events.test.ts +696 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/core-events.ts +680 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/distinct-id.test.ts +57 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/distinct-id.ts +69 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/index.ts +22 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/tool-context.ts +15 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/usage.test.ts +75 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/usage.ts +87 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/file-indexer.test.ts +156 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/file-indexer.ts +362 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/index.ts +7 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/mention-enricher.test.ts +106 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/mention-enricher.ts +122 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/workspace-manager.ts +100 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/workspace-manifest.ts +129 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/workspace-telemetry.test.ts +166 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/workspace-telemetry.ts +70 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/checkpoint-restore.test.ts +154 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/checkpoint-restore.ts +189 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/index.ts +32 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/models/session-graph.ts +92 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/models/session-manifest.ts +29 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/models/session-row.ts +199 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/file-session-service.ts +284 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/message-builder.test.ts +375 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/message-builder.ts +976 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/persistence-service.test.ts +553 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/persistence-service.ts +582 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/session-service.team-persistence.test.ts +48 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/session-service.ts +326 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/session-snapshot.ts +208 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/session-versioning-service.test.ts +195 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/session-versioning-service.ts +245 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/stores/conversation-store.ts +77 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/stores/session-manifest-store.ts +160 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/stores/team-persistence-store.ts +176 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/team/index.ts +12 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/team/team-child-session-manager.ts +415 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/session/team/team-session-coordinator.ts +240 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/settings/index.ts +15 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/settings/settings-service.test.ts +303 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/settings/settings-service.ts +317 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/settings/types.ts +67 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/types/chat-schema.ts +90 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/types/common.ts +54 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/types/config.ts +220 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/types/events.ts +88 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/types/index.ts +26 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/types/provider-settings.ts +56 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/types/session.ts +134 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/types/sessions.ts +45 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/types/storage.ts +56 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/types.ts +184 -0
- codna/agent-core/vendor/cline/sdk/packages/core/src/version.ts +3 -0
- codna/agent-core/vendor/cline/sdk/packages/core/tsconfig.build.json +18 -0
- codna/agent-core/vendor/cline/sdk/packages/core/tsconfig.dev.json +8 -0
- codna/agent-core/vendor/cline/sdk/packages/core/tsconfig.json +24 -0
- codna/agent-core/vendor/cline/sdk/packages/core/tsconfig.smoke.json +18 -0
- codna/agent-core/vendor/cline/sdk/packages/core/vitest.config.ts +9 -0
- codna/agent-core/vendor/cline/sdk/packages/core/vitest.e2e.config.ts +10 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/AGENTS.md +39 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/README.md +227 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/bun.mts +49 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/fixtures/usage.json +308 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/package.json +73 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/scripts/fix-esm-imports.ts +109 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/scripts/generate-models.ts +136 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/scripts/models/generate-models-dev.ts +24 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/scripts/tsconfig.json +14 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/catalog/README.md +165 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/catalog/catalog-live.test.ts +275 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/catalog/catalog-live.ts +186 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/catalog/catalog.generated-access.ts +41 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/catalog/catalog.generated.ts +22756 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/catalog/types.ts +97 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/index.browser.ts +33 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/index.ts +74 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/models.ts +31 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/ai-sdk.test.ts +371 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/ai-sdk.ts +1012 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/async.ts +7 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/billing.test.ts +28 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/billing.ts +23 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/builtins-runtime.ts +101 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/builtins.test.ts +137 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/builtins.ts +1084 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/compat.test.ts +562 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/compat.ts +669 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/config.ts +429 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/factory-registry.ts +161 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/format.test.ts +43 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/format.ts +70 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/gateway.test.ts +3575 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/gateway.ts +310 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/handler.ts +91 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/http.ts +121 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/ids.test.ts +143 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/ids.ts +95 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/messages.ts +17 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/middleware/split-tool-images.test.ts +504 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/middleware/split-tool-images.ts +293 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/model-facts.ts +270 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/model-registry.ts +122 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/openai-codex-models.ts +35 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/provider-keys.ts +153 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/registry.ts +279 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/anthropic-compatible.test.ts +503 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/anthropic-compatible.ts +602 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/generic-compatible.ts +151 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/glm-thinking.ts +106 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/minimax-thinking.ts +78 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/provider-option-rules.ts +546 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/provider-options-types.ts +92 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/provider-options.test.ts +1872 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/provider-options.ts +119 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/reasoning-codecs.ts +40 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/utils.ts +47 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/stream.ts +117 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/types.ts +77 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/anthropic.test.ts +90 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/anthropic.ts +39 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/bedrock.test.ts +201 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/bedrock.ts +171 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/community.test.ts +55 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/community.ts +207 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/google.ts +61 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/minimax-thinking.test.ts +69 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/minimax-thinking.ts +104 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/mistral.ts +31 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/openai-compatible.ts +49 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/openai.ts +24 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/types.ts +141 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/vertex.test.ts +125 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/vertex.ts +56 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers.browser.ts +5 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/providers.ts +106 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/services/langfuse-telemetry.test.ts +90 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/services/langfuse-telemetry.ts +187 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/live-providers.example.json +254 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/live-providers.openai-codex.example.json +19 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/live-providers.openai-codex.reasoning.example.json +22 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/live-providers.reasoning-disabled.example.json +423 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/live-providers.reasoning.example.json +349 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/live-providers.tools.example.json +199 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live-config.test.ts +98 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live-config.ts +193 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live-minimax-routing.test.ts +264 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live-reasoning.test.ts +290 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live-runner.ts +47 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live-tools.test.ts +265 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live.test.ts +350 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-vcr/README.md +31 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-vcr/anthropic-claude-sonnet-4-6.json +12 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-vcr/cline-anthropic-sonnet.json +12 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-vcr/openai-codex-gpt-5-4.json +11 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-vcr/openai-compatible-deepseek-v4-pro.json +12 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-vcr.test.ts +450 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/tsconfig.build.json +19 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/tsconfig.dev.json +12 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/tsconfig.json +11 -0
- codna/agent-core/vendor/cline/sdk/packages/llms/vitest.config.ts +24 -0
- codna/agent-core/vendor/cline/sdk/packages/sdk/bun.mts +18 -0
- codna/agent-core/vendor/cline/sdk/packages/sdk/package.json +37 -0
- codna/agent-core/vendor/cline/sdk/packages/sdk/src/index.ts +1 -0
- codna/agent-core/vendor/cline/sdk/packages/sdk/tsconfig.build.json +12 -0
- codna/agent-core/vendor/cline/sdk/packages/sdk/tsconfig.json +11 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/README.md +47 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/bun.mts +70 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/package.json +63 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/agent.ts +561 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/agents/index.ts +1 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/agents/types.ts +1055 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/automation/index.ts +31 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/automation/schemas.ts +99 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/automation/types.ts +187 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/connectors/events.ts +73 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/connectors/options.ts +190 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/cron/cron-spec-types.ts +104 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/cron/index.ts +13 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/db/index.ts +14 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/db/sqlite-db.test.ts +155 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/db/sqlite-db.ts +381 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/dispose.ts +31 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/extensions/context.ts +92 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/extensions/contribution-registry.test.ts +156 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/extensions/contribution-registry.ts +524 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/extensions/plugin.ts +1 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/hooks/contracts.ts +9 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/hooks/events.ts +327 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/hub.ts +723 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/index.browser.ts +355 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/index.ts +405 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/ai-sdk-format.test.ts +898 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/ai-sdk-format.ts +389 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/gateway.ts +202 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/messages.ts +168 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/model-info.ts +94 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/reasoning-effort.ts +73 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/requests.ts +12 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/tokens.ts +12 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/tools.ts +96 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/logging/logger.ts +45 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/error.ts +18 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/headers/utils.ts +28 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/json.test.ts +14 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/json.ts +86 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/shell.test.ts +46 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/shell.ts +32 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/string.ts +29 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/time.ts +39 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/zod.ts +23 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/prompt/cline.ts +117 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/prompt/format.test.ts +39 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/prompt/format.ts +99 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/prompt/system.ts +64 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/artifact-store.ts +70 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/blob-storage.ts +416 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/bundle.ts +181 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/constants.ts +5 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/index.ts +9 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/materializer.ts +165 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/paths.ts +33 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/runtime.test.ts +102 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/runtime.ts +236 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/schema.test.ts +977 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/schema.ts +262 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/telemetry.ts +124 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/rpc/index.ts +5 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/rpc/runtime.ts +429 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/rpc/team-progress.ts +71 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/runtime/build-env.test.ts +115 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/runtime/build-env.ts +183 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/runtime/cline-environment.test.ts +106 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/runtime/cline-environment.ts +88 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/runtime/hub-daemon-env.test.ts +20 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/runtime/hub-daemon-env.ts +7 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/services/telemetry-config.ts +58 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/services/telemetry.test.ts +66 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/services/telemetry.ts +295 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/session/hook-context.ts +45 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/session/index.ts +6 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/session/records.ts +41 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/session/runtime-config.ts +69 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/session/runtime-env.ts +8 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/session/workspace.ts +45 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/storage/index.ts +47 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/storage/path-resolution.test.ts +63 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/storage/path-resolution.ts +114 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/storage/paths.home-dir.test.ts +61 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/storage/paths.test.ts +180 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/storage/paths.ts +588 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/team/index.ts +2 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/team/schema.ts +452 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/team/types.ts +235 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/tools/create.test.ts +201 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/tools/create.ts +130 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/types/auth.ts +41 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/types/index.ts +2 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/types/vcr.ts +14 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/vcr.test.ts +229 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/src/vcr.ts +900 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/tsconfig.build.json +7 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/tsconfig.json +9 -0
- codna/agent-core/vendor/cline/sdk/packages/shared/vitest.config.ts +9 -0
- codna/agent-core/vendor/cline/sdk/packages/tsconfig.base.json +22 -0
- codna/agent-core/vendor/cline/sdk/scripts/check-publish.ts +351 -0
- codna/agent-core/vendor/cline/sdk/scripts/ci-node-smoke.ts +155 -0
- codna/agent-core/vendor/cline/sdk/scripts/clean.ts +91 -0
- codna/agent-core/vendor/cline/sdk/scripts/release.ts +548 -0
- codna/agent-core/vendor/cline/sdk/scripts/run-vendored-tests.sh +44 -0
- codna/agent-core/vendor/cline/sdk/scripts/version.ts +120 -0
- codna/agent-core/vendor/cline/sdk/tsconfig.json +53 -0
- codna/agent_core_runtime.py +816 -0
- codna/cli.py +921 -0
- codna/cli_errors.py +50 -0
- codna/cline_agent.py +90 -0
- codna/codeunits.py +221 -0
- codna/codeunits_treesitter.py +148 -0
- codna/doctor.py +212 -0
- codna/doctor_output.py +61 -0
- codna/engine.py +149 -0
- codna/evasion.py +192 -0
- codna/evidence.py +163 -0
- codna/findings.py +272 -0
- codna/gate.py +132 -0
- codna/gitpush.py +57 -0
- codna/local_client.py +932 -0
- codna/local_mojo_daemon.py +568 -0
- codna/local_mojo_pool.py +861 -0
- codna/local_repository_shims.py +419 -0
- codna/local_runtime.py +650 -0
- codna/localfix.py +121 -0
- codna/manifest.py +164 -0
- codna/mcp_server.py +155 -0
- codna/memory.py +885 -0
- codna/netjail.py +68 -0
- codna/packaged_agent_runner.py +354 -0
- codna/packaged_git.py +378 -0
- codna/packaged_repository_advanced.py +618 -0
- codna/packaged_repository_backend.py +887 -0
- codna/patchgen.py +115 -0
- codna/policy.py +85 -0
- codna/refengine.py +132 -0
- codna/repo_backend.py +78 -0
- codna/repository_artifacts.py +291 -0
- codna/runtime/__init__.py +17 -0
- codna/runtime/config.py +394 -0
- codna/runtime/health.py +130 -0
- codna/runtime/local_stack.py +978 -0
- codna/runtime/ports.py +137 -0
- codna/runtime/processes.py +199 -0
- codna/runtime_config.py +94 -0
- codna/sandbox.py +111 -0
- codna/sarif.py +610 -0
- codna/secure.py +250 -0
- codna/supervisor.py +108 -0
- codna/worker.py +161 -0
- codna/worktree.py +73 -0
- codna/writer.py +169 -0
- codna-0.1.0.dist-info/METADATA +153 -0
- codna-0.1.0.dist-info/RECORD +761 -0
- codna-0.1.0.dist-info/WHEEL +5 -0
- codna-0.1.0.dist-info/entry_points.txt +2 -0
- codna-0.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,892 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cline-plugin
|
|
3
|
+
description: Self-contained guide to designing, building, packaging, and distributing a plugin for any Cline-based agent (CLI, VS Code, Kanban, JetBrains, custom SDK hosts). Covers both single-file plugins and full plugin packages.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Authoring a Cline Agent Plugin
|
|
7
|
+
|
|
8
|
+
A **Cline plugin** is a TypeScript module that extends any agent built on the Cline Core SDK. The same plugin runs in the Cline CLI, the VS Code and JetBrains extensions, the Kanban host, and any custom app built on `@cline/core` — write it once, every host gets the new behavior.
|
|
9
|
+
|
|
10
|
+
A plugin can:
|
|
11
|
+
|
|
12
|
+
- **Register tools** the model can call (the most common use).
|
|
13
|
+
- **Hook into the agent loop** before/after runs, model calls, and tool calls.
|
|
14
|
+
- **Rewrite provider messages** before they hit the model (custom compaction, redaction, context shaping).
|
|
15
|
+
- **Register slash commands**, **prompt rules**, **providers**, and **automation event types**.
|
|
16
|
+
|
|
17
|
+
A plugin ships in one of two shapes:
|
|
18
|
+
|
|
19
|
+
1. **Single-file plugin** — one `.ts` file that exports a default plugin object. Drop it in a discovery folder and it's loaded.
|
|
20
|
+
2. **Plugin package** — a directory with `package.json`, npm dependencies, and (optionally) bundled assets like markdown templates. Installable via `cline plugin install`.
|
|
21
|
+
|
|
22
|
+
Both shapes use the same plugin API. The package form just adds dependency management and asset bundling.
|
|
23
|
+
|
|
24
|
+
This guide is self-contained. By the end of it, you'll be able to build either kind from scratch.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 1. The mental model
|
|
29
|
+
|
|
30
|
+
When the host starts a session, it builds a registry of plugins and runs four phases:
|
|
31
|
+
|
|
32
|
+
1. **resolve** — collect the plugin objects.
|
|
33
|
+
2. **validate** — check each plugin's `manifest`. Capabilities must be non-empty; declared hook stages must have matching handlers; if `hooks` is present, `"hooks"` must be in `capabilities`.
|
|
34
|
+
3. **setup** — call each plugin's `setup(api, ctx)` once. This is where you `registerTool`, `registerCommand`, etc.
|
|
35
|
+
4. **activate** — registry is frozen, the agent loop starts, and your hooks/tools are live.
|
|
36
|
+
|
|
37
|
+
Two invariants the registry enforces:
|
|
38
|
+
|
|
39
|
+
- **Every contribution requires a matching capability.** Calling `api.registerRule(...)` without `"rules"` in `manifest.capabilities` throws.
|
|
40
|
+
- **Capabilities and handlers must agree.** Declaring `"hooks"` without a `hooks` object, or vice versa, fails validation.
|
|
41
|
+
|
|
42
|
+
After validation, registration is one-shot — there's no dynamic register/unregister during the session.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 2. The smallest working plugin
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
import type { AgentPlugin } from "@cline/core";
|
|
50
|
+
import { createTool } from "@cline/core";
|
|
51
|
+
|
|
52
|
+
const plugin: AgentPlugin = {
|
|
53
|
+
name: "hello-plugin", // required, unique within a session
|
|
54
|
+
manifest: {
|
|
55
|
+
capabilities: ["tools"], // declares what setup() will register
|
|
56
|
+
},
|
|
57
|
+
setup(api, ctx) {
|
|
58
|
+
api.registerTool(
|
|
59
|
+
createTool({
|
|
60
|
+
name: "say_hello",
|
|
61
|
+
description: "Greet a person by name.",
|
|
62
|
+
inputSchema: {
|
|
63
|
+
type: "object",
|
|
64
|
+
properties: { name: { type: "string" } },
|
|
65
|
+
required: ["name"],
|
|
66
|
+
},
|
|
67
|
+
async execute({ name }: { name: string }) {
|
|
68
|
+
return { greeting: `Hello, ${name}!` };
|
|
69
|
+
},
|
|
70
|
+
}),
|
|
71
|
+
);
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export default plugin;
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
That's a complete plugin. The agent will see `say_hello` as a callable tool.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 3. The manifest
|
|
83
|
+
|
|
84
|
+
```ts
|
|
85
|
+
manifest: {
|
|
86
|
+
capabilities: ["tools", "hooks"], // required — non-empty array
|
|
87
|
+
paths?: string[], // optional — multi-entry packages
|
|
88
|
+
providerIds?: string[], // optional — provider plugins
|
|
89
|
+
modelIds?: string[], // optional — model plugins
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
| Field | When to use |
|
|
94
|
+
| -------------- | ------------------------------------------------------------------------------------------------------- |
|
|
95
|
+
| `capabilities` | Always. Lists what the plugin contributes; gates the corresponding `api.register*` methods. |
|
|
96
|
+
| `paths` | Only inside a `package.json` `cline.plugins` entry — when one package exposes multiple plugin entry points. |
|
|
97
|
+
| `providerIds` | When `capabilities` includes `"providers"` — declares which provider IDs you register. |
|
|
98
|
+
| `modelIds` | When you contribute models tied to specific IDs. |
|
|
99
|
+
|
|
100
|
+
### The complete capability list
|
|
101
|
+
|
|
102
|
+
| Capability | What it unlocks in `api` |
|
|
103
|
+
| ------------------ | --------------------------------------------------------------------- |
|
|
104
|
+
| `tools` | `api.registerTool()` |
|
|
105
|
+
| `commands` | `api.registerCommand()` (slash commands in chat surfaces) |
|
|
106
|
+
| `rules` | `api.registerRule()` (string injected into the system prompt) |
|
|
107
|
+
| `messageBuilders` | `api.registerMessageBuilder()` (rewrites provider-bound messages) |
|
|
108
|
+
| `providers` | `api.registerProvider()` (e.g. a custom model provider) |
|
|
109
|
+
| `automationEvents` | `api.registerAutomationEventType()` and `ctx.automation?.ingestEvent()` |
|
|
110
|
+
| `hooks` | The runtime `hooks` object on the plugin (lifecycle callbacks) |
|
|
111
|
+
|
|
112
|
+
You declare any combination — most real plugins need 1–3 capabilities.
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## 4. `setup(api, ctx)` — the registration phase
|
|
117
|
+
|
|
118
|
+
`setup()` runs **once per session** before the agent loop starts. Everything you register here is frozen for the lifetime of the session.
|
|
119
|
+
|
|
120
|
+
### 4.1 The `api` object
|
|
121
|
+
|
|
122
|
+
Each `register*` method requires the matching capability in your manifest:
|
|
123
|
+
|
|
124
|
+
```ts
|
|
125
|
+
api.registerTool(tool); // requires "tools"
|
|
126
|
+
api.registerCommand({ name, description, handler }); // requires "commands"
|
|
127
|
+
api.registerRule({ id, content, source }); // requires "rules"
|
|
128
|
+
api.registerMessageBuilder({ name, build }); // requires "messageBuilders"
|
|
129
|
+
api.registerProvider({ name, description }); // requires "providers"
|
|
130
|
+
api.registerAutomationEventType({ eventType, source, /* ... */ }); // requires "automationEvents"
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### 4.2 The `ctx` object — host-provided session context
|
|
134
|
+
|
|
135
|
+
The second argument carries everything the host knows about the current session. **All fields are optional**, so feature-detect before using them — the same plugin must work in hosts that supply less context (unit tests, sandboxed plugin processes).
|
|
136
|
+
|
|
137
|
+
```ts
|
|
138
|
+
ctx.session?.sessionId // string — stable core session id
|
|
139
|
+
ctx.client?.name // host: "cline-cli", "cline-vscode", etc.
|
|
140
|
+
ctx.user // authenticated user/org info, when available
|
|
141
|
+
ctx.workspaceInfo // { rootPath, hint, latestGitBranchName,
|
|
142
|
+
// latestGitCommitHash, associatedRemoteUrls }
|
|
143
|
+
ctx.automation?.ingestEvent // emit normalized automation events
|
|
144
|
+
ctx.logger?.log // structured logger scoped to this plugin
|
|
145
|
+
ctx.telemetry // ITelemetryService — only present in-process
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**Two big rules about `ctx.workspaceInfo`:**
|
|
149
|
+
|
|
150
|
+
1. **Always prefer `ctx.workspaceInfo?.rootPath` over `process.cwd()`.** The CLI may have been launched with `--cwd` without calling `chdir`, and VS Code workspaces don't share a single CWD. `workspaceInfo` is sourced from the session config and is always correct.
|
|
151
|
+
2. **Don't use `import.meta.url` tricks to find "the workspace".** That gives you the plugin's own location, not the user's project.
|
|
152
|
+
|
|
153
|
+
### 4.3 Persisting state across hooks
|
|
154
|
+
|
|
155
|
+
`setup()` runs first; hooks fire later. The simplest way to share state is module-level variables in your plugin file:
|
|
156
|
+
|
|
157
|
+
```ts
|
|
158
|
+
let sessionWorkspaceRoot: string | undefined;
|
|
159
|
+
let sessionBranch: string | undefined;
|
|
160
|
+
|
|
161
|
+
const plugin: AgentPlugin = {
|
|
162
|
+
name: "metrics",
|
|
163
|
+
manifest: { capabilities: ["hooks"] },
|
|
164
|
+
setup(api, ctx) {
|
|
165
|
+
sessionWorkspaceRoot = ctx.workspaceInfo?.rootPath;
|
|
166
|
+
sessionBranch = ctx.workspaceInfo?.latestGitBranchName;
|
|
167
|
+
},
|
|
168
|
+
hooks: {
|
|
169
|
+
beforeTool({ toolCall, input }) {
|
|
170
|
+
if (sessionBranch === "main" && toolCall.toolName === "run_commands") {
|
|
171
|
+
// Inspect input, optionally block.
|
|
172
|
+
}
|
|
173
|
+
return undefined;
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
};
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
A single Node process may host multiple sessions concurrently. If your plugin will run in a multi-session host, key your state by `ctx.session?.sessionId` instead of using module-level singletons:
|
|
180
|
+
|
|
181
|
+
```ts
|
|
182
|
+
const stateBySession = new Map<string, MyState>();
|
|
183
|
+
setup(api, ctx) {
|
|
184
|
+
const id = ctx.session?.sessionId;
|
|
185
|
+
if (id) stateBySession.set(id, /* ... */);
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## 5. Tools — `api.registerTool`
|
|
192
|
+
|
|
193
|
+
Tools are how plugins give the agent new capabilities. Use the `createTool()` helper from `@cline/core`:
|
|
194
|
+
|
|
195
|
+
```ts
|
|
196
|
+
import { createTool } from "@cline/core";
|
|
197
|
+
|
|
198
|
+
api.registerTool(
|
|
199
|
+
createTool({
|
|
200
|
+
name: "get_weather", // visible to the model
|
|
201
|
+
description: "Get current weather for a city.",
|
|
202
|
+
inputSchema: {
|
|
203
|
+
type: "object",
|
|
204
|
+
properties: {
|
|
205
|
+
city: { type: "string", description: "The city name" },
|
|
206
|
+
},
|
|
207
|
+
required: ["city"],
|
|
208
|
+
},
|
|
209
|
+
async execute(input, context) {
|
|
210
|
+
const { city } = input as { city: string };
|
|
211
|
+
// context.sessionId, context.conversationId, context.cwd are available
|
|
212
|
+
return { city, temperature: "72°F", condition: "sunny" };
|
|
213
|
+
},
|
|
214
|
+
}),
|
|
215
|
+
);
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Guidelines for good tools:
|
|
219
|
+
|
|
220
|
+
- **Names are snake_case verbs** — `goto_definition`, `start_background_command`.
|
|
221
|
+
- **Descriptions are written for the model**, not for humans. Include when to use the tool, what inputs mean, and what the output looks like.
|
|
222
|
+
- **Inputs are JSON Schema.** Mark `required` fields explicitly. Constrain enums where possible.
|
|
223
|
+
- **Return JSON-serializable values** — strings, numbers, plain objects, arrays. The host serializes results before passing them back to the model.
|
|
224
|
+
- **Throw on invalid input or hard failure.** The runtime turns thrown errors into tool error results the model can recover from.
|
|
225
|
+
- **Keep tools focused.** A `start / get / delete` triplet of small tools beats one mega-tool with a `mode` enum.
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## 6. Runtime hooks — `hooks: { ... }`
|
|
230
|
+
|
|
231
|
+
Runtime hooks are typed in-process callbacks on the same hook layer the runtime uses internally. They run inside the agent loop with full type information — no IPC, no JSON marshaling.
|
|
232
|
+
|
|
233
|
+
Declare `"hooks"` in `manifest.capabilities`, then add a `hooks` property:
|
|
234
|
+
|
|
235
|
+
```ts
|
|
236
|
+
const plugin: AgentPlugin = {
|
|
237
|
+
name: "metrics",
|
|
238
|
+
manifest: { capabilities: ["hooks"] },
|
|
239
|
+
hooks: {
|
|
240
|
+
beforeRun(ctx) { /* ... */ },
|
|
241
|
+
beforeTool({ toolCall, input }) { /* ... */ },
|
|
242
|
+
afterTool({ toolCall, result }) { /* ... */ },
|
|
243
|
+
afterRun({ result }) { /* ... */ },
|
|
244
|
+
onEvent(event) { /* ... */ },
|
|
245
|
+
},
|
|
246
|
+
};
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### 6.1 The seven hooks
|
|
250
|
+
|
|
251
|
+
| Hook | Fires | Can stop the loop? | Common uses |
|
|
252
|
+
| ------------- | ---------------------------------------------------------- | ------------------ | ------------------------------------------------------ |
|
|
253
|
+
| `beforeRun` | Before the runtime loop starts (one user turn) | Yes | Greet, log, attach session metadata |
|
|
254
|
+
| `afterRun` | After the runtime loop finishes (success, abort, or fail) | No | Notifications, metrics, persistent logs |
|
|
255
|
+
| `beforeModel` | Before each model request | Yes (mutate req) | Inject context, last-mile prompt edits |
|
|
256
|
+
| `afterModel` | After each model response, before tool execution | Yes | Block based on model output |
|
|
257
|
+
| `beforeTool` | Before each tool execution | Yes (`{ stop }`) | Audit, redact, block dangerous tools |
|
|
258
|
+
| `afterTool` | After each tool execution | Can replace result | Post-process, redact secrets in tool output |
|
|
259
|
+
| `onEvent` | On every `AgentRuntimeEvent` emitted by the runtime | No | Streaming UIs, telemetry pipes |
|
|
260
|
+
|
|
261
|
+
### 6.2 Stopping the loop from a hook
|
|
262
|
+
|
|
263
|
+
Several hooks return an optional control object. The most common pattern is `beforeTool` blocking a destructive tool call:
|
|
264
|
+
|
|
265
|
+
```ts
|
|
266
|
+
beforeTool({ toolCall, input }) {
|
|
267
|
+
if (toolCall.toolName === "run_commands") {
|
|
268
|
+
const { commands } = input as { commands?: string[] };
|
|
269
|
+
if (sessionBranch === "main" && commands?.some(c => c.startsWith("git push"))) {
|
|
270
|
+
return { stop: true, reason: "Blocked git push on protected branch" };
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
return undefined; // explicit "continue"
|
|
274
|
+
}
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
Returning `undefined` (or omitting `return`) lets execution continue normally.
|
|
278
|
+
|
|
279
|
+
### 6.3 `afterRun` semantics
|
|
280
|
+
|
|
281
|
+
`afterRun` fires for **every** terminal status — `completed`, `aborted`, `failed`. If you only want to act on success:
|
|
282
|
+
|
|
283
|
+
```ts
|
|
284
|
+
afterRun({ result }) {
|
|
285
|
+
if (result.status !== "completed") return;
|
|
286
|
+
// notify, log success metrics, etc.
|
|
287
|
+
}
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
### 6.4 Plugin hooks vs file hooks
|
|
291
|
+
|
|
292
|
+
The runtime supports two hook systems:
|
|
293
|
+
|
|
294
|
+
- **File hooks** — external scripts in `.cline/hooks/` invoked with serialized JSON. Right for user/workspace-specific scripts that don't ship with code.
|
|
295
|
+
- **Plugin runtime hooks** — typed in-process callbacks. Right when the behavior belongs to a reusable extension and needs typed access to the runtime.
|
|
296
|
+
|
|
297
|
+
Core adapts file hooks onto the runtime hook layer, so you don't need both. If you're shipping a plugin, write it as runtime hooks.
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## 7. Message builders — `api.registerMessageBuilder`
|
|
302
|
+
|
|
303
|
+
Message builders rewrite the **provider-bound message list** before the model call. They run after runtime messages are converted into SDK message blocks but **before** core's built-in safety builder, which always has the final say on provider-safe truncation.
|
|
304
|
+
|
|
305
|
+
Use them for:
|
|
306
|
+
|
|
307
|
+
- Custom compaction policies (replace middle history with a summary).
|
|
308
|
+
- Redacting PII or secrets before they reach the provider.
|
|
309
|
+
- Reshaping context for a specific model's strengths.
|
|
310
|
+
|
|
311
|
+
```ts
|
|
312
|
+
api.registerMessageBuilder({
|
|
313
|
+
name: "summarize-middle-history",
|
|
314
|
+
build(messages) {
|
|
315
|
+
if (estimateTokens(messages) < THRESHOLD) return messages;
|
|
316
|
+
return [...prefix, summary, ...recent];
|
|
317
|
+
},
|
|
318
|
+
});
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
Multiple builders run in registration order; the output of one is the input of the next.
|
|
322
|
+
|
|
323
|
+
**When to use `beforeModel` instead.** Reach for the `beforeModel` hook only if you need the runtime snapshot or want to mutate the request object itself. Pure message rewrites belong in a builder.
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## 8. Automation events — `api.registerAutomationEventType` + `ctx.automation`
|
|
328
|
+
|
|
329
|
+
Plugins can declare normalized event types and emit them into Cline automation. Hosts that don't have automation enabled simply ignore both — your plugin should feature-detect `ctx.automation`.
|
|
330
|
+
|
|
331
|
+
```ts
|
|
332
|
+
manifest: { capabilities: ["automationEvents"] },
|
|
333
|
+
|
|
334
|
+
setup(api, ctx) {
|
|
335
|
+
api.registerAutomationEventType({
|
|
336
|
+
eventType: "github.pull_request.opened",
|
|
337
|
+
source: "github",
|
|
338
|
+
description: "A new GitHub PR was opened",
|
|
339
|
+
attributesSchema: { /* JSON Schema for envelope.attributes */ },
|
|
340
|
+
});
|
|
341
|
+
|
|
342
|
+
if (!ctx.automation) return; // host has no automation
|
|
343
|
+
ctx.automation.ingestEvent({
|
|
344
|
+
eventId: "pr-1234",
|
|
345
|
+
eventType: "github.pull_request.opened",
|
|
346
|
+
source: "github",
|
|
347
|
+
subject: "owner/repo#1234",
|
|
348
|
+
occurredAt: new Date().toISOString(),
|
|
349
|
+
attributes: { /* ... */ },
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## 9. Loading a plugin
|
|
357
|
+
|
|
358
|
+
There are three ways a plugin gets into a session:
|
|
359
|
+
|
|
360
|
+
### 9.1 Auto-discovery (CLI)
|
|
361
|
+
|
|
362
|
+
The CLI scans these directories on startup:
|
|
363
|
+
|
|
364
|
+
- `<workspace>/.cline/plugins/` — project-scoped plugins (committed or gitignored).
|
|
365
|
+
- `~/.cline/plugins/` — user-scoped plugins.
|
|
366
|
+
- The system "Plugins" folder — host-managed installs.
|
|
367
|
+
|
|
368
|
+
Drop a `.ts` or `.js` file in, run `cline`, done:
|
|
369
|
+
|
|
370
|
+
```bash
|
|
371
|
+
mkdir -p .cline/plugins
|
|
372
|
+
cp my-plugin.ts .cline/plugins/
|
|
373
|
+
cline -i "do the thing my plugin enables"
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
### 9.2 Explicit `extensions: [...]` in SDK config
|
|
377
|
+
|
|
378
|
+
When you build your own host with `ClineCore`, pass the plugin object directly:
|
|
379
|
+
|
|
380
|
+
```ts
|
|
381
|
+
import plugin from "./my-plugin";
|
|
382
|
+
import { ClineCore } from "@cline/core";
|
|
383
|
+
|
|
384
|
+
const host = await ClineCore.create({ backendMode: "local" });
|
|
385
|
+
await host.start({
|
|
386
|
+
config: {
|
|
387
|
+
providerId: "anthropic",
|
|
388
|
+
modelId: "claude-sonnet-4-6",
|
|
389
|
+
apiKey: process.env.ANTHROPIC_API_KEY ?? "",
|
|
390
|
+
cwd: process.cwd(),
|
|
391
|
+
enableTools: true,
|
|
392
|
+
systemPrompt: "You are a helpful assistant.",
|
|
393
|
+
extensions: [plugin],
|
|
394
|
+
// Required for ctx.workspaceInfo to be populated:
|
|
395
|
+
extensionContext: {
|
|
396
|
+
workspace: { rootPath: process.cwd(), cwd: process.cwd() },
|
|
397
|
+
},
|
|
398
|
+
},
|
|
399
|
+
prompt: "...",
|
|
400
|
+
interactive: false,
|
|
401
|
+
});
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
### 9.3 `pluginPaths: [...]` for directory-based plugins
|
|
405
|
+
|
|
406
|
+
When the plugin is a directory with `package.json`, point `pluginPaths` at the directory. The loader reads `package.json` and finds entry points from the `cline.plugins` field:
|
|
407
|
+
|
|
408
|
+
```ts
|
|
409
|
+
config: {
|
|
410
|
+
// ...
|
|
411
|
+
pluginPaths: ["./path/to/my-plugin-package"],
|
|
412
|
+
}
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
Or install one with the CLI:
|
|
416
|
+
|
|
417
|
+
```bash
|
|
418
|
+
cline plugin install ./path/to/my-plugin-package
|
|
419
|
+
cline plugin install @scope/my-cline-plugin # from npm
|
|
420
|
+
cline plugin install --git github.com/owner/repo # from git
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
|
|
425
|
+
## 10. Single-file plugin — full template
|
|
426
|
+
|
|
427
|
+
This is the full shape for a single-file plugin. Save as `my-plugin.ts`, drop in `.cline/plugins/`.
|
|
428
|
+
|
|
429
|
+
```ts
|
|
430
|
+
/**
|
|
431
|
+
* My Cline Plugin
|
|
432
|
+
*
|
|
433
|
+
* What it does: <one paragraph, written for users>.
|
|
434
|
+
*
|
|
435
|
+
* CLI usage:
|
|
436
|
+
* mkdir -p .cline/plugins
|
|
437
|
+
* cp my-plugin.ts .cline/plugins/
|
|
438
|
+
* cline -i "trigger something the plugin enables"
|
|
439
|
+
*
|
|
440
|
+
* Direct demo:
|
|
441
|
+
* ANTHROPIC_API_KEY=sk-... bun run my-plugin.ts
|
|
442
|
+
*/
|
|
443
|
+
|
|
444
|
+
import { type AgentPlugin, ClineCore, createTool } from "@cline/core";
|
|
445
|
+
|
|
446
|
+
let sessionRoot: string | undefined;
|
|
447
|
+
|
|
448
|
+
const plugin: AgentPlugin = {
|
|
449
|
+
name: "my-plugin",
|
|
450
|
+
manifest: {
|
|
451
|
+
capabilities: ["tools", "hooks"],
|
|
452
|
+
},
|
|
453
|
+
|
|
454
|
+
setup(api, ctx) {
|
|
455
|
+
sessionRoot = ctx.workspaceInfo?.rootPath;
|
|
456
|
+
|
|
457
|
+
api.registerTool(
|
|
458
|
+
createTool({
|
|
459
|
+
name: "do_thing",
|
|
460
|
+
description: "Do the thing this plugin exists for.",
|
|
461
|
+
inputSchema: {
|
|
462
|
+
type: "object",
|
|
463
|
+
properties: { target: { type: "string" } },
|
|
464
|
+
required: ["target"],
|
|
465
|
+
},
|
|
466
|
+
async execute(input) {
|
|
467
|
+
const { target } = input as { target: string };
|
|
468
|
+
return { ok: true, target, root: sessionRoot };
|
|
469
|
+
},
|
|
470
|
+
}),
|
|
471
|
+
);
|
|
472
|
+
},
|
|
473
|
+
|
|
474
|
+
hooks: {
|
|
475
|
+
beforeRun() {
|
|
476
|
+
console.log("[my-plugin] run started");
|
|
477
|
+
},
|
|
478
|
+
afterRun({ result }) {
|
|
479
|
+
if (result.status !== "completed") return;
|
|
480
|
+
console.log(`[my-plugin] done in ${result.iterations} iteration(s)`);
|
|
481
|
+
},
|
|
482
|
+
},
|
|
483
|
+
};
|
|
484
|
+
|
|
485
|
+
// Optional: a runnable demo so users can `bun run` this file directly.
|
|
486
|
+
async function runDemo(): Promise<void> {
|
|
487
|
+
const host = await ClineCore.create({ backendMode: "local" });
|
|
488
|
+
try {
|
|
489
|
+
const result = await host.start({
|
|
490
|
+
config: {
|
|
491
|
+
providerId: "anthropic",
|
|
492
|
+
modelId: "claude-sonnet-4-6",
|
|
493
|
+
apiKey: process.env.ANTHROPIC_API_KEY ?? "",
|
|
494
|
+
cwd: process.cwd(),
|
|
495
|
+
enableTools: true,
|
|
496
|
+
systemPrompt: "You are a helpful assistant. Use tools when needed.",
|
|
497
|
+
extensions: [plugin],
|
|
498
|
+
extensionContext: {
|
|
499
|
+
workspace: { rootPath: process.cwd(), cwd: process.cwd() },
|
|
500
|
+
},
|
|
501
|
+
},
|
|
502
|
+
prompt: "Use do_thing on the target 'world'.",
|
|
503
|
+
interactive: false,
|
|
504
|
+
});
|
|
505
|
+
console.log(result.result?.text ?? "");
|
|
506
|
+
} finally {
|
|
507
|
+
await host.dispose();
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
if (import.meta.main) {
|
|
512
|
+
await runDemo();
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
export { plugin, runDemo };
|
|
516
|
+
export default plugin;
|
|
517
|
+
```
|
|
518
|
+
|
|
519
|
+
That's the entire shape. Copy it, rename the tool, swap in your logic.
|
|
520
|
+
|
|
521
|
+
---
|
|
522
|
+
|
|
523
|
+
## 11. Plugin package — full walkthrough
|
|
524
|
+
|
|
525
|
+
A **plugin package** is a directory with a `package.json`. Use it when you need any of:
|
|
526
|
+
|
|
527
|
+
- npm dependencies (`zod`, `yaml`, `typescript`, etc.)
|
|
528
|
+
- multiple plugin entry points from one package
|
|
529
|
+
- bundled assets (markdown templates, agent definitions, schemas, fixtures)
|
|
530
|
+
- a way to ship and version the plugin via npm or git
|
|
531
|
+
|
|
532
|
+
The package is still just a normal npm package — what makes it a plugin is the `cline.plugins` field in `package.json`.
|
|
533
|
+
|
|
534
|
+
### 11.1 Layout
|
|
535
|
+
|
|
536
|
+
A typical package looks like:
|
|
537
|
+
|
|
538
|
+
```
|
|
539
|
+
my-cline-plugin/
|
|
540
|
+
├── package.json
|
|
541
|
+
├── tsconfig.json (optional — for local typechecking)
|
|
542
|
+
├── index.ts (the plugin entry point)
|
|
543
|
+
├── README.md (user-facing docs)
|
|
544
|
+
└── assets/ (optional — bundled content)
|
|
545
|
+
├── templates/
|
|
546
|
+
│ └── greeting.md
|
|
547
|
+
└── schemas/
|
|
548
|
+
└── input.json
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
For larger plugins, you can also organize by feature:
|
|
552
|
+
|
|
553
|
+
```
|
|
554
|
+
my-cline-plugin/
|
|
555
|
+
├── package.json
|
|
556
|
+
├── index.ts
|
|
557
|
+
├── tools/
|
|
558
|
+
│ ├── do-thing.ts
|
|
559
|
+
│ └── read-thing.ts
|
|
560
|
+
├── hooks/
|
|
561
|
+
│ └── audit.ts
|
|
562
|
+
├── lib/
|
|
563
|
+
│ └── helpers.ts
|
|
564
|
+
└── assets/
|
|
565
|
+
└── ...
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
### 11.2 `package.json` — the discovery contract
|
|
569
|
+
|
|
570
|
+
```json
|
|
571
|
+
{
|
|
572
|
+
"name": "my-cline-plugin",
|
|
573
|
+
"version": "0.1.0",
|
|
574
|
+
"private": true,
|
|
575
|
+
"description": "What this plugin does, in one sentence.",
|
|
576
|
+
"type": "module",
|
|
577
|
+
"scripts": {
|
|
578
|
+
"typecheck": "tsc --noEmit",
|
|
579
|
+
"clean": "rm -rf node_modules dist"
|
|
580
|
+
},
|
|
581
|
+
"exports": {
|
|
582
|
+
".": "./index.ts"
|
|
583
|
+
},
|
|
584
|
+
"cline": {
|
|
585
|
+
"plugins": [
|
|
586
|
+
{
|
|
587
|
+
"paths": ["./index.ts"],
|
|
588
|
+
"capabilities": ["tools", "hooks"]
|
|
589
|
+
}
|
|
590
|
+
]
|
|
591
|
+
},
|
|
592
|
+
"peerDependencies": {
|
|
593
|
+
"@cline/core": "*"
|
|
594
|
+
},
|
|
595
|
+
"peerDependenciesMeta": {
|
|
596
|
+
"@cline/core": { "optional": true }
|
|
597
|
+
},
|
|
598
|
+
"dependencies": {
|
|
599
|
+
"zod": "^4.1.5"
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
```
|
|
603
|
+
|
|
604
|
+
Field-by-field:
|
|
605
|
+
|
|
606
|
+
- **`type: "module"`** — required. Cline plugins are ES modules.
|
|
607
|
+
- **`exports`** — points npm consumers at the entry. For TypeScript-source plugins loaded by Cline at runtime, you can export `./index.ts` directly; the loader handles TS.
|
|
608
|
+
- **`cline.plugins`** — the discovery contract. An array of entries, each with:
|
|
609
|
+
- `paths` — entry files relative to the package root. For multiple plugin objects from one package, list all entries.
|
|
610
|
+
- `capabilities` — pre-declared capabilities, validated by the loader before importing the entry.
|
|
611
|
+
- **`peerDependencies` for `@cline/core`** — the host already provides `@cline/core`. Marking it a peer dep avoids version drift; marking it optional lets users typecheck the plugin in isolation without forcing a `@cline/core` install.
|
|
612
|
+
- **`dependencies`** — your own deps (parsers, schema libraries, SDKs you wrap).
|
|
613
|
+
|
|
614
|
+
### 11.3 `tsconfig.json` (optional)
|
|
615
|
+
|
|
616
|
+
For local typechecking only:
|
|
617
|
+
|
|
618
|
+
```json
|
|
619
|
+
{
|
|
620
|
+
"extends": "../../tsconfig.json",
|
|
621
|
+
"include": ["index.ts"]
|
|
622
|
+
}
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
If your plugin lives outside a monorepo, a minimal standalone `tsconfig.json` works too:
|
|
626
|
+
|
|
627
|
+
```json
|
|
628
|
+
{
|
|
629
|
+
"compilerOptions": {
|
|
630
|
+
"target": "ES2022",
|
|
631
|
+
"module": "ESNext",
|
|
632
|
+
"moduleResolution": "Bundler",
|
|
633
|
+
"strict": true,
|
|
634
|
+
"esModuleInterop": true,
|
|
635
|
+
"skipLibCheck": true
|
|
636
|
+
},
|
|
637
|
+
"include": ["index.ts"]
|
|
638
|
+
}
|
|
639
|
+
```
|
|
640
|
+
|
|
641
|
+
### 11.4 `index.ts` — package entry
|
|
642
|
+
|
|
643
|
+
The same plugin shape as the single-file version, just inside a package:
|
|
644
|
+
|
|
645
|
+
```ts
|
|
646
|
+
import { type AgentPlugin, createTool } from "@cline/core";
|
|
647
|
+
import { z } from "zod";
|
|
648
|
+
|
|
649
|
+
const InputSchema = z.object({
|
|
650
|
+
target: z.string().min(1),
|
|
651
|
+
});
|
|
652
|
+
|
|
653
|
+
const plugin: AgentPlugin = {
|
|
654
|
+
name: "my-cline-plugin",
|
|
655
|
+
manifest: {
|
|
656
|
+
capabilities: ["tools"],
|
|
657
|
+
},
|
|
658
|
+
setup(api, ctx) {
|
|
659
|
+
api.registerTool(
|
|
660
|
+
createTool({
|
|
661
|
+
name: "do_thing",
|
|
662
|
+
description: "Do the thing.",
|
|
663
|
+
inputSchema: {
|
|
664
|
+
type: "object",
|
|
665
|
+
properties: { target: { type: "string" } },
|
|
666
|
+
required: ["target"],
|
|
667
|
+
},
|
|
668
|
+
async execute(input) {
|
|
669
|
+
const { target } = InputSchema.parse(input);
|
|
670
|
+
return { ok: true, target };
|
|
671
|
+
},
|
|
672
|
+
}),
|
|
673
|
+
);
|
|
674
|
+
},
|
|
675
|
+
};
|
|
676
|
+
|
|
677
|
+
export default plugin;
|
|
678
|
+
```
|
|
679
|
+
|
|
680
|
+
### 11.5 Bundling assets
|
|
681
|
+
|
|
682
|
+
Anything next to `index.ts` ships with the package. Resolve asset paths with `import.meta.url`, **not** `process.cwd()`:
|
|
683
|
+
|
|
684
|
+
```ts
|
|
685
|
+
import { dirname, join } from "node:path";
|
|
686
|
+
import { fileURLToPath } from "node:url";
|
|
687
|
+
import { readFileSync, existsSync, readdirSync } from "node:fs";
|
|
688
|
+
|
|
689
|
+
const MODULE_DIR = dirname(fileURLToPath(import.meta.url));
|
|
690
|
+
const TEMPLATES_DIR = join(MODULE_DIR, "assets", "templates");
|
|
691
|
+
|
|
692
|
+
function loadTemplate(name: string): string | undefined {
|
|
693
|
+
const path = join(TEMPLATES_DIR, `${name}.md`);
|
|
694
|
+
return existsSync(path) ? readFileSync(path, "utf8") : undefined;
|
|
695
|
+
}
|
|
696
|
+
```
|
|
697
|
+
|
|
698
|
+
This is the only place `import.meta.url` is appropriate in a plugin — locating files **inside the plugin package**. For workspace paths, always use `ctx.workspaceInfo?.rootPath`.
|
|
699
|
+
|
|
700
|
+
### 11.6 The override pattern (bundled / global / project)
|
|
701
|
+
|
|
702
|
+
A package can ship default assets and let users override them with their own. The convention used across Cline plugins is a three-tier lookup, last write wins by `name`:
|
|
703
|
+
|
|
704
|
+
1. **bundled** — files inside the plugin package (defaults shipped with the plugin).
|
|
705
|
+
2. **global** — files under `~/.cline/data/settings/<kind>/` (user overrides).
|
|
706
|
+
3. **project** — files under `<workspace>/.cline/<kind>/` (project overrides).
|
|
707
|
+
|
|
708
|
+
Example: a plugin that supports user-defined "presets" via markdown files with YAML frontmatter:
|
|
709
|
+
|
|
710
|
+
```ts
|
|
711
|
+
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
712
|
+
import { dirname, join } from "node:path";
|
|
713
|
+
import { fileURLToPath } from "node:url";
|
|
714
|
+
import YAML from "yaml";
|
|
715
|
+
|
|
716
|
+
const MODULE_DIR = dirname(fileURLToPath(import.meta.url));
|
|
717
|
+
const BUNDLED_DIR = join(MODULE_DIR, "presets");
|
|
718
|
+
|
|
719
|
+
function resolveDataDir(): string {
|
|
720
|
+
return process.env.CLINE_DATA_DIR ??
|
|
721
|
+
join(process.env.HOME ?? "~", ".cline", "data");
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
function readPresets(workspaceRoot: string) {
|
|
725
|
+
const sources = [
|
|
726
|
+
{ dir: BUNDLED_DIR, source: "bundled" as const },
|
|
727
|
+
{ dir: join(resolveDataDir(), "settings", "presets"), source: "global" as const },
|
|
728
|
+
{ dir: join(workspaceRoot, ".cline", "presets"), source: "project" as const },
|
|
729
|
+
];
|
|
730
|
+
const presets = new Map<string, { name: string; body: string; source: string }>();
|
|
731
|
+
for (const { dir, source } of sources) {
|
|
732
|
+
if (!existsSync(dir)) continue;
|
|
733
|
+
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
734
|
+
if (!entry.isFile() || !entry.name.endsWith(".md")) continue;
|
|
735
|
+
const raw = readFileSync(join(dir, entry.name), "utf8");
|
|
736
|
+
const match = raw.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);
|
|
737
|
+
const data = match ? YAML.parse(match[1] ?? "") ?? {} : {};
|
|
738
|
+
const body = (match ? match[2] : raw).trim();
|
|
739
|
+
const name = data?.name ?? entry.name.replace(/\.md$/, "");
|
|
740
|
+
// Project overrides global overrides bundled — last write wins.
|
|
741
|
+
presets.set(name, { name, body, source });
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
return [...presets.values()];
|
|
745
|
+
}
|
|
746
|
+
```
|
|
747
|
+
|
|
748
|
+
This pattern lets users:
|
|
749
|
+
|
|
750
|
+
- Use the plugin out of the box (bundled defaults).
|
|
751
|
+
- Customize globally for all projects (drop a file in `~/.cline/data/settings/<kind>/`).
|
|
752
|
+
- Override per-project (drop a file in `<workspace>/.cline/<kind>/`).
|
|
753
|
+
|
|
754
|
+
### 11.7 Multiple plugin entries in one package
|
|
755
|
+
|
|
756
|
+
If your package exposes more than one plugin, list each in `cline.plugins`:
|
|
757
|
+
|
|
758
|
+
```json
|
|
759
|
+
"cline": {
|
|
760
|
+
"plugins": [
|
|
761
|
+
{ "paths": ["./tools-plugin.ts"], "capabilities": ["tools"] },
|
|
762
|
+
{ "paths": ["./hooks-plugin.ts"], "capabilities": ["hooks"] }
|
|
763
|
+
]
|
|
764
|
+
}
|
|
765
|
+
```
|
|
766
|
+
|
|
767
|
+
Each entry file should `export default` its own plugin object.
|
|
768
|
+
|
|
769
|
+
### 11.8 Installing the package
|
|
770
|
+
|
|
771
|
+
Once the package is on disk, on npm, or in a git repo, users install it with:
|
|
772
|
+
|
|
773
|
+
```bash
|
|
774
|
+
cline plugin install ./my-cline-plugin # local path
|
|
775
|
+
cline plugin install @scope/my-cline-plugin # npm
|
|
776
|
+
cline plugin install --git github.com/owner/repo # git
|
|
777
|
+
```
|
|
778
|
+
|
|
779
|
+
The CLI installs into `<workspace>/.cline/plugins/.installs/` (or `~/.cline/plugins/.installs/`) and auto-discovers it on the next session.
|
|
780
|
+
|
|
781
|
+
For SDK consumers, point `pluginPaths` at the package directory directly (see §9.3).
|
|
782
|
+
|
|
783
|
+
---
|
|
784
|
+
|
|
785
|
+
## 12. Testing your plugin
|
|
786
|
+
|
|
787
|
+
### 12.1 Unit tests
|
|
788
|
+
|
|
789
|
+
The plugin object is plain data. You can drive `setup()` against a minimal context and exercise tools directly:
|
|
790
|
+
|
|
791
|
+
```ts
|
|
792
|
+
import plugin from "../my-plugin";
|
|
793
|
+
|
|
794
|
+
const tools: unknown[] = [];
|
|
795
|
+
const api = {
|
|
796
|
+
registerTool: (t: unknown) => tools.push(t),
|
|
797
|
+
registerCommand: () => {},
|
|
798
|
+
registerRule: () => {},
|
|
799
|
+
registerMessageBuilder: () => {},
|
|
800
|
+
registerProvider: () => {},
|
|
801
|
+
registerAutomationEventType: () => {},
|
|
802
|
+
};
|
|
803
|
+
await plugin.setup?.(api as never, {
|
|
804
|
+
workspaceInfo: { rootPath: "/tmp/fake-workspace" },
|
|
805
|
+
});
|
|
806
|
+
|
|
807
|
+
// Now `tools` contains the registered tools — call tool.execute(input, ctx).
|
|
808
|
+
```
|
|
809
|
+
|
|
810
|
+
For higher fidelity, build a real registry (`new ContributionRegistry({ extensions: [plugin] })`) and call `initialize()` — that exercises validation too.
|
|
811
|
+
|
|
812
|
+
### 12.2 End-to-end with a `runDemo()`
|
|
813
|
+
|
|
814
|
+
Add a `runDemo()` in your plugin file (see §10) that boots a real `ClineCore` session against `ANTHROPIC_API_KEY`:
|
|
815
|
+
|
|
816
|
+
```bash
|
|
817
|
+
ANTHROPIC_API_KEY=sk-... bun run my-plugin.ts
|
|
818
|
+
```
|
|
819
|
+
|
|
820
|
+
This is the fastest way to verify the plugin works end-to-end.
|
|
821
|
+
|
|
822
|
+
### 12.3 CLI smoke test
|
|
823
|
+
|
|
824
|
+
```bash
|
|
825
|
+
mkdir -p .cline/plugins
|
|
826
|
+
cp my-plugin.ts .cline/plugins/
|
|
827
|
+
cline -i "trigger something that exercises the plugin"
|
|
828
|
+
```
|
|
829
|
+
|
|
830
|
+
For packages:
|
|
831
|
+
|
|
832
|
+
```bash
|
|
833
|
+
cline plugin install ./my-cline-plugin
|
|
834
|
+
cline -i "..."
|
|
835
|
+
```
|
|
836
|
+
|
|
837
|
+
If the plugin fails validation or setup, the CLI prints a clear error and continues without it.
|
|
838
|
+
|
|
839
|
+
---
|
|
840
|
+
|
|
841
|
+
## 13. Common gotchas
|
|
842
|
+
|
|
843
|
+
- **"capabilities must be a non-empty array"** — you forgot `manifest.capabilities`, or it's `[]`.
|
|
844
|
+
- **"registerRule requires the 'rules' capability"** — capability/handler drift. Add `"rules"` to capabilities, or stop calling `registerRule`.
|
|
845
|
+
- **Tool not visible to the model** — check `enableTools: true` on the session config, and that you're declaring `"tools"` in capabilities.
|
|
846
|
+
- **`ctx.workspaceInfo` is undefined in SDK tests** — the host didn't pass `extensionContext.workspace`. In SDK code, set it explicitly (see §9.2).
|
|
847
|
+
- **State leaking across sessions** — module-level variables are shared across sessions in the same process. Key by `ctx.session?.sessionId` if your host runs multiple sessions concurrently.
|
|
848
|
+
- **`afterRun` firing on aborts** — guard with `if (result.status !== "completed") return;`.
|
|
849
|
+
- **Heavy work in `setup()`** — `setup()` blocks session start. Defer expensive work into the first tool call or `beforeRun`.
|
|
850
|
+
- **Importing host internals** — only import from `@cline/core`. Reaching into host-specific packages (e.g. CLI internals) will break in non-CLI hosts.
|
|
851
|
+
- **Sandboxed plugins and `telemetry`** — telemetry is process-local. Feature-detect `ctx.telemetry` and expect it to be undefined in sandboxed plugin processes.
|
|
852
|
+
- **Resolving bundled assets** — use `import.meta.url` + `fileURLToPath` to find files inside your package; never `process.cwd()`. For workspace paths, do the opposite: use `ctx.workspaceInfo?.rootPath`, never `import.meta.url`.
|
|
853
|
+
- **Plugin name collisions** — `name` must be unique within a session. If two plugins share a name, validation fails. Namespace by package (`my-org-redactor`, not `redactor`).
|
|
854
|
+
|
|
855
|
+
---
|
|
856
|
+
|
|
857
|
+
## 14. Decision guide — which extension point?
|
|
858
|
+
|
|
859
|
+
| You want to… | Use |
|
|
860
|
+
| ----------------------------------------------------------- | ------------------------------------------------ |
|
|
861
|
+
| Give the model a new capability | `registerTool` |
|
|
862
|
+
| Add a slash command in chat surfaces | `registerCommand` |
|
|
863
|
+
| Inject text into the system prompt | `registerRule` |
|
|
864
|
+
| Rewrite messages before they hit the provider | `registerMessageBuilder` |
|
|
865
|
+
| Add a custom model provider | `registerProvider` |
|
|
866
|
+
| Emit normalized cron/webhook events | `registerAutomationEventType` + `ctx.automation` |
|
|
867
|
+
| Observe or steer the agent loop | `hooks.*` |
|
|
868
|
+
| Block a dangerous tool call | `hooks.beforeTool` returning `{ stop: true }` |
|
|
869
|
+
| Notify on completion | `hooks.afterRun` (gate on `status === "completed"`) |
|
|
870
|
+
| Tweak each model request | `hooks.beforeModel` |
|
|
871
|
+
| Stream events to a UI | `hooks.onEvent` |
|
|
872
|
+
| Ship reusable templates with the plugin | Bundle assets next to `index.ts`, resolve via `import.meta.url` |
|
|
873
|
+
| Let users override defaults globally or per-project | Three-tier lookup: bundled / global / project |
|
|
874
|
+
|
|
875
|
+
---
|
|
876
|
+
|
|
877
|
+
## 15. Quick checklist before you ship
|
|
878
|
+
|
|
879
|
+
- [ ] `manifest.capabilities` is a non-empty array.
|
|
880
|
+
- [ ] Every `api.register*` call has a matching capability declared.
|
|
881
|
+
- [ ] If `hooks` is present, `"hooks"` is in `capabilities`.
|
|
882
|
+
- [ ] `ctx.workspaceInfo?.rootPath` is used for workspace paths (not `process.cwd()`).
|
|
883
|
+
- [ ] Optional `ctx` fields are feature-detected.
|
|
884
|
+
- [ ] Tool names are snake_case verbs; descriptions are written for the model.
|
|
885
|
+
- [ ] Tool inputs have JSON Schema with `required` set.
|
|
886
|
+
- [ ] `afterRun` handlers gate on `result.status === "completed"` if they only want successes.
|
|
887
|
+
- [ ] State that must not leak between concurrent sessions is keyed by `ctx.session?.sessionId`.
|
|
888
|
+
- [ ] (Package) `package.json` has `type: "module"`, `cline.plugins`, and `@cline/core` as an optional peer dep.
|
|
889
|
+
- [ ] (Package) Bundled assets resolved via `import.meta.url`, not `process.cwd()`.
|
|
890
|
+
- [ ] Smoke test: drop the plugin into `.cline/plugins/` (or `cline plugin install`), run `cline -i "..."`, watch it work.
|
|
891
|
+
|
|
892
|
+
When in doubt, write a tiny tool, get it to fire end-to-end, then grow it.
|