thoughtleaders-cli 0.6.42__tar.gz → 0.6.44__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.42 → thoughtleaders_cli-0.6.44}/.claude-plugin/plugin.json +1 -1
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/PKG-INFO +1 -1
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/pyproject.toml +1 -1
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/SKILL.md +1 -1
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/report_glossary.md +19 -21
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/__init__.py +1 -1
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/.claude-plugin/marketplace.json +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/.github/workflows/python-publish.yml +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/.gitignore +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/AGENTS.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/CLAUDE.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/LICENSE +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/README.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/agents/tl-analyst.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/docs/architecture.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/hooks/hooks.json +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/hooks/scripts/load-tl-skill.mjs +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/hooks/scripts/post-usage.sh +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/hooks/scripts/pre-check.sh +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl/SKILL.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl/references/business-glossary.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl/references/elasticsearch-schema.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl/references/firebolt-schema.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl/references/postgres-schema.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-import/SKILL.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/examples/e2e_findings.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/examples/golden_queries.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/columns_brands.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/columns_channels.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/columns_content.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/columns_sponsorships.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/intelligence_filterset_schema.json +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/intelligence_widget_schema.json +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/sortable_columns.json +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/sponsorship_filterset_schema.json +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/sponsorship_widget_schema.json +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/widgets.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/tools/column_builder.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/tools/database_query.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/tools/keyword_research.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/tools/name_resolver.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/tools/sample_judge.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/tools/similar_channels.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/tools/topic_matcher.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/tools/widget_builder.md +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/_completions.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/auth/__init__.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/auth/commands.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/auth/finalize.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/auth/login.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/auth/pkce.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/auth/token_store.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/client/__init__.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/client/errors.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/client/http.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/__init__.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/_comments_common.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/ask.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/balance.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/brands.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/bulk_import.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/changelog.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/channels.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/credits.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/db.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/deals.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/describe.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/doctor.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/matches.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/proposals.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/recommender.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/reports.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/schema.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/setup.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/snapshots.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/sponsorships.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/uploads.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/whoami.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/config.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/filters.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/hints.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/main.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/output/__init__.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/output/formatter.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/src/tl_cli/self_update.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/tests/__init__.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/tests/test_auth.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/tests/test_filters.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/tests/test_http_auth.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/tests/test_output.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/tests/test_reports.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/tests/test_sponsorships.py +0 -0
- {thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/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.44
|
|
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
|
|
@@ -646,7 +646,7 @@ The view exposes one row per (adlink × brand × channel) and surfaces these col
|
|
|
646
646
|
- `organization_id`, `organization_name`, `organization_is_managed_services`
|
|
647
647
|
- `adlink_owner_advertiser_email`, `adlink_owner_sales_email`
|
|
648
648
|
|
|
649
|
-
**Important: count and sample MUST be deduped by `adlink_id`.** The view holds one row per `(adlink × brand × channel)` — a
|
|
649
|
+
**Important: count and sample MUST be deduped by `adlink_id`.** The view holds one row per `(adlink × brand × channel)` — a sponsorship spanning multiple brands or channels produces multiple rows. Type-8 counts sponsorship records (AdLinks), not view rows. **Always `COUNT(DISTINCT adlink_id)` for `db_count`; dedupe samples by `adlink_id`.** Direct `COUNT(*)` overcounts multi-brand/multi-channel adlinks.
|
|
650
650
|
|
|
651
651
|
##### Filter predicate mapping (must mirror the saved FilterSet)
|
|
652
652
|
|
|
@@ -22,33 +22,31 @@ Phase 1 + 2 disambiguation: report-type synonyms, TL terminology, field-pair cho
|
|
|
22
22
|
| **"pipeline"** *(no other context)* | Type 8 with active-stage filter | Default to type 8; confirm. |
|
|
23
23
|
| **"book of business"** | Type 8 with `tl_sponsorships_only: true` | Default to type 8 + filter; confirm scope. |
|
|
24
24
|
|
|
25
|
-
### TL role / pool synonyms
|
|
25
|
+
### TL role / pool synonyms + TL terminology
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|---|---|---|
|
|
29
|
-
| **MSN** | Media Selling Network — broad ~11K opted-in channel pool | `msn_channels_only` |
|
|
30
|
-
| **TPP** | ThoughtLeaders Premier Partners — smaller ~169 high-touch managed pool. **Resolve-and-pin pattern**: `SELECT id FROM thoughtleaders_channel WHERE is_tl_channel = TRUE AND is_active = TRUE ORDER BY id` → put IDs in `filterset.channels`. TPP IS a recognized filter; the implementation detail is resolve-and-pin. | `is_tl_channel = TRUE` resolved → `filterset.channels` |
|
|
31
|
-
| **MBN** | Media Buying Network — managed-services advertisers | `cross_references` type `include_sponsored_by_mbn` |
|
|
32
|
-
| **AM** / **Account Manager** | Advertiser-side deal owner | `owner_advertiser_name` (in `filters_json` for type 8) |
|
|
33
|
-
| **TM** / **Talent Manager** / **Publisher Manager** | Publisher-side deal owner | `owner_publisher_name` (in `filters_json` for type 8) |
|
|
27
|
+
> **Canonical source**: [`tl/references/business-glossary.md`](../../tl/references/business-glossary.md) — the canonical home for TL business terminology (MSN, TPP, MBN, AM/TM ownership, View Guarantees, Net revenue, TL profit, performance grade, industry-vs-TL vocabulary translations). Do NOT redefine these terms here; this skill defers to the glossary.
|
|
34
28
|
|
|
35
|
-
|
|
29
|
+
Quick **FilterSet-mapping reference** (where these business terms appear in the report-builder context — for full definitions see the canonical glossary):
|
|
36
30
|
|
|
37
|
-
| Term |
|
|
38
|
-
|
|
39
|
-
| **
|
|
40
|
-
| **
|
|
41
|
-
| **
|
|
42
|
-
| **
|
|
43
|
-
| **
|
|
44
|
-
| **
|
|
45
|
-
| **
|
|
31
|
+
| Term | FilterSet / `filters_json` mapping in this skill |
|
|
32
|
+
|---|---|
|
|
33
|
+
| **MSN** | `msn_channels_only: true` |
|
|
34
|
+
| **TPP** | resolve-and-pin pattern — `SELECT id FROM thoughtleaders_channel WHERE is_tl_channel = TRUE AND is_active = TRUE ORDER BY id` → put IDs in `filterset.channels` |
|
|
35
|
+
| **MBN** | `cross_references` type `include_sponsored_by_mbn` |
|
|
36
|
+
| **AM** / Account Manager | `owner_advertiser_name` (in `filters_json` for type 8) |
|
|
37
|
+
| **TM** / Talent Manager | `owner_publisher_name` (in `filters_json` for type 8) |
|
|
38
|
+
| **Reach** | `reach_from` / `reach_to` (narrate as "subscribers" per business-glossary) |
|
|
39
|
+
| **Projected Views (PV)** | `projected_views_from` / `projected_views_to`; column `Projected Views` |
|
|
40
|
+
| **View Guarantee (VG)** | Type 8 columns: `Views Guaranteed`, `Views Guarantee Days` |
|
|
41
|
+
| **Net revenue** | Type 8 column: `Revenue` |
|
|
42
|
+
| **TL profit** | Custom formula `{Price} - {Cost}` (NOT "margin" — see glossary) |
|
|
43
|
+
| **Sold sponsorship / Match / Proposal / Deal** | `filters_json.publish_status` (see "Deal-stage jargon" below for ID mapping) |
|
|
46
44
|
|
|
47
|
-
|
|
45
|
+
### Industry terms — DON'T emit in config
|
|
48
46
|
|
|
49
47
|
Industry-default terms that don't translate; never put in field names, formulas, columns, or user-facing copy:
|
|
50
48
|
|
|
51
|
-
- ❌ **"flight"** (MarTech) → say "campaign" or "date range"
|
|
49
|
+
- ❌ **"flight"** (MarTech) → say "campaign" or "date range" (full flight-variant translation lives in [`business-glossary.md`](../../tl/references/business-glossary.md) "Industry Terms vs TL Vocabulary")
|
|
52
50
|
- ❌ **"hero / hero-tier / hero channel"** → say "high-priority" or "TPP" if appropriate
|
|
53
51
|
- ❌ **"margin"** (accounting) → say `Net revenue` or `TL profit`
|
|
54
52
|
- ❌ **"impressions"** in YouTube context → say `Views` or `Projected Views`
|
|
@@ -71,7 +69,7 @@ Map informal descriptions → `filters_json.publish_status` IDs (integer; platfo
|
|
|
71
69
|
| **"in progress"** / **"active"** | `0, 2, 3, 6` | — | Active incl. sold |
|
|
72
70
|
| **"live"** / **"currently running"** | `3` | `ad_publish_status: "0"` | Sold AND published |
|
|
73
71
|
|
|
74
|
-
|
|
72
|
+
Full `publish_status` enum (all 12 codes incl. CLIENT_SIDE_* and pipeline weights) lives at the canonical schema home: [`tl/references/postgres-schema.md` → `publish_status` Constants](../../tl/references/postgres-schema.md#publish_status-constants). The NL → ID mapping above is what this skill consumes; refer to the schema doc for the full enum and Django-side constants.
|
|
75
73
|
|
|
76
74
|
## Field-pair disambiguation
|
|
77
75
|
|
|
File without changes
|
{thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/.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
|
{thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl/references/business-glossary.md
RENAMED
|
File without changes
|
{thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl/references/elasticsearch-schema.md
RENAMED
|
File without changes
|
{thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/skills/tl/references/firebolt-schema.md
RENAMED
|
File without changes
|
{thoughtleaders_cli-0.6.42 → thoughtleaders_cli-0.6.44}/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.42 → thoughtleaders_cli-0.6.44}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|