@hanger-source/agentic-olap 0.16.0 → 0.17.3

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.
Files changed (32) hide show
  1. package/README.md +3 -3
  2. package/build.json +239 -252
  3. package/connectors/duckdb/connector.json +18 -0
  4. package/connectors/h2/connector.json +18 -0
  5. package/distribution.json +982 -528
  6. package/jvm-dependencies.json +1184 -878
  7. package/licenses/jvm/dependencies.json +278 -14
  8. package/licenses/{go/github.com+modelcontextprotocol+go-sdk → jvm/io.github.oshai/kotlin-logging-jvm/8.0.4/META-INF}/LICENSE +22 -36
  9. package/licenses/jvm/net.java.dev.jna/jna/5.19.1/META-INF/LICENSE +26 -0
  10. package/package.json +3 -3
  11. package/resources.json +19 -19
  12. package/runtime/agentic-olap +14 -0
  13. package/runtime/agentic-olap-bootstrap.jar +0 -0
  14. package/sdk/API.md +26 -1
  15. package/sdk/LOADER.md +1 -1
  16. package/sdk/SOURCE-ACCESS.md +12 -0
  17. package/connectors/0001-h2/connector.json +0 -18
  18. package/connectors/0002-duckdb/connector.json +0 -18
  19. package/licenses/go/github.com+golang-jwt+jwt+v5/LICENSE +0 -9
  20. package/licenses/go/github.com+google+jsonschema-go/LICENSE +0 -21
  21. package/licenses/go/github.com+modelcontextprotocol+go-sdk/copyright_test.go +0 -56
  22. package/licenses/go/github.com+segmentio+asm/LICENSE +0 -21
  23. package/licenses/go/github.com+segmentio+encoding/LICENSE +0 -21
  24. package/licenses/go/github.com+yosida95+uritemplate+v3/LICENSE +0 -25
  25. package/licenses/go/go-toolchain/LICENSE +0 -27
  26. package/licenses/go/go-toolchain/SOURCES.txt +0 -3
  27. package/licenses/go/golang.org+x+oauth2/LICENSE +0 -27
  28. package/licenses/go/golang.org+x+sync/LICENSE +0 -27
  29. package/licenses/go/golang.org+x+sys/LICENSE +0 -27
  30. package/licenses/go/golang.org+x+time/LICENSE +0 -27
  31. package/licenses/go/google.golang.org+protobuf/LICENSE +0 -27
  32. package/runtime/agentic-olap-runtime +0 -0
@@ -69,6 +69,22 @@
69
69
  "com.fasterxml.jackson.module/jackson-module-kotlin/2.18.6/META-INF/NOTICE"
70
70
  ]
71
71
  },
72
+ {
73
+ "coordinate": "com.google.code.findbugs:jsr305:3.0.2",
74
+ "jar": "jsr305-3.0.2.jar",
75
+ "sha256": "766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7",
76
+ "embeddedNotices": [
77
+
78
+ ]
79
+ },
80
+ {
81
+ "coordinate": "com.google.code.gson:gson:2.8.9",
82
+ "jar": "gson-2.8.9.jar",
83
+ "sha256": "d3999291855de495c94c743761b8ab5176cfeabe281a5ab0d8e8d45326fd703e",
84
+ "embeddedNotices": [
85
+
86
+ ]
87
+ },
72
88
  {
73
89
  "coordinate": "com.google.errorprone:error_prone_annotations:2.36.0",
74
90
  "jar": "error_prone_annotations-2.36.0.jar",
@@ -109,6 +125,14 @@
109
125
 
110
126
  ]
111
127
  },
128
+ {
129
+ "coordinate": "com.google.protobuf:protobuf-java-util:4.33.2",
130
+ "jar": "protobuf-java-util-4.33.2.jar",
131
+ "sha256": "810ecf895fde89e0f0f0bc34f3fec0bfa949c8173e941c15f9f2bb9f0ed7644a",
132
+ "embeddedNotices": [
133
+
134
+ ]
135
+ },
112
136
  {
113
137
  "coordinate": "com.google.protobuf:protobuf-java:4.33.2",
114
138
  "jar": "protobuf-java-4.33.2.jar",
@@ -149,6 +173,14 @@
149
173
 
150
174
  ]
151
175
  },
176
+ {
177
+ "coordinate": "com.typesafe:config:1.4.9",
178
+ "jar": "config-1.4.9.jar",
179
+ "sha256": "47d13e3196c84f2a8ccd014ae563738c3da5b7406b38e03505ec0601a2f4fc37",
180
+ "embeddedNotices": [
181
+
182
+ ]
183
+ },
152
184
  {
153
185
  "coordinate": "com.yahoo.datasketches:memory:0.9.0",
154
186
  "jar": "memory-0.9.0.jar",
@@ -192,6 +224,182 @@
192
224
  "commons-logging/commons-logging/1.3.5/META-INF/NOTICE.txt"
193
225
  ]
194
226
  },
227
+ {
228
+ "coordinate": "io.github.oshai:kotlin-logging-jvm:8.0.4",
229
+ "jar": "kotlin-logging-jvm-8.0.4.jar",
230
+ "sha256": "0bbac3f9dac5067b40d02fe461a053782bc8d3ef5162a923581b369adef7e02d",
231
+ "embeddedNotices": [
232
+ "io.github.oshai/kotlin-logging-jvm/8.0.4/META-INF/LICENSE"
233
+ ]
234
+ },
235
+ {
236
+ "coordinate": "io.ktor:ktor-events-jvm:3.5.1",
237
+ "jar": "ktor-events-jvm-3.5.1.jar",
238
+ "sha256": "652ce716196b635e7d2988e324cdb06f649b02e526f88680c5c2511e3964bd93",
239
+ "embeddedNotices": [
240
+
241
+ ]
242
+ },
243
+ {
244
+ "coordinate": "io.ktor:ktor-http-cio-jvm:3.5.1",
245
+ "jar": "ktor-http-cio-jvm-3.5.1.jar",
246
+ "sha256": "c635b73b050ba842f138c19a46a758d094c7ba6f949d74a0e4d14c78b5fd7e64",
247
+ "embeddedNotices": [
248
+
249
+ ]
250
+ },
251
+ {
252
+ "coordinate": "io.ktor:ktor-http-jvm:3.5.1",
253
+ "jar": "ktor-http-jvm-3.5.1.jar",
254
+ "sha256": "0ba1aad28ec212e54f1a1358510d415259efa483075436375ee48d25f8b6bcf8",
255
+ "embeddedNotices": [
256
+
257
+ ]
258
+ },
259
+ {
260
+ "coordinate": "io.ktor:ktor-io-jvm:3.5.1",
261
+ "jar": "ktor-io-jvm-3.5.1.jar",
262
+ "sha256": "9c43ed3370e04428b6f3e113fe53c56881459329c18f2ffea2a11008fd096dcf",
263
+ "embeddedNotices": [
264
+
265
+ ]
266
+ },
267
+ {
268
+ "coordinate": "io.ktor:ktor-network-jvm:3.5.1",
269
+ "jar": "ktor-network-jvm-3.5.1.jar",
270
+ "sha256": "7c972c97aecc9b27db8377e3347e6f66fad4b524112c073bef2d6150d1194492",
271
+ "embeddedNotices": [
272
+
273
+ ]
274
+ },
275
+ {
276
+ "coordinate": "io.ktor:ktor-serialization-jvm:3.5.1",
277
+ "jar": "ktor-serialization-jvm-3.5.1.jar",
278
+ "sha256": "1d9ee9d0a2d489e8e592552da577cf1dd2d13ce97ab1387c864813381309574a",
279
+ "embeddedNotices": [
280
+
281
+ ]
282
+ },
283
+ {
284
+ "coordinate": "io.ktor:ktor-serialization-kotlinx-json-jvm:3.5.1",
285
+ "jar": "ktor-serialization-kotlinx-json-jvm-3.5.1.jar",
286
+ "sha256": "68b907facba9caedac5bcfbd6ce3123920fd7606673267ce12d53a8c9a6aa3c3",
287
+ "embeddedNotices": [
288
+
289
+ ]
290
+ },
291
+ {
292
+ "coordinate": "io.ktor:ktor-serialization-kotlinx-jvm:3.5.1",
293
+ "jar": "ktor-serialization-kotlinx-jvm-3.5.1.jar",
294
+ "sha256": "148cd52661c2e4cbb1c88ca4ce3e6622335b4339a3b369054139d0d11a70f630",
295
+ "embeddedNotices": [
296
+
297
+ ]
298
+ },
299
+ {
300
+ "coordinate": "io.ktor:ktor-server-body-limit-jvm:3.5.1",
301
+ "jar": "ktor-server-body-limit-jvm-3.5.1.jar",
302
+ "sha256": "77a96dfe872ddfbe2143d831abd41a60b9bfc0fa4c934f2547553b6ece275e41",
303
+ "embeddedNotices": [
304
+
305
+ ]
306
+ },
307
+ {
308
+ "coordinate": "io.ktor:ktor-server-cio-jvm:3.5.1",
309
+ "jar": "ktor-server-cio-jvm-3.5.1.jar",
310
+ "sha256": "6498b6050b724477c520a0c3676c73a30ab80ea2b9870138279e30245b23bae2",
311
+ "embeddedNotices": [
312
+
313
+ ]
314
+ },
315
+ {
316
+ "coordinate": "io.ktor:ktor-server-content-negotiation-jvm:3.5.1",
317
+ "jar": "ktor-server-content-negotiation-jvm-3.5.1.jar",
318
+ "sha256": "acb8ed35fa2e0916d6570adbd9c2337828c5d83c1b28d8fc8c90e32cdc86ed61",
319
+ "embeddedNotices": [
320
+
321
+ ]
322
+ },
323
+ {
324
+ "coordinate": "io.ktor:ktor-server-core-jvm:3.5.1",
325
+ "jar": "ktor-server-core-jvm-3.5.1.jar",
326
+ "sha256": "907792c40323b18f95fed6caeda79c3bad399509e6cdad002cd9c5ccac95b639",
327
+ "embeddedNotices": [
328
+
329
+ ]
330
+ },
331
+ {
332
+ "coordinate": "io.ktor:ktor-server-double-receive-jvm:3.5.1",
333
+ "jar": "ktor-server-double-receive-jvm-3.5.1.jar",
334
+ "sha256": "a3aeaa8ff2f7235db1d4c556fddfc64550bfcb4e307b3f3baf5e7455e7e99b73",
335
+ "embeddedNotices": [
336
+
337
+ ]
338
+ },
339
+ {
340
+ "coordinate": "io.ktor:ktor-server-sse-jvm:3.5.1",
341
+ "jar": "ktor-server-sse-jvm-3.5.1.jar",
342
+ "sha256": "de9037bcf8c5a92ecfa7fc7a2fdfa9210652021add821bc3bf36879366dc2aa7",
343
+ "embeddedNotices": [
344
+
345
+ ]
346
+ },
347
+ {
348
+ "coordinate": "io.ktor:ktor-server-websockets-jvm:3.5.1",
349
+ "jar": "ktor-server-websockets-jvm-3.5.1.jar",
350
+ "sha256": "577d4048ee9475fade2f5b9963e730985f4f8f825407ac436c38dd652f20a040",
351
+ "embeddedNotices": [
352
+
353
+ ]
354
+ },
355
+ {
356
+ "coordinate": "io.ktor:ktor-sse-jvm:3.5.1",
357
+ "jar": "ktor-sse-jvm-3.5.1.jar",
358
+ "sha256": "0fd6b6dcaded1679a7a55067e8b1de982ed964d4c102637b88ef092913144c39",
359
+ "embeddedNotices": [
360
+
361
+ ]
362
+ },
363
+ {
364
+ "coordinate": "io.ktor:ktor-utils-jvm:3.5.1",
365
+ "jar": "ktor-utils-jvm-3.5.1.jar",
366
+ "sha256": "daccfd4e43039bec119976cb785356b4cebac927155f501132fb3be83125fa87",
367
+ "embeddedNotices": [
368
+
369
+ ]
370
+ },
371
+ {
372
+ "coordinate": "io.ktor:ktor-websocket-serialization-jvm:3.5.1",
373
+ "jar": "ktor-websocket-serialization-jvm-3.5.1.jar",
374
+ "sha256": "d2743212e59ae113d0f0bcbd1320e6bd8212013c48ca2ba52b2631035f622f1c",
375
+ "embeddedNotices": [
376
+
377
+ ]
378
+ },
379
+ {
380
+ "coordinate": "io.ktor:ktor-websockets-jvm:3.5.1",
381
+ "jar": "ktor-websockets-jvm-3.5.1.jar",
382
+ "sha256": "4d3f2e13068f2b6441ed2b29a3f0c5b796dce4a55e0958efd354839bd444e07f",
383
+ "embeddedNotices": [
384
+
385
+ ]
386
+ },
387
+ {
388
+ "coordinate": "io.modelcontextprotocol:kotlin-sdk-core-jvm:0.15.0",
389
+ "jar": "kotlin-sdk-core-jvm-0.15.0.jar",
390
+ "sha256": "286b34892ab362365d4d9ba09b6c949199128470f83cf7dd410854f18cc625e1",
391
+ "embeddedNotices": [
392
+
393
+ ]
394
+ },
395
+ {
396
+ "coordinate": "io.modelcontextprotocol:kotlin-sdk-server-jvm:0.15.0",
397
+ "jar": "kotlin-sdk-server-jvm-0.15.0.jar",
398
+ "sha256": "2a3720c631a2e1ba15194838ac0244dc93f702e79e6c361bb35b4ab2e15e3c16",
399
+ "embeddedNotices": [
400
+
401
+ ]
402
+ },
195
403
  {
196
404
  "coordinate": "jakarta.transaction:jakarta.transaction-api:1.3.3",
197
405
  "jar": "jakarta.transaction-api-1.3.3.jar",
@@ -208,6 +416,14 @@
208
416
 
209
417
  ]
210
418
  },
419
+ {
420
+ "coordinate": "net.java.dev.jna:jna:5.19.1",
421
+ "jar": "jna-5.19.1.jar",
422
+ "sha256": "4fb141dd8ef6b0585ffceea4bc49602fbc6312fa977e2c488794ea3e6aafecae",
423
+ "embeddedNotices": [
424
+ "net.java.dev.jna/jna/5.19.1/META-INF/LICENSE"
425
+ ]
426
+ },
211
427
  {
212
428
  "coordinate": "net.minidev:accessors-smart:2.6.0",
213
429
  "jar": "accessors-smart-2.6.0.jar",
@@ -364,6 +580,14 @@
364
580
 
365
581
  ]
366
582
  },
583
+ {
584
+ "coordinate": "org.duckdb:duckdb_jdbc:1.5.6.0",
585
+ "jar": "duckdb_jdbc-1.5.6.0.jar",
586
+ "sha256": "04ae3375d7c40dc88dc9bf0014b82ba5e66715564584af4e3abea39c7ba144d3",
587
+ "embeddedNotices": [
588
+
589
+ ]
590
+ },
367
591
  {
368
592
  "coordinate": "org.jetbrains.kotlin:kotlin-build-tools-api:2.4.21",
369
593
  "jar": "kotlin-build-tools-api-2.4.21.jar",
@@ -388,14 +612,6 @@
388
612
 
389
613
  ]
390
614
  },
391
- {
392
- "coordinate": "org.jetbrains.kotlin:kotlin-reflect:1.6.10",
393
- "jar": "kotlin-reflect-1.6.10.jar",
394
- "sha256": "3277ac102ae17aad10a55abec75ff5696c8d109790396434b496e75087854203",
395
- "embeddedNotices": [
396
-
397
- ]
398
- },
399
615
  {
400
616
  "coordinate": "org.jetbrains.kotlin:kotlin-reflect:2.4.21",
401
617
  "jar": "kotlin-reflect-2.4.21.jar",
@@ -460,6 +676,22 @@
460
676
 
461
677
  ]
462
678
  },
679
+ {
680
+ "coordinate": "org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.5.1",
681
+ "jar": "kotlinx-collections-immutable-jvm-0.5.1.jar",
682
+ "sha256": "d5e4bb25d6e90f7471662b3500259e247523a410e6a820dcc4000d386b0c248c",
683
+ "embeddedNotices": [
684
+
685
+ ]
686
+ },
687
+ {
688
+ "coordinate": "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.11.0",
689
+ "jar": "kotlinx-coroutines-core-jvm-1.11.0.jar",
690
+ "sha256": "d1d75aa01dffbb4d1c520e67e4c4e7f5f6174718e7cb4632412503f2f0e604fa",
691
+ "embeddedNotices": [
692
+
693
+ ]
694
+ },
463
695
  {
464
696
  "coordinate": "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0",
465
697
  "jar": "kotlinx-coroutines-core-jvm-1.8.0.jar",
@@ -469,17 +701,41 @@
469
701
  ]
470
702
  },
471
703
  {
472
- "coordinate": "org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.9.0",
473
- "jar": "kotlinx-serialization-core-jvm-1.9.0.jar",
474
- "sha256": "1f0afa172110e45a7231ef1b44ae8fd84c1ebaff96f3fc3ad68ef8c48120b59c",
704
+ "coordinate": "org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.9.1",
705
+ "jar": "kotlinx-io-bytestring-jvm-0.9.1.jar",
706
+ "sha256": "8589de0b7c476bfdd02a24641685f609ade72f5e595cf2909c168acdba7e6ba4",
707
+ "embeddedNotices": [
708
+
709
+ ]
710
+ },
711
+ {
712
+ "coordinate": "org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.9.1",
713
+ "jar": "kotlinx-io-core-jvm-0.9.1.jar",
714
+ "sha256": "765d8851d8ca694706931331b92386844800867e041b720f1f193dbda874d370",
715
+ "embeddedNotices": [
716
+
717
+ ]
718
+ },
719
+ {
720
+ "coordinate": "org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.11.0",
721
+ "jar": "kotlinx-serialization-core-jvm-1.11.0.jar",
722
+ "sha256": "f4a801c647d4351327cd9e1ac4113e2be9ea37a64ab0abae269c25a52e28f35d",
475
723
  "embeddedNotices": [
476
724
 
477
725
  ]
478
726
  },
479
727
  {
480
- "coordinate": "org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.9.0",
481
- "jar": "kotlinx-serialization-json-jvm-1.9.0.jar",
482
- "sha256": "d94cc34cae39246a1af74fda63f9c4812ce12216ef641d5fa3bbbb539a6922d8",
728
+ "coordinate": "org.jetbrains.kotlinx:kotlinx-serialization-json-io-jvm:1.11.0",
729
+ "jar": "kotlinx-serialization-json-io-jvm-1.11.0.jar",
730
+ "sha256": "bbf3005522426ac4ba2acd6dc38f47ea5a3274ee82b932b8841835c7eaddab74",
731
+ "embeddedNotices": [
732
+
733
+ ]
734
+ },
735
+ {
736
+ "coordinate": "org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.11.0",
737
+ "jar": "kotlinx-serialization-json-jvm-1.11.0.jar",
738
+ "sha256": "563a25b4eb5c9128ae9c2479f3d1a5c44dcd176112b91cf03682e906eba5c935",
483
739
  "embeddedNotices": [
484
740
 
485
741
  ]
@@ -492,6 +748,14 @@
492
748
 
493
749
  ]
494
750
  },
751
+ {
752
+ "coordinate": "org.jetbrains:annotations:23.0.0",
753
+ "jar": "annotations-23.0.0.jar",
754
+ "sha256": "7b0f19724082cbfcbc66e5abea2b9bc92cf08a1ea11e191933ed43801eb3cd05",
755
+ "embeddedNotices": [
756
+
757
+ ]
758
+ },
495
759
  {
496
760
  "coordinate": "org.jooq:joou-java-6:0.9.5",
497
761
  "jar": "joou-java-6-0.9.5.jar",
@@ -1,10 +1,3 @@
1
- The MCP project is undergoing a licensing transition from the MIT License to the Apache License, Version 2.0 ("Apache-2.0"). All new code and specification contributions to the project are licensed under Apache-2.0. Documentation contributions (excluding specifications) are licensed under CC-BY-4.0.
2
-
3
- Contributions for which relicensing consent has been obtained are licensed under Apache-2.0. Contributions made by authors who originally licensed their work under the MIT License and who have not yet granted explicit permission to relicense remain licensed under the MIT License.
4
-
5
- No rights beyond those granted by the applicable original license are conveyed for such contributions.
6
-
7
- ---
8
1
 
9
2
  Apache License
10
3
  Version 2.0, January 2004
@@ -56,9 +49,9 @@ No rights beyond those granted by the applicable original license are conveyed f
56
49
  "Contribution" shall mean any work of authorship, including
57
50
  the original version of the Work and any modifications or additions
58
51
  to that Work or Derivative Works thereof, that is intentionally
59
- submitted to Licensor for inclusion in the Work by the copyright
60
- owner or by an individual or Legal Entity authorized to submit on behalf
61
- of the copyright owner. For the purposes of this definition, "submitted"
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
62
55
  means any form of electronic, verbal, or written communication sent
63
56
  to the Licensor or its representatives, including but not limited to
64
57
  communication on electronic mailing lists, source code control systems,
@@ -183,34 +176,27 @@ No rights beyond those granted by the applicable original license are conveyed f
183
176
 
184
177
  END OF TERMS AND CONDITIONS
185
178
 
186
- ---
187
-
188
- MIT License
189
-
190
- Copyright (c) 2024-2025 Model Context Protocol a Series of LF Projects, LLC.
191
-
192
- Permission is hereby granted, free of charge, to any person obtaining a copy
193
- of this software and associated documentation files (the "Software"), to deal
194
- in the Software without restriction, including without limitation the rights
195
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
196
- copies of the Software, and to permit persons to whom the Software is
197
- furnished to do so, subject to the following conditions:
179
+ APPENDIX: How to apply the Apache License to your work.
198
180
 
199
- The above copyright notice and this permission notice shall be included in all
200
- copies or substantial portions of the Software.
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
201
189
 
202
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
203
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
204
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
205
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
206
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
207
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
208
- SOFTWARE.
190
+ Copyright [2018] [Ohad Shai]
209
191
 
210
- ---
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
211
195
 
212
- Creative Commons Attribution 4.0 International (CC-BY-4.0)
196
+ http://www.apache.org/licenses/LICENSE-2.0
213
197
 
214
- Documentation in this project (excluding specifications) is licensed under
215
- CC-BY-4.0. See https://creativecommons.org/licenses/by/4.0/legalcode for
216
- the full license text.
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
@@ -0,0 +1,26 @@
1
+ SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1-or-later
2
+
3
+ Java Native Access (JNA) is licensed under the LGPL, version 2.1
4
+ or later, or (from version 4.0 onward) the Apache License,
5
+ version 2.0.
6
+
7
+ You can freely decide which license you want to apply to the project.
8
+
9
+ You may obtain a copy of the LGPL License at:
10
+
11
+ http://www.gnu.org/licenses/licenses.html
12
+
13
+ A copy is also included in the downloadable source code package
14
+ containing JNA, in file "LGPL2.1", under the same directory
15
+ as this file.
16
+
17
+ You may obtain a copy of the Apache License at:
18
+
19
+ http://www.apache.org/licenses/
20
+
21
+ A copy is also included in the downloadable source code package
22
+ containing JNA, in file "AL2.0", under the same directory
23
+ as this file.
24
+
25
+ Commercial support may be available, please e-mail
26
+ twall[at]users[dot]sf[dot]net.
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@hanger-source/agentic-olap",
3
- "version": "0.16.0",
3
+ "version": "0.17.3",
4
4
  "description": "Installable Agentic OLAP service and command-line client with bundled runtimes",
5
5
  "license": "Apache-2.0",
6
6
  "author": "hanger",
7
- "bin": { "agentic-olap": "runtime/agentic-olap-runtime" },
7
+ "bin": { "agentic-olap": "runtime/agentic-olap" },
8
8
  "files": ["runtime", "jre", "sdk", "connectors", "licenses", "distribution.json", "server.example.json", "resources.json", "jvm-dependencies.json", "build.json", "README.md", "LICENSE"],
9
- "scripts": { "postinstall": "./runtime/agentic-olap-runtime install-jvm-dependencies" },
9
+ "scripts": { "postinstall": "./jre/bin/java -jar ./runtime/agentic-olap-bootstrap.jar ." },
10
10
  "os": ["darwin"],
11
11
  "cpu": ["arm64"],
12
12
  "engines": { "node": ">=20" },
package/resources.json CHANGED
@@ -1,21 +1,21 @@
1
1
  {
2
- "connectorApiVersion": "agentic-olap-connector/v12-kotlin-native-collection-placement-calcite-1.42",
3
- "connectors": [
4
- "connectors/0001-h2/connector.json",
5
- "connectors/0002-duckdb/connector.json"
6
- ],
7
- "sdk": "sdk",
8
- "sdkArtifacts": {
9
- "connector-api": "com.github.hanger-source.agentic-olap:connector-api:v0.16.0",
10
- "connector-loader": "com.github.hanger-source.agentic-olap:connector-loader:v0.16.0",
11
- "engine-core": "com.github.hanger-source.agentic-olap:engine-core:v0.16.0",
12
- "execution-calcite": "com.github.hanger-source.agentic-olap:execution-calcite:v0.16.0",
13
- "execution-catalog": "com.github.hanger-source.agentic-olap:execution-catalog:v0.16.0",
14
- "olap-contracts": "com.github.hanger-source.agentic-olap:olap-contracts:v0.16.0",
15
- "semantic-calcite": "com.github.hanger-source.agentic-olap:semantic-calcite:v0.16.0",
16
- "warehouse-contracts": "com.github.hanger-source.agentic-olap:warehouse-contracts:v0.16.0",
17
- "warehouse-jdbc": "com.github.hanger-source.agentic-olap:warehouse-jdbc:v0.16.0"
18
- },
19
- "sdkRepository": "https://jitpack.io",
20
- "version": "0.16.0"
2
+ "version": "0.17.3",
3
+ "connectorApiVersion": "agentic-olap-connector/v12-kotlin-native-collection-placement-calcite-1.42",
4
+ "sdk": "sdk",
5
+ "sdkRepository": "https://jitpack.io",
6
+ "sdkArtifacts": {
7
+ "connector-api": "com.github.hanger-source.agentic-olap:connector-api:v0.17.3",
8
+ "connector-loader": "com.github.hanger-source.agentic-olap:connector-loader:v0.17.3",
9
+ "engine-core": "com.github.hanger-source.agentic-olap:engine-core:v0.17.3",
10
+ "execution-calcite": "com.github.hanger-source.agentic-olap:execution-calcite:v0.17.3",
11
+ "execution-catalog": "com.github.hanger-source.agentic-olap:execution-catalog:v0.17.3",
12
+ "olap-contracts": "com.github.hanger-source.agentic-olap:olap-contracts:v0.17.3",
13
+ "semantic-calcite": "com.github.hanger-source.agentic-olap:semantic-calcite:v0.17.3",
14
+ "warehouse-contracts": "com.github.hanger-source.agentic-olap:warehouse-contracts:v0.17.3",
15
+ "warehouse-jdbc": "com.github.hanger-source.agentic-olap:warehouse-jdbc:v0.17.3"
16
+ },
17
+ "connectors": [
18
+ "connectors/h2/connector.json",
19
+ "connectors/duckdb/connector.json"
20
+ ]
21
21
  }
@@ -0,0 +1,14 @@
1
+ #!/bin/sh
2
+ set -eu
3
+ entry=$0
4
+ while [ -L "$entry" ]; do
5
+ directory=$(CDPATH= cd -P -- "$(/usr/bin/dirname "$entry")" && pwd)
6
+ link=$(/usr/bin/readlink "$entry")
7
+ case "$link" in /*) entry=$link ;; *) entry=$directory/$link ;; esac
8
+ done
9
+ root=$(CDPATH= cd -P -- "$(/usr/bin/dirname "$entry")/.." && pwd)
10
+ if [ ! -f "$root/runtime/installed.json" ] || [ ! -f "$root/runtime/server.args" ]; then
11
+ echo 'Agentic OLAP 的 npm 安装未完成,请重新执行 npm install。' >&2
12
+ exit 1
13
+ fi
14
+ exec "$root/jre/bin/java" "-Dagentic.olap.home=$root" "@$root/runtime/server.args" "$@"
package/sdk/API.md CHANGED
@@ -31,7 +31,7 @@ SDK 的 JAR、POM 由插件工程的 Gradle 从 JitPack 匿名取得,第三方
31
31
 
32
32
  摘要使用 64 位小写十六进制。宿主提供共同合同、连接器 API 和 Calcite,插件不打包这些宿主类。JDBC 插件自行携带 JDBC 实现;仓库参考插件将共同实现重定位到 `com.olap.connectors.jdbc` 后打入插件 JAR。插件实现使用自己的包名,例如 `com.olap.connectors.backend`。独立插件组的类与原生资源从已核验 JAR 读取,宿主同名驱动不能遮蔽它们。
33
33
 
34
- 应用侧 `connector-loader` 的唯一装载入口是 `ConnectorPlugins.load(List<Path>)`,接收明确的绝对 manifest 路径列表。完整服务从部署配置的 `connectors` 数组取得路径,Go 按本次工作所需的精确来源将对应列表交给 Kotlin 工作进程,由后者装载并持有资源;应用关闭时关闭装载器。业务请求不接受插件路径。重复精确身份、API 不匹配、字节摘要不符或缺驱动在装载时失败。
34
+ 应用侧 `connector-loader` 的唯一装载入口是 `ConnectorPlugins.load(List<Path>)`,接收明确的绝对 manifest 路径列表。完整服务从部署配置的 `connectors` 数组取得路径,主服务按本次工作所需的精确来源将对应列表交给工作进程,由后者装载并持有资源;应用关闭时关闭装载器。业务请求不接受插件路径。重复精确身份、API 不匹配、字节摘要不符或缺驱动在装载时失败。
35
35
 
36
36
  同一连接器 ID 的不同版本或不同构件摘要可以并存,各插件组使用独立目录。源码装配入口按输入序号隔离目录并返回准确 manifest 列表,发行归档沿该列表收集插件组;目录名不代替精确 `ConnectorRef`,不能只按 ID 推导路径或选择某个版本。
37
37
 
@@ -49,6 +49,29 @@ AVG 的类型容量、算术正确性与舍入必须共同成立。`typeSystem.d
49
49
 
50
50
  `deriveAvgAggType` 接收的是输入技术类型,不接收本次数据的最小值、最大值或行数;发现请求中的 `inputType` 也不是业务值域证明。最终数量容量及 `Approximate.minimum/maximum` 不能充当 AVG 的受限输入合同。当前没有从样本、字段名或过滤文本自动推导“安全评分范围”的机制。仅当来源先给出明确可证明的受限策略、而现有正式表达仍无法承载其前提时,才有依据讨论相应扩展;保证未知时保持拒绝。
51
51
 
52
+ `CompilationSupport.division` 是来源表达式和完成关系的共同原生 DIVIDE 入口;SAFE_DIVIDE 也使用它,零分母由核心保留为 `NULLIF`。它可以是自定义 `SqlOperator`:返回类型推导接收实际有序输入类型,`unparse` 映射已证明的原生 SQL AST。采用标准 DECIMAL 除法推导时,实际工作类型来自 `typeSystem.deriveDecimalDivideType`;自定义算子也可以提供自己的返回类型推导,不能假设一定调用该类型系统方法。`maximumDeclaredDecimalPrecision` 限制正式数量输出,不等于插件已证明任何中间除法策略,也不替插件决定工作类型。
53
+
54
+ 除法的原生计算与最终数量输出是两个位置。`ResultNumeric` 的 DECIMAL precision/scale/rounding 在该表达式完成后应用;当前 `division` 入口不接收外围 `MetricValueContract`。例如原生 `DECIMAL(38,0) / BIGINT` 已舍入为六位商,再 CAST 成 DECIMAL(38,18),只会增加尾零,不能兑现要求十八位 HALF_UP 的数学商。外层类型容量、BigDecimal 解码及结果保存都不能恢复已经丢失的信息;原生 AVG 的 `decimalAverageRounding` 与显式 SUM/COUNT 的 DIVIDE 无关。
55
+
56
+ 插件应先确定真实后端对所接受输入类型的中间容量、舍入、NULL、零分母与溢出行为,再用一致的类型推导和 AST 映射表达。统一的原生策略若能兑现接受域,可以使用现有入口;尚无保证的精确输入应由自定义除法算子的返回类型推导明确拒绝,不返回猜测类型或静默转浮点。不能只把返回类型声明为 DECIMAL(38,18),也不能为增大商的 scale 将一个需要三十八个整数位的分子提前窄化为只有二十个整数位的 DECIMAL(38,18)。
57
+
58
+ 原生除法绑定或返回类型推导明确抛出 `IllegalArgumentException`/`UnsupportedOperationException` 时,核心以 `NATIVE_ARITHMETIC_MAPPING_UNAVAILABLE` 交付拒绝,附 `operation=DIVIDE` 及两个实际 `inputTypes`。错误不包含插件私有 cause 原文,不执行来源 SQL;作者的非数值输入先按表达式合同拒绝。这个错误说明映射没有建立,不将未知算术写成数据已经违例,也不代表核心能够自动验证一个已经返回成功的原生算子。
59
+
60
+ 下面是尚未建立任何原生除法保证时的明确拒绝方式;建立真实映射后,替换的是同一个算子的类型推导和原生 AST 实现,不在运行失败后切换策略:
61
+
62
+ ```kotlin
63
+ override val division: SqlOperator = SqlBinaryOperator(
64
+ "/", SqlKind.DIVIDE, 60, true,
65
+ SqlReturnTypeInference { binding ->
66
+ val inputs = (0 until binding.operandCount).map { binding.getOperandType(it).fullTypeString }
67
+ throw UnsupportedOperationException("native division mapping is not established for $inputs")
68
+ },
69
+ null, OperandTypes.NUMERIC_NUMERIC
70
+ )
71
+ ```
72
+
73
+ 方言 `prepareUnparse(RexNode)` 可以观察仍有类型的 AST;目标 CAST 的 precision/scale 不携带完整业务舍入政策。不能靠反查生成 SQL 或猜目标类型重建该政策,也不能把外围输出量化自动应用到所有嵌套除法:`ROUND((a/b)*c,s)` 与先量化 `a/b` 再乘 `c` 并不普遍等价。只有提供了可兑现的后端策略、并具体说明其必须取得而现有入口确实不提供的信息后,才能据此判断需要的通用扩展。核心不以最终类型合规或少量正常值样本替来源证明算术。
74
+
52
75
  只读属性 `CompilationSupport.parameterSubmission` 必须明确声明 `BIND_PARAMETERS` 或 `TYPED_LITERALS`。前者保留有序参数,后者通过 `parameterLiteral` 将已校验值映射成 SQL AST 字面量并保留编译类型 CAST;共同默认映射覆盖参数编码中的精确数值、文本、布尔与时间值,后端特殊映射由插件明确实现。主查询、关系检查和候选值均使用该选择,不做问号文本替换或运行失败后的自动切换。
53
76
 
54
77
  `CORRELATED_DERIVED_PROJECTION` 声明派生关系的投影能引用外层查询值。普通 `EXISTS` 条件相关不要求这项能力;数量合同的行内求值槽若必须把外层人口条件绑定在派生投影中,则按本次实际构造检查。缺失时在提交 SQL 前抛出 `NativeCompilationCapabilityException`,公开错误 `NATIVE_COMPILATION_CAPABILITY_MISSING` 包含 `capability` 与 `operation=NUMERIC_EVALUATION_BINDING`。插件依据真实后端行为声明,它不代表来源事务或快照能力。内核不删除人口保护、不重复内联检查,也不在执行失败后切换方案。DuckDB 声明此能力;当前 H2 不声明。
@@ -77,6 +100,8 @@ AVG 的类型容量、算术正确性与舍入必须共同成立。`typeSystem.d
77
100
 
78
101
  该操作也接受 `aggregate={connectorRef,aggregation,inputType,grouped}`,用现有 `typeSystem` 与 `nativeAggregate` 推导精确输入类型的原生聚合结果,不要求另一份聚合支持表。AVG 复用编译时的 `deriveAvgAggType`、原生函数容量一致性核验及 `decimalAverageRounding`;无法兑现时返回 `UNAVAILABLE`,不猜返回类型。原生映射成功才披露适用的 `aggregationRounding`,它不等于业务最终结果的舍入。插件的这些声明必须纯粹、确定,不连接来源或依赖运行参数;实际后端映射及证据仍由插件维护。正式请求和响应见[来源合同](SOURCE-ACCESS.md)。
79
102
 
103
+ 原生映射依赖的后端版本、locale、编码等语义前提,由精确插件及身份参数记录,并由 `SourceAccess.execute` 对实际访问兑现;冻结配置及函数稳定性声明不是环境证明。`nativeScalarCall` 不取得来源配置,TEXT 参数也不提供词法域证明。参数角色、执行核验和明确拒绝的完整责任见[原生映射的来源环境](SOURCE-ACCESS.md#原生映射的来源环境)。
104
+
80
105
  ## 来源访问与结果
81
106
 
82
107
  `SourceAccess.configurationParameters` 用 `SourceConfigurationParameters(identityNames,runtimeNames)` 声明参数角色。配置分别提交 `identityParameters/runtimeParameters`;来源摘要只纳入前者和精确插件、方言、凭据槽。预算或回执目录不应改变业务数据身份,影响数据选择、比较或类型语义的设置也不能伪装成运行参数。未知键和错放角色由核心拒绝,必填值与值域仍由插件校验。
package/sdk/LOADER.md CHANGED
@@ -19,7 +19,7 @@ ConnectorPlugins.load(listOf(Path.of("/deployment/connectors/backend/manifest.js
19
19
  }
20
20
  ```
21
21
 
22
- `ConnectorPlugins` 位于 `com.olap.prototype.connector.loader`。`load(List<Path>)` 接收明确的 manifest 列表。完整服务从部署配置读取这些路径,Go 按本次工作所需的精确来源启动工作进程,Kotlin 装载对应插件;业务工具不接受 manifest 路径或插件文件。
22
+ `ConnectorPlugins` 位于 `com.olap.prototype.connector.loader`。`load(List<Path>)` 接收明确的 manifest 列表。完整服务从部署配置读取这些路径,主服务按本次工作所需的精确来源启动工作进程,工作入口装载对应插件;业务工具不接受 manifest 路径或插件文件。
23
23
 
24
24
  每个 manifest 的 JAR 位于其所在目录,文件名不得包含目录分隔符;实际路径不能越出该组。装载器核每个 JAR 的 SHA-256、完整组摘要、API 版本与 provider 身份,每组只允许一个 provider,注册表拒绝重复精确引用。装载器取得 CompilationSupport 和 SourceAccess;JDBC 实现自行核验驱动,HTTP 实现不要求驱动。发现与编译阶段不连接业务源。
25
25
 
@@ -97,6 +97,10 @@ JDBC 实现的 `identityParameters` 为 `jdbcUrl`、可选 `username` 和 `drive
97
97
 
98
98
  如果同一输入类型在不同执行形态上返回不同 scale,须区分只增加尾零的表示差异与原生计算已经不同舍入的情况。宽类型只提供容纳空间,不能补回原生结果已经丢失的信息。插件只有在能兑现统一的实际容量及原生舍入时才能声明映射;已证明的原生输入转换或另一原生策略须通过确定的 SQL AST 映射和相同类型推导表达,保留人口、NULL、权重和错误,不在来源执行失败后切换。
99
99
 
100
+ 显式 `SUM(x)/COUNT(x)` 使用 `CompilationSupport.division`,不使用 AVG 的 `decimalAverageRounding`。该入口可返回自定义 `SqlOperator`,用实际输入类型推导返回类型并渲染已证明的原生 AST;标准 DECIMAL 除法使用 `typeSystem.deriveDecimalDivideType`,自定义算子可有自己的类型推导。未知或已知不能兑现的精确除法,应在该算子的类型推导中明确拒绝;不能因为原生结果是 numeric、没有变成 DOUBLE,就宣称已经实现数学上的目标精度。实际绑定/推导拒绝返回 `NATIVE_ARITHMETIC_MAPPING_UNAVAILABLE`,披露 `operation=DIVIDE` 和实际 `inputTypes`;没有执行来源 SQL,也不公开插件 cause 原文。
101
+
102
+ `ResultNumeric` 的最终 DECIMAL 容量与舍入在表达式完成后应用,当前除法入口不接收这份外围输出政策。原生商若已舍入为六位,再 CAST 为 DECIMAL(38,18) 只会补零;结果类型检查和 BigDecimal 读取不能补回位数。`prepareUnparse` 能看到类型,但 CAST 的目标 p/s 不完整表达 HALF_UP 等业务政策。也不能把最终十八位量化提前到所有中间除法,或者将三十八整数位分子窄化为 DECIMAL(38,18) 来换取 scale。若后端策略确实必须按本次目标政策选择,并已证明现有统一运算及类型入口无法表达,应提交该策略及具体缺失信息,再确定通用扩展;不能仅凭存在 typed AST 就宣称问题已经解决。
103
+
100
104
  当前类型推导与聚合发现只接收技术类型,没有本次输入的业务值域及行数合同。最终输出容量、`Approximate.minimum/maximum` 或一次调查范围不能替代受限输入的证明,也不能据此臆定评分为某个区间。先明确后端实际保证及其适用前提,再判断现有表达能否承载;尚未找到可兑现策略,不等于核心缺少一个范围参数。
101
105
 
102
106
  作者通过 `describe-script-api` 读取 `read-connector-capabilities` 的方法和正式参数,再在脚本中提交具体聚合查询。例如,以下程序使用已获准来源所指的精确连接器读取 BIGINT 全局 AVG 映射:
@@ -158,6 +162,14 @@ olap.output(olap.sources.connectorCapabilities(
158
162
 
159
163
  `IMMUTABLE/STATEMENT/VOLATILE` 按函数实际依赖声明稳定性;精确物理版本不冻结表内数据,不能据此宣称读取该表的结果恒定。函数调用不能因显示名相同而被当作常量或共享。插件只映射已校验参数到 SQL AST,业务定义与 Query 继续拥有业务公式、对象总体和计算阶段;函数声明不扩大来源、表或公开输出权限。
160
164
 
165
+ ### 原生映射的来源环境
166
+
167
+ 依赖后端版本、locale、编码或 collation 的映射,由精确插件声明适用前提。影响解析、比较或数值含义的可配置前提,通过 `SourceConfigurationParameters.identityNames` 声明并放入 `identityParameters`,随精确插件和来源绑定冻结;等待预算等仍属于运行参数。摘要冻结的是期望配置,不读取或证明真实后端环境。
168
+
169
+ `validateConfiguration` 校验参数与插件支持组合;`SourceAccess.execute` 对本次实际访问环境负责。插件依据访问通道确实提供的同会话、不可变部署或其他有效机制,将核验与主查询关联。独立一次版本查询、历史样本或初始化观察,本身不保证后续请求命中相同环境;也不要求所有来源先取得 catalog 调查权限。实际环境不满足或不能兑现映射前提时,插件明确拒绝,使用已有来源失败合同交付受控原因及实际请求事实。原生探测、SQL 和内部异常保留在私有诊断;`SourceReadBasis` 继续表达数据读基础,不作为引擎环境证书。
170
+
171
+ `nativeScalarCall` 接收函数与 SQL AST 实参,不接收来源配置;声明的映射应由精确插件及显式实参确定,不能声称配置会自动传入编译函数。`IMMUTABLE/STATEMENT/VOLATILE` 约束求值与共享,不替代环境保证。TEXT 签名也不证明字符串满足某个十进制词法或容量域:解析映射需要对允许输入兑现语义,对域外输入明确失败;调用方过滤或最终 DECIMAL 不能替代这一责任。
172
+
161
173
  ## 交付结果
162
174
 
163
175
  插件返回 `SourceExecutionResult(frame,readBasis,request)`,其中 `frame` 是 `ResultFrame`。列必须与核心给定别名、顺序和类型一致;技术类型可以来自来源响应,也可以来自使用方明确的类型合同。`JdbcColumnType` 在这里是 SQL 标准类型码、原生类型名、精度、标度和可空性的值对象,不要求 `ResultSetMetaData`、`Connection` 或任何 JDBC 驱动。