From afc1548bca8c0c733ca5f6614227d4982789098c Mon Sep 17 00:00:00 2001 From: Chaim Date: Sat, 6 Jun 2026 20:44:41 +0000 Subject: [PATCH] chore(style-acq T11): regen API types (learning + methodology endpoints) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit npm run api:types — מסנכרן types.ts המחולל עם ה-endpoints החדשים (/api/learning/pairs, style-distance, promote). הקוד משתמש בטיפוסים ידניים (learning.ts) אז זה היגיינה לעתיד, לא תלות. סוגר את T11. Co-Authored-By: Claude Opus 4.8 (1M context) --- web-ui/src/lib/api/types.ts | 361 +++++++++++++++++++++++++++++++++++- 1 file changed, 359 insertions(+), 2 deletions(-) diff --git a/web-ui/src/lib/api/types.ts b/web-ui/src/lib/api/types.ts index b9a8cba..37c2ddc 100644 --- a/web-ui/src/lib/api/types.ts +++ b/web-ui/src/lib/api/types.ts @@ -1113,6 +1113,52 @@ export interface paths { patch?: never; trace?: never; }; + "/api/cases/{case_number}/decision-blocks": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Api Get Decision Blocks + * @description Return all 12 decision blocks as JSON (empty blocks included). + * + * Read path for the interactive block viewer — content lives in + * decision_blocks but was previously only reachable via DOCX export. + */ + get: operations["api_get_decision_blocks_api_cases__case_number__decision_blocks_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/cases/{case_number}/decision-blocks/{block_id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + /** + * Api Update Decision Block + * @description Save inline-edited content for a single decision block. + * + * Writes to decision_blocks (upsert, status='draft') and rebuilds the + * on-disk decision.md. Creates a decision row if none exists yet. + */ + put: operations["api_update_decision_block_api_cases__case_number__decision_blocks__block_id__put"]; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/api/cases/{case_number}/learn": { parameters: { query?: never; @@ -1959,6 +2005,88 @@ export interface paths { patch?: never; trace?: never; }; + "/api/learning/pairs": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Api Learning Pairs + * @description פנקס-ההתאמה (INV-LRN4) — כל ההחלטות וסטטוס ההשוואה מול הסופי. + * status אופציונלי: final_received / analyzed / lessons_folded. + */ + get: operations["api_learning_pairs_api_learning_pairs_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/learning/style-distance/{case_number}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Api Learning Style Distance + * @description מדד מרחק-סגנון (T7) לתיק — האם הטיוטה מתכנסת לדפנה. + */ + get: operations["api_learning_style_distance_api_learning_style_distance__case_number__get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/learning/pairs/{pair_id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Api Learning Pair Detail + * @description פירוט שורת-פנקס כולל הצעת-הדיסטילציה (analysis) לאישור יו"ר (T14). + */ + get: operations["api_learning_pair_detail_api_learning_pairs__pair_id__get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/learning/pairs/{pair_id}/promote": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Api Learning Promote + * @description שער-יו"ר (INV-G10/LRN1): מאשר לקחי-סגנון + ביטויי-מעבר מהצעת-הדיסטילציה + * ומטמיע אותם בערוצים שהכותב צורך (methodology overrides → T15). מקדם status. + */ + post: operations["api_learning_promote_api_learning_pairs__pair_id__promote_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/api/admin/skills": { parameters: { query?: never; @@ -2254,7 +2382,14 @@ export interface paths { head?: never; /** * Api Resolve Feedback - * @description Mark feedback as resolved. + * @description Mark feedback as resolved. When ``fold`` is true (default) and the entry + * has an extracted lesson, also wake the CEO to fold that lesson into the + * right knowledge file (the feedback→agent-knowledge loop). + * + * The fold is fire-and-forget (BackgroundTask) and best-effort — resolving + * never fails because Paperclip is down. Pass ``fold=false`` for pure + * bookkeeping resolves (e.g. from the per-case drafts panel) to avoid + * spawning a CEO run per click. */ patch: operations["api_resolve_feedback_api_feedback__feedback_id__resolve_patch"]; trace?: never; @@ -2566,7 +2701,13 @@ export interface paths { path?: never; cookie?: never; }; - /** Halachot List */ + /** + * Halachot List + * @description List halachot. ``exclude_low_quality`` hides flagged items (#84.1) and + * ``order_by_priority`` switches to the active-learning order (#84.3). Both + * default off so existing callers are unaffected; the review-queue view opts + * in. + */ get: operations["halachot_list_api_halachot_get"]; put?: never; post?: never; @@ -2746,6 +2887,11 @@ export interface components { /** Issue Id */ issue_id?: string | null; }; + /** BlockUpdateRequest */ + BlockUpdateRequest: { + /** Content */ + content: string; + }; /** Body_api_create_feedback_api_feedback_post */ Body_api_create_feedback_api_feedback_post: { /** @@ -3475,6 +3621,19 @@ export interface components { /** Citation Formatted */ citation_formatted?: string | null; }; + /** PromoteLearningRequest */ + PromoteLearningRequest: { + /** + * Lessons + * @default [] + */ + lessons: string[]; + /** + * Phrases + * @default [] + */ + phrases: string[]; + }; /** ReviseRequest */ ReviseRequest: { /** Revisions */ @@ -5263,6 +5422,73 @@ export interface operations { }; }; }; + api_get_decision_blocks_api_cases__case_number__decision_blocks_get: { + parameters: { + query?: never; + header?: never; + path: { + case_number: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + api_update_decision_block_api_cases__case_number__decision_blocks__block_id__put: { + parameters: { + query?: never; + header?: never; + path: { + case_number: string; + block_id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BlockUpdateRequest"]; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; api_learn_api_cases__case_number__learn_post: { parameters: { query?: never; @@ -6575,6 +6801,135 @@ export interface operations { }; }; }; + api_learning_pairs_api_learning_pairs_get: { + parameters: { + query?: { + status?: string; + limit?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + api_learning_style_distance_api_learning_style_distance__case_number__get: { + parameters: { + query?: never; + header?: never; + path: { + case_number: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + api_learning_pair_detail_api_learning_pairs__pair_id__get: { + parameters: { + query?: never; + header?: never; + path: { + pair_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + api_learning_promote_api_learning_pairs__pair_id__promote_post: { + parameters: { + query?: never; + header?: never; + path: { + pair_id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PromoteLearningRequest"]; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; api_list_skills_api_admin_skills_get: { parameters: { query?: never; @@ -7580,6 +7935,8 @@ export interface operations { practice_area?: string; limit?: number; offset?: number; + exclude_low_quality?: boolean; + order_by_priority?: boolean; }; header?: never; path?: never; -- 2.49.1