@ekairos/dataset 1.22.36-beta.development.0 → 1.22.36

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 (160) hide show
  1. package/README.md +347 -0
  2. package/dist/agents.d.ts +8 -0
  3. package/dist/agents.js +8 -0
  4. package/dist/builder/agentMaterializers.d.ts +9 -0
  5. package/dist/builder/agentMaterializers.js +10 -0
  6. package/dist/builder/context.d.ts +15 -0
  7. package/dist/builder/context.js +251 -0
  8. package/dist/builder/instructions.d.ts +5 -0
  9. package/dist/builder/instructions.js +40 -0
  10. package/dist/builder/materialize.d.ts +83 -0
  11. package/dist/builder/materialize.js +548 -0
  12. package/dist/builder/materializeQuery.d.ts +12 -0
  13. package/dist/builder/materializeQuery.js +31 -0
  14. package/dist/builder/persistence.d.ts +22 -0
  15. package/dist/builder/persistence.js +153 -0
  16. package/dist/builder/rows.d.ts +7 -0
  17. package/dist/builder/rows.js +56 -0
  18. package/dist/builder/schemaInference.d.ts +3 -0
  19. package/dist/builder/schemaInference.js +61 -0
  20. package/dist/builder/types.d.ts +140 -0
  21. package/dist/builder/types.js +1 -0
  22. package/dist/clearDataset.tool.d.ts +2 -3
  23. package/dist/clearDataset.tool.js +13 -17
  24. package/dist/completeDataset.steps.d.ts +117 -0
  25. package/dist/completeDataset.steps.js +487 -0
  26. package/dist/completeDataset.tool.d.ts +132 -7
  27. package/dist/completeDataset.tool.js +46 -192
  28. package/dist/contextResources.d.ts +31 -0
  29. package/dist/contextResources.js +151 -0
  30. package/dist/contextWorkspace.d.ts +79 -0
  31. package/dist/contextWorkspace.js +234 -0
  32. package/dist/dataset/steps.d.ts +39 -15
  33. package/dist/dataset/steps.js +96 -39
  34. package/dist/dataset.d.ts +3 -67
  35. package/dist/dataset.js +129 -521
  36. package/dist/datasetFiles.d.ts +5 -1
  37. package/dist/datasetFiles.js +29 -27
  38. package/dist/domain.d.ts +1 -2
  39. package/dist/domain.js +1 -6
  40. package/dist/executeCommand.tool.d.ts +2 -30
  41. package/dist/executeCommand.tool.js +165 -39
  42. package/dist/file/file-dataset.agent.d.ts +19 -56
  43. package/dist/file/file-dataset.agent.js +176 -134
  44. package/dist/file/file-dataset.steps.d.ts +27 -0
  45. package/dist/file/file-dataset.steps.js +47 -0
  46. package/dist/file/file-dataset.types.d.ts +64 -0
  47. package/dist/file/file-dataset.types.js +1 -0
  48. package/dist/file/filepreview.d.ts +5 -35
  49. package/dist/file/filepreview.js +60 -107
  50. package/dist/file/filepreview.types.d.ts +31 -0
  51. package/dist/file/filepreview.types.js +1 -0
  52. package/dist/file/generateSchema.tool.d.ts +2 -3
  53. package/dist/file/generateSchema.tool.js +11 -15
  54. package/dist/file/index.d.ts +1 -2
  55. package/dist/file/index.js +1 -18
  56. package/dist/file/prompts.d.ts +2 -3
  57. package/dist/file/prompts.js +134 -27
  58. package/dist/file/scripts.generated.d.ts +1 -0
  59. package/dist/file/scripts.generated.js +11 -0
  60. package/dist/file/steps.d.ts +1 -2
  61. package/dist/file/steps.js +9 -7
  62. package/dist/id.d.ts +1 -0
  63. package/dist/id.js +10 -0
  64. package/dist/index.d.ts +8 -7
  65. package/dist/index.js +8 -23
  66. package/dist/materializeDataset.tool.d.ts +52 -32
  67. package/dist/materializeDataset.tool.js +81 -65
  68. package/dist/query/index.d.ts +1 -2
  69. package/dist/query/index.js +1 -18
  70. package/dist/query/queryDomain.d.ts +3 -4
  71. package/dist/query/queryDomain.js +3 -40
  72. package/dist/query/queryDomain.step.d.ts +1 -1
  73. package/dist/query/queryDomain.step.js +13 -13
  74. package/dist/sandbox/steps.d.ts +23 -15
  75. package/dist/sandbox/steps.js +73 -76
  76. package/dist/sandbox.steps.d.ts +1 -2
  77. package/dist/sandbox.steps.js +1 -18
  78. package/dist/schema.d.ts +13 -13
  79. package/dist/schema.js +25 -37
  80. package/dist/service.d.ts +8 -5
  81. package/dist/service.js +70 -15
  82. package/dist/skill.d.ts +0 -1
  83. package/dist/skill.js +12 -17
  84. package/dist/transform/filepreview.d.ts +2 -3
  85. package/dist/transform/filepreview.js +9 -26
  86. package/dist/transform/index.d.ts +2 -3
  87. package/dist/transform/index.js +2 -8
  88. package/dist/transform/prompts.d.ts +1 -34
  89. package/dist/transform/prompts.js +58 -43
  90. package/dist/transform/transform-dataset.agent.d.ts +20 -45
  91. package/dist/transform/transform-dataset.agent.js +146 -91
  92. package/dist/transform/transform-dataset.steps.d.ts +30 -0
  93. package/dist/transform/transform-dataset.steps.js +61 -0
  94. package/dist/transform/transform-dataset.types.d.ts +95 -0
  95. package/dist/transform/transform-dataset.types.js +1 -0
  96. package/dist/transform/transformDataset.d.ts +3 -3
  97. package/dist/transform/transformDataset.js +15 -18
  98. package/dist/writeDatasetRows.tool.d.ts +188 -0
  99. package/dist/writeDatasetRows.tool.js +258 -0
  100. package/package.json +35 -10
  101. package/dist/clearDataset.tool.d.ts.map +0 -1
  102. package/dist/clearDataset.tool.js.map +0 -1
  103. package/dist/completeDataset.tool.d.ts.map +0 -1
  104. package/dist/completeDataset.tool.js.map +0 -1
  105. package/dist/dataset/steps.d.ts.map +0 -1
  106. package/dist/dataset/steps.js.map +0 -1
  107. package/dist/dataset.d.ts.map +0 -1
  108. package/dist/dataset.js.map +0 -1
  109. package/dist/datasetFiles.d.ts.map +0 -1
  110. package/dist/datasetFiles.js.map +0 -1
  111. package/dist/domain.d.ts.map +0 -1
  112. package/dist/domain.js.map +0 -1
  113. package/dist/eventsReactRuntime.d.ts +0 -22
  114. package/dist/eventsReactRuntime.d.ts.map +0 -1
  115. package/dist/eventsReactRuntime.js +0 -29
  116. package/dist/eventsReactRuntime.js.map +0 -1
  117. package/dist/executeCommand.tool.d.ts.map +0 -1
  118. package/dist/executeCommand.tool.js.map +0 -1
  119. package/dist/file/file-dataset.agent.d.ts.map +0 -1
  120. package/dist/file/file-dataset.agent.js.map +0 -1
  121. package/dist/file/filepreview.d.ts.map +0 -1
  122. package/dist/file/filepreview.js.map +0 -1
  123. package/dist/file/generateSchema.tool.d.ts.map +0 -1
  124. package/dist/file/generateSchema.tool.js.map +0 -1
  125. package/dist/file/index.d.ts.map +0 -1
  126. package/dist/file/index.js.map +0 -1
  127. package/dist/file/prompts.d.ts.map +0 -1
  128. package/dist/file/prompts.js.map +0 -1
  129. package/dist/file/steps.d.ts.map +0 -1
  130. package/dist/file/steps.js.map +0 -1
  131. package/dist/index.d.ts.map +0 -1
  132. package/dist/index.js.map +0 -1
  133. package/dist/materializeDataset.tool.d.ts.map +0 -1
  134. package/dist/materializeDataset.tool.js.map +0 -1
  135. package/dist/query/index.d.ts.map +0 -1
  136. package/dist/query/index.js.map +0 -1
  137. package/dist/query/queryDomain.d.ts.map +0 -1
  138. package/dist/query/queryDomain.js.map +0 -1
  139. package/dist/query/queryDomain.step.d.ts.map +0 -1
  140. package/dist/query/queryDomain.step.js.map +0 -1
  141. package/dist/sandbox/steps.d.ts.map +0 -1
  142. package/dist/sandbox/steps.js.map +0 -1
  143. package/dist/sandbox.steps.d.ts.map +0 -1
  144. package/dist/sandbox.steps.js.map +0 -1
  145. package/dist/schema.d.ts.map +0 -1
  146. package/dist/schema.js.map +0 -1
  147. package/dist/service.d.ts.map +0 -1
  148. package/dist/service.js.map +0 -1
  149. package/dist/skill.d.ts.map +0 -1
  150. package/dist/skill.js.map +0 -1
  151. package/dist/transform/filepreview.d.ts.map +0 -1
  152. package/dist/transform/filepreview.js.map +0 -1
  153. package/dist/transform/index.d.ts.map +0 -1
  154. package/dist/transform/index.js.map +0 -1
  155. package/dist/transform/prompts.d.ts.map +0 -1
  156. package/dist/transform/prompts.js.map +0 -1
  157. package/dist/transform/transform-dataset.agent.d.ts.map +0 -1
  158. package/dist/transform/transform-dataset.agent.js.map +0 -1
  159. package/dist/transform/transformDataset.d.ts.map +0 -1
  160. package/dist/transform/transformDataset.js.map +0 -1
@@ -0,0 +1,11 @@
1
+ // Generated by packages/dataset/scripts/generate-python-scripts-module.js.
2
+ // Do not edit by hand.
3
+ export const PYTHON_SCRIPT_BASE64_BY_NAME = Object.freeze({
4
+ "file_metadata.py": "aW1wb3J0IHN5cwppbXBvcnQgb3MKaW1wb3J0IGpzb24KaW1wb3J0IGNzdgoKZmlsZV9wYXRoID0gc3lzLmFyZ3ZbMV0KCmluZm8gPSB7CiAgICAiZmlsZV9uYW1lIjogb3MucGF0aC5iYXNlbmFtZShmaWxlX3BhdGgpLAogICAgImV4dGVuc2lvbiI6IG9zLnBhdGguc3BsaXRleHQoZmlsZV9wYXRoKVsxXS5sb3dlcigpLAogICAgInNpemVfYnl0ZXMiOiBvcy5wYXRoLmdldHNpemUoZmlsZV9wYXRoKSBpZiBvcy5wYXRoLmV4aXN0cyhmaWxlX3BhdGgpIGVsc2UgTm9uZQp9CgppZiBpbmZvWyJzaXplX2J5dGVzIl0gaXMgbm90IE5vbmU6CiAgICB1bml0cyA9IFsiQiIsICJLQiIsICJNQiIsICJHQiIsICJUQiIsICJQQiJdCiAgICBzaXplID0gZmxvYXQoaW5mb1sic2l6ZV9ieXRlcyJdKQogICAgaWR4ID0gMAogICAgd2hpbGUgc2l6ZSA+PSAxMDI0IGFuZCBpZHggPCBsZW4odW5pdHMpIC0gMToKICAgICAgICBzaXplIC89IDEwMjQKICAgICAgICBpZHggKz0gMQogICAgaW5mb1sic2l6ZV9odW1hbiJdID0gZiJ7c2l6ZTouMmZ9IHt1bml0c1tpZHhdfSIKCnJvd19lc3RpbWF0ZSA9IE5vbmUKY29sdW1uX2VzdGltYXRlID0gTm9uZQpoZWFkZXJfcHJldmlldyA9IE5vbmUKCnRyeToKICAgIGlmIGluZm9bImV4dGVuc2lvbiJdIGluIFsiLnhsc3giLCAiLnhscyJdOgogICAgICAgIGltcG9ydCBvcGVucHl4bAogICAgICAgIHdiID0gb3BlbnB5eGwubG9hZF93b3JrYm9vayhmaWxlX3BhdGgsIHJlYWRfb25seT1UcnVlLCBkYXRhX29ubHk9RmFsc2UpCiAgICAgICAgc2hlZXRzID0gW10KICAgICAgICBmaXJzdF9zaGVldF9yb3dzID0gMAogICAgICAgIGZpcnN0X3NoZWV0X2NvbHVtbnMgPSAwCiAgICAgICAgZm9yIGlkeCwgd3MgaW4gZW51bWVyYXRlKHdiLndvcmtzaGVldHMpOgogICAgICAgICAgICByb3dzID0gd3MubWF4X3JvdyBvciAwCiAgICAgICAgICAgIGNvbHMgPSB3cy5tYXhfY29sdW1uIG9yIDAKICAgICAgICAgICAgaWYgaWR4ID09IDA6CiAgICAgICAgICAgICAgICBmaXJzdF9zaGVldF9yb3dzID0gcm93cwogICAgICAgICAgICAgICAgZmlyc3Rfc2hlZXRfY29sdW1ucyA9IGNvbHMKICAgICAgICAgICAgc2hlZXRfaW5mbyA9IHsibmFtZSI6IHdzLnRpdGxlLCAicm93cyI6IHJvd3MsICJjb2x1bW5zIjogY29sc30KICAgICAgICAgICAgc2hlZXRzLmFwcGVuZChzaGVldF9pbmZvKQogICAgICAgIGluZm9bInNoZWV0X3N0YXRzIl0gPSBzaGVldHMKICAgICAgICByb3dfZXN0aW1hdGUgPSBmaXJzdF9zaGVldF9yb3dzCiAgICAgICAgY29sdW1uX2VzdGltYXRlID0gZmlyc3Rfc2hlZXRfY29sdW1ucyBpZiBmaXJzdF9zaGVldF9jb2x1bW5zID4gMCBlbHNlIE5vbmUKICAgICAgICB0cnk6CiAgICAgICAgICAgIGZpcnN0X3NoZWV0ID0gd2Iud29ya3NoZWV0c1swXQogICAgICAgICAgICBoZWFkZXJfcHJldmlldyA9IFtzdHIoY2VsbC52YWx1ZSkgaWYgY2VsbC52YWx1ZSBpcyBub3QgTm9uZSBlbHNlICIiIGZvciBjZWxsIGluIG5leHQoZmlyc3Rfc2hlZXQuaXRlcl9yb3dzKG1pbl9yb3c9MSwgbWF4X3Jvdz0xKSldCiAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAgICAgICAgaGVhZGVyX3ByZXZpZXcgPSBOb25lCiAgICBlbHNlOgogICAgICAgIHJvd19jb3VudCA9IDAKICAgICAgICB3aXRoIG9wZW4oZmlsZV9wYXRoLCAicmIiKSBhcyBmaDoKICAgICAgICAgICAgZm9yIF8gaW4gZmg6CiAgICAgICAgICAgICAgICByb3dfY291bnQgKz0gMQogICAgICAgIHJvd19lc3RpbWF0ZSA9IHJvd19jb3VudCAtIDEgaWYgcm93X2NvdW50ID4gMCBlbHNlIDAKICAgICAgICB3aXRoIG9wZW4oZmlsZV9wYXRoLCAiciIsIGVuY29kaW5nPSJ1dGYtOCIsIGVycm9ycz0iaWdub3JlIikgYXMgZmg6CiAgICAgICAgICAgIHJlYWRlciA9IGNzdi5yZWFkZXIoZmgpCiAgICAgICAgICAgIGhlYWRlcl9wcmV2aWV3ID0gbmV4dChyZWFkZXIsIFtdKQogICAgICAgIGNvbHVtbl9lc3RpbWF0ZSA9IGxlbihoZWFkZXJfcHJldmlldykgaWYgaGVhZGVyX3ByZXZpZXcgZWxzZSBOb25lCmV4Y2VwdCBFeGNlcHRpb24gYXMgZXJyb3I6CiAgICBpbmZvWyJtZXRhZGF0YV9lcnJvciJdID0gc3RyKGVycm9yKQoKaWYgcm93X2VzdGltYXRlIGlzIG5vdCBOb25lOgogICAgaW5mb1sicm93X2NvdW50X2VzdGltYXRlIl0gPSByb3dfZXN0aW1hdGUKaWYgY29sdW1uX2VzdGltYXRlIGlzIG5vdCBOb25lOgogICAgaW5mb1siY29sdW1uX2NvdW50X2VzdGltYXRlIl0gPSBjb2x1bW5fZXN0aW1hdGUKaWYgaGVhZGVyX3ByZXZpZXcgaXMgbm90IE5vbmU6CiAgICBpbmZvWyJoZWFkZXJfcHJldmlldyJdID0gaGVhZGVyX3ByZXZpZXcKCnByaW50KGpzb24uZHVtcHMoaW5mbywgZW5zdXJlX2FzY2lpPUZhbHNlKSkKCg==",
5
+ "preview_head_csv.py": "aW1wb3J0IHN5cwppbXBvcnQgY3N2CmltcG9ydCB4bWwuZXRyZWUuRWxlbWVudFRyZWUgYXMgRVQKCmZpbGVfcGF0aCA9IHN5cy5hcmd2WzFdCm5fcm93cyA9IGludChzeXMuYXJndlsyXSkgaWYgbGVuKHN5cy5hcmd2KSA+IDIgZWxzZSAxMAoKcm9vdCA9IEVULkVsZW1lbnQoInJvd3MiKQoKd2l0aCBvcGVuKGZpbGVfcGF0aCwgInIiLCBlbmNvZGluZz0idXRmLTgiLCBlcnJvcnM9Imlnbm9yZSIpIGFzIGZoOgogICAgcmVhZGVyID0gY3N2LnJlYWRlcihmaCkKICAgIGZvciByb3dfaWR4LCByb3dfZGF0YSBpbiBlbnVtZXJhdGUocmVhZGVyKToKICAgICAgICBpZiByb3dfaWR4ID49IG5fcm93czoKICAgICAgICAgICAgYnJlYWsKICAgICAgICByb3dfZWxlbSA9IEVULlN1YkVsZW1lbnQocm9vdCwgInJvdyIsIGluZGV4PXN0cihyb3dfaWR4KSkKICAgICAgICBmb3IgY29sX2lkeCwgY2VsbF92YWx1ZSBpbiBlbnVtZXJhdGUocm93X2RhdGEpOgogICAgICAgICAgICBjZWxsX2VsZW0gPSBFVC5TdWJFbGVtZW50KHJvd19lbGVtLCAiY2VsbCIsIGNvbHVtbj1zdHIoY29sX2lkeCkpCiAgICAgICAgICAgIGNlbGxfZWxlbS50ZXh0ID0gY2VsbF92YWx1ZSBpZiBjZWxsX3ZhbHVlIGVsc2UgIiIKCnRyZWUgPSBFVC5FbGVtZW50VHJlZShyb290KQpFVC5pbmRlbnQodHJlZSwgc3BhY2U9IiAgIikKcHJpbnQoJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+JykKcHJpbnQoRVQudG9zdHJpbmcocm9vdCwgZW5jb2Rpbmc9InVuaWNvZGUiKSkKCg==",
6
+ "preview_head_excel.py": "aW1wb3J0IHN5cwppbXBvcnQgb3BlbnB5eGwKaW1wb3J0IHhtbC5ldHJlZS5FbGVtZW50VHJlZSBhcyBFVAoKZmlsZV9wYXRoID0gc3lzLmFyZ3ZbMV0Kbl9yb3dzID0gaW50KHN5cy5hcmd2WzJdKSBpZiBsZW4oc3lzLmFyZ3YpID4gMiBlbHNlIDEwCgp3YiA9IG9wZW5weXhsLmxvYWRfd29ya2Jvb2soZmlsZV9wYXRoLCByZWFkX29ubHk9VHJ1ZSwgZGF0YV9vbmx5PVRydWUpCndzID0gd2Iud29ya3NoZWV0c1swXQoKcm9vdCA9IEVULkVsZW1lbnQoInJvd3MiKQoKcm93c19wcmludGVkID0gMApmb3Igcm93X2lkeCwgcm93IGluIGVudW1lcmF0ZSh3cy5pdGVyX3Jvd3MoKSk6CiAgICBpZiByb3dzX3ByaW50ZWQgPj0gbl9yb3dzOgogICAgICAgIGJyZWFrCiAgICByb3dfZWxlbSA9IEVULlN1YkVsZW1lbnQocm9vdCwgInJvdyIsIGluZGV4PXN0cihyb3dfaWR4KSkKICAgIAogICAgZm9yIGNvbF9pZHgsIGNlbGwgaW4gZW51bWVyYXRlKHJvdyk6CiAgICAgICAgY2VsbF9lbGVtID0gRVQuU3ViRWxlbWVudChyb3dfZWxlbSwgImNlbGwiLCBjb2x1bW49c3RyKGNvbF9pZHgpKQogICAgICAgIGNlbGxfdmFsdWUgPSBjZWxsLnZhbHVlCiAgICAgICAgY2VsbF9lbGVtLnRleHQgPSBzdHIoY2VsbF92YWx1ZSkgaWYgY2VsbF92YWx1ZSBpcyBub3QgTm9uZSBlbHNlICIiCiAgICAKICAgIHJvd3NfcHJpbnRlZCArPSAxCgp0cmVlID0gRVQuRWxlbWVudFRyZWUocm9vdCkKRVQuaW5kZW50KHRyZWUsIHNwYWNlPSIgICIpCnByaW50KCc8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PicpCnByaW50KEVULnRvc3RyaW5nKHJvb3QsIGVuY29kaW5nPSJ1bmljb2RlIikpCgo=",
7
+ "preview_mid_csv.py": "aW1wb3J0IHN5cwppbXBvcnQgY3N2CmltcG9ydCByYW5kb20KaW1wb3J0IHhtbC5ldHJlZS5FbGVtZW50VHJlZSBhcyBFVAoKZmlsZV9wYXRoID0gc3lzLmFyZ3ZbMV0Kc3RhcnRfcm93ID0gaW50KHN5cy5hcmd2WzJdKQplbmRfcm93ID0gaW50KHN5cy5hcmd2WzNdKQpuX3NhbXBsZXMgPSBpbnQoc3lzLmFyZ3ZbNF0pIGlmIGxlbihzeXMuYXJndikgPiA0IGVsc2UgMTAKCnJvb3QgPSBFVC5FbGVtZW50KCJyb3dzIikKCndpdGggb3BlbihmaWxlX3BhdGgsICJyIiwgZW5jb2Rpbmc9InV0Zi04IiwgZXJyb3JzPSJpZ25vcmUiKSBhcyBmaDoKICAgIHJlYWRlciA9IGNzdi5yZWFkZXIoZmgpCiAgICBhbGxfcm93cyA9IGxpc3QocmVhZGVyKQoKbWlkX3NlY3Rpb24gPSBhbGxfcm93c1tzdGFydF9yb3c6ZW5kX3Jvd10KCmlmIGxlbihtaWRfc2VjdGlvbikgPD0gbl9zYW1wbGVzOgogICAgc2FtcGxlZF93aXRoX2lkeCA9IFsoaSwgcm93KSBmb3IgaSwgcm93IGluIGVudW1lcmF0ZShtaWRfc2VjdGlvbildCmVsc2U6CiAgICByYW5kb20uc2VlZCg0MikKICAgIHNhbXBsZWRfd2l0aF9pZHggPSBzb3J0ZWQocmFuZG9tLnNhbXBsZShsaXN0KGVudW1lcmF0ZShtaWRfc2VjdGlvbikpLCBuX3NhbXBsZXMpLCBrZXk9bGFtYmRhIHg6IHhbMF0pCgpmb3IgcmVsYXRpdmVfaWR4LCByb3dfZGF0YSBpbiBzYW1wbGVkX3dpdGhfaWR4OgogICAgYWN0dWFsX2lkeCA9IHN0YXJ0X3JvdyArIHJlbGF0aXZlX2lkeAogICAgcm93X2VsZW0gPSBFVC5TdWJFbGVtZW50KHJvb3QsICJyb3ciLCBpbmRleD1zdHIoYWN0dWFsX2lkeCkpCiAgICBmb3IgY29sX2lkeCwgY2VsbF92YWx1ZSBpbiBlbnVtZXJhdGUocm93X2RhdGEpOgogICAgICAgIGNlbGxfZWxlbSA9IEVULlN1YkVsZW1lbnQocm93X2VsZW0sICJjZWxsIiwgY29sdW1uPXN0cihjb2xfaWR4KSkKICAgICAgICBjZWxsX2VsZW0udGV4dCA9IGNlbGxfdmFsdWUgaWYgY2VsbF92YWx1ZSBlbHNlICIiCgp0cmVlID0gRVQuRWxlbWVudFRyZWUocm9vdCkKRVQuaW5kZW50KHRyZWUsIHNwYWNlPSIgICIpCnByaW50KCc8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PicpCnByaW50KEVULnRvc3RyaW5nKHJvb3QsIGVuY29kaW5nPSJ1bmljb2RlIikpCgo=",
8
+ "preview_mid_excel.py": "aW1wb3J0IHN5cwppbXBvcnQgcmFuZG9tCmltcG9ydCBvcGVucHl4bAppbXBvcnQgeG1sLmV0cmVlLkVsZW1lbnRUcmVlIGFzIEVUCgpmaWxlX3BhdGggPSBzeXMuYXJndlsxXQpzdGFydF9yb3cgPSBpbnQoc3lzLmFyZ3ZbMl0pCmVuZF9yb3cgPSBpbnQoc3lzLmFyZ3ZbM10pCm5fc2FtcGxlcyA9IGludChzeXMuYXJndls0XSkgaWYgbGVuKHN5cy5hcmd2KSA+IDQgZWxzZSAxMAoKd2IgPSBvcGVucHl4bC5sb2FkX3dvcmtib29rKGZpbGVfcGF0aCwgcmVhZF9vbmx5PVRydWUsIGRhdGFfb25seT1UcnVlKQp3cyA9IHdiLndvcmtzaGVldHNbMF0KCnJvb3QgPSBFVC5FbGVtZW50KCJyb3dzIikKCmFsbF9yb3dzID0gbGlzdCh3cy5pdGVyX3Jvd3MoKSkKbWlkX3NlY3Rpb24gPSBhbGxfcm93c1tzdGFydF9yb3c6ZW5kX3Jvd10KCmlmIGxlbihtaWRfc2VjdGlvbikgPD0gbl9zYW1wbGVzOgogICAgc2FtcGxlZF93aXRoX2lkeCA9IFsoaSwgcm93KSBmb3IgaSwgcm93IGluIGVudW1lcmF0ZShtaWRfc2VjdGlvbildCmVsc2U6CiAgICByYW5kb20uc2VlZCg0MikKICAgIGluZGljZXMgPSBzb3J0ZWQocmFuZG9tLnNhbXBsZShyYW5nZShsZW4obWlkX3NlY3Rpb24pKSwgbl9zYW1wbGVzKSkKICAgIHNhbXBsZWRfd2l0aF9pZHggPSBbKGksIG1pZF9zZWN0aW9uW2ldKSBmb3IgaSBpbiBpbmRpY2VzXQoKZm9yIHJlbGF0aXZlX2lkeCwgcm93IGluIHNhbXBsZWRfd2l0aF9pZHg6CiAgICBhY3R1YWxfaWR4ID0gc3RhcnRfcm93ICsgcmVsYXRpdmVfaWR4CiAgICByb3dfZWxlbSA9IEVULlN1YkVsZW1lbnQocm9vdCwgInJvdyIsIGluZGV4PXN0cihhY3R1YWxfaWR4KSkKICAgIAogICAgZm9yIGNvbF9pZHgsIGNlbGwgaW4gZW51bWVyYXRlKHJvdyk6CiAgICAgICAgY2VsbF9lbGVtID0gRVQuU3ViRWxlbWVudChyb3dfZWxlbSwgImNlbGwiLCBjb2x1bW49c3RyKGNvbF9pZHgpKQogICAgICAgIGNlbGxfdmFsdWUgPSBjZWxsLnZhbHVlCiAgICAgICAgY2VsbF9lbGVtLnRleHQgPSBzdHIoY2VsbF92YWx1ZSkgaWYgY2VsbF92YWx1ZSBpcyBub3QgTm9uZSBlbHNlICIiCgp0cmVlID0gRVQuRWxlbWVudFRyZWUocm9vdCkKRVQuaW5kZW50KHRyZWUsIHNwYWNlPSIgICIpCnByaW50KCc8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PicpCnByaW50KEVULnRvc3RyaW5nKHJvb3QsIGVuY29kaW5nPSJ1bmljb2RlIikpCgo=",
9
+ "preview_tail_csv.py": "aW1wb3J0IHN5cwppbXBvcnQgY3N2CmltcG9ydCB4bWwuZXRyZWUuRWxlbWVudFRyZWUgYXMgRVQKZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVxdWUKCmZpbGVfcGF0aCA9IHN5cy5hcmd2WzFdCm5fcm93cyA9IGludChzeXMuYXJndlsyXSkgaWYgbGVuKHN5cy5hcmd2KSA+IDIgZWxzZSAxMAoKcm9vdCA9IEVULkVsZW1lbnQoInJvd3MiKQoKd2l0aCBvcGVuKGZpbGVfcGF0aCwgInIiLCBlbmNvZGluZz0idXRmLTgiLCBlcnJvcnM9Imlnbm9yZSIpIGFzIGZoOgogICAgcmVhZGVyID0gY3N2LnJlYWRlcihmaCkKICAgIGFsbF9yb3dzID0gbGlzdChyZWFkZXIpCiAgICB0YWlsX3Jvd3MgPSBhbGxfcm93c1stbl9yb3dzOl0gaWYgbGVuKGFsbF9yb3dzKSA+IG5fcm93cyBlbHNlIGFsbF9yb3dzCiAgICBzdGFydF9pbmRleCA9IGxlbihhbGxfcm93cykgLSBsZW4odGFpbF9yb3dzKQogICAgCiAgICBmb3IgaWR4LCByb3dfZGF0YSBpbiBlbnVtZXJhdGUodGFpbF9yb3dzKToKICAgICAgICByb3dfZWxlbSA9IEVULlN1YkVsZW1lbnQocm9vdCwgInJvdyIsIGluZGV4PXN0cihzdGFydF9pbmRleCArIGlkeCkpCiAgICAgICAgZm9yIGNvbF9pZHgsIGNlbGxfdmFsdWUgaW4gZW51bWVyYXRlKHJvd19kYXRhKToKICAgICAgICAgICAgY2VsbF9lbGVtID0gRVQuU3ViRWxlbWVudChyb3dfZWxlbSwgImNlbGwiLCBjb2x1bW49c3RyKGNvbF9pZHgpKQogICAgICAgICAgICBjZWxsX2VsZW0udGV4dCA9IGNlbGxfdmFsdWUgaWYgY2VsbF92YWx1ZSBlbHNlICIiCgp0cmVlID0gRVQuRWxlbWVudFRyZWUocm9vdCkKRVQuaW5kZW50KHRyZWUsIHNwYWNlPSIgICIpCnByaW50KCc8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PicpCnByaW50KEVULnRvc3RyaW5nKHJvb3QsIGVuY29kaW5nPSJ1bmljb2RlIikpCgo=",
10
+ "preview_tail_excel.py": "aW1wb3J0IHN5cwppbXBvcnQgb3BlbnB5eGwKaW1wb3J0IHhtbC5ldHJlZS5FbGVtZW50VHJlZSBhcyBFVAoKZmlsZV9wYXRoID0gc3lzLmFyZ3ZbMV0Kbl9yb3dzID0gaW50KHN5cy5hcmd2WzJdKSBpZiBsZW4oc3lzLmFyZ3YpID4gMiBlbHNlIDEwCgp3YiA9IG9wZW5weXhsLmxvYWRfd29ya2Jvb2soZmlsZV9wYXRoLCByZWFkX29ubHk9VHJ1ZSwgZGF0YV9vbmx5PVRydWUpCndzID0gd2Iud29ya3NoZWV0c1swXQoKcm9vdCA9IEVULkVsZW1lbnQoInJvd3MiKQoKYWxsX3Jvd3MgPSBsaXN0KHdzLml0ZXJfcm93cygpKQp0YWlsX3Jvd3MgPSBhbGxfcm93c1stbl9yb3dzOl0gaWYgbGVuKGFsbF9yb3dzKSA+IG5fcm93cyBlbHNlIGFsbF9yb3dzCnN0YXJ0X2luZGV4ID0gbGVuKGFsbF9yb3dzKSAtIGxlbih0YWlsX3Jvd3MpCgpmb3IgaWR4LCByb3cgaW4gZW51bWVyYXRlKHRhaWxfcm93cyk6CiAgICByb3dfZWxlbSA9IEVULlN1YkVsZW1lbnQocm9vdCwgInJvdyIsIGluZGV4PXN0cihzdGFydF9pbmRleCArIGlkeCkpCiAgICAKICAgIGZvciBjb2xfaWR4LCBjZWxsIGluIGVudW1lcmF0ZShyb3cpOgogICAgICAgIGNlbGxfZWxlbSA9IEVULlN1YkVsZW1lbnQocm93X2VsZW0sICJjZWxsIiwgY29sdW1uPXN0cihjb2xfaWR4KSkKICAgICAgICBjZWxsX3ZhbHVlID0gY2VsbC52YWx1ZQogICAgICAgIGNlbGxfZWxlbS50ZXh0ID0gc3RyKGNlbGxfdmFsdWUpIGlmIGNlbGxfdmFsdWUgaXMgbm90IE5vbmUgZWxzZSAiIgoKdHJlZSA9IEVULkVsZW1lbnRUcmVlKHJvb3QpCkVULmluZGVudCh0cmVlLCBzcGFjZT0iICAiKQpwcmludCgnPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4nKQpwcmludChFVC50b3N0cmluZyhyb290LCBlbmNvZGluZz0idW5pY29kZSIpKQoK"
11
+ });
@@ -1,9 +1,8 @@
1
1
  export declare function readInstantFileStep(params: {
2
- env: any;
2
+ runtime: any;
3
3
  fileId: string;
4
4
  }): Promise<{
5
5
  url: string;
6
6
  contentDisposition?: string;
7
7
  contentBase64: string;
8
8
  }>;
9
- //# sourceMappingURL=steps.d.ts.map
@@ -1,10 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.readInstantFileStep = readInstantFileStep;
4
- const runtime_1 = require("@ekairos/events/runtime");
5
- async function readInstantFileStep(params) {
1
+ async function getRuntimeDb(runtime) {
2
+ if (!runtime) {
3
+ throw new Error("Dataset file step requires runtime.");
4
+ }
5
+ const db = runtime.db;
6
+ return typeof db === "function" ? await db.call(runtime) : db;
7
+ }
8
+ export async function readInstantFileStep(params) {
6
9
  "use step";
7
- const db = (await (0, runtime_1.getContextRuntime)(params.env)).db;
10
+ const db = await getRuntimeDb(params.runtime);
8
11
  const fileQuery = await db.query({
9
12
  $files: { $: { where: { id: params.fileId }, limit: 1 } },
10
13
  });
@@ -20,4 +23,3 @@ async function readInstantFileStep(params) {
20
23
  contentBase64: Buffer.from(fileBuffer).toString("base64"),
21
24
  };
22
25
  }
23
- //# sourceMappingURL=steps.js.map
package/dist/id.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare function createDatasetId(): string;
package/dist/id.js ADDED
@@ -0,0 +1,10 @@
1
+ export function createDatasetId() {
2
+ const uuid = globalThis.crypto?.randomUUID?.();
3
+ if (typeof uuid === "string" && uuid.length > 0)
4
+ return uuid;
5
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
6
+ const r = (Math.random() * 16) | 0;
7
+ const v = c === "x" ? r : (r & 0x3) | 0x8;
8
+ return v.toString(16);
9
+ });
10
+ }
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- export * from "./dataset";
2
- export * from "./domain";
3
- export * from "./materializeDataset.tool";
4
- export * from "./schema";
5
- export * from "./service";
6
- export * from "./skill";
7
- //# sourceMappingURL=index.d.ts.map
1
+ export * from "./dataset.js";
2
+ export * from "./contextWorkspace.js";
3
+ export * from "./domain.js";
4
+ export * from "./materializeDataset.tool.js";
5
+ export * from "./schema.js";
6
+ export * from "./service.js";
7
+ export { registerFileParseContext } from "./file/file-dataset.agent.js";
8
+ export { registerTransformDatasetContext } from "./transform/index.js";
package/dist/index.js CHANGED
@@ -1,23 +1,8 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./dataset"), exports);
18
- __exportStar(require("./domain"), exports);
19
- __exportStar(require("./materializeDataset.tool"), exports);
20
- __exportStar(require("./schema"), exports);
21
- __exportStar(require("./service"), exports);
22
- __exportStar(require("./skill"), exports);
23
- //# sourceMappingURL=index.js.map
1
+ export * from "./dataset.js";
2
+ export * from "./contextWorkspace.js";
3
+ export * from "./domain.js";
4
+ export * from "./materializeDataset.tool.js";
5
+ export * from "./schema.js";
6
+ export * from "./service.js";
7
+ export { registerFileParseContext } from "./file/file-dataset.agent.js";
8
+ export { registerTransformDatasetContext } from "./transform/index.js";
@@ -1,31 +1,45 @@
1
1
  import { z } from "zod";
2
2
  import type { DomainSchemaResult } from "@ekairos/domain";
3
+ import type { EkairosRuntime, RuntimeForDomain } from "@ekairos/domain/runtime";
3
4
  import type { ContextReactor } from "@ekairos/events";
5
+ import { datasetDomain } from "./schema.js";
4
6
  declare const materializeDatasetToolInputSchema: z.ZodObject<{
5
7
  datasetId: z.ZodOptional<z.ZodString>;
6
8
  sandboxId: z.ZodOptional<z.ZodString>;
7
9
  title: z.ZodOptional<z.ZodString>;
8
- sources: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
9
- kind: z.ZodLiteral<"file">;
10
- fileId: z.ZodString;
11
- description: z.ZodOptional<z.ZodString>;
10
+ context: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
11
+ id: z.ZodString;
12
12
  }, z.core.$strip>, z.ZodObject<{
13
- kind: z.ZodLiteral<"text">;
14
- text: z.ZodString;
15
- mimeType: z.ZodOptional<z.ZodString>;
13
+ key: z.ZodString;
14
+ }, z.core.$strip>]>>;
15
+ files: z.ZodOptional<z.ZodArray<z.ZodObject<{
16
+ description: z.ZodOptional<z.ZodString>;
17
+ fileId: z.ZodString;
18
+ }, z.core.$strip>>>;
19
+ texts: z.ZodOptional<z.ZodArray<z.ZodObject<{
16
20
  name: z.ZodOptional<z.ZodString>;
21
+ text: z.ZodString;
17
22
  description: z.ZodOptional<z.ZodString>;
18
- }, z.core.$strip>, z.ZodObject<{
19
- kind: z.ZodLiteral<"dataset">;
23
+ mimeType: z.ZodOptional<z.ZodString>;
24
+ }, z.core.$strip>>>;
25
+ datasets: z.ZodOptional<z.ZodArray<z.ZodObject<{
20
26
  datasetId: z.ZodString;
21
27
  description: z.ZodOptional<z.ZodString>;
22
- }, z.core.$strip>, z.ZodObject<{
23
- kind: z.ZodLiteral<"query">;
24
- query: z.ZodRecord<z.ZodString, z.ZodAny>;
28
+ }, z.core.$strip>>>;
29
+ queries: z.ZodOptional<z.ZodArray<z.ZodObject<{
25
30
  title: z.ZodOptional<z.ZodString>;
31
+ query: z.ZodRecord<z.ZodString, z.ZodAny>;
26
32
  explanation: z.ZodOptional<z.ZodString>;
27
- }, z.core.$strip>], "kind">>;
33
+ }, z.core.$strip>>>;
28
34
  instructions: z.ZodOptional<z.ZodString>;
35
+ mode: z.ZodOptional<z.ZodEnum<{
36
+ schema: "schema";
37
+ auto: "auto";
38
+ }>>;
39
+ output: z.ZodOptional<z.ZodEnum<{
40
+ object: "object";
41
+ rows: "rows";
42
+ }>>;
29
43
  schema: z.ZodOptional<z.ZodObject<{
30
44
  title: z.ZodOptional<z.ZodString>;
31
45
  description: z.ZodOptional<z.ZodString>;
@@ -33,38 +47,45 @@ declare const materializeDatasetToolInputSchema: z.ZodObject<{
33
47
  }, z.core.$strip>>;
34
48
  first: z.ZodOptional<z.ZodBoolean>;
35
49
  }, z.core.$strip>;
36
- export declare function createMaterializeDatasetTool<Env extends {
37
- orgId: string;
38
- }>(params: {
39
- env: Env;
50
+ type AnyMaterializeDatasetRuntime = EkairosRuntime<any, any, any>;
51
+ type MaterializeDatasetRuntimeHandle<Runtime extends AnyMaterializeDatasetRuntime> = RuntimeForDomain<Runtime, typeof datasetDomain>;
52
+ type CompatibleToolQueryDomain<Runtime extends AnyMaterializeDatasetRuntime, QueryDomain extends DomainSchemaResult> = RuntimeForDomain<Runtime, QueryDomain> extends never ? never : QueryDomain;
53
+ export declare function createMaterializeDatasetTool<Runtime extends AnyMaterializeDatasetRuntime, QueryDomain extends DomainSchemaResult>(params: {
54
+ runtime: Runtime & MaterializeDatasetRuntimeHandle<Runtime>;
40
55
  reactor?: ContextReactor<any, any>;
41
- queryDomain: DomainSchemaResult;
56
+ queryDomain: QueryDomain & CompatibleToolQueryDomain<Runtime, QueryDomain>;
42
57
  toolName?: string;
43
58
  }): import("ai").Tool<{
44
- sources: ({
45
- kind: "file";
59
+ datasetId?: string | undefined;
60
+ sandboxId?: string | undefined;
61
+ title?: string | undefined;
62
+ context?: {
63
+ id: string;
64
+ } | {
65
+ key: string;
66
+ } | undefined;
67
+ files?: {
46
68
  fileId: string;
47
69
  description?: string | undefined;
48
- } | {
49
- kind: "text";
70
+ }[] | undefined;
71
+ texts?: {
50
72
  text: string;
51
- mimeType?: string | undefined;
52
73
  name?: string | undefined;
53
74
  description?: string | undefined;
54
- } | {
55
- kind: "dataset";
75
+ mimeType?: string | undefined;
76
+ }[] | undefined;
77
+ datasets?: {
56
78
  datasetId: string;
57
79
  description?: string | undefined;
58
- } | {
59
- kind: "query";
80
+ }[] | undefined;
81
+ queries?: {
60
82
  query: Record<string, any>;
61
83
  title?: string | undefined;
62
84
  explanation?: string | undefined;
63
- })[];
64
- datasetId?: string | undefined;
65
- sandboxId?: string | undefined;
66
- title?: string | undefined;
85
+ }[] | undefined;
67
86
  instructions?: string | undefined;
87
+ mode?: "schema" | "auto" | undefined;
88
+ output?: "object" | "rows" | undefined;
68
89
  schema?: {
69
90
  schema: any;
70
91
  title?: string | undefined;
@@ -75,4 +96,3 @@ export declare function createMaterializeDatasetTool<Env extends {
75
96
  datasetId: string;
76
97
  }>;
77
98
  export { materializeDatasetToolInputSchema };
78
- //# sourceMappingURL=materializeDataset.tool.d.ts.map
@@ -1,88 +1,104 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.materializeDatasetToolInputSchema = void 0;
4
- exports.createMaterializeDatasetTool = createMaterializeDatasetTool;
5
- const ai_1 = require("ai");
6
- const zod_1 = require("zod");
7
- const dataset_1 = require("./dataset");
8
- const fileSourceSchema = zod_1.z.object({
9
- kind: zod_1.z.literal("file"),
10
- fileId: zod_1.z.string(),
11
- description: zod_1.z.string().optional(),
1
+ import { tool } from "ai";
2
+ import { z } from "zod";
3
+ import { dataset } from "./dataset.js";
4
+ const fileResourceSchema = z.object({
5
+ kind: z.literal("file"),
6
+ fileId: z.string(),
7
+ description: z.string().optional(),
12
8
  });
13
- const textSourceSchema = zod_1.z.object({
14
- kind: zod_1.z.literal("text"),
15
- text: zod_1.z.string(),
16
- mimeType: zod_1.z.string().optional(),
17
- name: zod_1.z.string().optional(),
18
- description: zod_1.z.string().optional(),
9
+ const textResourceSchema = z.object({
10
+ kind: z.literal("text"),
11
+ text: z.string(),
12
+ mimeType: z.string().optional(),
13
+ name: z.string().optional(),
14
+ description: z.string().optional(),
19
15
  });
20
- const datasetSourceSchema = zod_1.z.object({
21
- kind: zod_1.z.literal("dataset"),
22
- datasetId: zod_1.z.string(),
23
- description: zod_1.z.string().optional(),
16
+ const datasetResourceSchema = z.object({
17
+ kind: z.literal("dataset"),
18
+ datasetId: z.string(),
19
+ description: z.string().optional(),
24
20
  });
25
- const querySourceSchema = zod_1.z.object({
26
- kind: zod_1.z.literal("query"),
27
- query: zod_1.z.record(zod_1.z.string(), zod_1.z.any()),
28
- title: zod_1.z.string().optional(),
29
- explanation: zod_1.z.string().optional(),
21
+ const queryResourceSchema = z.object({
22
+ kind: z.literal("query"),
23
+ query: z.record(z.string(), z.any()),
24
+ title: z.string().optional(),
25
+ explanation: z.string().optional(),
30
26
  });
31
- const datasetSchemaSchema = zod_1.z.object({
32
- title: zod_1.z.string().optional(),
33
- description: zod_1.z.string().optional(),
34
- schema: zod_1.z.any(),
27
+ const contextInputSchema = z.union([
28
+ z.object({ id: z.string() }),
29
+ z.object({ key: z.string() }),
30
+ ]);
31
+ const datasetSchemaSchema = z.object({
32
+ title: z.string().optional(),
33
+ description: z.string().optional(),
34
+ schema: z.any(),
35
35
  });
36
- const materializeDatasetToolInputSchema = zod_1.z.object({
37
- datasetId: zod_1.z.string().optional(),
38
- sandboxId: zod_1.z.string().optional(),
39
- title: zod_1.z.string().optional(),
40
- sources: zod_1.z.array(zod_1.z.discriminatedUnion("kind", [
41
- fileSourceSchema,
42
- textSourceSchema,
43
- datasetSourceSchema,
44
- querySourceSchema,
45
- ])).min(1),
46
- instructions: zod_1.z.string().optional(),
36
+ const materializeDatasetToolInputSchema = z.object({
37
+ datasetId: z.string().optional(),
38
+ sandboxId: z.string().optional(),
39
+ title: z.string().optional(),
40
+ context: contextInputSchema.optional(),
41
+ files: z.array(fileResourceSchema.omit({ kind: true })).optional(),
42
+ texts: z.array(textResourceSchema.omit({ kind: true })).optional(),
43
+ datasets: z.array(datasetResourceSchema.omit({ kind: true })).optional(),
44
+ queries: z.array(queryResourceSchema.omit({ kind: true })).optional(),
45
+ instructions: z.string().optional(),
46
+ mode: z.enum(["auto", "schema"]).optional(),
47
+ output: z.enum(["rows", "object"]).optional(),
47
48
  schema: datasetSchemaSchema.optional(),
48
- first: zod_1.z.boolean().optional(),
49
+ first: z.boolean().optional(),
49
50
  });
50
- exports.materializeDatasetToolInputSchema = materializeDatasetToolInputSchema;
51
- function createMaterializeDatasetTool(params) {
52
- return (0, ai_1.tool)({
53
- description: "Materialize a dataset from declarative sources. Returns only the target datasetId. Query sources use the preconfigured runtime domain.",
51
+ export function createMaterializeDatasetTool(params) {
52
+ return tool({
53
+ description: "Materialize a dataset from declarative resources. Returns only the target datasetId. Query resources use the preconfigured runtime domain.",
54
54
  inputSchema: materializeDatasetToolInputSchema,
55
55
  execute: async (input) => {
56
- let builder = (0, dataset_1.dataset)(params.env);
56
+ let builder = dataset(params.runtime);
57
57
  if (input.title?.trim()) {
58
58
  builder = builder.title(input.title);
59
59
  }
60
60
  if (input.sandboxId?.trim()) {
61
61
  builder = builder.sandbox({ sandboxId: input.sandboxId });
62
62
  }
63
- for (const source of input.sources) {
64
- if (source.kind === "file") {
65
- builder = builder.fromFile(source);
66
- continue;
67
- }
68
- if (source.kind === "text") {
69
- builder = builder.fromText(source);
70
- continue;
71
- }
72
- if (source.kind === "dataset") {
73
- builder = builder.fromDataset(source);
74
- continue;
75
- }
63
+ const materialCount = (input.files?.length ?? 0) +
64
+ (input.texts?.length ?? 0) +
65
+ (input.datasets?.length ?? 0) +
66
+ (input.queries?.length ?? 0);
67
+ if (input.context && materialCount > 0) {
68
+ throw new Error("dataset_context_resource_is_exclusive");
69
+ }
70
+ if (!input.context && materialCount === 0) {
71
+ throw new Error("dataset_context_or_material_required");
72
+ }
73
+ if (input.context) {
74
+ builder = builder.fromContext(input.context);
75
+ }
76
+ for (const resource of input.files ?? []) {
77
+ builder = builder.fromFile(resource);
78
+ }
79
+ for (const resource of input.texts ?? []) {
80
+ builder = builder.fromText(resource);
81
+ }
82
+ for (const resource of input.datasets ?? []) {
83
+ builder = builder.fromDataset(resource);
84
+ }
85
+ for (const resource of input.queries ?? []) {
76
86
  builder = builder.fromQuery(params.queryDomain, {
77
- query: source.query,
78
- title: source.title,
79
- explanation: source.explanation,
87
+ query: resource.query,
88
+ title: resource.title,
89
+ explanation: resource.explanation,
80
90
  });
81
91
  }
92
+ if (input.output === "object") {
93
+ builder = builder.asObject();
94
+ }
95
+ else {
96
+ builder = builder.asRows();
97
+ }
82
98
  if (input.schema) {
83
99
  builder = builder.schema(input.schema);
84
100
  }
85
- else {
101
+ else if (input.mode === "auto" || input.mode === undefined) {
86
102
  builder = builder.inferSchema();
87
103
  }
88
104
  if (input.instructions?.trim()) {
@@ -99,4 +115,4 @@ function createMaterializeDatasetTool(params) {
99
115
  },
100
116
  });
101
117
  }
102
- //# sourceMappingURL=materializeDataset.tool.js.map
118
+ export { materializeDatasetToolInputSchema };
@@ -1,2 +1 @@
1
- export * from "./queryDomain";
2
- //# sourceMappingURL=index.d.ts.map
1
+ export * from "./queryDomain.js";
@@ -1,18 +1 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./queryDomain"), exports);
18
- //# sourceMappingURL=index.js.map
1
+ export * from "./queryDomain.js";
@@ -1,9 +1,8 @@
1
- import type { QueryDomainStepInput, QueryDomainStepResult } from "./queryDomain.step";
2
- export type QueryDomainInput = QueryDomainStepInput;
1
+ import { type QueryDomainStepInput, type QueryDomainStepResult } from "./queryDomain.step.js";
2
+ export type QueryDomainInput = Omit<QueryDomainStepInput, "runtime">;
3
3
  export type QueryDomainResult = QueryDomainStepResult;
4
4
  /**
5
5
  * Workflow-compatible domain query.
6
6
  * Always returns a dataset + preview rows.
7
7
  */
8
- export declare function queryDomain(input: QueryDomainInput): Promise<QueryDomainResult>;
9
- //# sourceMappingURL=queryDomain.d.ts.map
8
+ export declare function queryDomain(runtime: any, input: QueryDomainInput): Promise<QueryDomainResult>;
@@ -1,46 +1,9 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.queryDomain = queryDomain;
1
+ import { queryDomainStep } from "./queryDomain.step.js";
37
2
  /**
38
3
  * Workflow-compatible domain query.
39
4
  * Always returns a dataset + preview rows.
40
5
  */
41
- async function queryDomain(input) {
6
+ export async function queryDomain(runtime, input) {
42
7
  "use step";
43
- const { queryDomainStep } = await Promise.resolve().then(() => __importStar(require("./queryDomain.step")));
44
- return await queryDomainStep(input);
8
+ return await queryDomainStep({ runtime, ...input });
45
9
  }
46
- //# sourceMappingURL=queryDomain.js.map
@@ -1,4 +1,5 @@
1
1
  export type QueryDomainStepInput = {
2
+ runtime: any;
2
3
  query: Record<string, any>;
3
4
  explanation: string;
4
5
  title?: string;
@@ -11,4 +12,3 @@ export type QueryDomainStepResult = {
11
12
  explanation: string;
12
13
  };
13
14
  export declare function queryDomainStep(params: QueryDomainStepInput): Promise<QueryDomainStepResult>;
14
- //# sourceMappingURL=queryDomain.step.d.ts.map
@@ -1,9 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.queryDomainStep = queryDomainStep;
4
- const admin_1 = require("@instantdb/admin");
5
- const runtime_1 = require("@ekairos/events/runtime");
6
- const service_1 = require("../service");
1
+ import { DatasetService } from "../service.js";
2
+ import { createDatasetId } from "../id.js";
7
3
  function normalizeRows(result) {
8
4
  if (!result || typeof result !== "object")
9
5
  return [];
@@ -49,13 +45,18 @@ function inferSchema(rows) {
49
45
  }
50
46
  return { schema };
51
47
  }
52
- async function queryDomainStep(params) {
53
- "use step";
54
- const env = await (0, runtime_1.getContextEnv)();
55
- const runtime = await (0, runtime_1.getContextRuntime)(env);
48
+ async function getRuntimeDb(runtime) {
49
+ if (!runtime) {
50
+ throw new Error("Dataset query step requires runtime.");
51
+ }
56
52
  const db = runtime.db;
57
- const service = new service_1.DatasetService(db);
58
- const datasetId = params.datasetId ?? (0, admin_1.id)();
53
+ return typeof db === "function" ? await db.call(runtime) : db;
54
+ }
55
+ export async function queryDomainStep(params) {
56
+ "use step";
57
+ const db = await getRuntimeDb(params.runtime);
58
+ const service = new DatasetService(db);
59
+ const datasetId = params.datasetId ?? createDatasetId();
59
60
  const queryResult = await db.query(params.query);
60
61
  const rows = normalizeRows(queryResult);
61
62
  const previewRows = rows.slice(0, 20);
@@ -101,4 +102,3 @@ async function queryDomainStep(params) {
101
102
  explanation: params.explanation,
102
103
  };
103
104
  }
104
- //# sourceMappingURL=queryDomain.step.js.map