@typeship-ax/cli 0.22.0 → 0.23.1

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 (138) hide show
  1. package/AGENTS.md +12 -8
  2. package/README.md +14 -27
  3. package/api.json +8898 -9026
  4. package/api.md +369 -327
  5. package/dist/arguments.d.ts +47 -0
  6. package/dist/arguments.d.ts.map +1 -0
  7. package/dist/arguments.js +254 -0
  8. package/dist/cli-agent.d.ts +31 -8
  9. package/dist/cli-agent.d.ts.map +1 -1
  10. package/dist/cli-agent.js +146 -28
  11. package/dist/cli.js +483 -237
  12. package/dist/core/http.d.ts +162 -19
  13. package/dist/core/http.d.ts.map +1 -1
  14. package/dist/core/http.js +381 -48
  15. package/dist/core/pagination.d.ts +42 -6
  16. package/dist/core/pagination.d.ts.map +1 -1
  17. package/dist/core/pagination.js +111 -17
  18. package/dist/credential-storage.d.ts +10 -3
  19. package/dist/credential-storage.d.ts.map +1 -1
  20. package/dist/credential-storage.js +15 -6
  21. package/dist/dates.d.ts +1 -1
  22. package/dist/dates.js +1 -1
  23. package/dist/errors.d.ts +20 -84
  24. package/dist/errors.d.ts.map +1 -1
  25. package/dist/errors.js +20 -108
  26. package/dist/fields.d.ts +29 -0
  27. package/dist/fields.d.ts.map +1 -0
  28. package/dist/fields.js +101 -0
  29. package/dist/index.d.ts +28 -18
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +35 -25
  32. package/dist/named-credentials.d.ts +19 -0
  33. package/dist/named-credentials.d.ts.map +1 -1
  34. package/dist/named-credentials.js +81 -1
  35. package/dist/oauth-login.d.ts +8 -2
  36. package/dist/oauth-login.d.ts.map +1 -1
  37. package/dist/oauth-login.js +31 -19
  38. package/dist/oauth-request.d.ts +7 -1
  39. package/dist/oauth-request.d.ts.map +1 -1
  40. package/dist/oauth-request.js +26 -4
  41. package/dist/oauth-session.d.ts +13 -1
  42. package/dist/oauth-session.d.ts.map +1 -1
  43. package/dist/oauth-session.js +34 -18
  44. package/dist/ops.d.ts +53 -5
  45. package/dist/ops.d.ts.map +1 -1
  46. package/dist/ops.js +49 -40
  47. package/dist/polling-login.d.ts +8 -2
  48. package/dist/polling-login.d.ts.map +1 -1
  49. package/dist/polling-login.js +25 -11
  50. package/dist/resources/api-keys.d.ts +10 -7
  51. package/dist/resources/api-keys.d.ts.map +1 -1
  52. package/dist/resources/api-keys.js +10 -31
  53. package/dist/resources/deliveries.d.ts +88 -4
  54. package/dist/resources/deliveries.d.ts.map +1 -1
  55. package/dist/resources/deliveries.js +95 -18
  56. package/dist/resources/drafts.d.ts +15 -15
  57. package/dist/resources/drafts.d.ts.map +1 -1
  58. package/dist/resources/drafts.js +11 -64
  59. package/dist/resources/files.d.ts +4 -4
  60. package/dist/resources/files.d.ts.map +1 -1
  61. package/dist/resources/files.js +3 -12
  62. package/dist/resources/generations.d.ts +14 -14
  63. package/dist/resources/generations.d.ts.map +1 -1
  64. package/dist/resources/generations.js +21 -45
  65. package/dist/resources/organization.d.ts +4 -4
  66. package/dist/resources/organization.d.ts.map +1 -1
  67. package/dist/resources/organization.js +3 -10
  68. package/dist/resources/{generate.d.ts → packages.d.ts} +16 -16
  69. package/dist/resources/packages.d.ts.map +1 -0
  70. package/dist/resources/{generate.js → packages.js} +13 -29
  71. package/dist/resources/projects.d.ts +50 -50
  72. package/dist/resources/projects.d.ts.map +1 -1
  73. package/dist/resources/projects.js +60 -116
  74. package/dist/resources/releases.d.ts +21 -16
  75. package/dist/resources/releases.d.ts.map +1 -1
  76. package/dist/resources/releases.js +18 -39
  77. package/dist/resources/spec-revisions.d.ts +15 -6
  78. package/dist/resources/spec-revisions.d.ts.map +1 -1
  79. package/dist/resources/spec-revisions.js +6 -28
  80. package/dist/resources/specs.d.ts +7 -7
  81. package/dist/resources/specs.d.ts.map +1 -1
  82. package/dist/resources/specs.js +6 -34
  83. package/dist/resources/targets.d.ts +48 -48
  84. package/dist/resources/targets.d.ts.map +1 -1
  85. package/dist/resources/targets.js +58 -114
  86. package/dist/schemas.d.ts.map +1 -1
  87. package/dist/schemas.js +83 -81
  88. package/dist/search.d.ts +54 -0
  89. package/dist/search.d.ts.map +1 -0
  90. package/dist/search.js +421 -0
  91. package/dist/types.d.ts +499 -339
  92. package/dist/types.d.ts.map +1 -1
  93. package/dist/types.js +18 -18
  94. package/package.json +5 -2
  95. package/src/arguments.ts +242 -0
  96. package/src/cli-agent.ts +156 -30
  97. package/src/cli.ts +444 -211
  98. package/src/core/http.ts +457 -58
  99. package/src/core/pagination.ts +129 -18
  100. package/src/credential-storage.ts +16 -6
  101. package/src/dates.ts +1 -1
  102. package/src/errors.ts +46 -115
  103. package/src/fields.ts +91 -0
  104. package/src/index.ts +45 -28
  105. package/src/named-credentials.ts +66 -1
  106. package/src/oauth-login.ts +36 -21
  107. package/src/oauth-request.ts +32 -6
  108. package/src/oauth-session.ts +37 -19
  109. package/src/ops.ts +82 -44
  110. package/src/polling-login.ts +24 -11
  111. package/src/resources/api-keys.ts +34 -48
  112. package/src/resources/deliveries.ts +211 -30
  113. package/src/resources/drafts.ts +60 -107
  114. package/src/resources/files.ts +19 -20
  115. package/src/resources/generations.ts +57 -75
  116. package/src/resources/organization.ts +11 -16
  117. package/src/resources/{generate.ts → packages.ts} +43 -51
  118. package/src/resources/projects.ts +145 -200
  119. package/src/resources/releases.ts +48 -65
  120. package/src/resources/spec-revisions.ts +38 -47
  121. package/src/resources/specs.ts +39 -59
  122. package/src/resources/targets.ts +143 -193
  123. package/src/schemas.ts +83 -81
  124. package/src/search.ts +434 -0
  125. package/src/types.ts +538 -357
  126. package/dist/console-login-check.d.ts +0 -21
  127. package/dist/console-login-check.d.ts.map +0 -1
  128. package/dist/console-login-check.js +0 -107
  129. package/dist/console-login-contract.d.ts +0 -45
  130. package/dist/console-login-contract.d.ts.map +0 -1
  131. package/dist/console-login-contract.js +0 -40
  132. package/dist/resources/generate.d.ts.map +0 -1
  133. package/dist/resources/publications.d.ts +0 -47
  134. package/dist/resources/publications.d.ts.map +0 -1
  135. package/dist/resources/publications.js +0 -70
  136. package/src/console-login-check.ts +0 -88
  137. package/src/console-login-contract.ts +0 -65
  138. package/src/resources/publications.ts +0 -140
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Argument checks shared by the generated CLI and MCP server: coerce a value
3
+ * toward its schema where the intent is unambiguous, and report every
4
+ * problem, nested ones included, with the dotted path of the argument it
5
+ * belongs to. Generated by Typeship — https://typeship.dev
6
+ * No external dependencies.
7
+ */
8
+ export interface ArgumentIssue {
9
+ code: "UNKNOWN_ARGUMENT" | "INVALID_ARGUMENT" | "MISSING_ARGUMENT";
10
+ argument: string;
11
+ message: string;
12
+ }
13
+ export declare const normalizeName: (name: string) => string;
14
+ /** The closest accepted name: same letters ignoring case/punctuation first,
15
+ * then a small edit distance. Undefined when nothing is close. */
16
+ export declare function closestName(name: string, known: string[]): string | undefined;
17
+ /**
18
+ * Coerce one value toward its schema when the intent is unambiguous: the
19
+ * strings agents produce for booleans and numbers, a JSON string for an
20
+ * object or array, a scalar for a one-element array, an enum member in the
21
+ * wrong case. Returns the value to send, or a message when it can't be made
22
+ * to fit. Untyped schemas (unions, anything) pass through. The first
23
+ * problem only; checkValue reports every nested one.
24
+ */
25
+ export declare function coerceValue(value: unknown, schema: Record<string, unknown>): {
26
+ value: unknown;
27
+ } | {
28
+ error: string;
29
+ };
30
+ /**
31
+ * Check one argument value against its schema, the way prepareCall checks
32
+ * top-level arguments, and return the value to send. Recurses into array
33
+ * items and object properties: types and enums are coerced where the intent
34
+ * is clear, required properties must be present, strings must match their
35
+ * pattern, and keys an object declares closed (`additionalProperties:
36
+ * false`, as every GraphQL input type is) must be known. Every problem is
37
+ * pushed to issues with its dotted path (input.priority, items[0].name).
38
+ */
39
+ export declare function checkValue(value: unknown, schema: Record<string, unknown>, path: string, issues: ArgumentIssue[], options?: {
40
+ skipPattern?: boolean;
41
+ depth?: number;
42
+ }): unknown;
43
+ export declare function userShapedReference(name: string): boolean;
44
+ /** "me" given for a user-shaped argument or property, resolved to the
45
+ * caller's ID through the identity tool. */
46
+ export declare function isMeReference(name: string, value: string): boolean;
47
+ //# sourceMappingURL=arguments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arguments.d.ts","sourceRoot":"","sources":["../src/arguments.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,MAAsD,CAAC;AAgBpG;kEACkE;AAClE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAU7E;AASD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAInH;AAgFD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,EAAE,EACvB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GACtD,OAAO,CAsET;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGzD;AAED;4CAC4C;AAC5C,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAElE"}
@@ -0,0 +1,254 @@
1
+ /**
2
+ * Argument checks shared by the generated CLI and MCP server: coerce a value
3
+ * toward its schema where the intent is unambiguous, and report every
4
+ * problem, nested ones included, with the dotted path of the argument it
5
+ * belongs to. Generated by Typeship — https://typeship.dev
6
+ * No external dependencies.
7
+ */
8
+ import { dateKindOf, relativeDate } from "./dates.js";
9
+ export const normalizeName = (name) => name.toLowerCase().replace(/[^a-z0-9]/g, "");
10
+ function editDistance(a, b) {
11
+ const prev = Array.from({ length: b.length + 1 }, (_, i) => i);
12
+ for (let i = 1; i <= a.length; i++) {
13
+ let diag = prev[0];
14
+ prev[0] = i;
15
+ for (let j = 1; j <= b.length; j++) {
16
+ const tmp = prev[j];
17
+ prev[j] = Math.min(prev[j] + 1, prev[j - 1] + 1, diag + (a[i - 1] === b[j - 1] ? 0 : 1));
18
+ diag = tmp;
19
+ }
20
+ }
21
+ return prev[b.length];
22
+ }
23
+ /** The closest accepted name: same letters ignoring case/punctuation first,
24
+ * then a small edit distance. Undefined when nothing is close. */
25
+ export function closestName(name, known) {
26
+ const exact = known.filter((k) => normalizeName(k) === normalizeName(name));
27
+ if (exact.length === 1)
28
+ return exact[0];
29
+ if (exact.length > 1)
30
+ return undefined;
31
+ let best;
32
+ for (const k of known) {
33
+ const d = editDistance(name.toLowerCase(), k.toLowerCase());
34
+ if (d <= Math.max(1, Math.floor(k.length / 4)) && (best === undefined || d < best.d))
35
+ best = { name: k, d };
36
+ }
37
+ return best?.name;
38
+ }
39
+ function schemaTypes(schema) {
40
+ const t = schema.type;
41
+ if (typeof t === "string")
42
+ return [t];
43
+ if (Array.isArray(t))
44
+ return t.filter((x) => typeof x === "string");
45
+ return [];
46
+ }
47
+ /**
48
+ * Coerce one value toward its schema when the intent is unambiguous: the
49
+ * strings agents produce for booleans and numbers, a JSON string for an
50
+ * object or array, a scalar for a one-element array, an enum member in the
51
+ * wrong case. Returns the value to send, or a message when it can't be made
52
+ * to fit. Untyped schemas (unions, anything) pass through. The first
53
+ * problem only; checkValue reports every nested one.
54
+ */
55
+ export function coerceValue(value, schema) {
56
+ const issues = [];
57
+ const out = checkValue(value, schema, "", issues);
58
+ return issues.length > 0 ? { error: issues[0].message } : { value: out };
59
+ }
60
+ /** Coerce one scalar-level value (type and enum) without looking inside it. */
61
+ function coerceShallow(value, schema) {
62
+ if (value === null || value === undefined)
63
+ return { value };
64
+ // Date-shaped arguments take relative forms (-P7D, 7 days ago, today),
65
+ // resolved here so the API sees an absolute value.
66
+ const dateKind = dateKindOf(schema.format);
67
+ if (dateKind && typeof value === "string") {
68
+ const resolved = relativeDate(value, dateKind);
69
+ if (resolved && "error" in resolved)
70
+ return { error: resolved.error };
71
+ if (resolved)
72
+ value = resolved.value;
73
+ }
74
+ const types = schemaTypes(schema);
75
+ const enumValues = Array.isArray(schema.enum) ? schema.enum : undefined;
76
+ const accepts = (t) => types.length === 0 || types.includes(t);
77
+ const kind = Array.isArray(value) ? "array" : typeof value;
78
+ let out = value;
79
+ if (types.length > 0) {
80
+ if (kind === "boolean" && !accepts("boolean")) {
81
+ if (accepts("string"))
82
+ out = String(value);
83
+ else
84
+ return { error: "expected " + types.join(" or ") + ", got boolean" };
85
+ }
86
+ else if (kind === "number" && !accepts("number") && !accepts("integer")) {
87
+ if (accepts("string"))
88
+ out = String(value);
89
+ else if (accepts("array"))
90
+ out = [value];
91
+ else
92
+ return { error: "expected " + types.join(" or ") + ", got number" };
93
+ }
94
+ else if (kind === "number" && accepts("integer") && !accepts("number") && !Number.isInteger(value)) {
95
+ return { error: "expected an integer, got " + String(value) };
96
+ }
97
+ else if (kind === "string" && !accepts("string")) {
98
+ const s = value.trim();
99
+ if (accepts("boolean") && /^(true|false|yes|no|1|0)$/i.test(s))
100
+ out = /^(true|yes|1)$/i.test(s);
101
+ else if ((accepts("integer") || accepts("number")) && s !== "" && !Number.isNaN(Number(s))) {
102
+ const n = Number(s);
103
+ if (accepts("integer") && !accepts("number") && !Number.isInteger(n))
104
+ return { error: "expected an integer, got \"" + s + "\"" };
105
+ out = n;
106
+ }
107
+ else if ((accepts("object") || accepts("array")) && /^[[{]/.test(s)) {
108
+ try {
109
+ const parsed = JSON.parse(s);
110
+ const parsedKind = Array.isArray(parsed) ? "array" : parsed === null ? "null" : typeof parsed;
111
+ if (!accepts(parsedKind))
112
+ return { error: "expected " + types.join(" or ") + ", got a JSON " + parsedKind + " in a string" };
113
+ out = parsed;
114
+ }
115
+ catch {
116
+ return { error: "expected " + types.join(" or ") + ", got a string that is not valid JSON" };
117
+ }
118
+ }
119
+ else if (accepts("array")) {
120
+ out = [value];
121
+ }
122
+ else {
123
+ return { error: "expected " + types.join(" or ") + ", got string" };
124
+ }
125
+ }
126
+ else if (kind === "object" && !accepts("object")) {
127
+ if (accepts("array"))
128
+ out = [value];
129
+ else
130
+ return { error: "expected " + types.join(" or ") + ", got object" };
131
+ }
132
+ else if (kind === "array" && !accepts("array")) {
133
+ return { error: "expected " + types.join(" or ") + ", got array" };
134
+ }
135
+ }
136
+ if (enumValues && typeof out === "string" && !enumValues.includes(out)) {
137
+ const match = enumValues.filter((e) => typeof e === "string" && e.toLowerCase() === out.toLowerCase());
138
+ if (match.length === 1)
139
+ out = match[0];
140
+ else
141
+ return { error: "must be one of " + enumValues.map((e) => JSON.stringify(e)).join(", ") + ", got " + JSON.stringify(out) };
142
+ }
143
+ return { value: out };
144
+ }
145
+ /** A nullable single-variant union (`anyOf: [X, {type: "null"}]`, the shape
146
+ * nullable GraphQL enums and objects take) validates as X; any other union
147
+ * passes through unchecked. */
148
+ function nullableVariant(schema) {
149
+ const variants = schema.anyOf ?? schema.oneOf;
150
+ if (!Array.isArray(variants) || variants.length !== 2 || schema.type !== undefined)
151
+ return undefined;
152
+ const isNull = (v) => Boolean(v) && typeof v === "object" && v.type === "null";
153
+ const others = variants.filter((v) => !isNull(v));
154
+ if (others.length !== 1 || !others[0] || typeof others[0] !== "object")
155
+ return undefined;
156
+ return others[0];
157
+ }
158
+ const MAX_CHECK_DEPTH = 16;
159
+ /**
160
+ * Check one argument value against its schema, the way prepareCall checks
161
+ * top-level arguments, and return the value to send. Recurses into array
162
+ * items and object properties: types and enums are coerced where the intent
163
+ * is clear, required properties must be present, strings must match their
164
+ * pattern, and keys an object declares closed (`additionalProperties:
165
+ * false`, as every GraphQL input type is) must be known. Every problem is
166
+ * pushed to issues with its dotted path (input.priority, items[0].name).
167
+ */
168
+ export function checkValue(value, schema, path, issues, options = {}) {
169
+ const depth = options.depth ?? 0;
170
+ const at = (suffix) => path === "" ? suffix : path + ": " + suffix;
171
+ if (value === null || value === undefined)
172
+ return value;
173
+ const variant = nullableVariant(schema);
174
+ if (variant)
175
+ return checkValue(value, variant, path, issues, options);
176
+ const shallow = coerceShallow(value, schema);
177
+ if ("error" in shallow) {
178
+ issues.push({ code: "INVALID_ARGUMENT", argument: path, message: at(shallow.error) });
179
+ return value;
180
+ }
181
+ let out = shallow.value;
182
+ if (depth >= MAX_CHECK_DEPTH)
183
+ return out;
184
+ if (typeof out === "string" && typeof schema.pattern === "string" && !options.skipPattern) {
185
+ let pattern;
186
+ try {
187
+ pattern = new RegExp(schema.pattern, "u");
188
+ }
189
+ catch {
190
+ try {
191
+ pattern = new RegExp(schema.pattern);
192
+ }
193
+ catch { /* not an ECMAScript pattern: never false-alarm */ }
194
+ }
195
+ if (pattern && !pattern.test(out)) {
196
+ issues.push({ code: "INVALID_ARGUMENT", argument: path, message: at("must match the pattern " + schema.pattern + ", got " + JSON.stringify(out)) });
197
+ }
198
+ }
199
+ // Array items: check each against the items schema when it has one.
200
+ if (Array.isArray(out) && schema.items && typeof schema.items === "object" && !Array.isArray(schema.items)) {
201
+ const itemSchema = schema.items;
202
+ out = out.map((item, i) => checkValue(item, itemSchema, path + "[" + i + "]", issues, { depth: depth + 1 }));
203
+ }
204
+ // Object properties: the same checks one level down, keyed by dotted path.
205
+ if (out && typeof out === "object" && !Array.isArray(out) && schema.properties && typeof schema.properties === "object") {
206
+ const properties = schema.properties;
207
+ const known = Object.keys(properties);
208
+ const closed = schema.additionalProperties === false;
209
+ const input = out;
210
+ const next = {};
211
+ const child = (key) => path === "" ? key : path + "." + key;
212
+ for (const [key, entry] of Object.entries(input)) {
213
+ if (entry === undefined)
214
+ continue;
215
+ let name = key;
216
+ if (properties[key] === undefined && closed) {
217
+ const close = closestName(key, known);
218
+ if (close !== undefined && normalizeName(close) === normalizeName(key) && input[close] === undefined) {
219
+ name = close;
220
+ }
221
+ else {
222
+ const accepted = known.length <= 20 ? " Accepted: " + known.join(", ") + "." : "";
223
+ issues.push({
224
+ code: "UNKNOWN_ARGUMENT",
225
+ argument: child(key),
226
+ message: "Unknown property \"" + child(key) + "\"" + (close !== undefined ? "; did you mean \"" + child(close) + "\"?" : ".") + accepted,
227
+ });
228
+ continue;
229
+ }
230
+ }
231
+ const propSchema = properties[name];
232
+ next[name] = propSchema && typeof propSchema === "object"
233
+ ? checkValue(entry, propSchema, child(name), issues, { depth: depth + 1, skipPattern: typeof entry === "string" && isMeReference(name, entry) })
234
+ : entry;
235
+ }
236
+ for (const name of Array.isArray(schema.required) ? schema.required : []) {
237
+ if (next[name] === undefined && properties[name] !== undefined) {
238
+ const description = properties[name].description;
239
+ issues.push({ code: "MISSING_ARGUMENT", argument: child(name), message: "Missing required property \"" + child(name) + "\"" + (description ? ": " + String(description).split("\n")[0] : ".") });
240
+ }
241
+ }
242
+ out = next;
243
+ }
244
+ return out;
245
+ }
246
+ export function userShapedReference(name) {
247
+ const normalized = name.toLowerCase().replace(/[^a-z0-9]/g, "").replace(/ids?$/, "");
248
+ return ["user", "assignee", "owner", "member", "actor", "creator", "account", "profile", "subscriber"].includes(normalized);
249
+ }
250
+ /** "me" given for a user-shaped argument or property, resolved to the
251
+ * caller's ID through the identity tool. */
252
+ export function isMeReference(name, value) {
253
+ return value.trim().toLowerCase() === "me" && userShapedReference(name);
254
+ }
@@ -2,7 +2,7 @@
2
2
  * Stable codes an agent can branch on. The message is for people; the code
3
3
  * is the contract. Additive only.
4
4
  */
5
- export type IssueCode = "NO_AUTH" | "AUTH_INVALID" | "PLAN_LIMIT" | "NOT_FOUND" | "INVALID_REQUEST" | "SPEC_INVALID" | "RATE_LIMITED" | "SERVER_ERROR" | "NETWORK_ERROR" | "VALIDATION_FAILED" | "TTY_REQUIRED" | "CONFIRMATION_REQUIRED" | "INVALID_USAGE" | "UNKNOWN_COMMAND" | "UNKNOWN_FLAG" | "MISSING_ARGUMENT" | "CALL_FAILED";
5
+ export type IssueCode = "NO_AUTH" | "AUTH_INVALID" | "INSUFFICIENT_SCOPE" | "PLAN_LIMIT" | "NOT_FOUND" | "INVALID_REQUEST" | "SPEC_INVALID" | "RATE_LIMITED" | "SERVER_ERROR" | "NETWORK_ERROR" | "VALIDATION_FAILED" | "TTY_REQUIRED" | "LOGIN_FAILED" | "LOGIN_REQUIRED" | "CREDENTIAL_STORE_UNAVAILABLE" | "CONFIRMATION_REQUIRED" | "INVALID_USAGE" | "UNKNOWN_COMMAND" | "UNKNOWN_FLAG" | "MISSING_ARGUMENT" | "FIELDS_UNMATCHED" | "CALL_FAILED";
6
6
  export interface Issue {
7
7
  code: IssueCode;
8
8
  message: string;
@@ -32,9 +32,25 @@ export declare function exitCodeFor(code: IssueCode): 1 | 2;
32
32
  /** Interpret an SDK error result: HTTP status, body, transport, validation. */
33
33
  export declare function classifyApiError(error: unknown, context: {
34
34
  bin: string;
35
+ envPrefix: string;
35
36
  hadCredential: boolean;
36
37
  docsUrl: string | null;
38
+ requiredScopes?: string[];
39
+ canLogin?: boolean;
37
40
  }): EnvelopeInput;
41
+ /** Login, saved-session and credential-store failures, recognised by error
42
+ * name (so this module needs no login runtime) on the error or its cause.
43
+ * Undefined when the error is none of them. */
44
+ export declare function classifyAuthFailure(error: unknown, context: {
45
+ bin: string;
46
+ envVars: string[];
47
+ storeVariable: string;
48
+ }): EnvelopeInput | undefined;
49
+ /** "Wait until <time>" when the API said when the limit resets. */
50
+ export declare function rateLimitNextStep(retryAt: Date | undefined, then: string): string;
51
+ /** Error codes APIs report inside a 2xx body (Slack's `error`), mapped to
52
+ * the stable codes when their meaning is unambiguous. */
53
+ export declare function payloadFailureCode(code: unknown): "AUTH_INVALID" | "RATE_LIMITED" | undefined;
38
54
  export interface AgentModeInput {
39
55
  flagMode: string | boolean | undefined;
40
56
  envMode: string | undefined;
@@ -71,6 +87,13 @@ export interface McpClient {
71
87
  write: (existing: string, name: string, entry: McpEntry) => string;
72
88
  /** True when the client cannot speak the current MCP protocol; skipped by --all. */
73
89
  incompatible?: string;
90
+ /**
91
+ * How the client expands an environment variable inside a header value.
92
+ * Entries carry `${VAR}`; each client gets its own spelling, and a client
93
+ * that expands nothing gets no Authorization header rather than a literal
94
+ * one it would send as-is. Defaults to "dollar".
95
+ */
96
+ headerEnv?: "dollar" | "env-colon" | "brace-env" | "none";
74
97
  }
75
98
  export declare const MCP_CLIENTS: McpClient[];
76
99
  export declare function findMcpClient(id: string): McpClient | undefined;
@@ -80,7 +103,7 @@ export interface McpWriteResult {
80
103
  written: boolean;
81
104
  note?: string;
82
105
  }
83
- /** Merge the entry into one client's config file. Never writes a literal secret: callers pass env references. */
106
+ /** Merge the entry into one client's config file. Never writes a literal secret: callers pass `${VAR}` references, which each client receives in its own syntax. */
84
107
  export declare function writeMcpConfig(client: McpClient, cwd: string, name: string, entry: McpEntry): McpWriteResult;
85
108
  /** Does a client's config already mention this server? For doctor. */
86
109
  export declare function mcpConfigured(client: McpClient, cwd: string, name: string): boolean;
@@ -128,15 +151,13 @@ export interface AgentContext {
128
151
  version: string;
129
152
  envPrefix: string;
130
153
  authEnvVars: string[];
154
+ /** The API Spec is silent on authentication: say so instead of "no auth". */
155
+ authNotDeclared?: boolean;
131
156
  docsUrl: string | null;
132
157
  docsIndexUrl?: string | null;
133
158
  generatedOperationCount?: number;
134
- omittedOperations?: {
135
- command: string;
136
- tool: string;
137
- method: string;
138
- path: string;
139
- }[];
159
+ /** Operations in the API left out of a capped build; api.json lists them. */
160
+ omittedOperationCount?: number;
140
161
  /** The API's hosted MCP endpoint, when it has one. */
141
162
  mcpUrl: string | null;
142
163
  /** Skills repository (owner/name) an agent can install with npx skills add. */
@@ -209,4 +230,6 @@ export declare function summarizeDoctor(checks: DoctorCheck[]): {
209
230
  checks: DoctorCheck[];
210
231
  next_steps: string[];
211
232
  };
233
+ /** Every OAuth scope an operation's security requirements name, in order. */
234
+ export declare function requiredScopes(security: Record<string, string[]>[] | undefined): string[];
212
235
  //# sourceMappingURL=cli-agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-agent.d.ts","sourceRoot":"","sources":["../src/cli-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-agent.d.ts","sourceRoot":"","sources":["../src/cli-agent.ts"],"names":[],"mappings":"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"}