thoughtleaders-cli 0.6.43__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.43 → thoughtleaders_cli-0.6.44}/.claude-plugin/plugin.json +1 -1
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/PKG-INFO +1 -1
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/pyproject.toml +1 -1
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/__init__.py +1 -1
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/main.py +0 -2
- thoughtleaders_cli-0.6.43/skills/tl-feedback/SKILL.md +0 -87
- thoughtleaders_cli-0.6.43/src/tl_cli/commands/feedback.py +0 -61
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/.claude-plugin/marketplace.json +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/.github/workflows/python-publish.yml +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/.gitignore +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/AGENTS.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/CLAUDE.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/LICENSE +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/README.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/agents/tl-analyst.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/docs/architecture.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/hooks/hooks.json +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/hooks/scripts/load-tl-skill.mjs +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/hooks/scripts/post-usage.sh +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/hooks/scripts/pre-check.sh +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl/SKILL.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl/references/business-glossary.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl/references/elasticsearch-schema.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl/references/firebolt-schema.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl/references/postgres-schema.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-import/SKILL.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/SKILL.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/examples/e2e_findings.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/examples/golden_queries.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/columns_brands.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/columns_channels.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/columns_content.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/columns_sponsorships.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/intelligence_filterset_schema.json +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/intelligence_widget_schema.json +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/report_glossary.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/sortable_columns.json +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/sponsorship_filterset_schema.json +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/sponsorship_widget_schema.json +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/references/widgets.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/tools/column_builder.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/tools/database_query.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/tools/keyword_research.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/tools/name_resolver.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/tools/sample_judge.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/tools/similar_channels.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/tools/topic_matcher.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl-report-builder/tools/widget_builder.md +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/_completions.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/auth/__init__.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/auth/commands.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/auth/finalize.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/auth/login.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/auth/pkce.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/auth/token_store.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/client/__init__.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/client/errors.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/client/http.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/__init__.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/_comments_common.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/ask.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/balance.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/brands.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/bulk_import.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/changelog.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/channels.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/credits.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/db.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/deals.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/describe.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/doctor.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/matches.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/proposals.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/recommender.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/reports.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/schema.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/setup.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/snapshots.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/sponsorships.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/uploads.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/commands/whoami.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/config.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/filters.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/hints.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/output/__init__.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/output/formatter.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/src/tl_cli/self_update.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/tests/__init__.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/tests/test_auth.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/tests/test_filters.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/tests/test_http_auth.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/tests/test_output.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/tests/test_reports.py +0 -0
- {thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/tests/test_sponsorships.py +0 -0
- {thoughtleaders_cli-0.6.43 → 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
|
|
@@ -28,7 +28,6 @@ from tl_cli.commands.sponsorships import app as sponsorships_app
|
|
|
28
28
|
from tl_cli.commands.describe import app as describe_app
|
|
29
29
|
from tl_cli.commands.schema import app as schema_app
|
|
30
30
|
from tl_cli.commands.doctor import app as doctor_app
|
|
31
|
-
from tl_cli.commands.feedback import app as feedback_app
|
|
32
31
|
from tl_cli.commands.reports import app as reports_app
|
|
33
32
|
from tl_cli.commands.setup import app as setup_app
|
|
34
33
|
from tl_cli.commands.snapshots import app as snapshots_app
|
|
@@ -109,7 +108,6 @@ app.add_typer(balance_app, name="balance")
|
|
|
109
108
|
app.add_typer(credits_app, name="credits")
|
|
110
109
|
app.add_typer(doctor_app, name="doctor")
|
|
111
110
|
app.add_typer(whoami_app, name="whoami")
|
|
112
|
-
app.add_typer(feedback_app, name="feedback")
|
|
113
111
|
|
|
114
112
|
# `changelog` is a single command (not a sub-typer) so positional version args
|
|
115
113
|
# don't get interpreted as subcommand names.
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: tl-feedback
|
|
3
|
-
description: Compose and submit feedback about the current AI Agent session that used the `tl` CLI. Triggers on phrases like "send feedback", "report a problem with the session", "tell the team how this went", "submit session feedback", "feedback about tl", "this session was frustrating, send feedback", "tl feedback", "share this session with the team", "log issues from this run". Use it ONLY when the user wants to send a written report about the session to the ThoughtLeaders team — never on requests that just *use* `tl` to query data.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Send a session-feedback report via `tl feedback`
|
|
7
|
-
|
|
8
|
-
The `tl feedback` command POSTs a markdown-formatted message to the ThoughtLeaders team's `#ai-feedback` Slack channel. The server-side endpoint prepends the user/org context (user, email, organisation, links into Django admin), so the body you send should contain **only the session-specific report** — do not try to restate the user's name or org yourself.
|
|
9
|
-
|
|
10
|
-
This skill produces that body. Do not invoke `tl feedback` until every section below is written.
|
|
11
|
-
|
|
12
|
-
## When to invoke
|
|
13
|
-
|
|
14
|
-
Trigger this skill **only** when the user is explicitly asking for feedback to be sent — phrases like "send feedback", "log a problem with this session", "share these issues with the team", "submit session feedback", "tl feedback". Do **not** trigger it when the user is asking `tl` to fetch data, build a report, or perform any other analytical task; in those cases the `tl-cli:tl` or `tl-cli:tl-report-builder` skills are the right ones.
|
|
15
|
-
|
|
16
|
-
If you are not sure whether the user wants the feedback sent now or is just venting, ask one clarifying question before composing the body. Otherwise proceed.
|
|
17
|
-
|
|
18
|
-
## What the body must contain
|
|
19
|
-
|
|
20
|
-
Write the body to a scratch buffer (do not stream it directly to the shell) and only send it once all four sections are present. Use the **Slack mrkdwn subset** of markdown — Slack does not render standard markdown:
|
|
21
|
-
|
|
22
|
-
| Want | Slack mrkdwn |
|
|
23
|
-
| --- | --- |
|
|
24
|
-
| Bold | `*bold*` (single asterisk) |
|
|
25
|
-
| Italic | `_italic_` |
|
|
26
|
-
| Strike | `~strike~` |
|
|
27
|
-
| Inline code | `` `code` `` |
|
|
28
|
-
| Code block | triple backticks |
|
|
29
|
-
| Block quote | `> text` |
|
|
30
|
-
| Bullets | leading `• ` (or `- `) |
|
|
31
|
-
| Link | `<https://example.com|label>` |
|
|
32
|
-
|
|
33
|
-
`**double-asterisk bold**`, `[text](url)` links, and `#` headers render as **plain characters** in Slack — do not use them.
|
|
34
|
-
|
|
35
|
-
### Required sections, in this exact order
|
|
36
|
-
|
|
37
|
-
1. **One-sentence summary of the session.**
|
|
38
|
-
Lead with one sentence (no header, no bullets) describing what the user was trying to accomplish in this session and how it went overall (e.g. *"Pulled Q1 sponsored-channel rosters for three brands; ran into a sanitizer rejection on the third query and resolved it via `tl db pg`."*).
|
|
39
|
-
|
|
40
|
-
2. **User prompts and the work done.**
|
|
41
|
-
Section header `*User prompts and actions taken*`. Then a bulleted list — one bullet per distinct prompt the user issued in the session, in order. Each prompt is the parent bullet (a short paraphrase of what they asked, in quotes). Under each prompt, indent sub-bullets listing every concrete tool call or shell command you ran to handle it. Examples:
|
|
42
|
-
|
|
43
|
-
```
|
|
44
|
-
• _"Find me Holafly's sponsored channels in the last 6 months"_
|
|
45
|
-
• `tl db pg "SELECT DISTINCT c.id, c.channel_name FROM …"`
|
|
46
|
-
• `tl brands find Holafly`
|
|
47
|
-
• _"Now show their evergreenness scores"_
|
|
48
|
-
• `tl db es '{"aggs":{"channels":{"terms":{"field":"channel.id"}}}}'`
|
|
49
|
-
• `tl db pg "SELECT id, channel_name, evergreenness FROM thoughtleaders_channel WHERE id IN (…)"`
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
Include every prompt — even ones that were short clarifications. If you used a non-`tl` tool (`jq`, `duckdb`, Read, Edit, Bash), list it too. Do not dump full command output; one line per command is enough.
|
|
53
|
-
|
|
54
|
-
3. **Analysis section.**
|
|
55
|
-
Section header `*Analysis: problems, frustrations, weaknesses*`. Write a few short paragraphs (no bullets needed) covering, in this order:
|
|
56
|
-
- **Problems / data errors** encountered (e.g. sanitizer rejections, schema mismatches, missing fields, wrong field names, 5xx responses, slow endpoints). Quote the exact error text or command when relevant.
|
|
57
|
-
- **User frustrations** signalled in their messages (impatience, asking the same question twice, "this isn't what I asked for", profanity, abandoning a thread). Be honest — the team needs the actual signal, not a sanitised version. Do not editorialise about whether the frustration was justified.
|
|
58
|
-
- **Weaknesses / gaps in the `tl` CLI or skills** that surfaced. Concrete examples: missing filters, output formats that needed jq post-processing, schema docs that were wrong or out of date, commands that ought to exist but don't, places where you (the agent) had to guess.
|
|
59
|
-
- **What went well** — keep this short (one or two sentences). Skip the section if nothing notably went well.
|
|
60
|
-
|
|
61
|
-
If a category has nothing to report, write *"None observed."* under the heading rather than omitting the heading entirely. Do not invent problems to fill space.
|
|
62
|
-
|
|
63
|
-
4. **Anything else the user explicitly asked you to include.**
|
|
64
|
-
If the user's "send feedback" request contained a specific message ("tell them the new find command is great"), append it verbatim under a final `*From the user*` section as a block quote.
|
|
65
|
-
|
|
66
|
-
## After the body is ready
|
|
67
|
-
|
|
68
|
-
Send it with `tl feedback` — pass the body as a single argument (heredoc / `$(cat <<EOF …)` works well for multi-line content):
|
|
69
|
-
|
|
70
|
-
```bash
|
|
71
|
-
tl feedback "$(cat <<'EOF'
|
|
72
|
-
<the body you composed>
|
|
73
|
-
EOF
|
|
74
|
-
)"
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
On success the CLI prints `Thanks! Your feedback was sent to the team.` Confirm to the user with a brief, neutral one-liner ("Sent."). Do not echo the full body back to the user — they wrote it with you, they don't need to re-read it.
|
|
78
|
-
|
|
79
|
-
If `tl feedback` exits non-zero (network failure, server error), show the user the raw error and offer to retry. Do not silently swallow failures — feedback that didn't reach Slack is the worst possible outcome here.
|
|
80
|
-
|
|
81
|
-
## What NOT to do
|
|
82
|
-
|
|
83
|
-
- Do not prepend user name, email, organisation, or admin links to the body. The server adds those.
|
|
84
|
-
- Do not use `**bold**` or `[text](url)` markdown — Slack will print the literal characters.
|
|
85
|
-
- Do not split the report into multiple `tl feedback` calls. One message, one call.
|
|
86
|
-
- Do not invent prompts or commands you did not actually use. If you can't recall, write *"(earlier commands not captured)"*.
|
|
87
|
-
- Do not mark the task complete until `tl feedback` exits 0.
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"""tl feedback — Send a markdown-formatted note to the #ai-feedback channel."""
|
|
2
|
-
|
|
3
|
-
import sys
|
|
4
|
-
|
|
5
|
-
import typer
|
|
6
|
-
from rich.console import Console
|
|
7
|
-
|
|
8
|
-
from tl_cli.client.errors import ApiError, handle_api_error
|
|
9
|
-
from tl_cli.client.http import get_client
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
app = typer.Typer(help="Send feedback about the CLI to the team (free)")
|
|
13
|
-
console = Console(stderr=True)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
@app.callback(invoke_without_command=True)
|
|
17
|
-
def feedback(
|
|
18
|
-
ctx: typer.Context,
|
|
19
|
-
text: str = typer.Argument(
|
|
20
|
-
None,
|
|
21
|
-
help='Markdown-formatted feedback. Omit to read from stdin (handy for piping or heredocs).',
|
|
22
|
-
),
|
|
23
|
-
) -> None:
|
|
24
|
-
"""Send a markdown-formatted note to the ThoughtLeaders team.
|
|
25
|
-
|
|
26
|
-
The server prepends your user/org context and posts everything to the
|
|
27
|
-
#ai-feedback Slack channel. Slack supports a subset of markdown —
|
|
28
|
-
`*bold*`, `_italic_`, `~strike~`, ``code``, ```fences```, `> quotes`,
|
|
29
|
-
and `<url|label>` links. Standard `**bold**`, `[text](url)` links,
|
|
30
|
-
and `#` headers render as plain text in Slack.
|
|
31
|
-
|
|
32
|
-
Examples:
|
|
33
|
-
tl feedback "The new *find* command is great, but it should also accept channel IDs from URLs."
|
|
34
|
-
echo "long note here" | tl feedback
|
|
35
|
-
tl feedback <<< "$(cat note.md)"
|
|
36
|
-
"""
|
|
37
|
-
if ctx.invoked_subcommand is not None:
|
|
38
|
-
return
|
|
39
|
-
|
|
40
|
-
body = text
|
|
41
|
-
if body is None:
|
|
42
|
-
if sys.stdin.isatty():
|
|
43
|
-
console.print('[red]Error:[/red] no feedback text provided.')
|
|
44
|
-
console.print('Pass the text as an argument, or pipe it via stdin.')
|
|
45
|
-
raise typer.Exit(1)
|
|
46
|
-
body = sys.stdin.read()
|
|
47
|
-
|
|
48
|
-
body = (body or '').strip()
|
|
49
|
-
if not body:
|
|
50
|
-
console.print('[red]Error:[/red] feedback text is empty.')
|
|
51
|
-
raise typer.Exit(1)
|
|
52
|
-
|
|
53
|
-
client = get_client()
|
|
54
|
-
try:
|
|
55
|
-
client.post('/feedback', json_body={'text': body})
|
|
56
|
-
except ApiError as e:
|
|
57
|
-
handle_api_error(e)
|
|
58
|
-
finally:
|
|
59
|
-
client.close()
|
|
60
|
-
|
|
61
|
-
console.print('[green]Thanks![/green] Your feedback was sent to the team.')
|
|
File without changes
|
{thoughtleaders_cli-0.6.43 → 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.43 → thoughtleaders_cli-0.6.44}/skills/tl/references/business-glossary.md
RENAMED
|
File without changes
|
{thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl/references/elasticsearch-schema.md
RENAMED
|
File without changes
|
{thoughtleaders_cli-0.6.43 → thoughtleaders_cli-0.6.44}/skills/tl/references/firebolt-schema.md
RENAMED
|
File without changes
|
{thoughtleaders_cli-0.6.43 → 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
|
|
File without changes
|
|
File without changes
|
{thoughtleaders_cli-0.6.43 → 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
|