@aligndottech/cli 0.49.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 +4 -3
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +26 -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/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/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 +8 -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 +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 +6 -1
- package/dist/commands/why.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.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/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 +31 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +139 -0
- 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/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 +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 +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/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-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.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 +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-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
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* L5: the pure decisions of an incremental sync - which window to read next and where the
|
|
3
|
+
* watermark stands after a run. No database, no clock of its own, no network.
|
|
4
|
+
*
|
|
5
|
+
* The watermark is the vendor's own `updated_at` (Decision 4), taken from the SDK's report, and
|
|
6
|
+
* it moves only on a COMPLETE read that carried one. Anything else leaves it where it was: a
|
|
7
|
+
* watermark that moved past data nobody read loses that data for good, while one that stays put
|
|
8
|
+
* costs a re-read the unchanged-skip makes cheap.
|
|
9
|
+
*/
|
|
10
|
+
import { SYNC_WINDOW_DEFAULT_DAYS } from '../import-defaults.js';
|
|
11
|
+
/** Each run reads from a day before the watermark, so an item edited between two runs while the
|
|
12
|
+
* vendor was behind on its own indexing is not missed. */
|
|
13
|
+
export const OVERLAP_DAYS = 1;
|
|
14
|
+
/** A hole that ended this many consecutive runs the same way is called persistent. */
|
|
15
|
+
export const PERSISTENT_HOLE_RUNS = 5;
|
|
16
|
+
const DAY_MS = 86_400_000;
|
|
17
|
+
function parse(iso) {
|
|
18
|
+
if (iso === null || iso === undefined)
|
|
19
|
+
return undefined;
|
|
20
|
+
const ms = Date.parse(iso);
|
|
21
|
+
// NaN compares false with everything, in both directions (verification.md): refuse it here.
|
|
22
|
+
return Number.isNaN(ms) ? undefined : ms;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The window a NEW scope row starts with: the one the person asked for on this source, which is the `yours` row's (L3 records
|
|
26
|
+
* `since: all` as NULL there, and "all" stays all). A source with no `yours` row yet starts at the default window.
|
|
27
|
+
* The one writer: the sync's first run on a scope and a scope change from `align connect` or `align_scope` both call it.
|
|
28
|
+
*/
|
|
29
|
+
export function inheritedWindowSince(rows, now) {
|
|
30
|
+
const yours = rows.find((r) => r.scope_key === 'yours');
|
|
31
|
+
return yours ? yours.window_since : nextWindow(undefined, now).since;
|
|
32
|
+
}
|
|
33
|
+
export function minusDays(iso, days) {
|
|
34
|
+
const ms = parse(iso);
|
|
35
|
+
if (ms === undefined)
|
|
36
|
+
throw new Error(`Cannot read "${iso.slice(0, 40)}" as a date.`);
|
|
37
|
+
return new Date(ms - days * DAY_MS).toISOString();
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* What the next run asks the vendor for.
|
|
41
|
+
* - No row: the default window back from now (the first sync of a source).
|
|
42
|
+
* - A high_water: one overlap day before it. Otherwise the row's own window_since, untouched.
|
|
43
|
+
* - A pending_until: also an `until` there, so a run that a ceiling cut finishes the OLDER part.
|
|
44
|
+
* An unparseable stored stamp reads as absent, which can only widen the read.
|
|
45
|
+
*/
|
|
46
|
+
export function nextWindow(s, now) {
|
|
47
|
+
if (s === undefined)
|
|
48
|
+
return { since: new Date(now.getTime() - SYNC_WINDOW_DEFAULT_DAYS * DAY_MS).toISOString() };
|
|
49
|
+
// A stored watermark from the future (written by an older build, or by a clock that was wrong) is
|
|
50
|
+
// repaired by ignoring it: the read widens to the window, and the run's own result replaces it.
|
|
51
|
+
const hw = plausible(s.high_water ?? undefined, now) === undefined ? undefined : s.high_water;
|
|
52
|
+
const floor = hw !== undefined ? minusDays(hw, OVERLAP_DAYS) : parse(s.window_since) === undefined ? undefined : s.window_since;
|
|
53
|
+
const until = parse(s.pending_until) === undefined ? undefined : s.pending_until;
|
|
54
|
+
// A hole that keeps coming back keeps the watermark where it was, so the re-read would grow every day, and a source that
|
|
55
|
+
// reads more each time is more likely to hit its budget again. Bound it to the default window while a hole is open.
|
|
56
|
+
const bound = (s.hole_streak ?? 0) > 0 ? new Date(now.getTime() - SYNC_WINDOW_DEFAULT_DAYS * DAY_MS).toISOString() : undefined;
|
|
57
|
+
const since = bound !== undefined && (floor === undefined || Date.parse(floor) < Date.parse(bound)) ? bound : floor;
|
|
58
|
+
return { ...(since !== undefined ? { since } : {}), ...(until !== undefined ? { until } : {}) };
|
|
59
|
+
}
|
|
60
|
+
export function later(a, b) {
|
|
61
|
+
const pa = parse(a);
|
|
62
|
+
const pb = parse(b);
|
|
63
|
+
if (pa === undefined)
|
|
64
|
+
return pb === undefined ? null : b;
|
|
65
|
+
if (pb === undefined)
|
|
66
|
+
return a;
|
|
67
|
+
return pb > pa ? b : a;
|
|
68
|
+
}
|
|
69
|
+
function earlier(a, b) {
|
|
70
|
+
const pa = parse(a);
|
|
71
|
+
const pb = parse(b);
|
|
72
|
+
if (pa === undefined)
|
|
73
|
+
return pb === undefined ? null : b;
|
|
74
|
+
if (pb === undefined)
|
|
75
|
+
return a;
|
|
76
|
+
return pb < pa ? b : a;
|
|
77
|
+
}
|
|
78
|
+
export function plausible(iso, now) {
|
|
79
|
+
const t = parse(iso);
|
|
80
|
+
if (t === undefined)
|
|
81
|
+
return undefined;
|
|
82
|
+
return now !== undefined && t > now.getTime() + DAY_MS ? undefined : iso;
|
|
83
|
+
}
|
|
84
|
+
export function finishRun(prev, r) {
|
|
85
|
+
const prevHigh = plausible(prev.high_water ?? undefined, r.now) === undefined ? null : prev.high_water;
|
|
86
|
+
if (r.complete) {
|
|
87
|
+
return { high_water: later(later(prevHigh, plausible(r.highWater, r.now)), plausible(r.cycleNewest, r.now)), pending_until: null, status: 'ok' };
|
|
88
|
+
}
|
|
89
|
+
if (r.persistent === true) {
|
|
90
|
+
// The other streams are read and committed; only the hole is not. Say so in the status, and move on.
|
|
91
|
+
return { high_water: later(later(prevHigh, plausible(r.highWater, r.now)), plausible(r.cycleNewest, r.now)), pending_until: null, status: 'partial' };
|
|
92
|
+
}
|
|
93
|
+
if (r.cut === true)
|
|
94
|
+
return { high_water: prevHigh, pending_until: earlier(prev.pending_until, r.oldestReached), status: 'partial' };
|
|
95
|
+
return { high_water: prevHigh, pending_until: null, status: 'partial' };
|
|
96
|
+
}
|
|
97
|
+
/** Oldest first. A kill after batch N then leaves every older item committed, so a watermark equal
|
|
98
|
+
* to the newest committed stamp never sits above an unread one. Items with no stamp lead. */
|
|
99
|
+
export function ascendingByUpdated(items) {
|
|
100
|
+
const stamp = (i) => parse(i.updated_at) ?? Number.NEGATIVE_INFINITY;
|
|
101
|
+
return items.map((item, index) => ({ item, index }))
|
|
102
|
+
.sort((a, b) => (stamp(a.item) - stamp(b.item) || a.index - b.index) || 0)
|
|
103
|
+
.map((e) => e.item);
|
|
104
|
+
}
|
|
105
|
+
export function newestUpdated(items, now) {
|
|
106
|
+
let best;
|
|
107
|
+
for (const i of items)
|
|
108
|
+
if (plausible(i.updated_at, now) !== undefined)
|
|
109
|
+
best = later(best, i.updated_at) ?? best;
|
|
110
|
+
return best;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=window.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window.js","sourceRoot":"","sources":["../../../src/lib/sync/window.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one upgrade line the CLI prints, only at the share moment (a team action tried with no team
|
|
3
|
+
* login). One place for the booking link: the CLI links to a redirect Align owns, so routing the
|
|
4
|
+
* call to someone else later is a site change and needs no CLI release (plan 2026-10-09, Open
|
|
5
|
+
* Question 1). Flip TEAM_SIGNUP_OPEN when prod team signup opens.
|
|
6
|
+
*/
|
|
7
|
+
export declare const BOOK_CALL_URL = "https://align.tech/demo?ref=cli";
|
|
8
|
+
export declare const TEAM_SIGNUP_URL = "https://app.align.tech/signup";
|
|
9
|
+
export declare const TEAM_SIGNUP_OPEN = false;
|
|
10
|
+
export declare function teamCtaLine(open?: boolean): string;
|
|
11
|
+
//# sourceMappingURL=team-cta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-cta.d.ts","sourceRoot":"","sources":["../../src/lib/team-cta.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,aAAa,oCAAoC,CAAC;AAC/D,eAAO,MAAM,eAAe,kCAAkC,CAAC;AAC/D,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AAEtC,wBAAgB,WAAW,CAAC,IAAI,GAAE,OAA0B,GAAG,MAAM,CAIpE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one upgrade line the CLI prints, only at the share moment (a team action tried with no team
|
|
3
|
+
* login). One place for the booking link: the CLI links to a redirect Align owns, so routing the
|
|
4
|
+
* call to someone else later is a site change and needs no CLI release (plan 2026-10-09, Open
|
|
5
|
+
* Question 1). Flip TEAM_SIGNUP_OPEN when prod team signup opens.
|
|
6
|
+
*/
|
|
7
|
+
// Confirmed by Tom 2026-10-10: align.tech/demo?ref=cli redirects to the 30-minute booking page.
|
|
8
|
+
export const BOOK_CALL_URL = 'https://align.tech/demo?ref=cli';
|
|
9
|
+
export const TEAM_SIGNUP_URL = 'https://app.align.tech/signup';
|
|
10
|
+
export const TEAM_SIGNUP_OPEN = false;
|
|
11
|
+
export function teamCtaLine(open = TEAM_SIGNUP_OPEN) {
|
|
12
|
+
return open
|
|
13
|
+
? `Start a team graph: ${TEAM_SIGNUP_URL}`
|
|
14
|
+
: `Bring this to your team. Book a 30-minute call: ${BOOK_CALL_URL}`;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=team-cta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-cta.js","sourceRoot":"","sources":["../../src/lib/team-cta.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,gGAAgG;AAChG,MAAM,CAAC,MAAM,aAAa,GAAG,iCAAiC,CAAC;AAC/D,MAAM,CAAC,MAAM,eAAe,GAAG,+BAA+B,CAAC;AAC/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAEtC,MAAM,UAAU,WAAW,CAAC,OAAgB,gBAAgB;IAC1D,OAAO,IAAI;QACT,CAAC,CAAC,uBAAuB,eAAe,EAAE;QAC1C,CAAC,CAAC,mDAAmD,aAAa,EAAE,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-ci.d.ts","sourceRoot":"","sources":["../../src/lib/telemetry-ci.ts"],"names":[],"mappings":"AAiCA,wBAAgB,IAAI,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,OAAO,CAInF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import vendors from 'ci-info/vendors.json' with { type: 'json' };
|
|
2
|
+
/** ci-info's generic flags, in its own order: any one of them set means CI. */
|
|
3
|
+
const GENERIC = ['BUILD_ID', 'BUILD_NUMBER', 'CI', 'CI_APP_ID', 'CI_BUILD_ID', 'CI_BUILD_NUMBER', 'CI_NAME', 'CONTINUOUS_INTEGRATION', 'RUN_ID'];
|
|
4
|
+
function matches(rule, env) {
|
|
5
|
+
if (typeof rule === 'string')
|
|
6
|
+
return Boolean(env[rule]);
|
|
7
|
+
if ('env' in rule && typeof rule.env === 'string' && 'includes' in rule) {
|
|
8
|
+
return Boolean(env[rule.env]?.includes(String(rule.includes)));
|
|
9
|
+
}
|
|
10
|
+
if ('any' in rule && Array.isArray(rule.any))
|
|
11
|
+
return rule.any.some((k) => Boolean(env[k]));
|
|
12
|
+
return Object.entries(rule).every(([k, v]) => env[k] === v);
|
|
13
|
+
}
|
|
14
|
+
export function inCi(env = process.env) {
|
|
15
|
+
if (env['CI'] === 'false')
|
|
16
|
+
return false;
|
|
17
|
+
if (GENERIC.some((k) => Boolean(env[k])))
|
|
18
|
+
return true;
|
|
19
|
+
return vendors.some((v) => (Array.isArray(v.env) ? v.env : [v.env]).every((r) => matches(r, env)));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=telemetry-ci.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-ci.js","sourceRoot":"","sources":["../../src/lib/telemetry-ci.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,sBAAsB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAqBjE,+EAA+E;AAC/E,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,SAAS,EAAE,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAEjJ,SAAS,OAAO,CAAC,IAAa,EAAE,GAAuC;IACrE,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QACxE,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,OAAO,MAAM,CAAC,OAAO,CAAC,IAA8B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,MAA0C,OAAO,CAAC,GAAG;IACxE,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,OAAQ,OAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACnH,CAAC"}
|
|
@@ -1,32 +1,53 @@
|
|
|
1
|
+
import type { TelemetryConsent } from './config.js';
|
|
1
2
|
/**
|
|
2
3
|
* Narrow interface rather than the whole config store, so this module (and its tests) does not
|
|
3
4
|
* carry every unrelated accessor `createConfigStore()` exposes.
|
|
4
5
|
*/
|
|
5
|
-
export interface
|
|
6
|
-
getTelemetryConsent():
|
|
7
|
-
|
|
6
|
+
export interface TelemetryNoticeStore {
|
|
7
|
+
getTelemetryConsent(): TelemetryConsent | undefined;
|
|
8
|
+
getTelemetryNoticeShownAt(): string | undefined;
|
|
9
|
+
markTelemetryNoticeShown(): void;
|
|
8
10
|
}
|
|
9
11
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
*
|
|
26
|
-
*
|
|
12
|
+
* C6: the disclosure. Local-mode telemetry is opt-out, and this notice is what makes it so: it
|
|
13
|
+
* prints once, to stderr, before anything is sent, and nothing that depends on it sends until
|
|
14
|
+
* it has printed (usage-telemetry.ts's localTierAllows). The founder-approved wording - change
|
|
15
|
+
* it only with the privacy page (align.tech/privacy#cli) and docs/telemetry.md in the same PR.
|
|
16
|
+
*/
|
|
17
|
+
export declare const TELEMETRY_NOTICE: string;
|
|
18
|
+
export interface NoticeContext {
|
|
19
|
+
/** The invocation's command path ("ask", "telemetry off", "align" for the bare command). */
|
|
20
|
+
command: string;
|
|
21
|
+
/** Running as an agent hook (`check --hook` / `--advisory`): nobody is reading stderr. */
|
|
22
|
+
hook: boolean;
|
|
23
|
+
/** A cloud login token is in hand: cloud mode has its own, authenticated events. */
|
|
24
|
+
cloudSignedIn: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Shows the notice and marks it shown, or does neither. Skipped, and NOT marked, wherever
|
|
28
|
+
* nobody is reading it or it would be moot: no terminal on stdin and stderr, CI, an agent hook, `align mcp` (an agent's stdio
|
|
29
|
+
* server), a run inside a launched agent (ALIGN_WRAPPED), `align telemetry ...` (the off switch
|
|
30
|
+
* must not be raced by what it switches off), an env switch that already turns everything off,
|
|
31
|
+
* and any stored decision (granted, declined or off - that user was already asked or chose).
|
|
32
|
+
* Because it is not marked, nothing that waits on it sends from those runs either.
|
|
27
33
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
34
|
+
* Returns whether it printed. Never throws: a broken config store costs the notice, which means
|
|
35
|
+
* nothing sends - the safe direction.
|
|
36
|
+
*/
|
|
37
|
+
export declare function maybeShowTelemetryNotice(config: TelemetryNoticeStore, ctx: NoticeContext, write?: (text: string) => void): boolean;
|
|
38
|
+
/** The slice of the config store a sticky env opt-out needs. */
|
|
39
|
+
export interface EnvOptOutStore {
|
|
40
|
+
getTelemetryConsent(): TelemetryConsent | undefined;
|
|
41
|
+
setTelemetryOffByEnv(via: string): void;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* An explicit env opt-out (DO_NOT_TRACK, ALIGN_TELEMETRY) is made STICKY: stored as 'off' with
|
|
45
|
+
* its reason, so a process that does not inherit the variable still honours it. An MCP server
|
|
46
|
+
* started by an agent gets a trimmed environment, and the detached sync child inherits from that
|
|
47
|
+
* server, so the variable alone never reached them. Bare CI is not a user choice and is never
|
|
48
|
+
* stored (it is checked per process). A stored 'off' or 'declined' is left as it is. Called
|
|
49
|
+
* before anything in this process can send, and not subject to the terminal or hook rules above:
|
|
50
|
+
* a hook run that sees the variable stores it too. Never throws.
|
|
30
51
|
*/
|
|
31
|
-
export declare function
|
|
52
|
+
export declare function storeEnvOptOut(config: EnvOptOutStore): boolean;
|
|
32
53
|
//# sourceMappingURL=telemetry-consent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-consent.d.ts","sourceRoot":"","sources":["../../src/lib/telemetry-consent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"telemetry-consent.d.ts","sourceRoot":"","sources":["../../src/lib/telemetry-consent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,mBAAmB,IAAI,gBAAgB,GAAG,SAAS,CAAC;IACpD,yBAAyB,IAAI,MAAM,GAAG,SAAS,CAAC;IAChD,wBAAwB,IAAI,IAAI,CAAC;CAClC;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,QAI4D,CAAC;AAE1F,MAAM,WAAW,aAAa;IAC5B,4FAA4F;IAC5F,OAAO,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,IAAI,EAAE,OAAO,CAAC;IACd,oFAAoF;IACpF,aAAa,EAAE,OAAO,CAAC;CACxB;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,oBAAoB,EAC5B,GAAG,EAAE,aAAa,EAClB,KAAK,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAExB,GACA,OAAO,CAqBT;AAED,gEAAgE;AAChE,MAAM,WAAW,cAAc;IAC7B,mBAAmB,IAAI,gBAAgB,GAAG,SAAS,CAAC;IACpD,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAW9D"}
|
|
@@ -1,42 +1,81 @@
|
|
|
1
|
-
import * as p from '@clack/prompts';
|
|
2
1
|
import { telemetryDisabledByEnv } from './telemetry-env.js';
|
|
2
|
+
import { inCi } from './telemetry-ci.js';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
4
|
+
* C6: the disclosure. Local-mode telemetry is opt-out, and this notice is what makes it so: it
|
|
5
|
+
* prints once, to stderr, before anything is sent, and nothing that depends on it sends until
|
|
6
|
+
* it has printed (usage-telemetry.ts's localTierAllows). The founder-approved wording - change
|
|
7
|
+
* it only with the privacy page (align.tech/privacy#cli) and docs/telemetry.md in the same PR.
|
|
8
|
+
*/
|
|
9
|
+
export const TELEMETRY_NOTICE = 'Align sends anonymous usage counts: which commands and coding agent you use,\n' +
|
|
10
|
+
'which tools you connect and how many items, the CLI version, and your OS.\n' +
|
|
11
|
+
'Never code, decision text, or file, repo or org names.\n' +
|
|
12
|
+
'Turn it off: align telemetry off (or DO_NOT_TRACK=1). Details: align.tech/privacy#cli';
|
|
13
|
+
const isSet = (v) => v !== undefined && v !== '';
|
|
14
|
+
/**
|
|
15
|
+
* Shows the notice and marks it shown, or does neither. Skipped, and NOT marked, wherever
|
|
16
|
+
* nobody is reading it or it would be moot: no terminal on stdin and stderr, CI, an agent hook, `align mcp` (an agent's stdio
|
|
17
|
+
* server), a run inside a launched agent (ALIGN_WRAPPED), `align telemetry ...` (the off switch
|
|
18
|
+
* must not be raced by what it switches off), an env switch that already turns everything off,
|
|
19
|
+
* and any stored decision (granted, declined or off - that user was already asked or chose).
|
|
20
|
+
* Because it is not marked, nothing that waits on it sends from those runs either.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
22
|
+
* Returns whether it printed. Never throws: a broken config store costs the notice, which means
|
|
23
|
+
* nothing sends - the safe direction.
|
|
24
24
|
*/
|
|
25
|
-
export
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
export function maybeShowTelemetryNotice(config, ctx, write = (text) => {
|
|
26
|
+
process.stderr.write(text);
|
|
27
|
+
}) {
|
|
28
|
+
try {
|
|
29
|
+
const top = ctx.command.split(' ')[0];
|
|
30
|
+
if (top === 'mcp' || top === 'telemetry')
|
|
31
|
+
return false;
|
|
32
|
+
if (ctx.hook || ctx.cloudSignedIn)
|
|
33
|
+
return false;
|
|
34
|
+
if (isSet(process.env['ALIGN_WRAPPED']))
|
|
35
|
+
return false;
|
|
36
|
+
if (telemetryDisabledByEnv() !== undefined || inCi())
|
|
37
|
+
return false;
|
|
38
|
+
if (config.getTelemetryConsent() !== undefined)
|
|
39
|
+
return false;
|
|
40
|
+
if (config.getTelemetryNoticeShownAt() !== undefined)
|
|
41
|
+
return false;
|
|
42
|
+
// The real control (review of e794c6e, P0): the notice is the disclosure every local send
|
|
43
|
+
// waits on, so it counts only when a person can read it. A person at a terminal has both
|
|
44
|
+
// stdin and stderr on it. Anything else - stderr to /dev/null, a pipe, a hook runner, cron,
|
|
45
|
+
// systemd, `docker build`, an agent's Bash tool - prints nothing and marks nothing, so
|
|
46
|
+
// nothing sends until a real terminal run shows it.
|
|
47
|
+
if (!process.stderr.isTTY || !process.stdin.isTTY)
|
|
48
|
+
return false;
|
|
49
|
+
write(`${TELEMETRY_NOTICE}\n\n`);
|
|
50
|
+
config.markTelemetryNoticeShown();
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* An explicit env opt-out (DO_NOT_TRACK, ALIGN_TELEMETRY) is made STICKY: stored as 'off' with
|
|
59
|
+
* its reason, so a process that does not inherit the variable still honours it. An MCP server
|
|
60
|
+
* started by an agent gets a trimmed environment, and the detached sync child inherits from that
|
|
61
|
+
* server, so the variable alone never reached them. Bare CI is not a user choice and is never
|
|
62
|
+
* stored (it is checked per process). A stored 'off' or 'declined' is left as it is. Called
|
|
63
|
+
* before anything in this process can send, and not subject to the terminal or hook rules above:
|
|
64
|
+
* a hook run that sees the variable stores it too. Never throws.
|
|
65
|
+
*/
|
|
66
|
+
export function storeEnvOptOut(config) {
|
|
67
|
+
try {
|
|
68
|
+
const via = telemetryDisabledByEnv();
|
|
69
|
+
if (via === undefined)
|
|
70
|
+
return false;
|
|
71
|
+
const stored = config.getTelemetryConsent();
|
|
72
|
+
if (stored === 'off' || stored === 'declined')
|
|
73
|
+
return false;
|
|
74
|
+
config.setTelemetryOffByEnv(via);
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return false;
|
|
34
79
|
}
|
|
35
|
-
const answer = await p.confirm({
|
|
36
|
-
message: 'Help improve Align? Send an anonymous count of which commands you run - no code, no ' +
|
|
37
|
-
'decisions, no file names, ever. You can change this any time with `align telemetry off`.',
|
|
38
|
-
initialValue: false,
|
|
39
|
-
});
|
|
40
|
-
config.setTelemetryConsent(!p.isCancel(answer) && answer ? 'granted' : 'declined');
|
|
41
80
|
}
|
|
42
81
|
//# sourceMappingURL=telemetry-consent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-consent.js","sourceRoot":"","sources":["../../src/lib/telemetry-consent.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"telemetry-consent.js","sourceRoot":"","sources":["../../src/lib/telemetry-consent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAazC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAC3B,gFAAgF;IAChF,6EAA6E;IAC7E,0DAA0D;IAC1D,uFAAuF,CAAC;AAW1F,MAAM,KAAK,GAAG,CAAC,CAAqB,EAAW,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC;AAE9E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAA4B,EAC5B,GAAkB,EAClB,QAAgC,CAAC,IAAI,EAAE,EAAE;IACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC;QACvD,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,aAAa;YAAE,OAAO,KAAK,CAAC;QAChD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACtD,IAAI,sBAAsB,EAAE,KAAK,SAAS,IAAI,IAAI,EAAE;YAAE,OAAO,KAAK,CAAC;QACnE,IAAI,MAAM,CAAC,mBAAmB,EAAE,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC7D,IAAI,MAAM,CAAC,yBAAyB,EAAE,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACnE,0FAA0F;QAC1F,yFAAyF;QACzF,4FAA4F;QAC5F,uFAAuF;QACvF,oDAAoD;QACpD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAChE,KAAK,CAAC,GAAG,gBAAgB,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,wBAAwB,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAQD;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,MAAsB;IACnD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,sBAAsB,EAAE,CAAC;QACrC,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAC5C,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,UAAU;YAAE,OAAO,KAAK,CAAC;QAC5D,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* ALI-954: the two environment variables that turn ALL telemetry off - both tiers, the
|
|
3
|
-
* default-on beacons included. Its own module so the
|
|
3
|
+
* default-on beacons included. Its own module so the one-time notice (telemetry-consent.ts)
|
|
4
4
|
* can ask the same question without importing the emitter, which setup.test.ts mocks down to
|
|
5
5
|
* one function.
|
|
6
6
|
*
|
|
@@ -5,36 +5,61 @@ import { type EnvironmentConfig, type TelemetryConsent } from './config.js';
|
|
|
5
5
|
*
|
|
6
6
|
* Cloud mode is opt-out: a cloud user is already on an authenticated connection to our
|
|
7
7
|
* gateway, so an event about a call already being made is not a new phone-home. Local-embedded
|
|
8
|
-
* mode
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* setup, default No). `--local` users have no account and no tenant, so there is nothing
|
|
15
|
-
* to authenticate an event against - the consent is the gate.
|
|
8
|
+
* mode is opt-out too since C6, disclosed by a one-time notice (telemetry-consent.ts) that cli.ts
|
|
9
|
+
* prints to stderr before the first send - nothing local sends until it has printed
|
|
10
|
+
* (localTierAllows). An install that answered No to the pre-C6 setup question ('declined')
|
|
11
|
+
* keeps that answer for usage; the two ALI-954 beacons (install, setup_completed) still send
|
|
12
|
+
* for it, as they did. `--local` users have no account and no tenant, so there is nothing to
|
|
13
|
+
* authenticate an event against - the notice, and the stored decision, are the gate.
|
|
16
14
|
* Both modes send only a command name, never arguments or content. docs/telemetry.md lists
|
|
17
15
|
* every event and field, and telemetry-docs-parity.test.ts keeps that page true.
|
|
18
16
|
*
|
|
19
|
-
* `ALIGN_TELEMETRY=0` and `DO_NOT_TRACK=1` (telemetry-env.ts)
|
|
20
|
-
* in both modes, over a granted local
|
|
21
|
-
* two). `align telemetry off` stores 'off', which does the same thing without an env var.
|
|
17
|
+
* `ALIGN_TELEMETRY=0` and `DO_NOT_TRACK=1` (telemetry-env.ts), and running in CI
|
|
18
|
+
* (telemetry-ci.ts, C6), turn everything off, both tiers, in both modes, over a granted local
|
|
19
|
+
* consent included (ALI-618 D3b - one consent model, not two). `align telemetry off` stores 'off', which does the same thing without an env var.
|
|
22
20
|
*/
|
|
23
21
|
export declare const TELEMETRY_TIMEOUT_MS = 2000;
|
|
22
|
+
/**
|
|
23
|
+
* THE one predicate for "a stored answer forbids sending anything", read by every send path:
|
|
24
|
+
* local usage, local stages and beacons (localTierAllows), the install beacon's first-run
|
|
25
|
+
* consumption, cloud cli.command and cloud funnel stages, and `align telemetry status`.
|
|
26
|
+
* 'off' is `align telemetry off`; 'declined' is a No to the pre-C6 setup question. The privacy
|
|
27
|
+
* page promises "if you turned telemetry off earlier, it stays off", with no mode attached, so
|
|
28
|
+
* both stop everything in both modes (review of e794c6e, then the coordinator's call that a
|
|
29
|
+
* declined cloud user is off too).
|
|
30
|
+
*/
|
|
31
|
+
export declare function storedAnswerForbidsSending(consent: TelemetryConsent | undefined): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* The hard cap on the one send that is awaited: the first-run install beacon. Once per install,
|
|
34
|
+
* so ordinary runs never pay it.
|
|
35
|
+
*/
|
|
36
|
+
export declare const INSTALL_BEACON_CAP_MS = 800;
|
|
24
37
|
export interface TelemetryStatus {
|
|
25
38
|
enabled: boolean;
|
|
26
39
|
reason: string;
|
|
27
40
|
}
|
|
28
41
|
/**
|
|
29
|
-
* ALI-618 D3b: what `align telemetry status` prints. Takes the consent decision
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* local's stored decision (ALI-954:
|
|
33
|
-
* usage is off but they are not) - with the env switches
|
|
34
|
-
*
|
|
42
|
+
* ALI-618 D3b: what `align telemetry status` prints. Takes the consent decision and whether the
|
|
43
|
+
* C6 notice has printed as plain arguments rather than reading `config.ts` itself, so the
|
|
44
|
+
* model stays visible in one function a reader can hold in their head - cloud's opt-out
|
|
45
|
+
* default, and local's stored decision or the notice (ALI-954: the two default-on beacons named
|
|
46
|
+
* where usage is off but they are not) - with the env switches and CI overriding both, checked
|
|
47
|
+
* first.
|
|
35
48
|
*/
|
|
36
|
-
export declare function getTelemetryStatus(env: EnvironmentConfig, localConsent: TelemetryConsent | undefined
|
|
37
|
-
|
|
49
|
+
export declare function getTelemetryStatus(env: EnvironmentConfig, localConsent: TelemetryConsent | undefined, noticeShown?: boolean, offByEnv?: {
|
|
50
|
+
via: string;
|
|
51
|
+
at: string;
|
|
52
|
+
}): TelemetryStatus;
|
|
53
|
+
export declare function recordCommandUsage(env: EnvironmentConfig, command: string, opts?: {
|
|
54
|
+
capMs?: number;
|
|
55
|
+
}): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* ALI-795: the command groups whose second word is a SUBCOMMAND, mirroring the gateway's
|
|
58
|
+
* SUBCOMMAND_PARENTS (telemetryAnonymousRoutes.ts, align-stack#1990) - the two lists must
|
|
59
|
+
* agree or pings silently 400. A query-taking command (ask, search, capture...) sends its
|
|
60
|
+
* top-level word only, so a user's one-word query can never ride the command field.
|
|
61
|
+
*/
|
|
62
|
+
export declare const SUBCOMMAND_PARENTS: ReadonlySet<string>;
|
|
38
63
|
/**
|
|
39
64
|
* ALI-795: the activation-funnel stages, matching the gateway's closed enum
|
|
40
65
|
* (telemetryAnonymousRoutes.ts). Repeat-use and D7 are deliberately absent - both derive
|
|
@@ -65,7 +90,31 @@ export declare function recordCommandUsage(env: EnvironmentConfig, command: stri
|
|
|
65
90
|
* strings have one writer here as they now do on the gateway side (align-stack #2237).
|
|
66
91
|
*/
|
|
67
92
|
export declare const SESSION_IMPORT_STAGES: readonly ["sessions_scanned", "candidates_found", "candidates_confirmed", "decisions_ratified"];
|
|
68
|
-
export declare const FUNNEL_STAGES: readonly ["setup_started", "setup_completed", "import_completed", "mcp_wired", "first_useful_decision", "teammate_requested", "sessions_scanned", "candidates_found", "candidates_confirmed", "decisions_ratified", "agent_launched"];
|
|
93
|
+
export declare const FUNNEL_STAGES: readonly ["setup_started", "setup_completed", "import_completed", "mcp_wired", "first_useful_decision", "teammate_requested", "sessions_scanned", "candidates_found", "candidates_confirmed", "decisions_ratified", "agent_launched", "source_synced"];
|
|
94
|
+
/**
|
|
95
|
+
* L7: what `source_synced` reports. A count and four closed enums, nothing else - never a repo, a
|
|
96
|
+
* host, a space, a project, a title or an id. Each list is a mirror of the gateway's (align-stack
|
|
97
|
+
* telemetryAnonymousRoutes.ts: SOURCE_VALUES, SYNC_OUTCOME_VALUES, SCOPE_VALUES,
|
|
98
|
+
* SYNC_TRIGGER_VALUES), and `telemetry-server-parity.test.ts` checks them against that file.
|
|
99
|
+
* A value outside a list is a silent 400 there, so it is dropped here instead of sent.
|
|
100
|
+
*
|
|
101
|
+
* `SYNC_TRIGGERS` has no `mcp` although the plan wanted one: the gateway's list does not (it is
|
|
102
|
+
* `connect`, `background`, `manual`), and a sync an agent starts over MCP runs as the background
|
|
103
|
+
* child, so it reports `background`.
|
|
104
|
+
*/
|
|
105
|
+
export declare const SYNC_SOURCES: readonly ["git", "docs", "github", "jira", "confluence", "slack", "teams", "zoom", "gitlab", "linear", "notion"];
|
|
106
|
+
export declare const SYNC_OUTCOMES: readonly ["ok", "partial", "needs_reauth", "error"];
|
|
107
|
+
export declare const SYNC_SCOPES: readonly ["yours", "team"];
|
|
108
|
+
export declare const SYNC_TRIGGERS: readonly ["connect", "background", "manual"];
|
|
109
|
+
/** The gateway's `MAX_FUNNEL_COUNT`: above it the whole ping is a 400. */
|
|
110
|
+
export declare const MAX_FUNNEL_COUNT = 100000;
|
|
111
|
+
export interface SyncMeasurement {
|
|
112
|
+
count: number;
|
|
113
|
+
source: (typeof SYNC_SOURCES)[number];
|
|
114
|
+
outcome: (typeof SYNC_OUTCOMES)[number];
|
|
115
|
+
scope: (typeof SYNC_SCOPES)[number];
|
|
116
|
+
trigger: (typeof SYNC_TRIGGERS)[number];
|
|
117
|
+
}
|
|
69
118
|
/**
|
|
70
119
|
* What a session-import stage reports. A count and the agent's name, and nothing else - never a
|
|
71
120
|
* repo, a path, a session id or a line of any transcript. The gateway refuses both fields on
|
|
@@ -107,7 +156,9 @@ export declare const BEACON_STAGES: readonly ["install", "setup_completed"];
|
|
|
107
156
|
* offers setup_started at several checkpoints because local-mode consent arrives
|
|
108
157
|
* mid-wizard, and this is how it knows which offer landed (lib/setup-funnel.ts).
|
|
109
158
|
*/
|
|
110
|
-
export declare function recordFunnelStage(env: EnvironmentConfig, stage: FunnelStage, command: string, measurement?: FunnelMeasurement | AgentMeasurement
|
|
159
|
+
export declare function recordFunnelStage(env: EnvironmentConfig, stage: FunnelStage, command: string, measurement?: FunnelMeasurement | AgentMeasurement | SyncMeasurement, opts?: {
|
|
160
|
+
capMs?: number;
|
|
161
|
+
}): Promise<boolean>;
|
|
111
162
|
/**
|
|
112
163
|
* ALI-954: the install beacon - the funnel's denominator. Sent from the preAction hook in
|
|
113
164
|
* index.ts, so it goes out BEFORE any prompt on the very first run of this install id, and
|
|
@@ -182,5 +233,19 @@ export declare function envFlagOf(cmd: {
|
|
|
182
233
|
* a local session. It costs one activation count on a once-per-machine command, in the direction
|
|
183
234
|
* that cannot leak.
|
|
184
235
|
*/
|
|
185
|
-
export declare function recordInvocationUsage(envFlag: string | undefined, command: string
|
|
236
|
+
export declare function recordInvocationUsage(envFlag: string | undefined, command: string, opts?: {
|
|
237
|
+
background?: boolean;
|
|
238
|
+
capMs?: number;
|
|
239
|
+
}): Promise<void>;
|
|
240
|
+
/**
|
|
241
|
+
* C6: what runs before every command (cli.ts's preAction): the one-time notice, then the
|
|
242
|
+
* install beacon, both awaited. On every run but the first, the beacon returns after a config
|
|
243
|
+
* read and sends nothing. On the first run it is the one send that is awaited, capped at
|
|
244
|
+
* INSTALL_BEACON_CAP_MS (see recordInstallBeacon), so the command cannot exit before it is
|
|
245
|
+
* delivered. Every other event stays fire-and-forget. `hook` is the invocation's own flags (`check --hook` /
|
|
246
|
+
* `--advisory`), marked here because the command's action, which also marks it, runs later.
|
|
247
|
+
*/
|
|
248
|
+
export declare function beginInvocationTelemetry(commandPath: string, opts: {
|
|
249
|
+
hook: boolean;
|
|
250
|
+
}): Promise<boolean>;
|
|
186
251
|
//# sourceMappingURL=usage-telemetry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-telemetry.d.ts","sourceRoot":"","sources":["../../src/lib/usage-telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"usage-telemetry.d.ts","sourceRoot":"","sources":["../../src/lib/usage-telemetry.ts"],"names":[],"mappings":"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"}
|