@aligndottech/cli 0.49.0 → 0.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +32 -8
- package/dist/cli.js.map +1 -1
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +4 -1
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +18 -2
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/config.d.ts +8 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +33 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/connect-agents.d.ts.map +1 -1
- package/dist/commands/connect-agents.js +3 -1
- package/dist/commands/connect-agents.js.map +1 -1
- package/dist/commands/connect.d.ts +5 -0
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +24 -0
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +11 -0
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/import/confluence.d.ts.map +1 -1
- package/dist/commands/import/confluence.js +24 -5
- package/dist/commands/import/confluence.js.map +1 -1
- package/dist/commands/import/docs.js +2 -2
- package/dist/commands/import/git.d.ts.map +1 -1
- package/dist/commands/import/git.js +15 -5
- package/dist/commands/import/git.js.map +1 -1
- package/dist/commands/import/github.d.ts.map +1 -1
- package/dist/commands/import/github.js +34 -7
- package/dist/commands/import/github.js.map +1 -1
- package/dist/commands/import/gitlab.d.ts.map +1 -1
- package/dist/commands/import/gitlab.js +10 -5
- package/dist/commands/import/gitlab.js.map +1 -1
- package/dist/commands/import/jira.d.ts.map +1 -1
- package/dist/commands/import/jira.js +10 -5
- package/dist/commands/import/jira.js.map +1 -1
- package/dist/commands/import/linear.d.ts.map +1 -1
- package/dist/commands/import/linear.js +10 -5
- package/dist/commands/import/linear.js.map +1 -1
- package/dist/commands/import/notion.d.ts.map +1 -1
- package/dist/commands/import/notion.js +10 -5
- package/dist/commands/import/notion.js.map +1 -1
- package/dist/commands/import/sessions.js +2 -2
- package/dist/commands/import/slack.d.ts.map +1 -1
- package/dist/commands/import/slack.js +12 -7
- package/dist/commands/import/slack.js.map +1 -1
- package/dist/commands/import/teams.d.ts.map +1 -1
- package/dist/commands/import/teams.js +10 -5
- package/dist/commands/import/teams.js.map +1 -1
- package/dist/commands/import/zoom.d.ts.map +1 -1
- package/dist/commands/import/zoom.js +10 -5
- package/dist/commands/import/zoom.js.map +1 -1
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +43 -1
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/invite.d.ts +8 -18
- package/dist/commands/invite.d.ts.map +1 -1
- package/dist/commands/invite.js +23 -46
- package/dist/commands/invite.js.map +1 -1
- package/dist/commands/join.d.ts +5 -0
- package/dist/commands/join.d.ts.map +1 -0
- package/dist/commands/join.js +49 -0
- package/dist/commands/join.js.map +1 -0
- package/dist/commands/local-relink.d.ts +35 -0
- package/dist/commands/local-relink.d.ts.map +1 -0
- package/dist/commands/local-relink.js +72 -0
- package/dist/commands/local-relink.js.map +1 -0
- package/dist/commands/local.d.ts.map +1 -1
- package/dist/commands/local.js +113 -4
- package/dist/commands/local.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +21 -2
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/mark.d.ts +37 -0
- package/dist/commands/mark.d.ts.map +1 -0
- package/dist/commands/mark.js +105 -0
- package/dist/commands/mark.js.map +1 -0
- package/dist/commands/mcp.d.ts +149 -2
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +80 -15
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/registry.d.ts.map +1 -1
- package/dist/commands/registry.js +12 -2
- package/dist/commands/registry.js.map +1 -1
- package/dist/commands/setup.d.ts +39 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +65 -50
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/share.d.ts +7 -0
- package/dist/commands/share.d.ts.map +1 -0
- package/dist/commands/share.js +129 -0
- package/dist/commands/share.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +10 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/sync.d.ts +55 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +278 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/telemetry.d.ts +3 -3
- package/dist/commands/telemetry.js +6 -6
- package/dist/commands/telemetry.js.map +1 -1
- package/dist/commands/why.d.ts.map +1 -1
- package/dist/commands/why.js +6 -1
- package/dist/commands/why.js.map +1 -1
- package/dist/detector/detector-version.d.ts +16 -0
- package/dist/detector/detector-version.d.ts.map +1 -0
- package/dist/detector/detector-version.js +36 -0
- package/dist/detector/detector-version.js.map +1 -0
- package/dist/detector/relationship-contract.d.ts +30 -0
- package/dist/detector/relationship-contract.d.ts.map +1 -0
- package/dist/detector/relationship-contract.js +120 -0
- package/dist/detector/relationship-contract.js.map +1 -0
- package/dist/detector/relationship-contract.v1.json +53 -0
- package/dist/detector/relationship-prompt.d.ts +20 -0
- package/dist/detector/relationship-prompt.d.ts.map +1 -0
- package/dist/detector/relationship-prompt.js +55 -0
- package/dist/detector/relationship-prompt.js.map +1 -0
- package/dist/detector/relationship-prompt.v1.json +13 -0
- package/dist/detector/resolve-pair.d.ts +39 -0
- package/dist/detector/resolve-pair.d.ts.map +1 -0
- package/dist/detector/resolve-pair.js +345 -0
- package/dist/detector/resolve-pair.js.map +1 -0
- package/dist/detector/similar-item.d.ts +20 -0
- package/dist/detector/similar-item.d.ts.map +1 -0
- package/dist/detector/similar-item.js +16 -0
- package/dist/detector/similar-item.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -11
- package/dist/index.js.map +1 -1
- package/dist/lib/advisory-dedup.d.ts.map +1 -1
- package/dist/lib/advisory-dedup.js +16 -8
- package/dist/lib/advisory-dedup.js.map +1 -1
- package/dist/lib/advisory-verdict.d.ts +19 -0
- package/dist/lib/advisory-verdict.d.ts.map +1 -1
- package/dist/lib/advisory-verdict.js +6 -3
- package/dist/lib/advisory-verdict.js.map +1 -1
- package/dist/lib/backfill-state.d.ts +116 -0
- package/dist/lib/backfill-state.d.ts.map +1 -0
- package/dist/lib/backfill-state.js +342 -0
- package/dist/lib/backfill-state.js.map +1 -0
- package/dist/lib/backup-copy.d.ts +17 -0
- package/dist/lib/backup-copy.d.ts.map +1 -0
- package/dist/lib/backup-copy.js +13 -0
- package/dist/lib/backup-copy.js.map +1 -0
- package/dist/lib/backup-exclusion.d.ts +10 -0
- package/dist/lib/backup-exclusion.d.ts.map +1 -0
- package/dist/lib/backup-exclusion.js +58 -0
- package/dist/lib/backup-exclusion.js.map +1 -0
- package/dist/lib/capture-report.d.ts +22 -18
- package/dist/lib/capture-report.d.ts.map +1 -1
- package/dist/lib/capture-report.js +64 -2
- package/dist/lib/capture-report.js.map +1 -1
- package/dist/lib/cli-oauth.d.ts +2 -0
- package/dist/lib/cli-oauth.d.ts.map +1 -1
- package/dist/lib/cli-oauth.js +61 -10
- package/dist/lib/cli-oauth.js.map +1 -1
- package/dist/lib/config.d.ts +72 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +245 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/confirm-timeout.d.ts +8 -0
- package/dist/lib/confirm-timeout.d.ts.map +1 -0
- package/dist/lib/confirm-timeout.js +18 -0
- package/dist/lib/confirm-timeout.js.map +1 -0
- package/dist/lib/curation/check-marks.d.ts +48 -0
- package/dist/lib/curation/check-marks.d.ts.map +1 -0
- package/dist/lib/curation/check-marks.js +81 -0
- package/dist/lib/curation/check-marks.js.map +1 -0
- package/dist/lib/curation/guardrail.d.ts +39 -0
- package/dist/lib/curation/guardrail.d.ts.map +1 -0
- package/dist/lib/curation/guardrail.js +95 -0
- package/dist/lib/curation/guardrail.js.map +1 -0
- package/dist/lib/curation/judge.d.ts +3 -0
- package/dist/lib/curation/judge.d.ts.map +1 -0
- package/dist/lib/curation/judge.js +9 -0
- package/dist/lib/curation/judge.js.map +1 -0
- package/dist/lib/curation/judgements-db.d.ts +97 -0
- package/dist/lib/curation/judgements-db.d.ts.map +1 -0
- package/dist/lib/curation/judgements-db.js +206 -0
- package/dist/lib/curation/judgements-db.js.map +1 -0
- package/dist/lib/curation/last-check.d.ts +32 -0
- package/dist/lib/curation/last-check.d.ts.map +1 -0
- package/dist/lib/curation/last-check.js +81 -0
- package/dist/lib/curation/last-check.js.map +1 -0
- package/dist/lib/curation/mark.d.ts +76 -0
- package/dist/lib/curation/mark.d.ts.map +1 -0
- package/dist/lib/curation/mark.js +361 -0
- package/dist/lib/curation/mark.js.map +1 -0
- package/dist/lib/curation/text.d.ts +6 -0
- package/dist/lib/curation/text.d.ts.map +1 -0
- package/dist/lib/curation/text.js +35 -0
- package/dist/lib/curation/text.js.map +1 -0
- package/dist/lib/destination-name.d.ts +24 -0
- package/dist/lib/destination-name.d.ts.map +1 -0
- package/dist/lib/destination-name.js +39 -0
- package/dist/lib/destination-name.js.map +1 -0
- package/dist/lib/destination-summary.d.ts +6 -0
- package/dist/lib/destination-summary.d.ts.map +1 -0
- package/dist/lib/destination-summary.js +27 -0
- package/dist/lib/destination-summary.js.map +1 -0
- package/dist/lib/destination-trust.d.ts +54 -0
- package/dist/lib/destination-trust.d.ts.map +1 -0
- package/dist/lib/destination-trust.js +107 -0
- package/dist/lib/destination-trust.js.map +1 -0
- package/dist/lib/env-resolver.d.ts.map +1 -1
- package/dist/lib/env-resolver.js +3 -0
- package/dist/lib/env-resolver.js.map +1 -1
- package/dist/lib/fatal.d.ts +11 -0
- package/dist/lib/fatal.d.ts.map +1 -0
- package/dist/lib/fatal.js +22 -0
- package/dist/lib/fatal.js.map +1 -0
- package/dist/lib/fetchers/capture.d.ts +49 -2
- package/dist/lib/fetchers/capture.d.ts.map +1 -1
- package/dist/lib/fetchers/capture.js +7 -1
- package/dist/lib/fetchers/capture.js.map +1 -1
- package/dist/lib/fetchers/confluence.d.ts +2 -2
- package/dist/lib/fetchers/confluence.d.ts.map +1 -1
- package/dist/lib/fetchers/confluence.js.map +1 -1
- package/dist/lib/fetchers/git.d.ts +1 -0
- package/dist/lib/fetchers/git.d.ts.map +1 -1
- package/dist/lib/fetchers/git.js +3 -1
- package/dist/lib/fetchers/git.js.map +1 -1
- package/dist/lib/fetchers/github.d.ts +44 -5
- package/dist/lib/fetchers/github.d.ts.map +1 -1
- package/dist/lib/fetchers/github.js +122 -5
- package/dist/lib/fetchers/github.js.map +1 -1
- package/dist/lib/fetchers/gitlab.d.ts +2 -2
- package/dist/lib/fetchers/gitlab.d.ts.map +1 -1
- package/dist/lib/fetchers/gitlab.js.map +1 -1
- package/dist/lib/fetchers/jira.d.ts +2 -2
- package/dist/lib/fetchers/jira.d.ts.map +1 -1
- package/dist/lib/fetchers/jira.js.map +1 -1
- package/dist/lib/fetchers/linear.d.ts +2 -2
- package/dist/lib/fetchers/linear.d.ts.map +1 -1
- package/dist/lib/fetchers/linear.js.map +1 -1
- package/dist/lib/fetchers/notion.d.ts +2 -2
- package/dist/lib/fetchers/notion.d.ts.map +1 -1
- package/dist/lib/fetchers/notion.js.map +1 -1
- package/dist/lib/fetchers/slack.d.ts +2 -3
- package/dist/lib/fetchers/slack.d.ts.map +1 -1
- package/dist/lib/fetchers/slack.js.map +1 -1
- package/dist/lib/fetchers/teams.d.ts +2 -2
- package/dist/lib/fetchers/teams.d.ts.map +1 -1
- package/dist/lib/fetchers/teams.js.map +1 -1
- package/dist/lib/fetchers/zoom.d.ts +2 -2
- package/dist/lib/fetchers/zoom.d.ts.map +1 -1
- package/dist/lib/fetchers/zoom.js.map +1 -1
- package/dist/lib/gateway-client.d.ts +40 -14
- package/dist/lib/gateway-client.d.ts.map +1 -1
- package/dist/lib/gateway-client.js +47 -19
- package/dist/lib/gateway-client.js.map +1 -1
- package/dist/lib/github-text.d.ts +3 -0
- package/dist/lib/github-text.d.ts.map +1 -0
- package/dist/lib/github-text.js +18 -0
- package/dist/lib/github-text.js.map +1 -0
- package/dist/lib/hook-context.d.ts +10 -0
- package/dist/lib/hook-context.d.ts.map +1 -1
- package/dist/lib/hook-context.js +14 -0
- package/dist/lib/hook-context.js.map +1 -1
- package/dist/lib/import-defaults.d.ts +39 -23
- package/dist/lib/import-defaults.d.ts.map +1 -1
- package/dist/lib/import-defaults.js +28 -26
- package/dist/lib/import-defaults.js.map +1 -1
- package/dist/lib/invite-prompt.d.ts +4 -4
- package/dist/lib/invite-prompt.d.ts.map +1 -1
- package/dist/lib/invite-prompt.js +4 -4
- package/dist/lib/invite-prompt.js.map +1 -1
- package/dist/lib/invite-settings.d.ts +18 -0
- package/dist/lib/invite-settings.d.ts.map +1 -0
- package/dist/lib/invite-settings.js +29 -0
- package/dist/lib/invite-settings.js.map +1 -0
- package/dist/lib/join-flow.d.ts +60 -0
- package/dist/lib/join-flow.d.ts.map +1 -0
- package/dist/lib/join-flow.js +282 -0
- package/dist/lib/join-flow.js.map +1 -0
- package/dist/lib/launch/adapters/aider.d.ts +17 -0
- package/dist/lib/launch/adapters/aider.d.ts.map +1 -0
- package/dist/lib/launch/adapters/aider.js +30 -0
- package/dist/lib/launch/adapters/aider.js.map +1 -0
- package/dist/lib/launch/adapters/auggie.d.ts +18 -0
- package/dist/lib/launch/adapters/auggie.d.ts.map +1 -0
- package/dist/lib/launch/adapters/auggie.js +34 -0
- package/dist/lib/launch/adapters/auggie.js.map +1 -0
- package/dist/lib/launch/adapters/cline.d.ts +10 -0
- package/dist/lib/launch/adapters/cline.d.ts.map +1 -0
- package/dist/lib/launch/adapters/cline.js +41 -0
- package/dist/lib/launch/adapters/cline.js.map +1 -0
- package/dist/lib/launch/adapters/continue.d.ts +22 -0
- package/dist/lib/launch/adapters/continue.d.ts.map +1 -0
- package/dist/lib/launch/adapters/continue.js +46 -0
- package/dist/lib/launch/adapters/continue.js.map +1 -0
- package/dist/lib/launch/adapters/gemini-cli.d.ts +13 -14
- package/dist/lib/launch/adapters/gemini-cli.d.ts.map +1 -1
- package/dist/lib/launch/adapters/gemini-cli.js +38 -53
- package/dist/lib/launch/adapters/gemini-cli.js.map +1 -1
- package/dist/lib/launch/adapters/goose.d.ts +20 -0
- package/dist/lib/launch/adapters/goose.d.ts.map +1 -0
- package/dist/lib/launch/adapters/goose.js +47 -0
- package/dist/lib/launch/adapters/goose.js.map +1 -0
- package/dist/lib/launch/adapters/notes.d.ts +7 -0
- package/dist/lib/launch/adapters/notes.d.ts.map +1 -0
- package/dist/lib/launch/adapters/notes.js +5 -0
- package/dist/lib/launch/adapters/notes.js.map +1 -0
- package/dist/lib/launch/agents.d.ts +2 -0
- package/dist/lib/launch/agents.d.ts.map +1 -1
- package/dist/lib/launch/agents.js +3 -1
- package/dist/lib/launch/agents.js.map +1 -1
- package/dist/lib/launch/auggie-state.d.ts +25 -0
- package/dist/lib/launch/auggie-state.d.ts.map +1 -0
- package/dist/lib/launch/auggie-state.js +74 -0
- package/dist/lib/launch/auggie-state.js.map +1 -0
- package/dist/lib/launch/cline-state.d.ts +32 -0
- package/dist/lib/launch/cline-state.d.ts.map +1 -0
- package/dist/lib/launch/cline-state.js +108 -0
- package/dist/lib/launch/cline-state.js.map +1 -0
- package/dist/lib/launch/config-writes.d.ts +4 -0
- package/dist/lib/launch/config-writes.d.ts.map +1 -1
- package/dist/lib/launch/config-writes.js +8 -3
- package/dist/lib/launch/config-writes.js.map +1 -1
- package/dist/lib/launch/continue-state.d.ts +41 -0
- package/dist/lib/launch/continue-state.d.ts.map +1 -0
- package/dist/lib/launch/continue-state.js +142 -0
- package/dist/lib/launch/continue-state.js.map +1 -0
- package/dist/lib/launch/detect.d.ts.map +1 -1
- package/dist/lib/launch/detect.js +3 -1
- package/dist/lib/launch/detect.js.map +1 -1
- package/dist/lib/launch/gemini-state.d.ts +26 -20
- package/dist/lib/launch/gemini-state.d.ts.map +1 -1
- package/dist/lib/launch/gemini-state.js +95 -37
- package/dist/lib/launch/gemini-state.js.map +1 -1
- package/dist/lib/launch/gemini-system-file.d.ts +17 -0
- package/dist/lib/launch/gemini-system-file.d.ts.map +1 -0
- package/dist/lib/launch/gemini-system-file.js +55 -0
- package/dist/lib/launch/gemini-system-file.js.map +1 -0
- package/dist/lib/launch/gemini-trust.d.ts +3 -1
- package/dist/lib/launch/gemini-trust.d.ts.map +1 -1
- package/dist/lib/launch/gemini-trust.js +10 -3
- package/dist/lib/launch/gemini-trust.js.map +1 -1
- package/dist/lib/launch/goose-state.d.ts +53 -0
- package/dist/lib/launch/goose-state.d.ts.map +1 -0
- package/dist/lib/launch/goose-state.js +137 -0
- package/dist/lib/launch/goose-state.js.map +1 -0
- package/dist/lib/launch/launch-files.d.ts.map +1 -1
- package/dist/lib/launch/launch-files.js +3 -2
- package/dist/lib/launch/launch-files.js.map +1 -1
- package/dist/lib/launch/launch.d.ts +17 -2
- package/dist/lib/launch/launch.d.ts.map +1 -1
- package/dist/lib/launch/launch.js +36 -3
- package/dist/lib/launch/launch.js.map +1 -1
- package/dist/lib/launch/mcp-child-env.d.ts +30 -0
- package/dist/lib/launch/mcp-child-env.d.ts.map +1 -0
- package/dist/lib/launch/mcp-child-env.js +154 -0
- package/dist/lib/launch/mcp-child-env.js.map +1 -0
- package/dist/lib/launch/pick-agent.d.ts.map +1 -1
- package/dist/lib/launch/pick-agent.js +4 -4
- package/dist/lib/launch/pick-agent.js.map +1 -1
- package/dist/lib/launch/picker-options.d.ts.map +1 -1
- package/dist/lib/launch/picker-options.js +7 -2
- package/dist/lib/launch/picker-options.js.map +1 -1
- package/dist/lib/launch/registry/agents/aider.d.ts +3 -0
- package/dist/lib/launch/registry/agents/aider.d.ts.map +1 -0
- package/dist/lib/launch/registry/agents/aider.js +13 -0
- package/dist/lib/launch/registry/agents/aider.js.map +1 -0
- package/dist/lib/launch/registry/agents/auggie.d.ts +3 -0
- package/dist/lib/launch/registry/agents/auggie.d.ts.map +1 -0
- package/dist/lib/launch/registry/agents/auggie.js +11 -0
- package/dist/lib/launch/registry/agents/auggie.js.map +1 -0
- package/dist/lib/launch/registry/agents/cline.d.ts +3 -0
- package/dist/lib/launch/registry/agents/cline.d.ts.map +1 -0
- package/dist/lib/launch/registry/agents/cline.js +19 -0
- package/dist/lib/launch/registry/agents/cline.js.map +1 -0
- package/dist/lib/launch/registry/agents/continue.d.ts +3 -0
- package/dist/lib/launch/registry/agents/continue.d.ts.map +1 -0
- package/dist/lib/launch/registry/agents/continue.js +20 -0
- package/dist/lib/launch/registry/agents/continue.js.map +1 -0
- package/dist/lib/launch/registry/agents/gemini-cli.js +2 -2
- package/dist/lib/launch/registry/agents/gemini-cli.js.map +1 -1
- package/dist/lib/launch/registry/agents/goose.d.ts +3 -0
- package/dist/lib/launch/registry/agents/goose.d.ts.map +1 -0
- package/dist/lib/launch/registry/agents/goose.js +20 -0
- package/dist/lib/launch/registry/agents/goose.js.map +1 -0
- package/dist/lib/launch/registry/index.d.ts +1 -1
- package/dist/lib/launch/registry/index.d.ts.map +1 -1
- package/dist/lib/launch/registry/index.js +7 -2
- package/dist/lib/launch/registry/index.js.map +1 -1
- package/dist/lib/launch/registry/types.d.ts +12 -1
- package/dist/lib/launch/registry/types.d.ts.map +1 -1
- package/dist/lib/launch/strict-entry.d.ts +22 -2
- package/dist/lib/launch/strict-entry.d.ts.map +1 -1
- package/dist/lib/launch/strict-entry.js +80 -2
- package/dist/lib/launch/strict-entry.js.map +1 -1
- package/dist/lib/launch/yaml-scan.d.ts +59 -0
- package/dist/lib/launch/yaml-scan.d.ts.map +1 -0
- package/dist/lib/launch/yaml-scan.js +275 -0
- package/dist/lib/launch/yaml-scan.js.map +1 -0
- package/dist/lib/lead-prompt.d.ts +106 -0
- package/dist/lib/lead-prompt.d.ts.map +1 -0
- package/dist/lib/lead-prompt.js +175 -0
- package/dist/lib/lead-prompt.js.map +1 -0
- package/dist/lib/local-candidate-classify.d.ts +26 -0
- package/dist/lib/local-candidate-classify.d.ts.map +1 -0
- package/dist/lib/local-candidate-classify.js +53 -0
- package/dist/lib/local-candidate-classify.js.map +1 -0
- package/dist/lib/local-db-epoch.d.ts +4 -0
- package/dist/lib/local-db-epoch.d.ts.map +1 -0
- package/dist/lib/local-db-epoch.js +19 -0
- package/dist/lib/local-db-epoch.js.map +1 -0
- package/dist/lib/local-db-migrate.d.ts +85 -0
- package/dist/lib/local-db-migrate.d.ts.map +1 -0
- package/dist/lib/local-db-migrate.js +528 -0
- package/dist/lib/local-db-migrate.js.map +1 -0
- package/dist/lib/local-db-v10.d.ts +28 -0
- package/dist/lib/local-db-v10.d.ts.map +1 -0
- package/dist/lib/local-db-v10.js +49 -0
- package/dist/lib/local-db-v10.js.map +1 -0
- package/dist/lib/local-db-v11.d.ts +24 -0
- package/dist/lib/local-db-v11.d.ts.map +1 -0
- package/dist/lib/local-db-v11.js +25 -0
- package/dist/lib/local-db-v11.js.map +1 -0
- package/dist/lib/local-db-v12.d.ts +17 -0
- package/dist/lib/local-db-v12.d.ts.map +1 -0
- package/dist/lib/local-db-v12.js +8 -0
- package/dist/lib/local-db-v12.js.map +1 -0
- package/dist/lib/local-db-v7.d.ts +30 -0
- package/dist/lib/local-db-v7.d.ts.map +1 -0
- package/dist/lib/local-db-v7.js +285 -0
- package/dist/lib/local-db-v7.js.map +1 -0
- package/dist/lib/local-db-v8.d.ts +22 -0
- package/dist/lib/local-db-v8.d.ts.map +1 -0
- package/dist/lib/local-db-v8.js +33 -0
- package/dist/lib/local-db-v8.js.map +1 -0
- package/dist/lib/local-db-v9.d.ts +10 -0
- package/dist/lib/local-db-v9.d.ts.map +1 -0
- package/dist/lib/local-db-v9.js +8 -0
- package/dist/lib/local-db-v9.js.map +1 -0
- package/dist/lib/local-db.d.ts +73 -23
- package/dist/lib/local-db.d.ts.map +1 -1
- package/dist/lib/local-db.js +225 -375
- package/dist/lib/local-db.js.map +1 -1
- package/dist/lib/local-embeddings.d.ts.map +1 -1
- package/dist/lib/local-embeddings.js +2 -2
- package/dist/lib/local-embeddings.js.map +1 -1
- package/dist/lib/local-gateway-client.d.ts +31 -87
- package/dist/lib/local-gateway-client.d.ts.map +1 -1
- package/dist/lib/local-gateway-client.js +209 -187
- package/dist/lib/local-gateway-client.js.map +1 -1
- package/dist/lib/local-ingest.d.ts +131 -0
- package/dist/lib/local-ingest.d.ts.map +1 -0
- package/dist/lib/local-ingest.js +81 -0
- package/dist/lib/local-ingest.js.map +1 -0
- package/dist/lib/local-link-pass.d.ts +15 -0
- package/dist/lib/local-link-pass.d.ts.map +1 -0
- package/dist/lib/local-link-pass.js +57 -0
- package/dist/lib/local-link-pass.js.map +1 -0
- package/dist/lib/local-llm.d.ts +1 -1
- package/dist/lib/local-llm.d.ts.map +1 -1
- package/dist/lib/local-llm.js +3 -2
- package/dist/lib/local-llm.js.map +1 -1
- package/dist/lib/local-mode.d.ts +9 -2
- package/dist/lib/local-mode.d.ts.map +1 -1
- package/dist/lib/local-mode.js +27 -7
- package/dist/lib/local-mode.js.map +1 -1
- package/dist/lib/local-provenance.d.ts +14 -0
- package/dist/lib/local-provenance.d.ts.map +1 -0
- package/dist/lib/local-provenance.js +14 -0
- package/dist/lib/local-provenance.js.map +1 -0
- package/dist/lib/local-relationship-classifier.d.ts +4 -0
- package/dist/lib/local-relationship-classifier.d.ts.map +1 -1
- package/dist/lib/local-relationship-classifier.js +9 -4
- package/dist/lib/local-relationship-classifier.js.map +1 -1
- package/dist/lib/local-relink.d.ts +59 -0
- package/dist/lib/local-relink.d.ts.map +1 -0
- package/dist/lib/local-relink.js +171 -0
- package/dist/lib/local-relink.js.map +1 -0
- package/dist/lib/local-set-classifier.d.ts +36 -0
- package/dist/lib/local-set-classifier.d.ts.map +1 -0
- package/dist/lib/local-set-classifier.js +81 -0
- package/dist/lib/local-set-classifier.js.map +1 -0
- package/dist/lib/local-snapshot-loader.d.ts +29 -0
- package/dist/lib/local-snapshot-loader.d.ts.map +1 -0
- package/dist/lib/local-snapshot-loader.js +108 -0
- package/dist/lib/local-snapshot-loader.js.map +1 -0
- package/dist/lib/local-thresholds.d.ts +70 -0
- package/dist/lib/local-thresholds.d.ts.map +1 -0
- package/dist/lib/local-thresholds.js +79 -0
- package/dist/lib/local-thresholds.js.map +1 -0
- package/dist/lib/login-flow.d.ts +15 -0
- package/dist/lib/login-flow.d.ts.map +1 -1
- package/dist/lib/login-flow.js +80 -4
- package/dist/lib/login-flow.js.map +1 -1
- package/dist/lib/mcp/mark-tool.d.ts +27 -0
- package/dist/lib/mcp/mark-tool.d.ts.map +1 -0
- package/dist/lib/mcp/mark-tool.js +103 -0
- package/dist/lib/mcp/mark-tool.js.map +1 -0
- package/dist/lib/mcp/share-status-tool.d.ts +13 -0
- package/dist/lib/mcp/share-status-tool.d.ts.map +1 -0
- package/dist/lib/mcp/share-status-tool.js +116 -0
- package/dist/lib/mcp/share-status-tool.js.map +1 -0
- package/dist/lib/mcp/share-tool.d.ts +50 -0
- package/dist/lib/mcp/share-tool.d.ts.map +1 -0
- package/dist/lib/mcp/share-tool.js +174 -0
- package/dist/lib/mcp/share-tool.js.map +1 -0
- package/dist/lib/mcp/tool-rules.d.ts +30 -0
- package/dist/lib/mcp/tool-rules.d.ts.map +1 -0
- package/dist/lib/mcp/tool-rules.js +84 -0
- package/dist/lib/mcp/tool-rules.js.map +1 -0
- package/dist/lib/mcp-backfill.d.ts +89 -0
- package/dist/lib/mcp-backfill.d.ts.map +1 -0
- package/dist/lib/mcp-backfill.js +194 -0
- package/dist/lib/mcp-backfill.js.map +1 -0
- package/dist/lib/mcp-scope.d.ts +90 -0
- package/dist/lib/mcp-scope.d.ts.map +1 -0
- package/dist/lib/mcp-scope.js +125 -0
- package/dist/lib/mcp-scope.js.map +1 -0
- package/dist/lib/mcp-sync.d.ts +64 -0
- package/dist/lib/mcp-sync.d.ts.map +1 -0
- package/dist/lib/mcp-sync.js +183 -0
- package/dist/lib/mcp-sync.js.map +1 -0
- package/dist/lib/model-cache.d.ts +10 -0
- package/dist/lib/model-cache.d.ts.map +1 -0
- package/dist/lib/model-cache.js +35 -0
- package/dist/lib/model-cache.js.map +1 -0
- package/dist/lib/next-step.d.ts.map +1 -1
- package/dist/lib/next-step.js +2 -1
- package/dist/lib/next-step.js.map +1 -1
- package/dist/lib/personal-import.d.ts +7 -0
- package/dist/lib/personal-import.d.ts.map +1 -1
- package/dist/lib/personal-import.js +13 -1
- package/dist/lib/personal-import.js.map +1 -1
- package/dist/lib/private-files.d.ts +33 -0
- package/dist/lib/private-files.d.ts.map +1 -0
- package/dist/lib/private-files.js +96 -0
- package/dist/lib/private-files.js.map +1 -0
- package/dist/lib/redaction-notice.d.ts +7 -0
- package/dist/lib/redaction-notice.d.ts.map +1 -0
- package/dist/lib/redaction-notice.js +32 -0
- package/dist/lib/redaction-notice.js.map +1 -0
- package/dist/lib/relink-estimate.d.ts +16 -0
- package/dist/lib/relink-estimate.d.ts.map +1 -0
- package/dist/lib/relink-estimate.js +30 -0
- package/dist/lib/relink-estimate.js.map +1 -0
- package/dist/lib/resolve-env.d.ts +15 -1
- package/dist/lib/resolve-env.d.ts.map +1 -1
- package/dist/lib/resolve-env.js +27 -7
- package/dist/lib/resolve-env.js.map +1 -1
- package/dist/lib/safe-config-write.d.ts.map +1 -1
- package/dist/lib/safe-config-write.js +39 -2
- package/dist/lib/safe-config-write.js.map +1 -1
- package/dist/lib/scope-choices.d.ts +51 -0
- package/dist/lib/scope-choices.d.ts.map +1 -0
- package/dist/lib/scope-choices.js +193 -0
- package/dist/lib/scope-choices.js.map +1 -0
- package/dist/lib/scope-connect.d.ts +82 -0
- package/dist/lib/scope-connect.d.ts.map +1 -0
- package/dist/lib/scope-connect.js +258 -0
- package/dist/lib/scope-connect.js.map +1 -0
- package/dist/lib/scope-defaults.d.ts +3 -0
- package/dist/lib/scope-defaults.d.ts.map +1 -0
- package/dist/lib/scope-defaults.js +44 -0
- package/dist/lib/scope-defaults.js.map +1 -0
- package/dist/lib/scope-real.d.ts +280 -0
- package/dist/lib/scope-real.d.ts.map +1 -0
- package/dist/lib/scope-real.js +58 -0
- package/dist/lib/scope-real.js.map +1 -0
- package/dist/lib/scope-values.d.ts +76 -0
- package/dist/lib/scope-values.d.ts.map +1 -0
- package/dist/lib/scope-values.js +169 -0
- package/dist/lib/scope-values.js.map +1 -0
- package/dist/lib/scope.d.ts +161 -0
- package/dist/lib/scope.d.ts.map +1 -0
- package/dist/lib/scope.js +323 -0
- package/dist/lib/scope.js.map +1 -0
- package/dist/lib/setup-route.d.ts +4 -2
- package/dist/lib/setup-route.d.ts.map +1 -1
- package/dist/lib/setup-route.js +12 -6
- package/dist/lib/setup-route.js.map +1 -1
- package/dist/lib/share/approval.d.ts +71 -0
- package/dist/lib/share/approval.d.ts.map +1 -0
- package/dist/lib/share/approval.js +139 -0
- package/dist/lib/share/approval.js.map +1 -0
- package/dist/lib/share/approve-link.d.ts +31 -0
- package/dist/lib/share/approve-link.d.ts.map +1 -0
- package/dist/lib/share/approve-link.js +46 -0
- package/dist/lib/share/approve-link.js.map +1 -0
- package/dist/lib/share/browser-flow.d.ts +85 -0
- package/dist/lib/share/browser-flow.d.ts.map +1 -0
- package/dist/lib/share/browser-flow.js +168 -0
- package/dist/lib/share/browser-flow.js.map +1 -0
- package/dist/lib/share/command.d.ts +65 -0
- package/dist/lib/share/command.d.ts.map +1 -0
- package/dist/lib/share/command.js +278 -0
- package/dist/lib/share/command.js.map +1 -0
- package/dist/lib/share/delivery-options.d.ts +15 -0
- package/dist/lib/share/delivery-options.d.ts.map +1 -0
- package/dist/lib/share/delivery-options.js +16 -0
- package/dist/lib/share/delivery-options.js.map +1 -0
- package/dist/lib/share/delivery.d.ts +83 -0
- package/dist/lib/share/delivery.d.ts.map +1 -0
- package/dist/lib/share/delivery.js +134 -0
- package/dist/lib/share/delivery.js.map +1 -0
- package/dist/lib/share/envelope.d.ts +61 -0
- package/dist/lib/share/envelope.d.ts.map +1 -0
- package/dist/lib/share/envelope.js +99 -0
- package/dist/lib/share/envelope.js.map +1 -0
- package/dist/lib/share/ledger.d.ts +59 -0
- package/dist/lib/share/ledger.d.ts.map +1 -0
- package/dist/lib/share/ledger.js +137 -0
- package/dist/lib/share/ledger.js.map +1 -0
- package/dist/lib/share/payload.d.ts +101 -0
- package/dist/lib/share/payload.d.ts.map +1 -0
- package/dist/lib/share/payload.js +147 -0
- package/dist/lib/share/payload.js.map +1 -0
- package/dist/lib/share/pending.d.ts +94 -0
- package/dist/lib/share/pending.d.ts.map +1 -0
- package/dist/lib/share/pending.js +256 -0
- package/dist/lib/share/pending.js.map +1 -0
- package/dist/lib/share/preview.d.ts +22 -0
- package/dist/lib/share/preview.d.ts.map +1 -0
- package/dist/lib/share/preview.js +74 -0
- package/dist/lib/share/preview.js.map +1 -0
- package/dist/lib/share/qr.d.ts +13 -0
- package/dist/lib/share/qr.d.ts.map +1 -0
- package/dist/lib/share/qr.js +77 -0
- package/dist/lib/share/qr.js.map +1 -0
- package/dist/lib/share/requests-client.d.ts +63 -0
- package/dist/lib/share/requests-client.d.ts.map +1 -0
- package/dist/lib/share/requests-client.js +69 -0
- package/dist/lib/share/requests-client.js.map +1 -0
- package/dist/lib/share/run.d.ts +134 -0
- package/dist/lib/share/run.d.ts.map +1 -0
- package/dist/lib/share/run.js +278 -0
- package/dist/lib/share/run.js.map +1 -0
- package/dist/lib/share/salt.d.ts +2 -0
- package/dist/lib/share/salt.d.ts.map +1 -0
- package/dist/lib/share/salt.js +44 -0
- package/dist/lib/share/salt.js.map +1 -0
- package/dist/lib/share/secret-patterns.json +100 -0
- package/dist/lib/share/secret-scan.d.ts +24 -0
- package/dist/lib/share/secret-scan.d.ts.map +1 -0
- package/dist/lib/share/secret-scan.js +116 -0
- package/dist/lib/share/secret-scan.js.map +1 -0
- package/dist/lib/share/target.d.ts +38 -0
- package/dist/lib/share/target.d.ts.map +1 -0
- package/dist/lib/share/target.js +80 -0
- package/dist/lib/share/target.js.map +1 -0
- package/dist/lib/share/tty.d.ts +12 -0
- package/dist/lib/share/tty.d.ts.map +1 -0
- package/dist/lib/share/tty.js +102 -0
- package/dist/lib/share/tty.js.map +1 -0
- package/dist/lib/share/visible.d.ts +4 -0
- package/dist/lib/share/visible.d.ts.map +1 -0
- package/dist/lib/share/visible.js +30 -0
- package/dist/lib/share/visible.js.map +1 -0
- package/dist/lib/share/wire.d.ts +98 -0
- package/dist/lib/share/wire.d.ts.map +1 -0
- package/dist/lib/share/wire.js +43 -0
- package/dist/lib/share/wire.js.map +1 -0
- package/dist/lib/similarity/embedding-matrix.d.ts +64 -0
- package/dist/lib/similarity/embedding-matrix.d.ts.map +1 -0
- package/dist/lib/similarity/embedding-matrix.js +119 -0
- package/dist/lib/similarity/embedding-matrix.js.map +1 -0
- package/dist/lib/since-flag.d.ts +11 -0
- package/dist/lib/since-flag.d.ts.map +1 -0
- package/dist/lib/since-flag.js +24 -0
- package/dist/lib/since-flag.js.map +1 -0
- package/dist/lib/since.d.ts +59 -0
- package/dist/lib/since.d.ts.map +1 -0
- package/dist/lib/since.js +86 -0
- package/dist/lib/since.js.map +1 -0
- package/dist/lib/source-key.d.ts +13 -0
- package/dist/lib/source-key.d.ts.map +1 -0
- package/dist/lib/source-key.js +60 -0
- package/dist/lib/source-key.js.map +1 -0
- package/dist/lib/source-sync-state.d.ts +12 -0
- package/dist/lib/source-sync-state.d.ts.map +1 -0
- package/dist/lib/source-sync-state.js +45 -0
- package/dist/lib/source-sync-state.js.map +1 -0
- package/dist/lib/startup-backfill-track.d.ts +2 -0
- package/dist/lib/startup-backfill-track.d.ts.map +1 -0
- package/dist/lib/startup-backfill-track.js +6 -0
- package/dist/lib/startup-backfill-track.js.map +1 -0
- package/dist/lib/startup-xdg.d.ts +2 -0
- package/dist/lib/startup-xdg.d.ts.map +1 -0
- package/dist/lib/startup-xdg.js +9 -0
- package/dist/lib/startup-xdg.js.map +1 -0
- package/dist/lib/sync/after-connect.d.ts +2 -0
- package/dist/lib/sync/after-connect.d.ts.map +1 -0
- package/dist/lib/sync/after-connect.js +18 -0
- package/dist/lib/sync/after-connect.js.map +1 -0
- package/dist/lib/sync/bg-claim.d.ts +14 -0
- package/dist/lib/sync/bg-claim.d.ts.map +1 -0
- package/dist/lib/sync/bg-claim.js +97 -0
- package/dist/lib/sync/bg-claim.js.map +1 -0
- package/dist/lib/sync/blocked.d.ts +8 -0
- package/dist/lib/sync/blocked.d.ts.map +1 -0
- package/dist/lib/sync/blocked.js +45 -0
- package/dist/lib/sync/blocked.js.map +1 -0
- package/dist/lib/sync/classify.d.ts +34 -0
- package/dist/lib/sync/classify.d.ts.map +1 -0
- package/dist/lib/sync/classify.js +93 -0
- package/dist/lib/sync/classify.js.map +1 -0
- package/dist/lib/sync/drain.d.ts +16 -0
- package/dist/lib/sync/drain.d.ts.map +1 -0
- package/dist/lib/sync/drain.js +33 -0
- package/dist/lib/sync/drain.js.map +1 -0
- package/dist/lib/sync/forget.d.ts +12 -0
- package/dist/lib/sync/forget.d.ts.map +1 -0
- package/dist/lib/sync/forget.js +32 -0
- package/dist/lib/sync/forget.js.map +1 -0
- package/dist/lib/sync/launch-hook.d.ts +42 -0
- package/dist/lib/sync/launch-hook.d.ts.map +1 -0
- package/dist/lib/sync/launch-hook.js +117 -0
- package/dist/lib/sync/launch-hook.js.map +1 -0
- package/dist/lib/sync/lock.d.ts +35 -0
- package/dist/lib/sync/lock.d.ts.map +1 -0
- package/dist/lib/sync/lock.js +175 -0
- package/dist/lib/sync/lock.js.map +1 -0
- package/dist/lib/sync/purge.d.ts +38 -0
- package/dist/lib/sync/purge.d.ts.map +1 -0
- package/dist/lib/sync/purge.js +61 -0
- package/dist/lib/sync/purge.js.map +1 -0
- package/dist/lib/sync/real-env.d.ts +265 -0
- package/dist/lib/sync/real-env.d.ts.map +1 -0
- package/dist/lib/sync/real-env.js +47 -0
- package/dist/lib/sync/real-env.js.map +1 -0
- package/dist/lib/sync/relink.d.ts +14 -0
- package/dist/lib/sync/relink.d.ts.map +1 -0
- package/dist/lib/sync/relink.js +36 -0
- package/dist/lib/sync/relink.js.map +1 -0
- package/dist/lib/sync/report.d.ts +3 -0
- package/dist/lib/sync/report.d.ts.map +1 -0
- package/dist/lib/sync/report.js +54 -0
- package/dist/lib/sync/report.js.map +1 -0
- package/dist/lib/sync/run-all.d.ts +23 -0
- package/dist/lib/sync/run-all.d.ts.map +1 -0
- package/dist/lib/sync/run-all.js +30 -0
- package/dist/lib/sync/run-all.js.map +1 -0
- package/dist/lib/sync/run-source.d.ts +73 -0
- package/dist/lib/sync/run-source.d.ts.map +1 -0
- package/dist/lib/sync/run-source.js +262 -0
- package/dist/lib/sync/run-source.js.map +1 -0
- package/dist/lib/sync/safe-read.d.ts +4 -0
- package/dist/lib/sync/safe-read.d.ts.map +1 -0
- package/dist/lib/sync/safe-read.js +40 -0
- package/dist/lib/sync/safe-read.js.map +1 -0
- package/dist/lib/sync/should-background-sync.d.ts +31 -0
- package/dist/lib/sync/should-background-sync.d.ts.map +1 -0
- package/dist/lib/sync/should-background-sync.js +69 -0
- package/dist/lib/sync/should-background-sync.js.map +1 -0
- package/dist/lib/sync/source-ids.d.ts +10 -0
- package/dist/lib/sync/source-ids.d.ts.map +1 -0
- package/dist/lib/sync/source-ids.js +9 -0
- package/dist/lib/sync/source-ids.js.map +1 -0
- package/dist/lib/sync/sources.d.ts +33 -0
- package/dist/lib/sync/sources.d.ts.map +1 -0
- package/dist/lib/sync/sources.js +37 -0
- package/dist/lib/sync/sources.js.map +1 -0
- package/dist/lib/sync/spawn-background.d.ts +27 -0
- package/dist/lib/sync/spawn-background.d.ts.map +1 -0
- package/dist/lib/sync/spawn-background.js +66 -0
- package/dist/lib/sync/spawn-background.js.map +1 -0
- package/dist/lib/sync/status.d.ts +57 -0
- package/dist/lib/sync/status.d.ts.map +1 -0
- package/dist/lib/sync/status.js +166 -0
- package/dist/lib/sync/status.js.map +1 -0
- package/dist/lib/sync/summary-read.d.ts +19 -0
- package/dist/lib/sync/summary-read.d.ts.map +1 -0
- package/dist/lib/sync/summary-read.js +39 -0
- package/dist/lib/sync/summary-read.js.map +1 -0
- package/dist/lib/sync/summary.d.ts +10 -0
- package/dist/lib/sync/summary.d.ts.map +1 -0
- package/dist/lib/sync/summary.js +80 -0
- package/dist/lib/sync/summary.js.map +1 -0
- package/dist/lib/sync/sync-state.d.ts +128 -0
- package/dist/lib/sync/sync-state.d.ts.map +1 -0
- package/dist/lib/sync/sync-state.js +255 -0
- package/dist/lib/sync/sync-state.js.map +1 -0
- package/dist/lib/sync/telemetry.d.ts +20 -0
- package/dist/lib/sync/telemetry.d.ts.map +1 -0
- package/dist/lib/sync/telemetry.js +31 -0
- package/dist/lib/sync/telemetry.js.map +1 -0
- package/dist/lib/sync/threads.d.ts +48 -0
- package/dist/lib/sync/threads.d.ts.map +1 -0
- package/dist/lib/sync/threads.js +82 -0
- package/dist/lib/sync/threads.js.map +1 -0
- package/dist/lib/sync/window.d.ts +72 -0
- package/dist/lib/sync/window.d.ts.map +1 -0
- package/dist/lib/sync/window.js +112 -0
- package/dist/lib/sync/window.js.map +1 -0
- package/dist/lib/team-cta.d.ts +11 -0
- package/dist/lib/team-cta.d.ts.map +1 -0
- package/dist/lib/team-cta.js +16 -0
- package/dist/lib/team-cta.js.map +1 -0
- package/dist/lib/telemetry-ci.d.ts +2 -0
- package/dist/lib/telemetry-ci.d.ts.map +1 -0
- package/dist/lib/telemetry-ci.js +21 -0
- package/dist/lib/telemetry-ci.js.map +1 -0
- package/dist/lib/telemetry-consent.d.ts +44 -23
- package/dist/lib/telemetry-consent.d.ts.map +1 -1
- package/dist/lib/telemetry-consent.js +74 -35
- package/dist/lib/telemetry-consent.js.map +1 -1
- package/dist/lib/telemetry-env.d.ts +1 -1
- package/dist/lib/usage-telemetry.d.ts +89 -24
- package/dist/lib/usage-telemetry.d.ts.map +1 -1
- package/dist/lib/usage-telemetry.js +283 -76
- package/dist/lib/usage-telemetry.js.map +1 -1
- package/dist/lib/xdg.d.ts +27 -0
- package/dist/lib/xdg.d.ts.map +1 -0
- package/dist/lib/xdg.js +56 -0
- package/dist/lib/xdg.js.map +1 -0
- package/package.json +6 -3
- package/dist/commands/push.d.ts +0 -25
- package/dist/commands/push.d.ts.map +0 -1
- package/dist/commands/push.js +0 -98
- package/dist/commands/push.js.map +0 -1
- package/dist/lib/personal-email-domains.d.ts +0 -8
- package/dist/lib/personal-email-domains.d.ts.map +0 -1
- package/dist/lib/personal-email-domains.js +0 -39
- package/dist/lib/personal-email-domains.js.map +0 -1
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { visible } from './share/visible.js';
|
|
2
|
+
import pkg from '../../package.json' with { type: 'json' };
|
|
3
|
+
/** The consent text version. The privacy page uses the same string: change both together. */
|
|
4
|
+
export const LEAD_CONSENT_VERSION = '2026-10-cli-share-1';
|
|
5
|
+
export const PRIVACY_URL = 'https://align.tech/privacy';
|
|
6
|
+
export const LEAD_CONSENT_LINE = `We will store it to email you about team plans. One confirmation email, unsubscribe any time. Details: ${PRIVACY_URL}.`;
|
|
7
|
+
export const LEAD_QUESTION_LINE = 'Want an email when your team can join Align, or to set up a call?';
|
|
8
|
+
export const LEAD_INPUT_PROMPT = 'Work email (press Enter to skip):';
|
|
9
|
+
const CAP_MS = 5000;
|
|
10
|
+
const MAX_RESPONSE_BYTES = 4096;
|
|
11
|
+
const sameUrl = (a, b) => a.trim().replace(/\/+$/, '').toLowerCase() === b.trim().replace(/\/+$/, '').toLowerCase();
|
|
12
|
+
const isSet = (v) => v !== undefined && v !== '';
|
|
13
|
+
/** Null means ask. Anything else is the one reason it must not. Pure, so the decision table is testable as one. */
|
|
14
|
+
export function leadPromptDecision(i) {
|
|
15
|
+
// A self-hosted or preview gateway is not Align's list: no prompt, no send, no flag, no network.
|
|
16
|
+
if (i.hostedGatewayUrl === '' || !sameUrl(i.gatewayUrl, i.hostedGatewayUrl))
|
|
17
|
+
return 'not-hosted';
|
|
18
|
+
if (i.hasTeamDestination)
|
|
19
|
+
return 'has-team-destination';
|
|
20
|
+
if (isSet(i.env['ALIGN_WRAPPED']))
|
|
21
|
+
return 'wrapped';
|
|
22
|
+
if (i.inCi)
|
|
23
|
+
return 'ci';
|
|
24
|
+
if (isSet(i.env['ALIGN_NO_LEAD_PROMPT']))
|
|
25
|
+
return 'suppressed';
|
|
26
|
+
if (!i.tty)
|
|
27
|
+
return 'not-a-terminal';
|
|
28
|
+
if (i.hasLogin)
|
|
29
|
+
return 'has-login';
|
|
30
|
+
if (i.state.shownAt !== undefined && i.state.version === LEAD_CONSENT_VERSION)
|
|
31
|
+
return 'already-asked';
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
// Zero-width, bidi, line and paragraph separators and exotic spaces, plus punctuation that never belongs in an address.
|
|
35
|
+
const FORBIDDEN = /[\s\u00a0\u1680\u180e\u2000-\u200f\u2028-\u202f\u205f-\u206f\u3000\ufeff,;:<>()[\]"\\]/u;
|
|
36
|
+
const hasControl = (s) => [...s].some((c) => { const n = c.codePointAt(0); return n < 0x20 || (n >= 0x7f && n <= 0x9f); });
|
|
37
|
+
/** The address to send, or null. Trims, lowercases the domain, and refuses anything the server would also refuse. */
|
|
38
|
+
export function normaliseEmail(raw) {
|
|
39
|
+
const s = raw.trim();
|
|
40
|
+
if (s.length === 0 || s.length > 254 || FORBIDDEN.test(s) || hasControl(s))
|
|
41
|
+
return null;
|
|
42
|
+
const parts = s.split('@');
|
|
43
|
+
if (parts.length !== 2)
|
|
44
|
+
return null;
|
|
45
|
+
const [local, domain] = parts;
|
|
46
|
+
if (local.length === 0 || local.length > 64)
|
|
47
|
+
return null;
|
|
48
|
+
if (!domain.includes('.') || domain.startsWith('.') || domain.endsWith('.') || domain.includes('..'))
|
|
49
|
+
return null;
|
|
50
|
+
return `${local}@${domain.toLowerCase()}`;
|
|
51
|
+
}
|
|
52
|
+
export function leadBody(email) {
|
|
53
|
+
const p = process.platform;
|
|
54
|
+
return {
|
|
55
|
+
email,
|
|
56
|
+
source: 'cli-share',
|
|
57
|
+
consent_version: LEAD_CONSENT_VERSION,
|
|
58
|
+
cli_version: pkg.version.slice(0, 32),
|
|
59
|
+
...(p === 'darwin' || p === 'linux' || p === 'win32' ? { os: p } : {}),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/** One attempt. No retry, no redirect, a hard time cap and a size cap on what is read back. Never throws. */
|
|
63
|
+
export async function postLead(email, baseUrl, capMs = CAP_MS) {
|
|
64
|
+
const controller = new AbortController();
|
|
65
|
+
const timer = setTimeout(() => controller.abort(), capMs);
|
|
66
|
+
try {
|
|
67
|
+
const res = await fetch(`${baseUrl.trim().replace(/\/+$/, '')}/leads/team-interest`, {
|
|
68
|
+
method: 'POST',
|
|
69
|
+
headers: { 'Content-Type': 'application/json' },
|
|
70
|
+
body: JSON.stringify(leadBody(email)),
|
|
71
|
+
redirect: 'error',
|
|
72
|
+
signal: controller.signal,
|
|
73
|
+
});
|
|
74
|
+
// Read at most a few KB: the answer is tiny, and a server that streams forever must not hold the terminal.
|
|
75
|
+
const reader = res.body?.getReader();
|
|
76
|
+
let seen = 0;
|
|
77
|
+
while (reader) {
|
|
78
|
+
const { done, value } = await reader.read();
|
|
79
|
+
if (done)
|
|
80
|
+
break;
|
|
81
|
+
seen += value.byteLength;
|
|
82
|
+
if (seen > MAX_RESPONSE_BYTES) {
|
|
83
|
+
await reader.cancel();
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (res.status === 202)
|
|
88
|
+
return { kind: 'accepted' };
|
|
89
|
+
if (res.status === 422)
|
|
90
|
+
return { kind: 'invalid' };
|
|
91
|
+
if (res.status === 429)
|
|
92
|
+
return { kind: 'rate-limited' };
|
|
93
|
+
// The server does not offer the route (an older gateway): permanent for this install, so not a retry.
|
|
94
|
+
if (res.status === 404 || res.status === 405)
|
|
95
|
+
return { kind: 'unavailable' };
|
|
96
|
+
return { kind: 'failed' };
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return { kind: 'failed' };
|
|
100
|
+
}
|
|
101
|
+
finally {
|
|
102
|
+
clearTimeout(timer);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
const DECLINES = /^(n|no|never|no thanks|no thank you)$/i;
|
|
106
|
+
/** Runs the whole prompt. Returns what happened, for tests. Never throws: a broken store costs the prompt, never the command. */
|
|
107
|
+
export async function maybeAskLead(d) {
|
|
108
|
+
try {
|
|
109
|
+
if (leadPromptDecision({ env: d.env, tty: d.tty, hasLogin: d.hasLogin, inCi: d.inCi, gatewayUrl: d.gatewayUrl, hostedGatewayUrl: d.hostedGatewayUrl, hasTeamDestination: d.hasTeamDestination, state: d.store.getLeadState() }) !== null)
|
|
110
|
+
return 'skipped-by-gate';
|
|
111
|
+
const shown = `${LEAD_QUESTION_LINE}\n${LEAD_CONSENT_LINE}`;
|
|
112
|
+
// Marked as soon as the person can see it, so Ctrl-C or end of input still counts as asked.
|
|
113
|
+
let line = await d.ask(shown, LEAD_INPUT_PROMPT, () => d.store.markLeadPromptShown(LEAD_CONSENT_VERSION));
|
|
114
|
+
if (line === null)
|
|
115
|
+
return 'no-terminal';
|
|
116
|
+
let email = normaliseEmail(line);
|
|
117
|
+
if (line.trim() !== '' && DECLINES.test(line.trim())) {
|
|
118
|
+
d.store.setLeadOutcome('declined');
|
|
119
|
+
return 'declined';
|
|
120
|
+
}
|
|
121
|
+
if (line.trim() !== '' && email === null) {
|
|
122
|
+
d.out('That does not look like an email address. Try once more, or press Enter to skip.');
|
|
123
|
+
line = (await d.ask('', LEAD_INPUT_PROMPT, () => undefined)) ?? '';
|
|
124
|
+
email = normaliseEmail(line);
|
|
125
|
+
}
|
|
126
|
+
if (email === null)
|
|
127
|
+
return 'skipped'; // Enter, Ctrl-C, end of input, or a second bad address: asked, and not again
|
|
128
|
+
const sent = await d.post(email);
|
|
129
|
+
if (sent.kind === 'accepted') {
|
|
130
|
+
d.store.setLeadOutcome('submitted');
|
|
131
|
+
d.out(`We sent a confirmation email to ${visible(email)}. Check your inbox.`);
|
|
132
|
+
return 'submitted';
|
|
133
|
+
}
|
|
134
|
+
if (sent.kind === 'invalid') {
|
|
135
|
+
d.out('The server did not accept that address, so nothing was saved.');
|
|
136
|
+
return 'skipped';
|
|
137
|
+
}
|
|
138
|
+
if (sent.kind === 'unavailable') {
|
|
139
|
+
// Permanent: keep the asked mark, or every share on this server would ask again and fail the same way.
|
|
140
|
+
d.out('Email sign-up is not available from this server yet. Nothing was sent.');
|
|
141
|
+
return 'skipped';
|
|
142
|
+
}
|
|
143
|
+
// A timeout or a 5xx may mean the server already took the address; a later share asking again is absorbed by
|
|
144
|
+
// the server's one-confirmation-per-24-hours rule, so the person gets no second email inside a day.
|
|
145
|
+
// Nothing reached the server's list: forget that we asked, so a later share can offer it again.
|
|
146
|
+
d.store.clearLeadPromptShown();
|
|
147
|
+
d.out(sent.kind === 'rate-limited' ? 'Too many requests just now. Nothing was sent. Try again later.' : 'Could not reach the server. Nothing was sent.');
|
|
148
|
+
return 'not-sent';
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
return 'skipped-by-gate';
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* What `align share` hands the run as its lead prompt. Two rules live here so a test can hold them:
|
|
156
|
+
* a saved team destination switches the prompt off, and the address is posted to Align's hosted gateway
|
|
157
|
+
* as Align spells it, never to whatever the run resolved (a self-host, or an environment override that merely
|
|
158
|
+
* matches after normalising).
|
|
159
|
+
*/
|
|
160
|
+
export function leadPromptFor(w) {
|
|
161
|
+
return () => maybeAskLead({
|
|
162
|
+
store: w.store,
|
|
163
|
+
env: w.env,
|
|
164
|
+
hasLogin: false,
|
|
165
|
+
gatewayUrl: w.cloudGatewayUrl,
|
|
166
|
+
hostedGatewayUrl: w.hostedGatewayUrl,
|
|
167
|
+
hasTeamDestination: w.store.listTeamDestinationNames().length > 0,
|
|
168
|
+
inCi: w.inCi,
|
|
169
|
+
tty: w.tty,
|
|
170
|
+
ask: w.ask,
|
|
171
|
+
post: (email) => postLead(email, w.hostedGatewayUrl),
|
|
172
|
+
out: w.out,
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=lead-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lead-prompt.js","sourceRoot":"","sources":["../../src/lib/lead-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type a set of candidate edges with whichever local detector ALIGN_DETECTOR selects.
|
|
3
|
+
*
|
|
4
|
+
* v0 (ALIGN_DETECTOR=v0): the pairwise classifier, one call per candidate, stopping after a
|
|
5
|
+
* provider stop (ALI-692) - moved here verbatim from `checkAlignment` and `linkPass` so both
|
|
6
|
+
* callers share it.
|
|
7
|
+
* v1 (the default): one call over the whole set (local-set-classifier.ts). A candidate v1 judged as having no
|
|
8
|
+
* relationship comes back typed `relates` at its similarity, exactly what a judged, unrelated
|
|
9
|
+
* pair reads as to every caller today; a whole-call failure is reported on every candidate.
|
|
10
|
+
*
|
|
11
|
+
* `order` keeps v0's two orientations: `check` asks how the candidate relates to the proposed
|
|
12
|
+
* change (subject is A), capture asks how the new decision relates to the existing one (existing
|
|
13
|
+
* is A). v1 always puts the new/proposed side as the NEW DECISION.
|
|
14
|
+
*/
|
|
15
|
+
import { type DetectorVersion } from '../detector/detector-version.js';
|
|
16
|
+
import { type ClassificationOutcome, classifyRelationship } from './local-relationship-classifier.js';
|
|
17
|
+
import { classifyCandidateSet, type SetCandidate, type SetSubject } from './local-set-classifier.js';
|
|
18
|
+
export interface CandidateClassification {
|
|
19
|
+
version: DetectorVersion;
|
|
20
|
+
outcomes: ClassificationOutcome[];
|
|
21
|
+
}
|
|
22
|
+
export declare function classifyCandidates(subject: SetSubject, candidates: readonly SetCandidate[], order: 'subject-first' | 'candidate-first', deps?: {
|
|
23
|
+
pair?: typeof classifyRelationship;
|
|
24
|
+
set?: typeof classifyCandidateSet;
|
|
25
|
+
}): Promise<CandidateClassification>;
|
|
26
|
+
//# sourceMappingURL=local-candidate-classify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-candidate-classify.d.ts","sourceRoot":"","sources":["../../src/lib/local-candidate-classify.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,KAAK,eAAe,EAA0B,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,KAAK,qBAAqB,EAAE,oBAAoB,EAAyB,MAAM,oCAAoC,CAAC;AAC7H,OAAO,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAErG,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,SAAS,YAAY,EAAE,EACnC,KAAK,EAAE,eAAe,GAAG,iBAAiB,EAC1C,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,oBAAoB,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,oBAAoB,CAAA;CAAO,GACnF,OAAO,CAAC,uBAAuB,CAAC,CA+BlC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { createConfigStore } from './config.js';
|
|
2
|
+
/**
|
|
3
|
+
* Type a set of candidate edges with whichever local detector ALIGN_DETECTOR selects.
|
|
4
|
+
*
|
|
5
|
+
* v0 (ALIGN_DETECTOR=v0): the pairwise classifier, one call per candidate, stopping after a
|
|
6
|
+
* provider stop (ALI-692) - moved here verbatim from `checkAlignment` and `linkPass` so both
|
|
7
|
+
* callers share it.
|
|
8
|
+
* v1 (the default): one call over the whole set (local-set-classifier.ts). A candidate v1 judged as having no
|
|
9
|
+
* relationship comes back typed `relates` at its similarity, exactly what a judged, unrelated
|
|
10
|
+
* pair reads as to every caller today; a whole-call failure is reported on every candidate.
|
|
11
|
+
*
|
|
12
|
+
* `order` keeps v0's two orientations: `check` asks how the candidate relates to the proposed
|
|
13
|
+
* change (subject is A), capture asks how the new decision relates to the existing one (existing
|
|
14
|
+
* is A). v1 always puts the new/proposed side as the NEW DECISION.
|
|
15
|
+
*/
|
|
16
|
+
import { resolveDetectorVersion } from '../detector/detector-version.js';
|
|
17
|
+
import { classifyRelationship } from './local-relationship-classifier.js';
|
|
18
|
+
import { classifyCandidateSet } from './local-set-classifier.js';
|
|
19
|
+
export async function classifyCandidates(subject, candidates, order, deps = {}) {
|
|
20
|
+
const version = resolveDetectorVersion(process.env, createConfigStore().getDetector());
|
|
21
|
+
if (version === 'v1') {
|
|
22
|
+
if (!candidates.length)
|
|
23
|
+
return { version, outcomes: [] };
|
|
24
|
+
const result = await (deps.set ?? classifyCandidateSet)(subject, candidates);
|
|
25
|
+
if (!result.ok) {
|
|
26
|
+
const failed = { ok: false, reason: result.reason, ...(result.failure ? { failure: result.failure } : {}) };
|
|
27
|
+
return { version, outcomes: candidates.map(() => failed) };
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
version,
|
|
31
|
+
outcomes: result.verdicts.map((v) => ({
|
|
32
|
+
ok: true,
|
|
33
|
+
relationship: { type: (v.relation ?? 'relates'), confidence: v.confidence, ...(v.reason ? { reason: v.reason } : {}) },
|
|
34
|
+
})),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const pair = deps.pair ?? classifyRelationship;
|
|
38
|
+
const outcomes = [];
|
|
39
|
+
let chainStopped = false;
|
|
40
|
+
for (const c of candidates) {
|
|
41
|
+
// ALI-692: a recorded chain stop is a property of the PROVIDER, not of this candidate, so
|
|
42
|
+
// asking again per candidate repeats one doomed call N times.
|
|
43
|
+
const lite = { title: c.title, summary: c.summary };
|
|
44
|
+
const outcome = chainStopped
|
|
45
|
+
? { ok: false, reason: 'classifier_error' }
|
|
46
|
+
: await (order === 'subject-first' ? pair({ title: subject.title, summary: subject.summary }, lite) : pair(lite, { title: subject.title, summary: subject.summary }));
|
|
47
|
+
if (!outcome.ok && outcome.failure?.kind === 'provider_stopped')
|
|
48
|
+
chainStopped = true;
|
|
49
|
+
outcomes.push(outcome);
|
|
50
|
+
}
|
|
51
|
+
return { version, outcomes };
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=local-candidate-classify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-candidate-classify.js","sourceRoot":"","sources":["../../src/lib/local-candidate-classify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAwB,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAA8B,oBAAoB,EAAyB,MAAM,oCAAoC,CAAC;AAC7H,OAAO,EAAE,oBAAoB,EAAsC,MAAM,2BAA2B,CAAC;AAOrG,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAmB,EACnB,UAAmC,EACnC,KAA0C,EAC1C,OAAkF,EAAE;IAEpF,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IACvF,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,MAAM;YAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,oBAAoB,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC7E,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,MAAM,GAA0B,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACnI,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7D,CAAC;QACD,OAAO;YACL,OAAO;YACP,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpC,EAAE,EAAE,IAAI;gBACR,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAqB,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;aAC3I,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,oBAAoB,CAAC;IAC/C,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,0FAA0F;QAC1F,8DAA8D;QAC9D,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QACpD,MAAM,OAAO,GAA0B,YAAY;YACjD,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE;YAC3C,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACxK,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,KAAK,kBAAkB;YAAE,YAAY,GAAG,IAAI,CAAC;QACrF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-db-epoch.d.ts","sourceRoot":"","sources":["../../src/lib/local-db-epoch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAehD,wBAAgB,WAAW,CAAC,EAAE,EAAE,YAAY,GAAG,MAAM,CAEpD;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAEtD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A per-connection counter that goes up whenever a decision is deleted or re-id'd, or an
|
|
3
|
+
* embedding is deleted or replaced. A holder of a COPY of the graph's embeddings (the ingest
|
|
4
|
+
* matrix) remembers the value it built at and rebuilds when it moves, so staleness is
|
|
5
|
+
* impossible by construction: it does not depend on the holder knowing which code paths
|
|
6
|
+
* delete rows. Kept beside the connection and not in the schema, so it costs no migration.
|
|
7
|
+
*
|
|
8
|
+
* Every writer of those changes calls bumpRowSetEpoch: deleteDecisionWithDependents,
|
|
9
|
+
* absorbLoser, the open-time duplicate collapse, dropAll and setEmbedding over an existing
|
|
10
|
+
* row. local-db-row-set-epoch.test.ts has one test per path.
|
|
11
|
+
*/
|
|
12
|
+
const epochs = new WeakMap();
|
|
13
|
+
export function rowSetEpoch(db) {
|
|
14
|
+
return epochs.get(db) ?? 0;
|
|
15
|
+
}
|
|
16
|
+
export function bumpRowSetEpoch(db) {
|
|
17
|
+
epochs.set(db, rowSetEpoch(db) + 1);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=local-db-epoch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-db-epoch.js","sourceRoot":"","sources":["../../src/lib/local-db-epoch.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,MAAM,GAAG,IAAI,OAAO,EAAwB,CAAC;AAEnD,MAAM,UAAU,WAAW,CAAC,EAAgB;IAC1C,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAgB;IAC9C,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { DatabaseSync } from 'node:sqlite';
|
|
2
|
+
export declare const SCHEMA = "\nCREATE TABLE IF NOT EXISTS decisions (\n id TEXT PRIMARY KEY,\n title TEXT NOT NULL,\n summary TEXT NOT NULL,\n source_url TEXT,\n platform TEXT NOT NULL DEFAULT 'cli',\n created_at TEXT NOT NULL DEFAULT (datetime('now')),\n repo TEXT,\n decided_at TEXT,\n decider_kind TEXT,\n confirmed_by TEXT,\n confirmed_at TEXT,\n ratified_by TEXT,\n ratified_at TEXT\n);\n\nCREATE TABLE IF NOT EXISTS decision_audit (\n id TEXT PRIMARY KEY,\n decision_id TEXT NOT NULL,\n action TEXT NOT NULL,\n actor TEXT,\n detail TEXT,\n created_at TEXT NOT NULL DEFAULT (datetime('now'))\n);\n\nCREATE TABLE IF NOT EXISTS decision_embeddings (\n decision_id TEXT PRIMARY KEY REFERENCES decisions(id) ON DELETE CASCADE,\n embedding BLOB NOT NULL,\n model TEXT\n);\n\nCREATE TABLE IF NOT EXISTS decision_links (\n id TEXT PRIMARY KEY,\n source_id TEXT NOT NULL REFERENCES decisions(id) ON DELETE CASCADE,\n target_id TEXT NOT NULL REFERENCES decisions(id) ON DELETE CASCADE,\n relation TEXT NOT NULL,\n confidence REAL NOT NULL DEFAULT 1.0,\n created_at TEXT NOT NULL DEFAULT (datetime('now'))\n);\n\nCREATE TABLE IF NOT EXISTS decision_refs (\n decision_id TEXT NOT NULL REFERENCES decisions(id) ON DELETE CASCADE,\n ref TEXT NOT NULL,\n platform TEXT NOT NULL,\n PRIMARY KEY (decision_id, ref)\n);\n";
|
|
3
|
+
/**
|
|
4
|
+
* Schema version this build expects. Bump when adding a step to `migrate`.
|
|
5
|
+
*
|
|
6
|
+
* Exported so a test can assert the migration WROTE the version it claims, without hardcoding
|
|
7
|
+
* the number - a test pinning a literal 1 had to be edited by this change rather than passing
|
|
8
|
+
* or failing on its own merits. A parity test also derives the highest `version <` branch in
|
|
9
|
+
* `migrate` from the source and compares it here, because forgetting the bump leaves the new
|
|
10
|
+
* branch running destructively on every open with nothing to stop it.
|
|
11
|
+
*/
|
|
12
|
+
export declare const SCHEMA_VERSION = 11;
|
|
13
|
+
/** The title connector-core 0.5.0 gave every Slack thread whose root was deleted. The 0.6.0
|
|
14
|
+
* fetcher titles such a thread from its first human message, or drops it; either way this
|
|
15
|
+
* row is a duplicate-to-be under the (source_url, title) key, or noise. */
|
|
16
|
+
export declare const SLACK_TOMBSTONE_TITLE = "This message was deleted.";
|
|
17
|
+
/**
|
|
18
|
+
* One-time data migrations, tracked in SQLite's built-in `user_version`.
|
|
19
|
+
*
|
|
20
|
+
* 1. ALI-503: relabel the cosine-similarity links that were written as `conflicts_with`.
|
|
21
|
+
* Every such row at version 0 is provably an artefact, because `insertLink` had exactly
|
|
22
|
+
* one caller and it hardcoded that relation for any pair over 0.65 cosine. No classifier
|
|
23
|
+
* verdict was ever persisted, so there is no earned row to damage.
|
|
24
|
+
*
|
|
25
|
+
* 2. A decision's `source_url` identifies it, and nothing enforced that: `insertDecision` minted
|
|
26
|
+
* a fresh UUID per call, so re-importing the same commit added a second copy. The documented
|
|
27
|
+
* first run does exactly that - `setup --local` seeds from git, then its own outro tells you
|
|
28
|
+
* to run `align connect git` - so a graph goes from 2 decisions to 4 by following the tips.
|
|
29
|
+
* Collapse the existing duplicates, then make them unrepresentable with a unique index.
|
|
30
|
+
*
|
|
31
|
+
* 3. ALI-798: add the `repo` column (missing on any graph that predates it) and backfill it
|
|
32
|
+
* for every existing row from `source_url`, via the same `repoFromSourceUrl` the importer
|
|
33
|
+
* now stamps new rows with - one reader of the URL shape, used for both. A row whose
|
|
34
|
+
* source is not code (Jira, Slack, a bare capture) stays NULL, which is "unattributed",
|
|
35
|
+
* not "wrong": `--repo` scoping always includes unattributed rows alongside the named
|
|
36
|
+
* repo (see local-gateway-client.ts), so nothing existing becomes invisible.
|
|
37
|
+
*
|
|
38
|
+
* 4. ALI-829: add `decided_at` - when the decision was MADE, from the source's own
|
|
39
|
+
* timestamp, as distinct from `created_at`, the minute this CLI imported it. Every one
|
|
40
|
+
* of the 684 rows in the 2026-09-02 measurement carried the ingest minute and nothing
|
|
41
|
+
* else, so "what changed since March" was unanswerable offline. No backfill, unlike
|
|
42
|
+
* `repo`: a repo is derivable from a stored source_url, and a decision date is not
|
|
43
|
+
* derivable from anything already in the row. A re-import fills it in; inventing one
|
|
44
|
+
* from created_at would write the exact wrong fact this column exists to correct.
|
|
45
|
+
*
|
|
46
|
+
* Same bump, second step: drop the Slack rows titled by a deleted root. The 0.6.0
|
|
47
|
+
* fetcher titles a thread from its first human message, and the dedup key is
|
|
48
|
+
* (source_url, title), so each of those rows would otherwise be re-inserted BESIDE its
|
|
49
|
+
* tombstone twin on the next import (35 of 39 on the 2026-09-02 graph). The next import
|
|
50
|
+
* recreates the real ones with real titles; the ones that were only bot output on a
|
|
51
|
+
* deleted root do not come back, which is the point. Foreign keys are off in this
|
|
52
|
+
* database (see step 2), so the dependent rows are deleted explicitly - including any
|
|
53
|
+
* link a human adjudicated on such a row. That is a real loss, accepted: the row's
|
|
54
|
+
* identity is changing under it, and the re-import classifies the retitled thread
|
|
55
|
+
* afresh. Scoped to platform = 'slack': a git commit or a captured note that happens to
|
|
56
|
+
* carry the same words is not a tombstone and is left alone.
|
|
57
|
+
*
|
|
58
|
+
* 5. ALI-831: add the decider/ratified columns (`decider_kind`, `confirmed_by`,
|
|
59
|
+
* `confirmed_at`, `ratified_by`, `ratified_at`) so an agent-made decision can enter as a
|
|
60
|
+
* CLAIM a human later stands behind, and the `decision_audit` table the human act is
|
|
61
|
+
* recorded in. No backfill, on purpose: a row captured before the column reads as
|
|
62
|
+
* 'unknown', and stamping 'human' on it from its platform would be the retroactive
|
|
63
|
+
* guess align-stack's migration 113 refuses. The columns are added here rather than only
|
|
64
|
+
* in SCHEMA because CREATE TABLE IF NOT EXISTS never alters an existing table.
|
|
65
|
+
*
|
|
66
|
+
* 6. ALI-787: tag each embedding with the model that produced it (see LEGACY_EMBEDDING_MODEL).
|
|
67
|
+
*
|
|
68
|
+
* 7. L2: per-source sync state, `source_key` identity with a backed-up twin merge,
|
|
69
|
+
* `detail_pending`, `enriched_at` (NULL on every existing row) and `local_judgements`.
|
|
70
|
+
* See local-db-v7.ts.
|
|
71
|
+
*
|
|
72
|
+
* The version guard is load-bearing rather than tidiness. The same UPDATE run on every open
|
|
73
|
+
* is indistinguishable from this one today, and starts silently eating genuine conflicts the
|
|
74
|
+
* moment anything writes one.
|
|
75
|
+
*/
|
|
76
|
+
/**
|
|
77
|
+
* Remove a decision and everything hanging off it. Foreign keys are off in this database
|
|
78
|
+
* (see migrate, step 2), so the dependents are named explicitly rather than cascaded. One
|
|
79
|
+
* writer for the v4 tombstone sweep and the ingest-time twin removal (ALI-829).
|
|
80
|
+
*/
|
|
81
|
+
export declare function deleteDecisionWithDependents(db: DatabaseSync, id: string): void;
|
|
82
|
+
/** The one downgrade guard: migrate() and every other writer of this file (the sync state, purge) call it. */
|
|
83
|
+
export declare function assertSchemaSupported(version: number, db?: DatabaseSync): void;
|
|
84
|
+
export declare function migrate(db: DatabaseSync): void;
|
|
85
|
+
//# sourceMappingURL=local-db-migrate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-db-migrate.d.ts","sourceRoot":"","sources":["../../src/lib/local-db-migrate.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAShD,eAAO,MAAM,MAAM,oyCA+ClB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC;;4EAE4E;AAC5E,eAAO,MAAM,qBAAqB,8BAA8B,CAAC;AAoBjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAO/E;AAED,8GAA8G;AAC9G,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAS9E;AAsBD,wBAAgB,OAAO,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAmT9C"}
|