.gitignore
CHANGELOG.md
CLAUDE.md
CONTRIBUTING.md
LICENSE
NOTICE
PrivacyFenceApp.linux.spec
PrivacyFenceApp.spec
PrivacyFenceApp.win.spec
README.md
SECURITY.md
com.privacyfence.app.plist
privacyfence.service
pyproject.toml
.claude/settings.json
.claude/commands/cut-release.md
.claude/commands/dod.md
.claude/commands/qa-record.md
.claude/hooks/session-start.sh
.claude/skills/steward/SKILL.md
.github/CODEOWNERS
.github/dependabot.yml
.github/pull_request_template.md
.github/workflows/build.yml
.github/workflows/connector-live-check.yml
.github/workflows/dependency-audit.yml
.github/workflows/deploy-download-worker.yml
.github/workflows/linux-graphical-session.yml
.github/workflows/macos-graphical-session.yml
.github/workflows/pages.yml
.github/workflows/publish-pypi.yml
.github/workflows/qa-record-fixture.yml
.github/workflows/release.yml
.github/workflows/tests.yml
.github/workflows/windows-graphical-session.yml
cloudflare/downloads/package-lock.json
cloudflare/downloads/package.json
cloudflare/downloads/tsconfig.json
cloudflare/downloads/vitest.config.ts
cloudflare/downloads/worker-configuration.d.ts
cloudflare/downloads/wrangler.toml
cloudflare/downloads/migrations/0001_download_counts.sql
cloudflare/downloads/src/artifacts.ts
cloudflare/downloads/src/channel.ts
cloudflare/downloads/src/counters.ts
cloudflare/downloads/src/http.ts
cloudflare/downloads/src/index.ts
cloudflare/downloads/src/manifest.ts
cloudflare/downloads/test/artifacts.test.ts
cloudflare/downloads/test/channel.test.ts
cloudflare/downloads/test/counters.test.ts
cloudflare/downloads/test/download.test.ts
cloudflare/downloads/test/env.d.ts
cloudflare/downloads/test/setup.ts
cloudflare/downloads/test/fixtures/alpha/latest.json
cloudflare/downloads/test/fixtures/alpha/manifest.json
cloudflare/downloads/test/fixtures/beta/latest.json
cloudflare/downloads/test/fixtures/beta/manifest.json
cloudflare/downloads/test/fixtures/rc/latest.json
cloudflare/downloads/test/fixtures/rc/manifest.json
cloudflare/downloads/test/fixtures/stable/latest.json
cloudflare/downloads/test/fixtures/stable/manifest.json
cloudflare/downloads/test/fixtures/stable/old-manifest.json
credentials/.gitkeep
debian/control
debian/copyright
debian/install
debian/postinst
debian/postrm
debian/prerm
debian/privacyfence.lintian-overrides
debian/rules
debian/source/format
docs/README.md
docs/TECHNICAL_REFERENCE.md
docs/always-allow-rules-reference.md
docs/approval-list-ui-ux.md
docs/approval-window-content-reference.md
docs/atlassian-setup.md
docs/claude-knowledge-boundary.md
docs/coding-and-testing-guidelines.md
docs/connector-live-check-setup.md
docs/connector-qa-testing.md
docs/dev-vs-live-setup.md
docs/downloads-and-release-kpi.md
docs/file-type-support.md
docs/getting-started.md
docs/google-cloud-setup.md
docs/migration-guide.md
docs/org-mode-download-delivery.md
docs/org-mode-operational-readiness.md
docs/org-mode-setup-guide.md
docs/pii-detection-keywords.md
docs/platform-support.md
docs/qa-environment-setup.md
docs/release-testing.md
docs/salesforce-setup.md
docs/security-and-compliance.md
docs/slack-setup.md
docs/telegram-setup.md
docs/testing-policy.md
docs/adr/0001-remove-macos-native-extra.md
docs/adr/0002-local-mode-trust-boundary-and-companion-app.md
docs/adr/0003-separated-installs-only.md
docs/adr/0004-retire-the-v1-auto-accept-config-model.md
docs/adr/0005-moving-the-approval-decision-off-the-device.md
docs/adr/0006-attributing-a-request-to-the-ai-system-that-made-it.md
docs/images/architecture.svg
docs/images/screenshots/README.md
docs/images/screenshots/gmail-read-thread.png
docs/images/screenshots/settings-auto-accept-rules.png
docs/images/screenshots/settings-connectors.png
docs/images/screenshots/sheets-write.png
installer/privacyfence-task.xml.tmpl
installer/privacyfence.iss
installer/linux/privacyfence-companion.desktop.tmpl
installer/linux/privacyfence-daemon.service.tmpl
installer/macos/com.privacyfence.companion.plist.tmpl
installer/macos/com.privacyfence.daemon.plist.tmpl
installer/macos/pkg/postinstall
installer/macos/pkg/resources/conclusion.html.tmpl
installer/macos/pkg/resources/welcome.html
installer/windows/privacyfence-companion-task.xml.tmpl
mcpb/manifest.json.tmpl
mcpb/shim/build.mjs
mcpb/shim/package-lock.json
mcpb/shim/package.json
mcpb/shim/tsconfig.json
mcpb/shim/src/daemon.ts
mcpb/shim/src/errors.ts
mcpb/shim/src/index.ts
mcpb/shim/src/protocol.ts
mcpb/shim/src/proxy.ts
mcpb/shim/src/sessionFetch.ts
mcpb/shim/test/daemon.test.ts
mcpb/shim/test/fakeMcpDaemon.ts
mcpb/shim/test/index.test.ts
mcpb/shim/test/protocol.test.ts
mcpb/shim/test/proxy.test.ts
mcpb/shim/test/sessionFetch.test.ts
mcpb/shim/test/testFiles.ts
requirements/README.md
requirements/dev.lock.txt
requirements/runtime.lock.txt
resources/linux/privacyfence-app-wrapper
resources/linux/privacyfence-companion-wrapper
resources/linux/privacyfence-companion.desktop
resources/linux/privacyfence.desktop
scripts/build_deb.sh
scripts/build_dmg.sh
scripts/build_installer.ps1
scripts/build_mcpb.sh
scripts/build_org_bundle.py
scripts/build_pkg.sh
scripts/changelog_section.py
scripts/check_coverage_floor.py
scripts/check_graphical_session_coverage.py
scripts/dev_start.sh
scripts/entitlements.plist
scripts/generate_always_allow_reference.py
scripts/linux_privilege_separation.sh
scripts/macos_privilege_separation.sh
scripts/mypy_strict_modules.py
scripts/pre_release_check.py
scripts/pyinstaller_common.py
scripts/qa_authenticate_connectors.py
scripts/qa_fixture_recorder.py
scripts/qa_list_ids.py
scripts/qa_readme_screenshots.py
scripts/qa_web_smoke.py
scripts/r2_release.py
scripts/release_stats.py
scripts/slack_call_budget.py
scripts/sync_room_directory.py
scripts/tag_release.py
scripts/update_branch_protection.py
scripts/update_dependency_locks.sh
scripts/verify_audit_log.py
scripts/windows_privilege_separation.ps1
src/_companion_entry.py
src/_daemon_entry.py
src/privacyfence/__init__.py
src/privacyfence/app_credentials.py
src/privacyfence/approval_icons.py
src/privacyfence/approval_list_html.py
src/privacyfence/approval_ui.py
src/privacyfence/approval_window_html.py
src/privacyfence/approvals.py
src/privacyfence/apps_script_client.py
src/privacyfence/atlassian_oauth.py
src/privacyfence/audit_forwarding.py
src/privacyfence/audit_log.py
src/privacyfence/auto_accept.py
src/privacyfence/calendar_client.py
src/privacyfence/card_builder.py
src/privacyfence/companion.py
src/privacyfence/confluence_client.py
src/privacyfence/connector.py
src/privacyfence/connector_host.py
src/privacyfence/connector_registry.py
src/privacyfence/contacts_client.py
src/privacyfence/daemon_main.py
src/privacyfence/dialog_window_html.py
src/privacyfence/download_staging.py
src/privacyfence/drive_client.py
src/privacyfence/email_markdown.py
src/privacyfence/gate.py
src/privacyfence/gmail_client.py
src/privacyfence/google_oauth.py
src/privacyfence/html_to_text.py
src/privacyfence/jira_client.py
src/privacyfence/markdown_to_html.py
src/privacyfence/oauth_loopback.py
src/privacyfence/org_bundle_signing.py
src/privacyfence/org_identity.py
src/privacyfence/org_mode.py
src/privacyfence/paths.py
src/privacyfence/pii_detector.py
src/privacyfence/principal.py
src/privacyfence/privacy_filter.py
src/privacyfence/privilege_separation.py
src/privacyfence/resource_names.py
src/privacyfence/safe_errors.py
src/privacyfence/salesforce_client.py
src/privacyfence/secure_files.py
src/privacyfence/settings_controller.py
src/privacyfence/settings_window_html.py
src/privacyfence/slack_client.py
src/privacyfence/std_streams.py
src/privacyfence/step_up_config.py
src/privacyfence/tasks_client.py
src/privacyfence/telegram_auth.py
src/privacyfence/telegram_client.py
src/privacyfence/text_extraction.py
src/privacyfence/update_checker.py
src/privacyfence/url_safety.py
src/privacyfence/web_approval_ui.py
src/privacyfence/web_prompt.py
src/privacyfence/web_shell.py
src/privacyfence/webauthn_stepup.py
src/privacyfence/windows_acl.py
src/privacyfence/windows_service.py
src/privacyfence/write_effects.py
src/privacyfence.egg-info/PKG-INFO
src/privacyfence.egg-info/SOURCES.txt
src/privacyfence.egg-info/dependency_links.txt
src/privacyfence.egg-info/entry_points.txt
src/privacyfence.egg-info/requires.txt
src/privacyfence.egg-info/scm_file_list.json
src/privacyfence.egg-info/scm_version.json
src/privacyfence.egg-info/top_level.txt
src/privacyfence/connectors/__init__.py
src/privacyfence/connectors/apps_script.py
src/privacyfence/connectors/calendar.py
src/privacyfence/connectors/confluence.py
src/privacyfence/connectors/contacts.py
src/privacyfence/connectors/drive.py
src/privacyfence/connectors/gmail.py
src/privacyfence/connectors/jira.py
src/privacyfence/connectors/salesforce.py
src/privacyfence/connectors/slack.py
src/privacyfence/connectors/tasks.py
src/privacyfence/connectors/telegram.py
src/privacyfence/policy/__init__.py
src/privacyfence/policy/catalogue.py
src/privacyfence/policy/compat.py
src/privacyfence/policy/conditions.py
src/privacyfence/policy/describe.py
src/privacyfence/policy/engine.py
src/privacyfence/policy/propose.py
src/privacyfence/policy/registry.py
src/privacyfence/policy/resource_registry.py
src/privacyfence/policy/scopes.py
src/privacyfence/policy/store.py
src/privacyfence/resources/icon_32.png
src/privacyfence/resources/icon_512.png
src/privacyfence/resources/icon_64.png
src/privacyfence/resources/icon_menubar.png
src/privacyfence/resources/settings.yaml.example
src/privacyfence/resources/sw.js
src/privacyfence/resources/tokens.css
src/privacyfence/resources/approval_window/styles.css
src/privacyfence/resources/approval_window/fonts/OFL.txt
src/privacyfence/resources/approval_window/fonts/SourceSerif4-Italic.woff2
src/privacyfence/resources/approval_window/fonts/SourceSerif4-Regular.woff2
src/privacyfence/resources/approval_window/fonts/SourceSerif4-SemiBold.woff2
src/privacyfence/resources/connector_icons/README.md
src/privacyfence/resources/connector_icons/calendar.png
src/privacyfence/resources/connector_icons/confluence.png
src/privacyfence/resources/connector_icons/contacts.png
src/privacyfence/resources/connector_icons/drive.png
src/privacyfence/resources/connector_icons/gmail.png
src/privacyfence/resources/connector_icons/jira.png
src/privacyfence/resources/connector_icons/salesforce.png
src/privacyfence/resources/connector_icons/slack.png
src/privacyfence/resources/connector_icons/tasks.png
src/privacyfence/resources/connector_icons/telegram.png
src/privacyfence/web/__init__.py
src/privacyfence/web/control_channel.py
src/privacyfence/web/csp.py
src/privacyfence/web/mcp_auth.py
src/privacyfence/web/mcp_dispatch.py
src/privacyfence/web/mcp_tools.py
src/privacyfence/web/oauth_provider.py
src/privacyfence/web/org_install_policy.py
src/privacyfence/web/org_session.py
src/privacyfence/web/org_settings_scope.py
src/privacyfence/web/routes_approvals.py
src/privacyfence/web/routes_connect.py
src/privacyfence/web/routes_downloads.py
src/privacyfence/web/routes_mcp.py
src/privacyfence/web/routes_org_approvals.py
src/privacyfence/web/routes_org_identity.py
src/privacyfence/web/routes_org_settings.py
src/privacyfence/web/routes_security.py
src/privacyfence/web/routes_settings.py
src/privacyfence/web/sealed_refresh_store.py
src/privacyfence/web/server.py
src/privacyfence/web/session_auth.py
src/privacyfence/web/state_stream.py
src/privacyfence/web/step_up_decide.py
tests/__init__.py
tests/conftest.py
tests/control_channel_client.py
tests/diagnostics.py
tests/helpers.py
tests/packaged_step_up.py
tests/software_authenticator.py
tests/windows_task_contract.py
tests/fixtures/qa_environment.yaml.example
tests/fixtures/live/README.md
tests/fixtures/live/apps_script/get_content.json
tests/fixtures/live/calendar/get_event.json
tests/fixtures/live/confluence/get_page.json
tests/fixtures/live/confluence/list_spaces.json
tests/fixtures/live/contacts/get_contact.json
tests/fixtures/live/drive/get_file_metadata.json
tests/fixtures/live/gmail/get_message.json
tests/fixtures/live/jira/get_issue.json
tests/fixtures/live/jira/list_projects.json
tests/fixtures/live/salesforce/get_record.json
tests/fixtures/live/salesforce/list_reports.json
tests/fixtures/live/slack/get_thread_replies.json
tests/fixtures/live/tasks/get_task.json
tests/fixtures/live/telegram/get_messages.json
tests/fixtures/qa_assets/lorem_ipsum.docx
tests/integration/__init__.py
tests/integration/mock_idp.py
tests/integration/test_browser_smoke.py
tests/integration/test_deb_packaged_lifecycle.py
tests/integration/test_deferred_approval_round_trip.py
tests/integration/test_download_page.py
tests/integration/test_linux_graphical_session_autostart.py
tests/integration/test_macos_graphical_session_autostart.py
tests/integration/test_macos_packaged_smoke.py
tests/integration/test_macos_pkg_install.py
tests/integration/test_macos_pkg_smoke.py
tests/integration/test_mcp_daemon_contract.py
tests/integration/test_org_ubuntu_release_smoke.py
tests/integration/test_shim_mcp_contract.py
tests/integration/test_windows_graphical_session_autostart.py
tests/integration/test_windows_packaged_smoke.py
tests/platform/__init__.py
tests/platform/test_atomic_write_concurrency.py
tests/platform/test_browser_launch_default.py
tests/platform/test_daemon_process_lifecycle.py
tests/platform/test_single_instance_lock_cross_process.py
tests/platform/test_windows_acls.py
tests/system/__init__.py
tests/system/test_local_mode_system.py
tests/unit/__init__.py
tests/unit/test_app_credentials.py
tests/unit/test_approval_icons.py
tests/unit/test_approval_list_html.py
tests/unit/test_approval_ui.py
tests/unit/test_approval_window_html.py
tests/unit/test_approvals.py
tests/unit/test_apps_script_client.py
tests/unit/test_atlassian_oauth.py
tests/unit/test_audit_forwarding.py
tests/unit/test_audit_log.py
tests/unit/test_auto_accept.py
tests/unit/test_build_org_bundle.py
tests/unit/test_calendar_client.py
tests/unit/test_card_builder.py
tests/unit/test_changelog_section.py
tests/unit/test_check_graphical_session_coverage.py
tests/unit/test_companion.py
tests/unit/test_confluence_client.py
tests/unit/test_connector.py
tests/unit/test_connector_registry.py
tests/unit/test_contacts_client.py
tests/unit/test_daemon_main.py
tests/unit/test_daemon_std_streams.py
tests/unit/test_dialog_window_html.py
tests/unit/test_docs_links.py
tests/unit/test_download_staging.py
tests/unit/test_drive_client.py
tests/unit/test_email_markdown.py
tests/unit/test_gate.py
tests/unit/test_gate_real_evaluator.py
tests/unit/test_generate_always_allow_reference.py
tests/unit/test_gmail_client.py
tests/unit/test_google_oauth.py
tests/unit/test_html_to_text.py
tests/unit/test_jira_client.py
tests/unit/test_markdown_to_html.py
tests/unit/test_mypy_strict_modules.py
tests/unit/test_oauth_loopback.py
tests/unit/test_org_bundle_signing.py
tests/unit/test_org_identity.py
tests/unit/test_org_mode.py
tests/unit/test_p6_principal_isolation.py
tests/unit/test_parser_properties.py
tests/unit/test_paths.py
tests/unit/test_pii_detector.py
tests/unit/test_pre_release_check.py
tests/unit/test_principal.py
tests/unit/test_privacy_filter.py
tests/unit/test_privilege_separation.py
tests/unit/test_pypi_metadata.py
tests/unit/test_qa_authenticate_connectors.py
tests/unit/test_qa_fixture_recorder.py
tests/unit/test_r2_release.py
tests/unit/test_release_stats.py
tests/unit/test_resource_names.py
tests/unit/test_safe_errors.py
tests/unit/test_salesforce_client.py
tests/unit/test_secure_files.py
tests/unit/test_settings_controller.py
tests/unit/test_settings_window_html.py
tests/unit/test_slack_client.py
tests/unit/test_step_up_config.py
tests/unit/test_sync_room_directory.py
tests/unit/test_systemic_gate_invariants.py
tests/unit/test_tag_release.py
tests/unit/test_tasks_client.py
tests/unit/test_telegram_auth.py
tests/unit/test_telegram_client.py
tests/unit/test_text_extraction.py
tests/unit/test_update_branch_protection.py
tests/unit/test_update_checker.py
tests/unit/test_url_safety.py
tests/unit/test_verify_audit_log.py
tests/unit/test_web_approval_ui.py
tests/unit/test_web_prompt.py
tests/unit/test_web_shell.py
tests/unit/test_webauthn_stepup.py
tests/unit/test_website_download_cta.py
tests/unit/test_windows_acl.py
tests/unit/test_windows_autostart_task_template.py
tests/unit/test_write_effects.py
tests/unit/abuse/__init__.py
tests/unit/abuse/test_abuse_audit_export.py
tests/unit/abuse/test_abuse_markdown_rendering.py
tests/unit/abuse/test_abuse_mcp_error_taxonomy.py
tests/unit/connectors/__init__.py
tests/unit/connectors/test_apps_script_connector.py
tests/unit/connectors/test_calendar_connector.py
tests/unit/connectors/test_confluence_connector.py
tests/unit/connectors/test_contacts_connector.py
tests/unit/connectors/test_drive_connector.py
tests/unit/connectors/test_gmail_connector.py
tests/unit/connectors/test_jira_connector.py
tests/unit/connectors/test_readme_manifest_alignment.py
tests/unit/connectors/test_salesforce_connector.py
tests/unit/connectors/test_slack_connector.py
tests/unit/connectors/test_tasks_connector.py
tests/unit/connectors/test_telegram_connector.py
tests/unit/policy/__init__.py
tests/unit/policy/_v1_reference.py
tests/unit/policy/test_catalogue.py
tests/unit/policy/test_compat.py
tests/unit/policy/test_conditions.py
tests/unit/policy/test_describe.py
tests/unit/policy/test_engine.py
tests/unit/policy/test_propose.py
tests/unit/policy/test_registry.py
tests/unit/policy/test_resource_registry.py
tests/unit/policy/test_scopes.py
tests/unit/policy/test_store.py
tests/unit/web/__init__.py
tests/unit/web/test_control_channel.py
tests/unit/web/test_csp.py
tests/unit/web/test_mcp_auth.py
tests/unit/web/test_mcp_dispatch.py
tests/unit/web/test_mcp_tools.py
tests/unit/web/test_oauth_provider.py
tests/unit/web/test_org_install_policy.py
tests/unit/web/test_org_mcp_e2e.py
tests/unit/web/test_org_session.py
tests/unit/web/test_org_settings_scope.py
tests/unit/web/test_routes_approvals.py
tests/unit/web/test_routes_connect.py
tests/unit/web/test_routes_downloads.py
tests/unit/web/test_routes_mcp.py
tests/unit/web/test_routes_mcp_principal.py
tests/unit/web/test_routes_org_approvals.py
tests/unit/web/test_routes_org_identity.py
tests/unit/web/test_routes_org_settings.py
tests/unit/web/test_routes_security.py
tests/unit/web/test_routes_settings.py
tests/unit/web/test_sealed_refresh_store.py
tests/unit/web/test_server.py
tests/unit/web/test_server_org_mode.py
tests/unit/web/test_session_auth.py
tests/unit/web/test_state_stream.py
website/index.html
website/stats.js
website/styles.css
website/download/download.js
website/download/index.html