@duckcodeailabs/dql-cli 1.4.0 → 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 -296
  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,490 +0,0 @@
1
- import { existsSync, mkdirSync, readdirSync, writeFileSync } from 'node:fs';
2
- import { basename, join, resolve } from 'node:path';
3
- import { findProjectRoot } from '../local-runtime.js';
4
- export async function runNew(subject, rest, flags) {
5
- const { kind, rawName } = resolveNewTarget(subject, rest);
6
- const projectRoot = findProjectRoot(process.cwd());
7
- const title = toTitle(rawName);
8
- const slug = toSlug(rawName);
9
- const usingStarterData = existsSync(join(projectRoot, 'data', 'revenue.csv'));
10
- // Detect available data files for smarter notebook templates
11
- const availableDataFiles = detectAvailableDataFiles(projectRoot);
12
- // Notebooks use .dqlnb extension and their own creation path
13
- if (kind === 'notebook') {
14
- return runNewNotebook({ projectRoot, title, slug, flags, usingStarterData, availableDataFiles });
15
- }
16
- const outputDir = resolve(projectRoot, defaultDirForKind(kind, flags.outDir));
17
- const filePath = join(outputDir, `${slug}.dql`);
18
- if (existsSync(filePath)) {
19
- throw new Error(`${capitalize(kind)} already exists: ${filePath}`);
20
- }
21
- mkdirSync(outputDir, { recursive: true });
22
- const owner = flags.owner || process.env.USER || 'team';
23
- const domain = flags.domain || 'general';
24
- const chart = normalizeChart(flags.chart || 'bar');
25
- const metricName = `${slug}_metric`;
26
- const content = buildTemplate({
27
- kind,
28
- title,
29
- domain,
30
- owner,
31
- chart,
32
- queryOnly: flags.queryOnly,
33
- usingStarterData,
34
- metricName,
35
- });
36
- writeFileSync(filePath, content, 'utf-8');
37
- const relatedFiles = kind === 'semantic-block'
38
- ? writeSemanticCompanionFiles(projectRoot, slug, domain, owner, metricName)
39
- : [];
40
- const relativePath = relativeToProject(projectRoot, filePath);
41
- const nextSteps = nextStepsFor(kind, relativePath, usingStarterData, flags.queryOnly);
42
- if (flags.format === 'json') {
43
- console.log(JSON.stringify({
44
- created: true,
45
- type: kind,
46
- name: title,
47
- path: filePath,
48
- previewReady: usingStarterData && kind !== 'semantic-block',
49
- relatedFiles,
50
- nextSteps,
51
- }, null, 2));
52
- return;
53
- }
54
- console.log(`\n ✓ Created DQL ${kind}: ${title}`);
55
- console.log(` Path: ${filePath}`);
56
- if (relatedFiles.length > 0) {
57
- console.log(' Related files:');
58
- relatedFiles.forEach((relatedFile) => console.log(` - ${relatedFile}`));
59
- }
60
- console.log('');
61
- console.log(' Next steps:');
62
- nextSteps.forEach((step, index) => console.log(` ${index + 1}. ${step}`));
63
- console.log('');
64
- }
65
- function resolveNewTarget(subject, rest) {
66
- if (!subject) {
67
- throw new Error('Usage: dql new <block|dashboard|workbook> <name>');
68
- }
69
- if (subject === 'block' || subject === 'dashboard' || subject === 'workbook' || subject === 'semantic-block' || subject === 'notebook') {
70
- const rawName = rest.join(' ').trim();
71
- if (!rawName) {
72
- throw new Error(`Missing ${subject} name. Usage: dql new ${subject} <name>`);
73
- }
74
- return { kind: subject, rawName };
75
- }
76
- return { kind: 'block', rawName: subject };
77
- }
78
- function buildTemplate(opts) {
79
- switch (opts.kind) {
80
- case 'dashboard':
81
- return buildDashboardTemplate(opts);
82
- case 'workbook':
83
- return buildWorkbookTemplate(opts);
84
- case 'semantic-block':
85
- return buildSemanticBlockTemplate(opts);
86
- case 'block':
87
- default:
88
- return buildBlockTemplate(opts);
89
- }
90
- }
91
- function buildBlockTemplate(opts) {
92
- const description = opts.usingStarterData
93
- ? `Starter block for ${opts.title.toLowerCase()} using local sample data`
94
- : `Starter block for ${opts.title.toLowerCase()}`;
95
- const query = opts.usingStarterData ? starterBlockQueryForChart(opts.chart) : placeholderBlockQueryForChart(opts.chart);
96
- const params = opts.usingStarterData && (opts.chart === 'bar' || opts.chart === 'kpi')
97
- ? `
98
- params {
99
- period = "current_quarter"
100
- }
101
- `
102
- : '';
103
- const visualization = opts.queryOnly ? '' : blockVisualizationForChart(opts.chart);
104
- return `block "${opts.title}" {
105
- domain = "${opts.domain}"
106
- type = "custom"
107
- description = "${description}"
108
- owner = "${opts.owner}"
109
- tags = ["starter", "${opts.domain}"]${params}
110
-
111
- query = """
112
- ${indentBlock(query, 8)}
113
- """${visualization}
114
-
115
- tests {
116
- assert row_count > 0
117
- }
118
- }
119
- `;
120
- }
121
- function buildSemanticBlockTemplate(opts) {
122
- return `block "${opts.title}" {
123
- domain = "${opts.domain}"
124
- type = "semantic"
125
- description = "Starter semantic block for ${opts.title.toLowerCase()}"
126
- owner = "${opts.owner}"
127
- tags = ["starter", "semantic", "${opts.domain}"]
128
- metric = "${opts.metricName}"
129
- }
130
- `;
131
- }
132
- function buildDashboardTemplate(opts) {
133
- const starterSource = `read_csv_auto('./data/revenue.csv')`;
134
- const source = opts.usingStarterData ? starterSource : 'your_table';
135
- const primaryChart = dashboardChartFor(opts.chart, source, opts.usingStarterData);
136
- const tableChart = ` chart.table(
137
- SELECT recognized_at, segment_tier, amount, fiscal_period
138
- FROM ${source}
139
- ORDER BY recognized_at DESC,
140
- title = "Recent Rows"
141
- )`;
142
- return `dashboard "${opts.title}" {
143
- ${primaryChart}
144
-
145
- ${tableChart}
146
- }
147
- `;
148
- }
149
- function buildWorkbookTemplate(opts) {
150
- const source = opts.usingStarterData ? `read_csv_auto('./data/revenue.csv')` : 'your_table';
151
- return `workbook "${opts.title}" {
152
- page "Summary" {
153
- chart.kpi(
154
- SELECT SUM(amount) AS total_revenue FROM ${source},
155
- metrics = ["total_revenue"],
156
- title = "Total Revenue"
157
- )
158
- }
159
-
160
- page "Trend" {
161
- chart.line(
162
- SELECT recognized_at AS revenue_date, SUM(amount) AS total_revenue
163
- FROM ${source}
164
- GROUP BY recognized_at
165
- ORDER BY recognized_at,
166
- x = revenue_date,
167
- y = total_revenue,
168
- title = "Revenue Trend"
169
- )
170
- }
171
- }
172
- `;
173
- }
174
- function starterBlockQueryForChart(chart) {
175
- switch (chart) {
176
- case 'kpi':
177
- return `SELECT SUM(amount) AS total_revenue
178
- FROM read_csv_auto('./data/revenue.csv')
179
- WHERE fiscal_period = \${period}`;
180
- case 'line':
181
- return `SELECT recognized_at AS revenue_date, SUM(amount) AS total_revenue
182
- FROM read_csv_auto('./data/revenue.csv')
183
- GROUP BY recognized_at
184
- ORDER BY recognized_at`;
185
- case 'table':
186
- return `SELECT recognized_at, segment_tier, amount, fiscal_period
187
- FROM read_csv_auto('./data/revenue.csv')
188
- ORDER BY recognized_at DESC`;
189
- case 'bar':
190
- default:
191
- return `SELECT segment_tier AS segment, SUM(amount) AS revenue
192
- FROM read_csv_auto('./data/revenue.csv')
193
- WHERE fiscal_period = \${period}
194
- GROUP BY segment_tier
195
- ORDER BY revenue DESC`;
196
- }
197
- }
198
- function placeholderBlockQueryForChart(chart) {
199
- switch (chart) {
200
- case 'kpi':
201
- return `SELECT SUM(measure) AS total_revenue
202
- FROM your_table`;
203
- case 'line':
204
- return `SELECT dimension_date AS revenue_date, SUM(measure) AS total_revenue
205
- FROM your_table
206
- GROUP BY dimension_date
207
- ORDER BY dimension_date`;
208
- case 'table':
209
- return `SELECT *
210
- FROM your_table
211
- LIMIT 50`;
212
- case 'bar':
213
- default:
214
- return `SELECT dimension AS segment, SUM(measure) AS revenue
215
- FROM your_table
216
- GROUP BY dimension
217
- ORDER BY revenue DESC`;
218
- }
219
- }
220
- function blockVisualizationForChart(chart) {
221
- switch (chart) {
222
- case 'kpi':
223
- return `
224
-
225
- visualization {
226
- chart = "kpi"
227
- y = total_revenue
228
- }`;
229
- case 'line':
230
- return `
231
-
232
- visualization {
233
- chart = "line"
234
- x = revenue_date
235
- y = total_revenue
236
- }`;
237
- case 'table':
238
- return `
239
-
240
- visualization {
241
- chart = "table"
242
- }`;
243
- case 'bar':
244
- default:
245
- return `
246
-
247
- visualization {
248
- chart = "bar"
249
- x = segment
250
- y = revenue
251
- }`;
252
- }
253
- }
254
- function dashboardChartFor(chart, source, usingStarterData) {
255
- switch (chart) {
256
- case 'kpi':
257
- return ` chart.kpi(
258
- SELECT SUM(amount) AS total_revenue FROM ${source},
259
- metrics = ["total_revenue"],
260
- title = "Total Revenue"
261
- )`;
262
- case 'line':
263
- return ` chart.line(
264
- SELECT recognized_at AS revenue_date, SUM(amount) AS total_revenue
265
- FROM ${source}
266
- GROUP BY recognized_at
267
- ORDER BY recognized_at,
268
- x = revenue_date,
269
- y = total_revenue,
270
- title = "Revenue Trend"
271
- )`;
272
- case 'table':
273
- return ` chart.table(
274
- SELECT recognized_at, segment_tier, amount, fiscal_period
275
- FROM ${source}
276
- ORDER BY recognized_at DESC,
277
- title = "Revenue Table"
278
- )`;
279
- case 'bar':
280
- default:
281
- return ` chart.bar(
282
- SELECT segment_tier AS segment, SUM(amount) AS revenue
283
- FROM ${source}${usingStarterData ? '\n WHERE fiscal_period = "current_quarter"' : ''}
284
- GROUP BY segment_tier
285
- ORDER BY revenue DESC,
286
- x = segment,
287
- y = revenue,
288
- title = "Revenue by Segment"
289
- )`;
290
- }
291
- }
292
- function nextStepsFor(kind, relativePath, usingStarterData, queryOnly) {
293
- if (kind === 'semantic-block') {
294
- return [
295
- `dql parse ${relativePath}`,
296
- `dql info ${relativePath}`,
297
- ];
298
- }
299
- if (!usingStarterData) {
300
- return [
301
- `Edit ${relativePath} to replace the placeholder SQL`,
302
- `dql parse ${relativePath}`,
303
- ];
304
- }
305
- const steps = [`dql parse ${relativePath}`];
306
- if (kind === 'block') {
307
- steps.push(queryOnly ? `dql info ${relativePath}` : `dql preview ${relativePath}`);
308
- }
309
- else {
310
- steps.push(`dql preview ${relativePath}`);
311
- }
312
- return steps;
313
- }
314
- function defaultDirForKind(kind, outDir) {
315
- if (outDir)
316
- return outDir;
317
- switch (kind) {
318
- case 'dashboard':
319
- return 'dashboards';
320
- case 'semantic-block':
321
- return 'blocks';
322
- case 'workbook':
323
- return 'workbooks';
324
- case 'notebook':
325
- return 'notebooks';
326
- case 'block':
327
- default:
328
- return 'blocks';
329
- }
330
- }
331
- async function runNewNotebook(opts) {
332
- const { projectRoot, title, slug, flags, usingStarterData, availableDataFiles } = opts;
333
- const outputDir = resolve(projectRoot, flags.outDir || 'notebooks');
334
- const filePath = join(outputDir, `${slug}.dqlnb`);
335
- if (existsSync(filePath)) {
336
- throw new Error(`Notebook already exists: ${filePath}`);
337
- }
338
- mkdirSync(outputDir, { recursive: true });
339
- const template = flags.chart || 'blank'; // reuse --chart flag as template selector
340
- const cells = buildNotebookCells(title, template, usingStarterData, availableDataFiles);
341
- const content = JSON.stringify({ version: 1, title, cells }, null, 2);
342
- writeFileSync(filePath, content, 'utf-8');
343
- const relativePath = relativeToProject(projectRoot, filePath);
344
- if (flags.format === 'json') {
345
- console.log(JSON.stringify({ created: true, type: 'notebook', name: title, path: filePath }, null, 2));
346
- return;
347
- }
348
- console.log(`\n ✓ Created DQL notebook: ${title}`);
349
- console.log(` Path: ${filePath}`);
350
- console.log('');
351
- console.log(' Next steps:');
352
- console.log(` 1. dql notebook (opens the interactive notebook UI)`);
353
- console.log(` 2. Open "${relativePath}" from the Files panel`);
354
- console.log('');
355
- }
356
- function buildNotebookCells(title, template, usingStarterData, availableDataFiles = []) {
357
- const id = () => Math.random().toString(36).slice(2, 10);
358
- // Pick the best available data source — prefer template-specific CSVs, fall back to any CSV
359
- function dataSrc(preferred) {
360
- for (const name of preferred) {
361
- if (availableDataFiles.includes(name))
362
- return `read_csv_auto('./data/${name}')`;
363
- }
364
- if (availableDataFiles.length > 0)
365
- return `read_csv_auto('./data/${availableDataFiles[0]}')`;
366
- return 'your_table';
367
- }
368
- if (template === 'revenue') {
369
- const src = dataSrc(['revenue.csv', 'orders.csv']);
370
- return [
371
- { id: id(), type: 'markdown', content: `# ${title}\n\nRevenue analysis using DQL and DuckDB.` },
372
- { id: id(), type: 'sql', name: 'revenue_summary', content: `SELECT *\nFROM ${src}\nLIMIT 100` },
373
- ];
374
- }
375
- if (template === 'pipeline') {
376
- const src = dataSrc(['pipeline.csv', 'orders.csv', 'funnel.csv']);
377
- return [
378
- { id: id(), type: 'markdown', content: `# ${title}\n\nPipeline health and conversion analysis.` },
379
- { id: id(), type: 'sql', name: 'pipeline_overview', content: `SELECT *\nFROM ${src}\nLIMIT 100` },
380
- ];
381
- }
382
- if (usingStarterData && availableDataFiles.length > 0) {
383
- const src = dataSrc(availableDataFiles);
384
- return [
385
- { id: id(), type: 'markdown', content: `# ${title}\n\nAdd your analysis here.` },
386
- { id: id(), type: 'sql', name: 'query_1', content: `SELECT *\nFROM ${src}\nLIMIT 10` },
387
- ];
388
- }
389
- return [
390
- { id: id(), type: 'markdown', content: `# ${title}\n\nAdd your analysis here.` },
391
- { id: id(), type: 'sql', name: 'query_1', content: `SELECT 1 AS hello` },
392
- ];
393
- }
394
- /** List CSV/Parquet/JSON files in the project's data/ directory */
395
- function detectAvailableDataFiles(projectRoot) {
396
- try {
397
- const dataDir = join(projectRoot, 'data');
398
- if (!existsSync(dataDir))
399
- return [];
400
- return readdirSync(dataDir)
401
- .filter((f) => /\.(csv|parquet|json|jsonl|ndjson|xlsx)$/i.test(f))
402
- .sort();
403
- }
404
- catch {
405
- return [];
406
- }
407
- }
408
- function normalizeChart(value) {
409
- const normalized = value.trim().toLowerCase();
410
- return normalized || 'bar';
411
- }
412
- function indentBlock(value, spaces) {
413
- const prefix = ' '.repeat(spaces);
414
- return value.split('\n').map((line) => `${prefix}${line}`).join('\n');
415
- }
416
- function toSlug(value) {
417
- return value
418
- .replace(/\.dql$/i, '')
419
- .trim()
420
- .replace(/[^a-zA-Z0-9]+/g, '_')
421
- .replace(/^_+|_+$/g, '')
422
- .toLowerCase() || 'new_asset';
423
- }
424
- function toTitle(value) {
425
- const cleaned = value.replace(/\.dql$/i, '').trim();
426
- if (!cleaned)
427
- return 'New Asset';
428
- if (/[A-Z]/.test(cleaned) || cleaned.includes(' ')) {
429
- return cleaned.replace(/[_-]+/g, ' ');
430
- }
431
- return cleaned
432
- .split(/[_-]+/g)
433
- .map((part) => part ? `${part[0].toUpperCase()}${part.slice(1)}` : part)
434
- .join(' ');
435
- }
436
- function relativeToProject(projectRoot, filePath) {
437
- const normalizedRoot = `${resolve(projectRoot)}/`;
438
- const normalizedPath = resolve(filePath);
439
- return normalizedPath.startsWith(normalizedRoot)
440
- ? normalizedPath.slice(normalizedRoot.length)
441
- : basename(filePath);
442
- }
443
- function capitalize(value) {
444
- return `${value[0]?.toUpperCase() || ''}${value.slice(1)}`;
445
- }
446
- function writeSemanticCompanionFiles(projectRoot, slug, domain, owner, metricName) {
447
- const metricDir = join(projectRoot, 'semantic-layer', 'metrics');
448
- const blockDir = join(projectRoot, 'semantic-layer', 'blocks');
449
- mkdirSync(metricDir, { recursive: true });
450
- mkdirSync(blockDir, { recursive: true });
451
- const metricPath = join(metricDir, `${metricName}.yaml`);
452
- const blockPath = join(blockDir, `${slug}.yaml`);
453
- if (!existsSync(metricPath)) {
454
- writeFileSync(metricPath, `name: ${metricName}
455
- label: ${toLabel(metricName)}
456
- description: Starter semantic metric for ${toLabel(slug)}
457
- domain: ${domain}
458
- sql: SUM(measure)
459
- type: sum
460
- table: your_table
461
- tags:
462
- - ${domain}
463
- - semantic
464
- owner: ${owner}
465
- `, 'utf-8');
466
- }
467
- if (!existsSync(blockPath)) {
468
- writeFileSync(blockPath, `name: ${slug}
469
- block: ${slug}
470
- domain: ${domain}
471
- description: Companion business metadata for ${toLabel(slug)}
472
- owner: ${owner}
473
- tags:
474
- - ${domain}
475
- - semantic
476
- semanticMappings:
477
- measure: ${metricName}
478
- reviewStatus: review
479
- `, 'utf-8');
480
- }
481
- return [relativeToProject(projectRoot, metricPath), relativeToProject(projectRoot, blockPath)];
482
- }
483
- function toLabel(value) {
484
- return value
485
- .split(/[_-]+/g)
486
- .filter(Boolean)
487
- .map((part) => `${part[0]?.toUpperCase() || ''}${part.slice(1)}`)
488
- .join(' ');
489
- }
490
- //# sourceMappingURL=new.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=new.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"new.test.d.ts","sourceRoot":"","sources":["../../src/commands/new.test.ts"],"names":[],"mappings":""}