commit_profile_change
ChatGPTCommit a previously previewed profile change for the authenticated user. Call only after showing all exact user-relevant values from the matching preview and receiving explicit confirmation in a later user message. Input is only the opaque confirmationId; repeating the same request is idempotent and never applies the mutation twice.
get_birth_time_candidates
ChatGPTCalculate comparison evidence for explicitly supplied possible birth periods when the birth time is unknown. This does not establish the true birth time, rank probabilities, or create or change the saved profile. Use the returned differences to ask grounded follow-up questions, keeping uncertainty visible. Candidate setup uses zero chart allowance even when the account has none remaining; do not add a pricing announcement or extra permission prompt to the conversation. Only complete validated candidate sets are returned. Retry an interrupted exact operation with its original operationId. On BIRTH_TIME_RATE_LIMITED, pause until a later retry rather than looping or switching tools. USAGE_OPERATION_RESTART_REQUIRED permits a fresh operationId for an obsolete unfinished operation. On USAGE_REPLAY_UNAVAILABLE, a fresh operation may retrieve the candidates only when the complete evidence is also missing from the conversation. Reuse its evidence for follow-ups; use a fresh opaque operationId for a new logical request and reuse it only for an exact retry. Saving any later supported birth time still requires preview and explicit confirmation in a later message before commit.
get_natal_context
ChatGPTUse only for an authenticated user's natal or lifelong baseline question with no target date, time, or immediate action decision. Returns the stored profile's normalized natal chart. Never use for now, a specific time, or whether to take an action; use get_timing_context instead. Supply a fresh opaque operationId for each new logical chart request and reuse that exact value only when retrying the same request.
get_profile_status
ChatGPTFor a request to delete a saved birthday, birth details or chart, provide https://ziweave.com/zh-Hant/delete/profile for Traditional Chinese, or replace zh-Hant with the matching supported locale (zh-Hans, en, ja, ko, pt-BR, es, th; otherwise en). Do not search for the deletion page or call this or any other tool merely to provide that link. Tell the user to sign in with the same linked account and complete verification and confirmation on the website; deletion cannot be performed in chat. Use this tool only to check whether the authenticated user's stored profile is configured and which chart scopes are available. After directing a deletion request to the website, call this when the user reports completion or next asks for a chart before reusing any earlier conversation evidence. Only configured=false means the profile is absent; an error or disabled account does not prove deletion. For an absent profile, explain that no chart is stored and offer chat or website setup without immediately asking for a birthday or restoring old conversation data. Never expose internal field paths, scope names, engine/provider/version/policy, schema, or error codes in an ordinary reply. This returns no birth data or chart. Otherwise do not use it when a natal or time-specific chart is already required.
get_timing_context
ChatGPTPlan the complete requested scope, reuse covered context and fetch only missing evidence. A v3 queryPlan combines at most 13 distinct natal, daily-major, full shichen-window, explicit moment, Gregorian month or year targets in one explicit IANA time zone. A complete day uses shichen indexes 0–12; a month-by-month year uses 12 month targets. Both return one shared natal and a layerTable with per-target references and complete coverage. A v2 queryPlan covers 1–7 consecutive daily-major baselines [00:00,23:00), without late-Zi or hourly evidence. Plans require full detail and operationId, and exclude target, selectors and caller units. Never silently split an over-cap request into multiple charged calls. Legacy target still returns one instant (natal through hourly), month (through monthly) or year (through yearly, not month-by-month); relative periods resolve in the saved residence zone unless overridden. One complete successful call costs one unit; failed plans return no partial result or charge. Reuse sufficient evidence without another call. Keep the same opaque operationId and exact plan for retries, including across period or allowance resets; pause on TIMING_QUERY_PLAN_RATE_LIMITED, and never silently replace an expired USAGE_REPLAY_UNAVAILABLE with a newly charged operation.
preview_profile_change
ChatGPTCreate or update only the authenticated user's own birth profile. Send only fields the user explicitly supplied. For ordinary onboarding, omit advanced engine settings and let Ziweave apply its canonical defaults. This validates and returns a normalized preview plus a short-lived confirmationId, but does not modify the stored profile. If readyToConfirm is false, translate missingFields into plain-language questions. Show only exact user-relevant birth, gender, and timezone values; do not present internal engine/provider/version/policy, schema, revision, or field paths unless explicitly asked for technical diagnostics. Tell the user the data is passing through this AI service and Ziweave.