@tutti-os/tutti-ops-cli 0.1.3 → 0.1.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.
Files changed (46) hide show
  1. package/README.md +73 -6
  2. package/dist/appApi.d.ts +11 -1
  3. package/dist/appApi.js +48 -3
  4. package/dist/appApi.js.map +1 -1
  5. package/dist/config.d.ts +3 -0
  6. package/dist/config.js +9 -4
  7. package/dist/config.js.map +1 -1
  8. package/dist/core/commands.d.ts +2 -0
  9. package/dist/core/commands.js +71 -0
  10. package/dist/core/commands.js.map +1 -0
  11. package/dist/core/errors.d.ts +7 -0
  12. package/dist/core/errors.js +16 -0
  13. package/dist/core/errors.js.map +1 -0
  14. package/dist/core/executor.d.ts +32 -0
  15. package/dist/core/executor.js +133 -0
  16. package/dist/core/executor.js.map +1 -0
  17. package/dist/core/input.d.ts +6 -0
  18. package/dist/core/input.js +163 -0
  19. package/dist/core/input.js.map +1 -0
  20. package/dist/core/output.d.ts +6 -0
  21. package/dist/core/output.js +35 -0
  22. package/dist/core/output.js.map +1 -0
  23. package/dist/core/types.d.ts +77 -0
  24. package/dist/core/types.js +5 -0
  25. package/dist/core/types.js.map +1 -0
  26. package/dist/http.d.ts +9 -1
  27. package/dist/http.js +44 -41
  28. package/dist/http.js.map +1 -1
  29. package/dist/index.js +21 -7
  30. package/dist/index.js.map +1 -1
  31. package/dist/operations/admin-schemas.d.ts +2 -0
  32. package/dist/operations/admin-schemas.js +2433 -0
  33. package/dist/operations/admin-schemas.js.map +1 -0
  34. package/dist/operations/registry.d.ts +3 -0
  35. package/dist/operations/registry.js +204 -0
  36. package/dist/operations/registry.js.map +1 -0
  37. package/dist/upload.js +1 -0
  38. package/dist/upload.js.map +1 -1
  39. package/dist/workflows/app.d.ts +3 -0
  40. package/dist/workflows/app.js +82 -0
  41. package/dist/workflows/app.js.map +1 -0
  42. package/dist/zip.d.ts +19 -0
  43. package/dist/zip.js +154 -4
  44. package/dist/zip.js.map +1 -1
  45. package/package.json +6 -3
  46. package/skills/tutti-admin/SKILL.md +23 -0
@@ -0,0 +1,163 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { CliError } from './errors.js';
3
+ const own = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
4
+ export const flagKey = (name) => name.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
5
+ export const kebab = (name) => name.replace(/([a-z0-9])([A-Z])/g, '$1-$2').replaceAll('_', '-').toLowerCase();
6
+ export function validate(value, schema, path = 'input') {
7
+ const fail = (message) => { throw new CliError('INVALID_INPUT', `${path}: ${message}`); };
8
+ if (schema.anyOf) {
9
+ if (!schema.anyOf.some((branch) => { try {
10
+ validate(value, branch, path);
11
+ return true;
12
+ }
13
+ catch {
14
+ return false;
15
+ } }))
16
+ fail('does not match any allowed type');
17
+ return;
18
+ }
19
+ if (schema.enum && !schema.enum.some((item) => item === value))
20
+ fail(`expected one of ${JSON.stringify(schema.enum)}`);
21
+ if (schema.type === 'object') {
22
+ if (!value || typeof value !== 'object' || Array.isArray(value))
23
+ fail('expected an object');
24
+ const record = value;
25
+ for (const key of schema.required ?? [])
26
+ if (!own(record, key))
27
+ fail(`missing ${key}`);
28
+ for (const [key, item] of Object.entries(record)) {
29
+ if (['__proto__', 'constructor', 'prototype'].includes(key))
30
+ fail('unsafe property');
31
+ const child = schema.properties?.[key];
32
+ if (child)
33
+ validate(item, child, `${path}.${key}`);
34
+ else if (schema.additionalProperties === false)
35
+ fail(`unknown property ${key}`);
36
+ else if (typeof schema.additionalProperties === 'object')
37
+ validate(item, schema.additionalProperties, `${path}.${key}`);
38
+ }
39
+ }
40
+ else if (schema.type === 'array') {
41
+ if (!Array.isArray(value))
42
+ fail('expected an array');
43
+ value.forEach((item, index) => validate(item, schema.items ?? {}, `${path}[${index}]`));
44
+ }
45
+ else if (schema.type === 'null') {
46
+ if (value !== null)
47
+ fail('expected null');
48
+ }
49
+ else if (schema.type) {
50
+ const type = schema.type === 'integer' ? 'number' : schema.type;
51
+ if (typeof value !== type)
52
+ fail(`expected ${schema.type}`);
53
+ if (typeof value === 'number' && (!Number.isFinite(value) || (schema.type === 'integer' && !Number.isSafeInteger(value))))
54
+ fail('expected a finite, safe number');
55
+ }
56
+ if (typeof value === 'number') {
57
+ if (schema.minimum !== undefined && value < schema.minimum)
58
+ fail(`minimum ${schema.minimum}`);
59
+ if (schema.maximum !== undefined && value > schema.maximum)
60
+ fail(`maximum ${schema.maximum}`);
61
+ }
62
+ if (typeof value === 'string' && schema.pattern && !new RegExp(schema.pattern).test(value))
63
+ fail('invalid format');
64
+ }
65
+ async function jsonArg(raw, stdin) {
66
+ if (raw === undefined)
67
+ return {};
68
+ try {
69
+ const text = raw === '-' ? await stdin() : raw.startsWith('@') ? await readFile(raw.slice(1), 'utf8') : raw;
70
+ const result = JSON.parse(text);
71
+ validate(result, { type: 'object' });
72
+ return result;
73
+ }
74
+ catch (error) {
75
+ if (error instanceof CliError)
76
+ throw error;
77
+ throw new CliError('INVALID_JSON', 'Expected a JSON object, @file, or - for stdin');
78
+ }
79
+ }
80
+ function convert(raw, schema) {
81
+ if (typeof raw !== 'string')
82
+ return raw;
83
+ if (schema.type === 'string' || schema.anyOf?.some(branch => branch.type === 'string'))
84
+ return raw;
85
+ try {
86
+ return JSON.parse(raw);
87
+ }
88
+ catch {
89
+ throw new CliError('INVALID_FLAG', 'Expected a JSON number, boolean, array or object');
90
+ }
91
+ }
92
+ export async function parseInput(op, options, stdin) {
93
+ if (options.params === '-' && options.data === '-')
94
+ throw new CliError('STDIN_CONFLICT', 'Only one argument may consume stdin');
95
+ const params = await jsonArg(options.params, stdin);
96
+ const data = op.data ? await jsonArg(options.data, stdin) : undefined;
97
+ if (!op.data && options.data !== undefined)
98
+ throw new CliError('UNEXPECTED_BODY', 'This operation does not accept --data');
99
+ const input = { params, data, headers: {}, local: {} };
100
+ for (const field of op.fields) {
101
+ const raw = options[flagKey(field.flag)];
102
+ const target = input[field.in];
103
+ if (!target)
104
+ continue;
105
+ if (raw !== undefined) {
106
+ const value = convert(raw, field.schema);
107
+ if (field.identity && own(target, field.key) && target[field.key] !== value)
108
+ throw new CliError('SCOPE_CONFLICT', `Conflicting ${field.flag}`);
109
+ validate(value, field.schema, `--${field.flag}`);
110
+ target[field.key] = value;
111
+ }
112
+ }
113
+ // A body and a path may both carry an ID. Both must name the same resource.
114
+ for (const name of op.path?.matchAll(/\{(\w+)\}/g) ?? []) {
115
+ const key = name[1];
116
+ if (data && own(data, key) && own(params, key) && data[key] !== params[key])
117
+ throw new CliError('SCOPE_CONFLICT', `Conflicting ${key} in path and body`);
118
+ if (data && own(data, key) && !own(params, key))
119
+ params[key] = data[key];
120
+ if (data && op.data?.properties?.[key] && own(params, key) && !own(data, key))
121
+ data[key] = params[key];
122
+ }
123
+ for (const field of op.fields) {
124
+ const target = input[field.in];
125
+ if (field.required && (!target || !own(target, field.key)))
126
+ throw new CliError('MISSING_INPUT', `Missing --${field.flag}`);
127
+ if (field.identity && target && own(target, field.key) && typeof target[field.key] === 'string' && !String(target[field.key]).trim())
128
+ throw new CliError('EMPTY_SCOPE', `Empty --${field.flag}`);
129
+ }
130
+ for (const key of ['appId', 'version']) {
131
+ const value = input.local[key];
132
+ if (typeof value === 'string' && (!value.trim() || /[/%\\?#\x00-\x1f]/.test(value) || value === '.' || value === '..'))
133
+ throw new CliError('INVALID_PATH_PARAMETER', `Invalid ${key}`);
134
+ }
135
+ validate(params, op.params, 'params');
136
+ if (op.data)
137
+ validate(data, op.data, 'data');
138
+ return input;
139
+ }
140
+ export function buildPlan(op, input) {
141
+ let path = op.path;
142
+ const params = { ...input.params };
143
+ if (path)
144
+ path = path.replace(/\{(\w+)\}/g, (_, key) => {
145
+ const value = params[key];
146
+ if (typeof value !== 'string' || !value.trim() || /[\/%\\?#\x00-\x1f]/.test(value) || value === '.' || value === '..')
147
+ throw new CliError('INVALID_PATH_PARAMETER', `Invalid ${key}`);
148
+ delete params[key];
149
+ if (key === 'source' && op.command.startsWith('agent-package '))
150
+ return value === 'tsh-v1' ? 'v1' : 'v2';
151
+ return encodeURIComponent(value);
152
+ });
153
+ if (op.id === 'auth.status' && input.data)
154
+ input.data.metadata_only = true;
155
+ if (op.id === 'admin-token.create' && input.data)
156
+ input.data.access_mode ??= 'read';
157
+ return {
158
+ operation: op.id, access: op.access, scope: op.scope, effects: op.effects,
159
+ ...(path ? { request: { method: op.method, path, params, data: input.data, headers: input.headers } } : { steps: op.steps, localInputs: input.local }),
160
+ unresolved: op.kind === 'local' ? [] : ['server authentication, authorization and resource state are checked at execution'],
161
+ };
162
+ }
163
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/core/input.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function redact(value: unknown): unknown;
2
+ export declare function errorEnvelope(error: unknown, operation?: string): {
3
+ exitCode: number;
4
+ value: unknown;
5
+ };
6
+ export declare function render(value: unknown, format?: string): string;
@@ -0,0 +1,35 @@
1
+ import { CliError, errorType } from './errors.js';
2
+ const secretKey = /^(authorization|cookie|token|token_value|tokenValue|auth_token|authToken|access_token|accessToken|secretAccessKey|secret_access_key|sessionToken|session_token|credentials|uploadSignature|upload_signature|uploadUrl|upload_url|plain_code|plainCode|codex_snippets|claude_code_snippets|codexSnippets|claudeCodeSnippets)$/i;
3
+ export function redact(value) {
4
+ if (Array.isArray(value))
5
+ return value.map(redact);
6
+ if (value && typeof value === 'object')
7
+ return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, secretKey.test(key) && typeof item !== 'object' ? '[REDACTED]' : secretKey.test(key) && key !== 'token' ? '[REDACTED]' : redact(item)]));
8
+ return value;
9
+ }
10
+ export function errorEnvelope(error, operation) {
11
+ const e = error instanceof CliError ? error : new CliError('INTERNAL_ERROR', error instanceof Error ? error.message : 'Unknown error', 1);
12
+ return { exitCode: e.exitCode, value: redact({ ok: false, operation, error: { type: errorType(e.exitCode), code: e.code, message: e.message, retryable: false, ...e.details }, meta: { contractVersion: '1' } }) };
13
+ }
14
+ export function render(value, format = 'json') {
15
+ if (format === 'json')
16
+ return JSON.stringify(value, null, 2) + '\n';
17
+ const record = value;
18
+ const data = record.data;
19
+ const collectionKey = data && typeof data === 'object' && !Array.isArray(data) ? Object.keys(data).find(key => Array.isArray(data[key])) : undefined;
20
+ const collection = Array.isArray(data) ? data : collectionKey ? data[collectionKey] : undefined;
21
+ const context = collectionKey ? Object.fromEntries(Object.entries(data).filter(([key]) => key !== collectionKey)) : undefined;
22
+ const rows = collection ?? (data === undefined ? [] : [data]);
23
+ if (format === 'table') {
24
+ const objects = rows.map(row => row && typeof row === 'object' && !Array.isArray(row) ? row : { value: row });
25
+ const columns = [...new Set(objects.flatMap(row => Object.keys(row)))];
26
+ const cell = (item) => (typeof item === 'string' ? item : JSON.stringify(item) ?? '').replace(/[\t\r\n]/g, ' ');
27
+ return [columns.join('\t'), ...objects.map(row => columns.map(k => cell(row[k])).join('\t')), `# context ${JSON.stringify(context ?? {})}`, `# meta ${JSON.stringify(record.meta)}`].join('\n') + '\n';
28
+ }
29
+ if (format === 'ndjson') {
30
+ const { data: omitted, ...metadata } = record;
31
+ return [...rows.map(data => JSON.stringify({ type: 'item', data })), JSON.stringify({ type: 'summary', ...metadata, context })].join('\n') + '\n';
32
+ }
33
+ throw new CliError('INVALID_FORMAT', 'Format must be json, table or ndjson');
34
+ }
35
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/core/output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ export type Access = 'read' | 'write';
2
+ export type JsonObject = Record<string, unknown>;
3
+ export interface Schema {
4
+ type?: 'object' | 'array' | 'string' | 'number' | 'integer' | 'boolean' | 'null';
5
+ properties?: Record<string, Schema>;
6
+ required?: string[];
7
+ additionalProperties?: boolean | Schema;
8
+ items?: Schema;
9
+ enum?: unknown[];
10
+ anyOf?: Schema[];
11
+ minimum?: number;
12
+ maximum?: number;
13
+ pattern?: string;
14
+ description?: string;
15
+ }
16
+ export interface Field {
17
+ flag: string;
18
+ key: string;
19
+ in: 'params' | 'data' | 'headers' | 'local';
20
+ schema: Schema;
21
+ required?: boolean;
22
+ identity?: boolean;
23
+ }
24
+ export interface Operation {
25
+ id: string;
26
+ command: string;
27
+ description: string;
28
+ access: Access;
29
+ kind: 'api' | 'workflow' | 'local';
30
+ effects: string[];
31
+ scope: string;
32
+ fields: Field[];
33
+ params: Schema;
34
+ data?: Schema;
35
+ method?: string;
36
+ path?: string;
37
+ confirmation: boolean;
38
+ permission?: string;
39
+ blocked?: string;
40
+ pagination?: {
41
+ location: 'params' | 'data';
42
+ kind: 'page' | 'offset' | 'cursor';
43
+ key: string;
44
+ size: string;
45
+ items: string;
46
+ total?: string;
47
+ next?: string;
48
+ };
49
+ steps?: string[];
50
+ source: string;
51
+ }
52
+ export interface Input {
53
+ params: JsonObject;
54
+ data?: JsonObject;
55
+ headers: Record<string, string>;
56
+ local: JsonObject;
57
+ }
58
+ export interface Plan {
59
+ operation: string;
60
+ access: Access;
61
+ scope: string;
62
+ effects: string[];
63
+ request?: {
64
+ method: string;
65
+ path: string;
66
+ params: JsonObject;
67
+ data?: JsonObject;
68
+ headers: Record<string, string>;
69
+ };
70
+ steps?: string[];
71
+ localInputs?: JsonObject;
72
+ unresolved: string[];
73
+ }
74
+ export declare const object: (properties?: Record<string, Schema>, required?: string[]) => Schema;
75
+ export declare const string: Schema;
76
+ export declare const integer: Schema;
77
+ export declare const boolean: Schema;
@@ -0,0 +1,5 @@
1
+ export const object = (properties = {}, required = []) => ({ type: 'object', properties, required, additionalProperties: false });
2
+ export const string = { type: 'string' };
3
+ export const integer = { type: 'integer', minimum: 0 };
4
+ export const boolean = { type: 'boolean' };
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAyEA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,aAAqC,EAAE,EAAE,WAAqB,EAAE,EAAU,EAAE,CACjG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,MAAM,GAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACjD,MAAM,CAAC,MAAM,OAAO,GAAW,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAC/D,MAAM,CAAC,MAAM,OAAO,GAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC"}
package/dist/http.d.ts CHANGED
@@ -6,11 +6,19 @@ export declare class HttpError extends Error {
6
6
  export interface HttpClientOptions {
7
7
  adminUrl: string;
8
8
  token?: string;
9
+ cookie?: string;
10
+ mode?: 'read' | 'write';
11
+ timeoutMs?: number;
12
+ }
13
+ export interface RequestOptions {
14
+ params?: Record<string, unknown>;
15
+ headers?: Record<string, string>;
16
+ access?: 'read' | 'write';
9
17
  }
10
18
  export declare class HttpClient {
11
19
  private readonly options;
12
20
  constructor(options: HttpClientOptions);
13
- request<T>(method: string, path: string, body?: unknown): Promise<T>;
21
+ request<T>(method: string, path: string, body?: unknown, request?: RequestOptions): Promise<T>;
14
22
  get<T>(path: string): Promise<T>;
15
23
  post<T>(path: string, body?: unknown): Promise<T>;
16
24
  patch<T>(path: string, body?: unknown): Promise<T>;
package/dist/http.js CHANGED
@@ -12,52 +12,55 @@ export class HttpClient {
12
12
  constructor(options) {
13
13
  this.options = options;
14
14
  }
15
- async request(method, path, body) {
16
- const headers = {
17
- accept: 'application/json',
18
- };
19
- if (this.options.token) {
20
- headers.authorization = `Bearer ${this.options.token}`;
15
+ async request(method, path, body, request = {}) {
16
+ const access = request.access ?? (['GET', 'HEAD', 'OPTIONS'].includes(method) ? 'read' : 'write');
17
+ if (this.options.mode === 'read' && access === 'write')
18
+ throw new HttpError('Write operation denied by local read mode', 403, undefined);
19
+ const origin = new URL(this.options.adminUrl).origin;
20
+ if (!path.startsWith('/') || path.startsWith('//'))
21
+ throw new HttpError('Expected a relative API path', 400, undefined);
22
+ const url = new URL(path, origin);
23
+ if (url.origin !== origin)
24
+ throw new HttpError('Cross-origin API request denied', 400, undefined);
25
+ if (url.protocol !== 'https:' && !(url.protocol === 'http:' && ['localhost', '127.0.0.1', '[::1]'].includes(url.hostname)))
26
+ throw new HttpError('Credentials require HTTPS (except localhost)', 400, undefined);
27
+ for (const [key, value] of Object.entries(request.params ?? {})) {
28
+ if (value === undefined || value === null)
29
+ continue;
30
+ for (const item of Array.isArray(value) ? value : [value])
31
+ url.searchParams.append(key, String(item));
21
32
  }
22
- let payload;
23
- if (body !== undefined) {
24
- headers['content-type'] = 'application/json';
25
- payload = JSON.stringify(body);
33
+ const headers = { accept: 'application/json' };
34
+ for (const [key, value] of Object.entries(request.headers ?? {})) {
35
+ if (key !== 'brand_id')
36
+ throw new HttpError('Unsupported request header', 400, undefined);
37
+ headers[key] = value;
26
38
  }
27
- const response = await fetch(`${this.options.adminUrl}${path}`, {
28
- method,
29
- headers,
30
- body: payload,
31
- });
39
+ if (this.options.token)
40
+ headers.authorization = `Bearer ${this.options.token}`;
41
+ if (this.options.cookie)
42
+ headers.cookie = this.options.cookie;
43
+ if (body !== undefined)
44
+ headers['content-type'] = 'application/json';
45
+ const response = await fetch(url, { method, headers, body: body === undefined ? undefined : JSON.stringify(body),
46
+ redirect: 'error', signal: AbortSignal.timeout(this.options.timeoutMs ?? 30_000) });
32
47
  const text = await response.text();
33
- const parsed = parseResponseBody(text);
34
- if (!response.ok) {
35
- throw new HttpError(`HTTP ${response.status} ${response.statusText}`, response.status, parsed);
48
+ let parsed = {};
49
+ if (text.trim()) {
50
+ try {
51
+ parsed = JSON.parse(text);
52
+ }
53
+ catch {
54
+ parsed = text;
55
+ }
36
56
  }
57
+ if (!response.ok)
58
+ throw new HttpError(`HTTP ${response.status} ${response.statusText}`, response.status, parsed);
37
59
  return parsed;
38
60
  }
39
- get(path) {
40
- return this.request('GET', path);
41
- }
42
- post(path, body) {
43
- return this.request('POST', path, body);
44
- }
45
- patch(path, body) {
46
- return this.request('PATCH', path, body);
47
- }
48
- delete(path) {
49
- return this.request('DELETE', path);
50
- }
51
- }
52
- function parseResponseBody(text) {
53
- if (!text.trim()) {
54
- return {};
55
- }
56
- try {
57
- return JSON.parse(text);
58
- }
59
- catch {
60
- return text;
61
- }
61
+ get(path) { return this.request('GET', path); }
62
+ post(path, body) { return this.request('POST', path, body); }
63
+ patch(path, body) { return this.request('PATCH', path, body); }
64
+ delete(path) { return this.request('DELETE', path); }
62
65
  }
63
66
  //# sourceMappingURL=http.js.map
package/dist/http.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAU,SAAQ,KAAK;IAGvB;IACA;IAHX,YACE,OAAe,EACN,MAAc,EACd,IAAa;QAEtB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAS;IAGxB,CAAC;CACF;AAOD,MAAM,OAAO,UAAU;IACQ;IAA7B,YAA6B,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;IAAG,CAAC;IAE3D,KAAK,CAAC,OAAO,CAAI,MAAc,EAAE,IAAY,EAAE,IAAc;QAC3D,MAAM,OAAO,GAA2B;YACtC,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QACF,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACvB,OAAO,CAAC,aAAa,GAAG,UAAU,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACzD,CAAC;QACD,IAAI,OAA6B,CAAC;QAClC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;YAC7C,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,EAAE,EAAE;YAC9D,MAAM;YACN,OAAO;YACP,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,SAAS,CAAC,QAAQ,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjG,CAAC;QACD,OAAO,MAAW,CAAC;IACrB,CAAC;IAED,GAAG,CAAI,IAAY;QACjB,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAI,IAAY,EAAE,IAAc;QAClC,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAI,IAAY,EAAE,IAAc;QACnC,OAAO,IAAI,CAAC,OAAO,CAAI,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAI,IAAY;QACpB,OAAO,IAAI,CAAC,OAAO,CAAI,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;CACF;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,12 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import { createInterface } from 'node:readline/promises';
3
3
  import { stdin as input, stdout as output } from 'node:process';
4
- import { Command } from 'commander';
4
+ import { Command, CommanderError } from 'commander';
5
+ import { CliError } from './core/errors.js';
5
6
  import { AppApi } from './appApi.js';
6
7
  import { CONFIG_PATH, readConfig, resolveRuntimeConfig, writeConfig } from './config.js';
7
8
  import { HttpClient } from './http.js';
8
9
  import { inspectZip } from './zip.js';
9
- const program = new Command();
10
+ import { registerOperations } from './core/commands.js';
11
+ import { errorEnvelope, render } from './core/output.js';
12
+ const program = new Command().exitOverride().configureOutput({ writeErr: () => { } });
10
13
  const ADMIN_TOKEN_INSPECT_PATH = '/api/admin/api/v1/admin/auth/token/inspect';
11
14
  program
12
15
  .name('tutti-ops')
@@ -106,6 +109,13 @@ app
106
109
  .option('--latest')
107
110
  .option('--reason <reason>')
108
111
  .action(runApp((api, options) => api.release(options)));
112
+ app
113
+ .command('sync-metadata')
114
+ .requiredOption('--brand <brand>')
115
+ .requiredOption('--app-id <appId>')
116
+ .requiredOption('--zip <zip>')
117
+ .option('--reason <reason>')
118
+ .action(runApp((api, options) => api.syncMetadata(options.appId, options.zip, options.reason)));
109
119
  app
110
120
  .command('publish')
111
121
  .requiredOption('--brand <brand>')
@@ -128,15 +138,19 @@ app
128
138
  .requiredOption('--version <version>')
129
139
  .option('--reason <reason>')
130
140
  .action(runApp((api, options) => api.archive(options.appId, options.version, options.reason)));
141
+ registerOperations(program);
131
142
  program.parseAsync().catch((error) => {
132
- console.error(error instanceof Error ? error.message : String(error));
133
- process.exitCode = 1;
143
+ if (error instanceof CommanderError && error.exitCode === 0)
144
+ return;
145
+ const failure = errorEnvelope(error instanceof CommanderError ? new CliError('INVALID_ARGUMENTS', 'Invalid arguments; run the command with --help') : error);
146
+ process.stderr.write(render(failure.value));
147
+ process.exitCode = failure.exitCode;
134
148
  });
135
149
  function run(handler) {
136
150
  return async () => {
137
151
  const options = program.opts();
138
152
  const runtime = await resolveRuntimeConfig(options);
139
- if (!runtime.token) {
153
+ if (!runtime.token && !runtime.cookie) {
140
154
  throw new Error('TUTTI_ADMIN_TOKEN is required. Run `tutti-ops auth login` first.');
141
155
  }
142
156
  print(await handler(new HttpClient(runtime)));
@@ -146,7 +160,7 @@ function runApp(handler) {
146
160
  return async (options) => {
147
161
  const rootOptions = program.opts();
148
162
  const runtime = await resolveRuntimeConfig(rootOptions);
149
- if (!runtime.token) {
163
+ if (!runtime.token && !runtime.cookie) {
150
164
  throw new Error('TUTTI_ADMIN_TOKEN is required. Run `tutti-ops auth login` first.');
151
165
  }
152
166
  print(await handler(new AppApi(new HttpClient(runtime)), options));
@@ -173,6 +187,6 @@ async function resolveIconUrl(api, options) {
173
187
  return api.uploadAppIcon(options.appId, icon);
174
188
  }
175
189
  function inspectAdminToken(client, token) {
176
- return client.post(ADMIN_TOKEN_INSPECT_PATH, token ? { token_value: token } : {});
190
+ return client.request('POST', ADMIN_TOKEN_INSPECT_PATH, token ? { token_value: token, metadata_only: true } : { metadata_only: true }, { access: 'read' });
177
191
  }
178
192
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Schema } from "../core/types.js";
2
+ export declare const adminSchemas: Record<string, Schema>;