@burdenoff/cli-sdk 2026.627.4 → 2026.627.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/modules/mybodyshield/index.cjs +281 -0
- package/dist/modules/mybodyshield/index.d.cts +7 -0
- package/dist/modules/mybodyshield/index.d.ts +7 -0
- package/dist/modules/mybodyshield/index.js +281 -0
- package/dist/modules/semanticfed/index.cjs +287 -0
- package/dist/modules/semanticfed/index.d.cts +7 -0
- package/dist/modules/semanticfed/index.d.ts +7 -0
- package/dist/modules/semanticfed/index.js +287 -0
- package/dist/modules/technospam/index.cjs +325 -0
- package/dist/modules/technospam/index.d.cts +7 -0
- package/dist/modules/technospam/index.d.ts +7 -0
- package/dist/modules/technospam/index.js +325 -0
- package/dist/modules/theculturepost/index.cjs +228 -0
- package/dist/modules/theculturepost/index.d.cts +7 -0
- package/dist/modules/theculturepost/index.d.ts +7 -0
- package/dist/modules/theculturepost/index.js +228 -0
- package/dist/modules/theglobalfuel/index.cjs +251 -0
- package/dist/modules/theglobalfuel/index.d.cts +7 -0
- package/dist/modules/theglobalfuel/index.d.ts +7 -0
- package/dist/modules/theglobalfuel/index.js +251 -0
- package/package.json +1 -1
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var p=class extends Error{exitCode;hint;constructor(o,e){super(o),this.name="CliUserError",this.exitCode=e?.exitCode??1,this.hint=e?.hint;}},E=class extends p{constructor(o,e){super(o,{exitCode:2,hint:e?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},h=class extends Error{cause;constructor(o,e){super(o),this.name="CliInternalError",this.cause=e;}};var S=null;function T(r){S=r;}function I(){if(!S)throw new h("vibecontrols module helpers used before setHelpersContext was called");return S}function _e(){let r=I();if(!r.auth.isAuthenticated())throw new E(`Authentication required. Run \`${r.productName} auth login\`.`)}async function c(r,o){return _e(),I().gql.workspace.request(r,o)}async function w(r,o){return I().gql.workspaceAuthOnly.request(r,o)}function i(r){let o=r instanceof Error?r.message:String(r);throw new p(o)}function s(r,o,e){I().output.formatAndOutput(r,o,e);}function d(r){I().output.printSuccess(r);}function m(r,o){return I().output.truncate(r,o)}var b=`
|
|
2
|
+
query SemConnector($id: ID!) {
|
|
3
|
+
semConnector(id: $id) {
|
|
4
|
+
id name kind description isActive capabilities
|
|
5
|
+
dataSources { id name status }
|
|
6
|
+
createdAt updatedAt workspaceId
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
`,D=`
|
|
10
|
+
query SemListConnectors($kind: SemConnectorKind, $pagination: PaginationInput) {
|
|
11
|
+
semListConnectors(kind: $kind, pagination: $pagination) {
|
|
12
|
+
items {
|
|
13
|
+
id name kind description isActive capabilities createdAt updatedAt workspaceId
|
|
14
|
+
}
|
|
15
|
+
pageInfo { cursor hasMore }
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
`,O=`
|
|
19
|
+
mutation SemCreateConnector($input: SemCreateConnectorInput!) {
|
|
20
|
+
semCreateConnector(input: $input) {
|
|
21
|
+
id name kind description isActive capabilities createdAt updatedAt workspaceId
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
`,R=`
|
|
25
|
+
mutation SemUpdateConnector($id: ID!, $input: SemUpdateConnectorInput!) {
|
|
26
|
+
semUpdateConnector(id: $id, input: $input) {
|
|
27
|
+
id name kind description isActive capabilities updatedAt workspaceId
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
`,x=`
|
|
31
|
+
mutation SemArchiveConnector($id: ID!) {
|
|
32
|
+
semArchiveConnector(id: $id)
|
|
33
|
+
}
|
|
34
|
+
`,v=`
|
|
35
|
+
query SemDataSource($id: ID!) {
|
|
36
|
+
semDataSource(id: $id) {
|
|
37
|
+
id connectorId name description endpoint pushdownEnabled secretRef
|
|
38
|
+
status tags lastIntrospectedAt
|
|
39
|
+
connector { id name kind }
|
|
40
|
+
createdAt updatedAt workspaceId
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
`,M=`
|
|
44
|
+
query SemListDataSources(
|
|
45
|
+
$connectorId: ID
|
|
46
|
+
$status: SemDataSourceStatus
|
|
47
|
+
$pagination: PaginationInput
|
|
48
|
+
) {
|
|
49
|
+
semListDataSources(connectorId: $connectorId, status: $status, pagination: $pagination) {
|
|
50
|
+
items {
|
|
51
|
+
id connectorId name description pushdownEnabled secretRef status tags
|
|
52
|
+
lastIntrospectedAt createdAt updatedAt workspaceId
|
|
53
|
+
}
|
|
54
|
+
pageInfo { cursor hasMore }
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
`,_=`
|
|
58
|
+
mutation SemCreateDataSource($input: SemCreateDataSourceInput!) {
|
|
59
|
+
semCreateDataSource(input: $input) {
|
|
60
|
+
id connectorId name description endpoint pushdownEnabled secretRef
|
|
61
|
+
status tags createdAt updatedAt workspaceId
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
`,$=`
|
|
65
|
+
mutation SemUpdateDataSource($id: ID!, $input: SemUpdateDataSourceInput!) {
|
|
66
|
+
semUpdateDataSource(id: $id, input: $input) {
|
|
67
|
+
id connectorId name description endpoint pushdownEnabled secretRef
|
|
68
|
+
status tags updatedAt workspaceId
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
`,L=`
|
|
72
|
+
mutation SemArchiveDataSource($id: ID!) {
|
|
73
|
+
semArchiveDataSource(id: $id)
|
|
74
|
+
}
|
|
75
|
+
`,N=`
|
|
76
|
+
mutation SemTransitionDataSource($id: ID!, $status: SemDataSourceStatus!) {
|
|
77
|
+
semTransitionDataSource(id: $id, status: $status) {
|
|
78
|
+
id name status updatedAt workspaceId
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
`,q=`
|
|
82
|
+
query SemListConnections($dataSourceId: ID!) {
|
|
83
|
+
semListConnections(dataSourceId: $dataSourceId) {
|
|
84
|
+
id dataSourceId health latencyMs message probedAt createdAt updatedAt workspaceId
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
`,P=`
|
|
88
|
+
mutation SemRecordConnection($input: SemRecordConnectionInput!) {
|
|
89
|
+
semRecordConnection(input: $input) {
|
|
90
|
+
id dataSourceId health latencyMs message probedAt createdAt updatedAt workspaceId
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
`,U=`
|
|
94
|
+
query SemModel($id: ID!) {
|
|
95
|
+
semModel(id: $id) {
|
|
96
|
+
id name description status version tags publishedAt
|
|
97
|
+
entities { id name kind }
|
|
98
|
+
relationships { id name kind }
|
|
99
|
+
createdAt updatedAt workspaceId
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
`,Q=`
|
|
103
|
+
query SemListModels($status: SemModelStatus, $pagination: PaginationInput) {
|
|
104
|
+
semListModels(status: $status, pagination: $pagination) {
|
|
105
|
+
items {
|
|
106
|
+
id name description status version tags publishedAt createdAt updatedAt workspaceId
|
|
107
|
+
}
|
|
108
|
+
pageInfo { cursor hasMore }
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
`,F=`
|
|
112
|
+
mutation SemCreateModel($input: SemCreateModelInput!) {
|
|
113
|
+
semCreateModel(input: $input) {
|
|
114
|
+
id name description status version tags createdAt updatedAt workspaceId
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
`,W=`
|
|
118
|
+
mutation SemUpdateModel($id: ID!, $input: SemUpdateModelInput!) {
|
|
119
|
+
semUpdateModel(id: $id, input: $input) {
|
|
120
|
+
id name description status version tags updatedAt workspaceId
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
`,H=`
|
|
124
|
+
mutation SemArchiveModel($id: ID!) {
|
|
125
|
+
semArchiveModel(id: $id)
|
|
126
|
+
}
|
|
127
|
+
`,j=`
|
|
128
|
+
mutation SemPublishModel($id: ID!) {
|
|
129
|
+
semPublishModel(id: $id) {
|
|
130
|
+
id name status version publishedAt updatedAt workspaceId
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
`,G=`
|
|
134
|
+
query SemEntity($id: ID!) {
|
|
135
|
+
semEntity(id: $id) {
|
|
136
|
+
id modelId dataSourceId name kind physicalName primaryKey sqlDefinition description
|
|
137
|
+
dimensions { id name dataType isPrimary }
|
|
138
|
+
metrics { id name aggregation }
|
|
139
|
+
createdAt updatedAt workspaceId
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
`,Y=`
|
|
143
|
+
query SemListEntities($modelId: ID!) {
|
|
144
|
+
semListEntities(modelId: $modelId) {
|
|
145
|
+
id modelId dataSourceId name kind physicalName primaryKey sqlDefinition
|
|
146
|
+
description createdAt updatedAt workspaceId
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
`,V=`
|
|
150
|
+
mutation SemCreateEntity($input: SemCreateEntityInput!) {
|
|
151
|
+
semCreateEntity(input: $input) {
|
|
152
|
+
id modelId dataSourceId name kind physicalName primaryKey sqlDefinition
|
|
153
|
+
description createdAt updatedAt workspaceId
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
`,B=`
|
|
157
|
+
mutation SemUpdateEntity($id: ID!, $input: SemUpdateEntityInput!) {
|
|
158
|
+
semUpdateEntity(id: $id, input: $input) {
|
|
159
|
+
id modelId dataSourceId name kind physicalName primaryKey sqlDefinition
|
|
160
|
+
description updatedAt workspaceId
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
`,K=`
|
|
164
|
+
mutation SemDeleteEntity($id: ID!) {
|
|
165
|
+
semDeleteEntity(id: $id)
|
|
166
|
+
}
|
|
167
|
+
`,J=`
|
|
168
|
+
mutation SemCreateDimension($input: SemCreateDimensionInput!) {
|
|
169
|
+
semCreateDimension(input: $input) {
|
|
170
|
+
id entityId name dataType expression isPrimary description
|
|
171
|
+
createdAt updatedAt workspaceId
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
`,z=`
|
|
175
|
+
mutation SemCreateMetric($input: SemCreateMetricInput!) {
|
|
176
|
+
semCreateMetric(input: $input) {
|
|
177
|
+
id entityId name aggregation expression format description
|
|
178
|
+
createdAt updatedAt workspaceId
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
`,X=`
|
|
182
|
+
query SemListRelationships($modelId: ID!) {
|
|
183
|
+
semListRelationships(modelId: $modelId) {
|
|
184
|
+
id modelId name kind fromEntityId fromField toEntityId toField description
|
|
185
|
+
createdAt updatedAt workspaceId
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
`,Z=`
|
|
189
|
+
mutation SemCreateRelationship($input: SemCreateRelationshipInput!) {
|
|
190
|
+
semCreateRelationship(input: $input) {
|
|
191
|
+
id modelId name kind fromEntityId fromField toEntityId toField description
|
|
192
|
+
createdAt updatedAt workspaceId
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
`,ee=`
|
|
196
|
+
query SemQuery($id: ID!) {
|
|
197
|
+
semQuery(id: $id) {
|
|
198
|
+
id modelId name description queryText parameters cacheable cacheTtlSeconds
|
|
199
|
+
status tags
|
|
200
|
+
runs { id status startedAt finishedAt rowCount }
|
|
201
|
+
createdAt updatedAt workspaceId
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
`,te=`
|
|
205
|
+
query SemListQueries(
|
|
206
|
+
$modelId: ID
|
|
207
|
+
$status: SemQueryStatus
|
|
208
|
+
$pagination: PaginationInput
|
|
209
|
+
) {
|
|
210
|
+
semListQueries(modelId: $modelId, status: $status, pagination: $pagination) {
|
|
211
|
+
items {
|
|
212
|
+
id modelId name description queryText cacheable cacheTtlSeconds status tags
|
|
213
|
+
createdAt updatedAt workspaceId
|
|
214
|
+
}
|
|
215
|
+
pageInfo { cursor hasMore }
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
`,ne=`
|
|
219
|
+
mutation SemCreateQuery($input: SemCreateQueryInput!) {
|
|
220
|
+
semCreateQuery(input: $input) {
|
|
221
|
+
id modelId name description queryText parameters cacheable cacheTtlSeconds
|
|
222
|
+
status tags createdAt updatedAt workspaceId
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
`,oe=`
|
|
226
|
+
mutation SemUpdateQuery($id: ID!, $input: SemUpdateQueryInput!) {
|
|
227
|
+
semUpdateQuery(id: $id, input: $input) {
|
|
228
|
+
id modelId name description queryText parameters cacheable cacheTtlSeconds
|
|
229
|
+
status tags updatedAt workspaceId
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
`,re=`
|
|
233
|
+
mutation SemArchiveQuery($id: ID!) {
|
|
234
|
+
semArchiveQuery(id: $id)
|
|
235
|
+
}
|
|
236
|
+
`,ie=`
|
|
237
|
+
mutation SemPublishQuery($id: ID!) {
|
|
238
|
+
semPublishQuery(id: $id) {
|
|
239
|
+
id name status updatedAt workspaceId
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
`,se=`
|
|
243
|
+
mutation SemRunQuery($id: ID!) {
|
|
244
|
+
semRunQuery(id: $id) {
|
|
245
|
+
id queryId status startedAt finishedAt durationMs rowCount sourcesTouched
|
|
246
|
+
fromCache errorMessage createdAt updatedAt workspaceId
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
`,ae=`
|
|
250
|
+
query SemListQueryRuns(
|
|
251
|
+
$queryId: ID!
|
|
252
|
+
$status: SemQueryRunStatus
|
|
253
|
+
$pagination: PaginationInput
|
|
254
|
+
) {
|
|
255
|
+
semListQueryRuns(queryId: $queryId, status: $status, pagination: $pagination) {
|
|
256
|
+
items {
|
|
257
|
+
id queryId status startedAt finishedAt durationMs rowCount sourcesTouched
|
|
258
|
+
fromCache errorMessage runById createdAt updatedAt workspaceId
|
|
259
|
+
}
|
|
260
|
+
pageInfo { cursor hasMore }
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
`,ce=`
|
|
264
|
+
query SemListAccessPolicies($entityId: ID, $modelId: ID) {
|
|
265
|
+
semListAccessPolicies(entityId: $entityId, modelId: $modelId) {
|
|
266
|
+
id name description principal effect scope entityId modelId rule isActive
|
|
267
|
+
createdAt updatedAt workspaceId
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
`,de=`
|
|
271
|
+
mutation SemCreateAccessPolicy($input: SemCreateAccessPolicyInput!) {
|
|
272
|
+
semCreateAccessPolicy(input: $input) {
|
|
273
|
+
id name description principal effect scope entityId modelId rule isActive
|
|
274
|
+
createdAt updatedAt workspaceId
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
`,pe=`
|
|
278
|
+
mutation SemSetAccessPolicyActive($id: ID!, $isActive: Boolean!) {
|
|
279
|
+
semSetAccessPolicyActive(id: $id, isActive: $isActive) {
|
|
280
|
+
id name isActive updatedAt workspaceId
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
`,ue=`
|
|
284
|
+
query SemHealth {
|
|
285
|
+
semHealth
|
|
286
|
+
}
|
|
287
|
+
`;function f(r,o){try{return JSON.parse(o)}catch{throw new p(`--${r} must be valid JSON`)}}function l(r){let o=Number.parseInt(r,10);if(Number.isNaN(o))throw new p(`Expected an integer but got "${r}"`);return o}function y(r){return r.split(",").map(o=>o.trim()).filter(o=>o.length>0)}function C(r){let o={};return r.limit!==void 0&&(o.limit=r.limit),r.offset!==void 0&&(o.offset=r.offset),r.cursor&&(o.cursor=r.cursor),Object.keys(o).length?o:void 0}function me(r){let o=r.command("connectors").description("SemanticFed connectors (database/warehouse/API drivers)");o.command("list").description("List connectors").option("--kind <k>","Filter by connector kind (e.g. POSTGRES, BIGQUERY)").option("--limit <n>","Page size",l,50).option("--offset <n>","Offset",l,0).option("--cursor <c>","Opaque pagination cursor").option("-f, --format <format>","Output format").action(async e=>{try{let n=(await c(D,{kind:e.kind?e.kind.toUpperCase():void 0,pagination:C(e)})).semListConnectors.items;s(e,n,{headers:["ID","Name","Kind","Active","Description"],rows:n.map(a=>[m(a.id,12),a.name,a.kind,a.isActive?"yes":"no",m(a.description??"",32)])});}catch(t){i(t);}}),o.command("get").description("Get a connector by id").argument("<id>","Connector ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await c(b,{id:e});if(!n.semConnector)throw new p(`Connector ${e} not found`);s(t,n.semConnector);}catch(n){i(n);}}),o.command("create").description("Create a connector").requiredOption("--name <name>","Connector name").option("--kind <k>","Connector kind (e.g. POSTGRES, BIGQUERY)","POSTGRES").option("--description <s>","Description").option("--capabilities <json>","Capabilities JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={name:e.name,kind:(e.kind??"POSTGRES").toUpperCase()};e.description&&(t.description=e.description),e.capabilities&&(t.capabilities=f("capabilities",e.capabilities));let n=await c(O,{input:t});d(`Connector created: ${n.semCreateConnector.name}`),s(e,n.semCreateConnector);}catch(t){i(t);}}),o.command("update").description("Update a connector").argument("<id>","Connector ID").option("--name <name>","Connector name").option("--kind <k>","Connector kind").option("--description <s>","Description").option("--capabilities <json>","Capabilities JSON").option("--active <bool>","true|false",e=>e==="true").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n={};if(t.name&&(n.name=t.name),t.kind&&(n.kind=t.kind.toUpperCase()),t.description!==void 0&&(n.description=t.description),t.capabilities&&(n.capabilities=f("capabilities",t.capabilities)),t.active!==void 0&&(n.isActive=t.active),!Object.keys(n).length)throw new p("No updates specified");let a=await c(R,{id:e,input:n});d("Connector updated"),s(t,a.semUpdateConnector);}catch(n){i(n);}}),o.command("archive").description("Archive a connector").argument("<id>","Connector ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await c(x,{id:e});if(!n.semArchiveConnector)throw new p(`Connector ${e} could not be archived`);d(`Connector ${e} archived`),s(t,{archived:n.semArchiveConnector});}catch(n){i(n);}});}function le(r){let o=r.command("data-sources").description("SemanticFed data sources (federated query targets)");o.command("list").description("List data sources").option("--connector <id>","Filter by connector ID").option("--status <s>","Filter by data source status").option("--limit <n>","Page size",l,50).option("--offset <n>","Offset",l,0).option("--cursor <c>","Opaque pagination cursor").option("-f, --format <format>","Output format").action(async e=>{try{let n=(await c(M,{connectorId:e.connector,status:e.status?e.status.toUpperCase():void 0,pagination:C(e)})).semListDataSources.items;s(e,n,{headers:["ID","Name","Connector","Status","Pushdown"],rows:n.map(a=>[m(a.id,12),a.name,m(a.connectorId,12),a.status,a.pushdownEnabled?"yes":"no"])});}catch(t){i(t);}}),o.command("get").description("Get a data source by id").argument("<id>","Data source ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await c(v,{id:e});if(!n.semDataSource)throw new p(`Data source ${e} not found`);s(t,n.semDataSource);}catch(n){i(n);}}),o.command("create").description("Create a data source").requiredOption("--connector <id>","Connector ID").requiredOption("--name <name>","Data source name").option("--description <s>","Description").option("--endpoint <json>","Endpoint JSON (host/db/url/\u2026)").option("--secret-ref <ref>","Secret reference (Key Vault key)").option("--pushdown <bool>","Enable predicate pushdown true|false",e=>e==="true").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async e=>{try{let t={connectorId:e.connector,name:e.name};e.description&&(t.description=e.description),e.endpoint&&(t.endpoint=f("endpoint",e.endpoint)),e.secretRef&&(t.secretRef=e.secretRef),e.pushdown!==void 0&&(t.pushdownEnabled=e.pushdown),e.tags&&(t.tags=y(e.tags));let n=await c(_,{input:t});d(`Data source created: ${n.semCreateDataSource.name}`),s(e,n.semCreateDataSource);}catch(t){i(t);}}),o.command("update").description("Update a data source").argument("<id>","Data source ID").option("--name <name>","Data source name").option("--description <s>","Description").option("--endpoint <json>","Endpoint JSON").option("--secret-ref <ref>","Secret reference").option("--pushdown <bool>","Enable predicate pushdown true|false",e=>e==="true").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n={};if(t.name&&(n.name=t.name),t.description!==void 0&&(n.description=t.description),t.endpoint&&(n.endpoint=f("endpoint",t.endpoint)),t.secretRef&&(n.secretRef=t.secretRef),t.pushdown!==void 0&&(n.pushdownEnabled=t.pushdown),t.tags&&(n.tags=y(t.tags)),!Object.keys(n).length)throw new p("No updates specified");let a=await c($,{id:e,input:n});d("Data source updated"),s(t,a.semUpdateDataSource);}catch(n){i(n);}}),o.command("archive").description("Archive a data source").argument("<id>","Data source ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await c(L,{id:e});if(!n.semArchiveDataSource)throw new p(`Data source ${e} could not be archived`);d(`Data source ${e} archived`),s(t,{archived:n.semArchiveDataSource});}catch(n){i(n);}}),o.command("transition").description("Move a data source through its connectivity lifecycle").argument("<id>","Data source ID").requiredOption("--status <s>","DRAFT|CONNECTED|DEGRADED|DISCONNECTED|DISABLED").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await c(N,{id:e,status:t.status.toUpperCase()});d(`Data source status set to ${n.semTransitionDataSource.status}`),s(t,n.semTransitionDataSource);}catch(n){i(n);}}),o.command("connections").description("List connection health probes for a data source").argument("<dataSourceId>","Data source ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await c(q,{dataSourceId:e});s(t,n.semListConnections,{headers:["ID","Health","Latency (ms)","Probed At","Message"],rows:n.semListConnections.map(a=>[m(a.id,12),a.health,a.latencyMs!=null?String(a.latencyMs):"-",a.probedAt,m(a.message??"",32)])});}catch(n){i(n);}}),o.command("record-connection").description("Record a connection health probe for a data source").requiredOption("--data-source <id>","Data source ID").requiredOption("--health <h>","HEALTHY|DEGRADED|UNREACHABLE|UNKNOWN").option("--latency-ms <n>","Latency in milliseconds",l).option("--message <s>","Probe message").option("-f, --format <format>","Output format").action(async e=>{try{let t={dataSourceId:e.dataSource,health:e.health.toUpperCase()};e.latencyMs!==void 0&&(t.latencyMs=e.latencyMs),e.message&&(t.message=e.message);let n=await c(P,{input:t});d(`Connection recorded: ${n.semRecordConnection.health}`),s(e,n.semRecordConnection);}catch(t){i(t);}});}function fe(r){let o=r.command("models").description("SemanticFed semantic models (versioned entity/metric graphs)");o.command("list").description("List semantic models").option("--status <s>","Filter by model status (DRAFT|PUBLISHED|DEPRECATED|ARCHIVED)").option("--limit <n>","Page size",l,50).option("--offset <n>","Offset",l,0).option("--cursor <c>","Opaque pagination cursor").option("-f, --format <format>","Output format").action(async e=>{try{let n=(await c(Q,{status:e.status?e.status.toUpperCase():void 0,pagination:C(e)})).semListModels.items;s(e,n,{headers:["ID","Name","Status","Version","Description"],rows:n.map(a=>[m(a.id,12),a.name,a.status,String(a.version),m(a.description??"",32)])});}catch(t){i(t);}}),o.command("get").description("Get a semantic model by id").argument("<id>","Model ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await c(U,{id:e});if(!n.semModel)throw new p(`Model ${e} not found`);s(t,n.semModel);}catch(n){i(n);}}),o.command("create").description("Create a semantic model").requiredOption("--name <name>","Model name").option("--description <s>","Description").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async e=>{try{let t={name:e.name};e.description&&(t.description=e.description),e.tags&&(t.tags=y(e.tags));let n=await c(F,{input:t});d(`Model created: ${n.semCreateModel.name}`),s(e,n.semCreateModel);}catch(t){i(t);}}),o.command("update").description("Update a semantic model").argument("<id>","Model ID").option("--name <name>","Model name").option("--description <s>","Description").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n={};if(t.name&&(n.name=t.name),t.description!==void 0&&(n.description=t.description),t.tags&&(n.tags=y(t.tags)),!Object.keys(n).length)throw new p("No updates specified");let a=await c(W,{id:e,input:n});d("Model updated"),s(t,a.semUpdateModel);}catch(n){i(n);}}),o.command("archive").description("Archive a semantic model").argument("<id>","Model ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await c(H,{id:e});if(!n.semArchiveModel)throw new p(`Model ${e} could not be archived`);d(`Model ${e} archived`),s(t,{archived:n.semArchiveModel});}catch(n){i(n);}}),o.command("publish").description("Publish a draft model (bumps version, flips status to PUBLISHED)").argument("<id>","Model ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await c(j,{id:e});d(`Model published (v${n.semPublishModel.version})`),s(t,n.semPublishModel);}catch(n){i(n);}});}function ge(r){let o=r.command("entities").description("SemanticFed entities (tables/views/derived datasets in a model)");o.command("list").description("List entities in a model").requiredOption("--model <id>","Model ID").option("-f, --format <format>","Output format").action(async e=>{try{let t=await c(Y,{modelId:e.model});s(e,t.semListEntities,{headers:["ID","Name","Kind","Physical Name","Primary Key"],rows:t.semListEntities.map(n=>[m(n.id,12),n.name,n.kind,n.physicalName??"-",n.primaryKey??"-"])});}catch(t){i(t);}}),o.command("get").description("Get an entity by id").argument("<id>","Entity ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await c(G,{id:e});if(!n.semEntity)throw new p(`Entity ${e} not found`);s(t,n.semEntity);}catch(n){i(n);}}),o.command("create").description("Create an entity").requiredOption("--model <id>","Model ID").requiredOption("--name <name>","Entity name").option("--kind <k>","TABLE|VIEW|DERIVED|EXTERNAL","TABLE").option("--data-source <id>","Backing data source ID").option("--physical-name <n>","Physical (DB) name").option("--primary-key <k>","Primary key column").option("--sql-definition <sql>","SQL definition (for derived entities)").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async e=>{try{let t={modelId:e.model,name:e.name,kind:(e.kind??"TABLE").toUpperCase()};e.dataSource&&(t.dataSourceId=e.dataSource),e.physicalName&&(t.physicalName=e.physicalName),e.primaryKey&&(t.primaryKey=e.primaryKey),e.sqlDefinition&&(t.sqlDefinition=e.sqlDefinition),e.description&&(t.description=e.description);let n=await c(V,{input:t});d(`Entity created: ${n.semCreateEntity.name}`),s(e,n.semCreateEntity);}catch(t){i(t);}}),o.command("update").description("Update an entity").argument("<id>","Entity ID").option("--name <name>","Entity name").option("--kind <k>","TABLE|VIEW|DERIVED|EXTERNAL").option("--data-source <id>","Backing data source ID").option("--physical-name <n>","Physical (DB) name").option("--primary-key <k>","Primary key column").option("--sql-definition <sql>","SQL definition").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n={};if(t.name&&(n.name=t.name),t.kind&&(n.kind=t.kind.toUpperCase()),t.dataSource&&(n.dataSourceId=t.dataSource),t.physicalName&&(n.physicalName=t.physicalName),t.primaryKey&&(n.primaryKey=t.primaryKey),t.sqlDefinition&&(n.sqlDefinition=t.sqlDefinition),t.description!==void 0&&(n.description=t.description),!Object.keys(n).length)throw new p("No updates specified");let a=await c(B,{id:e,input:n});d("Entity updated"),s(t,a.semUpdateEntity);}catch(n){i(n);}}),o.command("delete").description("Delete an entity").argument("<id>","Entity ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await c(K,{id:e});if(!n.semDeleteEntity)throw new p(`Entity ${e} could not be deleted`);d(`Entity ${e} deleted`),s(t,{deleted:n.semDeleteEntity});}catch(n){i(n);}});}function ye(r){r.command("dimensions").description("SemanticFed dimensions (queryable attributes on an entity)").command("create").description("Create a dimension").requiredOption("--entity <id>","Entity ID").requiredOption("--name <name>","Dimension name").option("--data-type <t>","STRING|INTEGER|DECIMAL|BOOLEAN|DATE|TIMESTAMP|JSON|GEO","STRING").option("--expression <e>","SQL expression").option("--primary","Mark as primary dimension").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async e=>{try{let t={entityId:e.entity,name:e.name,dataType:(e.dataType??"STRING").toUpperCase()};e.expression&&(t.expression=e.expression),e.primary&&(t.isPrimary=!0),e.description&&(t.description=e.description);let n=await c(J,{input:t});d(`Dimension created: ${n.semCreateDimension.name}`),s(e,n.semCreateDimension);}catch(t){i(t);}});}function Ce(r){r.command("metrics").description("SemanticFed metrics (aggregated measures on an entity)").command("create").description("Create a metric").requiredOption("--entity <id>","Entity ID").requiredOption("--name <name>","Metric name").option("--aggregation <a>","SUM|AVG|MIN|MAX|COUNT|COUNT_DISTINCT|MEDIAN|CUSTOM","SUM").option("--expression <e>","SQL expression").option("--format-spec <f>","Display format (e.g. currency, percent)").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async e=>{try{let t={entityId:e.entity,name:e.name,aggregation:(e.aggregation??"SUM").toUpperCase()};e.expression&&(t.expression=e.expression),e.formatSpec&&(t.format=e.formatSpec),e.description&&(t.description=e.description);let n=await c(z,{input:t});d(`Metric created: ${n.semCreateMetric.name}`),s(e,n.semCreateMetric);}catch(t){i(t);}});}function he(r){let o=r.command("relationships").description("SemanticFed relationships (joins between entities in a model)");o.command("list").description("List relationships in a model").requiredOption("--model <id>","Model ID").option("-f, --format <format>","Output format").action(async e=>{try{let t=await c(X,{modelId:e.model});s(e,t.semListRelationships,{headers:["ID","Name","Kind","From","To"],rows:t.semListRelationships.map(n=>[m(n.id,12),n.name,n.kind,`${m(n.fromEntityId,8)}.${n.fromField}`,`${m(n.toEntityId,8)}.${n.toField}`])});}catch(t){i(t);}}),o.command("create").description("Create a relationship").requiredOption("--model <id>","Model ID").requiredOption("--name <name>","Relationship name").requiredOption("--from-entity <id>","From entity ID").requiredOption("--from-field <f>","From field").requiredOption("--to-entity <id>","To entity ID").requiredOption("--to-field <f>","To field").option("--kind <k>","ONE_TO_ONE|ONE_TO_MANY|MANY_TO_ONE|MANY_TO_MANY","MANY_TO_ONE").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async e=>{try{let t={modelId:e.model,name:e.name,fromEntityId:e.fromEntity,fromField:e.fromField,toEntityId:e.toEntity,toField:e.toField,kind:(e.kind??"MANY_TO_ONE").toUpperCase()};e.description&&(t.description=e.description);let n=await c(Z,{input:t});d(`Relationship created: ${n.semCreateRelationship.name}`),s(e,n.semCreateRelationship);}catch(t){i(t);}});}function Ee(r){let o=r.command("queries").description("SemanticFed saved federated queries & run history");o.command("list").description("List saved queries").option("--model <id>","Filter by model ID").option("--status <s>","Filter by query status (DRAFT|PUBLISHED|ARCHIVED)").option("--limit <n>","Page size",l,50).option("--offset <n>","Offset",l,0).option("--cursor <c>","Opaque pagination cursor").option("-f, --format <format>","Output format").action(async e=>{try{let n=(await c(te,{modelId:e.model,status:e.status?e.status.toUpperCase():void 0,pagination:C(e)})).semListQueries.items;s(e,n,{headers:["ID","Name","Status","Model","Cacheable"],rows:n.map(a=>[m(a.id,12),a.name,a.status,a.modelId?m(a.modelId,12):"-",a.cacheable?"yes":"no"])});}catch(t){i(t);}}),o.command("get").description("Get a saved query by id").argument("<id>","Query ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await c(ee,{id:e});if(!n.semQuery)throw new p(`Query ${e} not found`);s(t,n.semQuery);}catch(n){i(n);}}),o.command("create").description("Create a saved query").requiredOption("--name <name>","Query name").requiredOption("--query-text <sql>","Federated query text").option("--model <id>","Associated model ID").option("--description <s>","Description").option("--cacheable <bool>","true|false",e=>e==="true").option("--cache-ttl <n>","Cache TTL seconds",l).option("--parameters <json>","Parameters JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async e=>{try{let t={name:e.name,queryText:e.queryText};e.model&&(t.modelId=e.model),e.description&&(t.description=e.description),e.cacheable!==void 0&&(t.cacheable=e.cacheable),e.cacheTtl!==void 0&&(t.cacheTtlSeconds=e.cacheTtl),e.parameters&&(t.parameters=f("parameters",e.parameters)),e.tags&&(t.tags=y(e.tags));let n=await c(ne,{input:t});d(`Query created: ${n.semCreateQuery.name}`),s(e,n.semCreateQuery);}catch(t){i(t);}}),o.command("update").description("Update a saved query").argument("<id>","Query ID").option("--name <name>","Query name").option("--query-text <sql>","Federated query text").option("--model <id>","Associated model ID").option("--description <s>","Description").option("--cacheable <bool>","true|false",e=>e==="true").option("--cache-ttl <n>","Cache TTL seconds",l).option("--parameters <json>","Parameters JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n={};if(t.name&&(n.name=t.name),t.queryText&&(n.queryText=t.queryText),t.model&&(n.modelId=t.model),t.description!==void 0&&(n.description=t.description),t.cacheable!==void 0&&(n.cacheable=t.cacheable),t.cacheTtl!==void 0&&(n.cacheTtlSeconds=t.cacheTtl),t.parameters&&(n.parameters=f("parameters",t.parameters)),t.tags&&(n.tags=y(t.tags)),!Object.keys(n).length)throw new p("No updates specified");let a=await c(oe,{id:e,input:n});d("Query updated"),s(t,a.semUpdateQuery);}catch(n){i(n);}}),o.command("archive").description("Archive a saved query").argument("<id>","Query ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await c(re,{id:e});if(!n.semArchiveQuery)throw new p(`Query ${e} could not be archived`);d(`Query ${e} archived`),s(t,{archived:n.semArchiveQuery});}catch(n){i(n);}}),o.command("publish").description("Publish a draft query").argument("<id>","Query ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await c(ie,{id:e});d(`Query published: ${n.semPublishQuery.name}`),s(t,n.semPublishQuery);}catch(n){i(n);}}),o.command("run").description("Enqueue a federated execution of a saved query").argument("<id>","Query ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await c(se,{id:e});d(`Query run enqueued: ${n.semRunQuery.id} (${n.semRunQuery.status})`),s(t,n.semRunQuery);}catch(n){i(n);}}),o.command("runs").description("List run history for a saved query").requiredOption("--query <id>","Query ID").option("--status <s>","Filter by run status").option("--limit <n>","Page size",l,50).option("--offset <n>","Offset",l,0).option("--cursor <c>","Opaque pagination cursor").option("-f, --format <format>","Output format").action(async e=>{try{let n=(await c(ae,{queryId:e.query,status:e.status?e.status.toUpperCase():void 0,pagination:C(e)})).semListQueryRuns.items;s(e,n,{headers:["ID","Status","Rows","Duration (ms)","Cached"],rows:n.map(a=>[m(a.id,12),a.status,a.rowCount!=null?String(a.rowCount):"-",a.durationMs!=null?String(a.durationMs):"-",a.fromCache?"yes":"no"])});}catch(t){i(t);}});}function Ie(r){let o=r.command("access-policies").description("SemanticFed access policies (row/column/entity governance)");o.command("list").description("List access policies").option("--entity <id>","Filter by entity ID").option("--model <id>","Filter by model ID").option("-f, --format <format>","Output format").action(async e=>{try{let t=await c(ce,{entityId:e.entity,modelId:e.model});s(e,t.semListAccessPolicies,{headers:["ID","Name","Principal","Effect","Scope","Active"],rows:t.semListAccessPolicies.map(n=>[m(n.id,12),n.name,n.principal,n.effect,n.scope,n.isActive?"yes":"no"])});}catch(t){i(t);}}),o.command("create").description("Create an access policy").requiredOption("--name <name>","Policy name").requiredOption("--principal <p>","Principal (user/role/group expression)").option("--effect <e>","ALLOW|DENY","ALLOW").option("--scope <s>","ROW|COLUMN|ENTITY","ROW").option("--entity <id>","Scoped entity ID").option("--model <id>","Scoped model ID").option("--rule <json>","Rule JSON (predicate / column list)").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async e=>{try{let t={name:e.name,principal:e.principal,effect:(e.effect??"ALLOW").toUpperCase(),scope:(e.scope??"ROW").toUpperCase()};e.entity&&(t.entityId=e.entity),e.model&&(t.modelId=e.model),e.rule&&(t.rule=f("rule",e.rule)),e.description&&(t.description=e.description);let n=await c(de,{input:t});d(`Access policy created: ${n.semCreateAccessPolicy.name}`),s(e,n.semCreateAccessPolicy);}catch(t){i(t);}}),o.command("set-active").description("Activate or deactivate an access policy").argument("<id>","Policy ID").requiredOption("--active <bool>","true|false",e=>e==="true").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await c(pe,{id:e,isActive:t.active});d(`Access policy ${e} ${n.semSetAccessPolicyActive.isActive?"activated":"deactivated"}`),s(t,n.semSetAccessPolicyActive);}catch(n){i(n);}});}function Se(r){r.command("health").description("SemanticFed subgraph liveness/identity probe (public)").option("-f, --format <format>","Output format").action(async o=>{try{let e=await w(ue);d(e.semHealth),s(o,{health:e.semHealth});}catch(e){i(e);}});}var $e={id:"semanticfed",version:"1.0.0",displayName:"SemanticFed",dependsOn:["auth","workspaces"],register(r,o){T(o);let e=r.command("semanticfed").description("SemanticFed data-federation & governed semantic layer");me(e),le(e),fe(e),ge(e),ye(e),Ce(e),he(e),Ee(e),Ie(e),Se(e);}},Mn=$e;module.exports=Mn;
|