makea-cli 0.2.31__tar.gz → 0.2.32__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.
- {makea_cli-0.2.31 → makea_cli-0.2.32}/CHANGELOG.md +9 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/PKG-INFO +2 -2
- {makea_cli-0.2.31 → makea_cli-0.2.32}/README.md +1 -1
- makea_cli-0.2.32/makea_cli/__init__.py +1 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/api_client.py +6 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/supplier/cmd.py +6 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/pyproject.toml +1 -1
- {makea_cli-0.2.31 → makea_cli-0.2.32}/tests/golden_manifest.json +12 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/uv.lock +1 -1
- makea_cli-0.2.31/makea_cli/__init__.py +0 -1
- {makea_cli-0.2.31 → makea_cli-0.2.32}/.claude/skills/create-supplier-profile/SKILL.md +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/.claude/skills/lark-cli-setup/SKILL.md +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/.claude/skills/link-supplier-user/SKILL.md +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/.claude/skills/makea-cli-setup/SKILL.md +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/.claude/skills/payment-revenue-report/SKILL.md +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/.claude/skills/supplier-user-id-migration/SKILL.md +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/.gitignore +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea-collection-upload/SKILL.md +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea-collection-upload/scripts/create_products.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/__main__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/auth_pkce.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/broker.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/_util.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/about/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/about/cmd.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/analytics/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/analytics/cmd.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/auth/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/auth/cmd.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/brand/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/brand/cmd.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/designer/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/designer/cmd.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/directory/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/directory/cmd.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/document/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/document/cmd.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/email/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/email/cmd.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/factory/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/factory/cmd.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/files/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/files/cmd.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/flags/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/flags/cmd.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/library/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/library/cmd.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/metrics/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/metrics/cmd.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/orders/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/orders/cmd.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/playbook/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/playbook/cmd.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/product/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/product/cmd.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/production/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/production/cmd.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/production/pricing_spec.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/shipping/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/shipping/cmd.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/supplier/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/tasks/__init__.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/tasks/cmd.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/companion.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/config.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/errors.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/file_reader.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/identity.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/main.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/output.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/posthog_client.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/registry.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/npm/makea-cli/README.md +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/npm/makea-cli/makea-cli.mjs +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/npm/makea-cli/package.json +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/tests/test_broker.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/tests/test_companion.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/tests/test_currency_conversion.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/tests/test_file_reader.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/tests/test_output_contract.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/tests/test_persona_commands.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/tests/test_pm_reads.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/tests/test_registry.py +0 -0
- {makea_cli-0.2.31 → makea_cli-0.2.32}/tests/test_supplier_scorecard.py +0 -0
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.32
|
|
4
|
+
|
|
5
|
+
Quote requests wait while the brand's files disagree (TECH-181).
|
|
6
|
+
|
|
7
|
+
- `admin create quote-request` gets `--release-anyway`. The server now holds
|
|
8
|
+
a request (409 FILES_DISAGREE, naming what disagrees) while a conflict
|
|
9
|
+
between the brand's files is open; settle it on the order's "Ready for
|
|
10
|
+
factories" tab, or pass the flag to send regardless.
|
|
11
|
+
|
|
3
12
|
## 0.2.31
|
|
4
13
|
|
|
5
14
|
Beeboo files what a brand hands it in the chat (TECH-150).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: makea-cli
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.32
|
|
4
4
|
Summary: Makea admin CLI (browser login + Makea admin HTTP API)
|
|
5
5
|
Requires-Python: >=3.10
|
|
6
6
|
Requires-Dist: click<9,>=8.1
|
|
@@ -97,7 +97,7 @@ exit code:`0` 成功 · `2` 用法错 · `3` 未登录或身份与 persona 不
|
|
|
97
97
|
| `makea-cli admin create feature-flag` | write(ask) | `POST /admin/feature-flags` | add a flag (off unless --enabled). An existing key is refused. | — |
|
|
98
98
|
| `makea-cli admin create library-element` | write(auto) | `POST /admin/designer/{user_id}/library_components` | save a reusable component under a designer. Provide --section and --values (see admin get library-schema). | `library-create` |
|
|
99
99
|
| `makea-cli admin create product-note` | write(ask) | `POST /admin/products/{product_id}/notes` | write a note on a product. Without --internal it goes to the brand. | — |
|
|
100
|
-
| `makea-cli admin create quote-request` | write(ask) | `POST /admin/supplier/create_quote_request` | create/send a quote request to a supplier for a product (admin). | `create-quote-request` |
|
|
100
|
+
| `makea-cli admin create quote-request` | write(ask) | `POST /admin/supplier/create_quote_request` | create/send a quote request to a supplier for a product (admin). Held (409 FILES_DISAGREE) while the brand's files disagree; --release-anyway sends regardless. | `create-quote-request` |
|
|
101
101
|
| `makea-cli admin create quote-request-note` | write(ask) | `POST /admin/quote_requests/{quote_request_id}/reply_status_note` | write to the factory on a quote request (e.g. answer its clarification). --requirements-updated words the email as a change to the product's requirements. | — |
|
|
102
102
|
| `makea-cli admin create rule` | write(ask) | `POST /admin/playbook/{target}/rules` | add a rule to a person's (`--user`, user_id or email), a factory's (`--supplier`) or the platform-wide (`--global`, max 30 live) AI playbook; admin-authored, active unless --status. Refuses a repeat or a conflict unless --force. --reason required; --why / --proof are what the brand reads under it, --title its card name. | — |
|
|
103
103
|
| `makea-cli admin create shipping-fee` | write(ask) | `POST /admin/shipping_orders/{shipping_order_id}/fees/add` | add a fee (fixed amount or percentage) on top of the freight. | — |
|
|
@@ -81,7 +81,7 @@ exit code:`0` 成功 · `2` 用法错 · `3` 未登录或身份与 persona 不
|
|
|
81
81
|
| `makea-cli admin create feature-flag` | write(ask) | `POST /admin/feature-flags` | add a flag (off unless --enabled). An existing key is refused. | — |
|
|
82
82
|
| `makea-cli admin create library-element` | write(auto) | `POST /admin/designer/{user_id}/library_components` | save a reusable component under a designer. Provide --section and --values (see admin get library-schema). | `library-create` |
|
|
83
83
|
| `makea-cli admin create product-note` | write(ask) | `POST /admin/products/{product_id}/notes` | write a note on a product. Without --internal it goes to the brand. | — |
|
|
84
|
-
| `makea-cli admin create quote-request` | write(ask) | `POST /admin/supplier/create_quote_request` | create/send a quote request to a supplier for a product (admin). | `create-quote-request` |
|
|
84
|
+
| `makea-cli admin create quote-request` | write(ask) | `POST /admin/supplier/create_quote_request` | create/send a quote request to a supplier for a product (admin). Held (409 FILES_DISAGREE) while the brand's files disagree; --release-anyway sends regardless. | `create-quote-request` |
|
|
85
85
|
| `makea-cli admin create quote-request-note` | write(ask) | `POST /admin/quote_requests/{quote_request_id}/reply_status_note` | write to the factory on a quote request (e.g. answer its clarification). --requirements-updated words the email as a change to the product's requirements. | — |
|
|
86
86
|
| `makea-cli admin create rule` | write(ask) | `POST /admin/playbook/{target}/rules` | add a rule to a person's (`--user`, user_id or email), a factory's (`--supplier`) or the platform-wide (`--global`, max 30 live) AI playbook; admin-authored, active unless --status. Refuses a repeat or a conflict unless --force. --reason required; --why / --proof are what the brand reads under it, --title its card name. | — |
|
|
87
87
|
| `makea-cli admin create shipping-fee` | write(ask) | `POST /admin/shipping_orders/{shipping_order_id}/fees/add` | add a fee (fixed amount or percentage) on top of the freight. | — |
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.2.32"
|
|
@@ -418,9 +418,13 @@ def create_quote_request(
|
|
|
418
418
|
message: str | None = None,
|
|
419
419
|
quote_type: str = "SAMPLING",
|
|
420
420
|
due_date: str | None = None,
|
|
421
|
+
release_anyway: bool = False,
|
|
421
422
|
) -> Any:
|
|
422
423
|
"""
|
|
423
424
|
POST /admin/supplier/create_quote_request — admin creates a quote request for a supplier.
|
|
425
|
+
|
|
426
|
+
The server holds the request (409 FILES_DISAGREE) while the brand's files
|
|
427
|
+
disagree (TECH-181); ``release_anyway`` sends it regardless.
|
|
424
428
|
"""
|
|
425
429
|
body: dict[str, Any] = {
|
|
426
430
|
"supplier_id": supplier_id,
|
|
@@ -431,6 +435,8 @@ def create_quote_request(
|
|
|
431
435
|
body["message"] = message
|
|
432
436
|
if due_date is not None:
|
|
433
437
|
body["due_date"] = due_date
|
|
438
|
+
if release_anyway:
|
|
439
|
+
body["release_anyway"] = True
|
|
434
440
|
return post_json("/admin/supplier/create_quote_request", body)
|
|
435
441
|
|
|
436
442
|
|
|
@@ -367,6 +367,11 @@ def register(app: typer.Typer) -> None:
|
|
|
367
367
|
"--due-date",
|
|
368
368
|
help="due_date: optional due date in YYYY-MM-DD format.",
|
|
369
369
|
),
|
|
370
|
+
release_anyway: bool = typer.Option(
|
|
371
|
+
False,
|
|
372
|
+
"--release-anyway",
|
|
373
|
+
help="Send even though the brand's files disagree (the server holds the request otherwise, FILES_DISAGREE).",
|
|
374
|
+
),
|
|
370
375
|
) -> None:
|
|
371
376
|
"""
|
|
372
377
|
Create/send a quote request as admin.
|
|
@@ -383,6 +388,7 @@ def register(app: typer.Typer) -> None:
|
|
|
383
388
|
message=message,
|
|
384
389
|
quote_type=qt,
|
|
385
390
|
due_date=due_date,
|
|
391
|
+
release_anyway=release_anyway,
|
|
386
392
|
),
|
|
387
393
|
)
|
|
388
394
|
|
|
@@ -457,6 +457,18 @@
|
|
|
457
457
|
"multiple": false,
|
|
458
458
|
"default": null,
|
|
459
459
|
"help": "due_date: optional due date in YYYY-MM-DD format."
|
|
460
|
+
},
|
|
461
|
+
{
|
|
462
|
+
"name": "release_anyway",
|
|
463
|
+
"kind": "option",
|
|
464
|
+
"opts": [
|
|
465
|
+
"--release-anyway"
|
|
466
|
+
],
|
|
467
|
+
"type": "flag",
|
|
468
|
+
"required": false,
|
|
469
|
+
"multiple": false,
|
|
470
|
+
"default": false,
|
|
471
|
+
"help": "Send even though the brand's files disagree (the server holds the request otherwise, FILES_DISAGREE)."
|
|
460
472
|
}
|
|
461
473
|
]
|
|
462
474
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.2.31"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|