@ganakailabs/cloudeval-cli 0.22.0 → 0.24.0

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/README.md CHANGED
@@ -50,6 +50,8 @@ The shell installer can detect Codex, Claude Desktop, Cursor, and VS Code,
50
50
  skip clients where CloudEval MCP is already configured, and offer setup only
51
51
  for missing clients that can be configured automatically. Manual-only clients
52
52
  are summarized with a follow-up command instead of forcing another prompt.
53
+ It also asks whether to share limited CLI telemetry, defaulting to yes; decline
54
+ or set `CLOUDEVAL_TELEMETRY=0` to write `telemetry.enabled=false`.
53
55
  When a CLI update exposes new MCP capabilities, restart or reload your MCP
54
56
  client when you are ready; CloudEval never restarts those apps automatically.
55
57
 
@@ -74,6 +76,27 @@ cloudeval mcp serve --toolset readonly
74
76
  cloudeval capabilities --format json
75
77
  ```
76
78
 
79
+ ## Telemetry
80
+
81
+ Telemetry is default-on and uses curated Azure Application Insights custom
82
+ events only. CloudEval records command family, success, duration, safe option
83
+ enums, CLI/runtime versions, OS major version, architecture, install source,
84
+ update/install outcomes, MCP tool names, and TUI metadata. After login, events
85
+ may include signed-in email and first/last/full name.
86
+
87
+ Telemetry does not include prompts, command output, tokens, local paths, project
88
+ or resource IDs, account/session/tenant IDs, stack traces, raw error messages,
89
+ or cloud resource names.
90
+
91
+ ```bash
92
+ cloudeval config set telemetry.enabled false
93
+ cloudeval config get telemetry.enabled --format json
94
+ cloudeval config set telemetry.enabled true
95
+ cloudeval config unset telemetry.enabled
96
+ ```
97
+
98
+ For one run, use `CLOUDEVAL_TELEMETRY=0` or `CLOUDEVAL_TELEMETRY=1`.
99
+
77
100
  ## Uninstall
78
101
 
79
102
  To remove local installer-owned artifacts while keeping CloudEval config,
@@ -14,19 +14,104 @@ This notice is not a substitute for legal review before public or enterprise dis
14
14
  | --- | ---: |
15
15
  | (MIT OR CC0-1.0) | 2 |
16
16
  | 0BSD | 1 |
17
- | BSD-3-Clause | 1 |
18
- | ISC | 6 |
19
- | MIT | 90 |
17
+ | Apache-2.0 | 50 |
18
+ | BSD-3-Clause | 14 |
19
+ | ISC | 12 |
20
+ | MIT | 172 |
20
21
 
21
22
  ## Production Packages
22
23
 
23
24
  | Package | Version | License | Author | Source |
24
25
  | --- | --- | --- | --- | --- |
25
26
  | @alcalzone/ansi-tokenize | 0.1.3 | MIT | AlCalzone | NOASSERTION |
27
+ | @azure-rest/core-client | 2.6.0 | MIT | Microsoft Corporation | https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/core/core-client-rest/ |
28
+ | @azure/abort-controller | 2.1.2 | MIT | Microsoft Corporation | https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/core/abort-controller/README.md |
29
+ | @azure/core-auth | 1.10.1 | MIT | Microsoft Corporation | https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/core/core-auth/README.md |
30
+ | @azure/core-client | 1.10.1 | MIT | Microsoft Corporation | https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/core/core-client/ |
31
+ | @azure/core-rest-pipeline | 1.23.0 | MIT | Microsoft Corporation | https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/core/core-rest-pipeline/ |
32
+ | @azure/core-tracing | 1.3.1 | MIT | Microsoft Corporation | https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/core/core-tracing/README.md |
33
+ | @azure/core-util | 1.13.1 | MIT | Microsoft Corporation | https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/core/core-util/ |
34
+ | @azure/functions | 3.5.1 | MIT | Microsoft | https://github.com/Azure/azure-functions-nodejs-library |
35
+ | @azure/identity | 4.13.1 | MIT | Microsoft Corporation | https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/identity/identity/README.md |
36
+ | @azure/logger | 1.3.0 | MIT | Microsoft Corporation | https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/core/logger/README.md |
37
+ | @azure/monitor-opentelemetry-exporter | 1.0.0-beta.41 | MIT | Microsoft Corporation | https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/monitor/monitor-opentelemetry-exporter/README.md |
38
+ | @azure/monitor-opentelemetry | 1.18.0 | MIT | Microsoft Corporation | https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/monitor/monitor-opentelemetry/README.md |
39
+ | @azure/msal-browser | 5.11.0 | MIT | Microsoft | https://github.com/AzureAD/microsoft-authentication-library-for-js#readme |
40
+ | @azure/msal-common | 16.6.2 | MIT | Microsoft | https://github.com/AzureAD/microsoft-authentication-library-for-js#readme |
41
+ | @azure/msal-node | 5.2.2 | MIT | Microsoft | https://github.com/AzureAD/microsoft-authentication-library-for-js#readme |
42
+ | @azure/opentelemetry-instrumentation-azure-sdk | 1.0.0 | MIT | Microsoft Corporation | https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/instrumentation/opentelemetry-instrumentation-azure-sdk/README.md |
26
43
  | @colors/colors | 1.5.0 | MIT | DABH | https://github.com/DABH/colors.js |
44
+ | @colors/colors | 1.6.0 | MIT | DABH | https://github.com/DABH/colors.js |
45
+ | @grpc/grpc-js | 1.14.4 | Apache-2.0 | Google Inc. | https://grpc.io/ |
46
+ | @grpc/proto-loader | 0.8.1 | Apache-2.0 | Google Inc. | https://grpc.io/ |
47
+ | @js-sdsl/ordered-map | 4.4.2 | MIT | ZLY201 | https://js-sdsl.org |
48
+ | @microsoft/applicationinsights-web-snippet | 1.2.3 | MIT | NOASSERTION | https://github.com/microsoft/ApplicationInsights-JS/tree/main#readme |
49
+ | @opentelemetry/api-logs | 0.211.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/api-logs |
50
+ | @opentelemetry/api-logs | 0.217.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/api-logs |
51
+ | @opentelemetry/api | 1.9.1 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/api |
52
+ | @opentelemetry/configuration | 0.217.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/configuration |
53
+ | @opentelemetry/context-async-hooks | 2.7.1 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-context-async-hooks |
54
+ | @opentelemetry/core | 2.7.1 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core |
55
+ | @opentelemetry/exporter-logs-otlp-grpc | 0.217.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/exporter-logs-otlp-grpc |
56
+ | @opentelemetry/exporter-logs-otlp-http | 0.217.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/exporter-logs-otlp-http |
57
+ | @opentelemetry/exporter-logs-otlp-proto | 0.217.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/exporter-logs-otlp-proto |
58
+ | @opentelemetry/exporter-metrics-otlp-grpc | 0.217.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc |
59
+ | @opentelemetry/exporter-metrics-otlp-http | 0.217.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-metrics-otlp-http |
60
+ | @opentelemetry/exporter-metrics-otlp-proto | 0.217.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-metrics-otlp-proto |
61
+ | @opentelemetry/exporter-prometheus | 0.217.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-prometheus |
62
+ | @opentelemetry/exporter-trace-otlp-grpc | 0.217.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/exporter-trace-otlp-grpc |
63
+ | @opentelemetry/exporter-trace-otlp-http | 0.217.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/exporter-trace-otlp-http |
64
+ | @opentelemetry/exporter-trace-otlp-proto | 0.217.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/exporter-trace-otlp-proto |
65
+ | @opentelemetry/exporter-zipkin | 2.7.1 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-exporter-zipkin |
66
+ | @opentelemetry/instrumentation-bunyan | 0.62.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-bunyan#readme |
67
+ | @opentelemetry/instrumentation-http | 0.217.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-http |
68
+ | @opentelemetry/instrumentation-mongodb | 0.70.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-mongodb#readme |
69
+ | @opentelemetry/instrumentation-mysql | 0.63.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-mysql#readme |
70
+ | @opentelemetry/instrumentation-pg | 0.69.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-pg#readme |
71
+ | @opentelemetry/instrumentation-redis | 0.65.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-redis#readme |
72
+ | @opentelemetry/instrumentation-winston | 0.61.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-winston#readme |
73
+ | @opentelemetry/instrumentation | 0.211.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation |
74
+ | @opentelemetry/instrumentation | 0.217.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation |
75
+ | @opentelemetry/otlp-exporter-base | 0.217.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/otlp-exporter-base |
76
+ | @opentelemetry/otlp-grpc-exporter-base | 0.217.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/otlp-grpc-exporter-base |
77
+ | @opentelemetry/otlp-transformer | 0.217.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/otlp-transformer |
78
+ | @opentelemetry/propagator-b3 | 2.7.1 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-propagator-b3 |
79
+ | @opentelemetry/propagator-jaeger | 2.7.1 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-propagator-jaeger |
80
+ | @opentelemetry/redis-common | 0.38.3 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/redis-common#readme |
81
+ | @opentelemetry/resource-detector-azure | 0.25.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/resource-detector-azure#readme |
82
+ | @opentelemetry/resources | 2.7.1 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources |
83
+ | @opentelemetry/sdk-logs | 0.217.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/sdk-logs |
84
+ | @opentelemetry/sdk-metrics | 2.7.1 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/sdk-metrics |
85
+ | @opentelemetry/sdk-node | 0.217.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-sdk-node |
86
+ | @opentelemetry/sdk-trace-base | 2.7.1 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base |
87
+ | @opentelemetry/sdk-trace-node | 2.7.1 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-node |
88
+ | @opentelemetry/sdk-trace-web | 2.7.1 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-web |
89
+ | @opentelemetry/semantic-conventions | 1.41.1 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions |
90
+ | @opentelemetry/sql-common | 0.41.2 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/sql-common#readme |
91
+ | @opentelemetry/winston-transport | 0.27.0 | Apache-2.0 | OpenTelemetry Authors | https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/winston-transport#readme |
92
+ | @protobufjs/aspromise | 1.1.2 | BSD-3-Clause | Daniel Wirtz | https://github.com/dcodeIO/protobuf.js#readme |
93
+ | @protobufjs/base64 | 1.1.2 | BSD-3-Clause | Daniel Wirtz | https://github.com/dcodeIO/protobuf.js#readme |
94
+ | @protobufjs/codegen | 2.0.5 | BSD-3-Clause | Daniel Wirtz | https://github.com/dcodeIO/protobuf.js#readme |
95
+ | @protobufjs/eventemitter | 1.1.1 | BSD-3-Clause | Daniel Wirtz | https://github.com/dcodeIO/protobuf.js#readme |
96
+ | @protobufjs/fetch | 1.1.1 | BSD-3-Clause | Daniel Wirtz | https://github.com/dcodeIO/protobuf.js#readme |
97
+ | @protobufjs/float | 1.0.2 | BSD-3-Clause | Daniel Wirtz | https://github.com/dcodeIO/protobuf.js#readme |
98
+ | @protobufjs/inquire | 1.1.2 | BSD-3-Clause | Daniel Wirtz | https://github.com/dcodeIO/protobuf.js#readme |
99
+ | @protobufjs/path | 1.1.2 | BSD-3-Clause | Daniel Wirtz | https://github.com/dcodeIO/protobuf.js#readme |
100
+ | @protobufjs/pool | 1.1.0 | BSD-3-Clause | Daniel Wirtz | https://github.com/dcodeIO/protobuf.js#readme |
101
+ | @protobufjs/utf8 | 1.1.1 | BSD-3-Clause | Daniel Wirtz | https://github.com/dcodeIO/protobuf.js#readme |
27
102
  | @sindresorhus/is | 4.6.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/is#readme |
103
+ | @types/bunyan | 1.8.11 | MIT | NOASSERTION | https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/bunyan |
104
+ | @types/mysql | 2.15.27 | MIT | NOASSERTION | https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/mysql |
105
+ | @types/node | 20.19.27 | MIT | NOASSERTION | https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node |
106
+ | @types/pg-pool | 2.0.7 | MIT | NOASSERTION | https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/pg-pool |
107
+ | @types/pg | 8.15.6 | MIT | NOASSERTION | https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/pg |
28
108
  | @types/prop-types | 15.7.15 | MIT | NOASSERTION | https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/prop-types |
29
109
  | @types/react | 18.3.27 | MIT | NOASSERTION | https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react |
110
+ | @types/triple-beam | 1.3.5 | MIT | NOASSERTION | https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/triple-beam |
111
+ | @typespec/ts-http-runtime | 0.3.5 | MIT | Microsoft Corporation | https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/core/ts-http-runtime/ |
112
+ | acorn-import-attributes | 1.9.5 | MIT | Sven Sauleau | https://github.com/xtuc/acorn-import-attributes#readme |
113
+ | acorn | 8.15.0 | MIT | NOASSERTION | https://github.com/acornjs/acorn |
114
+ | agent-base | 7.1.4 | MIT | Nathan Rajlich | https://github.com/TooTallNate/proxy-agents#readme |
30
115
  | ansi-escapes | 6.2.1 | MIT | Sindre Sorhus | https://github.com/sindresorhus/ansi-escapes#readme |
31
116
  | ansi-escapes | 7.2.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/ansi-escapes#readme |
32
117
  | ansi-regex | 5.0.1 | MIT | Sindre Sorhus | https://github.com/chalk/ansi-regex#readme |
@@ -34,12 +119,16 @@ This notice is not a substitute for legal review before public or enterprise dis
34
119
  | ansi-styles | 4.3.0 | MIT | Sindre Sorhus | https://github.com/chalk/ansi-styles#readme |
35
120
  | ansi-styles | 6.2.3 | MIT | Sindre Sorhus | https://github.com/chalk/ansi-styles#readme |
36
121
  | any-promise | 1.3.0 | MIT | Kevin Beaty | http://github.com/kevinbeaty/any-promise |
122
+ | applicationinsights | 3.15.0 | MIT | Microsoft Application Insights Team | https://github.com/microsoft/ApplicationInsights-node.js#readme |
37
123
  | asciichart | 1.5.25 | MIT | Igor Kroitor | https://github.com/kroitor/asciichart |
38
124
  | auto-bind | 5.0.1 | MIT | Sindre Sorhus | https://github.com/sindresorhus/auto-bind#readme |
125
+ | buffer-equal-constant-time | 1.0.1 | BSD-3-Clause | GoInstant Inc., a salesforce.com company | https://github.com/goinstant/buffer-equal-constant-time#readme |
126
+ | bundle-name | 4.1.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/bundle-name#readme |
39
127
  | chalk | 4.1.2 | MIT | NOASSERTION | https://github.com/chalk/chalk#readme |
40
128
  | chalk | 5.6.2 | MIT | NOASSERTION | https://github.com/chalk/chalk#readme |
41
129
  | char-regex | 1.0.2 | MIT | Richie Bendall | https://github.com/Richienb/char-regex#readme |
42
130
  | ci-info | 3.9.0 | MIT | Thomas Watson Steen | https://github.com/watson/ci-info |
131
+ | cjs-module-lexer | 2.2.0 | MIT | Guy Bedford | https://github.com/nodejs/cjs-module-lexer#readme |
43
132
  | cli-boxes | 3.0.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/cli-boxes#readme |
44
133
  | cli-cursor | 4.0.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/cli-cursor#readme |
45
134
  | cli-highlight | 2.1.11 | ISC | Felix Becker | https://github.com/felixfbecker/cli-highlight#readme |
@@ -47,53 +136,105 @@ This notice is not a substitute for legal review before public or enterprise dis
47
136
  | cli-table3 | 0.6.5 | MIT | James Talmage | https://github.com/cli-table/cli-table3 |
48
137
  | cli-truncate | 3.1.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/cli-truncate#readme |
49
138
  | cliui | 7.0.4 | ISC | Ben Coe | https://github.com/yargs/cliui#readme |
139
+ | cliui | 8.0.1 | ISC | Ben Coe | https://github.com/yargs/cliui#readme |
50
140
  | code-excerpt | 4.0.0 | MIT | vdemedes | https://github.com/vadimdemedes/code-excerpt#readme |
51
141
  | color-convert | 2.0.1 | MIT | Heather Arthur | https://github.com/Qix-/color-convert#readme |
52
142
  | color-name | 1.1.4 | MIT | DY | https://github.com/colorjs/color-name |
53
143
  | commander | 12.1.0 | MIT | TJ Holowaychuk | https://github.com/tj/commander.js#readme |
54
144
  | convert-to-spaces | 2.0.1 | MIT | Vadim Demedes | https://github.com/vadimdemedes/convert-to-spaces#readme |
55
145
  | csstype | 3.2.3 | MIT | Fredrik Nicol | https://github.com/frenic/csstype#readme |
146
+ | debug | 4.4.3 | MIT | Josh Junon | https://github.com/debug-js/debug#readme |
147
+ | default-browser-id | 5.0.1 | MIT | Sindre Sorhus | https://github.com/sindresorhus/default-browser-id#readme |
148
+ | default-browser | 5.5.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/default-browser#readme |
149
+ | define-lazy-prop | 3.0.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/define-lazy-prop#readme |
150
+ | diagnostic-channel-publishers | 1.0.8 | MIT | NOASSERTION | https://github.com/Microsoft/node-diagnostic-channel |
151
+ | diagnostic-channel | 1.1.1 | MIT | NOASSERTION | https://github.com/Microsoft/node-diagnostic-channel |
56
152
  | eastasianwidth | 0.2.0 | MIT | Masaki Komagata | https://github.com/komagata/eastasianwidth#readme |
153
+ | ecdsa-sig-formatter | 1.0.11 | Apache-2.0 | D2L Corporation | https://github.com/Brightspace/node-ecdsa-sig-formatter#readme |
57
154
  | emoji-regex | 8.0.0 | MIT | Mathias Bynens | https://mths.be/emoji-regex |
58
155
  | emoji-regex | 9.2.2 | MIT | Mathias Bynens | https://mths.be/emoji-regex |
59
156
  | emojilib | 2.4.0 | MIT | Mu-An Chiou | https://github.com/muan/emojilib#readme |
60
157
  | environment | 1.1.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/environment#readme |
61
158
  | escalade | 3.2.0 | MIT | Luke Edwards | https://github.com/lukeed/escalade#readme |
62
159
  | escape-string-regexp | 2.0.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/escape-string-regexp#readme |
160
+ | fecha | 4.2.3 | MIT | Taylor Hakes | https://github.com/taylorhakes/fecha |
161
+ | forwarded-parse | 2.1.2 | MIT | Luigi Pinca | https://github.com/lpinca/forwarded-parse |
63
162
  | get-caller-file | 2.0.5 | ISC | Stefan Penner | https://github.com/stefanpenner/get-caller-file#readme |
64
163
  | has-flag | 4.0.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/has-flag#readme |
65
164
  | highlight.js | 10.7.3 | BSD-3-Clause | Ivan Sagalaev | https://highlightjs.org/ |
165
+ | http-proxy-agent | 7.0.2 | MIT | Nathan Rajlich | https://github.com/TooTallNate/proxy-agents#readme |
166
+ | https-proxy-agent | 7.0.6 | MIT | Nathan Rajlich | https://github.com/TooTallNate/proxy-agents#readme |
167
+ | iconv-lite | 0.6.3 | MIT | Alexander Shtuchkin | https://github.com/ashtuchkin/iconv-lite |
168
+ | import-in-the-middle | 2.0.6 | Apache-2.0 | Bryan English | https://github.com/nodejs/import-in-the-middle#readme |
169
+ | import-in-the-middle | 3.0.1 | Apache-2.0 | Bryan English | https://github.com/nodejs/import-in-the-middle#readme |
66
170
  | indent-string | 5.0.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/indent-string#readme |
171
+ | inherits | 2.0.4 | ISC | NOASSERTION | https://github.com/isaacs/inherits#readme |
67
172
  | ink-scroll-view | 0.3.6 | MIT | ByteLand Technology | https://www.byteland.app/opensource/ink-scroll-view |
68
173
  | ink-spinner | 4.0.3 | MIT | Vadim Demedes | https://github.com/vadimdemedes/ink-spinner#readme |
69
174
  | ink-syntax-highlight | 2.0.2 | MIT | Vitalii Sashyn | https://github.com/vsashyn/ink-syntax-highlight#readme |
70
175
  | ink-text-input | 5.0.1 | MIT | Vadim Demedes | https://github.com/vadimdemedes/ink-text-input#readme |
71
176
  | ink | 4.4.1 | MIT | Vadim Demedes | https://github.com/vadimdemedes/ink#readme |
72
177
  | is-ci | 3.0.1 | MIT | Thomas Watson Steen | https://github.com/watson/is-ci |
178
+ | is-docker | 3.0.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/is-docker#readme |
73
179
  | is-fullwidth-code-point | 3.0.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/is-fullwidth-code-point#readme |
74
180
  | is-fullwidth-code-point | 4.0.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/is-fullwidth-code-point#readme |
181
+ | is-inside-container | 1.0.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/is-inside-container#readme |
75
182
  | is-lower-case | 2.0.2 | MIT | Blake Embrey | https://github.com/blakeembrey/change-case/tree/master/packages/is-lower-case#readme |
76
183
  | is-upper-case | 2.0.2 | MIT | Blake Embrey | https://github.com/blakeembrey/change-case/tree/master/packages/is-upper-case#readme |
184
+ | is-wsl | 3.1.1 | MIT | Sindre Sorhus | https://github.com/sindresorhus/is-wsl#readme |
77
185
  | js-tokens | 4.0.0 | MIT | Simon Lydell | https://github.com/lydell/js-tokens#readme |
186
+ | jsonwebtoken | 9.0.3 | MIT | auth0 | https://github.com/auth0/node-jsonwebtoken#readme |
187
+ | jwa | 2.0.1 | MIT | Brian J. Brennan | https://github.com/brianloveswords/node-jwa#readme |
188
+ | jws | 4.0.1 | MIT | Brian J Brennan | https://github.com/brianloveswords/node-jws#readme |
189
+ | lodash.camelcase | 4.3.0 | MIT | John-David Dalton | https://lodash.com/ |
190
+ | lodash.includes | 4.3.0 | MIT | John-David Dalton | https://lodash.com/ |
191
+ | lodash.isboolean | 3.0.3 | MIT | John-David Dalton | https://lodash.com/ |
192
+ | lodash.isinteger | 4.0.4 | MIT | John-David Dalton | https://lodash.com/ |
193
+ | lodash.isnumber | 3.0.3 | MIT | John-David Dalton | https://lodash.com/ |
194
+ | lodash.isplainobject | 4.0.6 | MIT | John-David Dalton | https://lodash.com/ |
195
+ | lodash.isstring | 4.0.1 | MIT | John-David Dalton | https://lodash.com/ |
196
+ | lodash.once | 4.1.1 | MIT | John-David Dalton | https://lodash.com/ |
78
197
  | lodash | 4.18.1 | MIT | John-David Dalton | https://lodash.com/ |
198
+ | logform | 2.7.0 | MIT | Charlie Robbins | https://github.com/winstonjs/logform#readme |
199
+ | long | 4.0.0 | Apache-2.0 | Daniel Wirtz | https://github.com/dcodeIO/long.js#readme |
200
+ | long | 5.3.2 | Apache-2.0 | Daniel Wirtz | https://github.com/dcodeIO/long.js#readme |
79
201
  | loose-envify | 1.4.0 | MIT | Andres Suarez | https://github.com/zertosh/loose-envify |
80
202
  | marked-terminal | 7.3.0 | MIT | Mikael Brevik | https://github.com/mikaelbr/marked-terminal |
81
203
  | marked | 17.0.1 | MIT | Christopher Jeffrey | https://marked.js.org |
82
204
  | mimic-fn | 2.1.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/mimic-fn#readme |
205
+ | module-details-from-path | 1.0.4 | MIT | Thomas Watson | https://github.com/watson/module-details-from-path#readme |
206
+ | ms | 2.1.3 | MIT | NOASSERTION | https://github.com/vercel/ms#readme |
83
207
  | mz | 2.7.0 | MIT | Jonathan Ong | https://github.com/normalize/mz#readme |
84
208
  | node-emoji | 2.2.0 | MIT | Daniel Bugl | https://github.com/omnidan/node-emoji#readme |
85
209
  | object-assign | 4.1.1 | MIT | Sindre Sorhus | https://github.com/sindresorhus/object-assign#readme |
86
210
  | onetime | 5.1.2 | MIT | Sindre Sorhus | https://github.com/sindresorhus/onetime#readme |
211
+ | open | 10.2.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/open#readme |
87
212
  | parse5-htmlparser2-tree-adapter | 6.0.1 | MIT | Ivan Nikulin | https://github.com/inikulin/parse5 |
88
213
  | parse5 | 5.1.1 | MIT | Ivan Nikulin | https://github.com/inikulin/parse5 |
89
214
  | parse5 | 6.0.1 | MIT | Ivan Nikulin | https://github.com/inikulin/parse5 |
90
215
  | patch-console | 2.0.0 | MIT | vdemedes | https://github.com/vadimdemedes/patch-console#readme |
216
+ | pg-int8 | 1.0.1 | ISC | NOASSERTION | https://github.com/charmander/pg-int8#readme |
217
+ | pg-protocol | 1.14.0 | MIT | NOASSERTION | https://github.com/brianc/node-postgres#readme |
218
+ | pg-types | 2.2.0 | MIT | Brian M. Carlson | https://github.com/brianc/node-pg-types |
219
+ | postgres-array | 2.0.0 | MIT | Ben Drucker | https://github.com/bendrucker/postgres-array#readme |
220
+ | postgres-bytea | 1.0.1 | MIT | Ben Drucker | https://github.com/bendrucker/postgres-bytea#readme |
221
+ | postgres-date | 1.0.7 | MIT | Ben Drucker | https://github.com/bendrucker/postgres-date#readme |
222
+ | postgres-interval | 1.2.0 | MIT | Ben Drucker | https://github.com/bendrucker/postgres-interval#readme |
223
+ | protobufjs | 7.6.1 | BSD-3-Clause | Daniel Wirtz | https://protobufjs.github.io/protobuf.js/ |
224
+ | protobufjs | 8.0.1 | BSD-3-Clause | Daniel Wirtz | https://protobufjs.github.io/protobuf.js/ |
91
225
  | react-devtools-core | 4.28.5 | MIT | NOASSERTION | https://github.com/facebook/react#readme |
92
226
  | react-reconciler | 0.29.2 | MIT | NOASSERTION | https://reactjs.org/ |
93
227
  | react | 18.3.1 | MIT | NOASSERTION | https://reactjs.org/ |
228
+ | readable-stream | 3.6.2 | MIT | NOASSERTION | https://github.com/nodejs/readable-stream#readme |
94
229
  | require-directory | 2.1.1 | MIT | Troy Goode | https://github.com/troygoode/node-require-directory/ |
230
+ | require-in-the-middle | 8.0.1 | MIT | Thomas Watson Steen | https://github.com/nodejs/require-in-the-middle#readme |
95
231
  | restore-cursor | 4.0.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/restore-cursor#readme |
232
+ | run-applescript | 7.1.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/run-applescript#readme |
233
+ | safe-buffer | 5.2.1 | MIT | Feross Aboukhadijeh | https://github.com/feross/safe-buffer |
234
+ | safe-stable-stringify | 2.5.0 | MIT | Ruben Bridgewater | https://github.com/BridgeAR/safe-stable-stringify#readme |
235
+ | safer-buffer | 2.1.2 | MIT | Nikita Skovoroda | https://github.com/ChALkeR/safer-buffer#readme |
96
236
  | scheduler | 0.23.2 | MIT | NOASSERTION | https://reactjs.org/ |
237
+ | semver | 7.7.3 | ISC | GitHub Inc. | https://github.com/npm/node-semver#readme |
97
238
  | shell-quote | 1.8.3 | MIT | James Halliday | https://github.com/ljharb/shell-quote |
98
239
  | signal-exit | 3.0.7 | ISC | Ben Coe | https://github.com/tapjs/signal-exit |
99
240
  | skin-tone | 2.0.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/skin-tone#readme |
@@ -101,6 +242,7 @@ This notice is not a substitute for legal review before public or enterprise dis
101
242
  | slice-ansi | 6.0.0 | MIT | NOASSERTION | https://github.com/chalk/slice-ansi#readme |
102
243
  | sql.js | 1.14.1 | MIT | NOASSERTION | http://github.com/sql-js/sql.js |
103
244
  | stack-utils | 2.0.6 | MIT | James Talmage | https://github.com/tapjs/stack-utils#readme |
245
+ | string_decoder | 1.3.0 | MIT | NOASSERTION | https://github.com/nodejs/string_decoder |
104
246
  | string-width | 4.2.3 | MIT | Sindre Sorhus | https://github.com/sindresorhus/string-width#readme |
105
247
  | string-width | 5.1.2 | MIT | Sindre Sorhus | https://github.com/sindresorhus/string-width#readme |
106
248
  | strip-ansi | 6.0.1 | MIT | Sindre Sorhus | https://github.com/chalk/strip-ansi#readme |
@@ -109,16 +251,26 @@ This notice is not a substitute for legal review before public or enterprise dis
109
251
  | supports-hyperlinks | 3.2.0 | MIT | NOASSERTION | https://github.com/chalk/supports-hyperlinks#readme |
110
252
  | thenify-all | 1.6.0 | MIT | Jonathan Ong | https://github.com/thenables/thenify-all#readme |
111
253
  | thenify | 3.3.1 | MIT | Jonathan Ong | https://github.com/thenables/thenify#readme |
254
+ | triple-beam | 1.4.1 | MIT | Charlie Robbins | https://github.com/winstonjs/triple-beam#readme |
112
255
  | tslib | 2.8.1 | 0BSD | Microsoft Corp. | https://www.typescriptlang.org/ |
113
256
  | type-fest | 0.12.0 | (MIT OR CC0-1.0) | Sindre Sorhus | https://github.com/sindresorhus/type-fest#readme |
114
257
  | type-fest | 3.13.1 | (MIT OR CC0-1.0) | Sindre Sorhus | https://github.com/sindresorhus/type-fest#readme |
258
+ | undici-types | 6.21.0 | MIT | NOASSERTION | https://undici.nodejs.org |
115
259
  | unicode-emoji-modifier-base | 1.0.0 | MIT | Mathias Bynens | https://github.com/mathiasbynens/unicode-emoji-modifier-base |
260
+ | util-deprecate | 1.0.2 | MIT | Nathan Rajlich | https://github.com/TooTallNate/util-deprecate |
261
+ | uuid | 8.3.2 | MIT | NOASSERTION | https://github.com/uuidjs/uuid#readme |
116
262
  | widest-line | 4.0.1 | MIT | Sindre Sorhus | https://github.com/sindresorhus/widest-line#readme |
263
+ | winston-transport | 4.9.0 | MIT | Charlie Robbins | https://github.com/winstonjs/winston-transport#readme |
117
264
  | wrap-ansi | 7.0.0 | MIT | Sindre Sorhus | https://github.com/chalk/wrap-ansi#readme |
118
265
  | wrap-ansi | 8.1.0 | MIT | Sindre Sorhus | https://github.com/chalk/wrap-ansi#readme |
119
266
  | ws | 7.5.10 | MIT | Einar Otto Stangvik | https://github.com/websockets/ws |
120
267
  | ws | 8.18.3 | MIT | Einar Otto Stangvik | https://github.com/websockets/ws |
268
+ | wsl-utils | 0.1.0 | MIT | Sindre Sorhus | https://github.com/sindresorhus/wsl-utils#readme |
269
+ | xtend | 4.0.2 | MIT | Raynos | https://github.com/Raynos/xtend |
121
270
  | y18n | 5.0.8 | ISC | Ben Coe | https://github.com/yargs/y18n |
271
+ | yaml | 2.9.0 | ISC | Eemeli Aro | https://eemeli.org/yaml/ |
122
272
  | yargs-parser | 20.2.9 | ISC | Ben Coe | https://github.com/yargs/yargs-parser#readme |
273
+ | yargs-parser | 21.1.1 | ISC | Ben Coe | https://github.com/yargs/yargs-parser#readme |
123
274
  | yargs | 16.2.0 | MIT | NOASSERTION | https://yargs.js.org/ |
275
+ | yargs | 17.7.2 | MIT | NOASSERTION | https://yargs.js.org/ |
124
276
  | yoga-wasm-web | 0.3.3 | MIT | NOASSERTION | https://github.com/shuding/yoga-wasm-web#readme |
@@ -5,10 +5,10 @@ import {
5
5
  listSessions,
6
6
  recordSessionTurn,
7
7
  resolveFrontendBaseUrl
8
- } from "./chunk-RCRNSEQS.js";
8
+ } from "./chunk-QSBGUI25.js";
9
9
  import {
10
10
  Onboarding
11
- } from "./chunk-Q5D5HYWW.js";
11
+ } from "./chunk-N4REL72M.js";
12
12
  import {
13
13
  checkUserStatus,
14
14
  completeActiveAssistantMessage,
@@ -35,13 +35,13 @@ import {
35
35
  reduceChunk,
36
36
  runReports,
37
37
  streamChat
38
- } from "./chunk-LDDHLUZH.js";
38
+ } from "./chunk-KBHRBGSX.js";
39
39
  import {
40
40
  Banner
41
- } from "./chunk-TTE5NEMA.js";
41
+ } from "./chunk-MX3OG3YS.js";
42
42
  import {
43
43
  CLI_VERSION
44
- } from "./chunk-AF6Z5VZD.js";
44
+ } from "./chunk-MK3L4LRF.js";
45
45
  import {
46
46
  raisedButtonStyle,
47
47
  terminalTheme
@@ -5850,7 +5850,7 @@ var getUserIdentityFromToken = async (token) => {
5850
5850
  return { name: "You" };
5851
5851
  }
5852
5852
  try {
5853
- const { extractEmailFromToken } = await import("./dist-AGQQPJUD.js");
5853
+ const { extractEmailFromToken } = await import("./dist-CFLR5FML.js");
5854
5854
  const email = extractEmailFromToken(token) ?? void 0;
5855
5855
  return {
5856
5856
  name: getFirstNameForDisplay({ email }),
@@ -7285,7 +7285,7 @@ var App = ({
7285
7285
  setIsLoggingIn(true);
7286
7286
  setLoaderStep(1);
7287
7287
  try {
7288
- const { login } = await import("./dist-AGQQPJUD.js");
7288
+ const { login } = await import("./dist-CFLR5FML.js");
7289
7289
  const newToken = await login(baseUrl, {
7290
7290
  headless: Boolean(process.env.SSH_TTY || process.env.CI)
7291
7291
  });
@@ -3,8 +3,8 @@ import {
3
3
  bannerMetaColor,
4
4
  bannerSegmentColor,
5
5
  splitBannerLineSegments
6
- } from "./chunk-TTE5NEMA.js";
7
- import "./chunk-AF6Z5VZD.js";
6
+ } from "./chunk-MX3OG3YS.js";
7
+ import "./chunk-MK3L4LRF.js";
8
8
  import "./chunk-ZDKRIOMB.js";
9
9
  export {
10
10
  Banner,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Onboarding
3
- } from "./chunk-Q5D5HYWW.js";
4
- import "./chunk-LDDHLUZH.js";
3
+ } from "./chunk-N4REL72M.js";
4
+ import "./chunk-KBHRBGSX.js";
5
5
  import "./chunk-ZDKRIOMB.js";
6
6
  export {
7
7
  Onboarding
@@ -3257,8 +3257,11 @@ var buildQuickProjectPayload = (input) => {
3257
3257
  if (!providerValues.has(provider)) {
3258
3258
  throw new Error(`Unsupported cloud provider '${provider}'.`);
3259
3259
  }
3260
+ if (input.cloudSync && provider !== "azure") {
3261
+ throw new Error("Cloud sync project creation currently supports Azure only.");
3262
+ }
3260
3263
  const name = input.name?.trim() || inferred?.suggestedName || "Quick Project";
3261
- const description = input.description?.trim() || inferred?.suggestedDescription || `Template project for ${name}`;
3264
+ const description = input.description?.trim() || inferred?.suggestedDescription || (input.cloudSync ? `Cloud sync project for ${name}` : `Template project for ${name}`);
3262
3265
  const connection = {
3263
3266
  user_id: input.userId,
3264
3267
  name: `${name} Connection`,
@@ -3301,7 +3304,95 @@ var responseJson = async (response, label) => {
3301
3304
  }
3302
3305
  return await response.json();
3303
3306
  };
3307
+ var formatResponseError = (response, label, body) => {
3308
+ const redactedBody = redactSensitiveText(body.trim());
3309
+ return new Error(
3310
+ `${label} failed with status ${response.status} ${response.statusText}${redactedBody ? `: ${redactedBody}` : ""}`
3311
+ );
3312
+ };
3313
+ var buildInlineWorkspaceImportRequest = async (workspaceFiles) => ({
3314
+ source: "upload",
3315
+ files: await Promise.all(
3316
+ workspaceFiles.map(async (file) => ({
3317
+ path: file.path,
3318
+ content: await file.blob.text()
3319
+ }))
3320
+ )
3321
+ });
3322
+ var runIacPipeline = async (input, projectId, connectionId) => {
3323
+ const apiBase = normalizeApiBase(input.baseUrl);
3324
+ const pipelineUrl = `${apiBase}/projects/${encodeURIComponent(projectId)}/iac/pipeline?user_id=${encodeURIComponent(input.userId)}`;
3325
+ const connectionImportBody = {
3326
+ import_request: { source: "connection", connection_id: connectionId },
3327
+ resolve: true,
3328
+ refresh_analysis: true
3329
+ };
3330
+ const response = await fetch(pipelineUrl, {
3331
+ method: "POST",
3332
+ headers: withIdempotencyHeader(getCLIHeaders(input.authToken)),
3333
+ body: JSON.stringify(connectionImportBody)
3334
+ });
3335
+ if (response.ok) {
3336
+ return await response.json();
3337
+ }
3338
+ const failureBody = await response.text().catch(() => "");
3339
+ const workspaceFiles = input.workspaceFiles ?? [];
3340
+ const canRetryAsUpload = response.status === 422 && workspaceFiles.length > 0 && /source/i.test(failureBody) && /upload/i.test(failureBody);
3341
+ if (!canRetryAsUpload) {
3342
+ throw formatResponseError(response, "IaC pipeline", failureBody);
3343
+ }
3344
+ const uploadImportBody = {
3345
+ import_request: await buildInlineWorkspaceImportRequest(workspaceFiles),
3346
+ resolve: true,
3347
+ refresh_analysis: true
3348
+ };
3349
+ const retryResponse = await fetch(pipelineUrl, {
3350
+ method: "POST",
3351
+ headers: withIdempotencyHeader(getCLIHeaders(input.authToken)),
3352
+ body: JSON.stringify(uploadImportBody)
3353
+ });
3354
+ return responseJson(retryResponse, "IaC pipeline");
3355
+ };
3304
3356
  var appendConnectionBody = (payload, input) => {
3357
+ if (input.cloudSync) {
3358
+ return JSON.stringify({
3359
+ ...payload,
3360
+ subscription_id: input.cloudSync.subscriptionId,
3361
+ target_resource_groups: input.cloudSync.resourceGroups ?? [],
3362
+ credentials: {
3363
+ tenant_id: input.cloudSync.tenantId,
3364
+ client_id: input.cloudSync.clientId,
3365
+ client_secret: input.cloudSync.clientSecret,
3366
+ subscription_id: input.cloudSync.subscriptionId
3367
+ }
3368
+ });
3369
+ }
3370
+ if (input.workspaceFiles?.length) {
3371
+ const entryPath = input.workspaceEntry || input.workspaceFiles[0]?.path;
3372
+ const entry = input.workspaceFiles.find((file) => file.path === entryPath);
3373
+ if (!entry) {
3374
+ throw new Error(`Workspace entry file '${entryPath}' was not found.`);
3375
+ }
3376
+ const formData2 = new FormData();
3377
+ formData2.append("user_id", payload.user_id);
3378
+ formData2.append("name", payload.name);
3379
+ formData2.append("cloud_provider", payload.cloud_provider);
3380
+ formData2.append("description", payload.description);
3381
+ formData2.append("type", payload.type);
3382
+ formData2.append("auto_sync", String(payload.auto_sync ?? true));
3383
+ formData2.append("visualization_source_path", entry.path);
3384
+ formData2.append("template_file", entry.blob, entry.path);
3385
+ const workspaceFilePaths = [];
3386
+ for (const file of input.workspaceFiles) {
3387
+ if (file.path === entry.path) {
3388
+ continue;
3389
+ }
3390
+ workspaceFilePaths.push(file.path);
3391
+ formData2.append("workspace_files", file.blob, file.path);
3392
+ }
3393
+ formData2.append("workspace_file_paths", JSON.stringify(workspaceFilePaths));
3394
+ return formData2;
3395
+ }
3305
3396
  if (!input.templateFile && !input.parametersFile) {
3306
3397
  return JSON.stringify(payload);
3307
3398
  }
@@ -3339,10 +3430,16 @@ var headersForBody = (authToken, body) => {
3339
3430
  return getCLIHeaders(authToken);
3340
3431
  };
3341
3432
  var createQuickProject = async (input) => {
3342
- if (!input.templateUrl && !input.templateFile) {
3343
- throw new Error("Provide --template-url or --template-file.");
3433
+ if (!input.templateUrl && !input.templateFile && !input.workspaceFiles?.length && !input.cloudSync) {
3434
+ throw new Error("Provide --template-url, --template-file, --workspace-dir, or --cloud-sync.");
3344
3435
  }
3345
3436
  const built = buildQuickProjectPayload(input);
3437
+ if (input.cloudSync) {
3438
+ built.connection.type = "sync";
3439
+ built.connection.auto_sync = true;
3440
+ built.project.type = "sync";
3441
+ built.project.report_config.include_cost_forecast = true;
3442
+ }
3346
3443
  const apiBase = normalizeApiBase(input.baseUrl);
3347
3444
  const connectionBody = appendConnectionBody(built.connection, input);
3348
3445
  const connection = await responseJson(
@@ -3369,12 +3466,21 @@ var createQuickProject = async (input) => {
3369
3466
  }),
3370
3467
  "Project creation"
3371
3468
  );
3469
+ let iacPipeline;
3470
+ if (!input.cloudSync) {
3471
+ iacPipeline = await runIacPipeline(
3472
+ input,
3473
+ String(project.id),
3474
+ connectionId
3475
+ );
3476
+ }
3372
3477
  return {
3373
3478
  project,
3374
3479
  connection,
3375
3480
  syncStatus: connection.sync_status ?? connection.sync_job ?? null,
3376
3481
  normalizedTemplateUrl: built.normalizedTemplateUrl,
3377
- inferred: built.inferred
3482
+ inferred: built.inferred,
3483
+ iacPipeline
3378
3484
  };
3379
3485
  };
3380
3486
  var listConnections = async (options) => {
@@ -1,5 +1,5 @@
1
1
  // src/version.ts
2
- var CLI_VERSION = "0.22.0";
2
+ var CLI_VERSION = "0.24.0";
3
3
 
4
4
  export {
5
5
  CLI_VERSION
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CLI_VERSION
3
- } from "./chunk-AF6Z5VZD.js";
3
+ } from "./chunk-MK3L4LRF.js";
4
4
  import {
5
5
  shouldUseColor,
6
6
  terminalTheme
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  completeOnboarding
3
- } from "./chunk-LDDHLUZH.js";
3
+ } from "./chunk-KBHRBGSX.js";
4
4
  import {
5
5
  terminalTheme
6
6
  } from "./chunk-ZDKRIOMB.js";
@@ -234,23 +234,48 @@ var normalizeCliMode = (value) => {
234
234
  }
235
235
  throw new Error("mode must be one of: ask, agent");
236
236
  };
237
+ var parseConfigBoolean = (key, value) => {
238
+ const normalized = value.trim().toLowerCase();
239
+ if (["true", "1", "yes", "on"].includes(normalized)) {
240
+ return true;
241
+ }
242
+ if (["false", "0", "no", "off"].includes(normalized)) {
243
+ return false;
244
+ }
245
+ throw new Error(`${key} must be true or false`);
246
+ };
237
247
  var normalizeConfigKey = (key) => {
238
248
  const normalized = key.trim();
249
+ if (normalized === "telemetry.enabled") {
250
+ return normalized;
251
+ }
239
252
  const mapped = keyAliases[normalized];
240
253
  if (!mapped) {
241
254
  throw new Error(
242
- `Unsupported config key '${key}'. Supported keys: baseUrl, frontendUrl, defaultProjectId, model, mode, outputFormat.`
255
+ `Unsupported config key '${key}'. Supported keys: baseUrl, frontendUrl, defaultProjectId, model, mode, outputFormat, telemetry.enabled.`
243
256
  );
244
257
  }
245
258
  return mapped;
246
259
  };
247
260
  var readCliConfigValue = (config, key) => {
248
261
  const normalized = normalizeConfigKey(key);
262
+ if (normalized === "telemetry.enabled") {
263
+ return typeof config.telemetry?.enabled === "boolean" ? String(config.telemetry.enabled) : void 0;
264
+ }
249
265
  const value = config[normalized];
250
266
  return typeof value === "string" ? value : void 0;
251
267
  };
252
268
  var writeCliConfigValue = (config, key, value) => {
253
269
  const normalized = normalizeConfigKey(key);
270
+ if (normalized === "telemetry.enabled") {
271
+ return {
272
+ ...config,
273
+ telemetry: {
274
+ ...config.telemetry || {},
275
+ enabled: parseConfigBoolean("telemetry.enabled", value)
276
+ }
277
+ };
278
+ }
254
279
  const normalizedValue = normalized === "mode" ? normalizeCliMode(value) : value;
255
280
  return {
256
281
  ...config,
@@ -259,6 +284,19 @@ var writeCliConfigValue = (config, key, value) => {
259
284
  };
260
285
  var unsetCliConfigValue = (config, key) => {
261
286
  const normalized = normalizeConfigKey(key);
287
+ if (normalized === "telemetry.enabled") {
288
+ const next2 = { ...config };
289
+ if (next2.telemetry) {
290
+ const telemetry = { ...next2.telemetry };
291
+ delete telemetry.enabled;
292
+ if (Object.keys(telemetry).length > 0) {
293
+ next2.telemetry = telemetry;
294
+ } else {
295
+ delete next2.telemetry;
296
+ }
297
+ }
298
+ return next2;
299
+ }
262
300
  const next = { ...config };
263
301
  delete next[normalized];
264
302
  return next;