Refactor Nexus One AI product structure and roadmap
- Add Workstation as an additive standalone category, kept out of TIER_ORDER so it never enters the Server S/M/L/Max upgrade ladder - Add Server S/M/L/Max commercial labels for existing starter/basic/pro/max tiers (slugs, license format, and APIs unchanged) - Rename portal UI terminology: Connectors -> MCP & Enterprise Connectors, Audit Log -> Governance & Audit, Model Manager -> Model Catalog, Agent Builder -> Agent Studio, Workflow Automation -> Workflow Designer, Multimodal Chat -> AI Workspace - Fix branding.js workflow.html tier-gating bug and entry.yml missing tier var - Document 7-capability platform roadmap and Workstation/Server structure in README.md and docs/README.md - Ignore __pycache__/*.pyc build artifacts
This commit is contained in:
1 parent
e5b2496b97
commit
12d9ea84f6
58 files changed
+587
-366
No files matched your search
@@ -19,10 +19,46 @@ TIER_ALIASES = {
|
||||
"basic tier": "basic",
|
||||
"pro tier": "pro",
|
||||
"max tier": "max",
|
||||
# Server S/M/L/Max commercial labels — synonyms for the same four Server
|
||||
# tiers/ranks above (starter/basic/pro/max). Additive only; TIER_ORDER and
|
||||
# rank comparisons are unchanged.
|
||||
"server s": "starter",
|
||||
"server s tier": "starter",
|
||||
"server m": "basic",
|
||||
"server m tier": "basic",
|
||||
"server l": "pro",
|
||||
"server l tier": "pro",
|
||||
"server max": "max",
|
||||
"server max tier": "max",
|
||||
}
|
||||
STAGING_MAX_TIER = "basic"
|
||||
SUPPORTED_SIGNATURE_ALGS = {"rsa-sha256", "sha256-rsa"}
|
||||
|
||||
# ── Product category: Workstation (standalone, NOT part of the Server ladder) ──
|
||||
# Nexus One AI Workstation is a personal AI appliance (1-3 active users, 5 max),
|
||||
# distinct from the Server S/M/L/Max ladder above (TIER_ORDER). It is additive:
|
||||
# it does not appear in TIER_ORDER and must never be passed through tier_rank(),
|
||||
# tier_lte(), min_tier(), evaluate_license()/build_tier_options() ladder logic —
|
||||
# those functions and STAGING_MAX_TIER/TIER_ALIASES above are unchanged and only
|
||||
# ever resolve to one of TIER_ORDER's four Server tiers. Workstation entitlement
|
||||
# is looked up independently via TIER_MATRIX["workstation"] in main.py.
|
||||
WORKSTATION_TIER = "workstation"
|
||||
CATEGORY_SERVER = "server"
|
||||
CATEGORY_WORKSTATION = "workstation"
|
||||
WORKSTATION_ALIASES = {"workstation tier", "personal", "personal ai", "nexus one ai workstation"}
|
||||
|
||||
|
||||
def is_workstation_tier(value):
|
||||
"""True if `value` refers to the Workstation category (never a Server tier)."""
|
||||
return (value or "").strip().lower() in ({WORKSTATION_TIER} | WORKSTATION_ALIASES)
|
||||
|
||||
|
||||
def tier_category(value):
|
||||
"""Return CATEGORY_WORKSTATION or CATEGORY_SERVER for a tier/category string.
|
||||
Server tiers (starter/basic/pro/max — displayed as Server S/M/L/Max) rank via
|
||||
TIER_ORDER; Workstation has no rank and is resolved independently."""
|
||||
return CATEGORY_WORKSTATION if is_workstation_tier(value) else CATEGORY_SERVER
|
||||
|
||||
|
||||
def utcnow_iso():
|
||||
return datetime.now(timezone.utc).replace(microsecond=0).isoformat().replace("+00:00", "Z")
|
||||
|
||||
Reference in new issue
Block a user