@aligndottech/cli 0.48.0 → 0.50.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 +10 -8
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +35 -26
- package/dist/cli.js.map +1 -1
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +7 -2
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/ai.d.ts +11 -0
- package/dist/commands/ai.d.ts.map +1 -0
- package/dist/commands/ai.js +121 -0
- package/dist/commands/ai.js.map +1 -0
- 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/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/default-action.js +2 -2
- package/dist/commands/default-action.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/local.d.ts.map +1 -1
- package/dist/commands/local.js +76 -4
- package/dist/commands/local.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 +141 -2
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +72 -14
- 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 +118 -241
- 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 +60 -0
- package/dist/commands/share.js.map +1 -0
- 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 +27 -1
- package/dist/commands/why.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/ask-key-offer.d.ts +38 -0
- package/dist/lib/ask-key-offer.d.ts.map +1 -0
- package/dist/lib/ask-key-offer.js +130 -0
- package/dist/lib/ask-key-offer.js.map +1 -0
- 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/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/config.d.ts +56 -24
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +176 -45
- 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 +93 -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 +96 -0
- package/dist/lib/curation/judgements-db.d.ts.map +1 -0
- package/dist/lib/curation/judgements-db.js +200 -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 +359 -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/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 +34 -0
- package/dist/lib/gateway-client.d.ts.map +1 -1
- package/dist/lib/gateway-client.js +19 -1
- 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/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/amp.d.ts +18 -0
- package/dist/lib/launch/adapters/amp.d.ts.map +1 -0
- package/dist/lib/launch/adapters/amp.js +29 -0
- package/dist/lib/launch/adapters/amp.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/droid.d.ts +19 -0
- package/dist/lib/launch/adapters/droid.d.ts.map +1 -0
- package/dist/lib/launch/adapters/droid.js +38 -0
- package/dist/lib/launch/adapters/droid.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/grok-build.d.ts +16 -0
- package/dist/lib/launch/adapters/grok-build.d.ts.map +1 -0
- package/dist/lib/launch/adapters/grok-build.js +25 -0
- package/dist/lib/launch/adapters/grok-build.js.map +1 -0
- package/dist/lib/launch/adapters/kiro.d.ts +17 -0
- package/dist/lib/launch/adapters/kiro.d.ts.map +1 -0
- package/dist/lib/launch/adapters/kiro.js +25 -0
- package/dist/lib/launch/adapters/kiro.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/adapters/qwen.d.ts +25 -0
- package/dist/lib/launch/adapters/qwen.d.ts.map +1 -0
- package/dist/lib/launch/adapters/qwen.js +67 -0
- package/dist/lib/launch/adapters/qwen.js.map +1 -0
- package/dist/lib/launch/agents.d.ts +6 -1
- package/dist/lib/launch/agents.d.ts.map +1 -1
- package/dist/lib/launch/agents.js +12 -4
- package/dist/lib/launch/agents.js.map +1 -1
- package/dist/lib/launch/amp-state.d.ts +21 -0
- package/dist/lib/launch/amp-state.d.ts.map +1 -0
- package/dist/lib/launch/amp-state.js +61 -0
- package/dist/lib/launch/amp-state.js.map +1 -0
- 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 +11 -1
- package/dist/lib/launch/config-writes.d.ts.map +1 -1
- package/dist/lib/launch/config-writes.js +66 -8
- 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 +5 -2
- package/dist/lib/launch/detect.js.map +1 -1
- package/dist/lib/launch/droid-state.d.ts +24 -0
- package/dist/lib/launch/droid-state.d.ts.map +1 -0
- package/dist/lib/launch/droid-state.js +74 -0
- package/dist/lib/launch/droid-state.js.map +1 -0
- 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/grok-state.d.ts +42 -0
- package/dist/lib/launch/grok-state.d.ts.map +1 -0
- package/dist/lib/launch/grok-state.js +128 -0
- package/dist/lib/launch/grok-state.js.map +1 -0
- package/dist/lib/launch/kiro-state.d.ts +22 -0
- package/dist/lib/launch/kiro-state.d.ts.map +1 -0
- package/dist/lib/launch/kiro-state.js +59 -0
- package/dist/lib/launch/kiro-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 +51 -2
- package/dist/lib/launch/launch.d.ts.map +1 -1
- package/dist/lib/launch/launch.js +70 -6
- package/dist/lib/launch/launch.js.map +1 -1
- package/dist/lib/launch/layer-files.d.ts +12 -0
- package/dist/lib/launch/layer-files.d.ts.map +1 -0
- package/dist/lib/launch/layer-files.js +43 -0
- package/dist/lib/launch/layer-files.js.map +1 -0
- 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 +151 -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 +7 -6
- 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/qwen-state.d.ts +30 -0
- package/dist/lib/launch/qwen-state.d.ts.map +1 -0
- package/dist/lib/launch/qwen-state.js +57 -0
- package/dist/lib/launch/qwen-state.js.map +1 -0
- package/dist/lib/launch/qwen-trust.d.ts +24 -0
- package/dist/lib/launch/qwen-trust.d.ts.map +1 -0
- package/dist/lib/launch/qwen-trust.js +100 -0
- package/dist/lib/launch/qwen-trust.js.map +1 -0
- 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/amp.d.ts +3 -0
- package/dist/lib/launch/registry/agents/amp.d.ts.map +1 -0
- package/dist/lib/launch/registry/agents/amp.js +14 -0
- package/dist/lib/launch/registry/agents/amp.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/droid.d.ts +3 -0
- package/dist/lib/launch/registry/agents/droid.d.ts.map +1 -0
- package/dist/lib/launch/registry/agents/droid.js +13 -0
- package/dist/lib/launch/registry/agents/droid.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/agents/grok-build.d.ts +3 -0
- package/dist/lib/launch/registry/agents/grok-build.d.ts.map +1 -0
- package/dist/lib/launch/registry/agents/grok-build.js +14 -0
- package/dist/lib/launch/registry/agents/grok-build.js.map +1 -0
- package/dist/lib/launch/registry/agents/kiro.d.ts +3 -0
- package/dist/lib/launch/registry/agents/kiro.d.ts.map +1 -0
- package/dist/lib/launch/registry/agents/kiro.js +11 -0
- package/dist/lib/launch/registry/agents/kiro.js.map +1 -0
- package/dist/lib/launch/registry/agents/qwen.d.ts +3 -0
- package/dist/lib/launch/registry/agents/qwen.d.ts.map +1 -0
- package/dist/lib/launch/registry/agents/qwen.js +11 -0
- package/dist/lib/launch/registry/agents/qwen.js.map +1 -0
- package/dist/lib/launch/registry/index.d.ts +4 -1
- package/dist/lib/launch/registry/index.d.ts.map +1 -1
- package/dist/lib/launch/registry/index.js +15 -2
- package/dist/lib/launch/registry/index.js.map +1 -1
- package/dist/lib/launch/registry/types.d.ts +17 -1
- package/dist/lib/launch/registry/types.d.ts.map +1 -1
- package/dist/lib/launch/run-agent.d.ts +11 -0
- package/dist/lib/launch/run-agent.d.ts.map +1 -1
- package/dist/lib/launch/run-agent.js +22 -1
- package/dist/lib/launch/run-agent.js.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 +82 -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/llm-providers.d.ts +66 -0
- package/dist/lib/llm-providers.d.ts.map +1 -0
- package/dist/lib/llm-providers.js +150 -0
- package/dist/lib/llm-providers.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 +484 -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-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 +61 -11
- package/dist/lib/local-db.d.ts.map +1 -1
- package/dist/lib/local-db.js +186 -371
- 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 +30 -87
- package/dist/lib/local-gateway-client.d.ts.map +1 -1
- package/dist/lib/local-gateway-client.js +182 -171
- package/dist/lib/local-gateway-client.js.map +1 -1
- package/dist/lib/local-ingest.d.ts +129 -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 +61 -0
- package/dist/lib/local-link-pass.js.map +1 -0
- package/dist/lib/local-llm.d.ts +63 -12
- package/dist/lib/local-llm.d.ts.map +1 -1
- package/dist/lib/local-llm.js +229 -104
- package/dist/lib/local-llm.js.map +1 -1
- package/dist/lib/local-mode.d.ts +4 -1
- package/dist/lib/local-mode.d.ts.map +1 -1
- package/dist/lib/local-mode.js +16 -1
- 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-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/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-tool.d.ts +46 -0
- package/dist/lib/mcp/share-tool.d.ts.map +1 -0
- package/dist/lib/mcp/share-tool.js +68 -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/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/safe-config-write.d.ts +12 -1
- package/dist/lib/safe-config-write.d.ts.map +1 -1
- package/dist/lib/safe-config-write.js +162 -9
- 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 +42 -0
- package/dist/lib/scope-defaults.js.map +1 -0
- package/dist/lib/scope-real.d.ts +223 -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/share/command.d.ts +32 -0
- package/dist/lib/share/command.d.ts.map +1 -0
- package/dist/lib/share/command.js +136 -0
- package/dist/lib/share/command.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 +135 -0
- package/dist/lib/share/ledger.js.map +1 -0
- package/dist/lib/share/payload.d.ts +92 -0
- package/dist/lib/share/payload.d.ts.map +1 -0
- package/dist/lib/share/payload.js +138 -0
- package/dist/lib/share/payload.js.map +1 -0
- package/dist/lib/share/pending.d.ts +48 -0
- package/dist/lib/share/pending.d.ts.map +1 -0
- package/dist/lib/share/pending.js +130 -0
- package/dist/lib/share/pending.js.map +1 -0
- package/dist/lib/share/preview.d.ts +18 -0
- package/dist/lib/share/preview.d.ts.map +1 -0
- package/dist/lib/share/preview.js +72 -0
- package/dist/lib/share/preview.js.map +1 -0
- package/dist/lib/share/run.d.ts +115 -0
- package/dist/lib/share/run.d.ts.map +1 -0
- package/dist/lib/share/run.js +261 -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 +19 -0
- package/dist/lib/share/secret-scan.d.ts.map +1 -0
- package/dist/lib/share/secret-scan.js +75 -0
- package/dist/lib/share/secret-scan.js.map +1 -0
- package/dist/lib/share/tty.d.ts +4 -0
- package/dist/lib/share/tty.d.ts.map +1 -0
- package/dist/lib/share/tty.js +57 -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 +43 -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-env.d.ts +8 -0
- package/dist/lib/startup-env.d.ts.map +1 -0
- package/dist/lib/startup-env.js +8 -0
- package/dist/lib/startup-env.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 +44 -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 +91 -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 +208 -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 +253 -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 +87 -22
- package/dist/lib/usage-telemetry.d.ts.map +1 -1
- package/dist/lib/usage-telemetry.js +263 -74
- 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 +3 -2
- 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
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { ALIGN_HOSTED_GATEWAY_URL } from './config.js';
|
|
2
2
|
import { telemetryDisabledByEnv } from './telemetry-env.js';
|
|
3
|
-
import { inHookContext } from './hook-context.js';
|
|
3
|
+
import { inHookContext, markHookContext } from './hook-context.js';
|
|
4
|
+
import { inCi } from './telemetry-ci.js';
|
|
5
|
+
import { maybeShowTelemetryNotice, storeEnvOptOut } from './telemetry-consent.js';
|
|
4
6
|
import pkg from '../../package.json' with { type: 'json' };
|
|
5
7
|
/**
|
|
6
8
|
* ALI-403: emit one `cli.command` event per invocation so cloud CLI activation and weekly
|
|
@@ -8,24 +10,45 @@ import pkg from '../../package.json' with { type: 'json' };
|
|
|
8
10
|
*
|
|
9
11
|
* Cloud mode is opt-out: a cloud user is already on an authenticated connection to our
|
|
10
12
|
* gateway, so an event about a call already being made is not a new phone-home. Local-embedded
|
|
11
|
-
* mode
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* setup, default No). `--local` users have no account and no tenant, so there is nothing
|
|
18
|
-
* to authenticate an event against - the consent is the gate.
|
|
13
|
+
* mode is opt-out too since C6, disclosed by a one-time notice (telemetry-consent.ts) that cli.ts
|
|
14
|
+
* prints to stderr before the first send - nothing local sends until it has printed
|
|
15
|
+
* (localTierAllows). An install that answered No to the pre-C6 setup question ('declined')
|
|
16
|
+
* keeps that answer for usage; the two ALI-954 beacons (install, setup_completed) still send
|
|
17
|
+
* for it, as they did. `--local` users have no account and no tenant, so there is nothing to
|
|
18
|
+
* authenticate an event against - the notice, and the stored decision, are the gate.
|
|
19
19
|
* Both modes send only a command name, never arguments or content. docs/telemetry.md lists
|
|
20
20
|
* every event and field, and telemetry-docs-parity.test.ts keeps that page true.
|
|
21
21
|
*
|
|
22
|
-
* `ALIGN_TELEMETRY=0` and `DO_NOT_TRACK=1` (telemetry-env.ts)
|
|
23
|
-
* in both modes, over a granted local
|
|
24
|
-
* two). `align telemetry off` stores 'off', which does the same thing without an env var.
|
|
22
|
+
* `ALIGN_TELEMETRY=0` and `DO_NOT_TRACK=1` (telemetry-env.ts), and running in CI
|
|
23
|
+
* (telemetry-ci.ts, C6), turn everything off, both tiers, in both modes, over a granted local
|
|
24
|
+
* consent included (ALI-618 D3b - one consent model, not two). `align telemetry off` stores 'off', which does the same thing without an env var.
|
|
25
25
|
*/
|
|
26
26
|
export const TELEMETRY_TIMEOUT_MS = 2_000;
|
|
27
27
|
function telemetryOptedOut() {
|
|
28
|
-
return telemetryDisabledByEnv() !== undefined;
|
|
28
|
+
return telemetryDisabledByEnv() !== undefined || inCi();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* THE one predicate for "a stored answer forbids sending anything", read by every send path:
|
|
32
|
+
* local usage, local stages and beacons (localTierAllows), the install beacon's first-run
|
|
33
|
+
* consumption, cloud cli.command and cloud funnel stages, and `align telemetry status`.
|
|
34
|
+
* 'off' is `align telemetry off`; 'declined' is a No to the pre-C6 setup question. The privacy
|
|
35
|
+
* page promises "if you turned telemetry off earlier, it stays off", with no mode attached, so
|
|
36
|
+
* both stop everything in both modes (review of e794c6e, then the coordinator's call that a
|
|
37
|
+
* declined cloud user is off too).
|
|
38
|
+
*/
|
|
39
|
+
export function storedAnswerForbidsSending(consent) {
|
|
40
|
+
return consent === 'off' || consent === 'declined';
|
|
41
|
+
}
|
|
42
|
+
/** The predicate above, read from the store. A store that cannot be read forbids - the direction
|
|
43
|
+
* that sends nothing. */
|
|
44
|
+
async function storedAnswerForbidsSendingNow() {
|
|
45
|
+
try {
|
|
46
|
+
const { createConfigStore } = await import('./config.js');
|
|
47
|
+
return storedAnswerForbidsSending(createConfigStore().getTelemetryConsent());
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
29
52
|
}
|
|
30
53
|
/**
|
|
31
54
|
* POST with a hard timeout, and never throw - telemetry must never fail or delay a command. A
|
|
@@ -34,7 +57,7 @@ function telemetryOptedOut() {
|
|
|
34
57
|
* waiting even if the transport ignores the signal. Shared by the cloud and local-embedded send
|
|
35
58
|
* paths below, which were two copies of this exact race before extraction (fresh-context review).
|
|
36
59
|
*/
|
|
37
|
-
async function postWithTimeout(url, init) {
|
|
60
|
+
async function postWithTimeout(url, init, capMs = TELEMETRY_TIMEOUT_MS) {
|
|
38
61
|
const controller = new AbortController();
|
|
39
62
|
let giveUp = () => { };
|
|
40
63
|
const abandoned = new Promise((resolve) => {
|
|
@@ -43,9 +66,9 @@ async function postWithTimeout(url, init) {
|
|
|
43
66
|
const timer = setTimeout(() => {
|
|
44
67
|
controller.abort();
|
|
45
68
|
giveUp();
|
|
46
|
-
},
|
|
69
|
+
}, capMs);
|
|
47
70
|
try {
|
|
48
|
-
await Promise.race([fetch(url, { ...init, signal: controller.signal }), abandoned]);
|
|
71
|
+
await Promise.race([fetch(url, { ...init, redirect: 'error', signal: controller.signal }), abandoned]);
|
|
49
72
|
}
|
|
50
73
|
catch {
|
|
51
74
|
// Telemetry must never fail a command - see "resolves when the gateway rejects" and
|
|
@@ -56,14 +79,42 @@ async function postWithTimeout(url, init) {
|
|
|
56
79
|
}
|
|
57
80
|
}
|
|
58
81
|
/**
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
82
|
+
* The hard cap on the one send that is awaited: the first-run install beacon. Once per install,
|
|
83
|
+
* so ordinary runs never pay it.
|
|
84
|
+
*/
|
|
85
|
+
export const INSTALL_BEACON_CAP_MS = 800;
|
|
86
|
+
async function postDelivered(url, init, capMs) {
|
|
87
|
+
const controller = new AbortController();
|
|
88
|
+
let timer;
|
|
89
|
+
const capped = new Promise((resolve) => {
|
|
90
|
+
timer = setTimeout(() => {
|
|
91
|
+
// Resolve first: the abort below rejects the fetch, and that must not read as 'failed'.
|
|
92
|
+
resolve('timeout');
|
|
93
|
+
controller.abort();
|
|
94
|
+
}, capMs);
|
|
95
|
+
});
|
|
96
|
+
try {
|
|
97
|
+
return await Promise.race([
|
|
98
|
+
fetch(url, { ...init, redirect: 'error', signal: controller.signal }).then(() => 'delivered', () => 'failed'),
|
|
99
|
+
capped,
|
|
100
|
+
]);
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return 'failed';
|
|
104
|
+
}
|
|
105
|
+
finally {
|
|
106
|
+
clearTimeout(timer);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* ALI-618 D3b: what `align telemetry status` prints. Takes the consent decision and whether the
|
|
111
|
+
* C6 notice has printed as plain arguments rather than reading `config.ts` itself, so the
|
|
112
|
+
* model stays visible in one function a reader can hold in their head - cloud's opt-out
|
|
113
|
+
* default, and local's stored decision or the notice (ALI-954: the two default-on beacons named
|
|
114
|
+
* where usage is off but they are not) - with the env switches and CI overriding both, checked
|
|
115
|
+
* first.
|
|
65
116
|
*/
|
|
66
|
-
export function getTelemetryStatus(env, localConsent) {
|
|
117
|
+
export function getTelemetryStatus(env, localConsent, noticeShown = false, offByEnv) {
|
|
67
118
|
const envSwitch = telemetryDisabledByEnv();
|
|
68
119
|
if (envSwitch === 'DO_NOT_TRACK') {
|
|
69
120
|
return { enabled: false, reason: 'off: DO_NOT_TRACK is set - nothing is sent' };
|
|
@@ -71,27 +122,42 @@ export function getTelemetryStatus(env, localConsent) {
|
|
|
71
122
|
if (envSwitch === 'ALIGN_TELEMETRY') {
|
|
72
123
|
return { enabled: false, reason: 'off: ALIGN_TELEMETRY is set to an opt-out value - nothing is sent' };
|
|
73
124
|
}
|
|
125
|
+
if (inCi()) {
|
|
126
|
+
return { enabled: false, reason: 'off: running in CI - nothing is sent' };
|
|
127
|
+
}
|
|
128
|
+
if (localConsent === 'off' && offByEnv !== undefined) {
|
|
129
|
+
return { enabled: false, reason: `off (${offByEnv.via} was set on ${offByEnv.at.slice(0, 10)}); turn it back on with: align telemetry on` };
|
|
130
|
+
}
|
|
131
|
+
if (env.mode !== 'local-embedded' && storedAnswerForbidsSending(localConsent)) {
|
|
132
|
+
const why = localConsent === 'declined' ? 'you declined when asked' : 'you ran `align telemetry off`';
|
|
133
|
+
return { enabled: false, reason: `off: ${why} - nothing is sent, cloud events included` };
|
|
134
|
+
}
|
|
74
135
|
if (env.mode === 'local-embedded') {
|
|
75
|
-
// ALI-954: "off" here is about usage. The two beacons still send unless the user ran
|
|
76
|
-
// `align telemetry off` (stored 'off') - and the line has to say so, or "off" would be
|
|
77
|
-
// read as "nothing is sent" over a beacon that still is.
|
|
78
|
-
const beacons = ' - the two anonymous counts (install, setup completed) still send; `align telemetry off` stops those too';
|
|
79
136
|
if (localConsent === 'granted') {
|
|
80
|
-
return { enabled: true, reason: 'on: local mode, you opted in
|
|
137
|
+
return { enabled: true, reason: 'on: local mode, you opted in' };
|
|
81
138
|
}
|
|
82
139
|
if (localConsent === 'declined') {
|
|
83
|
-
|
|
140
|
+
// A No to the old setup question is off, beacons included (review of e794c6e).
|
|
141
|
+
return { enabled: false, reason: 'off: local mode, you declined when asked - nothing is sent' };
|
|
84
142
|
}
|
|
85
143
|
if (localConsent === 'off') {
|
|
86
144
|
return { enabled: false, reason: 'off: local mode, you ran `align telemetry off` - nothing is sent' };
|
|
87
145
|
}
|
|
88
|
-
|
|
146
|
+
// C6: opt-out, disclosed by the one-time notice. Nothing sends before it has printed.
|
|
147
|
+
if (noticeShown) {
|
|
148
|
+
return { enabled: true, reason: 'on: local mode, opt-out (the one-time notice explained it) - `align telemetry off` stops it' };
|
|
149
|
+
}
|
|
150
|
+
return { enabled: false, reason: 'off: local mode, nothing has been sent yet - a one-time notice prints before the first send' };
|
|
89
151
|
}
|
|
90
152
|
return { enabled: true, reason: 'on: cloud mode, opt-out default' };
|
|
91
153
|
}
|
|
92
|
-
export async function recordCommandUsage(env, command) {
|
|
154
|
+
export async function recordCommandUsage(env, command, opts = {}) {
|
|
93
155
|
if (telemetryOptedOut())
|
|
94
156
|
return;
|
|
157
|
+
// C6: an agent hook runs on the agent's clock, many times a session, with nobody watching -
|
|
158
|
+
// a usage ping from there counts an editing loop, not a person running a command.
|
|
159
|
+
if (inHookContext())
|
|
160
|
+
return;
|
|
95
161
|
// `align local ...` is the explicitly-offline path. Its caller may still hold a cloud token
|
|
96
162
|
// (the hook may resolve an env other than the one the command used), so the token check below
|
|
97
163
|
// is not enough on its own.
|
|
@@ -103,11 +169,13 @@ export async function recordCommandUsage(env, command) {
|
|
|
103
169
|
// can be in scope without cloud consent: ALIGN_TOKEN exported into the shell, or a
|
|
104
170
|
// logged-in default env resolved by the caller.
|
|
105
171
|
if (env.mode === 'local-embedded') {
|
|
106
|
-
await recordAnonymousCommandUsage(command);
|
|
172
|
+
await recordAnonymousCommandUsage(command, opts.capMs);
|
|
107
173
|
return;
|
|
108
174
|
}
|
|
109
175
|
if (!env.authToken || !env.tenantId)
|
|
110
176
|
return;
|
|
177
|
+
if (await storedAnswerForbidsSendingNow())
|
|
178
|
+
return;
|
|
111
179
|
await postWithTimeout(`${env.gatewayUrl}/telemetry/ingest`, {
|
|
112
180
|
method: 'POST',
|
|
113
181
|
headers: {
|
|
@@ -121,14 +189,14 @@ export async function recordCommandUsage(env, command) {
|
|
|
121
189
|
platform: 'cli',
|
|
122
190
|
properties: { command },
|
|
123
191
|
}),
|
|
124
|
-
});
|
|
192
|
+
}, opts.capMs);
|
|
125
193
|
}
|
|
126
194
|
/**
|
|
127
195
|
* ALI-618: the local-embedded sibling of the cloud send above. No Authorization, no tenant -
|
|
128
|
-
* there is neither. Gated on
|
|
129
|
-
* payload carries exactly three fields (install id, command name, CLI version) so there
|
|
130
|
-
* nothing here for the gateway's strict schema to reject and nothing beyond what the
|
|
131
|
-
*
|
|
196
|
+
* there is neither. Gated on the C6 notice and the machine-local decision instead of a token,
|
|
197
|
+
* and the payload carries exactly three fields (install id, command name, CLI version) so there
|
|
198
|
+
* is nothing here for the gateway's strict schema to reject and nothing beyond what the notice
|
|
199
|
+
* promises. See usage-telemetry-anonymous.test.ts.
|
|
132
200
|
*
|
|
133
201
|
* Targets `ALIGN_HOSTED_GATEWAY_URL`, never a `gatewayUrl` off the env - local-embedded mode
|
|
134
202
|
* makes no HTTP call for its own work (an embedded local DB client, see gateway-client.ts), so
|
|
@@ -137,12 +205,12 @@ export async function recordCommandUsage(env, command) {
|
|
|
137
205
|
* `http://localhost:8080`, silently discarded, for every user who had not separately stood up
|
|
138
206
|
* a local dev gateway.
|
|
139
207
|
*/
|
|
140
|
-
async function recordAnonymousCommandUsage(command) {
|
|
208
|
+
async function recordAnonymousCommandUsage(command, capMs) {
|
|
141
209
|
const { createConfigStore } = await import('./config.js');
|
|
142
210
|
const config = createConfigStore();
|
|
143
|
-
if (config.getTelemetryConsent()
|
|
211
|
+
if (!localTierAllows(config.getTelemetryConsent(), 'command', noticeShownOn(config)))
|
|
144
212
|
return;
|
|
145
|
-
await postAnonymous({ installId: config.getInstallId(), command: commandPathOf(command), cliVersion: pkg.version });
|
|
213
|
+
await postAnonymous({ installId: config.getInstallId(), command: commandPathOf(command), cliVersion: pkg.version }, capMs);
|
|
146
214
|
}
|
|
147
215
|
/**
|
|
148
216
|
* ALI-795: the command groups whose second word is a SUBCOMMAND, mirroring the gateway's
|
|
@@ -150,7 +218,9 @@ async function recordAnonymousCommandUsage(command) {
|
|
|
150
218
|
* agree or pings silently 400. A query-taking command (ask, search, capture...) sends its
|
|
151
219
|
* top-level word only, so a user's one-word query can never ride the command field.
|
|
152
220
|
*/
|
|
153
|
-
const SUBCOMMAND_PARENTS = new Set([
|
|
221
|
+
export const SUBCOMMAND_PARENTS = new Set([
|
|
222
|
+
'connect', 'context', 'decisions', 'env', 'import', 'links', 'spaces', 'telemetry',
|
|
223
|
+
]);
|
|
154
224
|
/** "import git" stays whole (activation-by-source is the point); "ask <anything>" and
|
|
155
225
|
* every non-group command collapse to the top-level word. */
|
|
156
226
|
function commandPathOf(command) {
|
|
@@ -203,7 +273,49 @@ export const FUNNEL_STAGES = [
|
|
|
203
273
|
...SESSION_IMPORT_STAGES,
|
|
204
274
|
// C1: bare `align` handed the terminal to a coding agent. Carries the agent name only.
|
|
205
275
|
'agent_launched',
|
|
276
|
+
// L7: one per source per completed sync. Carries a count and four closed enums (SyncMeasurement).
|
|
277
|
+
'source_synced',
|
|
278
|
+
];
|
|
279
|
+
/**
|
|
280
|
+
* L7: what `source_synced` reports. A count and four closed enums, nothing else - never a repo, a
|
|
281
|
+
* host, a space, a project, a title or an id. Each list is a mirror of the gateway's (align-stack
|
|
282
|
+
* telemetryAnonymousRoutes.ts: SOURCE_VALUES, SYNC_OUTCOME_VALUES, SCOPE_VALUES,
|
|
283
|
+
* SYNC_TRIGGER_VALUES), and `telemetry-server-parity.test.ts` checks them against that file.
|
|
284
|
+
* A value outside a list is a silent 400 there, so it is dropped here instead of sent.
|
|
285
|
+
*
|
|
286
|
+
* `SYNC_TRIGGERS` has no `mcp` although the plan wanted one: the gateway's list does not (it is
|
|
287
|
+
* `connect`, `background`, `manual`), and a sync an agent starts over MCP runs as the background
|
|
288
|
+
* child, so it reports `background`.
|
|
289
|
+
*/
|
|
290
|
+
export const SYNC_SOURCES = [
|
|
291
|
+
'git', 'docs', 'github', 'jira', 'confluence', 'slack', 'teams', 'zoom', 'gitlab', 'linear', 'notion',
|
|
206
292
|
];
|
|
293
|
+
export const SYNC_OUTCOMES = ['ok', 'partial', 'needs_reauth', 'error'];
|
|
294
|
+
export const SYNC_SCOPES = ['yours', 'team'];
|
|
295
|
+
export const SYNC_TRIGGERS = ['connect', 'background', 'manual'];
|
|
296
|
+
/** The gateway's `MAX_FUNNEL_COUNT`: above it the whole ping is a 400. */
|
|
297
|
+
export const MAX_FUNNEL_COUNT = 100_000;
|
|
298
|
+
/**
|
|
299
|
+
* The `source_synced` body fields, built from the fixed whitelist and never by stripping a richer
|
|
300
|
+
* object. Undefined when anything is missing or outside its closed list: the caller then sends
|
|
301
|
+
* nothing, because the gateway requires all five and answers a partial body with a silent 400.
|
|
302
|
+
*/
|
|
303
|
+
function syncFields(m) {
|
|
304
|
+
if (m === null || typeof m !== 'object')
|
|
305
|
+
return undefined;
|
|
306
|
+
const r = m;
|
|
307
|
+
const count = r['count'];
|
|
308
|
+
if (typeof count !== 'number' || !Number.isInteger(count) || count < 0)
|
|
309
|
+
return undefined;
|
|
310
|
+
const pick = (list, v) => list.find((x) => x === v);
|
|
311
|
+
const source = pick(SYNC_SOURCES, r['source']);
|
|
312
|
+
const outcome = pick(SYNC_OUTCOMES, r['outcome']);
|
|
313
|
+
const scope = pick(SYNC_SCOPES, r['scope']);
|
|
314
|
+
const trigger = pick(SYNC_TRIGGERS, r['trigger']);
|
|
315
|
+
if (!source || !outcome || !scope || !trigger)
|
|
316
|
+
return undefined;
|
|
317
|
+
return { count: Math.min(count, MAX_FUNNEL_COUNT), source, outcome, scope, trigger };
|
|
318
|
+
}
|
|
207
319
|
/**
|
|
208
320
|
* ALI-954: the two stages that send BY DEFAULT in local mode, with no consent - the
|
|
209
321
|
* denominator of the funnel. `install` goes through recordInstallBeacon; `setup_completed`
|
|
@@ -231,7 +343,7 @@ export const BEACON_STAGES = ['install', 'setup_completed'];
|
|
|
231
343
|
* offers setup_started at several checkpoints because local-mode consent arrives
|
|
232
344
|
* mid-wizard, and this is how it knows which offer landed (lib/setup-funnel.ts).
|
|
233
345
|
*/
|
|
234
|
-
export async function recordFunnelStage(env, stage, command, measurement) {
|
|
346
|
+
export async function recordFunnelStage(env, stage, command, measurement, opts = {}) {
|
|
235
347
|
// The whole body is guarded: telemetry must never fail or delay a command (the same
|
|
236
348
|
// invariant postWithTimeout enforces for the network half, extended to the config
|
|
237
349
|
// half). The concrete case: an emitter call site inside a command's try block plus a
|
|
@@ -247,6 +359,12 @@ export async function recordFunnelStage(env, stage, command, measurement) {
|
|
|
247
359
|
// rather than one per call site.
|
|
248
360
|
if (inHookContext())
|
|
249
361
|
return false;
|
|
362
|
+
// L7: the sync measurement is built and checked before anything else, so a ping the gateway
|
|
363
|
+
// would 400 is never counted as sent. Local only: the endpoint that knows this stage is the
|
|
364
|
+
// anonymous one, and a sync reads the local graph.
|
|
365
|
+
const syncMeasured = stage === 'source_synced' ? syncFields(measurement) : undefined;
|
|
366
|
+
if (stage === 'source_synced' && (syncMeasured === undefined || env.mode !== 'local-embedded'))
|
|
367
|
+
return false;
|
|
250
368
|
const { createConfigStore } = await import('./config.js');
|
|
251
369
|
const config = createConfigStore();
|
|
252
370
|
if (stage === 'first_useful_decision' && config.wasFunnelStageRecorded(stage))
|
|
@@ -259,8 +377,8 @@ export async function recordFunnelStage(env, stage, command, measurement) {
|
|
|
259
377
|
// re-sending forever.
|
|
260
378
|
const isLocal = env.mode === 'local-embedded';
|
|
261
379
|
const canSend = isLocal
|
|
262
|
-
? localTierAllows(config.getTelemetryConsent(), stage)
|
|
263
|
-
: Boolean(env.authToken && env.tenantId);
|
|
380
|
+
? localTierAllows(config.getTelemetryConsent(), stage, noticeShownOn(config))
|
|
381
|
+
: Boolean(env.authToken && env.tenantId) && !storedAnswerForbidsSending(config.getTelemetryConsent());
|
|
264
382
|
if (!canSend)
|
|
265
383
|
return false;
|
|
266
384
|
if (stage === 'first_useful_decision')
|
|
@@ -273,11 +391,12 @@ export async function recordFunnelStage(env, stage, command, measurement) {
|
|
|
273
391
|
// stage, so a future call site passing a measurement alongside, say, `mcp_wired` would
|
|
274
392
|
// 400 the whole ping - and the catch below swallows that, so the stage would go silently
|
|
275
393
|
// missing rather than fail loudly. Dropping the two fields keeps the stage itself.
|
|
276
|
-
const measured =
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
394
|
+
const measured = syncMeasured ??
|
|
395
|
+
(measurement && 'agent' in measurement && 'count' in measurement && SESSION_IMPORT_STAGES.includes(stage)
|
|
396
|
+
? { count: measurement.count, agent: measurement.agent }
|
|
397
|
+
: measurement && 'agent' in measurement && stage === 'agent_launched'
|
|
398
|
+
? { agent: measurement.agent }
|
|
399
|
+
: {});
|
|
281
400
|
if (isLocal) {
|
|
282
401
|
await postAnonymous({
|
|
283
402
|
installId: config.getInstallId(),
|
|
@@ -287,7 +406,7 @@ export async function recordFunnelStage(env, stage, command, measurement) {
|
|
|
287
406
|
// Spread rather than set: the gateway's schema is `.strict()`, and an explicit
|
|
288
407
|
// undefined key is still a key.
|
|
289
408
|
...measured,
|
|
290
|
-
});
|
|
409
|
+
}, opts.capMs);
|
|
291
410
|
return true;
|
|
292
411
|
}
|
|
293
412
|
await postWithTimeout(`${env.gatewayUrl}/telemetry/ingest`, {
|
|
@@ -312,28 +431,34 @@ export async function recordFunnelStage(env, stage, command, measurement) {
|
|
|
312
431
|
}
|
|
313
432
|
}
|
|
314
433
|
/**
|
|
315
|
-
*
|
|
316
|
-
*
|
|
317
|
-
*
|
|
318
|
-
*
|
|
319
|
-
*
|
|
434
|
+
* Whether a local-mode event may send, given the stored decision and whether the one-time
|
|
435
|
+
* notice has printed (C6). Local mode is opt-out since C6, and the notice is the disclosure:
|
|
436
|
+
* - stored 'off' (`align telemetry off`) stops everything, and so does 'declined' (a No to the
|
|
437
|
+
* pre-C6 setup question): the privacy page promises "if you turned telemetry off earlier, it
|
|
438
|
+
* stays off", so a stored No stops the beacons too (review of e794c6e);
|
|
439
|
+
* - otherwise everything sends with a granted consent (`align telemetry on`) or after the notice.
|
|
440
|
+
* Beacons and usage now share one rule; BEACON_STAGES remains the documented set.
|
|
441
|
+
* Every caller has already returned under an env switch, in CI and (for usage) in a hook.
|
|
320
442
|
*/
|
|
321
|
-
function localTierAllows(consent, stage) {
|
|
322
|
-
if (
|
|
323
|
-
return
|
|
324
|
-
return consent === 'granted';
|
|
443
|
+
function localTierAllows(consent, stage, noticeShown) {
|
|
444
|
+
if (storedAnswerForbidsSending(consent))
|
|
445
|
+
return false;
|
|
446
|
+
return consent === 'granted' || noticeShown;
|
|
447
|
+
}
|
|
448
|
+
function noticeShownOn(config) {
|
|
449
|
+
return config.getTelemetryNoticeShownAt() !== undefined;
|
|
325
450
|
}
|
|
326
451
|
/**
|
|
327
452
|
* The anonymous payload, the one place its shape is spelled. Targets ALIGN_HOSTED_GATEWAY_URL,
|
|
328
453
|
* never a `gatewayUrl` off the env - see recordAnonymousCommandUsage for why.
|
|
329
454
|
*/
|
|
330
|
-
async function postAnonymous(payload) {
|
|
455
|
+
async function postAnonymous(payload, capMs) {
|
|
331
456
|
const target = process.env['ALIGN_GATEWAY_URL'] || ALIGN_HOSTED_GATEWAY_URL;
|
|
332
457
|
await postWithTimeout(`${target}/telemetry/anonymous`, {
|
|
333
458
|
method: 'POST',
|
|
334
459
|
headers: { 'Content-Type': 'application/json' },
|
|
335
460
|
body: JSON.stringify(payload),
|
|
336
|
-
});
|
|
461
|
+
}, capMs);
|
|
337
462
|
}
|
|
338
463
|
/**
|
|
339
464
|
* ALI-954: the install beacon - the funnel's denominator. Sent from the preAction hook in
|
|
@@ -361,6 +486,13 @@ export async function recordInstallBeacon(commandPath) {
|
|
|
361
486
|
try {
|
|
362
487
|
if (commandPath === 'telemetry' || commandPath.startsWith('telemetry '))
|
|
363
488
|
return false;
|
|
489
|
+
// C6: a CI job is not an install, so it must not consume the first run; nor do the runs
|
|
490
|
+
// nobody is reading (an agent's `mcp` server, a hook, a run inside a launched agent) - the
|
|
491
|
+
// notice is skipped there, so the beacon would have nothing to follow.
|
|
492
|
+
if (inCi() || inHookContext() || commandPath === 'mcp' || commandPath.startsWith('mcp '))
|
|
493
|
+
return false;
|
|
494
|
+
if (process.env['ALIGN_WRAPPED'])
|
|
495
|
+
return false;
|
|
364
496
|
const { createConfigStore } = await import('./config.js');
|
|
365
497
|
const { resolveEnv } = await import('./resolve-env.js');
|
|
366
498
|
const config = createConfigStore();
|
|
@@ -369,19 +501,46 @@ export async function recordInstallBeacon(commandPath) {
|
|
|
369
501
|
const env = config.getEnvironment(resolveEnv(undefined, { preferLocalEmbedded: true }));
|
|
370
502
|
if (env.authToken)
|
|
371
503
|
return false;
|
|
372
|
-
|
|
373
|
-
|
|
504
|
+
// A decision that says "never" consumes the first run, so the beacon is never sent later
|
|
505
|
+
// either: an env switch, `align telemetry off`, or a stored No.
|
|
506
|
+
const consent = config.getTelemetryConsent();
|
|
507
|
+
if (telemetryOptedOut() || storedAnswerForbidsSending(consent)) {
|
|
508
|
+
config.markFunnelStageRecorded('install');
|
|
509
|
+
return false;
|
|
510
|
+
}
|
|
511
|
+
// Not told yet (no notice: no terminal, or the notice failed): the first run is NOT consumed,
|
|
512
|
+
// so the beacon goes out after the first run that does show the notice.
|
|
513
|
+
if (!localTierAllows(consent, 'install', noticeShownOn(config)))
|
|
374
514
|
return false;
|
|
375
|
-
|
|
515
|
+
// Marked BEFORE the send, as a check-and-set on the store, so two first runs started together
|
|
516
|
+
// mostly send one beacon. Not atomic across processes: the store is a JSON file with no lock,
|
|
517
|
+
// so two processes that both read it before either writes can still both send. The cost is
|
|
518
|
+
// one duplicate install row, in the overcount direction, and only on a racing first run.
|
|
519
|
+
if (!config.claimFunnelStage('install'))
|
|
376
520
|
return false;
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
521
|
+
// Awaited, unlike every other send: the stage is once-only and already claimed, so a request
|
|
522
|
+
// that never left (the command exited first, `align status` does) would lose this install
|
|
523
|
+
// from the funnel forever. Capped at INSTALL_BEACON_CAP_MS.
|
|
524
|
+
// - A failed connection (nothing reached a gateway) releases the claim; the next run retries,
|
|
525
|
+
// and a refusal costs no wait.
|
|
526
|
+
// - A timeout keeps the claim: the request was written and may have arrived, so that is the
|
|
527
|
+
// one attempt. Releasing it made every run behind a silent gateway pay the cap again and
|
|
528
|
+
// send again. The cost is an install lost if that one request really was dropped.
|
|
529
|
+
const target = process.env['ALIGN_GATEWAY_URL'] || ALIGN_HOSTED_GATEWAY_URL;
|
|
530
|
+
const outcome = await postDelivered(`${target}/telemetry/anonymous`, {
|
|
531
|
+
method: 'POST',
|
|
532
|
+
headers: { 'Content-Type': 'application/json' },
|
|
533
|
+
body: JSON.stringify({
|
|
534
|
+
installId: config.getInstallId(),
|
|
535
|
+
command: 'align',
|
|
536
|
+
cliVersion: pkg.version,
|
|
537
|
+
stage: 'install',
|
|
538
|
+
os: process.platform,
|
|
539
|
+
}),
|
|
540
|
+
}, INSTALL_BEACON_CAP_MS);
|
|
541
|
+
if (outcome === 'failed')
|
|
542
|
+
config.releaseFunnelStage('install');
|
|
543
|
+
return outcome === 'delivered';
|
|
385
544
|
}
|
|
386
545
|
catch {
|
|
387
546
|
// Telemetry must never fail or delay a command; the funnel loses one row.
|
|
@@ -450,12 +609,42 @@ export function envFlagOf(cmd) {
|
|
|
450
609
|
* a local session. It costs one activation count on a once-per-machine command, in the direction
|
|
451
610
|
* that cannot leak.
|
|
452
611
|
*/
|
|
453
|
-
export async function recordInvocationUsage(envFlag, command) {
|
|
612
|
+
export async function recordInvocationUsage(envFlag, command, opts = {}) {
|
|
613
|
+
// L7: the detached `align sync --background` child is a machine running a refresh, not a person
|
|
614
|
+
// running a command (its per-source `source_synced` pings are the measurement). Decided from the
|
|
615
|
+
// command's own flag, the way hook invocations are, so one place says so.
|
|
616
|
+
if (opts.background === true)
|
|
617
|
+
return;
|
|
454
618
|
const { createConfigStore } = await import('./config.js');
|
|
455
619
|
const { resolveEnv } = await import('./resolve-env.js');
|
|
456
620
|
const config = createConfigStore();
|
|
457
621
|
if (command === 'setup' && config.getEnvironment('local').mode === 'local-embedded')
|
|
458
622
|
return;
|
|
459
|
-
await recordCommandUsage(config.getEnvironment(resolveEnv(envFlag, { preferLocalEmbedded: true })), command);
|
|
623
|
+
await recordCommandUsage(config.getEnvironment(resolveEnv(envFlag, { preferLocalEmbedded: true })), command, opts.capMs === undefined ? {} : { capMs: opts.capMs });
|
|
624
|
+
}
|
|
625
|
+
/**
|
|
626
|
+
* C6: what runs before every command (cli.ts's preAction): the one-time notice, then the
|
|
627
|
+
* install beacon, both awaited. On every run but the first, the beacon returns after a config
|
|
628
|
+
* read and sends nothing. On the first run it is the one send that is awaited, capped at
|
|
629
|
+
* INSTALL_BEACON_CAP_MS (see recordInstallBeacon), so the command cannot exit before it is
|
|
630
|
+
* delivered. Every other event stays fire-and-forget. `hook` is the invocation's own flags (`check --hook` /
|
|
631
|
+
* `--advisory`), marked here because the command's action, which also marks it, runs later.
|
|
632
|
+
*/
|
|
633
|
+
export async function beginInvocationTelemetry(commandPath, opts) {
|
|
634
|
+
if (opts.hook)
|
|
635
|
+
markHookContext();
|
|
636
|
+
try {
|
|
637
|
+
const { createConfigStore } = await import('./config.js');
|
|
638
|
+
const { resolveEnv } = await import('./resolve-env.js');
|
|
639
|
+
const config = createConfigStore();
|
|
640
|
+
// Before the notice and before anything can send: an env opt-out becomes a stored one.
|
|
641
|
+
storeEnvOptOut(config);
|
|
642
|
+
const env = config.getEnvironment(resolveEnv(undefined, { preferLocalEmbedded: true }));
|
|
643
|
+
maybeShowTelemetryNotice(config, { command: commandPath, hook: opts.hook, cloudSignedIn: Boolean(env.authToken) });
|
|
644
|
+
}
|
|
645
|
+
catch {
|
|
646
|
+
// Telemetry must never fail a command. No notice means nothing that waits on it sends.
|
|
647
|
+
}
|
|
648
|
+
return recordInstallBeacon(commandPath);
|
|
460
649
|
}
|
|
461
650
|
//# sourceMappingURL=usage-telemetry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-telemetry.js","sourceRoot":"","sources":["../../src/lib/usage-telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAiD,MAAM,aAAa,CAAC;AACtG,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,GAAG,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAE1C,SAAS,iBAAiB;IACxB,OAAO,sBAAsB,EAAE,KAAK,SAAS,CAAC;AAChD,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,eAAe,CAAC,GAAW,EAAE,IAA8C;IACxF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,IAAI,MAAM,GAAe,GAAG,EAAE,GAAE,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAC9C,MAAM,GAAG,OAAO,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC5B,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,EAAE,CAAC;IACX,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAEzB,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC;QACP,oFAAoF;QACpF,iGAAiG;IACnG,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAOD;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAsB,EACtB,YAA0C;IAE1C,MAAM,SAAS,GAAG,sBAAsB,EAAE,CAAC;IAC3C,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;QACjC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,4CAA4C,EAAE,CAAC;IAClF,CAAC;IACD,IAAI,SAAS,KAAK,iBAAiB,EAAE,CAAC;QACpC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,mEAAmE,EAAE,CAAC;IACzG,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAClC,qFAAqF;QACrF,uFAAuF;QACvF,yDAAyD;QACzD,MAAM,OAAO,GAAG,0GAA0G,CAAC;QAC3H,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,yCAAyC,EAAE,CAAC;QAC9E,CAAC;QACD,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;YAChC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,2CAA2C,OAAO,EAAE,EAAE,CAAC;QAC1F,CAAC;QACD,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;YAC3B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,kEAAkE,EAAE,CAAC;QACxG,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,+CAA+C,OAAO,EAAE,EAAE,CAAC;IAC9F,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAAC;AACtE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAsB,EAAE,OAAe;IAC9E,IAAI,iBAAiB,EAAE;QAAE,OAAO;IAChC,4FAA4F;IAC5F,8FAA8F;IAC9F,4BAA4B;IAC5B,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO;IAChE,yFAAyF;IACzF,4FAA4F;IAC5F,2FAA2F;IAC3F,mFAAmF;IACnF,gDAAgD;IAChD,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAClC,MAAM,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,QAAQ;QAAE,OAAO;IAE5C,MAAM,eAAe,CAAC,GAAG,GAAG,CAAC,UAAU,mBAAmB,EAAE;QAC1D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,GAAG,CAAC,SAAS,EAAE;YACxC,aAAa,EAAE,GAAG,CAAC,QAAQ;SAC5B;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,SAAS,EAAE,aAAa;YACxB,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,EAAE,OAAO,EAAE;SACxB,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,2BAA2B,CAAC,OAAe;IACxD,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,IAAI,MAAM,CAAC,mBAAmB,EAAE,KAAK,SAAS;QAAE,OAAO;IAEvD,MAAM,aAAa,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AACtH,CAAC;AAED;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;AAE9G;8DAC8D;AAC9D,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IAClG,OAAO,GAAG,IAAI,OAAO,CAAC;AACxB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,kBAAkB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,oBAAoB;CAC5E,CAAC;AAEX,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,eAAe;IACf,iBAAiB;IACjB,kBAAkB;IAClB,WAAW;IACX,uBAAuB;IACvB,oBAAoB;IACpB,oFAAoF;IACpF,uEAAuE;IACvE,GAAG,qBAAqB;IACxB,uFAAuF;IACvF,gBAAgB;CACR,CAAC;AAiBX;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,iBAAiB,CAAU,CAAC;AAErE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAsB,EACtB,KAAkB,EAClB,OAAe,EACf,WAAkD;IAElD,oFAAoF;IACpF,kFAAkF;IAClF,qFAAqF;IACrF,qFAAqF;IACrF,+EAA+E;IAC/E,IAAI,CAAC;QACH,IAAI,iBAAiB,EAAE;YAAE,OAAO,KAAK,CAAC;QACtC,2FAA2F;QAC3F,4FAA4F;QAC5F,0FAA0F;QAC1F,wFAAwF;QACxF,iCAAiC;QACjC,IAAI,aAAa,EAAE;YAAE,OAAO,KAAK,CAAC;QAElC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACnC,IAAI,KAAK,KAAK,uBAAuB,IAAI,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAE5F,8EAA8E;QAC9E,iFAAiF;QACjF,gFAAgF;QAChF,iFAAiF;QACjF,4EAA4E;QAC5E,sBAAsB;QACtB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,KAAK,gBAAgB,CAAC;QAC9C,MAAM,OAAO,GAAG,OAAO;YACrB,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,KAAK,CAAC;YACtD,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3B,IAAI,KAAK,KAAK,uBAAuB;YAAE,MAAM,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAE7E,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAE3C,wFAAwF;QACxF,qFAAqF;QACrF,qFAAqF;QACrF,uFAAuF;QACvF,uFAAuF;QACvF,yFAAyF;QACzF,mFAAmF;QACnF,MAAM,QAAQ,GACZ,WAAW,IAAI,OAAO,IAAI,WAAW,IAAK,qBAA2C,CAAC,QAAQ,CAAC,KAAK,CAAC;YACnG,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE;YACxD,CAAC,CAAC,WAAW,IAAI,KAAK,KAAK,gBAAgB;gBACzC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE;gBAC9B,CAAC,CAAC,EAAE,CAAC;QAEX,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,aAAa,CAAC;gBAClB,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE;gBAChC,OAAO,EAAE,WAAW;gBACpB,UAAU,EAAE,GAAG,CAAC,OAAO;gBACvB,KAAK;gBACL,+EAA+E;gBAC/E,gCAAgC;gBAChC,GAAG,QAAQ;aACZ,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,eAAe,CAAC,GAAG,GAAG,CAAC,UAAU,mBAAmB,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,GAAG,CAAC,SAAS,EAAE;gBACxC,aAAa,EAAE,GAAG,CAAC,QAAkB;aACtC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,SAAS,EAAE,cAAc,KAAK,EAAE;gBAChC,QAAQ,EAAE,YAAY;gBACtB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,QAAQ,EAAE;aAClD,CAAC;SACH,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,kFAAkF;QAClF,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,OAAqC,EAAE,KAA8B;IAC5F,IAAK,aAAmC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,KAAK,KAAK,CAAC;IACnF,OAAO,OAAO,KAAK,SAAS,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,aAAa,CAAC,OAAwC;IACnE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,wBAAwB,CAAC;IAC5E,MAAM,eAAe,CAAC,GAAG,MAAM,sBAAsB,EAAE;QACrD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAmB;IAC3D,IAAI,CAAC;QACH,IAAI,WAAW,KAAK,WAAW,IAAI,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,OAAO,KAAK,CAAC;QACtF,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAC1D,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACnC,IAAI,MAAM,CAAC,sBAAsB,CAAC,SAAS,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACxF,IAAI,GAAG,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAChC,MAAM,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,iBAAiB,EAAE;YAAE,OAAO,KAAK,CAAC;QACtC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,SAAS,CAAC;YAAE,OAAO,KAAK,CAAC;QAE5E,MAAM,aAAa,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE;YAChC,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,GAAG,CAAC,OAAO;YACvB,KAAK,EAAE,SAAS;YAChB,EAAE,EAAE,OAAO,CAAC,QAAQ;SACrB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;QAC1E,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,aAAkD;IAEtF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAgB,aAAqB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM;QAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClG,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AACnE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,GAAmD;IAC3E,MAAM,IAAI,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,8FAA8F;IAC9F,+FAA+F;IAC/F,2DAA2D;IAC3D,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC;IAC3C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAA2B,EAC3B,OAAe;IAEf,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAC1D,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,IAAI,OAAO,KAAK,OAAO,IAAI,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,gBAAgB;QAAE,OAAO;IAC5F,MAAM,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC/G,CAAC"}
|
|
1
|
+
{"version":3,"file":"usage-telemetry.js","sourceRoot":"","sources":["../../src/lib/usage-telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The XDG base-directory variables. The XDG spec says a relative value is invalid and must be
|
|
3
|
+
* ignored. It matters beyond correctness: an agent that loads a repo's `.env` (cn, Cline) hands
|
|
4
|
+
* its MCP children whatever that file says, and XDG_CONFIG_HOME=./evilcfg once made
|
|
5
|
+
* `align mcp --env local` copy the user's local.db into the repo. One helper, used everywhere.
|
|
6
|
+
*/
|
|
7
|
+
export declare const XDG_VARS: readonly ["XDG_CONFIG_HOME", "XDG_DATA_HOME", "XDG_CACHE_HOME", "XDG_STATE_HOME"];
|
|
8
|
+
export type XdgVar = (typeof XDG_VARS)[number];
|
|
9
|
+
/**
|
|
10
|
+
* A path under /proc or /dev/fd names another process's view of the filesystem (`/proc/self/cwd`
|
|
11
|
+
* is whatever directory the reader runs in): never a real config home.
|
|
12
|
+
*/
|
|
13
|
+
export declare function procLike(p: string): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* The real path of `p`: its nearest existing ancestor resolved through symlinks, plus the rest.
|
|
16
|
+
* A path that does not exist yet still resolves through the links above it.
|
|
17
|
+
*/
|
|
18
|
+
export declare function realPathOf(p: string): string;
|
|
19
|
+
/** The variable's value only when it is an absolute path outside /proc and /dev/fd; otherwise undefined. */
|
|
20
|
+
export declare function absoluteXdg(env: Record<string, string | undefined>, name: XdgVar | string): string | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Delete every relative XDG_* (and any under /proc or /dev/fd) from `env` (process.env at startup, before anything reads it:
|
|
23
|
+
* `conf` and env-paths read these themselves). An empty value is left alone, as it already
|
|
24
|
+
* means unset. Returns the names removed.
|
|
25
|
+
*/
|
|
26
|
+
export declare function dropRelativeXdg(env: Record<string, string | undefined>): string[];
|
|
27
|
+
//# sourceMappingURL=xdg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xdg.d.ts","sourceRoot":"","sources":["../../src/lib/xdg.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,mFAAoF,CAAC;AAC1G,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/C;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAE3C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAW5C;AAED,4GAA4G;AAC5G,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAG9G;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,EAAE,CAUjF"}
|