@objectstack/service-ai 6.7.1 → 6.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -318,6 +318,13 @@ declare class AIService implements IAIService {
318
318
  * subsequent calls go through the new adapter.
319
319
  */
320
320
  setAdapter(next: LLMAdapter): void;
321
+ /**
322
+ * Best-effort auto-creation of a conversation when the caller did not
323
+ * supply one but did supply an actor we can attribute the chat to.
324
+ * Returns the new id on success, or `undefined` if creation failed (in
325
+ * which case we silently fall back to non-persisted chat).
326
+ */
327
+ private autoCreateConversation;
321
328
  /**
322
329
  * Best-effort persistence of a single chat message to the conversation
323
330
  * store. Failures are logged at warn level and swallowed — chat requests
@@ -665,6 +672,10 @@ declare class InMemoryConversationService implements IAIConversationService {
665
672
  cursor?: string;
666
673
  }): Promise<AIConversation[]>;
667
674
  addMessage(conversationId: string, message: ModelMessage): Promise<AIConversation>;
675
+ update(conversationId: string, patch: {
676
+ title?: string;
677
+ metadata?: Record<string, unknown>;
678
+ }): Promise<AIConversation>;
668
679
  delete(conversationId: string): Promise<void>;
669
680
  /** Total number of stored conversations. */
670
681
  get size(): number;
@@ -699,6 +710,10 @@ declare class ObjectQLConversationService implements IAIConversationService {
699
710
  cursor?: string;
700
711
  }): Promise<AIConversation[]>;
701
712
  addMessage(conversationId: string, message: ModelMessage): Promise<AIConversation>;
713
+ update(conversationId: string, patch: {
714
+ title?: string;
715
+ metadata?: Record<string, unknown>;
716
+ }): Promise<AIConversation>;
702
717
  delete(conversationId: string): Promise<void>;
703
718
  /**
704
719
  * Safely parse a JSON string, returning `undefined` on failure.
@@ -892,6 +907,26 @@ interface MetadataToolContext {
892
907
  };
893
908
  } | undefined>;
894
909
  };
910
+ /**
911
+ * Optional: ObjectStack protocol for cross-source metadata enumeration.
912
+ *
913
+ * `IMetadataService.listObjects()` only sees items registered through the
914
+ * MetadataManager (in-memory registry + loaders). It misses objects that
915
+ * live in ObjectQL's SchemaRegistry — most notably system objects shipped
916
+ * by plugins (e.g. `sys_user`, `sys_organization` from plugin-auth) and
917
+ * environment-scoped objects persisted to `sys_metadata`.
918
+ *
919
+ * When provided, `list_objects` will use `protocol.getMetaItems({ type: 'object' })`
920
+ * (the same source that backs `GET /api/v1/meta/object`) so the agent sees the
921
+ * complete set of available objects.
922
+ */
923
+ protocol?: {
924
+ getMetaItems(request: {
925
+ type: string;
926
+ packageId?: string;
927
+ organizationId?: string;
928
+ }): Promise<unknown[]>;
929
+ };
895
930
  }
896
931
  /**
897
932
  * Register all built-in metadata management tools on the given {@link ToolRegistry}.
@@ -1643,7 +1678,7 @@ declare const AiConversationObject: Omit<{
1643
1678
  abstract: boolean;
1644
1679
  datasource: string;
1645
1680
  fields: Record<string, {
1646
- type: "number" | "boolean" | "file" | "text" | "json" | "tags" | "currency" | "code" | "date" | "avatar" | "vector" | "datetime" | "signature" | "progress" | "url" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "color" | "rating" | "slider" | "qrcode";
1681
+ type: "number" | "boolean" | "file" | "text" | "json" | "tags" | "currency" | "code" | "date" | "avatar" | "vector" | "datetime" | "signature" | "progress" | "url" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "video" | "audio" | "formula" | "summary" | "autonumber" | "composite" | "repeater" | "location" | "address" | "color" | "rating" | "slider" | "qrcode";
1647
1682
  required: boolean;
1648
1683
  searchable: boolean;
1649
1684
  multiple: boolean;
@@ -1991,14 +2026,14 @@ declare const AiConversationObject: Omit<{
1991
2026
  provider: "api";
1992
2027
  read?: {
1993
2028
  url: string;
1994
- method: "GET" | "POST" | "DELETE" | "PATCH" | "PUT";
2029
+ method: "GET" | "POST" | "PATCH" | "DELETE" | "PUT";
1995
2030
  headers?: Record<string, string> | undefined;
1996
2031
  params?: Record<string, unknown> | undefined;
1997
2032
  body?: unknown;
1998
2033
  } | undefined;
1999
2034
  write?: {
2000
2035
  url: string;
2001
- method: "GET" | "POST" | "DELETE" | "PATCH" | "PUT";
2036
+ method: "GET" | "POST" | "PATCH" | "DELETE" | "PUT";
2002
2037
  headers?: Record<string, string> | undefined;
2003
2038
  params?: Record<string, unknown> | undefined;
2004
2039
  body?: unknown;
@@ -2006,6 +2041,10 @@ declare const AiConversationObject: Omit<{
2006
2041
  } | {
2007
2042
  provider: "value";
2008
2043
  items: unknown[];
2044
+ } | {
2045
+ provider: "schema";
2046
+ schemaId: string;
2047
+ schema?: Record<string, unknown> | undefined;
2009
2048
  } | undefined;
2010
2049
  filter?: {
2011
2050
  field: string;
@@ -2253,7 +2292,7 @@ declare const AiConversationObject: Omit<{
2253
2292
  field?: string | undefined;
2254
2293
  objectOverride?: string | undefined;
2255
2294
  label?: string | undefined;
2256
- type?: "number" | "boolean" | "date" | "file" | "code" | "datetime" | "signature" | "progress" | "url" | "text" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "json" | "color" | "rating" | "slider" | "qrcode" | "tags" | "vector" | undefined;
2295
+ type?: "number" | "boolean" | "date" | "file" | "code" | "datetime" | "signature" | "progress" | "url" | "text" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "composite" | "repeater" | "location" | "address" | "json" | "color" | "rating" | "slider" | "qrcode" | "tags" | "vector" | undefined;
2257
2296
  options?: {
2258
2297
  label: string;
2259
2298
  value: string;
@@ -3568,7 +3607,7 @@ declare const AiMessageObject: Omit<{
3568
3607
  abstract: boolean;
3569
3608
  datasource: string;
3570
3609
  fields: Record<string, {
3571
- type: "number" | "boolean" | "file" | "text" | "json" | "tags" | "currency" | "code" | "date" | "avatar" | "vector" | "datetime" | "signature" | "progress" | "url" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "color" | "rating" | "slider" | "qrcode";
3610
+ type: "number" | "boolean" | "file" | "text" | "json" | "tags" | "currency" | "code" | "date" | "avatar" | "vector" | "datetime" | "signature" | "progress" | "url" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "video" | "audio" | "formula" | "summary" | "autonumber" | "composite" | "repeater" | "location" | "address" | "color" | "rating" | "slider" | "qrcode";
3572
3611
  required: boolean;
3573
3612
  searchable: boolean;
3574
3613
  multiple: boolean;
@@ -3916,14 +3955,14 @@ declare const AiMessageObject: Omit<{
3916
3955
  provider: "api";
3917
3956
  read?: {
3918
3957
  url: string;
3919
- method: "GET" | "POST" | "DELETE" | "PATCH" | "PUT";
3958
+ method: "GET" | "POST" | "PATCH" | "DELETE" | "PUT";
3920
3959
  headers?: Record<string, string> | undefined;
3921
3960
  params?: Record<string, unknown> | undefined;
3922
3961
  body?: unknown;
3923
3962
  } | undefined;
3924
3963
  write?: {
3925
3964
  url: string;
3926
- method: "GET" | "POST" | "DELETE" | "PATCH" | "PUT";
3965
+ method: "GET" | "POST" | "PATCH" | "DELETE" | "PUT";
3927
3966
  headers?: Record<string, string> | undefined;
3928
3967
  params?: Record<string, unknown> | undefined;
3929
3968
  body?: unknown;
@@ -3931,6 +3970,10 @@ declare const AiMessageObject: Omit<{
3931
3970
  } | {
3932
3971
  provider: "value";
3933
3972
  items: unknown[];
3973
+ } | {
3974
+ provider: "schema";
3975
+ schemaId: string;
3976
+ schema?: Record<string, unknown> | undefined;
3934
3977
  } | undefined;
3935
3978
  filter?: {
3936
3979
  field: string;
@@ -4178,7 +4221,7 @@ declare const AiMessageObject: Omit<{
4178
4221
  field?: string | undefined;
4179
4222
  objectOverride?: string | undefined;
4180
4223
  label?: string | undefined;
4181
- type?: "number" | "boolean" | "date" | "file" | "code" | "datetime" | "signature" | "progress" | "url" | "text" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "json" | "color" | "rating" | "slider" | "qrcode" | "tags" | "vector" | undefined;
4224
+ type?: "number" | "boolean" | "date" | "file" | "code" | "datetime" | "signature" | "progress" | "url" | "text" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "composite" | "repeater" | "location" | "address" | "json" | "color" | "rating" | "slider" | "qrcode" | "tags" | "vector" | undefined;
4182
4225
  options?: {
4183
4226
  label: string;
4184
4227
  value: string;
@@ -5495,7 +5538,7 @@ declare const AiTraceObject: Omit<{
5495
5538
  abstract: boolean;
5496
5539
  datasource: string;
5497
5540
  fields: Record<string, {
5498
- type: "number" | "boolean" | "file" | "text" | "json" | "tags" | "currency" | "code" | "date" | "avatar" | "vector" | "datetime" | "signature" | "progress" | "url" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "color" | "rating" | "slider" | "qrcode";
5541
+ type: "number" | "boolean" | "file" | "text" | "json" | "tags" | "currency" | "code" | "date" | "avatar" | "vector" | "datetime" | "signature" | "progress" | "url" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "video" | "audio" | "formula" | "summary" | "autonumber" | "composite" | "repeater" | "location" | "address" | "color" | "rating" | "slider" | "qrcode";
5499
5542
  required: boolean;
5500
5543
  searchable: boolean;
5501
5544
  multiple: boolean;
@@ -5843,14 +5886,14 @@ declare const AiTraceObject: Omit<{
5843
5886
  provider: "api";
5844
5887
  read?: {
5845
5888
  url: string;
5846
- method: "GET" | "POST" | "DELETE" | "PATCH" | "PUT";
5889
+ method: "GET" | "POST" | "PATCH" | "DELETE" | "PUT";
5847
5890
  headers?: Record<string, string> | undefined;
5848
5891
  params?: Record<string, unknown> | undefined;
5849
5892
  body?: unknown;
5850
5893
  } | undefined;
5851
5894
  write?: {
5852
5895
  url: string;
5853
- method: "GET" | "POST" | "DELETE" | "PATCH" | "PUT";
5896
+ method: "GET" | "POST" | "PATCH" | "DELETE" | "PUT";
5854
5897
  headers?: Record<string, string> | undefined;
5855
5898
  params?: Record<string, unknown> | undefined;
5856
5899
  body?: unknown;
@@ -5858,6 +5901,10 @@ declare const AiTraceObject: Omit<{
5858
5901
  } | {
5859
5902
  provider: "value";
5860
5903
  items: unknown[];
5904
+ } | {
5905
+ provider: "schema";
5906
+ schemaId: string;
5907
+ schema?: Record<string, unknown> | undefined;
5861
5908
  } | undefined;
5862
5909
  filter?: {
5863
5910
  field: string;
@@ -6105,7 +6152,7 @@ declare const AiTraceObject: Omit<{
6105
6152
  field?: string | undefined;
6106
6153
  objectOverride?: string | undefined;
6107
6154
  label?: string | undefined;
6108
- type?: "number" | "boolean" | "date" | "file" | "code" | "datetime" | "signature" | "progress" | "url" | "text" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "json" | "color" | "rating" | "slider" | "qrcode" | "tags" | "vector" | undefined;
6155
+ type?: "number" | "boolean" | "date" | "file" | "code" | "datetime" | "signature" | "progress" | "url" | "text" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "composite" | "repeater" | "location" | "address" | "json" | "color" | "rating" | "slider" | "qrcode" | "tags" | "vector" | undefined;
6109
6156
  options?: {
6110
6157
  label: string;
6111
6158
  value: string;
@@ -9377,14 +9424,14 @@ declare const AiTraceView: {
9377
9424
  provider: "api";
9378
9425
  read?: {
9379
9426
  url: string;
9380
- method: "GET" | "POST" | "DELETE" | "PATCH" | "PUT";
9427
+ method: "GET" | "POST" | "PATCH" | "DELETE" | "PUT";
9381
9428
  headers?: Record<string, string> | undefined;
9382
9429
  params?: Record<string, unknown> | undefined;
9383
9430
  body?: unknown;
9384
9431
  } | undefined;
9385
9432
  write?: {
9386
9433
  url: string;
9387
- method: "GET" | "POST" | "DELETE" | "PATCH" | "PUT";
9434
+ method: "GET" | "POST" | "PATCH" | "DELETE" | "PUT";
9388
9435
  headers?: Record<string, string> | undefined;
9389
9436
  params?: Record<string, unknown> | undefined;
9390
9437
  body?: unknown;
@@ -9392,6 +9439,10 @@ declare const AiTraceView: {
9392
9439
  } | {
9393
9440
  provider: "value";
9394
9441
  items: unknown[];
9442
+ } | {
9443
+ provider: "schema";
9444
+ schemaId: string;
9445
+ schema?: Record<string, unknown> | undefined;
9395
9446
  } | undefined;
9396
9447
  filter?: {
9397
9448
  field: string;
@@ -9594,14 +9645,14 @@ declare const AiTraceView: {
9594
9645
  provider: "api";
9595
9646
  read?: {
9596
9647
  url: string;
9597
- method: "GET" | "POST" | "DELETE" | "PATCH" | "PUT";
9648
+ method: "GET" | "POST" | "PATCH" | "DELETE" | "PUT";
9598
9649
  headers?: Record<string, string> | undefined;
9599
9650
  params?: Record<string, unknown> | undefined;
9600
9651
  body?: unknown;
9601
9652
  } | undefined;
9602
9653
  write?: {
9603
9654
  url: string;
9604
- method: "GET" | "POST" | "DELETE" | "PATCH" | "PUT";
9655
+ method: "GET" | "POST" | "PATCH" | "DELETE" | "PUT";
9605
9656
  headers?: Record<string, string> | undefined;
9606
9657
  params?: Record<string, unknown> | undefined;
9607
9658
  body?: unknown;
@@ -9609,76 +9660,60 @@ declare const AiTraceView: {
9609
9660
  } | {
9610
9661
  provider: "value";
9611
9662
  items: unknown[];
9663
+ } | {
9664
+ provider: "schema";
9665
+ schemaId: string;
9666
+ schema?: Record<string, unknown> | undefined;
9612
9667
  } | undefined;
9613
9668
  sections?: {
9614
9669
  collapsible: boolean;
9615
9670
  collapsed: boolean;
9616
9671
  columns: 1 | 2 | 3 | 4;
9617
- fields: (string | {
9618
- field: string;
9619
- label?: string | undefined;
9620
- placeholder?: string | undefined;
9621
- helpText?: string | undefined;
9622
- readonly?: boolean | undefined;
9623
- required?: boolean | undefined;
9624
- hidden?: boolean | undefined;
9625
- colSpan?: number | undefined;
9626
- widget?: string | undefined;
9627
- dependsOn?: string | undefined;
9628
- visibleOn?: {
9629
- dialect: "cel" | "js" | "cron" | "template";
9630
- source?: string | undefined;
9631
- ast?: unknown;
9632
- meta?: {
9633
- rationale?: string | undefined;
9634
- generatedBy?: string | undefined;
9635
- } | undefined;
9636
- } | {
9637
- dialect: "cel" | "js" | "cron" | "template";
9638
- source?: string | undefined;
9639
- ast?: unknown;
9640
- meta?: {
9641
- rationale?: string | undefined;
9642
- generatedBy?: string | undefined;
9643
- } | undefined;
9644
- } | undefined;
9645
- })[];
9672
+ fields: any[];
9646
9673
  label?: string | undefined;
9674
+ description?: string | undefined;
9675
+ visibleOn?: {
9676
+ dialect: "cel" | "js" | "cron" | "template";
9677
+ source?: string | undefined;
9678
+ ast?: unknown;
9679
+ meta?: {
9680
+ rationale?: string | undefined;
9681
+ generatedBy?: string | undefined;
9682
+ } | undefined;
9683
+ } | {
9684
+ dialect: "cel" | "js" | "cron" | "template";
9685
+ source?: string | undefined;
9686
+ ast?: unknown;
9687
+ meta?: {
9688
+ rationale?: string | undefined;
9689
+ generatedBy?: string | undefined;
9690
+ } | undefined;
9691
+ } | undefined;
9647
9692
  }[] | undefined;
9648
9693
  groups?: {
9649
9694
  collapsible: boolean;
9650
9695
  collapsed: boolean;
9651
9696
  columns: 1 | 2 | 3 | 4;
9652
- fields: (string | {
9653
- field: string;
9654
- label?: string | undefined;
9655
- placeholder?: string | undefined;
9656
- helpText?: string | undefined;
9657
- readonly?: boolean | undefined;
9658
- required?: boolean | undefined;
9659
- hidden?: boolean | undefined;
9660
- colSpan?: number | undefined;
9661
- widget?: string | undefined;
9662
- dependsOn?: string | undefined;
9663
- visibleOn?: {
9664
- dialect: "cel" | "js" | "cron" | "template";
9665
- source?: string | undefined;
9666
- ast?: unknown;
9667
- meta?: {
9668
- rationale?: string | undefined;
9669
- generatedBy?: string | undefined;
9670
- } | undefined;
9671
- } | {
9672
- dialect: "cel" | "js" | "cron" | "template";
9673
- source?: string | undefined;
9674
- ast?: unknown;
9675
- meta?: {
9676
- rationale?: string | undefined;
9677
- generatedBy?: string | undefined;
9678
- } | undefined;
9679
- } | undefined;
9680
- })[];
9697
+ fields: any[];
9681
9698
  label?: string | undefined;
9699
+ description?: string | undefined;
9700
+ visibleOn?: {
9701
+ dialect: "cel" | "js" | "cron" | "template";
9702
+ source?: string | undefined;
9703
+ ast?: unknown;
9704
+ meta?: {
9705
+ rationale?: string | undefined;
9706
+ generatedBy?: string | undefined;
9707
+ } | undefined;
9708
+ } | {
9709
+ dialect: "cel" | "js" | "cron" | "template";
9710
+ source?: string | undefined;
9711
+ ast?: unknown;
9712
+ meta?: {
9713
+ rationale?: string | undefined;
9714
+ generatedBy?: string | undefined;
9715
+ } | undefined;
9716
+ } | undefined;
9682
9717
  }[] | undefined;
9683
9718
  defaultSort?: {
9684
9719
  field: string;
@@ -9737,14 +9772,14 @@ declare const AiTraceView: {
9737
9772
  provider: "api";
9738
9773
  read?: {
9739
9774
  url: string;
9740
- method: "GET" | "POST" | "DELETE" | "PATCH" | "PUT";
9775
+ method: "GET" | "POST" | "PATCH" | "DELETE" | "PUT";
9741
9776
  headers?: Record<string, string> | undefined;
9742
9777
  params?: Record<string, unknown> | undefined;
9743
9778
  body?: unknown;
9744
9779
  } | undefined;
9745
9780
  write?: {
9746
9781
  url: string;
9747
- method: "GET" | "POST" | "DELETE" | "PATCH" | "PUT";
9782
+ method: "GET" | "POST" | "PATCH" | "DELETE" | "PUT";
9748
9783
  headers?: Record<string, string> | undefined;
9749
9784
  params?: Record<string, unknown> | undefined;
9750
9785
  body?: unknown;
@@ -9752,6 +9787,10 @@ declare const AiTraceView: {
9752
9787
  } | {
9753
9788
  provider: "value";
9754
9789
  items: unknown[];
9790
+ } | {
9791
+ provider: "schema";
9792
+ schemaId: string;
9793
+ schema?: Record<string, unknown> | undefined;
9755
9794
  } | undefined;
9756
9795
  filter?: {
9757
9796
  field: string;
@@ -9954,14 +9993,14 @@ declare const AiTraceView: {
9954
9993
  provider: "api";
9955
9994
  read?: {
9956
9995
  url: string;
9957
- method: "GET" | "POST" | "DELETE" | "PATCH" | "PUT";
9996
+ method: "GET" | "POST" | "PATCH" | "DELETE" | "PUT";
9958
9997
  headers?: Record<string, string> | undefined;
9959
9998
  params?: Record<string, unknown> | undefined;
9960
9999
  body?: unknown;
9961
10000
  } | undefined;
9962
10001
  write?: {
9963
10002
  url: string;
9964
- method: "GET" | "POST" | "DELETE" | "PATCH" | "PUT";
10003
+ method: "GET" | "POST" | "PATCH" | "DELETE" | "PUT";
9965
10004
  headers?: Record<string, string> | undefined;
9966
10005
  params?: Record<string, unknown> | undefined;
9967
10006
  body?: unknown;
@@ -9969,76 +10008,60 @@ declare const AiTraceView: {
9969
10008
  } | {
9970
10009
  provider: "value";
9971
10010
  items: unknown[];
10011
+ } | {
10012
+ provider: "schema";
10013
+ schemaId: string;
10014
+ schema?: Record<string, unknown> | undefined;
9972
10015
  } | undefined;
9973
10016
  sections?: {
9974
10017
  collapsible: boolean;
9975
10018
  collapsed: boolean;
9976
10019
  columns: 1 | 2 | 3 | 4;
9977
- fields: (string | {
9978
- field: string;
9979
- label?: string | undefined;
9980
- placeholder?: string | undefined;
9981
- helpText?: string | undefined;
9982
- readonly?: boolean | undefined;
9983
- required?: boolean | undefined;
9984
- hidden?: boolean | undefined;
9985
- colSpan?: number | undefined;
9986
- widget?: string | undefined;
9987
- dependsOn?: string | undefined;
9988
- visibleOn?: {
9989
- dialect: "cel" | "js" | "cron" | "template";
9990
- source?: string | undefined;
9991
- ast?: unknown;
9992
- meta?: {
9993
- rationale?: string | undefined;
9994
- generatedBy?: string | undefined;
9995
- } | undefined;
9996
- } | {
9997
- dialect: "cel" | "js" | "cron" | "template";
9998
- source?: string | undefined;
9999
- ast?: unknown;
10000
- meta?: {
10001
- rationale?: string | undefined;
10002
- generatedBy?: string | undefined;
10003
- } | undefined;
10004
- } | undefined;
10005
- })[];
10020
+ fields: any[];
10006
10021
  label?: string | undefined;
10022
+ description?: string | undefined;
10023
+ visibleOn?: {
10024
+ dialect: "cel" | "js" | "cron" | "template";
10025
+ source?: string | undefined;
10026
+ ast?: unknown;
10027
+ meta?: {
10028
+ rationale?: string | undefined;
10029
+ generatedBy?: string | undefined;
10030
+ } | undefined;
10031
+ } | {
10032
+ dialect: "cel" | "js" | "cron" | "template";
10033
+ source?: string | undefined;
10034
+ ast?: unknown;
10035
+ meta?: {
10036
+ rationale?: string | undefined;
10037
+ generatedBy?: string | undefined;
10038
+ } | undefined;
10039
+ } | undefined;
10007
10040
  }[] | undefined;
10008
10041
  groups?: {
10009
10042
  collapsible: boolean;
10010
10043
  collapsed: boolean;
10011
10044
  columns: 1 | 2 | 3 | 4;
10012
- fields: (string | {
10013
- field: string;
10014
- label?: string | undefined;
10015
- placeholder?: string | undefined;
10016
- helpText?: string | undefined;
10017
- readonly?: boolean | undefined;
10018
- required?: boolean | undefined;
10019
- hidden?: boolean | undefined;
10020
- colSpan?: number | undefined;
10021
- widget?: string | undefined;
10022
- dependsOn?: string | undefined;
10023
- visibleOn?: {
10024
- dialect: "cel" | "js" | "cron" | "template";
10025
- source?: string | undefined;
10026
- ast?: unknown;
10027
- meta?: {
10028
- rationale?: string | undefined;
10029
- generatedBy?: string | undefined;
10030
- } | undefined;
10031
- } | {
10032
- dialect: "cel" | "js" | "cron" | "template";
10033
- source?: string | undefined;
10034
- ast?: unknown;
10035
- meta?: {
10036
- rationale?: string | undefined;
10037
- generatedBy?: string | undefined;
10038
- } | undefined;
10039
- } | undefined;
10040
- })[];
10045
+ fields: any[];
10041
10046
  label?: string | undefined;
10047
+ description?: string | undefined;
10048
+ visibleOn?: {
10049
+ dialect: "cel" | "js" | "cron" | "template";
10050
+ source?: string | undefined;
10051
+ ast?: unknown;
10052
+ meta?: {
10053
+ rationale?: string | undefined;
10054
+ generatedBy?: string | undefined;
10055
+ } | undefined;
10056
+ } | {
10057
+ dialect: "cel" | "js" | "cron" | "template";
10058
+ source?: string | undefined;
10059
+ ast?: unknown;
10060
+ meta?: {
10061
+ rationale?: string | undefined;
10062
+ generatedBy?: string | undefined;
10063
+ } | undefined;
10064
+ } | undefined;
10042
10065
  }[] | undefined;
10043
10066
  defaultSort?: {
10044
10067
  field: string;
@@ -10110,8 +10133,13 @@ declare const AiTraceView: {
10110
10133
  */
10111
10134
  declare class SchemaRetriever {
10112
10135
  private readonly metadata;
10136
+ private readonly protocol?;
10113
10137
  private readonly options;
10114
- constructor(metadata: IMetadataService, options?: SchemaRetrieverOptions);
10138
+ constructor(metadata: IMetadataService, options?: SchemaRetrieverOptions, protocol?: {
10139
+ getMetaItems(req: {
10140
+ type: string;
10141
+ }): Promise<unknown[]>;
10142
+ });
10115
10143
  /**
10116
10144
  * Find object definitions whose name/label/fields match terms in the query.
10117
10145
  *
@@ -10173,6 +10201,20 @@ interface QueryDataToolContext {
10173
10201
  dataEngine: IDataEngine;
10174
10202
  /** Maximum number of records returned per call (default: 100). */
10175
10203
  maxLimit?: number;
10204
+ /**
10205
+ * Optional protocol shim for cross-source object enumeration. Mirrors the
10206
+ * fallback used by `list_objects`/`describe_object` — without it the
10207
+ * SchemaRetriever can't see ObjectQL SchemaRegistry objects such as
10208
+ * `sys_user`, and queries against system tables fall through to
10209
+ * "No matching objects in metadata".
10210
+ */
10211
+ protocol?: {
10212
+ getMetaItems(req: {
10213
+ type: string;
10214
+ packageId?: string;
10215
+ organizationId?: string;
10216
+ }): Promise<unknown[]>;
10217
+ };
10176
10218
  }
10177
10219
  /**
10178
10220
  * Zod schema used to constrain the LLM's structured output.
@@ -10240,7 +10282,7 @@ declare function registerQueryDataTool(registry: ToolRegistry, context: QueryDat
10240
10282
  */
10241
10283
  interface RouteDefinition {
10242
10284
  /** HTTP method */
10243
- method: 'GET' | 'POST' | 'DELETE';
10285
+ method: 'GET' | 'POST' | 'PATCH' | 'DELETE';
10244
10286
  /** Path pattern (e.g. '/api/v1/ai/chat') */
10245
10287
  path: string;
10246
10288
  /** Human-readable description */