feat: initialize resume agent with OfferPai sync

This commit is contained in:
Codex
2026-08-05 20:20:18 +08:00
commit 61ec750031
197 changed files with 33291 additions and 0 deletions
@@ -0,0 +1,79 @@
"""Focused Builder conversation policy for lightweight resume completion.
Builder collects confirmed resume facts only. It never calls the deep-optimization
graph, job rubrics, Office data, or JD analysis. Candidate rewrites remain optional
until the user explicitly chooses one in the confirmation card.
This package was split from the original single module to keep every code file
within the 200-line harness limit. The public surface is re-exported here so
existing `from . import builder_conversation` / `from app.builder_conversation
import ...` consumers keep working unchanged.
"""
from __future__ import annotations
from .candidate import (
_candidate_rewrite,
_fact_is_preserved,
_material_fact_fragments,
_normalize_material_fact,
_uncovered_material_facts,
)
from .component_events import process_component_event
from .constants import (
GAP_PROMPTS,
IDENTITY_CHANGE_TERMS,
MAX_GAP_DIMENSIONS,
MAX_GAPS_PER_TURN,
NO_INFORMATION_PATTERNS,
SECTION_GAP_DIMENSIONS,
SECTION_HEADINGS,
SECTION_KEYWORDS,
SECTION_PRIORITY,
u,
)
from .flow import _begin_edit, _process_detail_message, process_message
from .followups import (
_continue_recent_entry,
_redisplay_revision_candidate,
reconcile_last_confirmed_entry,
)
from .predicates import (
_dimension_present,
_entry_by_id,
_gap_prompt,
_is_no_information_reply,
_is_revision_instruction,
_looks_like_recent_continuation,
_matching_entries,
_next_gap_dimensions,
_requested_section,
_requests_identity_change,
_requests_new_entry,
)
from .save import save_entry
from .skills import _builder_skill_candidates, _process_skill_selection, _skill_choice_card
from .state import (
_clear_draft,
_completed_sections,
_dedupe_strings,
_gap_state,
_highlights,
_merge_fact_text,
_public_entry,
_reset_gap_state,
_set_stream_phases,
ensure_builder_state,
)
from .turns import (
_entry_choice_card,
_entry_label,
_fact_prompt,
_next_step_turn,
_record_card,
_section_choice_card,
recommended_section,
welcome_turn,
)
__all__ = [name for name in dir() if not name.startswith("__")]