@duckcodeailabs/dql-cli 1.4.1 → 1.4.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 (243) hide show
  1. package/package.json +21 -28
  2. package/LICENSE +0 -123
  3. package/README.md +0 -71
  4. package/dist/apps-api.d.ts +0 -16
  5. package/dist/apps-api.d.ts.map +0 -1
  6. package/dist/apps-api.js +0 -249
  7. package/dist/apps-api.js.map +0 -1
  8. package/dist/args.d.ts +0 -30
  9. package/dist/args.d.ts.map +0 -1
  10. package/dist/args.js +0 -105
  11. package/dist/args.js.map +0 -1
  12. package/dist/args.test.d.ts +0 -2
  13. package/dist/args.test.d.ts.map +0 -1
  14. package/dist/args.test.js +0 -33
  15. package/dist/args.test.js.map +0 -1
  16. package/dist/assets/dql-notebook/assets/codemirror-DJYUkPr1.js +0 -11
  17. package/dist/assets/dql-notebook/assets/index-BJ7MV8Gv.js +0 -847
  18. package/dist/assets/dql-notebook/assets/index-DrhoZmtv.css +0 -1
  19. package/dist/assets/dql-notebook/assets/react-CRB3T2We.js +0 -32
  20. package/dist/assets/dql-notebook/index.html +0 -18
  21. package/dist/assets/notebook-browser/app.js +0 -548
  22. package/dist/assets/notebook-browser/index.html +0 -83
  23. package/dist/assets/notebook-browser/styles.css +0 -336
  24. package/dist/block-templates.d.ts +0 -8
  25. package/dist/block-templates.d.ts.map +0 -1
  26. package/dist/block-templates.js +0 -60
  27. package/dist/block-templates.js.map +0 -1
  28. package/dist/commands/agent.d.ts +0 -19
  29. package/dist/commands/agent.d.ts.map +0 -1
  30. package/dist/commands/agent.js +0 -117
  31. package/dist/commands/agent.js.map +0 -1
  32. package/dist/commands/app.d.ts +0 -32
  33. package/dist/commands/app.d.ts.map +0 -1
  34. package/dist/commands/app.js +0 -307
  35. package/dist/commands/app.js.map +0 -1
  36. package/dist/commands/build.d.ts +0 -3
  37. package/dist/commands/build.d.ts.map +0 -1
  38. package/dist/commands/build.js +0 -69
  39. package/dist/commands/build.js.map +0 -1
  40. package/dist/commands/build.test.d.ts +0 -2
  41. package/dist/commands/build.test.d.ts.map +0 -1
  42. package/dist/commands/build.test.js +0 -44
  43. package/dist/commands/build.test.js.map +0 -1
  44. package/dist/commands/certify.d.ts +0 -3
  45. package/dist/commands/certify.d.ts.map +0 -1
  46. package/dist/commands/certify.js +0 -228
  47. package/dist/commands/certify.js.map +0 -1
  48. package/dist/commands/compile.d.ts +0 -21
  49. package/dist/commands/compile.d.ts.map +0 -1
  50. package/dist/commands/compile.js +0 -198
  51. package/dist/commands/compile.js.map +0 -1
  52. package/dist/commands/compile.test.d.ts +0 -2
  53. package/dist/commands/compile.test.d.ts.map +0 -1
  54. package/dist/commands/compile.test.js +0 -115
  55. package/dist/commands/compile.test.js.map +0 -1
  56. package/dist/commands/diff.d.ts +0 -3
  57. package/dist/commands/diff.d.ts.map +0 -1
  58. package/dist/commands/diff.js +0 -52
  59. package/dist/commands/diff.js.map +0 -1
  60. package/dist/commands/doctor.d.ts +0 -3
  61. package/dist/commands/doctor.d.ts.map +0 -1
  62. package/dist/commands/doctor.js +0 -191
  63. package/dist/commands/doctor.js.map +0 -1
  64. package/dist/commands/doctor.test.d.ts +0 -2
  65. package/dist/commands/doctor.test.d.ts.map +0 -1
  66. package/dist/commands/doctor.test.js +0 -43
  67. package/dist/commands/doctor.test.js.map +0 -1
  68. package/dist/commands/fmt.d.ts +0 -3
  69. package/dist/commands/fmt.d.ts.map +0 -1
  70. package/dist/commands/fmt.js +0 -53
  71. package/dist/commands/fmt.js.map +0 -1
  72. package/dist/commands/info.d.ts +0 -3
  73. package/dist/commands/info.d.ts.map +0 -1
  74. package/dist/commands/info.js +0 -56
  75. package/dist/commands/info.js.map +0 -1
  76. package/dist/commands/init.d.ts +0 -3
  77. package/dist/commands/init.d.ts.map +0 -1
  78. package/dist/commands/init.js +0 -250
  79. package/dist/commands/init.js.map +0 -1
  80. package/dist/commands/init.test.d.ts +0 -2
  81. package/dist/commands/init.test.d.ts.map +0 -1
  82. package/dist/commands/init.test.js +0 -118
  83. package/dist/commands/init.test.js.map +0 -1
  84. package/dist/commands/lineage.d.ts +0 -24
  85. package/dist/commands/lineage.d.ts.map +0 -1
  86. package/dist/commands/lineage.js +0 -634
  87. package/dist/commands/lineage.js.map +0 -1
  88. package/dist/commands/mcp.d.ts +0 -7
  89. package/dist/commands/mcp.d.ts.map +0 -1
  90. package/dist/commands/mcp.js +0 -16
  91. package/dist/commands/mcp.js.map +0 -1
  92. package/dist/commands/migrate.d.ts +0 -12
  93. package/dist/commands/migrate.d.ts.map +0 -1
  94. package/dist/commands/migrate.js +0 -192
  95. package/dist/commands/migrate.js.map +0 -1
  96. package/dist/commands/new.d.ts +0 -3
  97. package/dist/commands/new.d.ts.map +0 -1
  98. package/dist/commands/new.js +0 -490
  99. package/dist/commands/new.js.map +0 -1
  100. package/dist/commands/new.test.d.ts +0 -2
  101. package/dist/commands/new.test.d.ts.map +0 -1
  102. package/dist/commands/new.test.js +0 -191
  103. package/dist/commands/new.test.js.map +0 -1
  104. package/dist/commands/notebook.d.ts +0 -3
  105. package/dist/commands/notebook.d.ts.map +0 -1
  106. package/dist/commands/notebook.js +0 -46
  107. package/dist/commands/notebook.js.map +0 -1
  108. package/dist/commands/parse.d.ts +0 -3
  109. package/dist/commands/parse.d.ts.map +0 -1
  110. package/dist/commands/parse.js +0 -63
  111. package/dist/commands/parse.js.map +0 -1
  112. package/dist/commands/preview.d.ts +0 -3
  113. package/dist/commands/preview.d.ts.map +0 -1
  114. package/dist/commands/preview.js +0 -42
  115. package/dist/commands/preview.js.map +0 -1
  116. package/dist/commands/schedule.d.ts +0 -3
  117. package/dist/commands/schedule.d.ts.map +0 -1
  118. package/dist/commands/schedule.js +0 -215
  119. package/dist/commands/schedule.js.map +0 -1
  120. package/dist/commands/semantic.d.ts +0 -12
  121. package/dist/commands/semantic.d.ts.map +0 -1
  122. package/dist/commands/semantic.js +0 -356
  123. package/dist/commands/semantic.js.map +0 -1
  124. package/dist/commands/serve.d.ts +0 -3
  125. package/dist/commands/serve.d.ts.map +0 -1
  126. package/dist/commands/serve.js +0 -30
  127. package/dist/commands/serve.js.map +0 -1
  128. package/dist/commands/slack.d.ts +0 -13
  129. package/dist/commands/slack.d.ts.map +0 -1
  130. package/dist/commands/slack.js +0 -53
  131. package/dist/commands/slack.js.map +0 -1
  132. package/dist/commands/sync.d.ts +0 -3
  133. package/dist/commands/sync.d.ts.map +0 -1
  134. package/dist/commands/sync.js +0 -192
  135. package/dist/commands/sync.js.map +0 -1
  136. package/dist/commands/sync.test.d.ts +0 -2
  137. package/dist/commands/sync.test.d.ts.map +0 -1
  138. package/dist/commands/sync.test.js +0 -147
  139. package/dist/commands/sync.test.js.map +0 -1
  140. package/dist/commands/test.d.ts +0 -3
  141. package/dist/commands/test.d.ts.map +0 -1
  142. package/dist/commands/test.js +0 -167
  143. package/dist/commands/test.js.map +0 -1
  144. package/dist/commands/validate.d.ts +0 -3
  145. package/dist/commands/validate.d.ts.map +0 -1
  146. package/dist/commands/validate.js +0 -116
  147. package/dist/commands/validate.js.map +0 -1
  148. package/dist/commands/verify.d.ts +0 -11
  149. package/dist/commands/verify.d.ts.map +0 -1
  150. package/dist/commands/verify.js +0 -74
  151. package/dist/commands/verify.js.map +0 -1
  152. package/dist/digest.d.ts +0 -10
  153. package/dist/digest.d.ts.map +0 -1
  154. package/dist/digest.js +0 -83
  155. package/dist/digest.js.map +0 -1
  156. package/dist/git-service.d.ts +0 -17
  157. package/dist/git-service.d.ts.map +0 -1
  158. package/dist/git-service.js +0 -54
  159. package/dist/git-service.js.map +0 -1
  160. package/dist/index.d.ts +0 -3
  161. package/dist/index.d.ts.map +0 -1
  162. package/dist/index.js.map +0 -1
  163. package/dist/llm/index.d.ts +0 -4
  164. package/dist/llm/index.d.ts.map +0 -1
  165. package/dist/llm/index.js +0 -16
  166. package/dist/llm/index.js.map +0 -1
  167. package/dist/llm/providers/claude-agent-sdk.d.ts +0 -3
  168. package/dist/llm/providers/claude-agent-sdk.d.ts.map +0 -1
  169. package/dist/llm/providers/claude-agent-sdk.js +0 -174
  170. package/dist/llm/providers/claude-agent-sdk.js.map +0 -1
  171. package/dist/llm/providers/claude-code.d.ts +0 -8
  172. package/dist/llm/providers/claude-code.d.ts.map +0 -1
  173. package/dist/llm/providers/claude-code.js +0 -171
  174. package/dist/llm/providers/claude-code.js.map +0 -1
  175. package/dist/llm/tools.d.ts +0 -9
  176. package/dist/llm/tools.d.ts.map +0 -1
  177. package/dist/llm/tools.js +0 -112
  178. package/dist/llm/tools.js.map +0 -1
  179. package/dist/llm/types.d.ts +0 -70
  180. package/dist/llm/types.d.ts.map +0 -1
  181. package/dist/llm/types.js +0 -2
  182. package/dist/llm/types.js.map +0 -1
  183. package/dist/local-runtime.d.ts +0 -142
  184. package/dist/local-runtime.d.ts.map +0 -1
  185. package/dist/local-runtime.js +0 -3836
  186. package/dist/local-runtime.js.map +0 -1
  187. package/dist/local-runtime.test.d.ts +0 -2
  188. package/dist/local-runtime.test.d.ts.map +0 -1
  189. package/dist/local-runtime.test.js +0 -241
  190. package/dist/local-runtime.test.js.map +0 -1
  191. package/dist/open-browser.d.ts +0 -2
  192. package/dist/open-browser.d.ts.map +0 -1
  193. package/dist/open-browser.js +0 -29
  194. package/dist/open-browser.js.map +0 -1
  195. package/dist/schedule/alerts.d.ts +0 -5
  196. package/dist/schedule/alerts.d.ts.map +0 -1
  197. package/dist/schedule/alerts.js +0 -54
  198. package/dist/schedule/alerts.js.map +0 -1
  199. package/dist/schedule/discovery.d.ts +0 -4
  200. package/dist/schedule/discovery.d.ts.map +0 -1
  201. package/dist/schedule/discovery.js +0 -36
  202. package/dist/schedule/discovery.js.map +0 -1
  203. package/dist/schedule/notifiers/email.d.ts +0 -3
  204. package/dist/schedule/notifiers/email.d.ts.map +0 -1
  205. package/dist/schedule/notifiers/email.js +0 -76
  206. package/dist/schedule/notifiers/email.js.map +0 -1
  207. package/dist/schedule/notifiers/file.d.ts +0 -3
  208. package/dist/schedule/notifiers/file.d.ts.map +0 -1
  209. package/dist/schedule/notifiers/file.js +0 -50
  210. package/dist/schedule/notifiers/file.js.map +0 -1
  211. package/dist/schedule/notifiers/index.d.ts +0 -10
  212. package/dist/schedule/notifiers/index.d.ts.map +0 -1
  213. package/dist/schedule/notifiers/index.js +0 -33
  214. package/dist/schedule/notifiers/index.js.map +0 -1
  215. package/dist/schedule/notifiers/slack.d.ts +0 -3
  216. package/dist/schedule/notifiers/slack.d.ts.map +0 -1
  217. package/dist/schedule/notifiers/slack.js +0 -58
  218. package/dist/schedule/notifiers/slack.js.map +0 -1
  219. package/dist/schedule/runner.d.ts +0 -11
  220. package/dist/schedule/runner.d.ts.map +0 -1
  221. package/dist/schedule/runner.js +0 -109
  222. package/dist/schedule/runner.js.map +0 -1
  223. package/dist/schedule/runs.d.ts +0 -5
  224. package/dist/schedule/runs.d.ts.map +0 -1
  225. package/dist/schedule/runs.js +0 -41
  226. package/dist/schedule/runs.js.map +0 -1
  227. package/dist/schedule/service.d.ts +0 -12
  228. package/dist/schedule/service.d.ts.map +0 -1
  229. package/dist/schedule/service.js +0 -49
  230. package/dist/schedule/service.js.map +0 -1
  231. package/dist/schedule/types.d.ts +0 -64
  232. package/dist/schedule/types.d.ts.map +0 -1
  233. package/dist/schedule/types.js +0 -2
  234. package/dist/schedule/types.js.map +0 -1
  235. package/dist/semantic-import.d.ts +0 -127
  236. package/dist/semantic-import.d.ts.map +0 -1
  237. package/dist/semantic-import.js +0 -713
  238. package/dist/semantic-import.js.map +0 -1
  239. package/dist/semantic-import.test.d.ts +0 -2
  240. package/dist/semantic-import.test.d.ts.map +0 -1
  241. package/dist/semantic-import.test.js +0 -95
  242. package/dist/semantic-import.test.js.map +0 -1
  243. /package/{dist/index.js → index.js} +0 -0
@@ -1,336 +0,0 @@
1
- :root {
2
- color-scheme: dark;
3
- --bg: #09111f;
4
- --panel: #0f172a;
5
- --panel-2: #111c31;
6
- --border: #243248;
7
- --text: #e5eefc;
8
- --muted: #93a4bf;
9
- --accent: #59c2ff;
10
- --accent-2: #2563eb;
11
- --danger: #ef4444;
12
- --success: #22c55e;
13
- }
14
-
15
- * {
16
- box-sizing: border-box;
17
- }
18
-
19
- body {
20
- margin: 0;
21
- font-family: Inter, system-ui, sans-serif;
22
- background: radial-gradient(circle at top, #10203c, var(--bg) 48%);
23
- color: var(--text);
24
- }
25
-
26
- button,
27
- select,
28
- input,
29
- textarea {
30
- font: inherit;
31
- }
32
-
33
- button {
34
- border: 1px solid var(--border);
35
- background: var(--panel-2);
36
- color: var(--text);
37
- border-radius: 10px;
38
- padding: 0.6rem 0.9rem;
39
- cursor: pointer;
40
- }
41
-
42
- button.primary {
43
- background: linear-gradient(135deg, var(--accent), var(--accent-2));
44
- color: #08111f;
45
- border-color: transparent;
46
- }
47
-
48
- button.secondary {
49
- background: transparent;
50
- }
51
-
52
- .app-shell {
53
- display: grid;
54
- grid-template-columns: 300px 1fr;
55
- min-height: 100vh;
56
- }
57
-
58
- .sidebar {
59
- border-right: 1px solid var(--border);
60
- background: rgba(9, 17, 31, 0.88);
61
- padding: 1.25rem;
62
- position: sticky;
63
- top: 0;
64
- height: 100vh;
65
- overflow: auto;
66
- }
67
-
68
- .brand {
69
- display: flex;
70
- gap: 0.9rem;
71
- align-items: center;
72
- margin-bottom: 1.5rem;
73
- }
74
-
75
- .brand p,
76
- .subtitle,
77
- .status,
78
- .field-help,
79
- .cell-status {
80
- color: var(--muted);
81
- }
82
-
83
- .brand-mark {
84
- width: 48px;
85
- height: 48px;
86
- border-radius: 14px;
87
- background: linear-gradient(135deg, var(--accent), #8b5cf6);
88
- color: #05111f;
89
- display: grid;
90
- place-items: center;
91
- font-weight: 700;
92
- }
93
-
94
- .section-title {
95
- font-size: 0.82rem;
96
- text-transform: uppercase;
97
- letter-spacing: 0.08em;
98
- color: var(--muted);
99
- margin: 1.25rem 0 0.75rem;
100
- }
101
-
102
- .panel,
103
- .cell,
104
- .chart-editor,
105
- .table-shell {
106
- background: rgba(17, 28, 49, 0.82);
107
- border: 1px solid var(--border);
108
- border-radius: 16px;
109
- }
110
-
111
- .panel {
112
- padding: 0.85rem;
113
- }
114
-
115
- .panel.small {
116
- margin-bottom: 0.8rem;
117
- }
118
-
119
- .main {
120
- padding: 1.25rem 1.4rem 2rem;
121
- }
122
-
123
- .toolbar {
124
- display: flex;
125
- justify-content: space-between;
126
- align-items: flex-start;
127
- gap: 1rem;
128
- margin-bottom: 1rem;
129
- }
130
-
131
- .toolbar h1 {
132
- margin: 0 0 0.3rem;
133
- }
134
-
135
- .toolbar-actions,
136
- .row-actions,
137
- .cell-actions {
138
- display: flex;
139
- gap: 0.55rem;
140
- flex-wrap: wrap;
141
- }
142
-
143
- .cells {
144
- display: grid;
145
- gap: 1rem;
146
- }
147
-
148
- .cell {
149
- overflow: hidden;
150
- }
151
-
152
- .cell-header {
153
- padding: 0.85rem 1rem;
154
- border-bottom: 1px solid var(--border);
155
- display: flex;
156
- justify-content: space-between;
157
- gap: 0.75rem;
158
- align-items: center;
159
- }
160
-
161
- .cell-type {
162
- display: inline-block;
163
- min-width: 88px;
164
- font-size: 0.76rem;
165
- letter-spacing: 0.08em;
166
- text-transform: uppercase;
167
- color: var(--accent);
168
- }
169
-
170
- .cell-title,
171
- select,
172
- .field input {
173
- width: 100%;
174
- padding: 0.65rem 0.75rem;
175
- border-radius: 10px;
176
- border: 1px solid var(--border);
177
- background: rgba(9, 17, 31, 0.8);
178
- color: var(--text);
179
- }
180
-
181
- .cell-title {
182
- margin-top: 0.35rem;
183
- }
184
-
185
- .cell-body {
186
- padding: 1rem;
187
- }
188
-
189
- .cell-source {
190
- width: 100%;
191
- min-height: 200px;
192
- padding: 0.85rem;
193
- border-radius: 12px;
194
- border: 1px solid var(--border);
195
- background: #07101d;
196
- color: var(--text);
197
- resize: vertical;
198
- }
199
-
200
- .cell-output {
201
- margin-top: 1rem;
202
- }
203
-
204
- .file-list {
205
- list-style: none;
206
- padding: 0;
207
- margin: 0;
208
- }
209
-
210
- .file-list li {
211
- padding: 0.42rem 0;
212
- color: var(--muted);
213
- border-bottom: 1px solid rgba(36, 50, 72, 0.35);
214
- }
215
-
216
- .field {
217
- margin-top: 0.75rem;
218
- }
219
-
220
- .field-label {
221
- display: block;
222
- margin-top: 0.6rem;
223
- margin-bottom: 0.35rem;
224
- color: var(--muted);
225
- }
226
-
227
- .checkbox {
228
- display: flex;
229
- align-items: center;
230
- gap: 0.5rem;
231
- }
232
-
233
- .chart-editor {
234
- display: grid;
235
- grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
236
- gap: 0.75rem;
237
- padding: 0.9rem;
238
- margin-bottom: 1rem;
239
- }
240
-
241
- .chart-card {
242
- padding: 1rem;
243
- background: linear-gradient(180deg, rgba(12, 21, 37, 0.98), rgba(17, 28, 49, 0.9));
244
- border-radius: 14px;
245
- border: 1px solid var(--border);
246
- }
247
-
248
- .kpi-value {
249
- font-size: 2rem;
250
- font-weight: 700;
251
- margin-top: 0.5rem;
252
- }
253
-
254
- .bar-row {
255
- display: grid;
256
- grid-template-columns: 140px 1fr 90px;
257
- gap: 0.75rem;
258
- align-items: center;
259
- margin-bottom: 0.5rem;
260
- }
261
-
262
- .bar-track {
263
- height: 12px;
264
- background: rgba(255, 255, 255, 0.06);
265
- border-radius: 999px;
266
- overflow: hidden;
267
- }
268
-
269
- .bar-fill {
270
- height: 100%;
271
- background: linear-gradient(90deg, var(--accent), #8b5cf6);
272
- }
273
-
274
- .table-shell {
275
- overflow: auto;
276
- }
277
-
278
- table {
279
- width: 100%;
280
- border-collapse: collapse;
281
- }
282
-
283
- th,
284
- td {
285
- text-align: left;
286
- padding: 0.7rem 0.85rem;
287
- border-bottom: 1px solid rgba(36, 50, 72, 0.6);
288
- }
289
-
290
- th {
291
- color: var(--muted);
292
- font-size: 0.85rem;
293
- }
294
-
295
- .markdown-preview {
296
- padding: 1rem;
297
- border: 1px solid var(--border);
298
- border-radius: 12px;
299
- background: rgba(7, 16, 29, 0.7);
300
- line-height: 1.6;
301
- }
302
-
303
- .markdown-preview h1,
304
- .markdown-preview h2,
305
- .markdown-preview h3 {
306
- margin-top: 0;
307
- }
308
-
309
- .status.ok {
310
- color: var(--success);
311
- }
312
-
313
- .status.error {
314
- color: var(--danger);
315
- }
316
-
317
- .hidden {
318
- display: none;
319
- }
320
-
321
- @media (max-width: 1100px) {
322
- .app-shell {
323
- grid-template-columns: 1fr;
324
- }
325
-
326
- .sidebar {
327
- position: static;
328
- height: auto;
329
- border-right: 0;
330
- border-bottom: 1px solid var(--border);
331
- }
332
-
333
- .toolbar {
334
- flex-direction: column;
335
- }
336
- }
@@ -1,8 +0,0 @@
1
- export interface BlockTemplate {
2
- id: string;
3
- name: string;
4
- description: string;
5
- content: string;
6
- }
7
- export declare function listBlockTemplates(): BlockTemplate[];
8
- //# sourceMappingURL=block-templates.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"block-templates.d.ts","sourceRoot":"","sources":["../src/block-templates.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AA2DD,wBAAgB,kBAAkB,IAAI,aAAa,EAAE,CAEpD"}
@@ -1,60 +0,0 @@
1
- const BLOCK_TEMPLATES = [
2
- {
3
- id: 'metric-report',
4
- name: 'Metric Report',
5
- description: 'Single metric query with semantic references and ordering.',
6
- content: `SELECT
7
- @metric(total_revenue) AS total_revenue
8
- ORDER BY 1 DESC
9
- LIMIT 50;
10
- `,
11
- },
12
- {
13
- id: 'dimension-analysis',
14
- name: 'Dimension Analysis',
15
- description: 'Group a metric by a business dimension.',
16
- content: `SELECT
17
- @dim(segment) AS segment,
18
- @metric(total_revenue) AS total_revenue
19
- GROUP BY 1
20
- ORDER BY 2 DESC
21
- LIMIT 25;
22
- `,
23
- },
24
- {
25
- id: 'time-series',
26
- name: 'Time Series',
27
- description: 'Time-based trend using a semantic date dimension.',
28
- content: `SELECT
29
- @dim(order_date) AS order_date,
30
- @metric(total_revenue) AS total_revenue
31
- GROUP BY 1
32
- ORDER BY 1
33
- LIMIT 365;
34
- `,
35
- },
36
- {
37
- id: 'kpi-dashboard',
38
- name: 'KPI Dashboard',
39
- description: 'Multiple KPI snapshot query.',
40
- content: `SELECT
41
- @metric(total_revenue) AS total_revenue,
42
- @metric(total_orders) AS total_orders,
43
- @metric(avg_order_value) AS avg_order_value;
44
- `,
45
- },
46
- {
47
- id: 'data-quality',
48
- name: 'Data Quality',
49
- description: 'Simple assertion-style query for row quality checks.',
50
- content: `SELECT
51
- COUNT(*) AS row_count,
52
- COUNT(*) FILTER (WHERE @dim(segment) IS NULL) AS null_segment_rows
53
- FROM orders;
54
- `,
55
- },
56
- ];
57
- export function listBlockTemplates() {
58
- return BLOCK_TEMPLATES;
59
- }
60
- //# sourceMappingURL=block-templates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"block-templates.js","sourceRoot":"","sources":["../src/block-templates.ts"],"names":[],"mappings":"AAOA,MAAM,eAAe,GAAoB;IACvC;QACE,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,4DAA4D;QACzE,OAAO,EAAE;;;;CAIZ;KACE;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,yCAAyC;QACtD,OAAO,EAAE;;;;;;CAMZ;KACE;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,mDAAmD;QAChE,OAAO,EAAE;;;;;;CAMZ;KACE;IACD;QACE,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,8BAA8B;QAC3C,OAAO,EAAE;;;;CAIZ;KACE;IACD;QACE,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,sDAAsD;QACnE,OAAO,EAAE;;;;CAIZ;KACE;CACF,CAAC;AAEF,MAAM,UAAU,kBAAkB;IAChC,OAAO,eAAe,CAAC;AACzB,CAAC"}
@@ -1,19 +0,0 @@
1
- /**
2
- * `dql agent` — block-first answer loop on the command line.
3
- *
4
- * dql agent ask "what was revenue last week?"
5
- * [--provider claude|openai|gemini|ollama]
6
- * [--user alice@acme.com] (filters Skills + records feedback as this user)
7
- * [--domain growth] (scopes KG search)
8
- * [--format json] (emits structured JSON instead of prose)
9
- *
10
- * dql agent reindex
11
- * Rebuilds .dql/cache/agent-kg.sqlite from the project's manifest +
12
- * Skills folder. Equivalent to `dql app reindex`.
13
- *
14
- * dql agent feedback <up|down> --block <id> --question "..."
15
- * Records feedback into the KG. Used by clients without MCP access.
16
- */
17
- import type { CLIFlags } from '../args.js';
18
- export declare function runAgent(sub: string | null, rest: string[], flags: CLIFlags): Promise<void>;
19
- //# sourceMappingURL=agent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAYH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,IAAI,CAAC,CAgBf"}
@@ -1,117 +0,0 @@
1
- /**
2
- * `dql agent` — block-first answer loop on the command line.
3
- *
4
- * dql agent ask "what was revenue last week?"
5
- * [--provider claude|openai|gemini|ollama]
6
- * [--user alice@acme.com] (filters Skills + records feedback as this user)
7
- * [--domain growth] (scopes KG search)
8
- * [--format json] (emits structured JSON instead of prose)
9
- *
10
- * dql agent reindex
11
- * Rebuilds .dql/cache/agent-kg.sqlite from the project's manifest +
12
- * Skills folder. Equivalent to `dql app reindex`.
13
- *
14
- * dql agent feedback <up|down> --block <id> --question "..."
15
- * Records feedback into the KG. Used by clients without MCP access.
16
- */
17
- import { existsSync } from 'node:fs';
18
- import { KGStore, defaultKgPath, reindexProject, loadSkills, pickProvider, answer, } from '@duckcodeailabs/dql-agent';
19
- import { findProjectRoot } from '../local-runtime.js';
20
- export async function runAgent(sub, rest, flags) {
21
- switch (sub) {
22
- case 'ask':
23
- return runAsk(rest, flags);
24
- case 'reindex':
25
- return runReindex(flags);
26
- case 'feedback':
27
- return runFeedback(rest, flags);
28
- default:
29
- throw new Error('Usage: dql agent <ask|reindex|feedback> [args]\n' +
30
- ' dql agent ask "<question>" [--provider claude|openai|gemini|ollama] [--user <id>] [--domain <d>]\n' +
31
- ' dql agent reindex\n' +
32
- ' dql agent feedback up|down --block <id> --question "..."');
33
- }
34
- }
35
- async function runAsk(rest, flags) {
36
- const question = rest.join(' ').trim();
37
- if (!question)
38
- throw new Error('Usage: dql agent ask "<question>"');
39
- const projectRoot = findProjectRoot(process.cwd());
40
- const kgPath = defaultKgPath(projectRoot);
41
- if (!existsSync(kgPath)) {
42
- throw new Error('KG not built. Run `dql agent reindex` (or `dql app reindex`) before asking.');
43
- }
44
- const providerName = flags.provider;
45
- const userId = flags.user;
46
- const domain = flags.domain;
47
- const format = flags.format;
48
- const provider = await pickProvider(providerName);
49
- const kg = new KGStore(kgPath);
50
- const { skills } = loadSkills(projectRoot);
51
- try {
52
- const result = await answer({ question, provider, kg, skills, userId, domain });
53
- if (format === 'json') {
54
- console.log(JSON.stringify(result, null, 2));
55
- return;
56
- }
57
- const badge = result.kind === 'certified'
58
- ? '✓ Certified'
59
- : result.kind === 'uncertified'
60
- ? '! AI-generated · uncertified'
61
- : '? No answer';
62
- const cite = result.citations.length > 0
63
- ? '\n\nCitations:\n' + result.citations.map((c) => ` - ${c.kind} \`${c.name}\`${c.gitSha ? ` · ${c.gitSha.slice(0, 8)}` : ''}`).join('\n')
64
- : '';
65
- console.log(`${badge}\n\n${result.text}${cite}`);
66
- if (result.proposedSql) {
67
- console.log(`\n--- Proposed SQL (review before saving as a block) ---\n${result.proposedSql}`);
68
- if (result.suggestedViz)
69
- console.log(`Viz: ${result.suggestedViz}`);
70
- }
71
- }
72
- finally {
73
- kg.close();
74
- }
75
- }
76
- async function runReindex(flags) {
77
- const projectRoot = findProjectRoot(process.cwd());
78
- const stats = await reindexProject(projectRoot);
79
- if (flags.format === 'json') {
80
- console.log(JSON.stringify({ ok: true, ...stats }, null, 2));
81
- return;
82
- }
83
- console.log(` ✓ KG rebuilt — ${stats.nodes} nodes, ${stats.edges} edges, ${stats.skills} skill(s).`);
84
- }
85
- async function runFeedback(rest, flags) {
86
- const rating = rest[0];
87
- if (rating !== 'up' && rating !== 'down') {
88
- throw new Error('Usage: dql agent feedback up|down --block <id> --question "..."');
89
- }
90
- const blockId = flags.block;
91
- const question = flags.question;
92
- const user = flags.user ?? `${process.env.USER ?? 'owner'}@local`;
93
- if (!question)
94
- throw new Error('--question is required');
95
- const projectRoot = findProjectRoot(process.cwd());
96
- const kgPath = defaultKgPath(projectRoot);
97
- if (!existsSync(kgPath))
98
- throw new Error('KG not built. Run `dql agent reindex`.');
99
- const kg = new KGStore(kgPath);
100
- try {
101
- kg.recordFeedback({
102
- id: `fb_${Date.now().toString(36)}`,
103
- ts: new Date().toISOString(),
104
- user,
105
- question,
106
- answerKind: blockId?.startsWith('block:') ? 'certified' : 'uncertified',
107
- blockId,
108
- rating,
109
- comment: flags.comment,
110
- });
111
- console.log(` ✓ Recorded ${rating} from ${user}.`);
112
- }
113
- finally {
114
- kg.close();
115
- }
116
- }
117
- //# sourceMappingURL=agent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- /**
2
- * `dql app` — manage Apps (consumption-layer artifacts).
3
- *
4
- * Apps live at `apps/<id>/dql.app.json` and bundle dashboards/notebooks plus
5
- * declarative members, roles, policies, RLS bindings, and schedules. They're
6
- * compiled into the `apps[]` and `dashboards[]` records of `dql-manifest.json`
7
- * and read by both the desktop UI and the CLI.
8
- *
9
- * Subcommands:
10
- * dql app new <id> --domain <domain> [--owner <user>]
11
- * dql app ls
12
- * dql app show <id>
13
- * dql app build [--app <id>]
14
- * dql app reindex [--app <id>] (no-op until the agent KG package lands; aliased)
15
- */
16
- import { type ManifestApp } from '@duckcodeailabs/dql-core';
17
- import type { CLIFlags } from '../args.js';
18
- export declare function runApp(sub: string | null, rest: string[], flags: CLIFlags): Promise<void>;
19
- interface ResolvedApp extends Omit<ManifestApp, 'dashboards'> {
20
- dashboards: Array<{
21
- id: string;
22
- title: string;
23
- }>;
24
- }
25
- declare function collectApps(projectRoot: string): ResolvedApp[];
26
- declare function humanise(id: string): string;
27
- export declare const __test__: {
28
- collectApps: typeof collectApps;
29
- humanise: typeof humanise;
30
- };
31
- export {};
32
- //# sourceMappingURL=app.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/commands/app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,EASL,KAAK,WAAW,EACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAK3C,wBAAsB,MAAM,CAC1B,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,IAAI,CAAC,CAuBf;AAkOD,UAAU,WAAY,SAAQ,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3D,UAAU,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;AAED,iBAAS,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,EAAE,CAkDvD;AAOD,iBAAS,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMpC;AAGD,eAAO,MAAM,QAAQ;;;CAGpB,CAAC"}