thoughtleaders-cli 0.6.17__tar.gz → 0.6.18__tar.gz
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.
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/.claude-plugin/plugin.json +1 -1
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/PKG-INFO +1 -1
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/pyproject.toml +1 -1
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/__init__.py +1 -1
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/self_update.py +40 -2
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/.claude-plugin/marketplace.json +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/.github/workflows/python-publish.yml +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/.gitignore +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/AGENTS.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/CLAUDE.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/LICENSE +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/README.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/agents/tl-analyst.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/commands/tl-balance.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/commands/tl-reports.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/commands/tl-sponsorships.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/commands/tl.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/docs/architecture.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/hooks/hooks.json +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/hooks/scripts/post-usage.sh +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/hooks/scripts/pre-check.sh +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl/SKILL.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl/references/business-glossary.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl/references/elasticsearch-schema.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl/references/firebolt-schema.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl/references/postgres-schema.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/SKILL.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/examples/e2e_findings.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/examples/golden_queries.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/references/columns_brands.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/references/columns_channels.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/references/columns_content.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/references/columns_sponsorships.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/references/intelligence_filterset_schema.json +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/references/intelligence_widget_schema.json +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/references/report_glossary.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/references/sortable_columns.json +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/references/sponsorship_filterset_schema.json +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/references/sponsorship_widget_schema.json +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/references/widgets.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/tools/column_builder.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/tools/database_query.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/tools/keyword_research.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/tools/name_resolver.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/tools/sample_judge.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/tools/similar_channels.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/tools/topic_matcher.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl-report-builder/tools/widget_builder.md +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/_completions.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/auth/__init__.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/auth/commands.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/auth/login.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/auth/pkce.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/auth/token_store.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/client/__init__.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/client/errors.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/client/http.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/__init__.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/_comments_common.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/ask.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/balance.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/brands.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/changelog.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/channels.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/db.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/deals.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/describe.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/doctor.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/matches.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/proposals.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/recommender.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/reports.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/schema.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/setup.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/snapshots.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/sponsorships.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/uploads.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/whoami.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/config.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/filters.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/hints.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/main.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/output/__init__.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/output/formatter.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/tests/__init__.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/tests/test_auth.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/tests/test_filters.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/tests/test_output.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/tests/test_reports.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/tests/test_sponsorships.py +0 -0
- {thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: thoughtleaders-cli
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.18
|
|
4
4
|
Summary: ThoughtLeaders CLI — query sponsorship data, channels, brands, and intelligence
|
|
5
5
|
Project-URL: Homepage, https://thoughtleaders.io
|
|
6
6
|
Project-URL: Repository, https://github.com/ThoughtLeaders-io/thoughtleaders-cli
|
|
@@ -13,6 +13,7 @@ user's actual command output.
|
|
|
13
13
|
from __future__ import annotations
|
|
14
14
|
|
|
15
15
|
import json
|
|
16
|
+
import shutil
|
|
16
17
|
import subprocess
|
|
17
18
|
import sys
|
|
18
19
|
import time
|
|
@@ -96,6 +97,11 @@ def _run_upgrade(method: str, latest: str) -> None:
|
|
|
96
97
|
Uses `install --force` with the new tag URL. pipx/uv pin the original
|
|
97
98
|
install spec including the git tag, so a plain `upgrade` re-installs
|
|
98
99
|
the same version — `--force` is the only way to advance the pinned tag.
|
|
100
|
+
|
|
101
|
+
On a successful upgrade, re-syncs Claude Code and OpenCode skills if
|
|
102
|
+
their respective binaries are on PATH, so the new version's skills
|
|
103
|
+
land in ~/.claude/ and ~/.config/opencode/ without the user having
|
|
104
|
+
to remember to run `tl setup ...`.
|
|
99
105
|
"""
|
|
100
106
|
tagged_url = f"git+{REPO_URL}@v{latest}"
|
|
101
107
|
cmd = {
|
|
@@ -109,9 +115,41 @@ def _run_upgrade(method: str, latest: str) -> None:
|
|
|
109
115
|
file=sys.stderr,
|
|
110
116
|
)
|
|
111
117
|
try:
|
|
112
|
-
subprocess.run(cmd, check=False, timeout=60)
|
|
118
|
+
result = subprocess.run(cmd, check=False, timeout=60)
|
|
113
119
|
except (OSError, subprocess.TimeoutExpired):
|
|
114
|
-
|
|
120
|
+
return
|
|
121
|
+
if result.returncode == 0:
|
|
122
|
+
_resync_integrations()
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
def _resync_integrations() -> None:
|
|
126
|
+
"""Re-sync Claude Code and OpenCode skills after a self-upgrade.
|
|
127
|
+
|
|
128
|
+
Spawned as a subprocess against the freshly-installed `tl` binary —
|
|
129
|
+
the running process holds the OLD code in memory, so calling the
|
|
130
|
+
setup functions in-process would (depending on import caching) copy
|
|
131
|
+
the wrong assets. Subprocess re-execs the new code from disk.
|
|
132
|
+
|
|
133
|
+
Conditional on each tool's binary being on PATH; everything is
|
|
134
|
+
silent on failure (a skill resync issue must never fail the
|
|
135
|
+
upgrade itself).
|
|
136
|
+
"""
|
|
137
|
+
tl_bin = shutil.which("tl")
|
|
138
|
+
if not tl_bin:
|
|
139
|
+
return
|
|
140
|
+
for tool, binary in (("claude", "claude"), ("opencode", "opencode")):
|
|
141
|
+
if not shutil.which(binary):
|
|
142
|
+
continue
|
|
143
|
+
print(f"[tl-cli] re-syncing {tool} skills…", file=sys.stderr)
|
|
144
|
+
try:
|
|
145
|
+
subprocess.run(
|
|
146
|
+
[tl_bin, "setup", tool, "--json"],
|
|
147
|
+
capture_output=True,
|
|
148
|
+
timeout=120,
|
|
149
|
+
check=False,
|
|
150
|
+
)
|
|
151
|
+
except (OSError, subprocess.TimeoutExpired):
|
|
152
|
+
pass
|
|
115
153
|
|
|
116
154
|
|
|
117
155
|
def check_and_upgrade() -> None:
|
|
File without changes
|
{thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/.github/workflows/python-publish.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl/references/business-glossary.md
RENAMED
|
File without changes
|
{thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl/references/elasticsearch-schema.md
RENAMED
|
File without changes
|
{thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl/references/firebolt-schema.md
RENAMED
|
File without changes
|
{thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/skills/tl/references/postgres-schema.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{thoughtleaders_cli-0.6.17 → thoughtleaders_cli-0.6.18}/src/tl_cli/commands/_comments_common.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|