wealthbox-cli 2.4.0__tar.gz → 2.4.1__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.
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/.github/workflows/ci.yml +22 -1
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/CHANGELOG.md +22 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/CONTRIBUTING.md +2 -1
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/PKG-INFO +1 -1
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/pyproject.toml +1 -1
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/_factory.py +7 -2
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/uv.lock +1 -1
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/.github/dependabot.yml +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/.github/workflows/docs.yml +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/.github/workflows/release-binaries.yml +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/.gitignore +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/.pre-commit-config.yaml +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/LICENSE +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/README.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/SECURITY.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/docs/agents/domain.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/docs/agents/issue-tracker.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/docs/agents/triage-labels.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/docs/cli-reference.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/docs/getting-started.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/docs/index.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/docs/overrides/main.html +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/docs/promotion.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/mkdocs.yml +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/__init__.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/__init__.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/_client.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/_config.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/_format.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/_resolve.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/_skill_bootstrap.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/_skill_paths.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/_skill_platforms.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/_util.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/activity.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/categories.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/config.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/contacts.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/doctor.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/events.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/firm.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/households.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/internals.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/main.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/me.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/notes.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/opportunities.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/prefs.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/projects.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/self_cmd.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/skills.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/tasks.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/users.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/cli/workflows.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/client/__init__.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/client/activity.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/client/base.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/client/categories.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/client/comments.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/client/contacts.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/client/events.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/client/households.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/client/me.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/client/notes.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/client/opportunities.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/client/projects.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/client/tasks.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/client/users.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/client/workflows.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/firm/__init__.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/firm/archive.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/firm/diff.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/internals/__init__.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/internals/skill_ref_gen.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/models/__init__.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/models/activity.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/models/comments.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/models/common.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/models/contacts.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/models/custom_fields.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/models/enums.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/models/events.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/models/households.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/models/notes.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/models/opportunities.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/models/projects.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/models/tasks.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/models/workflows.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/py.typed +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/self_upgrade.py +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/skills/wealthbox-crm/SKILL.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/skills/wealthbox-crm/bootstrap.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/contacts.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/events.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/notes.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/opportunities.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/projects.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/tasks.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/workflows.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/skills/wealthbox-crm/references/contacts.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/skills/wealthbox-crm/references/events.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/skills/wealthbox-crm/references/households.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/skills/wealthbox-crm/references/lookups.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/skills/wealthbox-crm/references/notes.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/skills/wealthbox-crm/references/opportunities.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/skills/wealthbox-crm/references/projects.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/skills/wealthbox-crm/references/tasks.md +0 -0
- {wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/skills/wealthbox-crm/references/workflows.md +0 -0
|
@@ -50,6 +50,27 @@ jobs:
|
|
|
50
50
|
- run: uv sync --extra dev
|
|
51
51
|
- run: uv run mypy src/
|
|
52
52
|
|
|
53
|
+
smoke:
|
|
54
|
+
# Install the built wheel in isolation WITHOUT dev dependencies and run the
|
|
55
|
+
# entrypoint, so a missing runtime dependency (e.g. a module-level import of
|
|
56
|
+
# a package typer no longer pulls in) is caught before publish. The normal
|
|
57
|
+
# test job always has dev deps present and cannot catch this.
|
|
58
|
+
runs-on: ${{ matrix.os }}
|
|
59
|
+
strategy:
|
|
60
|
+
matrix:
|
|
61
|
+
os: [ubuntu-latest, windows-latest]
|
|
62
|
+
steps:
|
|
63
|
+
- uses: actions/checkout@v6
|
|
64
|
+
- uses: astral-sh/setup-uv@v8.1.0
|
|
65
|
+
with:
|
|
66
|
+
python-version: "3.12"
|
|
67
|
+
- name: Build and smoke-test clean install
|
|
68
|
+
shell: bash
|
|
69
|
+
run: |
|
|
70
|
+
uv build
|
|
71
|
+
uv run --isolated --no-project --with "$(ls dist/*.whl)" wbox --version
|
|
72
|
+
uv run --isolated --no-project --with "$(ls dist/*.whl)" wbox notes --help
|
|
73
|
+
|
|
53
74
|
skill-ref-drift:
|
|
54
75
|
needs: [lint, test]
|
|
55
76
|
runs-on: ubuntu-latest
|
|
@@ -63,7 +84,7 @@ jobs:
|
|
|
63
84
|
- run: git diff --exit-code -- src/wealthbox_tools/skills/wealthbox-crm/references/
|
|
64
85
|
|
|
65
86
|
publish:
|
|
66
|
-
needs: [lint, test, typecheck, skill-ref-drift]
|
|
87
|
+
needs: [lint, test, typecheck, smoke, skill-ref-drift]
|
|
67
88
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
68
89
|
runs-on: ubuntu-latest
|
|
69
90
|
permissions:
|
|
@@ -4,6 +4,28 @@ All notable changes to `wealthbox-cli` are documented here. The format follows
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project
|
|
5
5
|
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [2.4.1] - 2026-06-12
|
|
8
|
+
|
|
9
|
+
Patch release fixing a startup crash in 2.4.0. The `cli/_factory.py` module
|
|
10
|
+
(introduced in the 2.4.0 refactor) imported `click` at module level to
|
|
11
|
+
annotate a `TyperGroup` subclass, but `click` is only referenced in type
|
|
12
|
+
annotations. On installs where `typer` (>=0.26) does not pull in `click` as a
|
|
13
|
+
transitive dependency, `wbox` crashed on launch with
|
|
14
|
+
`ModuleNotFoundError: No module named 'click'` — the same failure class fixed
|
|
15
|
+
for `skill_ref_gen` in 2.3.1. This was not caught by CI because the test
|
|
16
|
+
environment always has `click` present via the dev dependencies.
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
- `wbox` startup crash (`ModuleNotFoundError: click`) on clean installs that
|
|
20
|
+
lack `click`. The `import click` in `cli/_factory.py` is now guarded by
|
|
21
|
+
`TYPE_CHECKING` (it is only used in annotations, which are not evaluated at
|
|
22
|
+
runtime under `from __future__ import annotations`).
|
|
23
|
+
|
|
24
|
+
### Internal
|
|
25
|
+
- CI gains a `smoke` job that installs the built wheel in isolation **without
|
|
26
|
+
dev dependencies** and runs `wbox --version`, so a missing-runtime-dependency
|
|
27
|
+
startup crash can no longer reach PyPI. The `publish` job now depends on it.
|
|
28
|
+
|
|
7
29
|
## [2.4.0] - 2026-06-12
|
|
8
30
|
|
|
9
31
|
The notable user-facing change in this release is **differentiated CLI exit
|
|
@@ -167,9 +167,10 @@ Pull requests and pushes to `main` run GitHub Actions CI:
|
|
|
167
167
|
- **Lint:** `ruff check src/ tests/`
|
|
168
168
|
- **Test:** `pytest` across Python 3.11, 3.12, 3.13 (ubuntu) + 3.12 (windows); coverage gate `--cov-fail-under=91` on ubuntu
|
|
169
169
|
- **Typecheck:** `mypy src/` (strict)
|
|
170
|
+
- **Smoke:** installs the built wheel in isolation (no dev deps) and runs `wbox --version` / `wbox notes --help`, catching missing-runtime-dependency startup crashes
|
|
170
171
|
- **Skill-ref drift:** regenerates refs and asserts no git diff
|
|
171
172
|
|
|
172
|
-
All
|
|
173
|
+
All jobs must pass before merging; `publish` (on `v*` tags) additionally gates on lint, test, typecheck, and smoke.
|
|
173
174
|
|
|
174
175
|
---
|
|
175
176
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wealthbox-cli
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.1
|
|
4
4
|
Summary: CLI and client library for the Wealthbox CRM API
|
|
5
5
|
Project-URL: Homepage, https://github.com/massive-value/wealthbox-cli
|
|
6
6
|
Project-URL: Documentation, https://massive-value.github.io/wealthbox-cli/
|
|
@@ -3,9 +3,8 @@ from __future__ import annotations
|
|
|
3
3
|
import inspect
|
|
4
4
|
from collections.abc import Callable
|
|
5
5
|
from dataclasses import dataclass, field
|
|
6
|
-
from typing import Any
|
|
6
|
+
from typing import TYPE_CHECKING, Any
|
|
7
7
|
|
|
8
|
-
import click
|
|
9
8
|
import typer
|
|
10
9
|
from typer.core import TyperGroup
|
|
11
10
|
|
|
@@ -14,6 +13,12 @@ from wealthbox_tools.models import CategoryListQuery, CategoryType
|
|
|
14
13
|
from ._client import handle_errors, run_client, run_client_with_comments
|
|
15
14
|
from ._format import OutputFormat, output_get_result, output_result
|
|
16
15
|
|
|
16
|
+
if TYPE_CHECKING:
|
|
17
|
+
# click is only referenced in type annotations below; importing it at
|
|
18
|
+
# runtime would crash on installs where typer (>=0.26) does not pull in
|
|
19
|
+
# click. Keep it type-only. See the 2.3.1 fix for the same class of bug.
|
|
20
|
+
import click
|
|
21
|
+
|
|
17
22
|
|
|
18
23
|
class _GetShortcutGroup(TyperGroup):
|
|
19
24
|
"""Typer Group that routes numeric first arguments to the ``get`` subcommand."""
|
|
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
|
|
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
|
|
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
|
{wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/skills/wealthbox-crm/SKILL.md
RENAMED
|
File without changes
|
{wealthbox_cli-2.4.0 → wealthbox_cli-2.4.1}/src/wealthbox_tools/skills/wealthbox-crm/bootstrap.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
|