@aligndottech/cli 0.49.0 → 0.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +32 -8
- package/dist/cli.js.map +1 -1
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +4 -1
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +18 -2
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/config.d.ts +8 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +33 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/connect-agents.d.ts.map +1 -1
- package/dist/commands/connect-agents.js +3 -1
- package/dist/commands/connect-agents.js.map +1 -1
- package/dist/commands/connect.d.ts +5 -0
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +24 -0
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +11 -0
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/import/confluence.d.ts.map +1 -1
- package/dist/commands/import/confluence.js +24 -5
- package/dist/commands/import/confluence.js.map +1 -1
- package/dist/commands/import/docs.js +2 -2
- package/dist/commands/import/git.d.ts.map +1 -1
- package/dist/commands/import/git.js +15 -5
- package/dist/commands/import/git.js.map +1 -1
- package/dist/commands/import/github.d.ts.map +1 -1
- package/dist/commands/import/github.js +34 -7
- package/dist/commands/import/github.js.map +1 -1
- package/dist/commands/import/gitlab.d.ts.map +1 -1
- package/dist/commands/import/gitlab.js +10 -5
- package/dist/commands/import/gitlab.js.map +1 -1
- package/dist/commands/import/jira.d.ts.map +1 -1
- package/dist/commands/import/jira.js +10 -5
- package/dist/commands/import/jira.js.map +1 -1
- package/dist/commands/import/linear.d.ts.map +1 -1
- package/dist/commands/import/linear.js +10 -5
- package/dist/commands/import/linear.js.map +1 -1
- package/dist/commands/import/notion.d.ts.map +1 -1
- package/dist/commands/import/notion.js +10 -5
- package/dist/commands/import/notion.js.map +1 -1
- package/dist/commands/import/sessions.js +2 -2
- package/dist/commands/import/slack.d.ts.map +1 -1
- package/dist/commands/import/slack.js +12 -7
- package/dist/commands/import/slack.js.map +1 -1
- package/dist/commands/import/teams.d.ts.map +1 -1
- package/dist/commands/import/teams.js +10 -5
- package/dist/commands/import/teams.js.map +1 -1
- package/dist/commands/import/zoom.d.ts.map +1 -1
- package/dist/commands/import/zoom.js +10 -5
- package/dist/commands/import/zoom.js.map +1 -1
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +43 -1
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/invite.d.ts +8 -18
- package/dist/commands/invite.d.ts.map +1 -1
- package/dist/commands/invite.js +23 -46
- package/dist/commands/invite.js.map +1 -1
- package/dist/commands/join.d.ts +5 -0
- package/dist/commands/join.d.ts.map +1 -0
- package/dist/commands/join.js +49 -0
- package/dist/commands/join.js.map +1 -0
- package/dist/commands/local-relink.d.ts +35 -0
- package/dist/commands/local-relink.d.ts.map +1 -0
- package/dist/commands/local-relink.js +72 -0
- package/dist/commands/local-relink.js.map +1 -0
- package/dist/commands/local.d.ts.map +1 -1
- package/dist/commands/local.js +113 -4
- package/dist/commands/local.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +21 -2
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/mark.d.ts +37 -0
- package/dist/commands/mark.d.ts.map +1 -0
- package/dist/commands/mark.js +105 -0
- package/dist/commands/mark.js.map +1 -0
- package/dist/commands/mcp.d.ts +149 -2
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +80 -15
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/registry.d.ts.map +1 -1
- package/dist/commands/registry.js +12 -2
- package/dist/commands/registry.js.map +1 -1
- package/dist/commands/setup.d.ts +39 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +65 -50
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/share.d.ts +7 -0
- package/dist/commands/share.d.ts.map +1 -0
- package/dist/commands/share.js +129 -0
- package/dist/commands/share.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +10 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/sync.d.ts +55 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +278 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/telemetry.d.ts +3 -3
- package/dist/commands/telemetry.js +6 -6
- package/dist/commands/telemetry.js.map +1 -1
- package/dist/commands/why.d.ts.map +1 -1
- package/dist/commands/why.js +6 -1
- package/dist/commands/why.js.map +1 -1
- package/dist/detector/detector-version.d.ts +16 -0
- package/dist/detector/detector-version.d.ts.map +1 -0
- package/dist/detector/detector-version.js +36 -0
- package/dist/detector/detector-version.js.map +1 -0
- package/dist/detector/relationship-contract.d.ts +30 -0
- package/dist/detector/relationship-contract.d.ts.map +1 -0
- package/dist/detector/relationship-contract.js +120 -0
- package/dist/detector/relationship-contract.js.map +1 -0
- package/dist/detector/relationship-contract.v1.json +53 -0
- package/dist/detector/relationship-prompt.d.ts +20 -0
- package/dist/detector/relationship-prompt.d.ts.map +1 -0
- package/dist/detector/relationship-prompt.js +55 -0
- package/dist/detector/relationship-prompt.js.map +1 -0
- package/dist/detector/relationship-prompt.v1.json +13 -0
- package/dist/detector/resolve-pair.d.ts +39 -0
- package/dist/detector/resolve-pair.d.ts.map +1 -0
- package/dist/detector/resolve-pair.js +345 -0
- package/dist/detector/resolve-pair.js.map +1 -0
- package/dist/detector/similar-item.d.ts +20 -0
- package/dist/detector/similar-item.d.ts.map +1 -0
- package/dist/detector/similar-item.js +16 -0
- package/dist/detector/similar-item.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -11
- package/dist/index.js.map +1 -1
- package/dist/lib/advisory-dedup.d.ts.map +1 -1
- package/dist/lib/advisory-dedup.js +16 -8
- package/dist/lib/advisory-dedup.js.map +1 -1
- package/dist/lib/advisory-verdict.d.ts +19 -0
- package/dist/lib/advisory-verdict.d.ts.map +1 -1
- package/dist/lib/advisory-verdict.js +6 -3
- package/dist/lib/advisory-verdict.js.map +1 -1
- package/dist/lib/backfill-state.d.ts +116 -0
- package/dist/lib/backfill-state.d.ts.map +1 -0
- package/dist/lib/backfill-state.js +342 -0
- package/dist/lib/backfill-state.js.map +1 -0
- package/dist/lib/backup-copy.d.ts +17 -0
- package/dist/lib/backup-copy.d.ts.map +1 -0
- package/dist/lib/backup-copy.js +13 -0
- package/dist/lib/backup-copy.js.map +1 -0
- package/dist/lib/backup-exclusion.d.ts +10 -0
- package/dist/lib/backup-exclusion.d.ts.map +1 -0
- package/dist/lib/backup-exclusion.js +58 -0
- package/dist/lib/backup-exclusion.js.map +1 -0
- package/dist/lib/capture-report.d.ts +22 -18
- package/dist/lib/capture-report.d.ts.map +1 -1
- package/dist/lib/capture-report.js +64 -2
- package/dist/lib/capture-report.js.map +1 -1
- package/dist/lib/cli-oauth.d.ts +2 -0
- package/dist/lib/cli-oauth.d.ts.map +1 -1
- package/dist/lib/cli-oauth.js +61 -10
- package/dist/lib/cli-oauth.js.map +1 -1
- package/dist/lib/config.d.ts +72 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +245 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/confirm-timeout.d.ts +8 -0
- package/dist/lib/confirm-timeout.d.ts.map +1 -0
- package/dist/lib/confirm-timeout.js +18 -0
- package/dist/lib/confirm-timeout.js.map +1 -0
- package/dist/lib/curation/check-marks.d.ts +48 -0
- package/dist/lib/curation/check-marks.d.ts.map +1 -0
- package/dist/lib/curation/check-marks.js +81 -0
- package/dist/lib/curation/check-marks.js.map +1 -0
- package/dist/lib/curation/guardrail.d.ts +39 -0
- package/dist/lib/curation/guardrail.d.ts.map +1 -0
- package/dist/lib/curation/guardrail.js +95 -0
- package/dist/lib/curation/guardrail.js.map +1 -0
- package/dist/lib/curation/judge.d.ts +3 -0
- package/dist/lib/curation/judge.d.ts.map +1 -0
- package/dist/lib/curation/judge.js +9 -0
- package/dist/lib/curation/judge.js.map +1 -0
- package/dist/lib/curation/judgements-db.d.ts +97 -0
- package/dist/lib/curation/judgements-db.d.ts.map +1 -0
- package/dist/lib/curation/judgements-db.js +206 -0
- package/dist/lib/curation/judgements-db.js.map +1 -0
- package/dist/lib/curation/last-check.d.ts +32 -0
- package/dist/lib/curation/last-check.d.ts.map +1 -0
- package/dist/lib/curation/last-check.js +81 -0
- package/dist/lib/curation/last-check.js.map +1 -0
- package/dist/lib/curation/mark.d.ts +76 -0
- package/dist/lib/curation/mark.d.ts.map +1 -0
- package/dist/lib/curation/mark.js +361 -0
- package/dist/lib/curation/mark.js.map +1 -0
- package/dist/lib/curation/text.d.ts +6 -0
- package/dist/lib/curation/text.d.ts.map +1 -0
- package/dist/lib/curation/text.js +35 -0
- package/dist/lib/curation/text.js.map +1 -0
- package/dist/lib/destination-name.d.ts +24 -0
- package/dist/lib/destination-name.d.ts.map +1 -0
- package/dist/lib/destination-name.js +39 -0
- package/dist/lib/destination-name.js.map +1 -0
- package/dist/lib/destination-summary.d.ts +6 -0
- package/dist/lib/destination-summary.d.ts.map +1 -0
- package/dist/lib/destination-summary.js +27 -0
- package/dist/lib/destination-summary.js.map +1 -0
- package/dist/lib/destination-trust.d.ts +54 -0
- package/dist/lib/destination-trust.d.ts.map +1 -0
- package/dist/lib/destination-trust.js +107 -0
- package/dist/lib/destination-trust.js.map +1 -0
- package/dist/lib/env-resolver.d.ts.map +1 -1
- package/dist/lib/env-resolver.js +3 -0
- package/dist/lib/env-resolver.js.map +1 -1
- package/dist/lib/fatal.d.ts +11 -0
- package/dist/lib/fatal.d.ts.map +1 -0
- package/dist/lib/fatal.js +22 -0
- package/dist/lib/fatal.js.map +1 -0
- package/dist/lib/fetchers/capture.d.ts +49 -2
- package/dist/lib/fetchers/capture.d.ts.map +1 -1
- package/dist/lib/fetchers/capture.js +7 -1
- package/dist/lib/fetchers/capture.js.map +1 -1
- package/dist/lib/fetchers/confluence.d.ts +2 -2
- package/dist/lib/fetchers/confluence.d.ts.map +1 -1
- package/dist/lib/fetchers/confluence.js.map +1 -1
- package/dist/lib/fetchers/git.d.ts +1 -0
- package/dist/lib/fetchers/git.d.ts.map +1 -1
- package/dist/lib/fetchers/git.js +3 -1
- package/dist/lib/fetchers/git.js.map +1 -1
- package/dist/lib/fetchers/github.d.ts +44 -5
- package/dist/lib/fetchers/github.d.ts.map +1 -1
- package/dist/lib/fetchers/github.js +122 -5
- package/dist/lib/fetchers/github.js.map +1 -1
- package/dist/lib/fetchers/gitlab.d.ts +2 -2
- package/dist/lib/fetchers/gitlab.d.ts.map +1 -1
- package/dist/lib/fetchers/gitlab.js.map +1 -1
- package/dist/lib/fetchers/jira.d.ts +2 -2
- package/dist/lib/fetchers/jira.d.ts.map +1 -1
- package/dist/lib/fetchers/jira.js.map +1 -1
- package/dist/lib/fetchers/linear.d.ts +2 -2
- package/dist/lib/fetchers/linear.d.ts.map +1 -1
- package/dist/lib/fetchers/linear.js.map +1 -1
- package/dist/lib/fetchers/notion.d.ts +2 -2
- package/dist/lib/fetchers/notion.d.ts.map +1 -1
- package/dist/lib/fetchers/notion.js.map +1 -1
- package/dist/lib/fetchers/slack.d.ts +2 -3
- package/dist/lib/fetchers/slack.d.ts.map +1 -1
- package/dist/lib/fetchers/slack.js.map +1 -1
- package/dist/lib/fetchers/teams.d.ts +2 -2
- package/dist/lib/fetchers/teams.d.ts.map +1 -1
- package/dist/lib/fetchers/teams.js.map +1 -1
- package/dist/lib/fetchers/zoom.d.ts +2 -2
- package/dist/lib/fetchers/zoom.d.ts.map +1 -1
- package/dist/lib/fetchers/zoom.js.map +1 -1
- package/dist/lib/gateway-client.d.ts +40 -14
- package/dist/lib/gateway-client.d.ts.map +1 -1
- package/dist/lib/gateway-client.js +47 -19
- package/dist/lib/gateway-client.js.map +1 -1
- package/dist/lib/github-text.d.ts +3 -0
- package/dist/lib/github-text.d.ts.map +1 -0
- package/dist/lib/github-text.js +18 -0
- package/dist/lib/github-text.js.map +1 -0
- package/dist/lib/hook-context.d.ts +10 -0
- package/dist/lib/hook-context.d.ts.map +1 -1
- package/dist/lib/hook-context.js +14 -0
- package/dist/lib/hook-context.js.map +1 -1
- package/dist/lib/import-defaults.d.ts +39 -23
- package/dist/lib/import-defaults.d.ts.map +1 -1
- package/dist/lib/import-defaults.js +28 -26
- package/dist/lib/import-defaults.js.map +1 -1
- package/dist/lib/invite-prompt.d.ts +4 -4
- package/dist/lib/invite-prompt.d.ts.map +1 -1
- package/dist/lib/invite-prompt.js +4 -4
- package/dist/lib/invite-prompt.js.map +1 -1
- package/dist/lib/invite-settings.d.ts +18 -0
- package/dist/lib/invite-settings.d.ts.map +1 -0
- package/dist/lib/invite-settings.js +29 -0
- package/dist/lib/invite-settings.js.map +1 -0
- package/dist/lib/join-flow.d.ts +60 -0
- package/dist/lib/join-flow.d.ts.map +1 -0
- package/dist/lib/join-flow.js +282 -0
- package/dist/lib/join-flow.js.map +1 -0
- package/dist/lib/launch/adapters/aider.d.ts +17 -0
- package/dist/lib/launch/adapters/aider.d.ts.map +1 -0
- package/dist/lib/launch/adapters/aider.js +30 -0
- package/dist/lib/launch/adapters/aider.js.map +1 -0
- package/dist/lib/launch/adapters/auggie.d.ts +18 -0
- package/dist/lib/launch/adapters/auggie.d.ts.map +1 -0
- package/dist/lib/launch/adapters/auggie.js +34 -0
- package/dist/lib/launch/adapters/auggie.js.map +1 -0
- package/dist/lib/launch/adapters/cline.d.ts +10 -0
- package/dist/lib/launch/adapters/cline.d.ts.map +1 -0
- package/dist/lib/launch/adapters/cline.js +41 -0
- package/dist/lib/launch/adapters/cline.js.map +1 -0
- package/dist/lib/launch/adapters/continue.d.ts +22 -0
- package/dist/lib/launch/adapters/continue.d.ts.map +1 -0
- package/dist/lib/launch/adapters/continue.js +46 -0
- package/dist/lib/launch/adapters/continue.js.map +1 -0
- package/dist/lib/launch/adapters/gemini-cli.d.ts +13 -14
- package/dist/lib/launch/adapters/gemini-cli.d.ts.map +1 -1
- package/dist/lib/launch/adapters/gemini-cli.js +38 -53
- package/dist/lib/launch/adapters/gemini-cli.js.map +1 -1
- package/dist/lib/launch/adapters/goose.d.ts +20 -0
- package/dist/lib/launch/adapters/goose.d.ts.map +1 -0
- package/dist/lib/launch/adapters/goose.js +47 -0
- package/dist/lib/launch/adapters/goose.js.map +1 -0
- package/dist/lib/launch/adapters/notes.d.ts +7 -0
- package/dist/lib/launch/adapters/notes.d.ts.map +1 -0
- package/dist/lib/launch/adapters/notes.js +5 -0
- package/dist/lib/launch/adapters/notes.js.map +1 -0
- package/dist/lib/launch/agents.d.ts +2 -0
- package/dist/lib/launch/agents.d.ts.map +1 -1
- package/dist/lib/launch/agents.js +3 -1
- package/dist/lib/launch/agents.js.map +1 -1
- package/dist/lib/launch/auggie-state.d.ts +25 -0
- package/dist/lib/launch/auggie-state.d.ts.map +1 -0
- package/dist/lib/launch/auggie-state.js +74 -0
- package/dist/lib/launch/auggie-state.js.map +1 -0
- package/dist/lib/launch/cline-state.d.ts +32 -0
- package/dist/lib/launch/cline-state.d.ts.map +1 -0
- package/dist/lib/launch/cline-state.js +108 -0
- package/dist/lib/launch/cline-state.js.map +1 -0
- package/dist/lib/launch/config-writes.d.ts +4 -0
- package/dist/lib/launch/config-writes.d.ts.map +1 -1
- package/dist/lib/launch/config-writes.js +8 -3
- package/dist/lib/launch/config-writes.js.map +1 -1
- package/dist/lib/launch/continue-state.d.ts +41 -0
- package/dist/lib/launch/continue-state.d.ts.map +1 -0
- package/dist/lib/launch/continue-state.js +142 -0
- package/dist/lib/launch/continue-state.js.map +1 -0
- package/dist/lib/launch/detect.d.ts.map +1 -1
- package/dist/lib/launch/detect.js +3 -1
- package/dist/lib/launch/detect.js.map +1 -1
- package/dist/lib/launch/gemini-state.d.ts +26 -20
- package/dist/lib/launch/gemini-state.d.ts.map +1 -1
- package/dist/lib/launch/gemini-state.js +95 -37
- package/dist/lib/launch/gemini-state.js.map +1 -1
- package/dist/lib/launch/gemini-system-file.d.ts +17 -0
- package/dist/lib/launch/gemini-system-file.d.ts.map +1 -0
- package/dist/lib/launch/gemini-system-file.js +55 -0
- package/dist/lib/launch/gemini-system-file.js.map +1 -0
- package/dist/lib/launch/gemini-trust.d.ts +3 -1
- package/dist/lib/launch/gemini-trust.d.ts.map +1 -1
- package/dist/lib/launch/gemini-trust.js +10 -3
- package/dist/lib/launch/gemini-trust.js.map +1 -1
- package/dist/lib/launch/goose-state.d.ts +53 -0
- package/dist/lib/launch/goose-state.d.ts.map +1 -0
- package/dist/lib/launch/goose-state.js +137 -0
- package/dist/lib/launch/goose-state.js.map +1 -0
- package/dist/lib/launch/launch-files.d.ts.map +1 -1
- package/dist/lib/launch/launch-files.js +3 -2
- package/dist/lib/launch/launch-files.js.map +1 -1
- package/dist/lib/launch/launch.d.ts +17 -2
- package/dist/lib/launch/launch.d.ts.map +1 -1
- package/dist/lib/launch/launch.js +36 -3
- package/dist/lib/launch/launch.js.map +1 -1
- package/dist/lib/launch/mcp-child-env.d.ts +30 -0
- package/dist/lib/launch/mcp-child-env.d.ts.map +1 -0
- package/dist/lib/launch/mcp-child-env.js +154 -0
- package/dist/lib/launch/mcp-child-env.js.map +1 -0
- package/dist/lib/launch/pick-agent.d.ts.map +1 -1
- package/dist/lib/launch/pick-agent.js +4 -4
- package/dist/lib/launch/pick-agent.js.map +1 -1
- package/dist/lib/launch/picker-options.d.ts.map +1 -1
- package/dist/lib/launch/picker-options.js +7 -2
- package/dist/lib/launch/picker-options.js.map +1 -1
- package/dist/lib/launch/registry/agents/aider.d.ts +3 -0
- package/dist/lib/launch/registry/agents/aider.d.ts.map +1 -0
- package/dist/lib/launch/registry/agents/aider.js +13 -0
- package/dist/lib/launch/registry/agents/aider.js.map +1 -0
- package/dist/lib/launch/registry/agents/auggie.d.ts +3 -0
- package/dist/lib/launch/registry/agents/auggie.d.ts.map +1 -0
- package/dist/lib/launch/registry/agents/auggie.js +11 -0
- package/dist/lib/launch/registry/agents/auggie.js.map +1 -0
- package/dist/lib/launch/registry/agents/cline.d.ts +3 -0
- package/dist/lib/launch/registry/agents/cline.d.ts.map +1 -0
- package/dist/lib/launch/registry/agents/cline.js +19 -0
- package/dist/lib/launch/registry/agents/cline.js.map +1 -0
- package/dist/lib/launch/registry/agents/continue.d.ts +3 -0
- package/dist/lib/launch/registry/agents/continue.d.ts.map +1 -0
- package/dist/lib/launch/registry/agents/continue.js +20 -0
- package/dist/lib/launch/registry/agents/continue.js.map +1 -0
- package/dist/lib/launch/registry/agents/gemini-cli.js +2 -2
- package/dist/lib/launch/registry/agents/gemini-cli.js.map +1 -1
- package/dist/lib/launch/registry/agents/goose.d.ts +3 -0
- package/dist/lib/launch/registry/agents/goose.d.ts.map +1 -0
- package/dist/lib/launch/registry/agents/goose.js +20 -0
- package/dist/lib/launch/registry/agents/goose.js.map +1 -0
- package/dist/lib/launch/registry/index.d.ts +1 -1
- package/dist/lib/launch/registry/index.d.ts.map +1 -1
- package/dist/lib/launch/registry/index.js +7 -2
- package/dist/lib/launch/registry/index.js.map +1 -1
- package/dist/lib/launch/registry/types.d.ts +12 -1
- package/dist/lib/launch/registry/types.d.ts.map +1 -1
- package/dist/lib/launch/strict-entry.d.ts +22 -2
- package/dist/lib/launch/strict-entry.d.ts.map +1 -1
- package/dist/lib/launch/strict-entry.js +80 -2
- package/dist/lib/launch/strict-entry.js.map +1 -1
- package/dist/lib/launch/yaml-scan.d.ts +59 -0
- package/dist/lib/launch/yaml-scan.d.ts.map +1 -0
- package/dist/lib/launch/yaml-scan.js +275 -0
- package/dist/lib/launch/yaml-scan.js.map +1 -0
- package/dist/lib/lead-prompt.d.ts +106 -0
- package/dist/lib/lead-prompt.d.ts.map +1 -0
- package/dist/lib/lead-prompt.js +175 -0
- package/dist/lib/lead-prompt.js.map +1 -0
- package/dist/lib/local-candidate-classify.d.ts +26 -0
- package/dist/lib/local-candidate-classify.d.ts.map +1 -0
- package/dist/lib/local-candidate-classify.js +53 -0
- package/dist/lib/local-candidate-classify.js.map +1 -0
- package/dist/lib/local-db-epoch.d.ts +4 -0
- package/dist/lib/local-db-epoch.d.ts.map +1 -0
- package/dist/lib/local-db-epoch.js +19 -0
- package/dist/lib/local-db-epoch.js.map +1 -0
- package/dist/lib/local-db-migrate.d.ts +85 -0
- package/dist/lib/local-db-migrate.d.ts.map +1 -0
- package/dist/lib/local-db-migrate.js +528 -0
- package/dist/lib/local-db-migrate.js.map +1 -0
- package/dist/lib/local-db-v10.d.ts +28 -0
- package/dist/lib/local-db-v10.d.ts.map +1 -0
- package/dist/lib/local-db-v10.js +49 -0
- package/dist/lib/local-db-v10.js.map +1 -0
- package/dist/lib/local-db-v11.d.ts +24 -0
- package/dist/lib/local-db-v11.d.ts.map +1 -0
- package/dist/lib/local-db-v11.js +25 -0
- package/dist/lib/local-db-v11.js.map +1 -0
- package/dist/lib/local-db-v12.d.ts +17 -0
- package/dist/lib/local-db-v12.d.ts.map +1 -0
- package/dist/lib/local-db-v12.js +8 -0
- package/dist/lib/local-db-v12.js.map +1 -0
- package/dist/lib/local-db-v7.d.ts +30 -0
- package/dist/lib/local-db-v7.d.ts.map +1 -0
- package/dist/lib/local-db-v7.js +285 -0
- package/dist/lib/local-db-v7.js.map +1 -0
- package/dist/lib/local-db-v8.d.ts +22 -0
- package/dist/lib/local-db-v8.d.ts.map +1 -0
- package/dist/lib/local-db-v8.js +33 -0
- package/dist/lib/local-db-v8.js.map +1 -0
- package/dist/lib/local-db-v9.d.ts +10 -0
- package/dist/lib/local-db-v9.d.ts.map +1 -0
- package/dist/lib/local-db-v9.js +8 -0
- package/dist/lib/local-db-v9.js.map +1 -0
- package/dist/lib/local-db.d.ts +73 -23
- package/dist/lib/local-db.d.ts.map +1 -1
- package/dist/lib/local-db.js +225 -375
- package/dist/lib/local-db.js.map +1 -1
- package/dist/lib/local-embeddings.d.ts.map +1 -1
- package/dist/lib/local-embeddings.js +2 -2
- package/dist/lib/local-embeddings.js.map +1 -1
- package/dist/lib/local-gateway-client.d.ts +31 -87
- package/dist/lib/local-gateway-client.d.ts.map +1 -1
- package/dist/lib/local-gateway-client.js +209 -187
- package/dist/lib/local-gateway-client.js.map +1 -1
- package/dist/lib/local-ingest.d.ts +131 -0
- package/dist/lib/local-ingest.d.ts.map +1 -0
- package/dist/lib/local-ingest.js +81 -0
- package/dist/lib/local-ingest.js.map +1 -0
- package/dist/lib/local-link-pass.d.ts +15 -0
- package/dist/lib/local-link-pass.d.ts.map +1 -0
- package/dist/lib/local-link-pass.js +57 -0
- package/dist/lib/local-link-pass.js.map +1 -0
- package/dist/lib/local-llm.d.ts +1 -1
- package/dist/lib/local-llm.d.ts.map +1 -1
- package/dist/lib/local-llm.js +3 -2
- package/dist/lib/local-llm.js.map +1 -1
- package/dist/lib/local-mode.d.ts +9 -2
- package/dist/lib/local-mode.d.ts.map +1 -1
- package/dist/lib/local-mode.js +27 -7
- package/dist/lib/local-mode.js.map +1 -1
- package/dist/lib/local-provenance.d.ts +14 -0
- package/dist/lib/local-provenance.d.ts.map +1 -0
- package/dist/lib/local-provenance.js +14 -0
- package/dist/lib/local-provenance.js.map +1 -0
- package/dist/lib/local-relationship-classifier.d.ts +4 -0
- package/dist/lib/local-relationship-classifier.d.ts.map +1 -1
- package/dist/lib/local-relationship-classifier.js +9 -4
- package/dist/lib/local-relationship-classifier.js.map +1 -1
- package/dist/lib/local-relink.d.ts +59 -0
- package/dist/lib/local-relink.d.ts.map +1 -0
- package/dist/lib/local-relink.js +171 -0
- package/dist/lib/local-relink.js.map +1 -0
- package/dist/lib/local-set-classifier.d.ts +36 -0
- package/dist/lib/local-set-classifier.d.ts.map +1 -0
- package/dist/lib/local-set-classifier.js +81 -0
- package/dist/lib/local-set-classifier.js.map +1 -0
- package/dist/lib/local-snapshot-loader.d.ts +29 -0
- package/dist/lib/local-snapshot-loader.d.ts.map +1 -0
- package/dist/lib/local-snapshot-loader.js +108 -0
- package/dist/lib/local-snapshot-loader.js.map +1 -0
- package/dist/lib/local-thresholds.d.ts +70 -0
- package/dist/lib/local-thresholds.d.ts.map +1 -0
- package/dist/lib/local-thresholds.js +79 -0
- package/dist/lib/local-thresholds.js.map +1 -0
- package/dist/lib/login-flow.d.ts +15 -0
- package/dist/lib/login-flow.d.ts.map +1 -1
- package/dist/lib/login-flow.js +80 -4
- package/dist/lib/login-flow.js.map +1 -1
- package/dist/lib/mcp/mark-tool.d.ts +27 -0
- package/dist/lib/mcp/mark-tool.d.ts.map +1 -0
- package/dist/lib/mcp/mark-tool.js +103 -0
- package/dist/lib/mcp/mark-tool.js.map +1 -0
- package/dist/lib/mcp/share-status-tool.d.ts +13 -0
- package/dist/lib/mcp/share-status-tool.d.ts.map +1 -0
- package/dist/lib/mcp/share-status-tool.js +116 -0
- package/dist/lib/mcp/share-status-tool.js.map +1 -0
- package/dist/lib/mcp/share-tool.d.ts +50 -0
- package/dist/lib/mcp/share-tool.d.ts.map +1 -0
- package/dist/lib/mcp/share-tool.js +174 -0
- package/dist/lib/mcp/share-tool.js.map +1 -0
- package/dist/lib/mcp/tool-rules.d.ts +30 -0
- package/dist/lib/mcp/tool-rules.d.ts.map +1 -0
- package/dist/lib/mcp/tool-rules.js +84 -0
- package/dist/lib/mcp/tool-rules.js.map +1 -0
- package/dist/lib/mcp-backfill.d.ts +89 -0
- package/dist/lib/mcp-backfill.d.ts.map +1 -0
- package/dist/lib/mcp-backfill.js +194 -0
- package/dist/lib/mcp-backfill.js.map +1 -0
- package/dist/lib/mcp-scope.d.ts +90 -0
- package/dist/lib/mcp-scope.d.ts.map +1 -0
- package/dist/lib/mcp-scope.js +125 -0
- package/dist/lib/mcp-scope.js.map +1 -0
- package/dist/lib/mcp-sync.d.ts +64 -0
- package/dist/lib/mcp-sync.d.ts.map +1 -0
- package/dist/lib/mcp-sync.js +183 -0
- package/dist/lib/mcp-sync.js.map +1 -0
- package/dist/lib/model-cache.d.ts +10 -0
- package/dist/lib/model-cache.d.ts.map +1 -0
- package/dist/lib/model-cache.js +35 -0
- package/dist/lib/model-cache.js.map +1 -0
- package/dist/lib/next-step.d.ts.map +1 -1
- package/dist/lib/next-step.js +2 -1
- package/dist/lib/next-step.js.map +1 -1
- package/dist/lib/personal-import.d.ts +7 -0
- package/dist/lib/personal-import.d.ts.map +1 -1
- package/dist/lib/personal-import.js +13 -1
- package/dist/lib/personal-import.js.map +1 -1
- package/dist/lib/private-files.d.ts +33 -0
- package/dist/lib/private-files.d.ts.map +1 -0
- package/dist/lib/private-files.js +96 -0
- package/dist/lib/private-files.js.map +1 -0
- package/dist/lib/redaction-notice.d.ts +7 -0
- package/dist/lib/redaction-notice.d.ts.map +1 -0
- package/dist/lib/redaction-notice.js +32 -0
- package/dist/lib/redaction-notice.js.map +1 -0
- package/dist/lib/relink-estimate.d.ts +16 -0
- package/dist/lib/relink-estimate.d.ts.map +1 -0
- package/dist/lib/relink-estimate.js +30 -0
- package/dist/lib/relink-estimate.js.map +1 -0
- package/dist/lib/resolve-env.d.ts +15 -1
- package/dist/lib/resolve-env.d.ts.map +1 -1
- package/dist/lib/resolve-env.js +27 -7
- package/dist/lib/resolve-env.js.map +1 -1
- package/dist/lib/safe-config-write.d.ts.map +1 -1
- package/dist/lib/safe-config-write.js +39 -2
- package/dist/lib/safe-config-write.js.map +1 -1
- package/dist/lib/scope-choices.d.ts +51 -0
- package/dist/lib/scope-choices.d.ts.map +1 -0
- package/dist/lib/scope-choices.js +193 -0
- package/dist/lib/scope-choices.js.map +1 -0
- package/dist/lib/scope-connect.d.ts +82 -0
- package/dist/lib/scope-connect.d.ts.map +1 -0
- package/dist/lib/scope-connect.js +258 -0
- package/dist/lib/scope-connect.js.map +1 -0
- package/dist/lib/scope-defaults.d.ts +3 -0
- package/dist/lib/scope-defaults.d.ts.map +1 -0
- package/dist/lib/scope-defaults.js +44 -0
- package/dist/lib/scope-defaults.js.map +1 -0
- package/dist/lib/scope-real.d.ts +280 -0
- package/dist/lib/scope-real.d.ts.map +1 -0
- package/dist/lib/scope-real.js +58 -0
- package/dist/lib/scope-real.js.map +1 -0
- package/dist/lib/scope-values.d.ts +76 -0
- package/dist/lib/scope-values.d.ts.map +1 -0
- package/dist/lib/scope-values.js +169 -0
- package/dist/lib/scope-values.js.map +1 -0
- package/dist/lib/scope.d.ts +161 -0
- package/dist/lib/scope.d.ts.map +1 -0
- package/dist/lib/scope.js +323 -0
- package/dist/lib/scope.js.map +1 -0
- package/dist/lib/setup-route.d.ts +4 -2
- package/dist/lib/setup-route.d.ts.map +1 -1
- package/dist/lib/setup-route.js +12 -6
- package/dist/lib/setup-route.js.map +1 -1
- package/dist/lib/share/approval.d.ts +71 -0
- package/dist/lib/share/approval.d.ts.map +1 -0
- package/dist/lib/share/approval.js +139 -0
- package/dist/lib/share/approval.js.map +1 -0
- package/dist/lib/share/approve-link.d.ts +31 -0
- package/dist/lib/share/approve-link.d.ts.map +1 -0
- package/dist/lib/share/approve-link.js +46 -0
- package/dist/lib/share/approve-link.js.map +1 -0
- package/dist/lib/share/browser-flow.d.ts +85 -0
- package/dist/lib/share/browser-flow.d.ts.map +1 -0
- package/dist/lib/share/browser-flow.js +168 -0
- package/dist/lib/share/browser-flow.js.map +1 -0
- package/dist/lib/share/command.d.ts +65 -0
- package/dist/lib/share/command.d.ts.map +1 -0
- package/dist/lib/share/command.js +278 -0
- package/dist/lib/share/command.js.map +1 -0
- package/dist/lib/share/delivery-options.d.ts +15 -0
- package/dist/lib/share/delivery-options.d.ts.map +1 -0
- package/dist/lib/share/delivery-options.js +16 -0
- package/dist/lib/share/delivery-options.js.map +1 -0
- package/dist/lib/share/delivery.d.ts +83 -0
- package/dist/lib/share/delivery.d.ts.map +1 -0
- package/dist/lib/share/delivery.js +134 -0
- package/dist/lib/share/delivery.js.map +1 -0
- package/dist/lib/share/envelope.d.ts +61 -0
- package/dist/lib/share/envelope.d.ts.map +1 -0
- package/dist/lib/share/envelope.js +99 -0
- package/dist/lib/share/envelope.js.map +1 -0
- package/dist/lib/share/ledger.d.ts +59 -0
- package/dist/lib/share/ledger.d.ts.map +1 -0
- package/dist/lib/share/ledger.js +137 -0
- package/dist/lib/share/ledger.js.map +1 -0
- package/dist/lib/share/payload.d.ts +101 -0
- package/dist/lib/share/payload.d.ts.map +1 -0
- package/dist/lib/share/payload.js +147 -0
- package/dist/lib/share/payload.js.map +1 -0
- package/dist/lib/share/pending.d.ts +94 -0
- package/dist/lib/share/pending.d.ts.map +1 -0
- package/dist/lib/share/pending.js +256 -0
- package/dist/lib/share/pending.js.map +1 -0
- package/dist/lib/share/preview.d.ts +22 -0
- package/dist/lib/share/preview.d.ts.map +1 -0
- package/dist/lib/share/preview.js +74 -0
- package/dist/lib/share/preview.js.map +1 -0
- package/dist/lib/share/qr.d.ts +13 -0
- package/dist/lib/share/qr.d.ts.map +1 -0
- package/dist/lib/share/qr.js +77 -0
- package/dist/lib/share/qr.js.map +1 -0
- package/dist/lib/share/requests-client.d.ts +63 -0
- package/dist/lib/share/requests-client.d.ts.map +1 -0
- package/dist/lib/share/requests-client.js +69 -0
- package/dist/lib/share/requests-client.js.map +1 -0
- package/dist/lib/share/run.d.ts +134 -0
- package/dist/lib/share/run.d.ts.map +1 -0
- package/dist/lib/share/run.js +278 -0
- package/dist/lib/share/run.js.map +1 -0
- package/dist/lib/share/salt.d.ts +2 -0
- package/dist/lib/share/salt.d.ts.map +1 -0
- package/dist/lib/share/salt.js +44 -0
- package/dist/lib/share/salt.js.map +1 -0
- package/dist/lib/share/secret-patterns.json +100 -0
- package/dist/lib/share/secret-scan.d.ts +24 -0
- package/dist/lib/share/secret-scan.d.ts.map +1 -0
- package/dist/lib/share/secret-scan.js +116 -0
- package/dist/lib/share/secret-scan.js.map +1 -0
- package/dist/lib/share/target.d.ts +38 -0
- package/dist/lib/share/target.d.ts.map +1 -0
- package/dist/lib/share/target.js +80 -0
- package/dist/lib/share/target.js.map +1 -0
- package/dist/lib/share/tty.d.ts +12 -0
- package/dist/lib/share/tty.d.ts.map +1 -0
- package/dist/lib/share/tty.js +102 -0
- package/dist/lib/share/tty.js.map +1 -0
- package/dist/lib/share/visible.d.ts +4 -0
- package/dist/lib/share/visible.d.ts.map +1 -0
- package/dist/lib/share/visible.js +30 -0
- package/dist/lib/share/visible.js.map +1 -0
- package/dist/lib/share/wire.d.ts +98 -0
- package/dist/lib/share/wire.d.ts.map +1 -0
- package/dist/lib/share/wire.js +43 -0
- package/dist/lib/share/wire.js.map +1 -0
- package/dist/lib/similarity/embedding-matrix.d.ts +64 -0
- package/dist/lib/similarity/embedding-matrix.d.ts.map +1 -0
- package/dist/lib/similarity/embedding-matrix.js +119 -0
- package/dist/lib/similarity/embedding-matrix.js.map +1 -0
- package/dist/lib/since-flag.d.ts +11 -0
- package/dist/lib/since-flag.d.ts.map +1 -0
- package/dist/lib/since-flag.js +24 -0
- package/dist/lib/since-flag.js.map +1 -0
- package/dist/lib/since.d.ts +59 -0
- package/dist/lib/since.d.ts.map +1 -0
- package/dist/lib/since.js +86 -0
- package/dist/lib/since.js.map +1 -0
- package/dist/lib/source-key.d.ts +13 -0
- package/dist/lib/source-key.d.ts.map +1 -0
- package/dist/lib/source-key.js +60 -0
- package/dist/lib/source-key.js.map +1 -0
- package/dist/lib/source-sync-state.d.ts +12 -0
- package/dist/lib/source-sync-state.d.ts.map +1 -0
- package/dist/lib/source-sync-state.js +45 -0
- package/dist/lib/source-sync-state.js.map +1 -0
- package/dist/lib/startup-backfill-track.d.ts +2 -0
- package/dist/lib/startup-backfill-track.d.ts.map +1 -0
- package/dist/lib/startup-backfill-track.js +6 -0
- package/dist/lib/startup-backfill-track.js.map +1 -0
- package/dist/lib/startup-xdg.d.ts +2 -0
- package/dist/lib/startup-xdg.d.ts.map +1 -0
- package/dist/lib/startup-xdg.js +9 -0
- package/dist/lib/startup-xdg.js.map +1 -0
- package/dist/lib/sync/after-connect.d.ts +2 -0
- package/dist/lib/sync/after-connect.d.ts.map +1 -0
- package/dist/lib/sync/after-connect.js +18 -0
- package/dist/lib/sync/after-connect.js.map +1 -0
- package/dist/lib/sync/bg-claim.d.ts +14 -0
- package/dist/lib/sync/bg-claim.d.ts.map +1 -0
- package/dist/lib/sync/bg-claim.js +97 -0
- package/dist/lib/sync/bg-claim.js.map +1 -0
- package/dist/lib/sync/blocked.d.ts +8 -0
- package/dist/lib/sync/blocked.d.ts.map +1 -0
- package/dist/lib/sync/blocked.js +45 -0
- package/dist/lib/sync/blocked.js.map +1 -0
- package/dist/lib/sync/classify.d.ts +34 -0
- package/dist/lib/sync/classify.d.ts.map +1 -0
- package/dist/lib/sync/classify.js +93 -0
- package/dist/lib/sync/classify.js.map +1 -0
- package/dist/lib/sync/drain.d.ts +16 -0
- package/dist/lib/sync/drain.d.ts.map +1 -0
- package/dist/lib/sync/drain.js +33 -0
- package/dist/lib/sync/drain.js.map +1 -0
- package/dist/lib/sync/forget.d.ts +12 -0
- package/dist/lib/sync/forget.d.ts.map +1 -0
- package/dist/lib/sync/forget.js +32 -0
- package/dist/lib/sync/forget.js.map +1 -0
- package/dist/lib/sync/launch-hook.d.ts +42 -0
- package/dist/lib/sync/launch-hook.d.ts.map +1 -0
- package/dist/lib/sync/launch-hook.js +117 -0
- package/dist/lib/sync/launch-hook.js.map +1 -0
- package/dist/lib/sync/lock.d.ts +35 -0
- package/dist/lib/sync/lock.d.ts.map +1 -0
- package/dist/lib/sync/lock.js +175 -0
- package/dist/lib/sync/lock.js.map +1 -0
- package/dist/lib/sync/purge.d.ts +38 -0
- package/dist/lib/sync/purge.d.ts.map +1 -0
- package/dist/lib/sync/purge.js +61 -0
- package/dist/lib/sync/purge.js.map +1 -0
- package/dist/lib/sync/real-env.d.ts +265 -0
- package/dist/lib/sync/real-env.d.ts.map +1 -0
- package/dist/lib/sync/real-env.js +47 -0
- package/dist/lib/sync/real-env.js.map +1 -0
- package/dist/lib/sync/relink.d.ts +14 -0
- package/dist/lib/sync/relink.d.ts.map +1 -0
- package/dist/lib/sync/relink.js +36 -0
- package/dist/lib/sync/relink.js.map +1 -0
- package/dist/lib/sync/report.d.ts +3 -0
- package/dist/lib/sync/report.d.ts.map +1 -0
- package/dist/lib/sync/report.js +54 -0
- package/dist/lib/sync/report.js.map +1 -0
- package/dist/lib/sync/run-all.d.ts +23 -0
- package/dist/lib/sync/run-all.d.ts.map +1 -0
- package/dist/lib/sync/run-all.js +30 -0
- package/dist/lib/sync/run-all.js.map +1 -0
- package/dist/lib/sync/run-source.d.ts +73 -0
- package/dist/lib/sync/run-source.d.ts.map +1 -0
- package/dist/lib/sync/run-source.js +262 -0
- package/dist/lib/sync/run-source.js.map +1 -0
- package/dist/lib/sync/safe-read.d.ts +4 -0
- package/dist/lib/sync/safe-read.d.ts.map +1 -0
- package/dist/lib/sync/safe-read.js +40 -0
- package/dist/lib/sync/safe-read.js.map +1 -0
- package/dist/lib/sync/should-background-sync.d.ts +31 -0
- package/dist/lib/sync/should-background-sync.d.ts.map +1 -0
- package/dist/lib/sync/should-background-sync.js +69 -0
- package/dist/lib/sync/should-background-sync.js.map +1 -0
- package/dist/lib/sync/source-ids.d.ts +10 -0
- package/dist/lib/sync/source-ids.d.ts.map +1 -0
- package/dist/lib/sync/source-ids.js +9 -0
- package/dist/lib/sync/source-ids.js.map +1 -0
- package/dist/lib/sync/sources.d.ts +33 -0
- package/dist/lib/sync/sources.d.ts.map +1 -0
- package/dist/lib/sync/sources.js +37 -0
- package/dist/lib/sync/sources.js.map +1 -0
- package/dist/lib/sync/spawn-background.d.ts +27 -0
- package/dist/lib/sync/spawn-background.d.ts.map +1 -0
- package/dist/lib/sync/spawn-background.js +66 -0
- package/dist/lib/sync/spawn-background.js.map +1 -0
- package/dist/lib/sync/status.d.ts +57 -0
- package/dist/lib/sync/status.d.ts.map +1 -0
- package/dist/lib/sync/status.js +166 -0
- package/dist/lib/sync/status.js.map +1 -0
- package/dist/lib/sync/summary-read.d.ts +19 -0
- package/dist/lib/sync/summary-read.d.ts.map +1 -0
- package/dist/lib/sync/summary-read.js +39 -0
- package/dist/lib/sync/summary-read.js.map +1 -0
- package/dist/lib/sync/summary.d.ts +10 -0
- package/dist/lib/sync/summary.d.ts.map +1 -0
- package/dist/lib/sync/summary.js +80 -0
- package/dist/lib/sync/summary.js.map +1 -0
- package/dist/lib/sync/sync-state.d.ts +128 -0
- package/dist/lib/sync/sync-state.d.ts.map +1 -0
- package/dist/lib/sync/sync-state.js +255 -0
- package/dist/lib/sync/sync-state.js.map +1 -0
- package/dist/lib/sync/telemetry.d.ts +20 -0
- package/dist/lib/sync/telemetry.d.ts.map +1 -0
- package/dist/lib/sync/telemetry.js +31 -0
- package/dist/lib/sync/telemetry.js.map +1 -0
- package/dist/lib/sync/threads.d.ts +48 -0
- package/dist/lib/sync/threads.d.ts.map +1 -0
- package/dist/lib/sync/threads.js +82 -0
- package/dist/lib/sync/threads.js.map +1 -0
- package/dist/lib/sync/window.d.ts +72 -0
- package/dist/lib/sync/window.d.ts.map +1 -0
- package/dist/lib/sync/window.js +112 -0
- package/dist/lib/sync/window.js.map +1 -0
- package/dist/lib/team-cta.d.ts +11 -0
- package/dist/lib/team-cta.d.ts.map +1 -0
- package/dist/lib/team-cta.js +16 -0
- package/dist/lib/team-cta.js.map +1 -0
- package/dist/lib/telemetry-ci.d.ts +2 -0
- package/dist/lib/telemetry-ci.d.ts.map +1 -0
- package/dist/lib/telemetry-ci.js +21 -0
- package/dist/lib/telemetry-ci.js.map +1 -0
- package/dist/lib/telemetry-consent.d.ts +44 -23
- package/dist/lib/telemetry-consent.d.ts.map +1 -1
- package/dist/lib/telemetry-consent.js +74 -35
- package/dist/lib/telemetry-consent.js.map +1 -1
- package/dist/lib/telemetry-env.d.ts +1 -1
- package/dist/lib/usage-telemetry.d.ts +89 -24
- package/dist/lib/usage-telemetry.d.ts.map +1 -1
- package/dist/lib/usage-telemetry.js +283 -76
- package/dist/lib/usage-telemetry.js.map +1 -1
- package/dist/lib/xdg.d.ts +27 -0
- package/dist/lib/xdg.d.ts.map +1 -0
- package/dist/lib/xdg.js +56 -0
- package/dist/lib/xdg.js.map +1 -0
- package/package.json +6 -3
- package/dist/commands/push.d.ts +0 -25
- package/dist/commands/push.d.ts.map +0 -1
- package/dist/commands/push.js +0 -98
- package/dist/commands/push.js.map +0 -1
- package/dist/lib/personal-email-domains.d.ts +0 -8
- package/dist/lib/personal-email-domains.d.ts.map +0 -1
- package/dist/lib/personal-email-domains.js +0 -39
- package/dist/lib/personal-email-domains.js.map +0 -1
|
@@ -1,72 +1,57 @@
|
|
|
1
1
|
import { alignServerEntry } from '../../mcp-setup.js';
|
|
2
|
-
import { COPY_PREFIX
|
|
3
|
-
import { geminiSystemDefaultsPath } from '../gemini-trust.js';
|
|
4
|
-
import { parseJsonc } from '../strict-entry.js';
|
|
2
|
+
import { COPY_PREFIX } from '../gemini-state.js';
|
|
5
3
|
/** Same reason as the Claude adapter: never shadow a user's own `align` server. */
|
|
6
4
|
const INJECTED_SERVER_NAME = 'align-local';
|
|
7
5
|
export const GEMINI_TRUST_NOTE = "Gemini turns off MCP servers, Align's included, in folders you haven't trusted. Trust this folder in Gemini to use the graph here.";
|
|
8
|
-
const isObject = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
9
|
-
/** The system settings (JSONC, as Gemini reads them) as an object we can add to, or null when we must not touch them. */
|
|
10
|
-
function parseTheirs(text) {
|
|
11
|
-
if (text === null)
|
|
12
|
-
return {};
|
|
13
|
-
const parsed = parseJsonc(text);
|
|
14
|
-
if (!parsed)
|
|
15
|
-
return null;
|
|
16
|
-
if (parsed['mcpServers'] !== undefined && !isObject(parsed['mcpServers']))
|
|
17
|
-
return null;
|
|
18
|
-
return parsed;
|
|
19
|
-
}
|
|
20
6
|
/**
|
|
21
|
-
* Gemini CLI,
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
7
|
+
* Gemini CLI, written ONCE (gemini 0.63.0): the `align-local` entry goes into the user's
|
|
8
|
+
* settings file by the safe writer, with a backup and an exact `align use --undo`.
|
|
9
|
+
*
|
|
10
|
+
* Not per session. The first design pointed GEMINI_CLI_SYSTEM_SETTINGS_PATH at a copy in the
|
|
11
|
+
* launch cache, and Gemini 0.63.0 skips any system settings file unless the file and every
|
|
12
|
+
* directory above it is root-owned and not group/other writable (gemini-system-file.ts), so
|
|
13
|
+
* Gemini users got no graph and only Gemini's own warning as a clue. A per-session
|
|
14
|
+
* GEMINI_CLI_HOME was rejected too: it would have to mirror the user's whole ~/.gemini (oauth
|
|
15
|
+
* credentials, history, trusted folders, extensions) and anything Gemini writes there during
|
|
16
|
+
* the session, a changed theme or a first login, would be lost with the session directory.
|
|
30
17
|
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
18
|
+
* Nothing else changes: no flags, no GEMINI_CLI_* variable (so a repo .env cannot substitute
|
|
19
|
+
* one either), no --skip-trust. Trust: Gemini turns off every MCP server in a folder it does
|
|
20
|
+
* not trust. align says so in one line and never trusts a folder for the user.
|
|
33
21
|
* Instructions come from the managed GEMINI.md block. Pass-through args are the whole of the args.
|
|
34
22
|
*/
|
|
35
23
|
export function buildGeminiLaunch(c) {
|
|
36
|
-
const
|
|
37
|
-
const files = [];
|
|
24
|
+
const writes = [];
|
|
38
25
|
const notes = [];
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
injected = true;
|
|
58
|
-
}
|
|
26
|
+
if (c.blocked) {
|
|
27
|
+
notes.push(`Gemini will not load Align's graph: ${c.blocked.file} - ${c.blocked.why}. Remove that to use the graph.`);
|
|
28
|
+
}
|
|
29
|
+
if (c.conflict) {
|
|
30
|
+
notes.push(`${c.conflict} defines its own align-local MCP server, so Align did not add its graph to Gemini. Remove that entry to use the graph.`);
|
|
31
|
+
}
|
|
32
|
+
else if (!c.present && !c.blocked) {
|
|
33
|
+
writes.push({
|
|
34
|
+
kind: 'mcp-entry',
|
|
35
|
+
file: c.settingsFile,
|
|
36
|
+
topKey: 'mcpServers',
|
|
37
|
+
name: INJECTED_SERVER_NAME,
|
|
38
|
+
entry: alignServerEntry('mcpServers', 'local'),
|
|
39
|
+
invalidJsonAdvice: ' (Gemini accepts comments in this file and align does not, so remove any comments or fix the syntax), then run align again',
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
if (c.repoAlign) {
|
|
43
|
+
notes.push(`${c.repoAlign} defines an \`align\` MCP server of its own that Gemini will run next to Align's. Check it before you trust this folder.`);
|
|
59
44
|
}
|
|
60
45
|
if (c.trust === 'untrusted' || c.trust === 'unknown')
|
|
61
46
|
notes.push(GEMINI_TRUST_NOTE);
|
|
62
47
|
return {
|
|
63
48
|
bin: 'gemini',
|
|
64
49
|
args: [...c.passthrough],
|
|
65
|
-
env,
|
|
66
|
-
files,
|
|
67
|
-
//
|
|
68
|
-
|
|
69
|
-
|
|
50
|
+
env: { ALIGN_WRAPPED: '1' },
|
|
51
|
+
files: [],
|
|
52
|
+
// Ages out the system-settings copies earlier align versions left in the cache.
|
|
53
|
+
prune: { prefix: COPY_PREFIX },
|
|
54
|
+
...(writes.length > 0 ? { writes } : {}),
|
|
70
55
|
...(notes.length > 0 ? { notes } : {}),
|
|
71
56
|
};
|
|
72
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-cli.js","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/gemini-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"gemini-cli.js","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/gemini-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAA2B,MAAM,oBAAoB,CAAC;AAK1E,mFAAmF;AACnF,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAE3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,oIAAoI,CAAC;AAEtK;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAAsB;IACtD,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,iCAAiC,CAAC,CAAC;IACxH,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,wHAAwH,CAAC,CAAC;IACpJ,CAAC;SAAM,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,CAAC,CAAC,YAAY;YACpB,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC;YAC9C,iBAAiB,EAAE,4HAA4H;SAChJ,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,0HAA0H,CAAC,CAAC;IACvJ,CAAC;IACD,IAAI,CAAC,CAAC,KAAK,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpF,OAAO;QACL,GAAG,EAAE,QAAQ;QACb,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;QACxB,GAAG,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE;QAC3B,KAAK,EAAE,EAAE;QACT,gFAAgF;QAChF,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;QAC9B,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { GooseProjectState } from '../goose-state.js';
|
|
2
|
+
import type { LaunchContext, LaunchSpec } from './claude-code.js';
|
|
3
|
+
export interface GooseLaunchContext extends Pick<LaunchContext, 'passthrough'>, GooseProjectState {
|
|
4
|
+
/** A `--recipe` file of the user's that names align-local (its path), else undefined. */
|
|
5
|
+
recipeDefinesAlignLocal?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Goose, per session, nothing written (goose 1.54.0, `goose session --help`):
|
|
9
|
+
* `--with-extension '[name:]command args...'` adds a stdio extension for that session, and the
|
|
10
|
+
* user's own extensions still load (Align never passes `--no-profile`). Verified with `goose run`,
|
|
11
|
+
* which takes the same flag, against a stub model: the request carried the user's tools and
|
|
12
|
+
* align-local's. The `align-local:` prefix names it.
|
|
13
|
+
*
|
|
14
|
+
* The chat and the one-shot run take it: with no subcommand (or only session options) Align opens
|
|
15
|
+
* `goose session`, the interactive command; `session`/`s` or `run` the user typed gets it right
|
|
16
|
+
* after; any other subcommand is left alone, with one line. When config.yaml already has align-local,
|
|
17
|
+
* nothing is added: an enabled same-named extension makes goose refuse to start.
|
|
18
|
+
*/
|
|
19
|
+
export declare function buildGooseLaunch(c: GooseLaunchContext): LaunchSpec;
|
|
20
|
+
//# sourceMappingURL=goose.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goose.d.ts","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/goose.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAElE,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,iBAAiB;IAC/F,yFAAyF;IACzF,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAOD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,kBAAkB,GAAG,UAAU,CAuBlE"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { alignServerEntry } from '../../mcp-setup.js';
|
|
2
|
+
import { unreadableNote } from './notes.js';
|
|
3
|
+
/** goose's root-only options: they print and exit, so there is no session to add to. */
|
|
4
|
+
const ROOT_ONLY = new Set(['-h', '--help', '-V', '--version']);
|
|
5
|
+
/** `goose session <sub>` commands that open no chat (goose 1.54.0, `goose session --help`). */
|
|
6
|
+
const SESSION_SUBCOMMANDS = new Set(['list', 'remove', 'export', 'import', 'diagnostics', 'rename', 'help']);
|
|
7
|
+
/**
|
|
8
|
+
* Goose, per session, nothing written (goose 1.54.0, `goose session --help`):
|
|
9
|
+
* `--with-extension '[name:]command args...'` adds a stdio extension for that session, and the
|
|
10
|
+
* user's own extensions still load (Align never passes `--no-profile`). Verified with `goose run`,
|
|
11
|
+
* which takes the same flag, against a stub model: the request carried the user's tools and
|
|
12
|
+
* align-local's. The `align-local:` prefix names it.
|
|
13
|
+
*
|
|
14
|
+
* The chat and the one-shot run take it: with no subcommand (or only session options) Align opens
|
|
15
|
+
* `goose session`, the interactive command; `session`/`s` or `run` the user typed gets it right
|
|
16
|
+
* after; any other subcommand is left alone, with one line. When config.yaml already has align-local,
|
|
17
|
+
* nothing is added: an enabled same-named extension makes goose refuse to start.
|
|
18
|
+
*/
|
|
19
|
+
export function buildGooseLaunch(c) {
|
|
20
|
+
const spec = { bin: 'goose', args: [...c.passthrough], env: { ALIGN_WRAPPED: '1' }, files: [] };
|
|
21
|
+
if (c.conflict) {
|
|
22
|
+
return { ...spec, notes: [`${c.conflict} defines its own align-local extension, so Align did not add its graph to Goose. Remove or rename that entry to use the graph.`] };
|
|
23
|
+
}
|
|
24
|
+
if (c.unreadable) {
|
|
25
|
+
return { ...spec, notes: [unreadableNote(c.unreadable)] };
|
|
26
|
+
}
|
|
27
|
+
if (c.recipeDefinesAlignLocal) {
|
|
28
|
+
return { ...spec, notes: [`${c.recipeDefinesAlignLocal} defines its own align-local extension, so Align did not add its graph to Goose. Remove or rename that entry to use the graph.`] };
|
|
29
|
+
}
|
|
30
|
+
if (c.present)
|
|
31
|
+
return spec;
|
|
32
|
+
const { command, args } = alignServerEntry('mcpServers', 'local');
|
|
33
|
+
const ext = ['--with-extension', `align-local:${[command, ...args].join(' ')}`];
|
|
34
|
+
const [first, ...rest] = c.passthrough;
|
|
35
|
+
if (first === undefined || (first.startsWith('-') && !ROOT_ONLY.has(first)))
|
|
36
|
+
return { ...spec, args: ['session', ...ext, ...c.passthrough] };
|
|
37
|
+
if (ROOT_ONLY.has(first))
|
|
38
|
+
return spec;
|
|
39
|
+
if (first === 'session' || first === 's') {
|
|
40
|
+
return rest[0] !== undefined && SESSION_SUBCOMMANDS.has(rest[0]) ? spec : { ...spec, args: [first, ...ext, ...rest] };
|
|
41
|
+
}
|
|
42
|
+
// `goose run` takes the same flag, and is the form that was checked against a stub model.
|
|
43
|
+
if (first === 'run')
|
|
44
|
+
return { ...spec, args: [first, ...ext, ...rest] };
|
|
45
|
+
return { ...spec, notes: [`Align adds its graph to \`goose session\` and \`goose run\` only, so \`goose ${first}\` opens without it.`] };
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=goose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goose.js","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/goose.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notes.d.ts","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/notes.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAExF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** The line for a config Align could not read with certainty (not a foreign align-local). */
|
|
2
|
+
export function unreadableNote(u) {
|
|
3
|
+
return `${u.file}: Align cannot be sure what line ${u.line} says (${u.reason}), so it did not add its graph for this session.`;
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=notes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notes.js","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/notes.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,MAAM,UAAU,cAAc,CAAC,CAAiD;IAC9E,OAAO,GAAG,CAAC,CAAC,IAAI,oCAAoC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,MAAM,kDAAkD,CAAC;AACjI,CAAC"}
|
|
@@ -23,6 +23,8 @@ export declare const PICK_PRIORITY: readonly LaunchAgentId[];
|
|
|
23
23
|
export declare const PRE_WAVE_A: ReadonlySet<LaunchAgentId>;
|
|
24
24
|
/** The agents launchable before wave B (wave A included). */
|
|
25
25
|
export declare const PRE_WAVE_B: ReadonlySet<LaunchAgentId>;
|
|
26
|
+
/** The agents launchable before wave C (waves A and B included). */
|
|
27
|
+
export declare const PRE_WAVE_C: ReadonlySet<LaunchAgentId>;
|
|
26
28
|
export declare function byPriority(agents: LaunchAgent[]): LaunchAgent[];
|
|
27
29
|
/**
|
|
28
30
|
* The agent's binary on PATH, and where. Only `bin` is accepted: for Cursor that is `cursor-agent`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../../src/lib/launch/agents.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,qFAAqF;IACrF,SAAS,EAAE,aAAa,GAAG,cAAc,CAAC;IAC1C,2FAA2F;IAC3F,SAAS,EAAE,OAAO,CAAC;IACnB,wFAAwF;IACxF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAE/C,CAAC;AAEF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAE7E;AAED,eAAO,MAAM,eAAe,QAAO,WAAW,EAA8C,CAAC;AAE7F;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,aAAa,
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../../src/lib/launch/agents.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,qFAAqF;IACrF,SAAS,EAAE,aAAa,GAAG,cAAc,CAAC;IAC1C,2FAA2F;IAC3F,SAAS,EAAE,OAAO,CAAC;IACnB,wFAAwF;IACxF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAE/C,CAAC;AAEF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAE7E;AAED,eAAO,MAAM,eAAe,QAAO,WAAW,EAA8C,CAAC;AAE7F;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,aAAa,EAAiL,CAAC;AACpO,2CAA2C;AAC3C,eAAO,MAAM,UAAU,EAAE,WAAW,CAAC,aAAa,CAAwD,CAAC;AAC3G,6DAA6D;AAC7D,eAAO,MAAM,UAAU,EAAE,WAAW,CAAC,aAAa,CAA8D,CAAC;AACjH,oEAAoE;AACpE,eAAO,MAAM,UAAU,EAAE,WAAW,CAAC,aAAa,CAA0E,CAAC;AAE7H,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAM/D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,CAAC,EAAE,WAAW,EACd,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,EAC/F,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,QAAQ,EAAE,MAAM,GACf;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAKtC"}
|
|
@@ -10,11 +10,13 @@ export const supportedAgents = () => LAUNCH_AGENTS.filter((a) => a.supported);
|
|
|
10
10
|
* --approve). The agents launchable before wave A keep their old order, Claude Code first, so a
|
|
11
11
|
* scripted first run picks what it picked before; the wave A agents come after them.
|
|
12
12
|
*/
|
|
13
|
-
export const PICK_PRIORITY = ['claude-code', 'cursor', 'opencode', 'pi', 'codex', 'copilot', 'gemini-cli', 'amp', 'droid', 'grok-build', 'kiro', 'qwen'];
|
|
13
|
+
export const PICK_PRIORITY = ['claude-code', 'cursor', 'opencode', 'pi', 'codex', 'copilot', 'gemini-cli', 'amp', 'droid', 'grok-build', 'kiro', 'qwen', 'goose', 'auggie', 'continue', 'cline', 'aider'];
|
|
14
14
|
/** The agents launchable before wave A. */
|
|
15
15
|
export const PRE_WAVE_A = new Set(['claude-code', 'cursor', 'opencode', 'pi']);
|
|
16
16
|
/** The agents launchable before wave B (wave A included). */
|
|
17
17
|
export const PRE_WAVE_B = new Set([...PRE_WAVE_A, 'codex', 'copilot', 'gemini-cli']);
|
|
18
|
+
/** The agents launchable before wave C (waves A and B included). */
|
|
19
|
+
export const PRE_WAVE_C = new Set([...PRE_WAVE_B, 'amp', 'droid', 'grok-build', 'kiro', 'qwen']);
|
|
18
20
|
export function byPriority(agents) {
|
|
19
21
|
const rank = (a) => {
|
|
20
22
|
const i = PICK_PRIORITY.indexOf(a.name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../src/lib/launch/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAejE,MAAM,CAAC,MAAM,aAAa,GAA2B,cAAc,CAAC,GAAG,CACrE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CACrI,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,IAAwB;IAClD,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,GAAkB,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAE7F;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAA6B,CAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../src/lib/launch/agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type AlignLocalState } from './strict-entry.js';
|
|
2
|
+
export interface AuggieProjectState extends AlignLocalState {
|
|
3
|
+
/** `<augment cache dir>/settings.json`, the user layer: the one file align adds to. */
|
|
4
|
+
settingsFile: string;
|
|
5
|
+
/** It parses only with its comments stripped: align never rewrites it (the comments would go). */
|
|
6
|
+
commented: boolean;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* What Auggie would already load for align (auggie 0.36.0, read from its bundle and checked with
|
|
10
|
+
* `auggie mcp list --json` in a sandbox). Layers: managed, then for the workspace root
|
|
11
|
+
* `.augment/settings.local.json` and `.augment/settings.json`, then the user file
|
|
12
|
+
* `<--augment-cache-dir, default ~/.augment>/settings.json`. A same-named server in a workspace
|
|
13
|
+
* layer replaced the user's. So:
|
|
14
|
+
* - a canonical align-local (or `align`) in any layer: present, nothing to add;
|
|
15
|
+
* - a non-canonical align-local in any layer: a conflict. In a repo layer it would replace ours;
|
|
16
|
+
* in the user file the writer adds and never edits.
|
|
17
|
+
* Files are parsed as Auggie parses them (comments and trailing commas allowed), and a layer align
|
|
18
|
+
* still cannot parse that names align at all is a conflict too (fail closed).
|
|
19
|
+
* The workspace root is the git root unless `-w/--workspace-root` names one: every ancestor of the
|
|
20
|
+
* cwd is read (a superset), plus the named root.
|
|
21
|
+
*/
|
|
22
|
+
export declare function readAuggieState(cwd: string, home: string, opts: {
|
|
23
|
+
localIsDefault: boolean;
|
|
24
|
+
}, env: Record<string, string | undefined>, platform: string, passthrough: string[]): AuggieProjectState;
|
|
25
|
+
//# sourceMappingURL=auggie-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auggie-state.d.ts","sourceRoot":"","sources":["../../../src/lib/launch/auggie-state.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAA4E,MAAM,mBAAmB,CAAC;AAEnI,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,uFAAuF;IACvF,YAAY,EAAE,MAAM,CAAC;IACrB,kGAAkG;IAClG,SAAS,EAAE,OAAO,CAAC;CACpB;AAqBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,cAAc,EAAE,OAAO,CAAA;CAAE,EACjC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EAAE,GACpB,kBAAkB,CAmCpB"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { ancestors, optionValue, readText } from './layer-files.js';
|
|
3
|
+
import { isCanonicalLocalEntry, parseJsoncTrailingCommas, unreadableMentionsAlign } from './strict-entry.js';
|
|
4
|
+
const isObject = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
5
|
+
function strictParse(text) {
|
|
6
|
+
try {
|
|
7
|
+
JSON.parse(text);
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/** Auggie's managed settings: /etc/augment, or %ProgramData%\augment (its bundle, n1e()). */
|
|
15
|
+
function managedFile(env, platform) {
|
|
16
|
+
return platform === 'win32'
|
|
17
|
+
? path.win32.join(env['ProgramData'] || 'C:\\ProgramData', 'augment', 'settings.json')
|
|
18
|
+
: path.posix.join('/etc', 'augment', 'settings.json');
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* What Auggie would already load for align (auggie 0.36.0, read from its bundle and checked with
|
|
22
|
+
* `auggie mcp list --json` in a sandbox). Layers: managed, then for the workspace root
|
|
23
|
+
* `.augment/settings.local.json` and `.augment/settings.json`, then the user file
|
|
24
|
+
* `<--augment-cache-dir, default ~/.augment>/settings.json`. A same-named server in a workspace
|
|
25
|
+
* layer replaced the user's. So:
|
|
26
|
+
* - a canonical align-local (or `align`) in any layer: present, nothing to add;
|
|
27
|
+
* - a non-canonical align-local in any layer: a conflict. In a repo layer it would replace ours;
|
|
28
|
+
* in the user file the writer adds and never edits.
|
|
29
|
+
* Files are parsed as Auggie parses them (comments and trailing commas allowed), and a layer align
|
|
30
|
+
* still cannot parse that names align at all is a conflict too (fail closed).
|
|
31
|
+
* The workspace root is the git root unless `-w/--workspace-root` names one: every ancestor of the
|
|
32
|
+
* cwd is read (a superset), plus the named root.
|
|
33
|
+
*/
|
|
34
|
+
export function readAuggieState(cwd, home, opts, env, platform, passthrough) {
|
|
35
|
+
const o = { ...opts, platform, host: 'auggie' };
|
|
36
|
+
const cacheDir = optionValue(passthrough, '--augment-cache-dir');
|
|
37
|
+
const settingsFile = cacheDir ? path.join(path.resolve(cacheDir), 'settings.json') : path.join(home, '.augment', 'settings.json');
|
|
38
|
+
const root = optionValue(passthrough, '--workspace-root') ?? optionValue(passthrough, '-w');
|
|
39
|
+
const roots = [...(root ? [path.resolve(cwd, root)] : []), ...ancestors(cwd)];
|
|
40
|
+
const files = [
|
|
41
|
+
managedFile(env, platform),
|
|
42
|
+
...roots.flatMap((d) => [path.join(d, '.augment', 'settings.local.json'), path.join(d, '.augment', 'settings.json')]),
|
|
43
|
+
settingsFile,
|
|
44
|
+
].filter((f, i, all) => all.indexOf(f) === i);
|
|
45
|
+
const text = readText(settingsFile);
|
|
46
|
+
const state = {
|
|
47
|
+
present: false,
|
|
48
|
+
overridden: [],
|
|
49
|
+
settingsFile,
|
|
50
|
+
// Comments or a trailing comma: Auggie accepts both, and a JSON rewrite would drop them.
|
|
51
|
+
commented: text !== null && text.trim() !== '' && !strictParse(text) && parseJsoncTrailingCommas(text) !== null,
|
|
52
|
+
};
|
|
53
|
+
for (const file of files) {
|
|
54
|
+
const body = file === settingsFile ? text : readText(file);
|
|
55
|
+
const parsed = parseJsoncTrailingCommas(body);
|
|
56
|
+
if (unreadableMentionsAlign(body, parsed)) {
|
|
57
|
+
state.conflict ??= file;
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
const servers = parsed?.['mcpServers'];
|
|
61
|
+
if (!isObject(servers))
|
|
62
|
+
continue;
|
|
63
|
+
if (isCanonicalLocalEntry(servers['align'], o))
|
|
64
|
+
state.present = true;
|
|
65
|
+
if (!('align-local' in servers))
|
|
66
|
+
continue;
|
|
67
|
+
if (isCanonicalLocalEntry(servers['align-local'], o))
|
|
68
|
+
state.present = true;
|
|
69
|
+
else
|
|
70
|
+
state.conflict ??= file;
|
|
71
|
+
}
|
|
72
|
+
return state;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=auggie-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auggie-state.js","sourceRoot":"","sources":["../../../src/lib/launch/auggie-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type AlignLocalState } from './strict-entry.js';
|
|
2
|
+
export interface ClineProjectState extends AlignLocalState {
|
|
3
|
+
/** The one MCP settings file Cline CLI loads: the file align adds to. */
|
|
4
|
+
mcpFile: string;
|
|
5
|
+
/** The user's --config or --data-dir chose that file for this session only: align writes nothing there. */
|
|
6
|
+
oneSession: boolean;
|
|
7
|
+
/** Align's own entry, with an older key set or values that have changed since: refresh it. */
|
|
8
|
+
stale?: boolean;
|
|
9
|
+
/** The conflict is an env value Align did not write: which key. */
|
|
10
|
+
envConflictKey?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function clineMcpFile(home: string, env: Record<string, string | undefined>, passthrough: string[]): string;
|
|
13
|
+
/**
|
|
14
|
+
* The variables that place Cline's files, as cline would resolve them this launch. Cline loads
|
|
15
|
+
* `.env`/`.env.local` from the cwd, so the launch pins them (only those the user did not export);
|
|
16
|
+
* a process variable wins over its dotenv. CLINE_DIR is pinned to the user's own dir even with
|
|
17
|
+
* `--config`, which beats it anyway; CLINE_DATA_DIR follows `--config` and `--data-dir`, because an
|
|
18
|
+
* exported one beats `--config` (checked) and must not undo the user's flag. Without `--data-dir`,
|
|
19
|
+
* the sandbox switches are pinned off: a repo `.env` with CLINE_SANDBOX=1 would move the data dir
|
|
20
|
+
* and the provider settings. Empty is a no-op for all three in cline's source (`?.trim()` checks).
|
|
21
|
+
*/
|
|
22
|
+
export declare function clinePins(home: string, env: Record<string, string | undefined>, passthrough: string[]): Record<string, string>;
|
|
23
|
+
/**
|
|
24
|
+
* What Cline CLI would already load for align (cline 3.0.70): one MCP settings file, no repo
|
|
25
|
+
* layer (checked in a sandbox: a repo's `.cline/` MCP files were not listed by `cline config
|
|
26
|
+
* --json`). A canonical align-local or `align` there is present; any other align-local is a
|
|
27
|
+
* conflict, because the writer adds and never edits.
|
|
28
|
+
*/
|
|
29
|
+
export declare function readClineState(_cwd: string, home: string, opts: {
|
|
30
|
+
localIsDefault: boolean;
|
|
31
|
+
}, env: Record<string, string | undefined>, platform: string, passthrough: string[]): ClineProjectState;
|
|
32
|
+
//# sourceMappingURL=cline-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cline-state.d.ts","sourceRoot":"","sources":["../../../src/lib/launch/cline-state.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,eAAe,EAAqF,MAAM,mBAAmB,CAAC;AAE5I,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,2GAA2G;IAC3G,UAAU,EAAE,OAAO,CAAC;IACpB,8FAA8F;IAC9F,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAwBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CAEjH;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAS9H;AA2BD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,cAAc,EAAE,OAAO,CAAA;CAAE,EACjC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EAAE,GACpB,iBAAiB,CAqBnB"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { optionValue, readText } from './layer-files.js';
|
|
3
|
+
import { classifyChildEnv } from './mcp-child-env.js';
|
|
4
|
+
import { isCanonicalLocalEntry, parseJsonc, unreadableMentionsAlign } from './strict-entry.js';
|
|
5
|
+
const isObject = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
6
|
+
const FILE = 'cline_mcp_settings.json';
|
|
7
|
+
/**
|
|
8
|
+
* Where a Cline session reads its MCP servers (cline 3.0.70, its bundled path code):
|
|
9
|
+
* CLINE_MCP_SETTINGS_PATH; else `<data dir>/settings/cline_mcp_settings.json`. The data dir is the
|
|
10
|
+
* user's `--data-dir` (its sandbox setup sets CLINE_DATA_DIR from it; checked in a real session:
|
|
11
|
+
* `cline --data-dir X "..."` loaded X/settings' server), else CLINE_DATA_DIR, else
|
|
12
|
+
* `<cline dir>/data`, the cline dir being the user's `--config` dir, else CLINE_DIR, else ~/.cline.
|
|
13
|
+
* (`cline config --json` ignores --data-dir, which is why an earlier check misread it.)
|
|
14
|
+
*/
|
|
15
|
+
function clineDirs(home, env, passthrough) {
|
|
16
|
+
const configFlag = optionValue(passthrough, '--config');
|
|
17
|
+
const dataFlag = optionValue(passthrough, '--data-dir');
|
|
18
|
+
const userDir = env['CLINE_DIR']?.trim() ? path.resolve(env['CLINE_DIR'].trim()) : path.join(home, '.cline');
|
|
19
|
+
const clineDir = configFlag ? path.resolve(configFlag) : userDir;
|
|
20
|
+
const dataDir = dataFlag ? path.resolve(dataFlag) : env['CLINE_DATA_DIR']?.trim() ? path.resolve(env['CLINE_DATA_DIR'].trim()) : path.join(clineDir, 'data');
|
|
21
|
+
const mcp = env['CLINE_MCP_SETTINGS_PATH']?.trim();
|
|
22
|
+
return { clineDir: userDir, dataDir, mcpFile: mcp ? path.resolve(mcp) : path.join(dataDir, 'settings', FILE) };
|
|
23
|
+
}
|
|
24
|
+
export function clineMcpFile(home, env, passthrough) {
|
|
25
|
+
return clineDirs(home, env, passthrough).mcpFile;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The variables that place Cline's files, as cline would resolve them this launch. Cline loads
|
|
29
|
+
* `.env`/`.env.local` from the cwd, so the launch pins them (only those the user did not export);
|
|
30
|
+
* a process variable wins over its dotenv. CLINE_DIR is pinned to the user's own dir even with
|
|
31
|
+
* `--config`, which beats it anyway; CLINE_DATA_DIR follows `--config` and `--data-dir`, because an
|
|
32
|
+
* exported one beats `--config` (checked) and must not undo the user's flag. Without `--data-dir`,
|
|
33
|
+
* the sandbox switches are pinned off: a repo `.env` with CLINE_SANDBOX=1 would move the data dir
|
|
34
|
+
* and the provider settings. Empty is a no-op for all three in cline's source (`?.trim()` checks).
|
|
35
|
+
*/
|
|
36
|
+
export function clinePins(home, env, passthrough) {
|
|
37
|
+
const d = clineDirs(home, env, passthrough);
|
|
38
|
+
// Cline reads each one with `?.trim()` and skips it when empty (cline 3.0.70 bundled binary:
|
|
39
|
+
// the sandbox switch in Ed(), P(), lh(), Xd(), xi(), oa()), so empty is a no-op. With
|
|
40
|
+
// --data-dir, cline's own sandbox setup sets these from the flag.
|
|
41
|
+
const sandboxOff = optionValue(passthrough, '--data-dir') === undefined
|
|
42
|
+
? { CLINE_SANDBOX: '', CLINE_SANDBOX_DATA_DIR: '', CLINE_PROVIDER_SETTINGS_PATH: '', CLINE_GLOBAL_SETTINGS_PATH: '', CLINE_SESSION_DATA_DIR: '', CLINE_DB_DATA_DIR: '' }
|
|
43
|
+
: {};
|
|
44
|
+
return { CLINE_DIR: d.clineDir, CLINE_DATA_DIR: d.dataDir, CLINE_MCP_SETTINGS_PATH: d.mcpFile, ...sandboxOff };
|
|
45
|
+
}
|
|
46
|
+
/** `cline mcp add` wraps the command in `transport` (3.0.70); the flat form loads too. */
|
|
47
|
+
function unwrap(entry) {
|
|
48
|
+
if (isObject(entry) && Object.keys(entry).length === 1 && isObject(entry['transport'])) {
|
|
49
|
+
const { type, ...rest } = entry['transport'];
|
|
50
|
+
return type === 'stdio' ? rest : undefined;
|
|
51
|
+
}
|
|
52
|
+
return entry;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Align's own entry, judged with today's environment: `present` (no env block, or a current
|
|
56
|
+
* one), `stale` (Align's block from an older key set, or values that have changed: refresh it),
|
|
57
|
+
* `envConflict` (an env value Align never writes) or `foreign` (anything else).
|
|
58
|
+
*/
|
|
59
|
+
function judge(entry, o, env) {
|
|
60
|
+
const e = unwrap(entry);
|
|
61
|
+
if (!isObject(e))
|
|
62
|
+
return { kind: 'foreign' };
|
|
63
|
+
if (!('env' in e))
|
|
64
|
+
return isCanonicalLocalEntry(e, o) ? { kind: 'present' } : { kind: 'foreign' };
|
|
65
|
+
const { env: block, ...rest } = e;
|
|
66
|
+
if (!isCanonicalLocalEntry(rest, o))
|
|
67
|
+
return { kind: 'foreign' };
|
|
68
|
+
const c = classifyChildEnv(block, env);
|
|
69
|
+
if (c.kind === 'foreign')
|
|
70
|
+
return { kind: 'envConflict', key: c.key };
|
|
71
|
+
return { kind: c.kind === 'current' ? 'present' : 'stale' };
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* What Cline CLI would already load for align (cline 3.0.70): one MCP settings file, no repo
|
|
75
|
+
* layer (checked in a sandbox: a repo's `.cline/` MCP files were not listed by `cline config
|
|
76
|
+
* --json`). A canonical align-local or `align` there is present; any other align-local is a
|
|
77
|
+
* conflict, because the writer adds and never edits.
|
|
78
|
+
*/
|
|
79
|
+
export function readClineState(_cwd, home, opts, env, platform, passthrough) {
|
|
80
|
+
const o = { ...opts, platform, host: 'mcpServers' };
|
|
81
|
+
const mcpFile = clineMcpFile(home, env, passthrough);
|
|
82
|
+
const oneSession = optionValue(passthrough, '--config') !== undefined || optionValue(passthrough, '--data-dir') !== undefined;
|
|
83
|
+
const state = { present: false, overridden: [], mcpFile, oneSession };
|
|
84
|
+
const text = readText(mcpFile);
|
|
85
|
+
const parsed = parseJsonc(text);
|
|
86
|
+
// Fail closed: a file align cannot parse but that names align may hold a server it cannot see.
|
|
87
|
+
if (unreadableMentionsAlign(text, parsed))
|
|
88
|
+
return { ...state, conflict: mcpFile };
|
|
89
|
+
const servers = parsed?.['mcpServers'];
|
|
90
|
+
if (!isObject(servers))
|
|
91
|
+
return state;
|
|
92
|
+
if (judge(servers['align'], o, env).kind === 'present')
|
|
93
|
+
state.present = true;
|
|
94
|
+
if (!('align-local' in servers))
|
|
95
|
+
return state;
|
|
96
|
+
const v = judge(servers['align-local'], o, env);
|
|
97
|
+
if (v.kind === 'present')
|
|
98
|
+
state.present = true;
|
|
99
|
+
else if (v.kind === 'stale')
|
|
100
|
+
state.stale = true;
|
|
101
|
+
else {
|
|
102
|
+
state.conflict = mcpFile;
|
|
103
|
+
if (v.kind === 'envConflict')
|
|
104
|
+
state.envConflictKey = v.key;
|
|
105
|
+
}
|
|
106
|
+
return state;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=cline-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cline-state.js","sourceRoot":"","sources":["../../../src/lib/launch/cline-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,10 @@ export interface ConfigWrite {
|
|
|
18
18
|
root?: string;
|
|
19
19
|
/** One extra line after the first write (what the user has to do next). */
|
|
20
20
|
hint?: string;
|
|
21
|
+
/** Replace an entry of this name that is Align's own (a stale env block), instead of adding only. */
|
|
22
|
+
replace?: true;
|
|
23
|
+
/** JSON only: the tail of the invalid-JSON message, for a file whose agent reads more than strict JSON (Gemini's settings take comments). */
|
|
24
|
+
invalidJsonAdvice?: string;
|
|
21
25
|
}
|
|
22
26
|
/**
|
|
23
27
|
* Remembers a refused write, so its notice is printed once rather than on every launch. It is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-writes.d.ts","sourceRoot":"","sources":["../../../src/lib/launch/config-writes.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,8HAA8H;IAC9H,IAAI,EAAE,WAAW,GAAG,gBAAgB,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,yHAAyH;IACzH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config-writes.d.ts","sourceRoot":"","sources":["../../../src/lib/launch/config-writes.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,8HAA8H;IAC9H,IAAI,EAAE,WAAW,GAAG,gBAAgB,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,yHAAyH;IACzH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qGAAqG;IACrG,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,6IAA6I;IAC7I,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAKD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAuBvG;AAED,6FAA6F;AAC7F,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAExE"}
|
|
@@ -13,15 +13,20 @@ export function applyConfigWrite(w, note, memo) {
|
|
|
13
13
|
? safeWriteText(w.file, (cur) => appendTomlServer(w, cur), { ...opts, markers: tomlMarkers(w.name), tomlTable: [w.topKey, w.name] })
|
|
14
14
|
: safeWriteJson(w.file, (cur) => {
|
|
15
15
|
const servers = isObject(cur[w.topKey]) ? cur[w.topKey] : {};
|
|
16
|
-
if (w.name in servers)
|
|
16
|
+
if (w.name in servers && !w.replace)
|
|
17
|
+
return undefined;
|
|
18
|
+
if (w.replace && JSON.stringify(servers[w.name]) === JSON.stringify(w.entry))
|
|
17
19
|
return undefined;
|
|
18
20
|
return { ...cur, [w.topKey]: { ...servers, [w.name]: w.entry } };
|
|
19
|
-
}, { ...opts, trailingNewline: true });
|
|
21
|
+
}, { ...opts, trailingNewline: true, ...(w.invalidJsonAdvice ? { invalidJsonAdvice: w.invalidJsonAdvice } : {}) });
|
|
20
22
|
if (status === 'symlink')
|
|
21
23
|
memo?.add(w.file);
|
|
22
24
|
else if (quiet)
|
|
23
25
|
memo?.remove(w.file);
|
|
24
|
-
if (status === 'written') {
|
|
26
|
+
if (status === 'written' && w.replace) {
|
|
27
|
+
note(`Refreshed Align's own ${w.name} entry in ${w.file}. Undo: align use --undo`);
|
|
28
|
+
}
|
|
29
|
+
else if (status === 'written') {
|
|
25
30
|
note(`Added the ${w.name} MCP server to ${w.file} (original kept at ${w.file}${BACKUP_SUFFIX}). Undo: align use --undo`);
|
|
26
31
|
if (w.hint)
|
|
27
32
|
note(w.hint);
|