@liquidmetal-ai/raindrop 0.4.7 → 0.4.9

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.
@@ -2,7 +2,21 @@ import { BaseCommand } from '../base-command.js';
2
2
  export default class Tail extends BaseCommand<typeof Tail> {
3
3
  static args: {};
4
4
  static description: string;
5
- static flags: {};
5
+ static examples: string[];
6
+ static flags: {
7
+ output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
8
+ impersonate: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
+ manifest: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
10
+ application: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ version: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ rainbowAuthService: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
13
+ raindropCatalogService: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ config: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
15
+ rainbowAuthToken: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
+ rainbowOrganizationId: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
+ rainbowUserId: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
+ sendVersionMetadata: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
19
+ };
6
20
  run(): Promise<void>;
7
21
  }
8
22
  //# sourceMappingURL=tail.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tail.d.ts","sourceRoot":"","sources":["../../src/commands/tail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW,CAAC,OAAO,IAAI,CAAC;IACxD,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,WAAW,SAAwC;IAE1D,MAAM,CAAC,KAAK,KAAM;IAEZ,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAG3B"}
1
+ {"version":3,"file":"tail.d.ts","sourceRoot":"","sources":["../../src/commands/tail.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW,CAAC,OAAO,IAAI,CAAC;IACxD,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,WAAW,SAAwC;IAE1D,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;;MAyCV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0J3B"}
@@ -1,9 +1,214 @@
1
+ import { valueOf } from '@liquidmetal-ai/drizzle/appify/build';
2
+ import { create } from '@bufbuild/protobuf';
3
+ import { StreamLogsRequestSchema } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/riverjack_pb';
4
+ import { Flags } from '@oclif/core';
1
5
  import { BaseCommand } from '../base-command.js';
2
6
  export default class Tail extends BaseCommand {
3
7
  static args = {};
4
8
  static description = 'tail logs of applications deployed';
5
- static flags = {};
9
+ static examples = [
10
+ `<%= config.bin %> <%= command.id %>`,
11
+ `<%= config.bin %> <%= command.id %> --application my-app`,
12
+ `<%= config.bin %> <%= command.id %> --application my-app --version v1.2.3`,
13
+ ];
14
+ static flags = {
15
+ ...BaseCommand.HIDDEN_FLAGS,
16
+ output: Flags.string({
17
+ char: 'o',
18
+ description: 'output format',
19
+ default: 'text',
20
+ options: ['text', 'json'],
21
+ }),
22
+ impersonate: Flags.string({
23
+ char: 'i',
24
+ description: 'impersonate organization',
25
+ required: false,
26
+ hidden: true,
27
+ }),
28
+ manifest: Flags.string({
29
+ char: 'm',
30
+ description: 'project manifest',
31
+ required: false,
32
+ default: 'raindrop.manifest',
33
+ hidden: true,
34
+ }),
35
+ application: Flags.string({
36
+ char: 'a',
37
+ description: 'application',
38
+ required: false,
39
+ }),
40
+ version: Flags.string({
41
+ char: 'v',
42
+ description: 'application version',
43
+ required: false,
44
+ }),
45
+ rainbowAuthService: Flags.string({
46
+ default: 'https://liquidmetal.run/api/connect',
47
+ hidden: true,
48
+ env: 'LIQUIDMETAL_RAINBOW_AUTH_SERVICE',
49
+ }),
50
+ raindropCatalogService: Flags.string({
51
+ env: 'RAINDROP_CATALOG_SERVICE',
52
+ description: 'URL of the catalog service',
53
+ hidden: true,
54
+ }),
55
+ };
6
56
  async run() {
7
- this.error('not implemented');
57
+ // Load version from config if not provided
58
+ const apps = await this.loadManifest();
59
+ const config = await this.loadConfig();
60
+ if (!this.flags.version) {
61
+ if (!config.versionId) {
62
+ this.error('No version provided or found in config', { exit: 1 });
63
+ }
64
+ this.flags.version = config.versionId;
65
+ }
66
+ // Load application from manifest if not provided
67
+ if (!this.flags.application) {
68
+ const app = apps[0];
69
+ if (app === undefined) {
70
+ this.error('No application provided or found in manifest', { exit: 1 });
71
+ }
72
+ this.flags.application = valueOf(app.name);
73
+ }
74
+ const { userId, client: riverjackService, organizationId: defaultOrganizationId, } = await this.riverjackService(this.flags.application, this.flags.version);
75
+ const organizationId = this.flags.impersonate ?? defaultOrganizationId;
76
+ this.log(`Using organization: ${organizationId}`);
77
+ this.log(`Using user: ${userId}`);
78
+ this.log(`Tailing logs for ${this.flags.application}@${this.flags.version} using Riverjack service...`);
79
+ this.log('Press Ctrl+C to stop\n');
80
+ try {
81
+ const request = create(StreamLogsRequestSchema, {
82
+ organizationId,
83
+ userId,
84
+ applicationName: this.flags.application,
85
+ applicationVersionId: this.flags.version,
86
+ });
87
+ for await (const resp of riverjackService.streamLogs(request)) {
88
+ if (resp.message) {
89
+ try {
90
+ const parsed = JSON.parse(resp.message);
91
+ // Filter out heartbeat messages unless in JSON mode
92
+ if (parsed.type === 'heartbeat' && this.flags.output !== 'json') {
93
+ continue;
94
+ }
95
+ if (this.flags.output === 'json') {
96
+ this.log(JSON.stringify(resp, null, 2));
97
+ }
98
+ else {
99
+ // Format different message types appropriately
100
+ switch (parsed.type) {
101
+ case 'stream_started':
102
+ this.log(`🔄 Started streaming logs for ${parsed.applicationName}@${parsed.applicationVersionId}`);
103
+ this.log(` Organization: ${parsed.organizationId}`);
104
+ this.log(` User: ${parsed.userId}`);
105
+ this.log(` Time: ${new Date(parsed.timestamp).toLocaleString()}`);
106
+ break;
107
+ case 'new_events':
108
+ // Just show the events without the counter header
109
+ if (parsed.metrics) {
110
+ this.log(` Total events in system: ${parsed.metrics.totalEvents}`);
111
+ this.log(` Last processed: ${parsed.metrics.lastProcessed ? new Date(parsed.metrics.lastProcessed).toLocaleString() : 'N/A'}`);
112
+ }
113
+ if (parsed.events && parsed.events.length > 0) {
114
+ parsed.events.forEach((event) => {
115
+ const timestamp = event.storedAt ? new Date(event.storedAt).toLocaleTimeString() : 'Unknown time';
116
+ const eventName = event.name || 'Event';
117
+ const traceId = event.trace && typeof event.trace === 'object' ? event.trace.event_id : 'N/A';
118
+ const status = event.status || 'unknown';
119
+ const duration = event.trace && typeof event.trace === 'object' ?
120
+ event.trace.end_ms - event.trace.start_ms : null;
121
+ this.log(` [${timestamp}] ${eventName} (${status}) - Trace: ${traceId}${duration ? ` - Duration: ${duration}ms` : ''}`);
122
+ // Show attributes with better formatting
123
+ if (event.attributes && typeof event.attributes === 'object') {
124
+ const attrs = event.attributes;
125
+ Object.entries(attrs).forEach(([key, value]) => {
126
+ if (value !== undefined && value !== null) {
127
+ // Format common attributes nicely
128
+ if (key === 'http.status') {
129
+ const statusCode = value;
130
+ const statusEmoji = statusCode >= 200 && statusCode < 300 ? '✅' : statusCode >= 400 ? '❌' : '⚠️';
131
+ this.log(` ${key}: ${statusEmoji} ${value}`);
132
+ }
133
+ else if (key === 'http.method') {
134
+ this.log(` ${key}: ${value}`);
135
+ }
136
+ else if (key === 'http.url') {
137
+ this.log(` ${key}: ${value}`);
138
+ }
139
+ else if (key === 'query') {
140
+ // SQL query formatting
141
+ this.log(` 🗄️ SQL Query: ${value}`);
142
+ }
143
+ else if (key === 'rows_read') {
144
+ this.log(` 📊 Rows Read: ${value}`);
145
+ }
146
+ else if (key === 'rows_written') {
147
+ this.log(` ✍️ Rows Written: ${value}`);
148
+ }
149
+ else if (key === 'db') {
150
+ this.log(` 🏦 Database: ${value}`);
151
+ }
152
+ else if (key === 'error' && typeof eventName === 'string' && eventName.includes('sql')) {
153
+ this.log(` ❌ SQL Error: ${value}`);
154
+ }
155
+ else if (key === 'meta' && typeof value === 'object') {
156
+ // SQL metadata
157
+ const meta = value;
158
+ if (meta.rows_read)
159
+ this.log(` 📊 Rows Read: ${meta.rows_read}`);
160
+ if (meta.rows_written)
161
+ this.log(` ✍️ Rows Written: ${meta.rows_written}`);
162
+ if (meta.duration)
163
+ this.log(` ⏱️ Query Duration: ${meta.duration}ms`);
164
+ }
165
+ else {
166
+ this.log(` ${key}: ${JSON.stringify(value)}`);
167
+ }
168
+ }
169
+ });
170
+ }
171
+ // Show organization/application context
172
+ if (event.organization || event.application) {
173
+ const org = event.organization && typeof event.organization === 'object' ? event.organization.id : 'N/A';
174
+ const app = event.application && typeof event.application === 'object' ? event.application.name : 'N/A';
175
+ const version = event.application && typeof event.application === 'object' && typeof event.application.version === 'object' ?
176
+ event.application.version.id : 'N/A';
177
+ this.log(` Context: org=${org}, app=${app}, version=${version}`);
178
+ }
179
+ this.log(''); // Empty line for readability
180
+ });
181
+ }
182
+ break;
183
+ case 'stream_ended':
184
+ this.log(`✅ Stream ended after ${Math.round(parsed.duration / 1000)}s (${parsed.totalPolls} polls)`);
185
+ this.log(` Subscriber ID: ${parsed.subscriberId}`);
186
+ this.log(` End time: ${new Date(parsed.timestamp).toLocaleString()}`);
187
+ break;
188
+ case 'service_error':
189
+ this.log(`❌ Service error: ${parsed.error}`);
190
+ this.log(` Time: ${new Date(parsed.timestamp).toLocaleString()}`);
191
+ break;
192
+ default:
193
+ // For any other message types, just display the raw message
194
+ this.log(resp.message);
195
+ }
196
+ }
197
+ }
198
+ catch {
199
+ // If message isn't JSON, just display it as-is
200
+ this.log(resp.message);
201
+ }
202
+ }
203
+ }
204
+ }
205
+ catch (error) {
206
+ if (error instanceof Error) {
207
+ this.error(`Failed to tail logs: ${error.message}`, { exit: 1 });
208
+ }
209
+ else {
210
+ this.error('Failed to tail logs: Unknown error', { exit: 1 });
211
+ }
212
+ }
8
213
  }
9
214
  }
package/dist/index.d.ts CHANGED
@@ -8,6 +8,8 @@ import { type RaindropState } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1
8
8
  import { SearchAgentService } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/search_agent_pb';
9
9
  import { StrictClient } from './strict-client.js';
10
10
  import { AnnotationService } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/annotation_pb';
11
+ import { EventStreamService } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/events_pb';
12
+ import { RiverjackService } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/riverjack_pb';
11
13
  export { run } from '@oclif/core';
12
14
  export declare const EPOCH_TS: import("@bufbuild/protobuf/wkt").Timestamp;
13
15
  export declare function configFromAppFile(appFile: string): Promise<Application[]>;
@@ -37,6 +39,8 @@ export declare function catalogService(opts: ServiceClientOptions): Promise<Serv
37
39
  export declare function searchAgentService(opts: ServiceClientOptions): Promise<ServiceClient<typeof SearchAgentService>>;
38
40
  export declare function objectService(opts: ServiceClientOptions): Promise<ServiceClient<typeof ObjectService>>;
39
41
  export declare function annotationService(opts: ServiceClientOptions): Promise<ServiceClient<typeof AnnotationService>>;
42
+ export declare function eventStreamService(opts: ServiceClientOptions): Promise<ServiceClient<typeof EventStreamService>>;
43
+ export declare function riverjackService(opts: ServiceClientOptions): Promise<ServiceClient<typeof RiverjackService>>;
40
44
  export type ServiceClientOptions = {
41
45
  rainbowAuth: StrictClient<typeof RainbowAuthService>;
42
46
  configDir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE5F,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,yDAAyD,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAEL,kBAAkB,EAEnB,MAAM,8DAA8D,CAAC;AACtE,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,0DAA0D,CAAC;AACnH,OAAO,EAAE,kBAAkB,EAAE,MAAM,8DAA8D,CAAC;AAQlG,OAAO,EAAsB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4DAA4D,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAC7F,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,eAAO,MAAM,QAAQ,4CAAiC,CAAC;AAEvD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAG/E;AAGD,wBAAgB,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAEnD;AAkED,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAgBtF;AAKD,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,YAAY,CAAC,OAAO,kBAAkB,CAAC,EACpD,iBAAiB,CAAC,EAAE,MAAM,GACzB;IAAE,YAAY,EAAE,WAAW,CAAA;CAAE,CAa/B;AAED,wBAAgB,sBAAsB,IAAI,WAAW,CAiBpD;AAGD,wBAAgB,kBAAkB,CAChC,EAAE,iBAAwB,EAAE,EAAE;IAAE,iBAAiB,EAAE,OAAO,CAAA;CAAE,EAC5D,MAAM,CAAC,EAAE;IAAE,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,KAAK,IAAI,CAAA;CAAE,GACjD,WAAW,CAiBb;AAID,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAUzE;AAED,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CASzF;AAGD,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhE;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACjE,MAAM,EAAE,YAAY,CAAC,OAAO,kBAAkB,CAAC,CAAC;CACjD,CAAC,CAUD;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,cAAc,CAAC,CAAC,CAE9G;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,aAAa,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAEnD;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,aAAa,CAAC,CAAC,CAE5G;AACD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAEpH;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,aAAa,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAEnD;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAElH;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,YAAY,CAAC,OAAO,kBAAkB,CAAC,CAAC;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,eAAe,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;QAClC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;KACpC,CAAC;CACH,CAAC;AACF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,WAAW,IAAI;IACjD,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAsB,aAAa,CAAC,CAAC,SAAS,WAAW,EACvD,OAAO,EAAE,CAAC,EACV,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,oBAAoB,GACvG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAe3B;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAkBzD"}
package/dist/index.js CHANGED
@@ -17,6 +17,8 @@ import semver from 'semver';
17
17
  import { createStrictClient } from './strict-client.js';
18
18
  import { traceStore } from './trace.js';
19
19
  import { AnnotationService } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/annotation_pb';
20
+ import { EventStreamService } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/events_pb';
21
+ import { RiverjackService } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/riverjack_pb';
20
22
  export { run } from '@oclif/core';
21
23
  export const EPOCH_TS = timestampFromDate(new Date(0));
22
24
  export async function configFromAppFile(appFile) {
@@ -194,6 +196,12 @@ export async function objectService(opts) {
194
196
  export async function annotationService(opts) {
195
197
  return serviceClient(AnnotationService, opts);
196
198
  }
199
+ export async function eventStreamService(opts) {
200
+ return serviceClient(EventStreamService, opts);
201
+ }
202
+ export async function riverjackService(opts) {
203
+ return serviceClient(RiverjackService, opts);
204
+ }
197
205
  export async function serviceClient(service, { rainbowAuth, configDir, identity, overrideAuthToken, logger, enableSendVersion }) {
198
206
  const { baseUrl, organizationId, userId } = identity;
199
207
  const { authenticate } = createAuthenticateInterceptor(configDir, rainbowAuth, overrideAuthToken);
@@ -1 +1 @@
1
- {"root":["../src/base-command.ts","../src/build.test.ts","../src/build.ts","../src/codegen.test.ts","../src/codegen.ts","../src/config.test.ts","../src/config.ts","../src/deploy.ts","../src/index.test.ts","../src/index.ts","../src/strict-client.ts","../src/trace.ts","../src/commands/tail.ts","../src/commands/annotation/get.ts","../src/commands/annotation/list.ts","../src/commands/annotation/put.ts","../src/commands/auth/list.ts","../src/commands/auth/login.ts","../src/commands/auth/logout.ts","../src/commands/auth/select.ts","../src/commands/build/branch.ts","../src/commands/build/checkout.ts","../src/commands/build/clone.ts","../src/commands/build/delete.ts","../src/commands/build/deploy.ts","../src/commands/build/find.ts","../src/commands/build/generate.ts","../src/commands/build/init.ts","../src/commands/build/list.ts","../src/commands/build/sandbox.ts","../src/commands/build/start.ts","../src/commands/build/status.ts","../src/commands/build/stop.ts","../src/commands/build/unsandbox.ts","../src/commands/build/upload.ts","../src/commands/build/validate.ts","../src/commands/build/env/get.ts","../src/commands/build/env/set.ts","../src/commands/build/tools/check.ts","../src/commands/build/tools/fmt.ts","../src/commands/object/delete.ts","../src/commands/object/get.ts","../src/commands/object/list.ts","../src/commands/object/put.ts","../src/commands/query/chunk-search.ts","../src/commands/query/document.ts","../src/commands/query/search.ts"],"version":"5.8.2"}
1
+ {"root":["../src/base-command.ts","../src/build.test.ts","../src/build.ts","../src/codegen.test.ts","../src/codegen.ts","../src/config.test.ts","../src/config.ts","../src/deploy.ts","../src/index.test.ts","../src/index.ts","../src/strict-client.ts","../src/trace.ts","../src/commands/tail.ts","../src/commands/annotation/get.ts","../src/commands/annotation/list.ts","../src/commands/annotation/put.ts","../src/commands/auth/list.ts","../src/commands/auth/login.ts","../src/commands/auth/logout.ts","../src/commands/auth/select.ts","../src/commands/build/branch.ts","../src/commands/build/checkout.ts","../src/commands/build/clone.ts","../src/commands/build/delete.ts","../src/commands/build/deploy.ts","../src/commands/build/find.ts","../src/commands/build/generate.ts","../src/commands/build/init.ts","../src/commands/build/list.ts","../src/commands/build/sandbox.ts","../src/commands/build/start.ts","../src/commands/build/status.ts","../src/commands/build/stop.ts","../src/commands/build/unsandbox.ts","../src/commands/build/upload.ts","../src/commands/build/validate.ts","../src/commands/build/env/get.ts","../src/commands/build/env/set.ts","../src/commands/build/tools/check.ts","../src/commands/build/tools/fmt.ts","../src/commands/object/delete.ts","../src/commands/object/get.ts","../src/commands/object/list.ts","../src/commands/object/put.ts","../src/commands/query/chunk-search.ts","../src/commands/query/document.ts","../src/commands/query/events.ts","../src/commands/query/search.ts"],"version":"5.8.3"}