diff --git a/SDK_EXAMPLES.md b/SDK_EXAMPLES.md index db4f815..d75d46d 100644 --- a/SDK_EXAMPLES.md +++ b/SDK_EXAMPLES.md @@ -677,187 +677,6 @@ client = RoeClient() result = client.discovery.list_agent_engine_types() ``` -### Knowledge Base - -#### `knowledge_base_list` - -List all KBs for the org, or start a new draft. - -```python -from roe import RoeClient - -client = RoeClient() - -result = client.knowledge_base.list( - page=1, # optional - page_size=10, # optional -) -``` - -#### `knowledge_base_create` - -List all KBs for the org, or start a new draft. - -```python -from roe import RoeClient - -client = RoeClient() - -result = client.knowledge_base.create( - company="company", - brief="brief", -) -``` - -#### `knowledge_base_catalog_retrieve` - -Names-only typology+tactic catalog. - -```python -from roe import RoeClient - -client = RoeClient() - -result = client.knowledge_base.catalog() -``` - -#### `knowledge_base_import_lens_create` - -Import a finalized Atlas lens into roe-main by its atlas_lens_id. - -```python -from roe import RoeClient - -client = RoeClient() - -result = client.knowledge_base.import_lens("atlas_lens_id") -``` - -#### `knowledge_base_lens_retrieve` - -Fetch a lens directly from Atlas by its atlas_lens_id and return the -names-only projection. - -```python -from roe import RoeClient - -client = RoeClient() - -result = client.knowledge_base.lens_by_atlas_id("atlas_lens_id") -``` - -#### `knowledge_base_destroy` - -Get or delete a single KB. - -```python -from roe import RoeClient - -client = RoeClient() - -client.knowledge_base.delete("knowledge_base_id") -``` - -#### `knowledge_base_retrieve` - -Get or delete a single KB. - -```python -from roe import RoeClient - -client = RoeClient() - -result = client.knowledge_base.retrieve("knowledge_base_id") -``` - -#### `knowledge_base_draft_retrieve` - -Poll the atlas draft. - -```python -from roe import RoeClient - -client = RoeClient() - -result = client.knowledge_base.poll_draft("knowledge_base_id") -``` - -#### `knowledge_base_finalize_create` - -Commit the agreed selection into a lens and mark the KB active. - -```python -from roe import RoeClient - -client = RoeClient() - -result = client.knowledge_base.finalize("knowledge_base_id") -``` - -#### `knowledge_base_regenerate_create` - -Kick off another async generation round with feedback. - -```python -from roe import RoeClient - -client = RoeClient() - -result = client.knowledge_base.regenerate("knowledge_base_id") -``` - -#### `knowledge_base_resolve_create` - -Approve or decline a pending regeneration proposal. - -```python -from roe import RoeClient - -client = RoeClient() - -result = client.knowledge_base.resolve("knowledge_base_id") -``` - -#### `knowledge_base_selection_partial_update` - -Persist hand-edits to the working selection (typology + tactic opt-in/out). - -```python -from roe import RoeClient - -client = RoeClient() - -result = client.knowledge_base.patch_selection( - "knowledge_base_id", - refs=[], -) -``` - -#### `knowledge_base_sync_create` - -Standalone best-effort lens sync (display mode). - -```python -from roe import RoeClient - -client = RoeClient() - -result = client.knowledge_base.sync("knowledge_base_id") -``` - -#### `knowledge_base_unlink_destroy` - -Unlink a knowledge base: remove the local KnowledgeBase row only, leaving -the Atlas lens (and any in-progress draft) untouched. - -```python -from roe import RoeClient - -client = RoeClient() - -client.knowledge_base.unlink("knowledge_base_id") -``` - ### Policies #### `policies_list` diff --git a/openapi/openapi.yml b/openapi/openapi.yml index 90813ff..878e353 100644 --- a/openapi/openapi.yml +++ b/openapi/openapi.yml @@ -2912,494 +2912,6 @@ paths: detail: 'Unknown connector: foo. Available: slack, gmail' summary: Not found description: Connector type not found - /v1/knowledge-base/: - get: - operationId: knowledge_base_list - description: List all KBs for the org, or start a new draft. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: organization_id - in: query - required: false - schema: - type: string - format: uuid - description: Organization ID. This is required for access control. It can - be provided via query or request body depending on the endpoint. - tags: - - knowledge-base - - sdk - security: - - apiKeyAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedKnowledgeBaseList' - description: '' - post: - operationId: knowledge_base_create - description: List all KBs for the org, or start a new draft. - tags: - - knowledge-base - - sdk - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateKnowledgeBaseRequest' - required: true - security: - - apiKeyAuth: [] - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/CreateKnowledgeBase' - description: '' - parameters: - - name: organization_id - in: query - required: false - schema: - type: string - format: uuid - description: Organization ID. This is required for access control. It can - be provided via query or request body depending on the endpoint. - /v1/knowledge-base/{id}/: - get: - operationId: knowledge_base_retrieve - description: Get or delete a single KB. GET triggers a best-effort display sync. - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - - name: organization_id - in: query - required: false - schema: - type: string - format: uuid - description: Organization ID. This is required for access control. It can - be provided via query or request body depending on the endpoint. - tags: - - knowledge-base - - sdk - security: - - apiKeyAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/KnowledgeBase' - description: '' - delete: - operationId: knowledge_base_destroy - description: Get or delete a single KB. GET triggers a best-effort display sync. - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - - name: organization_id - in: query - required: false - schema: - type: string - format: uuid - description: Organization ID. This is required for access control. It can - be provided via query or request body depending on the endpoint. - tags: - - knowledge-base - - sdk - security: - - apiKeyAuth: [] - responses: - '204': - description: Deleted. - /v1/knowledge-base/{id}/draft/: - get: - operationId: knowledge_base_draft_retrieve - description: |- - Poll the atlas draft. Returns the projected draft status + refs. - Use until draft_status == 'ready' (or 'error'). - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - - name: organization_id - in: query - required: false - schema: - type: string - format: uuid - description: Organization ID. This is required for access control. It can - be provided via query or request body depending on the endpoint. - tags: - - knowledge-base - - sdk - security: - - apiKeyAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Draft' - description: '' - /v1/knowledge-base/{id}/finalize/: - post: - operationId: knowledge_base_finalize_create - description: |- - Commit the agreed selection into a lens and mark the KB active. - Operation sync: strict — propagate atlas errors; reconcile in finally. - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - - name: organization_id - in: query - required: false - schema: - type: string - format: uuid - description: Organization ID. This is required for access control. It can - be provided via query or request body depending on the endpoint. - tags: - - knowledge-base - - sdk - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/FinalizeRequest' - security: - - apiKeyAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/KnowledgeBase' - description: '' - /v1/knowledge-base/{id}/regenerate/: - post: - operationId: knowledge_base_regenerate_create - description: |- - Kick off another async generation round with feedback. - Operation sync: propagate atlas errors; finally reconcile. - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - - name: organization_id - in: query - required: false - schema: - type: string - format: uuid - description: Organization ID. This is required for access control. It can - be provided via query or request body depending on the endpoint. - tags: - - knowledge-base - - sdk - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RegenerateRequest' - security: - - apiKeyAuth: [] - responses: - '202': - content: - application/json: - schema: - $ref: '#/components/schemas/Draft' - description: '' - /v1/knowledge-base/{id}/resolve/: - post: - operationId: knowledge_base_resolve_create - description: |- - Approve or decline a pending regeneration proposal. - - A regeneration round lands as draft.pendingProposal WITHOUT changing the - agreed selection. The reviewer resolves it here: - - apply: { refs, suggested_name?, accept_summary? } — refs is the - resolved selection (per-item accept/reject computed client-side). - - decline: { discard: true } — keep the prior selection untouched. - - finalize is blocked by atlas (409) until this is called. - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - - name: organization_id - in: query - required: false - schema: - type: string - format: uuid - description: Organization ID. This is required for access control. It can - be provided via query or request body depending on the endpoint. - tags: - - knowledge-base - - sdk - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ResolveRequest' - security: - - apiKeyAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Draft' - description: '' - /v1/knowledge-base/{id}/selection/: - patch: - operationId: knowledge_base_selection_partial_update - description: |- - Persist hand-edits to the working selection (typology + tactic opt-in/out). - Operation sync: if atlas rejects, the error propagates; reconciling sync - runs in finally. - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - - name: organization_id - in: query - required: false - schema: - type: string - format: uuid - description: Organization ID. This is required for access control. It can - be provided via query or request body depending on the endpoint. - tags: - - knowledge-base - - sdk - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PatchedPatchSelectionRequest' - security: - - apiKeyAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Draft' - description: '' - /v1/knowledge-base/{id}/sync/: - post: - operationId: knowledge_base_sync_create - description: |- - Standalone best-effort lens sync (display mode). - POST /knowledge-base//sync/ - Always returns 200; sync_error describes any failure. - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - - name: organization_id - in: query - required: false - schema: - type: string - format: uuid - description: Organization ID. This is required for access control. It can - be provided via query or request body depending on the endpoint. - tags: - - knowledge-base - - sdk - security: - - apiKeyAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/KnowledgeBase' - description: '' - /v1/knowledge-base/{id}/unlink/: - delete: - operationId: knowledge_base_unlink_destroy - description: |- - Unlink a knowledge base: remove the local KnowledgeBase row only, leaving - the Atlas lens (and any in-progress draft) untouched. - - This is the non-destructive counterpart to DELETE //. Use it to stop - tracking a lens in this org without deleting it from Atlas — e.g. the lens - is shared, or you intend to re-import it later via import-lens. Unlike - DELETE //, this never calls atlas.delete_draft / atlas.delete_lens. - - DELETE /knowledge-base//unlink/ - parameters: - - in: path - name: id - schema: - type: string - format: uuid - required: true - - name: organization_id - in: query - required: false - schema: - type: string - format: uuid - description: Organization ID. This is required for access control. It can - be provided via query or request body depending on the endpoint. - tags: - - knowledge-base - - sdk - security: - - apiKeyAuth: [] - responses: - '204': - description: 'Unlinked: local row removed; Atlas lens preserved.' - /v1/knowledge-base/catalog/: - get: - operationId: knowledge_base_catalog_retrieve - description: Names-only typology+tactic catalog. Powers typology/tactic opt-in - UI. - tags: - - knowledge-base - - sdk - security: - - apiKeyAuth: [] - responses: - '200': - description: List of typologies with tactic names. - parameters: - - name: organization_id - in: query - required: false - schema: - type: string - format: uuid - description: Organization ID. This is required for access control. It can - be provided via query or request body depending on the endpoint. - /v1/knowledge-base/import-lens/: - post: - operationId: knowledge_base_import_lens_create - description: |- - Import a finalized Atlas lens into roe-main by its atlas_lens_id. - Creates a KnowledgeBase row in active state with the lens snapshot — - no draft involved. - - POST /knowledge-base/import-lens/ body: { atlas_lens_id } - - Idempotent: if a row for this org already points to the same - atlas_lens_id the existing record is synced and returned (200). - tags: - - knowledge-base - - sdk - requestBody: - content: - application/json: - schema: - type: object - additionalProperties: {} - security: - - apiKeyAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/KnowledgeBase' - description: '' - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/KnowledgeBase' - description: '' - parameters: - - name: organization_id - in: query - required: false - schema: - type: string - format: uuid - description: Organization ID. This is required for access control. It can - be provided via query or request body depending on the endpoint. - /v1/knowledge-base/lens/{atlas_lens_id}/: - get: - operationId: knowledge_base_lens_retrieve - description: |- - Fetch a lens directly from Atlas by its atlas_lens_id and return the - names-only projection. Does NOT require a KnowledgeBase row to exist. - - If a KnowledgeBase row for this org already points to the given - atlas_lens_id, it is also synced (best-effort) and returned under - the "knowledge_base" key. - - GET /knowledge-base/lens// - parameters: - - in: path - name: atlas_lens_id - schema: - type: string - required: true - - name: organization_id - in: query - required: false - schema: - type: string - format: uuid - description: Organization ID. This is required for access control. It can - be provided via query or request body depending on the endpoint. - tags: - - knowledge-base - - sdk - security: - - apiKeyAuth: [] - responses: - '200': - description: Lens projection and optional local KB record. /v1/policies/: get: operationId: policies_list @@ -4431,11 +3943,8 @@ components: required: - agent_id - agent_version_id - - cost - id - - input_tokens - inputs - - output_tokens - result - status AgentJobResultManyRequest: @@ -4484,9 +3993,7 @@ components: required: - agent_id - agent_version_id - - input_tokens - inputs - - output_tokens - outputs AgentJobSingleStatus: type: object @@ -5172,51 +4679,6 @@ components: - config - connector_type - name - CreateKnowledgeBase: - type: object - description: Body for POST /knowledge-base/ — starts a new draft. - properties: - company: - type: string - maxLength: 255 - name: - type: string - maxLength: 255 - product_name: - type: string - maxLength: 255 - website_url: - type: string - format: uri - brief: - type: string - minLength: 10 - required: - - brief - - company - CreateKnowledgeBaseRequest: - type: object - description: Body for POST /knowledge-base/ — starts a new draft. - properties: - company: - type: string - minLength: 1 - maxLength: 255 - name: - type: string - maxLength: 255 - product_name: - type: string - maxLength: 255 - website_url: - type: string - format: uri - brief: - type: string - minLength: 10 - required: - - brief - - company CreatePolicy: type: object description: Serializer for creating a new policy with initial version @@ -5330,92 +4792,6 @@ components: - base_agent_id - version_id - version_name - Draft: - type: object - description: Projected atlas draft returned from poll/regenerate/resolve endpoints. - properties: - id: - type: string - status: - $ref: '#/components/schemas/DraftStatusEnum' - error: - type: - - string - - 'null' - company: - type: string - productName: - type: - - string - - 'null' - suggestedName: - type: string - productSummary: - type: string - iterationCount: - type: integer - refs: - type: array - items: - $ref: '#/components/schemas/DraftRef' - pendingProposal: - oneOf: - - $ref: '#/components/schemas/PendingProposal' - - type: 'null' - createdAt: - type: - - string - - 'null' - updatedAt: - type: - - string - - 'null' - required: - - company - - id - - iterationCount - - productSummary - - refs - - status - - suggestedName - DraftRef: - type: object - description: A single ref in a selection (names-only projection from atlas). - properties: - typologyId: - type: string - typologyName: - type: string - relevance: - allOf: - - $ref: '#/components/schemas/RelevanceEnum' - default: watch - rationale: - type: string - tacticIds: - type: - - array - - 'null' - items: - type: string - tacticNames: - type: - - array - - 'null' - items: - type: string - required: - - typologyId - DraftStatusEnum: - enum: - - generating - - ready - - error - type: string - description: |- - * `generating` - generating - * `ready` - ready - * `error` - error DuplicateConnectionExisting: type: object description: Identifying summary of the existing connection that triggered a @@ -5450,18 +4826,6 @@ components: description: Human-readable error detail required: - detail - FinalizeRequest: - type: object - description: Body for POST /knowledge-base//finalize/. - properties: - name: - type: string - mcp_enabled: - type: boolean - default: true - public: - type: boolean - default: true JobInput: type: object description: Serializer for individual job input data @@ -5486,88 +4850,6 @@ components: - description - key - value - KnowledgeBase: - type: object - properties: - id: - type: string - format: uuid - readOnly: true - organization_id: - type: string - format: uuid - readOnly: true - name: - type: string - maxLength: 255 - company: - type: string - maxLength: 255 - status: - allOf: - - $ref: '#/components/schemas/KnowledgeBaseStatusEnum' - readOnly: true - atlas_draft_id: - type: - - string - - 'null' - readOnly: true - atlas_lens_id: - type: - - string - - 'null' - readOnly: true - mcp_url: - type: string - readOnly: true - lens_snapshot: - oneOf: - - {} - - type: 'null' - readOnly: true - last_synced_at: - type: - - string - - 'null' - format: date-time - readOnly: true - sync_error: - type: - - string - - 'null' - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - updated_at: - type: string - format: date-time - readOnly: true - required: - - atlas_draft_id - - atlas_lens_id - - company - - created_at - - id - - last_synced_at - - lens_snapshot - - mcp_url - - name - - organization_id - - status - - sync_error - - updated_at - KnowledgeBaseStatusEnum: - enum: - - drafting - - active - - orphaned - type: string - description: |- - * `drafting` - Drafting - * `active` - Active - * `orphaned` - Orphaned ListAgentJob: type: object properties: @@ -5700,29 +4982,6 @@ components: type: array items: $ref: '#/components/schemas/ConnectionList' - PaginatedKnowledgeBaseList: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/KnowledgeBase' PaginatedListAgentJobList: type: object required: @@ -5817,17 +5076,6 @@ components: cache_failed_jobs: type: boolean description: Whether to cache failed jobs for this agent. - PatchedPatchSelectionRequest: - type: object - description: Body for PATCH /knowledge-base//selection/. - properties: - refs: - type: array - items: - type: object - additionalProperties: {} - suggested_name: - type: string PatchedUpdateConnectionRequest: type: object description: |- @@ -5872,33 +5120,6 @@ components: maxLength: 255 description: type: string - PendingProposal: - type: object - description: A staged regeneration awaiting reviewer approval (names-only). - properties: - refs: - type: array - items: - $ref: '#/components/schemas/DraftRef' - baseSelection: - type: array - items: - $ref: '#/components/schemas/DraftRef' - feedback: - type: - - string - - 'null' - suggestedName: - type: string - productSummary: - type: string - createdAt: - type: - - string - - 'null' - required: - - baseSelection - - refs Policy: type: object description: Policy serializer @@ -6115,22 +5336,6 @@ components: required: - detail - failed_collections - RegenerateRequest: - type: object - description: Body for POST /knowledge-base//regenerate/. - properties: - feedback: - type: string - RelevanceEnum: - enum: - - core - - watch - - edge - type: string - description: |- - * `core` - core - * `watch` - watch - * `edge` - edge ResendAgentJobWebhookRequest: type: object description: Serializer for re-sending a job's completion webhook. @@ -6142,28 +5347,6 @@ components: format: uuid description: Send to only this webhook. Omit to send to every active webhook on the agent. - ResolveRequest: - type: object - description: |- - Body for POST /knowledge-base//resolve/. - - discard=True declines the pending proposal. Otherwise refs is the reviewer's - resolved selection (opaque-handle dicts) and suggested_name / accept_summary - optionally adopt the proposal's name / summary. - properties: - refs: - type: array - items: - type: object - additionalProperties: {} - suggested_name: - type: string - accept_summary: - type: boolean - default: false - discard: - type: boolean - default: false ReviewStatusEnum: enum: - pending diff --git a/openapi/wrappers.yml b/openapi/wrappers.yml index 07a1e80..4ab6b04 100644 --- a/openapi/wrappers.yml +++ b/openapi/wrappers.yml @@ -649,80 +649,6 @@ apis: docstring: Download a binary reference produced by an agent job. method: GET path: /v1/agents/jobs/{agent_job_id}/references/{resource_id}/ - knowledge_base: - class_name: KnowledgeBaseAPI - docstring: API for managing Knowledge Base lenses and drafts. - operations: - - kind: manual - method_name: list - docstring: List all knowledge bases for the organisation. - method: GET - path: /v1/knowledge-base/ - - kind: manual - method_name: create - docstring: Create a new knowledge base draft (async generation). - method: POST - path: /v1/knowledge-base/ - - kind: manual - method_name: retrieve - docstring: Retrieve a single knowledge base record. - method: GET - path: /v1/knowledge-base/{id}/ - - kind: manual - method_name: delete - docstring: Delete a knowledge base and its associated Atlas draft or lens. - method: DELETE - path: /v1/knowledge-base/{id}/ - - kind: manual - method_name: poll_draft - docstring: Poll the Atlas draft status until ready or error. - method: GET - path: /v1/knowledge-base/{id}/draft/ - - kind: manual - method_name: patch_selection - docstring: Patch the draft's typology/tactic selection. - method: PATCH - path: /v1/knowledge-base/{id}/selection/ - - kind: manual - method_name: regenerate - docstring: Kick off an async regeneration round with optional feedback. - method: POST - path: /v1/knowledge-base/{id}/regenerate/ - - kind: manual - method_name: resolve - docstring: Approve or decline a pending regeneration proposal. - method: POST - path: /v1/knowledge-base/{id}/resolve/ - - kind: manual - method_name: finalize - docstring: Commit the draft into a permanent Atlas lens. - method: POST - path: /v1/knowledge-base/{id}/finalize/ - - kind: manual - method_name: sync - docstring: Sync the lens snapshot from Atlas (best-effort). - method: POST - path: /v1/knowledge-base/{id}/sync/ - - kind: manual - method_name: unlink - docstring: Unlink a knowledge base locally, preserving the Atlas lens. - method: DELETE - path: /v1/knowledge-base/{id}/unlink/ - - kind: manual - method_name: catalog - docstring: Fetch the names-only typology and tactic catalog. - method: GET - path: /v1/knowledge-base/catalog/ - - kind: manual - method_name: lens_by_atlas_id - docstring: Fetch and optionally sync a lens by its Atlas ID. - method: GET - path: /v1/knowledge-base/lens/{atlas_lens_id}/ - - kind: manual - method_name: import_lens - docstring: Import a finalized Atlas lens into roe-main by its atlas_lens_id. - method: POST - path: /v1/knowledge-base/import-lens/ connections: class_name: ConnectionsAPI docstring: API for managing external data connections. diff --git a/src/roe/_generated/api/knowledge_base/__init__.py b/src/roe/_generated/api/knowledge_base/__init__.py deleted file mode 100644 index c9921b5..0000000 --- a/src/roe/_generated/api/knowledge_base/__init__.py +++ /dev/null @@ -1 +0,0 @@ -""" Contains endpoint functions for accessing the API """ diff --git a/src/roe/_generated/api/knowledge_base/knowledge_base_catalog_retrieve.py b/src/roe/_generated/api/knowledge_base/knowledge_base_catalog_retrieve.py deleted file mode 100644 index 2289010..0000000 --- a/src/roe/_generated/api/knowledge_base/knowledge_base_catalog_retrieve.py +++ /dev/null @@ -1,128 +0,0 @@ -from http import HTTPStatus -from typing import Any, cast -from urllib.parse import quote - -import httpx - -from ...client import AuthenticatedClient, Client -from ...types import Response, UNSET -from ... import errors - -from ...types import UNSET, Unset -from uuid import UUID - - - -def _get_kwargs( - *, - organization_id: UUID | Unset = UNSET, - -) -> dict[str, Any]: - - - - - params: dict[str, Any] = {} - - json_organization_id: str | Unset = UNSET - if not isinstance(organization_id, Unset): - json_organization_id = str(organization_id) - params["organization_id"] = json_organization_id - - - params = {k: v for k, v in params.items() if v is not UNSET and v is not None} - - - _kwargs: dict[str, Any] = { - "method": "get", - "url": "/v1/knowledge-base/catalog/", - "params": params, - } - - - return _kwargs - - - -def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Any | None: - if response.status_code == 200: - return None - - if client.raise_on_unexpected_status: - raise errors.UnexpectedStatus(response.status_code, response.content) - else: - return None - - -def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[Any]: - return Response( - status_code=HTTPStatus(response.status_code), - content=response.content, - headers=response.headers, - parsed=_parse_response(client=client, response=response), - ) - - -def sync_detailed( - *, - client: AuthenticatedClient, - organization_id: UUID | Unset = UNSET, - -) -> Response[Any]: - """ Names-only typology+tactic catalog. Powers typology/tactic opt-in UI. - - Args: - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Any] - """ - - - kwargs = _get_kwargs( - organization_id=organization_id, - - ) - - response = client.get_httpx_client().request( - **kwargs, - ) - - return _build_response(client=client, response=response) - - -async def asyncio_detailed( - *, - client: AuthenticatedClient, - organization_id: UUID | Unset = UNSET, - -) -> Response[Any]: - """ Names-only typology+tactic catalog. Powers typology/tactic opt-in UI. - - Args: - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Any] - """ - - - kwargs = _get_kwargs( - organization_id=organization_id, - - ) - - response = await client.get_async_httpx_client().request( - **kwargs - ) - - return _build_response(client=client, response=response) - diff --git a/src/roe/_generated/api/knowledge_base/knowledge_base_create.py b/src/roe/_generated/api/knowledge_base/knowledge_base_create.py deleted file mode 100644 index 00f96e3..0000000 --- a/src/roe/_generated/api/knowledge_base/knowledge_base_create.py +++ /dev/null @@ -1,204 +0,0 @@ -from http import HTTPStatus -from typing import Any, cast -from urllib.parse import quote - -import httpx - -from ...client import AuthenticatedClient, Client -from ...types import Response, UNSET -from ... import errors - -from ...models.create_knowledge_base import CreateKnowledgeBase -from ...models.create_knowledge_base_request import CreateKnowledgeBaseRequest -from ...types import UNSET, Unset -from typing import cast -from uuid import UUID - - - -def _get_kwargs( - *, - body: CreateKnowledgeBaseRequest, - organization_id: UUID | Unset = UNSET, - -) -> dict[str, Any]: - headers: dict[str, Any] = {} - - - - - params: dict[str, Any] = {} - - json_organization_id: str | Unset = UNSET - if not isinstance(organization_id, Unset): - json_organization_id = str(organization_id) - params["organization_id"] = json_organization_id - - - params = {k: v for k, v in params.items() if v is not UNSET and v is not None} - - - _kwargs: dict[str, Any] = { - "method": "post", - "url": "/v1/knowledge-base/", - "params": params, - } - - _kwargs["json"] = body.to_dict() - - - headers["Content-Type"] = "application/json" - - _kwargs["headers"] = headers - return _kwargs - - - -def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> CreateKnowledgeBase | None: - if response.status_code == 201: - response_201 = CreateKnowledgeBase.from_dict(response.json()) - - - - return response_201 - - if client.raise_on_unexpected_status: - raise errors.UnexpectedStatus(response.status_code, response.content) - else: - return None - - -def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[CreateKnowledgeBase]: - return Response( - status_code=HTTPStatus(response.status_code), - content=response.content, - headers=response.headers, - parsed=_parse_response(client=client, response=response), - ) - - -def sync_detailed( - *, - client: AuthenticatedClient, - body: CreateKnowledgeBaseRequest, - organization_id: UUID | Unset = UNSET, - -) -> Response[CreateKnowledgeBase]: - """ List all KBs for the org, or start a new draft. - - Args: - organization_id (UUID | Unset): - body (CreateKnowledgeBaseRequest): Body for POST /knowledge-base/ — starts a new draft. - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[CreateKnowledgeBase] - """ - - - kwargs = _get_kwargs( - body=body, -organization_id=organization_id, - - ) - - response = client.get_httpx_client().request( - **kwargs, - ) - - return _build_response(client=client, response=response) - -def sync( - *, - client: AuthenticatedClient, - body: CreateKnowledgeBaseRequest, - organization_id: UUID | Unset = UNSET, - -) -> CreateKnowledgeBase | None: - """ List all KBs for the org, or start a new draft. - - Args: - organization_id (UUID | Unset): - body (CreateKnowledgeBaseRequest): Body for POST /knowledge-base/ — starts a new draft. - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - CreateKnowledgeBase - """ - - - return sync_detailed( - client=client, -body=body, -organization_id=organization_id, - - ).parsed - -async def asyncio_detailed( - *, - client: AuthenticatedClient, - body: CreateKnowledgeBaseRequest, - organization_id: UUID | Unset = UNSET, - -) -> Response[CreateKnowledgeBase]: - """ List all KBs for the org, or start a new draft. - - Args: - organization_id (UUID | Unset): - body (CreateKnowledgeBaseRequest): Body for POST /knowledge-base/ — starts a new draft. - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[CreateKnowledgeBase] - """ - - - kwargs = _get_kwargs( - body=body, -organization_id=organization_id, - - ) - - response = await client.get_async_httpx_client().request( - **kwargs - ) - - return _build_response(client=client, response=response) - -async def asyncio( - *, - client: AuthenticatedClient, - body: CreateKnowledgeBaseRequest, - organization_id: UUID | Unset = UNSET, - -) -> CreateKnowledgeBase | None: - """ List all KBs for the org, or start a new draft. - - Args: - organization_id (UUID | Unset): - body (CreateKnowledgeBaseRequest): Body for POST /knowledge-base/ — starts a new draft. - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - CreateKnowledgeBase - """ - - - return (await asyncio_detailed( - client=client, -body=body, -organization_id=organization_id, - - )).parsed diff --git a/src/roe/_generated/api/knowledge_base/knowledge_base_destroy.py b/src/roe/_generated/api/knowledge_base/knowledge_base_destroy.py deleted file mode 100644 index 917c889..0000000 --- a/src/roe/_generated/api/knowledge_base/knowledge_base_destroy.py +++ /dev/null @@ -1,135 +0,0 @@ -from http import HTTPStatus -from typing import Any, cast -from urllib.parse import quote - -import httpx - -from ...client import AuthenticatedClient, Client -from ...types import Response, UNSET -from ... import errors - -from ...types import UNSET, Unset -from uuid import UUID - - - -def _get_kwargs( - id: UUID, - *, - organization_id: UUID | Unset = UNSET, - -) -> dict[str, Any]: - - - - - params: dict[str, Any] = {} - - json_organization_id: str | Unset = UNSET - if not isinstance(organization_id, Unset): - json_organization_id = str(organization_id) - params["organization_id"] = json_organization_id - - - params = {k: v for k, v in params.items() if v is not UNSET and v is not None} - - - _kwargs: dict[str, Any] = { - "method": "delete", - "url": "/v1/knowledge-base/{id}/".format(id=quote(str(id), safe=""),), - "params": params, - } - - - return _kwargs - - - -def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Any | None: - if response.status_code == 204: - return None - - if client.raise_on_unexpected_status: - raise errors.UnexpectedStatus(response.status_code, response.content) - else: - return None - - -def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[Any]: - return Response( - status_code=HTTPStatus(response.status_code), - content=response.content, - headers=response.headers, - parsed=_parse_response(client=client, response=response), - ) - - -def sync_detailed( - id: UUID, - *, - client: AuthenticatedClient, - organization_id: UUID | Unset = UNSET, - -) -> Response[Any]: - """ Get or delete a single KB. GET triggers a best-effort display sync. - - Args: - id (UUID): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Any] - """ - - - kwargs = _get_kwargs( - id=id, -organization_id=organization_id, - - ) - - response = client.get_httpx_client().request( - **kwargs, - ) - - return _build_response(client=client, response=response) - - -async def asyncio_detailed( - id: UUID, - *, - client: AuthenticatedClient, - organization_id: UUID | Unset = UNSET, - -) -> Response[Any]: - """ Get or delete a single KB. GET triggers a best-effort display sync. - - Args: - id (UUID): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Any] - """ - - - kwargs = _get_kwargs( - id=id, -organization_id=organization_id, - - ) - - response = await client.get_async_httpx_client().request( - **kwargs - ) - - return _build_response(client=client, response=response) - diff --git a/src/roe/_generated/api/knowledge_base/knowledge_base_draft_retrieve.py b/src/roe/_generated/api/knowledge_base/knowledge_base_draft_retrieve.py deleted file mode 100644 index e415704..0000000 --- a/src/roe/_generated/api/knowledge_base/knowledge_base_draft_retrieve.py +++ /dev/null @@ -1,201 +0,0 @@ -from http import HTTPStatus -from typing import Any, cast -from urllib.parse import quote - -import httpx - -from ...client import AuthenticatedClient, Client -from ...types import Response, UNSET -from ... import errors - -from ...models.draft import Draft -from ...types import UNSET, Unset -from typing import cast -from uuid import UUID - - - -def _get_kwargs( - id: UUID, - *, - organization_id: UUID | Unset = UNSET, - -) -> dict[str, Any]: - - - - - params: dict[str, Any] = {} - - json_organization_id: str | Unset = UNSET - if not isinstance(organization_id, Unset): - json_organization_id = str(organization_id) - params["organization_id"] = json_organization_id - - - params = {k: v for k, v in params.items() if v is not UNSET and v is not None} - - - _kwargs: dict[str, Any] = { - "method": "get", - "url": "/v1/knowledge-base/{id}/draft/".format(id=quote(str(id), safe=""),), - "params": params, - } - - - return _kwargs - - - -def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Draft | None: - if response.status_code == 200: - response_200 = Draft.from_dict(response.json()) - - - - return response_200 - - if client.raise_on_unexpected_status: - raise errors.UnexpectedStatus(response.status_code, response.content) - else: - return None - - -def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[Draft]: - return Response( - status_code=HTTPStatus(response.status_code), - content=response.content, - headers=response.headers, - parsed=_parse_response(client=client, response=response), - ) - - -def sync_detailed( - id: UUID, - *, - client: AuthenticatedClient, - organization_id: UUID | Unset = UNSET, - -) -> Response[Draft]: - """ Poll the atlas draft. Returns the projected draft status + refs. - Use until draft_status == 'ready' (or 'error'). - - Args: - id (UUID): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Draft] - """ - - - kwargs = _get_kwargs( - id=id, -organization_id=organization_id, - - ) - - response = client.get_httpx_client().request( - **kwargs, - ) - - return _build_response(client=client, response=response) - -def sync( - id: UUID, - *, - client: AuthenticatedClient, - organization_id: UUID | Unset = UNSET, - -) -> Draft | None: - """ Poll the atlas draft. Returns the projected draft status + refs. - Use until draft_status == 'ready' (or 'error'). - - Args: - id (UUID): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Draft - """ - - - return sync_detailed( - id=id, -client=client, -organization_id=organization_id, - - ).parsed - -async def asyncio_detailed( - id: UUID, - *, - client: AuthenticatedClient, - organization_id: UUID | Unset = UNSET, - -) -> Response[Draft]: - """ Poll the atlas draft. Returns the projected draft status + refs. - Use until draft_status == 'ready' (or 'error'). - - Args: - id (UUID): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Draft] - """ - - - kwargs = _get_kwargs( - id=id, -organization_id=organization_id, - - ) - - response = await client.get_async_httpx_client().request( - **kwargs - ) - - return _build_response(client=client, response=response) - -async def asyncio( - id: UUID, - *, - client: AuthenticatedClient, - organization_id: UUID | Unset = UNSET, - -) -> Draft | None: - """ Poll the atlas draft. Returns the projected draft status + refs. - Use until draft_status == 'ready' (or 'error'). - - Args: - id (UUID): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Draft - """ - - - return (await asyncio_detailed( - id=id, -client=client, -organization_id=organization_id, - - )).parsed diff --git a/src/roe/_generated/api/knowledge_base/knowledge_base_finalize_create.py b/src/roe/_generated/api/knowledge_base/knowledge_base_finalize_create.py deleted file mode 100644 index 3874a84..0000000 --- a/src/roe/_generated/api/knowledge_base/knowledge_base_finalize_create.py +++ /dev/null @@ -1,223 +0,0 @@ -from http import HTTPStatus -from typing import Any, cast -from urllib.parse import quote - -import httpx - -from ...client import AuthenticatedClient, Client -from ...types import Response, UNSET -from ... import errors - -from ...models.finalize_request import FinalizeRequest -from ...models.knowledge_base import KnowledgeBase -from ...types import UNSET, Unset -from typing import cast -from uuid import UUID - - - -def _get_kwargs( - id: UUID, - *, - body: FinalizeRequest | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> dict[str, Any]: - headers: dict[str, Any] = {} - - - - - params: dict[str, Any] = {} - - json_organization_id: str | Unset = UNSET - if not isinstance(organization_id, Unset): - json_organization_id = str(organization_id) - params["organization_id"] = json_organization_id - - - params = {k: v for k, v in params.items() if v is not UNSET and v is not None} - - - _kwargs: dict[str, Any] = { - "method": "post", - "url": "/v1/knowledge-base/{id}/finalize/".format(id=quote(str(id), safe=""),), - "params": params, - } - - - if not isinstance(body, Unset): - _kwargs["json"] = body.to_dict() - - - headers["Content-Type"] = "application/json" - - _kwargs["headers"] = headers - return _kwargs - - - -def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> KnowledgeBase | None: - if response.status_code == 200: - response_200 = KnowledgeBase.from_dict(response.json()) - - - - return response_200 - - if client.raise_on_unexpected_status: - raise errors.UnexpectedStatus(response.status_code, response.content) - else: - return None - - -def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[KnowledgeBase]: - return Response( - status_code=HTTPStatus(response.status_code), - content=response.content, - headers=response.headers, - parsed=_parse_response(client=client, response=response), - ) - - -def sync_detailed( - id: UUID, - *, - client: AuthenticatedClient, - body: FinalizeRequest | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> Response[KnowledgeBase]: - """ Commit the agreed selection into a lens and mark the KB active. - Operation sync: strict — propagate atlas errors; reconcile in finally. - - Args: - id (UUID): - organization_id (UUID | Unset): - body (FinalizeRequest | Unset): Body for POST /knowledge-base//finalize/. - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[KnowledgeBase] - """ - - - kwargs = _get_kwargs( - id=id, -body=body, -organization_id=organization_id, - - ) - - response = client.get_httpx_client().request( - **kwargs, - ) - - return _build_response(client=client, response=response) - -def sync( - id: UUID, - *, - client: AuthenticatedClient, - body: FinalizeRequest | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> KnowledgeBase | None: - """ Commit the agreed selection into a lens and mark the KB active. - Operation sync: strict — propagate atlas errors; reconcile in finally. - - Args: - id (UUID): - organization_id (UUID | Unset): - body (FinalizeRequest | Unset): Body for POST /knowledge-base//finalize/. - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - KnowledgeBase - """ - - - return sync_detailed( - id=id, -client=client, -body=body, -organization_id=organization_id, - - ).parsed - -async def asyncio_detailed( - id: UUID, - *, - client: AuthenticatedClient, - body: FinalizeRequest | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> Response[KnowledgeBase]: - """ Commit the agreed selection into a lens and mark the KB active. - Operation sync: strict — propagate atlas errors; reconcile in finally. - - Args: - id (UUID): - organization_id (UUID | Unset): - body (FinalizeRequest | Unset): Body for POST /knowledge-base//finalize/. - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[KnowledgeBase] - """ - - - kwargs = _get_kwargs( - id=id, -body=body, -organization_id=organization_id, - - ) - - response = await client.get_async_httpx_client().request( - **kwargs - ) - - return _build_response(client=client, response=response) - -async def asyncio( - id: UUID, - *, - client: AuthenticatedClient, - body: FinalizeRequest | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> KnowledgeBase | None: - """ Commit the agreed selection into a lens and mark the KB active. - Operation sync: strict — propagate atlas errors; reconcile in finally. - - Args: - id (UUID): - organization_id (UUID | Unset): - body (FinalizeRequest | Unset): Body for POST /knowledge-base//finalize/. - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - KnowledgeBase - """ - - - return (await asyncio_detailed( - id=id, -client=client, -body=body, -organization_id=organization_id, - - )).parsed diff --git a/src/roe/_generated/api/knowledge_base/knowledge_base_import_lens_create.py b/src/roe/_generated/api/knowledge_base/knowledge_base_import_lens_create.py deleted file mode 100644 index 53e1d17..0000000 --- a/src/roe/_generated/api/knowledge_base/knowledge_base_import_lens_create.py +++ /dev/null @@ -1,241 +0,0 @@ -from http import HTTPStatus -from typing import Any, cast -from urllib.parse import quote - -import httpx - -from ...client import AuthenticatedClient, Client -from ...types import Response, UNSET -from ... import errors - -from ...models.knowledge_base import KnowledgeBase -from ...models.knowledge_base_import_lens_create_body import KnowledgeBaseImportLensCreateBody -from ...types import UNSET, Unset -from typing import cast -from uuid import UUID - - - -def _get_kwargs( - *, - body: KnowledgeBaseImportLensCreateBody | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> dict[str, Any]: - headers: dict[str, Any] = {} - - - - - params: dict[str, Any] = {} - - json_organization_id: str | Unset = UNSET - if not isinstance(organization_id, Unset): - json_organization_id = str(organization_id) - params["organization_id"] = json_organization_id - - - params = {k: v for k, v in params.items() if v is not UNSET and v is not None} - - - _kwargs: dict[str, Any] = { - "method": "post", - "url": "/v1/knowledge-base/import-lens/", - "params": params, - } - - - if not isinstance(body, Unset): - _kwargs["json"] = body.to_dict() - - - headers["Content-Type"] = "application/json" - - _kwargs["headers"] = headers - return _kwargs - - - -def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> KnowledgeBase | None: - if response.status_code == 200: - response_200 = KnowledgeBase.from_dict(response.json()) - - - - return response_200 - - if response.status_code == 201: - response_201 = KnowledgeBase.from_dict(response.json()) - - - - return response_201 - - if client.raise_on_unexpected_status: - raise errors.UnexpectedStatus(response.status_code, response.content) - else: - return None - - -def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[KnowledgeBase]: - return Response( - status_code=HTTPStatus(response.status_code), - content=response.content, - headers=response.headers, - parsed=_parse_response(client=client, response=response), - ) - - -def sync_detailed( - *, - client: AuthenticatedClient, - body: KnowledgeBaseImportLensCreateBody | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> Response[KnowledgeBase]: - """ Import a finalized Atlas lens into roe-main by its atlas_lens_id. - Creates a KnowledgeBase row in active state with the lens snapshot — - no draft involved. - - POST /knowledge-base/import-lens/ body: { atlas_lens_id } - - Idempotent: if a row for this org already points to the same - atlas_lens_id the existing record is synced and returned (200). - - Args: - organization_id (UUID | Unset): - body (KnowledgeBaseImportLensCreateBody | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[KnowledgeBase] - """ - - - kwargs = _get_kwargs( - body=body, -organization_id=organization_id, - - ) - - response = client.get_httpx_client().request( - **kwargs, - ) - - return _build_response(client=client, response=response) - -def sync( - *, - client: AuthenticatedClient, - body: KnowledgeBaseImportLensCreateBody | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> KnowledgeBase | None: - """ Import a finalized Atlas lens into roe-main by its atlas_lens_id. - Creates a KnowledgeBase row in active state with the lens snapshot — - no draft involved. - - POST /knowledge-base/import-lens/ body: { atlas_lens_id } - - Idempotent: if a row for this org already points to the same - atlas_lens_id the existing record is synced and returned (200). - - Args: - organization_id (UUID | Unset): - body (KnowledgeBaseImportLensCreateBody | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - KnowledgeBase - """ - - - return sync_detailed( - client=client, -body=body, -organization_id=organization_id, - - ).parsed - -async def asyncio_detailed( - *, - client: AuthenticatedClient, - body: KnowledgeBaseImportLensCreateBody | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> Response[KnowledgeBase]: - """ Import a finalized Atlas lens into roe-main by its atlas_lens_id. - Creates a KnowledgeBase row in active state with the lens snapshot — - no draft involved. - - POST /knowledge-base/import-lens/ body: { atlas_lens_id } - - Idempotent: if a row for this org already points to the same - atlas_lens_id the existing record is synced and returned (200). - - Args: - organization_id (UUID | Unset): - body (KnowledgeBaseImportLensCreateBody | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[KnowledgeBase] - """ - - - kwargs = _get_kwargs( - body=body, -organization_id=organization_id, - - ) - - response = await client.get_async_httpx_client().request( - **kwargs - ) - - return _build_response(client=client, response=response) - -async def asyncio( - *, - client: AuthenticatedClient, - body: KnowledgeBaseImportLensCreateBody | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> KnowledgeBase | None: - """ Import a finalized Atlas lens into roe-main by its atlas_lens_id. - Creates a KnowledgeBase row in active state with the lens snapshot — - no draft involved. - - POST /knowledge-base/import-lens/ body: { atlas_lens_id } - - Idempotent: if a row for this org already points to the same - atlas_lens_id the existing record is synced and returned (200). - - Args: - organization_id (UUID | Unset): - body (KnowledgeBaseImportLensCreateBody | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - KnowledgeBase - """ - - - return (await asyncio_detailed( - client=client, -body=body, -organization_id=organization_id, - - )).parsed diff --git a/src/roe/_generated/api/knowledge_base/knowledge_base_lens_retrieve.py b/src/roe/_generated/api/knowledge_base/knowledge_base_lens_retrieve.py deleted file mode 100644 index dac7407..0000000 --- a/src/roe/_generated/api/knowledge_base/knowledge_base_lens_retrieve.py +++ /dev/null @@ -1,149 +0,0 @@ -from http import HTTPStatus -from typing import Any, cast -from urllib.parse import quote - -import httpx - -from ...client import AuthenticatedClient, Client -from ...types import Response, UNSET -from ... import errors - -from ...types import UNSET, Unset -from uuid import UUID - - - -def _get_kwargs( - atlas_lens_id: str, - *, - organization_id: UUID | Unset = UNSET, - -) -> dict[str, Any]: - - - - - params: dict[str, Any] = {} - - json_organization_id: str | Unset = UNSET - if not isinstance(organization_id, Unset): - json_organization_id = str(organization_id) - params["organization_id"] = json_organization_id - - - params = {k: v for k, v in params.items() if v is not UNSET and v is not None} - - - _kwargs: dict[str, Any] = { - "method": "get", - "url": "/v1/knowledge-base/lens/{atlas_lens_id}/".format(atlas_lens_id=quote(str(atlas_lens_id), safe=""),), - "params": params, - } - - - return _kwargs - - - -def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Any | None: - if response.status_code == 200: - return None - - if client.raise_on_unexpected_status: - raise errors.UnexpectedStatus(response.status_code, response.content) - else: - return None - - -def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[Any]: - return Response( - status_code=HTTPStatus(response.status_code), - content=response.content, - headers=response.headers, - parsed=_parse_response(client=client, response=response), - ) - - -def sync_detailed( - atlas_lens_id: str, - *, - client: AuthenticatedClient, - organization_id: UUID | Unset = UNSET, - -) -> Response[Any]: - r""" Fetch a lens directly from Atlas by its atlas_lens_id and return the - names-only projection. Does NOT require a KnowledgeBase row to exist. - - If a KnowledgeBase row for this org already points to the given - atlas_lens_id, it is also synced (best-effort) and returned under - the \"knowledge_base\" key. - - GET /knowledge-base/lens// - - Args: - atlas_lens_id (str): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Any] - """ - - - kwargs = _get_kwargs( - atlas_lens_id=atlas_lens_id, -organization_id=organization_id, - - ) - - response = client.get_httpx_client().request( - **kwargs, - ) - - return _build_response(client=client, response=response) - - -async def asyncio_detailed( - atlas_lens_id: str, - *, - client: AuthenticatedClient, - organization_id: UUID | Unset = UNSET, - -) -> Response[Any]: - r""" Fetch a lens directly from Atlas by its atlas_lens_id and return the - names-only projection. Does NOT require a KnowledgeBase row to exist. - - If a KnowledgeBase row for this org already points to the given - atlas_lens_id, it is also synced (best-effort) and returned under - the \"knowledge_base\" key. - - GET /knowledge-base/lens// - - Args: - atlas_lens_id (str): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Any] - """ - - - kwargs = _get_kwargs( - atlas_lens_id=atlas_lens_id, -organization_id=organization_id, - - ) - - response = await client.get_async_httpx_client().request( - **kwargs - ) - - return _build_response(client=client, response=response) - diff --git a/src/roe/_generated/api/knowledge_base/knowledge_base_list.py b/src/roe/_generated/api/knowledge_base/knowledge_base_list.py deleted file mode 100644 index 667e065..0000000 --- a/src/roe/_generated/api/knowledge_base/knowledge_base_list.py +++ /dev/null @@ -1,214 +0,0 @@ -from http import HTTPStatus -from typing import Any, cast -from urllib.parse import quote - -import httpx - -from ...client import AuthenticatedClient, Client -from ...types import Response, UNSET -from ... import errors - -from ...models.paginated_knowledge_base_list import PaginatedKnowledgeBaseList -from ...types import UNSET, Unset -from typing import cast -from uuid import UUID - - - -def _get_kwargs( - *, - page: int | Unset = UNSET, - page_size: int | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> dict[str, Any]: - - - - - params: dict[str, Any] = {} - - params["page"] = page - - params["page_size"] = page_size - - json_organization_id: str | Unset = UNSET - if not isinstance(organization_id, Unset): - json_organization_id = str(organization_id) - params["organization_id"] = json_organization_id - - - params = {k: v for k, v in params.items() if v is not UNSET and v is not None} - - - _kwargs: dict[str, Any] = { - "method": "get", - "url": "/v1/knowledge-base/", - "params": params, - } - - - return _kwargs - - - -def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> PaginatedKnowledgeBaseList | None: - if response.status_code == 200: - response_200 = PaginatedKnowledgeBaseList.from_dict(response.json()) - - - - return response_200 - - if client.raise_on_unexpected_status: - raise errors.UnexpectedStatus(response.status_code, response.content) - else: - return None - - -def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[PaginatedKnowledgeBaseList]: - return Response( - status_code=HTTPStatus(response.status_code), - content=response.content, - headers=response.headers, - parsed=_parse_response(client=client, response=response), - ) - - -def sync_detailed( - *, - client: AuthenticatedClient, - page: int | Unset = UNSET, - page_size: int | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> Response[PaginatedKnowledgeBaseList]: - """ List all KBs for the org, or start a new draft. - - Args: - page (int | Unset): - page_size (int | Unset): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[PaginatedKnowledgeBaseList] - """ - - - kwargs = _get_kwargs( - page=page, -page_size=page_size, -organization_id=organization_id, - - ) - - response = client.get_httpx_client().request( - **kwargs, - ) - - return _build_response(client=client, response=response) - -def sync( - *, - client: AuthenticatedClient, - page: int | Unset = UNSET, - page_size: int | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> PaginatedKnowledgeBaseList | None: - """ List all KBs for the org, or start a new draft. - - Args: - page (int | Unset): - page_size (int | Unset): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - PaginatedKnowledgeBaseList - """ - - - return sync_detailed( - client=client, -page=page, -page_size=page_size, -organization_id=organization_id, - - ).parsed - -async def asyncio_detailed( - *, - client: AuthenticatedClient, - page: int | Unset = UNSET, - page_size: int | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> Response[PaginatedKnowledgeBaseList]: - """ List all KBs for the org, or start a new draft. - - Args: - page (int | Unset): - page_size (int | Unset): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[PaginatedKnowledgeBaseList] - """ - - - kwargs = _get_kwargs( - page=page, -page_size=page_size, -organization_id=organization_id, - - ) - - response = await client.get_async_httpx_client().request( - **kwargs - ) - - return _build_response(client=client, response=response) - -async def asyncio( - *, - client: AuthenticatedClient, - page: int | Unset = UNSET, - page_size: int | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> PaginatedKnowledgeBaseList | None: - """ List all KBs for the org, or start a new draft. - - Args: - page (int | Unset): - page_size (int | Unset): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - PaginatedKnowledgeBaseList - """ - - - return (await asyncio_detailed( - client=client, -page=page, -page_size=page_size, -organization_id=organization_id, - - )).parsed diff --git a/src/roe/_generated/api/knowledge_base/knowledge_base_regenerate_create.py b/src/roe/_generated/api/knowledge_base/knowledge_base_regenerate_create.py deleted file mode 100644 index 5551a15..0000000 --- a/src/roe/_generated/api/knowledge_base/knowledge_base_regenerate_create.py +++ /dev/null @@ -1,223 +0,0 @@ -from http import HTTPStatus -from typing import Any, cast -from urllib.parse import quote - -import httpx - -from ...client import AuthenticatedClient, Client -from ...types import Response, UNSET -from ... import errors - -from ...models.draft import Draft -from ...models.regenerate_request import RegenerateRequest -from ...types import UNSET, Unset -from typing import cast -from uuid import UUID - - - -def _get_kwargs( - id: UUID, - *, - body: RegenerateRequest | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> dict[str, Any]: - headers: dict[str, Any] = {} - - - - - params: dict[str, Any] = {} - - json_organization_id: str | Unset = UNSET - if not isinstance(organization_id, Unset): - json_organization_id = str(organization_id) - params["organization_id"] = json_organization_id - - - params = {k: v for k, v in params.items() if v is not UNSET and v is not None} - - - _kwargs: dict[str, Any] = { - "method": "post", - "url": "/v1/knowledge-base/{id}/regenerate/".format(id=quote(str(id), safe=""),), - "params": params, - } - - - if not isinstance(body, Unset): - _kwargs["json"] = body.to_dict() - - - headers["Content-Type"] = "application/json" - - _kwargs["headers"] = headers - return _kwargs - - - -def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Draft | None: - if response.status_code == 202: - response_202 = Draft.from_dict(response.json()) - - - - return response_202 - - if client.raise_on_unexpected_status: - raise errors.UnexpectedStatus(response.status_code, response.content) - else: - return None - - -def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[Draft]: - return Response( - status_code=HTTPStatus(response.status_code), - content=response.content, - headers=response.headers, - parsed=_parse_response(client=client, response=response), - ) - - -def sync_detailed( - id: UUID, - *, - client: AuthenticatedClient, - body: RegenerateRequest | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> Response[Draft]: - """ Kick off another async generation round with feedback. - Operation sync: propagate atlas errors; finally reconcile. - - Args: - id (UUID): - organization_id (UUID | Unset): - body (RegenerateRequest | Unset): Body for POST /knowledge-base//regenerate/. - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Draft] - """ - - - kwargs = _get_kwargs( - id=id, -body=body, -organization_id=organization_id, - - ) - - response = client.get_httpx_client().request( - **kwargs, - ) - - return _build_response(client=client, response=response) - -def sync( - id: UUID, - *, - client: AuthenticatedClient, - body: RegenerateRequest | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> Draft | None: - """ Kick off another async generation round with feedback. - Operation sync: propagate atlas errors; finally reconcile. - - Args: - id (UUID): - organization_id (UUID | Unset): - body (RegenerateRequest | Unset): Body for POST /knowledge-base//regenerate/. - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Draft - """ - - - return sync_detailed( - id=id, -client=client, -body=body, -organization_id=organization_id, - - ).parsed - -async def asyncio_detailed( - id: UUID, - *, - client: AuthenticatedClient, - body: RegenerateRequest | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> Response[Draft]: - """ Kick off another async generation round with feedback. - Operation sync: propagate atlas errors; finally reconcile. - - Args: - id (UUID): - organization_id (UUID | Unset): - body (RegenerateRequest | Unset): Body for POST /knowledge-base//regenerate/. - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Draft] - """ - - - kwargs = _get_kwargs( - id=id, -body=body, -organization_id=organization_id, - - ) - - response = await client.get_async_httpx_client().request( - **kwargs - ) - - return _build_response(client=client, response=response) - -async def asyncio( - id: UUID, - *, - client: AuthenticatedClient, - body: RegenerateRequest | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> Draft | None: - """ Kick off another async generation round with feedback. - Operation sync: propagate atlas errors; finally reconcile. - - Args: - id (UUID): - organization_id (UUID | Unset): - body (RegenerateRequest | Unset): Body for POST /knowledge-base//regenerate/. - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Draft - """ - - - return (await asyncio_detailed( - id=id, -client=client, -body=body, -organization_id=organization_id, - - )).parsed diff --git a/src/roe/_generated/api/knowledge_base/knowledge_base_resolve_create.py b/src/roe/_generated/api/knowledge_base/knowledge_base_resolve_create.py deleted file mode 100644 index ceae0a3..0000000 --- a/src/roe/_generated/api/knowledge_base/knowledge_base_resolve_create.py +++ /dev/null @@ -1,267 +0,0 @@ -from http import HTTPStatus -from typing import Any, cast -from urllib.parse import quote - -import httpx - -from ...client import AuthenticatedClient, Client -from ...types import Response, UNSET -from ... import errors - -from ...models.draft import Draft -from ...models.resolve_request import ResolveRequest -from ...types import UNSET, Unset -from typing import cast -from uuid import UUID - - - -def _get_kwargs( - id: UUID, - *, - body: ResolveRequest | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> dict[str, Any]: - headers: dict[str, Any] = {} - - - - - params: dict[str, Any] = {} - - json_organization_id: str | Unset = UNSET - if not isinstance(organization_id, Unset): - json_organization_id = str(organization_id) - params["organization_id"] = json_organization_id - - - params = {k: v for k, v in params.items() if v is not UNSET and v is not None} - - - _kwargs: dict[str, Any] = { - "method": "post", - "url": "/v1/knowledge-base/{id}/resolve/".format(id=quote(str(id), safe=""),), - "params": params, - } - - - if not isinstance(body, Unset): - _kwargs["json"] = body.to_dict() - - - headers["Content-Type"] = "application/json" - - _kwargs["headers"] = headers - return _kwargs - - - -def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Draft | None: - if response.status_code == 200: - response_200 = Draft.from_dict(response.json()) - - - - return response_200 - - if client.raise_on_unexpected_status: - raise errors.UnexpectedStatus(response.status_code, response.content) - else: - return None - - -def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[Draft]: - return Response( - status_code=HTTPStatus(response.status_code), - content=response.content, - headers=response.headers, - parsed=_parse_response(client=client, response=response), - ) - - -def sync_detailed( - id: UUID, - *, - client: AuthenticatedClient, - body: ResolveRequest | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> Response[Draft]: - """ Approve or decline a pending regeneration proposal. - - A regeneration round lands as draft.pendingProposal WITHOUT changing the - agreed selection. The reviewer resolves it here: - - apply: { refs, suggested_name?, accept_summary? } — refs is the - resolved selection (per-item accept/reject computed client-side). - - decline: { discard: true } — keep the prior selection untouched. - - finalize is blocked by atlas (409) until this is called. - - Args: - id (UUID): - organization_id (UUID | Unset): - body (ResolveRequest | Unset): Body for POST /knowledge-base//resolve/. - - discard=True declines the pending proposal. Otherwise refs is the reviewer's - resolved selection (opaque-handle dicts) and suggested_name / accept_summary - optionally adopt the proposal's name / summary. - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Draft] - """ - - - kwargs = _get_kwargs( - id=id, -body=body, -organization_id=organization_id, - - ) - - response = client.get_httpx_client().request( - **kwargs, - ) - - return _build_response(client=client, response=response) - -def sync( - id: UUID, - *, - client: AuthenticatedClient, - body: ResolveRequest | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> Draft | None: - """ Approve or decline a pending regeneration proposal. - - A regeneration round lands as draft.pendingProposal WITHOUT changing the - agreed selection. The reviewer resolves it here: - - apply: { refs, suggested_name?, accept_summary? } — refs is the - resolved selection (per-item accept/reject computed client-side). - - decline: { discard: true } — keep the prior selection untouched. - - finalize is blocked by atlas (409) until this is called. - - Args: - id (UUID): - organization_id (UUID | Unset): - body (ResolveRequest | Unset): Body for POST /knowledge-base//resolve/. - - discard=True declines the pending proposal. Otherwise refs is the reviewer's - resolved selection (opaque-handle dicts) and suggested_name / accept_summary - optionally adopt the proposal's name / summary. - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Draft - """ - - - return sync_detailed( - id=id, -client=client, -body=body, -organization_id=organization_id, - - ).parsed - -async def asyncio_detailed( - id: UUID, - *, - client: AuthenticatedClient, - body: ResolveRequest | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> Response[Draft]: - """ Approve or decline a pending regeneration proposal. - - A regeneration round lands as draft.pendingProposal WITHOUT changing the - agreed selection. The reviewer resolves it here: - - apply: { refs, suggested_name?, accept_summary? } — refs is the - resolved selection (per-item accept/reject computed client-side). - - decline: { discard: true } — keep the prior selection untouched. - - finalize is blocked by atlas (409) until this is called. - - Args: - id (UUID): - organization_id (UUID | Unset): - body (ResolveRequest | Unset): Body for POST /knowledge-base//resolve/. - - discard=True declines the pending proposal. Otherwise refs is the reviewer's - resolved selection (opaque-handle dicts) and suggested_name / accept_summary - optionally adopt the proposal's name / summary. - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Draft] - """ - - - kwargs = _get_kwargs( - id=id, -body=body, -organization_id=organization_id, - - ) - - response = await client.get_async_httpx_client().request( - **kwargs - ) - - return _build_response(client=client, response=response) - -async def asyncio( - id: UUID, - *, - client: AuthenticatedClient, - body: ResolveRequest | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> Draft | None: - """ Approve or decline a pending regeneration proposal. - - A regeneration round lands as draft.pendingProposal WITHOUT changing the - agreed selection. The reviewer resolves it here: - - apply: { refs, suggested_name?, accept_summary? } — refs is the - resolved selection (per-item accept/reject computed client-side). - - decline: { discard: true } — keep the prior selection untouched. - - finalize is blocked by atlas (409) until this is called. - - Args: - id (UUID): - organization_id (UUID | Unset): - body (ResolveRequest | Unset): Body for POST /knowledge-base//resolve/. - - discard=True declines the pending proposal. Otherwise refs is the reviewer's - resolved selection (opaque-handle dicts) and suggested_name / accept_summary - optionally adopt the proposal's name / summary. - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Draft - """ - - - return (await asyncio_detailed( - id=id, -client=client, -body=body, -organization_id=organization_id, - - )).parsed diff --git a/src/roe/_generated/api/knowledge_base/knowledge_base_retrieve.py b/src/roe/_generated/api/knowledge_base/knowledge_base_retrieve.py deleted file mode 100644 index bd61357..0000000 --- a/src/roe/_generated/api/knowledge_base/knowledge_base_retrieve.py +++ /dev/null @@ -1,197 +0,0 @@ -from http import HTTPStatus -from typing import Any, cast -from urllib.parse import quote - -import httpx - -from ...client import AuthenticatedClient, Client -from ...types import Response, UNSET -from ... import errors - -from ...models.knowledge_base import KnowledgeBase -from ...types import UNSET, Unset -from typing import cast -from uuid import UUID - - - -def _get_kwargs( - id: UUID, - *, - organization_id: UUID | Unset = UNSET, - -) -> dict[str, Any]: - - - - - params: dict[str, Any] = {} - - json_organization_id: str | Unset = UNSET - if not isinstance(organization_id, Unset): - json_organization_id = str(organization_id) - params["organization_id"] = json_organization_id - - - params = {k: v for k, v in params.items() if v is not UNSET and v is not None} - - - _kwargs: dict[str, Any] = { - "method": "get", - "url": "/v1/knowledge-base/{id}/".format(id=quote(str(id), safe=""),), - "params": params, - } - - - return _kwargs - - - -def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> KnowledgeBase | None: - if response.status_code == 200: - response_200 = KnowledgeBase.from_dict(response.json()) - - - - return response_200 - - if client.raise_on_unexpected_status: - raise errors.UnexpectedStatus(response.status_code, response.content) - else: - return None - - -def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[KnowledgeBase]: - return Response( - status_code=HTTPStatus(response.status_code), - content=response.content, - headers=response.headers, - parsed=_parse_response(client=client, response=response), - ) - - -def sync_detailed( - id: UUID, - *, - client: AuthenticatedClient, - organization_id: UUID | Unset = UNSET, - -) -> Response[KnowledgeBase]: - """ Get or delete a single KB. GET triggers a best-effort display sync. - - Args: - id (UUID): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[KnowledgeBase] - """ - - - kwargs = _get_kwargs( - id=id, -organization_id=organization_id, - - ) - - response = client.get_httpx_client().request( - **kwargs, - ) - - return _build_response(client=client, response=response) - -def sync( - id: UUID, - *, - client: AuthenticatedClient, - organization_id: UUID | Unset = UNSET, - -) -> KnowledgeBase | None: - """ Get or delete a single KB. GET triggers a best-effort display sync. - - Args: - id (UUID): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - KnowledgeBase - """ - - - return sync_detailed( - id=id, -client=client, -organization_id=organization_id, - - ).parsed - -async def asyncio_detailed( - id: UUID, - *, - client: AuthenticatedClient, - organization_id: UUID | Unset = UNSET, - -) -> Response[KnowledgeBase]: - """ Get or delete a single KB. GET triggers a best-effort display sync. - - Args: - id (UUID): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[KnowledgeBase] - """ - - - kwargs = _get_kwargs( - id=id, -organization_id=organization_id, - - ) - - response = await client.get_async_httpx_client().request( - **kwargs - ) - - return _build_response(client=client, response=response) - -async def asyncio( - id: UUID, - *, - client: AuthenticatedClient, - organization_id: UUID | Unset = UNSET, - -) -> KnowledgeBase | None: - """ Get or delete a single KB. GET triggers a best-effort display sync. - - Args: - id (UUID): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - KnowledgeBase - """ - - - return (await asyncio_detailed( - id=id, -client=client, -organization_id=organization_id, - - )).parsed diff --git a/src/roe/_generated/api/knowledge_base/knowledge_base_selection_partial_update.py b/src/roe/_generated/api/knowledge_base/knowledge_base_selection_partial_update.py deleted file mode 100644 index 9a8e348..0000000 --- a/src/roe/_generated/api/knowledge_base/knowledge_base_selection_partial_update.py +++ /dev/null @@ -1,231 +0,0 @@ -from http import HTTPStatus -from typing import Any, cast -from urllib.parse import quote - -import httpx - -from ...client import AuthenticatedClient, Client -from ...types import Response, UNSET -from ... import errors - -from ...models.draft import Draft -from ...models.patched_patch_selection_request import PatchedPatchSelectionRequest -from ...types import UNSET, Unset -from typing import cast -from uuid import UUID - - - -def _get_kwargs( - id: UUID, - *, - body: PatchedPatchSelectionRequest | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> dict[str, Any]: - headers: dict[str, Any] = {} - - - - - params: dict[str, Any] = {} - - json_organization_id: str | Unset = UNSET - if not isinstance(organization_id, Unset): - json_organization_id = str(organization_id) - params["organization_id"] = json_organization_id - - - params = {k: v for k, v in params.items() if v is not UNSET and v is not None} - - - _kwargs: dict[str, Any] = { - "method": "patch", - "url": "/v1/knowledge-base/{id}/selection/".format(id=quote(str(id), safe=""),), - "params": params, - } - - - if not isinstance(body, Unset): - _kwargs["json"] = body.to_dict() - - - headers["Content-Type"] = "application/json" - - _kwargs["headers"] = headers - return _kwargs - - - -def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Draft | None: - if response.status_code == 200: - response_200 = Draft.from_dict(response.json()) - - - - return response_200 - - if client.raise_on_unexpected_status: - raise errors.UnexpectedStatus(response.status_code, response.content) - else: - return None - - -def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[Draft]: - return Response( - status_code=HTTPStatus(response.status_code), - content=response.content, - headers=response.headers, - parsed=_parse_response(client=client, response=response), - ) - - -def sync_detailed( - id: UUID, - *, - client: AuthenticatedClient, - body: PatchedPatchSelectionRequest | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> Response[Draft]: - """ Persist hand-edits to the working selection (typology + tactic opt-in/out). - Operation sync: if atlas rejects, the error propagates; reconciling sync - runs in finally. - - Args: - id (UUID): - organization_id (UUID | Unset): - body (PatchedPatchSelectionRequest | Unset): Body for PATCH /knowledge- - base//selection/. - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Draft] - """ - - - kwargs = _get_kwargs( - id=id, -body=body, -organization_id=organization_id, - - ) - - response = client.get_httpx_client().request( - **kwargs, - ) - - return _build_response(client=client, response=response) - -def sync( - id: UUID, - *, - client: AuthenticatedClient, - body: PatchedPatchSelectionRequest | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> Draft | None: - """ Persist hand-edits to the working selection (typology + tactic opt-in/out). - Operation sync: if atlas rejects, the error propagates; reconciling sync - runs in finally. - - Args: - id (UUID): - organization_id (UUID | Unset): - body (PatchedPatchSelectionRequest | Unset): Body for PATCH /knowledge- - base//selection/. - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Draft - """ - - - return sync_detailed( - id=id, -client=client, -body=body, -organization_id=organization_id, - - ).parsed - -async def asyncio_detailed( - id: UUID, - *, - client: AuthenticatedClient, - body: PatchedPatchSelectionRequest | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> Response[Draft]: - """ Persist hand-edits to the working selection (typology + tactic opt-in/out). - Operation sync: if atlas rejects, the error propagates; reconciling sync - runs in finally. - - Args: - id (UUID): - organization_id (UUID | Unset): - body (PatchedPatchSelectionRequest | Unset): Body for PATCH /knowledge- - base//selection/. - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Draft] - """ - - - kwargs = _get_kwargs( - id=id, -body=body, -organization_id=organization_id, - - ) - - response = await client.get_async_httpx_client().request( - **kwargs - ) - - return _build_response(client=client, response=response) - -async def asyncio( - id: UUID, - *, - client: AuthenticatedClient, - body: PatchedPatchSelectionRequest | Unset = UNSET, - organization_id: UUID | Unset = UNSET, - -) -> Draft | None: - """ Persist hand-edits to the working selection (typology + tactic opt-in/out). - Operation sync: if atlas rejects, the error propagates; reconciling sync - runs in finally. - - Args: - id (UUID): - organization_id (UUID | Unset): - body (PatchedPatchSelectionRequest | Unset): Body for PATCH /knowledge- - base//selection/. - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Draft - """ - - - return (await asyncio_detailed( - id=id, -client=client, -body=body, -organization_id=organization_id, - - )).parsed diff --git a/src/roe/_generated/api/knowledge_base/knowledge_base_sync_create.py b/src/roe/_generated/api/knowledge_base/knowledge_base_sync_create.py deleted file mode 100644 index 0afcba9..0000000 --- a/src/roe/_generated/api/knowledge_base/knowledge_base_sync_create.py +++ /dev/null @@ -1,205 +0,0 @@ -from http import HTTPStatus -from typing import Any, cast -from urllib.parse import quote - -import httpx - -from ...client import AuthenticatedClient, Client -from ...types import Response, UNSET -from ... import errors - -from ...models.knowledge_base import KnowledgeBase -from ...types import UNSET, Unset -from typing import cast -from uuid import UUID - - - -def _get_kwargs( - id: UUID, - *, - organization_id: UUID | Unset = UNSET, - -) -> dict[str, Any]: - - - - - params: dict[str, Any] = {} - - json_organization_id: str | Unset = UNSET - if not isinstance(organization_id, Unset): - json_organization_id = str(organization_id) - params["organization_id"] = json_organization_id - - - params = {k: v for k, v in params.items() if v is not UNSET and v is not None} - - - _kwargs: dict[str, Any] = { - "method": "post", - "url": "/v1/knowledge-base/{id}/sync/".format(id=quote(str(id), safe=""),), - "params": params, - } - - - return _kwargs - - - -def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> KnowledgeBase | None: - if response.status_code == 200: - response_200 = KnowledgeBase.from_dict(response.json()) - - - - return response_200 - - if client.raise_on_unexpected_status: - raise errors.UnexpectedStatus(response.status_code, response.content) - else: - return None - - -def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[KnowledgeBase]: - return Response( - status_code=HTTPStatus(response.status_code), - content=response.content, - headers=response.headers, - parsed=_parse_response(client=client, response=response), - ) - - -def sync_detailed( - id: UUID, - *, - client: AuthenticatedClient, - organization_id: UUID | Unset = UNSET, - -) -> Response[KnowledgeBase]: - """ Standalone best-effort lens sync (display mode). - POST /knowledge-base//sync/ - Always returns 200; sync_error describes any failure. - - Args: - id (UUID): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[KnowledgeBase] - """ - - - kwargs = _get_kwargs( - id=id, -organization_id=organization_id, - - ) - - response = client.get_httpx_client().request( - **kwargs, - ) - - return _build_response(client=client, response=response) - -def sync( - id: UUID, - *, - client: AuthenticatedClient, - organization_id: UUID | Unset = UNSET, - -) -> KnowledgeBase | None: - """ Standalone best-effort lens sync (display mode). - POST /knowledge-base//sync/ - Always returns 200; sync_error describes any failure. - - Args: - id (UUID): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - KnowledgeBase - """ - - - return sync_detailed( - id=id, -client=client, -organization_id=organization_id, - - ).parsed - -async def asyncio_detailed( - id: UUID, - *, - client: AuthenticatedClient, - organization_id: UUID | Unset = UNSET, - -) -> Response[KnowledgeBase]: - """ Standalone best-effort lens sync (display mode). - POST /knowledge-base//sync/ - Always returns 200; sync_error describes any failure. - - Args: - id (UUID): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[KnowledgeBase] - """ - - - kwargs = _get_kwargs( - id=id, -organization_id=organization_id, - - ) - - response = await client.get_async_httpx_client().request( - **kwargs - ) - - return _build_response(client=client, response=response) - -async def asyncio( - id: UUID, - *, - client: AuthenticatedClient, - organization_id: UUID | Unset = UNSET, - -) -> KnowledgeBase | None: - """ Standalone best-effort lens sync (display mode). - POST /knowledge-base//sync/ - Always returns 200; sync_error describes any failure. - - Args: - id (UUID): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - KnowledgeBase - """ - - - return (await asyncio_detailed( - id=id, -client=client, -organization_id=organization_id, - - )).parsed diff --git a/src/roe/_generated/api/knowledge_base/knowledge_base_unlink_destroy.py b/src/roe/_generated/api/knowledge_base/knowledge_base_unlink_destroy.py deleted file mode 100644 index db1c796..0000000 --- a/src/roe/_generated/api/knowledge_base/knowledge_base_unlink_destroy.py +++ /dev/null @@ -1,151 +0,0 @@ -from http import HTTPStatus -from typing import Any, cast -from urllib.parse import quote - -import httpx - -from ...client import AuthenticatedClient, Client -from ...types import Response, UNSET -from ... import errors - -from ...types import UNSET, Unset -from uuid import UUID - - - -def _get_kwargs( - id: UUID, - *, - organization_id: UUID | Unset = UNSET, - -) -> dict[str, Any]: - - - - - params: dict[str, Any] = {} - - json_organization_id: str | Unset = UNSET - if not isinstance(organization_id, Unset): - json_organization_id = str(organization_id) - params["organization_id"] = json_organization_id - - - params = {k: v for k, v in params.items() if v is not UNSET and v is not None} - - - _kwargs: dict[str, Any] = { - "method": "delete", - "url": "/v1/knowledge-base/{id}/unlink/".format(id=quote(str(id), safe=""),), - "params": params, - } - - - return _kwargs - - - -def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Any | None: - if response.status_code == 204: - return None - - if client.raise_on_unexpected_status: - raise errors.UnexpectedStatus(response.status_code, response.content) - else: - return None - - -def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[Any]: - return Response( - status_code=HTTPStatus(response.status_code), - content=response.content, - headers=response.headers, - parsed=_parse_response(client=client, response=response), - ) - - -def sync_detailed( - id: UUID, - *, - client: AuthenticatedClient, - organization_id: UUID | Unset = UNSET, - -) -> Response[Any]: - """ Unlink a knowledge base: remove the local KnowledgeBase row only, leaving - the Atlas lens (and any in-progress draft) untouched. - - This is the non-destructive counterpart to DELETE //. Use it to stop - tracking a lens in this org without deleting it from Atlas — e.g. the lens - is shared, or you intend to re-import it later via import-lens. Unlike - DELETE //, this never calls atlas.delete_draft / atlas.delete_lens. - - DELETE /knowledge-base//unlink/ - - Args: - id (UUID): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Any] - """ - - - kwargs = _get_kwargs( - id=id, -organization_id=organization_id, - - ) - - response = client.get_httpx_client().request( - **kwargs, - ) - - return _build_response(client=client, response=response) - - -async def asyncio_detailed( - id: UUID, - *, - client: AuthenticatedClient, - organization_id: UUID | Unset = UNSET, - -) -> Response[Any]: - """ Unlink a knowledge base: remove the local KnowledgeBase row only, leaving - the Atlas lens (and any in-progress draft) untouched. - - This is the non-destructive counterpart to DELETE //. Use it to stop - tracking a lens in this org without deleting it from Atlas — e.g. the lens - is shared, or you intend to re-import it later via import-lens. Unlike - DELETE //, this never calls atlas.delete_draft / atlas.delete_lens. - - DELETE /knowledge-base//unlink/ - - Args: - id (UUID): - organization_id (UUID | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Any] - """ - - - kwargs = _get_kwargs( - id=id, -organization_id=organization_id, - - ) - - response = await client.get_async_httpx_client().request( - **kwargs - ) - - return _build_response(client=client, response=response) - diff --git a/src/roe/_generated/models/__init__.py b/src/roe/_generated/models/__init__.py index 379a4ea..ca876f3 100644 --- a/src/roe/_generated/models/__init__.py +++ b/src/roe/_generated/models/__init__.py @@ -72,44 +72,31 @@ from .create_connection_request_auth_config import CreateConnectionRequestAuthConfig from .create_connection_request_config import CreateConnectionRequestConfig from .create_connection_request_dynamic_inputs import CreateConnectionRequestDynamicInputs -from .create_knowledge_base import CreateKnowledgeBase -from .create_knowledge_base_request import CreateKnowledgeBaseRequest from .create_policy import CreatePolicy from .create_policy_request import CreatePolicyRequest from .create_policy_version import CreatePolicyVersion from .create_policy_version_request import CreatePolicyVersionRequest from .dependent_agent_info import DependentAgentInfo from .discovery_supported_models_list_response_400 import DiscoverySupportedModelsListResponse400 -from .draft import Draft -from .draft_ref import DraftRef -from .draft_status_enum import DraftStatusEnum from .duplicate_connection_existing import DuplicateConnectionExisting from .duplicate_connection_response import DuplicateConnectionResponse from .error_detail_response import ErrorDetailResponse -from .finalize_request import FinalizeRequest from .job_input import JobInput -from .knowledge_base import KnowledgeBase -from .knowledge_base_import_lens_create_body import KnowledgeBaseImportLensCreateBody -from .knowledge_base_status_enum import KnowledgeBaseStatusEnum from .list_agent_job import ListAgentJob from .list_agent_job_metadata import ListAgentJobMetadata from .message_response import MessageResponse from .paginated_base_agent_list import PaginatedBaseAgentList from .paginated_connection_list_list import PaginatedConnectionListList -from .paginated_knowledge_base_list import PaginatedKnowledgeBaseList from .paginated_list_agent_job_list import PaginatedListAgentJobList from .paginated_policy_list import PaginatedPolicyList from .paginated_policy_version_list import PaginatedPolicyVersionList from .patched_agent_version_update_request import PatchedAgentVersionUpdateRequest from .patched_base_agent_update_request import PatchedBaseAgentUpdateRequest -from .patched_patch_selection_request import PatchedPatchSelectionRequest -from .patched_patch_selection_request_refs_item import PatchedPatchSelectionRequestRefsItem from .patched_update_connection_request import PatchedUpdateConnectionRequest from .patched_update_connection_request_auth_config import PatchedUpdateConnectionRequestAuthConfig from .patched_update_connection_request_config import PatchedUpdateConnectionRequestConfig from .patched_update_connection_request_dynamic_inputs import PatchedUpdateConnectionRequestDynamicInputs from .patched_update_policy_request import PatchedUpdatePolicyRequest -from .pending_proposal import PendingProposal from .policies_create_response_400 import PoliciesCreateResponse400 from .policies_partial_update_response_400 import PoliciesPartialUpdateResponse400 from .policies_update_response_400 import PoliciesUpdateResponse400 @@ -125,11 +112,7 @@ from .public_agent_job_status_event import PublicAgentJobStatusEvent from .public_agent_job_status_event_error_details import PublicAgentJobStatusEventErrorDetails from .qdrant_cleanup_error_response import QdrantCleanupErrorResponse -from .regenerate_request import RegenerateRequest -from .relevance_enum import RelevanceEnum from .resend_agent_job_webhook_request import ResendAgentJobWebhookRequest -from .resolve_request import ResolveRequest -from .resolve_request_refs_item import ResolveRequestRefsItem from .review_status_enum import ReviewStatusEnum from .skill_generation_state_enum import SkillGenerationStateEnum from .status_enum import StatusEnum @@ -241,44 +224,31 @@ "CreateConnectionRequestAuthConfig", "CreateConnectionRequestConfig", "CreateConnectionRequestDynamicInputs", - "CreateKnowledgeBase", - "CreateKnowledgeBaseRequest", "CreatePolicy", "CreatePolicyRequest", "CreatePolicyVersion", "CreatePolicyVersionRequest", "DependentAgentInfo", "DiscoverySupportedModelsListResponse400", - "Draft", - "DraftRef", - "DraftStatusEnum", "DuplicateConnectionExisting", "DuplicateConnectionResponse", "ErrorDetailResponse", - "FinalizeRequest", "JobInput", - "KnowledgeBase", - "KnowledgeBaseImportLensCreateBody", - "KnowledgeBaseStatusEnum", "ListAgentJob", "ListAgentJobMetadata", "MessageResponse", "PaginatedBaseAgentList", "PaginatedConnectionListList", - "PaginatedKnowledgeBaseList", "PaginatedListAgentJobList", "PaginatedPolicyList", "PaginatedPolicyVersionList", "PatchedAgentVersionUpdateRequest", "PatchedBaseAgentUpdateRequest", - "PatchedPatchSelectionRequest", - "PatchedPatchSelectionRequestRefsItem", "PatchedUpdateConnectionRequest", "PatchedUpdateConnectionRequestAuthConfig", "PatchedUpdateConnectionRequestConfig", "PatchedUpdateConnectionRequestDynamicInputs", "PatchedUpdatePolicyRequest", - "PendingProposal", "PoliciesCreateResponse400", "PoliciesPartialUpdateResponse400", "PoliciesUpdateResponse400", @@ -294,11 +264,7 @@ "PublicAgentJobStatusEvent", "PublicAgentJobStatusEventErrorDetails", "QdrantCleanupErrorResponse", - "RegenerateRequest", - "RelevanceEnum", "ResendAgentJobWebhookRequest", - "ResolveRequest", - "ResolveRequestRefsItem", "ReviewStatusEnum", "SkillGenerationStateEnum", "StatusEnum", diff --git a/src/roe/_generated/models/agent_job_result_item.py b/src/roe/_generated/models/agent_job_result_item.py index aafdbc5..a0dc332 100644 --- a/src/roe/_generated/models/agent_job_result_item.py +++ b/src/roe/_generated/models/agent_job_result_item.py @@ -34,12 +34,12 @@ class AgentJobResultItem: result (list[AgentDatum] | None): List of job outputs, or error code if job failed agent_id (None | UUID): Base agent ID agent_version_id (None | UUID): Agent version ID - cost (float | None): Cost of the agent job execution inputs (list[Any] | None): The input data provided to the agent (full version from blob if available, truncated from DB otherwise) - input_tokens (int | None): Number of input tokens used - output_tokens (int | None): Number of output tokens generated corrected_outputs (list[AgentDatum] | None | Unset): List of corrected outputs if any corrections were made + cost (float | None | Unset): Cost of the agent job execution + input_tokens (int | None | Unset): Number of input tokens used + output_tokens (int | None | Unset): Number of output tokens generated """ id: str @@ -47,11 +47,11 @@ class AgentJobResultItem: result: list[AgentDatum] | None agent_id: None | UUID agent_version_id: None | UUID - cost: float | None inputs: list[Any] | None - input_tokens: int | None - output_tokens: int | None corrected_outputs: list[AgentDatum] | None | Unset = UNSET + cost: float | None | Unset = UNSET + input_tokens: int | None | Unset = UNSET + output_tokens: int | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -88,9 +88,6 @@ def to_dict(self) -> dict[str, Any]: else: agent_version_id = self.agent_version_id - cost: float | None - cost = self.cost - inputs: list[Any] | None if isinstance(self.inputs, list): inputs = self.inputs @@ -99,12 +96,6 @@ def to_dict(self) -> dict[str, Any]: else: inputs = self.inputs - input_tokens: int | None - input_tokens = self.input_tokens - - output_tokens: int | None - output_tokens = self.output_tokens - corrected_outputs: list[dict[str, Any]] | None | Unset if isinstance(self.corrected_outputs, Unset): corrected_outputs = UNSET @@ -118,6 +109,24 @@ def to_dict(self) -> dict[str, Any]: else: corrected_outputs = self.corrected_outputs + cost: float | None | Unset + if isinstance(self.cost, Unset): + cost = UNSET + else: + cost = self.cost + + input_tokens: int | None | Unset + if isinstance(self.input_tokens, Unset): + input_tokens = UNSET + else: + input_tokens = self.input_tokens + + output_tokens: int | None | Unset + if isinstance(self.output_tokens, Unset): + output_tokens = UNSET + else: + output_tokens = self.output_tokens + field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -127,13 +136,16 @@ def to_dict(self) -> dict[str, Any]: "result": result, "agent_id": agent_id, "agent_version_id": agent_version_id, - "cost": cost, "inputs": inputs, - "input_tokens": input_tokens, - "output_tokens": output_tokens, }) if corrected_outputs is not UNSET: field_dict["corrected_outputs"] = corrected_outputs + if cost is not UNSET: + field_dict["cost"] = cost + if input_tokens is not UNSET: + field_dict["input_tokens"] = input_tokens + if output_tokens is not UNSET: + field_dict["output_tokens"] = output_tokens return field_dict @@ -212,14 +224,6 @@ def _parse_agent_version_id(data: object) -> None | UUID: agent_version_id = _parse_agent_version_id(d.pop("agent_version_id")) - def _parse_cost(data: object) -> float | None: - if data is None: - return data - return cast(float | None, data) - - cost = _parse_cost(d.pop("cost")) - - def _parse_inputs(data: object) -> list[Any] | None: if data is None: return data @@ -236,22 +240,6 @@ def _parse_inputs(data: object) -> list[Any] | None: inputs = _parse_inputs(d.pop("inputs")) - def _parse_input_tokens(data: object) -> int | None: - if data is None: - return data - return cast(int | None, data) - - input_tokens = _parse_input_tokens(d.pop("input_tokens")) - - - def _parse_output_tokens(data: object) -> int | None: - if data is None: - return data - return cast(int | None, data) - - output_tokens = _parse_output_tokens(d.pop("output_tokens")) - - def _parse_corrected_outputs(data: object) -> list[AgentDatum] | None | Unset: if data is None: return data @@ -277,17 +265,47 @@ def _parse_corrected_outputs(data: object) -> list[AgentDatum] | None | Unset: corrected_outputs = _parse_corrected_outputs(d.pop("corrected_outputs", UNSET)) + def _parse_cost(data: object) -> float | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + return cast(float | None | Unset, data) + + cost = _parse_cost(d.pop("cost", UNSET)) + + + def _parse_input_tokens(data: object) -> int | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + return cast(int | None | Unset, data) + + input_tokens = _parse_input_tokens(d.pop("input_tokens", UNSET)) + + + def _parse_output_tokens(data: object) -> int | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + return cast(int | None | Unset, data) + + output_tokens = _parse_output_tokens(d.pop("output_tokens", UNSET)) + + agent_job_result_item = cls( id=id, status=status, result=result, agent_id=agent_id, agent_version_id=agent_version_id, - cost=cost, inputs=inputs, + corrected_outputs=corrected_outputs, + cost=cost, input_tokens=input_tokens, output_tokens=output_tokens, - corrected_outputs=corrected_outputs, ) diff --git a/src/roe/_generated/models/agent_job_result_response.py b/src/roe/_generated/models/agent_job_result_response.py index bef9ed9..ec0bc30 100644 --- a/src/roe/_generated/models/agent_job_result_response.py +++ b/src/roe/_generated/models/agent_job_result_response.py @@ -8,6 +8,7 @@ from ..types import UNSET, Unset +from ..types import UNSET, Unset from typing import cast from uuid import UUID @@ -29,17 +30,17 @@ class AgentJobResultResponse: agent_id (UUID): The ID of the base agent agent_version_id (UUID): The ID of the agent version inputs (list[Any]): The input data provided to the agent - input_tokens (int | None): Number of input tokens used - output_tokens (int | None): Number of output tokens generated outputs (list[AgentDatum]): The output data from the agent + input_tokens (int | None | Unset): Number of input tokens used + output_tokens (int | None | Unset): Number of output tokens generated """ agent_id: UUID agent_version_id: UUID inputs: list[Any] - input_tokens: int | None - output_tokens: int | None outputs: list[AgentDatum] + input_tokens: int | None | Unset = UNSET + output_tokens: int | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -56,12 +57,6 @@ def to_dict(self) -> dict[str, Any]: - input_tokens: int | None - input_tokens = self.input_tokens - - output_tokens: int | None - output_tokens = self.output_tokens - outputs = [] for outputs_item_data in self.outputs: outputs_item = outputs_item_data.to_dict() @@ -69,6 +64,18 @@ def to_dict(self) -> dict[str, Any]: + input_tokens: int | None | Unset + if isinstance(self.input_tokens, Unset): + input_tokens = UNSET + else: + input_tokens = self.input_tokens + + output_tokens: int | None | Unset + if isinstance(self.output_tokens, Unset): + output_tokens = UNSET + else: + output_tokens = self.output_tokens + field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -76,10 +83,12 @@ def to_dict(self) -> dict[str, Any]: "agent_id": agent_id, "agent_version_id": agent_version_id, "inputs": inputs, - "input_tokens": input_tokens, - "output_tokens": output_tokens, "outputs": outputs, }) + if input_tokens is not UNSET: + field_dict["input_tokens"] = input_tokens + if output_tokens is not UNSET: + field_dict["output_tokens"] = output_tokens return field_dict @@ -102,39 +111,43 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: inputs = cast(list[Any], d.pop("inputs")) - def _parse_input_tokens(data: object) -> int | None: - if data is None: - return data - return cast(int | None, data) + outputs = [] + _outputs = d.pop("outputs") + for outputs_item_data in (_outputs): + outputs_item = AgentDatum.from_dict(outputs_item_data) - input_tokens = _parse_input_tokens(d.pop("input_tokens")) - def _parse_output_tokens(data: object) -> int | None: - if data is None: - return data - return cast(int | None, data) + outputs.append(outputs_item) - output_tokens = _parse_output_tokens(d.pop("output_tokens")) + def _parse_input_tokens(data: object) -> int | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + return cast(int | None | Unset, data) - outputs = [] - _outputs = d.pop("outputs") - for outputs_item_data in (_outputs): - outputs_item = AgentDatum.from_dict(outputs_item_data) + input_tokens = _parse_input_tokens(d.pop("input_tokens", UNSET)) + def _parse_output_tokens(data: object) -> int | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + return cast(int | None | Unset, data) - outputs.append(outputs_item) + output_tokens = _parse_output_tokens(d.pop("output_tokens", UNSET)) agent_job_result_response = cls( agent_id=agent_id, agent_version_id=agent_version_id, inputs=inputs, + outputs=outputs, input_tokens=input_tokens, output_tokens=output_tokens, - outputs=outputs, ) diff --git a/src/roe/_generated/models/create_knowledge_base.py b/src/roe/_generated/models/create_knowledge_base.py deleted file mode 100644 index 5edeb97..0000000 --- a/src/roe/_generated/models/create_knowledge_base.py +++ /dev/null @@ -1,113 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..types import UNSET, Unset - -from ..types import UNSET, Unset - - - - - - -T = TypeVar("T", bound="CreateKnowledgeBase") - - - -@_attrs_define -class CreateKnowledgeBase: - """ Body for POST /knowledge-base/ — starts a new draft. - - Attributes: - company (str): - brief (str): - name (str | Unset): - product_name (str | Unset): - website_url (str | Unset): - """ - - company: str - brief: str - name: str | Unset = UNSET - product_name: str | Unset = UNSET - website_url: str | Unset = UNSET - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - - - - - def to_dict(self) -> dict[str, Any]: - company = self.company - - brief = self.brief - - name = self.name - - product_name = self.product_name - - website_url = self.website_url - - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update({ - "company": company, - "brief": brief, - }) - if name is not UNSET: - field_dict["name"] = name - if product_name is not UNSET: - field_dict["product_name"] = product_name - if website_url is not UNSET: - field_dict["website_url"] = website_url - - return field_dict - - - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - d = dict(src_dict) - company = d.pop("company") - - brief = d.pop("brief") - - name = d.pop("name", UNSET) - - product_name = d.pop("product_name", UNSET) - - website_url = d.pop("website_url", UNSET) - - create_knowledge_base = cls( - company=company, - brief=brief, - name=name, - product_name=product_name, - website_url=website_url, - ) - - - create_knowledge_base.additional_properties = d - return create_knowledge_base - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/src/roe/_generated/models/create_knowledge_base_request.py b/src/roe/_generated/models/create_knowledge_base_request.py deleted file mode 100644 index c76acb3..0000000 --- a/src/roe/_generated/models/create_knowledge_base_request.py +++ /dev/null @@ -1,113 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..types import UNSET, Unset - -from ..types import UNSET, Unset - - - - - - -T = TypeVar("T", bound="CreateKnowledgeBaseRequest") - - - -@_attrs_define -class CreateKnowledgeBaseRequest: - """ Body for POST /knowledge-base/ — starts a new draft. - - Attributes: - company (str): - brief (str): - name (str | Unset): - product_name (str | Unset): - website_url (str | Unset): - """ - - company: str - brief: str - name: str | Unset = UNSET - product_name: str | Unset = UNSET - website_url: str | Unset = UNSET - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - - - - - def to_dict(self) -> dict[str, Any]: - company = self.company - - brief = self.brief - - name = self.name - - product_name = self.product_name - - website_url = self.website_url - - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update({ - "company": company, - "brief": brief, - }) - if name is not UNSET: - field_dict["name"] = name - if product_name is not UNSET: - field_dict["product_name"] = product_name - if website_url is not UNSET: - field_dict["website_url"] = website_url - - return field_dict - - - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - d = dict(src_dict) - company = d.pop("company") - - brief = d.pop("brief") - - name = d.pop("name", UNSET) - - product_name = d.pop("product_name", UNSET) - - website_url = d.pop("website_url", UNSET) - - create_knowledge_base_request = cls( - company=company, - brief=brief, - name=name, - product_name=product_name, - website_url=website_url, - ) - - - create_knowledge_base_request.additional_properties = d - return create_knowledge_base_request - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/src/roe/_generated/models/draft.py b/src/roe/_generated/models/draft.py deleted file mode 100644 index 8c8e31b..0000000 --- a/src/roe/_generated/models/draft.py +++ /dev/null @@ -1,270 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..types import UNSET, Unset - -from ..models.draft_status_enum import DraftStatusEnum -from ..types import UNSET, Unset -from typing import cast - -if TYPE_CHECKING: - from ..models.draft_ref import DraftRef - from ..models.pending_proposal import PendingProposal - - - - - -T = TypeVar("T", bound="Draft") - - - -@_attrs_define -class Draft: - """ Projected atlas draft returned from poll/regenerate/resolve endpoints. - - Attributes: - id (str): - status (DraftStatusEnum): * `generating` - generating - * `ready` - ready - * `error` - error - company (str): - suggested_name (str): - product_summary (str): - iteration_count (int): - refs (list[DraftRef]): - error (None | str | Unset): - product_name (None | str | Unset): - pending_proposal (None | PendingProposal | Unset): - created_at (None | str | Unset): - updated_at (None | str | Unset): - """ - - id: str - status: DraftStatusEnum - company: str - suggested_name: str - product_summary: str - iteration_count: int - refs: list[DraftRef] - error: None | str | Unset = UNSET - product_name: None | str | Unset = UNSET - pending_proposal: None | PendingProposal | Unset = UNSET - created_at: None | str | Unset = UNSET - updated_at: None | str | Unset = UNSET - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - - - - - def to_dict(self) -> dict[str, Any]: - from ..models.draft_ref import DraftRef - from ..models.pending_proposal import PendingProposal - id = self.id - - status = self.status.value - - company = self.company - - suggested_name = self.suggested_name - - product_summary = self.product_summary - - iteration_count = self.iteration_count - - refs = [] - for refs_item_data in self.refs: - refs_item = refs_item_data.to_dict() - refs.append(refs_item) - - - - error: None | str | Unset - if isinstance(self.error, Unset): - error = UNSET - else: - error = self.error - - product_name: None | str | Unset - if isinstance(self.product_name, Unset): - product_name = UNSET - else: - product_name = self.product_name - - pending_proposal: dict[str, Any] | None | Unset - if isinstance(self.pending_proposal, Unset): - pending_proposal = UNSET - elif isinstance(self.pending_proposal, PendingProposal): - pending_proposal = self.pending_proposal.to_dict() - else: - pending_proposal = self.pending_proposal - - created_at: None | str | Unset - if isinstance(self.created_at, Unset): - created_at = UNSET - else: - created_at = self.created_at - - updated_at: None | str | Unset - if isinstance(self.updated_at, Unset): - updated_at = UNSET - else: - updated_at = self.updated_at - - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update({ - "id": id, - "status": status, - "company": company, - "suggestedName": suggested_name, - "productSummary": product_summary, - "iterationCount": iteration_count, - "refs": refs, - }) - if error is not UNSET: - field_dict["error"] = error - if product_name is not UNSET: - field_dict["productName"] = product_name - if pending_proposal is not UNSET: - field_dict["pendingProposal"] = pending_proposal - if created_at is not UNSET: - field_dict["createdAt"] = created_at - if updated_at is not UNSET: - field_dict["updatedAt"] = updated_at - - return field_dict - - - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - from ..models.draft_ref import DraftRef - from ..models.pending_proposal import PendingProposal - d = dict(src_dict) - id = d.pop("id") - - status = DraftStatusEnum(d.pop("status")) - - - - - company = d.pop("company") - - suggested_name = d.pop("suggestedName") - - product_summary = d.pop("productSummary") - - iteration_count = d.pop("iterationCount") - - refs = [] - _refs = d.pop("refs") - for refs_item_data in (_refs): - refs_item = DraftRef.from_dict(refs_item_data) - - - - refs.append(refs_item) - - - def _parse_error(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - error = _parse_error(d.pop("error", UNSET)) - - - def _parse_product_name(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - product_name = _parse_product_name(d.pop("productName", UNSET)) - - - def _parse_pending_proposal(data: object) -> None | PendingProposal | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, dict): - raise TypeError() - pending_proposal_type_0 = PendingProposal.from_dict(data) - - - - return pending_proposal_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | PendingProposal | Unset, data) - - pending_proposal = _parse_pending_proposal(d.pop("pendingProposal", UNSET)) - - - def _parse_created_at(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - created_at = _parse_created_at(d.pop("createdAt", UNSET)) - - - def _parse_updated_at(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - updated_at = _parse_updated_at(d.pop("updatedAt", UNSET)) - - - draft = cls( - id=id, - status=status, - company=company, - suggested_name=suggested_name, - product_summary=product_summary, - iteration_count=iteration_count, - refs=refs, - error=error, - product_name=product_name, - pending_proposal=pending_proposal, - created_at=created_at, - updated_at=updated_at, - ) - - - draft.additional_properties = d - return draft - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/src/roe/_generated/models/draft_ref.py b/src/roe/_generated/models/draft_ref.py deleted file mode 100644 index 6be428d..0000000 --- a/src/roe/_generated/models/draft_ref.py +++ /dev/null @@ -1,186 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..types import UNSET, Unset - -from ..models.relevance_enum import RelevanceEnum -from ..types import UNSET, Unset -from typing import cast - - - - - - -T = TypeVar("T", bound="DraftRef") - - - -@_attrs_define -class DraftRef: - """ A single ref in a selection (names-only projection from atlas). - - Attributes: - typology_id (str): - typology_name (str | Unset): - relevance (RelevanceEnum | Unset): * `core` - core - * `watch` - watch - * `edge` - edge Default: RelevanceEnum.WATCH. - rationale (str | Unset): - tactic_ids (list[str] | None | Unset): - tactic_names (list[str] | None | Unset): - """ - - typology_id: str - typology_name: str | Unset = UNSET - relevance: RelevanceEnum | Unset = RelevanceEnum.WATCH - rationale: str | Unset = UNSET - tactic_ids: list[str] | None | Unset = UNSET - tactic_names: list[str] | None | Unset = UNSET - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - - - - - def to_dict(self) -> dict[str, Any]: - typology_id = self.typology_id - - typology_name = self.typology_name - - relevance: str | Unset = UNSET - if not isinstance(self.relevance, Unset): - relevance = self.relevance.value - - - rationale = self.rationale - - tactic_ids: list[str] | None | Unset - if isinstance(self.tactic_ids, Unset): - tactic_ids = UNSET - elif isinstance(self.tactic_ids, list): - tactic_ids = self.tactic_ids - - - else: - tactic_ids = self.tactic_ids - - tactic_names: list[str] | None | Unset - if isinstance(self.tactic_names, Unset): - tactic_names = UNSET - elif isinstance(self.tactic_names, list): - tactic_names = self.tactic_names - - - else: - tactic_names = self.tactic_names - - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update({ - "typologyId": typology_id, - }) - if typology_name is not UNSET: - field_dict["typologyName"] = typology_name - if relevance is not UNSET: - field_dict["relevance"] = relevance - if rationale is not UNSET: - field_dict["rationale"] = rationale - if tactic_ids is not UNSET: - field_dict["tacticIds"] = tactic_ids - if tactic_names is not UNSET: - field_dict["tacticNames"] = tactic_names - - return field_dict - - - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - d = dict(src_dict) - typology_id = d.pop("typologyId") - - typology_name = d.pop("typologyName", UNSET) - - _relevance = d.pop("relevance", UNSET) - relevance: RelevanceEnum | Unset - if isinstance(_relevance, Unset): - relevance = UNSET - else: - relevance = RelevanceEnum(_relevance) - - - - - rationale = d.pop("rationale", UNSET) - - def _parse_tactic_ids(data: object) -> list[str] | None | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, list): - raise TypeError() - tactic_ids_type_0 = cast(list[str], data) - - return tactic_ids_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(list[str] | None | Unset, data) - - tactic_ids = _parse_tactic_ids(d.pop("tacticIds", UNSET)) - - - def _parse_tactic_names(data: object) -> list[str] | None | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, list): - raise TypeError() - tactic_names_type_0 = cast(list[str], data) - - return tactic_names_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(list[str] | None | Unset, data) - - tactic_names = _parse_tactic_names(d.pop("tacticNames", UNSET)) - - - draft_ref = cls( - typology_id=typology_id, - typology_name=typology_name, - relevance=relevance, - rationale=rationale, - tactic_ids=tactic_ids, - tactic_names=tactic_names, - ) - - - draft_ref.additional_properties = d - return draft_ref - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/src/roe/_generated/models/draft_status_enum.py b/src/roe/_generated/models/draft_status_enum.py deleted file mode 100644 index 55741a8..0000000 --- a/src/roe/_generated/models/draft_status_enum.py +++ /dev/null @@ -1,9 +0,0 @@ -from enum import Enum - -class DraftStatusEnum(str, Enum): - ERROR = "error" - GENERATING = "generating" - READY = "ready" - - def __str__(self) -> str: - return str(self.value) diff --git a/src/roe/_generated/models/finalize_request.py b/src/roe/_generated/models/finalize_request.py deleted file mode 100644 index e3e039f..0000000 --- a/src/roe/_generated/models/finalize_request.py +++ /dev/null @@ -1,97 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..types import UNSET, Unset - -from ..types import UNSET, Unset - - - - - - -T = TypeVar("T", bound="FinalizeRequest") - - - -@_attrs_define -class FinalizeRequest: - """ Body for POST /knowledge-base//finalize/. - - Attributes: - name (str | Unset): - mcp_enabled (bool | Unset): Default: True. - public (bool | Unset): Default: True. - """ - - name: str | Unset = UNSET - mcp_enabled: bool | Unset = True - public: bool | Unset = True - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - - - - - def to_dict(self) -> dict[str, Any]: - name = self.name - - mcp_enabled = self.mcp_enabled - - public = self.public - - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update({ - }) - if name is not UNSET: - field_dict["name"] = name - if mcp_enabled is not UNSET: - field_dict["mcp_enabled"] = mcp_enabled - if public is not UNSET: - field_dict["public"] = public - - return field_dict - - - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - d = dict(src_dict) - name = d.pop("name", UNSET) - - mcp_enabled = d.pop("mcp_enabled", UNSET) - - public = d.pop("public", UNSET) - - finalize_request = cls( - name=name, - mcp_enabled=mcp_enabled, - public=public, - ) - - - finalize_request.additional_properties = d - return finalize_request - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/src/roe/_generated/models/knowledge_base.py b/src/roe/_generated/models/knowledge_base.py deleted file mode 100644 index f6d7cdc..0000000 --- a/src/roe/_generated/models/knowledge_base.py +++ /dev/null @@ -1,242 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..types import UNSET, Unset - -from ..models.knowledge_base_status_enum import KnowledgeBaseStatusEnum -from dateutil.parser import isoparse -from typing import cast -from uuid import UUID -import datetime - - - - - - -T = TypeVar("T", bound="KnowledgeBase") - - - -@_attrs_define -class KnowledgeBase: - """ - Attributes: - id (UUID): - organization_id (UUID): - name (str): - company (str): - status (KnowledgeBaseStatusEnum): * `drafting` - Drafting - * `active` - Active - * `orphaned` - Orphaned - atlas_draft_id (None | str): - atlas_lens_id (None | str): - mcp_url (str): - lens_snapshot (Any | None): - last_synced_at (datetime.datetime | None): - sync_error (None | str): - created_at (datetime.datetime): - updated_at (datetime.datetime): - """ - - id: UUID - organization_id: UUID - name: str - company: str - status: KnowledgeBaseStatusEnum - atlas_draft_id: None | str - atlas_lens_id: None | str - mcp_url: str - lens_snapshot: Any | None - last_synced_at: datetime.datetime | None - sync_error: None | str - created_at: datetime.datetime - updated_at: datetime.datetime - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - - - - - def to_dict(self) -> dict[str, Any]: - id = str(self.id) - - organization_id = str(self.organization_id) - - name = self.name - - company = self.company - - status = self.status.value - - atlas_draft_id: None | str - atlas_draft_id = self.atlas_draft_id - - atlas_lens_id: None | str - atlas_lens_id = self.atlas_lens_id - - mcp_url = self.mcp_url - - lens_snapshot: Any | None - lens_snapshot = self.lens_snapshot - - last_synced_at: None | str - if isinstance(self.last_synced_at, datetime.datetime): - last_synced_at = self.last_synced_at.isoformat() - else: - last_synced_at = self.last_synced_at - - sync_error: None | str - sync_error = self.sync_error - - created_at = self.created_at.isoformat() - - updated_at = self.updated_at.isoformat() - - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update({ - "id": id, - "organization_id": organization_id, - "name": name, - "company": company, - "status": status, - "atlas_draft_id": atlas_draft_id, - "atlas_lens_id": atlas_lens_id, - "mcp_url": mcp_url, - "lens_snapshot": lens_snapshot, - "last_synced_at": last_synced_at, - "sync_error": sync_error, - "created_at": created_at, - "updated_at": updated_at, - }) - - return field_dict - - - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - d = dict(src_dict) - id = UUID(d.pop("id")) - - - - - organization_id = UUID(d.pop("organization_id")) - - - - - name = d.pop("name") - - company = d.pop("company") - - status = KnowledgeBaseStatusEnum(d.pop("status")) - - - - - def _parse_atlas_draft_id(data: object) -> None | str: - if data is None: - return data - return cast(None | str, data) - - atlas_draft_id = _parse_atlas_draft_id(d.pop("atlas_draft_id")) - - - def _parse_atlas_lens_id(data: object) -> None | str: - if data is None: - return data - return cast(None | str, data) - - atlas_lens_id = _parse_atlas_lens_id(d.pop("atlas_lens_id")) - - - mcp_url = d.pop("mcp_url") - - def _parse_lens_snapshot(data: object) -> Any | None: - if data is None: - return data - return cast(Any | None, data) - - lens_snapshot = _parse_lens_snapshot(d.pop("lens_snapshot")) - - - def _parse_last_synced_at(data: object) -> datetime.datetime | None: - if data is None: - return data - try: - if not isinstance(data, str): - raise TypeError() - last_synced_at_type_0 = isoparse(data) - - - - return last_synced_at_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(datetime.datetime | None, data) - - last_synced_at = _parse_last_synced_at(d.pop("last_synced_at")) - - - def _parse_sync_error(data: object) -> None | str: - if data is None: - return data - return cast(None | str, data) - - sync_error = _parse_sync_error(d.pop("sync_error")) - - - created_at = isoparse(d.pop("created_at")) - - - - - updated_at = isoparse(d.pop("updated_at")) - - - - - knowledge_base = cls( - id=id, - organization_id=organization_id, - name=name, - company=company, - status=status, - atlas_draft_id=atlas_draft_id, - atlas_lens_id=atlas_lens_id, - mcp_url=mcp_url, - lens_snapshot=lens_snapshot, - last_synced_at=last_synced_at, - sync_error=sync_error, - created_at=created_at, - updated_at=updated_at, - ) - - - knowledge_base.additional_properties = d - return knowledge_base - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/src/roe/_generated/models/knowledge_base_import_lens_create_body.py b/src/roe/_generated/models/knowledge_base_import_lens_create_body.py deleted file mode 100644 index ca86efe..0000000 --- a/src/roe/_generated/models/knowledge_base_import_lens_create_body.py +++ /dev/null @@ -1,65 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..types import UNSET, Unset - - - - - - - -T = TypeVar("T", bound="KnowledgeBaseImportLensCreateBody") - - - -@_attrs_define -class KnowledgeBaseImportLensCreateBody: - """ - """ - - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - - - - - def to_dict(self) -> dict[str, Any]: - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - - return field_dict - - - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - d = dict(src_dict) - knowledge_base_import_lens_create_body = cls( - ) - - - knowledge_base_import_lens_create_body.additional_properties = d - return knowledge_base_import_lens_create_body - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/src/roe/_generated/models/knowledge_base_status_enum.py b/src/roe/_generated/models/knowledge_base_status_enum.py deleted file mode 100644 index 2f9aa73..0000000 --- a/src/roe/_generated/models/knowledge_base_status_enum.py +++ /dev/null @@ -1,9 +0,0 @@ -from enum import Enum - -class KnowledgeBaseStatusEnum(str, Enum): - ACTIVE = "active" - DRAFTING = "drafting" - ORPHANED = "orphaned" - - def __str__(self) -> str: - return str(self.value) diff --git a/src/roe/_generated/models/paginated_knowledge_base_list.py b/src/roe/_generated/models/paginated_knowledge_base_list.py deleted file mode 100644 index 9f5d1dd..0000000 --- a/src/roe/_generated/models/paginated_knowledge_base_list.py +++ /dev/null @@ -1,145 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..types import UNSET, Unset - -from ..types import UNSET, Unset -from typing import cast - -if TYPE_CHECKING: - from ..models.knowledge_base import KnowledgeBase - - - - - -T = TypeVar("T", bound="PaginatedKnowledgeBaseList") - - - -@_attrs_define -class PaginatedKnowledgeBaseList: - """ - Attributes: - count (int): Example: 123. - results (list[KnowledgeBase]): - next_ (None | str | Unset): Example: http://api.example.org/accounts/?page=4. - previous (None | str | Unset): Example: http://api.example.org/accounts/?page=2. - """ - - count: int - results: list[KnowledgeBase] - next_: None | str | Unset = UNSET - previous: None | str | Unset = UNSET - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - - - - - def to_dict(self) -> dict[str, Any]: - from ..models.knowledge_base import KnowledgeBase - count = self.count - - results = [] - for results_item_data in self.results: - results_item = results_item_data.to_dict() - results.append(results_item) - - - - next_: None | str | Unset - if isinstance(self.next_, Unset): - next_ = UNSET - else: - next_ = self.next_ - - previous: None | str | Unset - if isinstance(self.previous, Unset): - previous = UNSET - else: - previous = self.previous - - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update({ - "count": count, - "results": results, - }) - if next_ is not UNSET: - field_dict["next"] = next_ - if previous is not UNSET: - field_dict["previous"] = previous - - return field_dict - - - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - from ..models.knowledge_base import KnowledgeBase - d = dict(src_dict) - count = d.pop("count") - - results = [] - _results = d.pop("results") - for results_item_data in (_results): - results_item = KnowledgeBase.from_dict(results_item_data) - - - - results.append(results_item) - - - def _parse_next_(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - next_ = _parse_next_(d.pop("next", UNSET)) - - - def _parse_previous(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - previous = _parse_previous(d.pop("previous", UNSET)) - - - paginated_knowledge_base_list = cls( - count=count, - results=results, - next_=next_, - previous=previous, - ) - - - paginated_knowledge_base_list.additional_properties = d - return paginated_knowledge_base_list - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/src/roe/_generated/models/patched_patch_selection_request.py b/src/roe/_generated/models/patched_patch_selection_request.py deleted file mode 100644 index 8d8f269..0000000 --- a/src/roe/_generated/models/patched_patch_selection_request.py +++ /dev/null @@ -1,110 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..types import UNSET, Unset - -from ..types import UNSET, Unset -from typing import cast - -if TYPE_CHECKING: - from ..models.patched_patch_selection_request_refs_item import PatchedPatchSelectionRequestRefsItem - - - - - -T = TypeVar("T", bound="PatchedPatchSelectionRequest") - - - -@_attrs_define -class PatchedPatchSelectionRequest: - """ Body for PATCH /knowledge-base//selection/. - - Attributes: - refs (list[PatchedPatchSelectionRequestRefsItem] | Unset): - suggested_name (str | Unset): - """ - - refs: list[PatchedPatchSelectionRequestRefsItem] | Unset = UNSET - suggested_name: str | Unset = UNSET - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - - - - - def to_dict(self) -> dict[str, Any]: - from ..models.patched_patch_selection_request_refs_item import PatchedPatchSelectionRequestRefsItem - refs: list[dict[str, Any]] | Unset = UNSET - if not isinstance(self.refs, Unset): - refs = [] - for refs_item_data in self.refs: - refs_item = refs_item_data.to_dict() - refs.append(refs_item) - - - - suggested_name = self.suggested_name - - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update({ - }) - if refs is not UNSET: - field_dict["refs"] = refs - if suggested_name is not UNSET: - field_dict["suggested_name"] = suggested_name - - return field_dict - - - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - from ..models.patched_patch_selection_request_refs_item import PatchedPatchSelectionRequestRefsItem - d = dict(src_dict) - _refs = d.pop("refs", UNSET) - refs: list[PatchedPatchSelectionRequestRefsItem] | Unset = UNSET - if _refs is not UNSET: - refs = [] - for refs_item_data in _refs: - refs_item = PatchedPatchSelectionRequestRefsItem.from_dict(refs_item_data) - - - - refs.append(refs_item) - - - suggested_name = d.pop("suggested_name", UNSET) - - patched_patch_selection_request = cls( - refs=refs, - suggested_name=suggested_name, - ) - - - patched_patch_selection_request.additional_properties = d - return patched_patch_selection_request - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/src/roe/_generated/models/patched_patch_selection_request_refs_item.py b/src/roe/_generated/models/patched_patch_selection_request_refs_item.py deleted file mode 100644 index 6a66e66..0000000 --- a/src/roe/_generated/models/patched_patch_selection_request_refs_item.py +++ /dev/null @@ -1,65 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..types import UNSET, Unset - - - - - - - -T = TypeVar("T", bound="PatchedPatchSelectionRequestRefsItem") - - - -@_attrs_define -class PatchedPatchSelectionRequestRefsItem: - """ - """ - - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - - - - - def to_dict(self) -> dict[str, Any]: - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - - return field_dict - - - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - d = dict(src_dict) - patched_patch_selection_request_refs_item = cls( - ) - - - patched_patch_selection_request_refs_item.additional_properties = d - return patched_patch_selection_request_refs_item - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/src/roe/_generated/models/pending_proposal.py b/src/roe/_generated/models/pending_proposal.py deleted file mode 100644 index 34c5745..0000000 --- a/src/roe/_generated/models/pending_proposal.py +++ /dev/null @@ -1,177 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..types import UNSET, Unset - -from ..types import UNSET, Unset -from typing import cast - -if TYPE_CHECKING: - from ..models.draft_ref import DraftRef - - - - - -T = TypeVar("T", bound="PendingProposal") - - - -@_attrs_define -class PendingProposal: - """ A staged regeneration awaiting reviewer approval (names-only). - - Attributes: - refs (list[DraftRef]): - base_selection (list[DraftRef]): - feedback (None | str | Unset): - suggested_name (str | Unset): - product_summary (str | Unset): - created_at (None | str | Unset): - """ - - refs: list[DraftRef] - base_selection: list[DraftRef] - feedback: None | str | Unset = UNSET - suggested_name: str | Unset = UNSET - product_summary: str | Unset = UNSET - created_at: None | str | Unset = UNSET - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - - - - - def to_dict(self) -> dict[str, Any]: - from ..models.draft_ref import DraftRef - refs = [] - for refs_item_data in self.refs: - refs_item = refs_item_data.to_dict() - refs.append(refs_item) - - - - base_selection = [] - for base_selection_item_data in self.base_selection: - base_selection_item = base_selection_item_data.to_dict() - base_selection.append(base_selection_item) - - - - feedback: None | str | Unset - if isinstance(self.feedback, Unset): - feedback = UNSET - else: - feedback = self.feedback - - suggested_name = self.suggested_name - - product_summary = self.product_summary - - created_at: None | str | Unset - if isinstance(self.created_at, Unset): - created_at = UNSET - else: - created_at = self.created_at - - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update({ - "refs": refs, - "baseSelection": base_selection, - }) - if feedback is not UNSET: - field_dict["feedback"] = feedback - if suggested_name is not UNSET: - field_dict["suggestedName"] = suggested_name - if product_summary is not UNSET: - field_dict["productSummary"] = product_summary - if created_at is not UNSET: - field_dict["createdAt"] = created_at - - return field_dict - - - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - from ..models.draft_ref import DraftRef - d = dict(src_dict) - refs = [] - _refs = d.pop("refs") - for refs_item_data in (_refs): - refs_item = DraftRef.from_dict(refs_item_data) - - - - refs.append(refs_item) - - - base_selection = [] - _base_selection = d.pop("baseSelection") - for base_selection_item_data in (_base_selection): - base_selection_item = DraftRef.from_dict(base_selection_item_data) - - - - base_selection.append(base_selection_item) - - - def _parse_feedback(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - feedback = _parse_feedback(d.pop("feedback", UNSET)) - - - suggested_name = d.pop("suggestedName", UNSET) - - product_summary = d.pop("productSummary", UNSET) - - def _parse_created_at(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - created_at = _parse_created_at(d.pop("createdAt", UNSET)) - - - pending_proposal = cls( - refs=refs, - base_selection=base_selection, - feedback=feedback, - suggested_name=suggested_name, - product_summary=product_summary, - created_at=created_at, - ) - - - pending_proposal.additional_properties = d - return pending_proposal - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/src/roe/_generated/models/regenerate_request.py b/src/roe/_generated/models/regenerate_request.py deleted file mode 100644 index cd8e448..0000000 --- a/src/roe/_generated/models/regenerate_request.py +++ /dev/null @@ -1,79 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..types import UNSET, Unset - -from ..types import UNSET, Unset - - - - - - -T = TypeVar("T", bound="RegenerateRequest") - - - -@_attrs_define -class RegenerateRequest: - """ Body for POST /knowledge-base//regenerate/. - - Attributes: - feedback (str | Unset): - """ - - feedback: str | Unset = UNSET - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - - - - - def to_dict(self) -> dict[str, Any]: - feedback = self.feedback - - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update({ - }) - if feedback is not UNSET: - field_dict["feedback"] = feedback - - return field_dict - - - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - d = dict(src_dict) - feedback = d.pop("feedback", UNSET) - - regenerate_request = cls( - feedback=feedback, - ) - - - regenerate_request.additional_properties = d - return regenerate_request - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/src/roe/_generated/models/relevance_enum.py b/src/roe/_generated/models/relevance_enum.py deleted file mode 100644 index c93a2ed..0000000 --- a/src/roe/_generated/models/relevance_enum.py +++ /dev/null @@ -1,9 +0,0 @@ -from enum import Enum - -class RelevanceEnum(str, Enum): - CORE = "core" - EDGE = "edge" - WATCH = "watch" - - def __str__(self) -> str: - return str(self.value) diff --git a/src/roe/_generated/models/resolve_request.py b/src/roe/_generated/models/resolve_request.py deleted file mode 100644 index f9fa72f..0000000 --- a/src/roe/_generated/models/resolve_request.py +++ /dev/null @@ -1,132 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..types import UNSET, Unset - -from ..types import UNSET, Unset -from typing import cast - -if TYPE_CHECKING: - from ..models.resolve_request_refs_item import ResolveRequestRefsItem - - - - - -T = TypeVar("T", bound="ResolveRequest") - - - -@_attrs_define -class ResolveRequest: - """ Body for POST /knowledge-base//resolve/. - - discard=True declines the pending proposal. Otherwise refs is the reviewer's - resolved selection (opaque-handle dicts) and suggested_name / accept_summary - optionally adopt the proposal's name / summary. - - Attributes: - refs (list[ResolveRequestRefsItem] | Unset): - suggested_name (str | Unset): - accept_summary (bool | Unset): Default: False. - discard (bool | Unset): Default: False. - """ - - refs: list[ResolveRequestRefsItem] | Unset = UNSET - suggested_name: str | Unset = UNSET - accept_summary: bool | Unset = False - discard: bool | Unset = False - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - - - - - def to_dict(self) -> dict[str, Any]: - from ..models.resolve_request_refs_item import ResolveRequestRefsItem - refs: list[dict[str, Any]] | Unset = UNSET - if not isinstance(self.refs, Unset): - refs = [] - for refs_item_data in self.refs: - refs_item = refs_item_data.to_dict() - refs.append(refs_item) - - - - suggested_name = self.suggested_name - - accept_summary = self.accept_summary - - discard = self.discard - - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update({ - }) - if refs is not UNSET: - field_dict["refs"] = refs - if suggested_name is not UNSET: - field_dict["suggested_name"] = suggested_name - if accept_summary is not UNSET: - field_dict["accept_summary"] = accept_summary - if discard is not UNSET: - field_dict["discard"] = discard - - return field_dict - - - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - from ..models.resolve_request_refs_item import ResolveRequestRefsItem - d = dict(src_dict) - _refs = d.pop("refs", UNSET) - refs: list[ResolveRequestRefsItem] | Unset = UNSET - if _refs is not UNSET: - refs = [] - for refs_item_data in _refs: - refs_item = ResolveRequestRefsItem.from_dict(refs_item_data) - - - - refs.append(refs_item) - - - suggested_name = d.pop("suggested_name", UNSET) - - accept_summary = d.pop("accept_summary", UNSET) - - discard = d.pop("discard", UNSET) - - resolve_request = cls( - refs=refs, - suggested_name=suggested_name, - accept_summary=accept_summary, - discard=discard, - ) - - - resolve_request.additional_properties = d - return resolve_request - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/src/roe/_generated/models/resolve_request_refs_item.py b/src/roe/_generated/models/resolve_request_refs_item.py deleted file mode 100644 index 324f35b..0000000 --- a/src/roe/_generated/models/resolve_request_refs_item.py +++ /dev/null @@ -1,65 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..types import UNSET, Unset - - - - - - - -T = TypeVar("T", bound="ResolveRequestRefsItem") - - - -@_attrs_define -class ResolveRequestRefsItem: - """ - """ - - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - - - - - def to_dict(self) -> dict[str, Any]: - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - - return field_dict - - - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - d = dict(src_dict) - resolve_request_refs_item = cls( - ) - - - resolve_request_refs_item.additional_properties = d - return resolve_request_refs_item - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/src/roe/api/knowledge_base.py b/src/roe/api/knowledge_base.py deleted file mode 100644 index ba0da6b..0000000 --- a/src/roe/api/knowledge_base.py +++ /dev/null @@ -1,276 +0,0 @@ -"""Knowledge Base API — thin facade over the generated raw client. - -Methods call the generated endpoint functions in -``roe._generated.api.knowledge_base`` and return the generated response models -directly. Non-2xx responses are translated to the typed ``RoeAPIException`` -family at the wrapper boundary. - -This is a hand-maintained ("manual") wrapper: the knowledge_base operations are -declared ``kind: manual`` in the SDK contract, so codegen does not generate this -module. It is wired explicitly in ``roe.client`` like agents/policies/users. -""" - -from __future__ import annotations - -from typing import Any -from uuid import UUID - -from roe._generated.api.knowledge_base import ( - knowledge_base_catalog_retrieve, - knowledge_base_create, - knowledge_base_destroy, - knowledge_base_draft_retrieve, - knowledge_base_finalize_create, - knowledge_base_import_lens_create, - knowledge_base_lens_retrieve, - knowledge_base_list, - knowledge_base_regenerate_create, - knowledge_base_resolve_create, - knowledge_base_retrieve, - knowledge_base_selection_partial_update, - knowledge_base_sync_create, - knowledge_base_unlink_destroy, -) -from roe._generated.client import AuthenticatedClient -from roe._generated.models.create_knowledge_base import CreateKnowledgeBase -from roe._generated.models.create_knowledge_base_request import ( - CreateKnowledgeBaseRequest, -) -from roe._generated.models.draft import Draft -from roe._generated.models.finalize_request import FinalizeRequest -from roe._generated.models.knowledge_base import KnowledgeBase -from roe._generated.models.knowledge_base_import_lens_create_body import ( - KnowledgeBaseImportLensCreateBody, -) -from roe._generated.models.paginated_knowledge_base_list import ( - PaginatedKnowledgeBaseList, -) -from roe._generated.models.patched_patch_selection_request import ( - PatchedPatchSelectionRequest, -) -from roe._generated.models.patched_patch_selection_request_refs_item import ( - PatchedPatchSelectionRequestRefsItem, -) -from roe._generated.models.regenerate_request import RegenerateRequest -from roe._generated.models.resolve_request import ResolveRequest -from roe._generated.models.resolve_request_refs_item import ResolveRequestRefsItem -from roe._generated.types import UNSET -from roe.config import RoeConfig -from roe.utils.generated_request import request_raw - - -class KnowledgeBaseAPI: - """API for managing Knowledge Base lenses and drafts.""" - - def __init__(self, config: RoeConfig, raw_client: AuthenticatedClient): - self.config = config - self._raw = raw_client - - def _org(self) -> Any: - org = self.config.organization_id - return UUID(str(org)) if org else UNSET - - def list( - self, - page: int | None = None, - page_size: int | None = None, - ) -> PaginatedKnowledgeBaseList: - """List all knowledge bases for the organisation.""" - response = request_raw( - self._raw, - knowledge_base_list, - page=page if page is not None else UNSET, - page_size=page_size if page_size is not None else UNSET, - organization_id=self._org(), - ) - return PaginatedKnowledgeBaseList.from_dict(response.json()) - - def create( - self, - company: str, - brief: str, - name: str | None = None, - product_name: str | None = None, - website_url: str | None = None, - ) -> CreateKnowledgeBase: - """Create a new knowledge base draft (async generation).""" - body = CreateKnowledgeBaseRequest( - company=company, - brief=brief, - name=name if name is not None else UNSET, - product_name=product_name if product_name is not None else UNSET, - website_url=website_url if website_url is not None else UNSET, - ) - response = request_raw( - self._raw, - knowledge_base_create, - body=body, - organization_id=self._org(), - ) - return CreateKnowledgeBase.from_dict(response.json()) - - def retrieve(self, knowledge_base_id: str) -> KnowledgeBase: - """Retrieve a single knowledge base record.""" - response = request_raw( - self._raw, - knowledge_base_retrieve, - UUID(str(knowledge_base_id)), - organization_id=self._org(), - ) - return KnowledgeBase.from_dict(response.json()) - - def delete(self, knowledge_base_id: str) -> None: - """Delete a knowledge base and its associated Atlas draft or lens.""" - request_raw( - self._raw, - knowledge_base_destroy, - UUID(str(knowledge_base_id)), - organization_id=self._org(), - ) - - def unlink(self, knowledge_base_id: str) -> None: - """Unlink a knowledge base locally, preserving the Atlas lens.""" - request_raw( - self._raw, - knowledge_base_unlink_destroy, - UUID(str(knowledge_base_id)), - organization_id=self._org(), - ) - - def poll_draft(self, knowledge_base_id: str) -> Draft: - """Poll the Atlas draft status until ready or error.""" - response = request_raw( - self._raw, - knowledge_base_draft_retrieve, - UUID(str(knowledge_base_id)), - organization_id=self._org(), - ) - return Draft.from_dict(response.json()) - - def patch_selection( - self, - knowledge_base_id: str, - refs: list[dict[str, Any]], - suggested_name: str | None = None, - ) -> Draft: - """Patch the draft's typology/tactic selection.""" - body = PatchedPatchSelectionRequest( - refs=[PatchedPatchSelectionRequestRefsItem.from_dict(r) for r in refs], - suggested_name=suggested_name if suggested_name is not None else UNSET, - ) - response = request_raw( - self._raw, - knowledge_base_selection_partial_update, - UUID(str(knowledge_base_id)), - body=body, - organization_id=self._org(), - ) - return Draft.from_dict(response.json()) - - def regenerate( - self, - knowledge_base_id: str, - feedback: str | None = None, - ) -> Draft: - """Kick off an async regeneration round with optional feedback.""" - body = RegenerateRequest( - feedback=feedback if feedback is not None else UNSET, - ) - response = request_raw( - self._raw, - knowledge_base_regenerate_create, - UUID(str(knowledge_base_id)), - body=body, - organization_id=self._org(), - ) - return Draft.from_dict(response.json()) - - def resolve( - self, - knowledge_base_id: str, - refs: list[dict[str, Any]] | None = None, - suggested_name: str | None = None, - accept_summary: bool = False, - discard: bool = False, - ) -> Draft: - """Approve or decline a pending regeneration proposal.""" - body = ResolveRequest( - refs=[ResolveRequestRefsItem.from_dict(r) for r in refs] - if refs is not None - else UNSET, - suggested_name=suggested_name if suggested_name is not None else UNSET, - accept_summary=accept_summary, - discard=discard, - ) - response = request_raw( - self._raw, - knowledge_base_resolve_create, - UUID(str(knowledge_base_id)), - body=body, - organization_id=self._org(), - ) - return Draft.from_dict(response.json()) - - def finalize( - self, - knowledge_base_id: str, - name: str | None = None, - mcp_enabled: bool = True, - public: bool = True, - ) -> KnowledgeBase: - """Commit the draft into a permanent Atlas lens.""" - body = FinalizeRequest( - name=name if name is not None else UNSET, - mcp_enabled=mcp_enabled, - public=public, - ) - response = request_raw( - self._raw, - knowledge_base_finalize_create, - UUID(str(knowledge_base_id)), - body=body, - organization_id=self._org(), - ) - return KnowledgeBase.from_dict(response.json()) - - def sync(self, knowledge_base_id: str) -> KnowledgeBase: - """Sync the lens snapshot from Atlas (best-effort).""" - response = request_raw( - self._raw, - knowledge_base_sync_create, - UUID(str(knowledge_base_id)), - organization_id=self._org(), - ) - return KnowledgeBase.from_dict(response.json()) - - def catalog(self) -> Any: - """Fetch the names-only typology and tactic catalog.""" - response = request_raw( - self._raw, - knowledge_base_catalog_retrieve, - organization_id=self._org(), - ) - return response.json() - - def lens_by_atlas_id(self, atlas_lens_id: str) -> Any: - """Fetch and optionally sync a lens by its Atlas ID.""" - response = request_raw( - self._raw, - knowledge_base_lens_retrieve, - str(atlas_lens_id), - organization_id=self._org(), - ) - return response.json() - - def import_lens(self, atlas_lens_id: str) -> KnowledgeBase: - """Import a finalized Atlas lens into roe-main by its atlas_lens_id.""" - body = KnowledgeBaseImportLensCreateBody.from_dict( - {"atlas_lens_id": atlas_lens_id} - ) - response = request_raw( - self._raw, - knowledge_base_import_lens_create, - body=body, - organization_id=self._org(), - ) - return KnowledgeBase.from_dict(response.json()) diff --git a/src/roe/client.py b/src/roe/client.py index 93a6b9e..daab0bd 100644 --- a/src/roe/client.py +++ b/src/roe/client.py @@ -7,7 +7,6 @@ from roe._generated.client import AuthenticatedClient as RawClient from roe.api._generated_registry import GENERATED_API_CLASSES from roe.api.agents import AgentsAPI -from roe.api.knowledge_base import KnowledgeBaseAPI from roe.api.policies import PoliciesAPI from roe.api.users import UsersAPI from roe.auth import RoeAuth @@ -98,7 +97,6 @@ def __init__( self._agents = AgentsAPI(self.config, self._raw) self._policies = PoliciesAPI(self.config, self._raw) self._users = UsersAPI(self.config, self._raw) - self._knowledge_base = KnowledgeBaseAPI(self.config, self._raw) self._generated_apis = { name: api_cls(self.config, self._raw) for name, api_cls in GENERATED_API_CLASSES.items() @@ -168,28 +166,6 @@ def users(self) -> UsersAPI: """ return self._users - @property - def knowledge_base(self) -> KnowledgeBaseAPI: - """Access the knowledge base API for managing lenses and drafts. - - Returns: - KnowledgeBaseAPI instance for managing knowledge bases. - - Examples: - # Create a knowledge base draft - kb = client.knowledge_base.create( - company="Acme Corp", - brief="A long-enough brief describing the company and goals.", - ) - - # List knowledge bases - knowledge_bases = client.knowledge_base.list() - - # Finalize a draft into a permanent lens - client.knowledge_base.finalize(str(kb.id)) - """ - return self._knowledge_base - @property def raw(self) -> RawClient: """Access the generated raw client.""" diff --git a/tests/unit/test_knowledge_base_wrapper_transport.py b/tests/unit/test_knowledge_base_wrapper_transport.py deleted file mode 100644 index 44fdf3a..0000000 --- a/tests/unit/test_knowledge_base_wrapper_transport.py +++ /dev/null @@ -1,99 +0,0 @@ -"""Regression tests for public knowledge base wrapper transport behavior.""" - -from __future__ import annotations - -from types import SimpleNamespace -from unittest.mock import MagicMock -from uuid import UUID - -import httpx - -from roe.api.knowledge_base import KnowledgeBaseAPI - -ORG_ID = "00000000-0000-0000-0000-000000000123" -KB_ID = "00000000-0000-0000-0000-000000000444" - - -def _api(response: httpx.Response) -> tuple[KnowledgeBaseAPI, MagicMock]: - request = MagicMock(return_value=response) - raw_client = MagicMock() - raw_client.get_httpx_client.return_value = SimpleNamespace(request=request) - config = SimpleNamespace(organization_id=ORG_ID) - return KnowledgeBaseAPI(config, raw_client), request - - -def _draft_json() -> dict[str, object]: - return { - "id": "draft-1", - "status": "ready", - "company": "Acme", - "suggestedName": "Acme Lens", - "productSummary": "summary", - "iterationCount": 1, - "refs": [], - } - - -def test_create_posts_body_with_org_query(): - api, request = _api( - httpx.Response(201, json={"company": "Acme", "brief": "a long enough brief"}) - ) - - result = api.create(company="Acme", brief="a long enough brief") - - kwargs = request.call_args.kwargs - assert kwargs["method"] == "post" - assert kwargs["params"] == {"organization_id": ORG_ID} - assert kwargs["json"] == {"company": "Acme", "brief": "a long enough brief"} - assert result.company == "Acme" - - -def test_list_sends_pagination_and_org_query(): - api, request = _api(httpx.Response(200, json={"count": 0, "results": []})) - - result = api.list(page=2, page_size=10) - - kwargs = request.call_args.kwargs - assert kwargs["method"] == "get" - assert kwargs["params"] == { - "page": 2, - "page_size": 10, - "organization_id": ORG_ID, - } - assert result.count == 0 - - -def test_patch_selection_round_trips_refs_in_body(): - api, request = _api(httpx.Response(200, json=_draft_json())) - - refs = [{"typologyId": "t1", "relevance": "core"}] - api.patch_selection(KB_ID, refs=refs, suggested_name="Acme Lens") - - kwargs = request.call_args.kwargs - assert kwargs["method"] == "patch" - assert kwargs["params"] == {"organization_id": ORG_ID} - assert kwargs["json"] == {"refs": refs, "suggested_name": "Acme Lens"} - - -def test_delete_sends_delete_with_org_query_and_no_body(): - api, request = _api(httpx.Response(204)) - - assert api.delete(KB_ID) is None - - kwargs = request.call_args.kwargs - assert kwargs["method"] == "delete" - assert kwargs["params"] == {"organization_id": ORG_ID} - assert "json" not in kwargs - # path-arg is interpolated into the URL, not sent as a query param - assert UUID(KB_ID).hex in kwargs["url"].replace("-", "") - - -def test_unlink_sends_delete_to_unlink_endpoint_with_org_query(): - api, request = _api(httpx.Response(204)) - - assert api.unlink(KB_ID) is None - - kwargs = request.call_args.kwargs - assert kwargs["method"] == "delete" - assert kwargs["params"] == {"organization_id": ORG_ID} - assert kwargs["url"].endswith(f"/v1/knowledge-base/{KB_ID}/unlink/")