* feat: add update document tags endpoint with observation invalidation
Adds PATCH /v1/default/banks/{bank_id}/documents/{document_id} to change
tags on a document without re-processing content.
- Updates tags on the document and all associated memory units atomically
- Invalidates observations derived from the document's memory units
- Resets consolidated_at on the document's own units for re-consolidation
- Also resets consolidated_at on co-source memories from other documents
that shared those observations (matching delete_document behavior)
- Triggers async consolidation when observations are invalidated
- 9 new tests covering all invalidation scenarios
UI: adds inline tag editor to the document detail panel in the control plane
Docs: new "Update Document Tags" section in documents.mdx with Python/JS examples
* refactor: simplify UpdateDocumentTagsResponse to {success: true}
* refactor: make PATCH /documents generic update_document endpoint
Renames update_document_tags → update_document (engine + HTTP + clients + UI).
Currently only tags are supported; the structure is open for future fields.
Tags are the only field with side effects (observation invalidation + re-consolidation).
127 lines
3.3 KiB
Go
127 lines
3.3 KiB
Go
/*
|
|
Hindsight HTTP API
|
|
|
|
HTTP API for Hindsight
|
|
|
|
API version: 0.4.16
|
|
*/
|
|
|
|
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
|
|
|
|
package hindsight
|
|
|
|
import (
|
|
"encoding/json"
|
|
)
|
|
|
|
// checks if the UpdateDocumentRequest type satisfies the MappedNullable interface at compile time
|
|
var _ MappedNullable = &UpdateDocumentRequest{}
|
|
|
|
// UpdateDocumentRequest Request model for updating a document's mutable fields.
|
|
type UpdateDocumentRequest struct {
|
|
Tags []string `json:"tags,omitempty"`
|
|
}
|
|
|
|
// NewUpdateDocumentRequest instantiates a new UpdateDocumentRequest object
|
|
// This constructor will assign default values to properties that have it defined,
|
|
// and makes sure properties required by API are set, but the set of arguments
|
|
// will change when the set of required properties is changed
|
|
func NewUpdateDocumentRequest() *UpdateDocumentRequest {
|
|
this := UpdateDocumentRequest{}
|
|
return &this
|
|
}
|
|
|
|
// NewUpdateDocumentRequestWithDefaults instantiates a new UpdateDocumentRequest object
|
|
// This constructor will only assign default values to properties that have it defined,
|
|
// but it doesn't guarantee that properties required by API are set
|
|
func NewUpdateDocumentRequestWithDefaults() *UpdateDocumentRequest {
|
|
this := UpdateDocumentRequest{}
|
|
return &this
|
|
}
|
|
|
|
// GetTags returns the Tags field value if set, zero value otherwise (both if not set or set to explicit null).
|
|
func (o *UpdateDocumentRequest) GetTags() []string {
|
|
if o == nil {
|
|
var ret []string
|
|
return ret
|
|
}
|
|
return o.Tags
|
|
}
|
|
|
|
// GetTagsOk returns a tuple with the Tags field value if set, nil otherwise
|
|
// and a boolean to check if the value has been set.
|
|
// NOTE: If the value is an explicit nil, `nil, true` will be returned
|
|
func (o *UpdateDocumentRequest) GetTagsOk() ([]string, bool) {
|
|
if o == nil || IsNil(o.Tags) {
|
|
return nil, false
|
|
}
|
|
return o.Tags, true
|
|
}
|
|
|
|
// HasTags returns a boolean if a field has been set.
|
|
func (o *UpdateDocumentRequest) HasTags() bool {
|
|
if o != nil && !IsNil(o.Tags) {
|
|
return true
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
// SetTags gets a reference to the given []string and assigns it to the Tags field.
|
|
func (o *UpdateDocumentRequest) SetTags(v []string) {
|
|
o.Tags = v
|
|
}
|
|
|
|
func (o UpdateDocumentRequest) MarshalJSON() ([]byte, error) {
|
|
toSerialize,err := o.ToMap()
|
|
if err != nil {
|
|
return []byte{}, err
|
|
}
|
|
return json.Marshal(toSerialize)
|
|
}
|
|
|
|
func (o UpdateDocumentRequest) ToMap() (map[string]interface{}, error) {
|
|
toSerialize := map[string]interface{}{}
|
|
if o.Tags != nil {
|
|
toSerialize["tags"] = o.Tags
|
|
}
|
|
return toSerialize, nil
|
|
}
|
|
|
|
type NullableUpdateDocumentRequest struct {
|
|
value *UpdateDocumentRequest
|
|
isSet bool
|
|
}
|
|
|
|
func (v NullableUpdateDocumentRequest) Get() *UpdateDocumentRequest {
|
|
return v.value
|
|
}
|
|
|
|
func (v *NullableUpdateDocumentRequest) Set(val *UpdateDocumentRequest) {
|
|
v.value = val
|
|
v.isSet = true
|
|
}
|
|
|
|
func (v NullableUpdateDocumentRequest) IsSet() bool {
|
|
return v.isSet
|
|
}
|
|
|
|
func (v *NullableUpdateDocumentRequest) Unset() {
|
|
v.value = nil
|
|
v.isSet = false
|
|
}
|
|
|
|
func NewNullableUpdateDocumentRequest(val *UpdateDocumentRequest) *NullableUpdateDocumentRequest {
|
|
return &NullableUpdateDocumentRequest{value: val, isSet: true}
|
|
}
|
|
|
|
func (v NullableUpdateDocumentRequest) MarshalJSON() ([]byte, error) {
|
|
return json.Marshal(v.value)
|
|
}
|
|
|
|
func (v *NullableUpdateDocumentRequest) UnmarshalJSON(src []byte) error {
|
|
v.isSet = true
|
|
return json.Unmarshal(src, &v.value)
|
|
}
|
|
|
|
|