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.
Files changed (85) hide show
  1. {makea_cli-0.2.31 → makea_cli-0.2.32}/CHANGELOG.md +9 -0
  2. {makea_cli-0.2.31 → makea_cli-0.2.32}/PKG-INFO +2 -2
  3. {makea_cli-0.2.31 → makea_cli-0.2.32}/README.md +1 -1
  4. makea_cli-0.2.32/makea_cli/__init__.py +1 -0
  5. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/api_client.py +6 -0
  6. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/supplier/cmd.py +6 -0
  7. {makea_cli-0.2.31 → makea_cli-0.2.32}/pyproject.toml +1 -1
  8. {makea_cli-0.2.31 → makea_cli-0.2.32}/tests/golden_manifest.json +12 -0
  9. {makea_cli-0.2.31 → makea_cli-0.2.32}/uv.lock +1 -1
  10. makea_cli-0.2.31/makea_cli/__init__.py +0 -1
  11. {makea_cli-0.2.31 → makea_cli-0.2.32}/.claude/skills/create-supplier-profile/SKILL.md +0 -0
  12. {makea_cli-0.2.31 → makea_cli-0.2.32}/.claude/skills/lark-cli-setup/SKILL.md +0 -0
  13. {makea_cli-0.2.31 → makea_cli-0.2.32}/.claude/skills/link-supplier-user/SKILL.md +0 -0
  14. {makea_cli-0.2.31 → makea_cli-0.2.32}/.claude/skills/makea-cli-setup/SKILL.md +0 -0
  15. {makea_cli-0.2.31 → makea_cli-0.2.32}/.claude/skills/payment-revenue-report/SKILL.md +0 -0
  16. {makea_cli-0.2.31 → makea_cli-0.2.32}/.claude/skills/supplier-user-id-migration/SKILL.md +0 -0
  17. {makea_cli-0.2.31 → makea_cli-0.2.32}/.gitignore +0 -0
  18. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea-collection-upload/SKILL.md +0 -0
  19. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea-collection-upload/scripts/create_products.py +0 -0
  20. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/__main__.py +0 -0
  21. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/auth_pkce.py +0 -0
  22. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/broker.py +0 -0
  23. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/__init__.py +0 -0
  24. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/_util.py +0 -0
  25. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/about/__init__.py +0 -0
  26. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/about/cmd.py +0 -0
  27. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/analytics/__init__.py +0 -0
  28. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/analytics/cmd.py +0 -0
  29. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/auth/__init__.py +0 -0
  30. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/auth/cmd.py +0 -0
  31. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/brand/__init__.py +0 -0
  32. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/brand/cmd.py +0 -0
  33. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/designer/__init__.py +0 -0
  34. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/designer/cmd.py +0 -0
  35. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/directory/__init__.py +0 -0
  36. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/directory/cmd.py +0 -0
  37. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/document/__init__.py +0 -0
  38. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/document/cmd.py +0 -0
  39. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/email/__init__.py +0 -0
  40. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/email/cmd.py +0 -0
  41. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/factory/__init__.py +0 -0
  42. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/factory/cmd.py +0 -0
  43. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/files/__init__.py +0 -0
  44. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/files/cmd.py +0 -0
  45. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/flags/__init__.py +0 -0
  46. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/flags/cmd.py +0 -0
  47. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/library/__init__.py +0 -0
  48. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/library/cmd.py +0 -0
  49. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/metrics/__init__.py +0 -0
  50. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/metrics/cmd.py +0 -0
  51. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/orders/__init__.py +0 -0
  52. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/orders/cmd.py +0 -0
  53. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/playbook/__init__.py +0 -0
  54. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/playbook/cmd.py +0 -0
  55. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/product/__init__.py +0 -0
  56. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/product/cmd.py +0 -0
  57. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/production/__init__.py +0 -0
  58. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/production/cmd.py +0 -0
  59. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/production/pricing_spec.py +0 -0
  60. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/shipping/__init__.py +0 -0
  61. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/shipping/cmd.py +0 -0
  62. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/supplier/__init__.py +0 -0
  63. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/tasks/__init__.py +0 -0
  64. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/commands/tasks/cmd.py +0 -0
  65. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/companion.py +0 -0
  66. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/config.py +0 -0
  67. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/errors.py +0 -0
  68. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/file_reader.py +0 -0
  69. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/identity.py +0 -0
  70. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/main.py +0 -0
  71. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/output.py +0 -0
  72. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/posthog_client.py +0 -0
  73. {makea_cli-0.2.31 → makea_cli-0.2.32}/makea_cli/registry.py +0 -0
  74. {makea_cli-0.2.31 → makea_cli-0.2.32}/npm/makea-cli/README.md +0 -0
  75. {makea_cli-0.2.31 → makea_cli-0.2.32}/npm/makea-cli/makea-cli.mjs +0 -0
  76. {makea_cli-0.2.31 → makea_cli-0.2.32}/npm/makea-cli/package.json +0 -0
  77. {makea_cli-0.2.31 → makea_cli-0.2.32}/tests/test_broker.py +0 -0
  78. {makea_cli-0.2.31 → makea_cli-0.2.32}/tests/test_companion.py +0 -0
  79. {makea_cli-0.2.31 → makea_cli-0.2.32}/tests/test_currency_conversion.py +0 -0
  80. {makea_cli-0.2.31 → makea_cli-0.2.32}/tests/test_file_reader.py +0 -0
  81. {makea_cli-0.2.31 → makea_cli-0.2.32}/tests/test_output_contract.py +0 -0
  82. {makea_cli-0.2.31 → makea_cli-0.2.32}/tests/test_persona_commands.py +0 -0
  83. {makea_cli-0.2.31 → makea_cli-0.2.32}/tests/test_pm_reads.py +0 -0
  84. {makea_cli-0.2.31 → makea_cli-0.2.32}/tests/test_registry.py +0 -0
  85. {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.31
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
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "makea-cli"
7
- version = "0.2.31"
7
+ version = "0.2.32"
8
8
  description = "Makea admin CLI (browser login + Makea admin HTTP API)"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -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
  },
@@ -119,7 +119,7 @@ wheels = [
119
119
 
120
120
  [[package]]
121
121
  name = "makea-cli"
122
- version = "0.2.29"
122
+ version = "0.2.32"
123
123
  source = { editable = "." }
124
124
  dependencies = [
125
125
  { name = "click" },
@@ -1 +0,0 @@
1
- __version__ = "0.2.31"
File without changes
File without changes