suzi-cli 0.1.13 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/accounts.d.ts.map +1 -1
- package/dist/commands/accounts.js +27 -7
- package/dist/commands/accounts.js.map +1 -1
- package/dist/commands/agent.d.ts +45 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +991 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/debug.d.ts.map +1 -1
- package/dist/commands/debug.js +124 -41
- package/dist/commands/debug.js.map +1 -1
- package/dist/commands/list-actions.d.ts.map +1 -1
- package/dist/commands/list-actions.js +35 -4
- package/dist/commands/list-actions.js.map +1 -1
- package/dist/commands/list-triggers.d.ts.map +1 -1
- package/dist/commands/list-triggers.js +38 -10
- package/dist/commands/list-triggers.js.map +1 -1
- package/dist/commands/portfolio.d.ts.map +1 -1
- package/dist/commands/portfolio.js +113 -14
- package/dist/commands/portfolio.js.map +1 -1
- package/dist/commands/preferences.d.ts.map +1 -1
- package/dist/commands/preferences.js +119 -26
- package/dist/commands/preferences.js.map +1 -1
- package/dist/commands/run.d.ts +4 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +8 -305
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/transactions.d.ts.map +1 -1
- package/dist/commands/transactions.js +18 -4
- package/dist/commands/transactions.js.map +1 -1
- package/dist/index.js +29 -26
- package/dist/index.js.map +1 -1
- package/dist/utils/agent-picker.d.ts +16 -0
- package/dist/utils/agent-picker.d.ts.map +1 -0
- package/dist/utils/agent-picker.js +83 -0
- package/dist/utils/agent-picker.js.map +1 -0
- package/dist/utils/resolver.d.ts +35 -0
- package/dist/utils/resolver.d.ts.map +1 -0
- package/dist/utils/resolver.js +157 -0
- package/dist/utils/resolver.js.map +1 -0
- package/dist/utils/tty.d.ts +26 -0
- package/dist/utils/tty.d.ts.map +1 -0
- package/dist/utils/tty.js +50 -0
- package/dist/utils/tty.js.map +1 -0
- package/dist/utils/ui.d.ts +4 -0
- package/dist/utils/ui.d.ts.map +1 -1
- package/dist/utils/ui.js +9 -0
- package/dist/utils/ui.js.map +1 -1
- package/package.json +1 -1
- package/dist/commands/agents.d.ts +0 -3
- package/dist/commands/agents.d.ts.map +0 -1
- package/dist/commands/agents.js +0 -309
- package/dist/commands/agents.js.map +0 -1
- package/dist/commands/deploy.d.ts +0 -3
- package/dist/commands/deploy.d.ts.map +0 -1
- package/dist/commands/deploy.js +0 -174
- package/dist/commands/deploy.js.map +0 -1
- package/dist/commands/validate.d.ts +0 -3
- package/dist/commands/validate.d.ts.map +0 -1
- package/dist/commands/validate.js +0 -165
- package/dist/commands/validate.js.map +0 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Entity } from './resolver';
|
|
2
|
+
export interface Agent extends Entity {
|
|
3
|
+
id: string;
|
|
4
|
+
title: string;
|
|
5
|
+
status: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
createdAt: string;
|
|
8
|
+
updatedAt: string;
|
|
9
|
+
[key: string]: unknown;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Fetch agents from API and resolve/pick with smart ID resolution.
|
|
13
|
+
* Returns null on error or user cancellation.
|
|
14
|
+
*/
|
|
15
|
+
export declare function fetchAndPickAgent(idOrName: string | undefined, jsonMode?: boolean): Promise<Agent | null>;
|
|
16
|
+
//# sourceMappingURL=agent-picker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-picker.d.ts","sourceRoot":"","sources":["../../src/utils/agent-picker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,MAAM,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,WAAW,KAAM,SAAQ,MAAM;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,QAAQ,GAAE,OAAe,GACxB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CA0CvB"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.fetchAndPickAgent = fetchAndPickAgent;
|
|
37
|
+
const api_1 = require("../lib/api");
|
|
38
|
+
const tty_1 = require("./tty");
|
|
39
|
+
const resolver_1 = require("./resolver");
|
|
40
|
+
/**
|
|
41
|
+
* Fetch agents from API and resolve/pick with smart ID resolution.
|
|
42
|
+
* Returns null on error or user cancellation.
|
|
43
|
+
*/
|
|
44
|
+
async function fetchAndPickAgent(idOrName, jsonMode = false) {
|
|
45
|
+
// Fetch agents
|
|
46
|
+
const resp = await (0, api_1.get)('/api/agent?limit=50');
|
|
47
|
+
if (!resp.ok) {
|
|
48
|
+
const msg = `Failed to load agents: ${resp.data?.error || 'Unknown error'}`;
|
|
49
|
+
if (jsonMode) {
|
|
50
|
+
(0, tty_1.outputJson)({ success: false, error: msg });
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
const { error } = await Promise.resolve().then(() => __importStar(require('./ui')));
|
|
54
|
+
error(msg);
|
|
55
|
+
}
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
const agents = resp.data.agents || [];
|
|
59
|
+
if (agents.length === 0 && !idOrName) {
|
|
60
|
+
const msg = 'No agents found.';
|
|
61
|
+
if (jsonMode) {
|
|
62
|
+
(0, tty_1.outputJson)({ success: false, error: msg });
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
const { info } = await Promise.resolve().then(() => __importStar(require('./ui')));
|
|
66
|
+
info('No agents found. Create one with `suzi agents deploy <file>`.');
|
|
67
|
+
}
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
// Resolve with picker
|
|
71
|
+
const result = await (0, resolver_1.resolveWithPicker)(idOrName, agents, {
|
|
72
|
+
jsonMode,
|
|
73
|
+
entityType: 'agent',
|
|
74
|
+
pickerMessage: 'Select an agent:',
|
|
75
|
+
});
|
|
76
|
+
// Show cancel message if user cancelled in interactive mode
|
|
77
|
+
if (!result && !idOrName && !jsonMode) {
|
|
78
|
+
const { info } = await Promise.resolve().then(() => __importStar(require('./ui')));
|
|
79
|
+
info('Cancelled.');
|
|
80
|
+
}
|
|
81
|
+
return result;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=agent-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-picker.js","sourceRoot":"","sources":["../../src/utils/agent-picker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,8CA6CC;AA/DD,oCAAiC;AACjC,+BAAmC;AACnC,yCAAuD;AAYvD;;;GAGG;AACI,KAAK,UAAU,iBAAiB,CACrC,QAA4B,EAC5B,WAAoB,KAAK;IAEzB,eAAe;IACf,MAAM,IAAI,GAAG,MAAM,IAAA,SAAG,EAAC,qBAAqB,CAAC,CAAC;IAE9C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,0BAA0B,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,eAAe,EAAE,CAAC;QAC5E,IAAI,QAAQ,EAAE,CAAC;YACb,IAAA,gBAAU,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,KAAK,EAAE,GAAG,wDAAa,MAAM,GAAC,CAAC;YACvC,KAAK,CAAC,GAAG,CAAC,CAAC;QACb,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAY,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IAE/C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,kBAAkB,CAAC;QAC/B,IAAI,QAAQ,EAAE,CAAC;YACb,IAAA,gBAAU,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,IAAI,EAAE,GAAG,wDAAa,MAAM,GAAC,CAAC;YACtC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sBAAsB;IACtB,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAiB,EAAC,QAAQ,EAAE,MAAM,EAAE;QACvD,QAAQ;QACR,UAAU,EAAE,OAAO;QACnB,aAAa,EAAE,kBAAkB;KAClC,CAAC,CAAC;IAEH,4DAA4D;IAC5D,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,EAAE,IAAI,EAAE,GAAG,wDAAa,MAAM,GAAC,CAAC;QACtC,IAAI,CAAC,YAAY,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface Entity {
|
|
2
|
+
id: string;
|
|
3
|
+
title?: string;
|
|
4
|
+
name?: string;
|
|
5
|
+
[key: string]: unknown;
|
|
6
|
+
}
|
|
7
|
+
export type ResolveResult<T> = {
|
|
8
|
+
type: 'single';
|
|
9
|
+
entity: T;
|
|
10
|
+
} | {
|
|
11
|
+
type: 'multiple';
|
|
12
|
+
entities: T[];
|
|
13
|
+
} | {
|
|
14
|
+
type: 'none';
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Resolve an entity by ID (exact or prefix) or name (case-insensitive exact match).
|
|
18
|
+
* Priority: exact ID > ID prefix > exact name (case-insensitive)
|
|
19
|
+
*/
|
|
20
|
+
export declare function resolveEntity<T extends Entity>(input: string, entities: T[]): ResolveResult<T>;
|
|
21
|
+
/**
|
|
22
|
+
* Show interactive picker for multiple matches.
|
|
23
|
+
* Returns selected entity or null if cancelled.
|
|
24
|
+
*/
|
|
25
|
+
export declare function pickEntity<T extends Entity>(entities: T[], message?: string): Promise<T | null>;
|
|
26
|
+
/**
|
|
27
|
+
* Resolve entity with automatic picker fallback.
|
|
28
|
+
* Handles TTY/JSON modes appropriately.
|
|
29
|
+
*/
|
|
30
|
+
export declare function resolveWithPicker<T extends Entity>(input: string | undefined, entities: T[], options: {
|
|
31
|
+
jsonMode: boolean;
|
|
32
|
+
entityType: string;
|
|
33
|
+
pickerMessage?: string;
|
|
34
|
+
}): Promise<T | null>;
|
|
35
|
+
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/utils/resolver.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,IACvB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,CAAC,EAAE,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAC5C,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,EAAE,GACZ,aAAa,CAAC,CAAC,CAAC,CAiClB;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,CAAC,SAAS,MAAM,EAC/C,QAAQ,EAAE,CAAC,EAAE,EACb,OAAO,GAAE,MAA0B,GAClC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CA8BnB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EACtD,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,CAAC,EAAE,EACb,OAAO,EAAE;IACP,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GACA,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAiFnB"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.resolveEntity = resolveEntity;
|
|
7
|
+
exports.pickEntity = pickEntity;
|
|
8
|
+
exports.resolveWithPicker = resolveWithPicker;
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
11
|
+
const tty_1 = require("./tty");
|
|
12
|
+
const ui_1 = require("./ui");
|
|
13
|
+
/**
|
|
14
|
+
* Resolve an entity by ID (exact or prefix) or name (case-insensitive exact match).
|
|
15
|
+
* Priority: exact ID > ID prefix > exact name (case-insensitive)
|
|
16
|
+
*/
|
|
17
|
+
function resolveEntity(input, entities) {
|
|
18
|
+
const lowerInput = input.toLowerCase();
|
|
19
|
+
// 1. Exact ID match
|
|
20
|
+
const exactIdMatch = entities.find((e) => e.id === input);
|
|
21
|
+
if (exactIdMatch) {
|
|
22
|
+
return { type: 'single', entity: exactIdMatch };
|
|
23
|
+
}
|
|
24
|
+
// 2. ID prefix match
|
|
25
|
+
const idPrefixMatches = entities.filter((e) => e.id.startsWith(input));
|
|
26
|
+
if (idPrefixMatches.length === 1) {
|
|
27
|
+
return { type: 'single', entity: idPrefixMatches[0] };
|
|
28
|
+
}
|
|
29
|
+
if (idPrefixMatches.length > 1) {
|
|
30
|
+
return { type: 'multiple', entities: idPrefixMatches };
|
|
31
|
+
}
|
|
32
|
+
// 3. Exact name match (case-insensitive)
|
|
33
|
+
const nameMatches = entities.filter((e) => {
|
|
34
|
+
const entityName = e.title || e.name || '';
|
|
35
|
+
return entityName.toLowerCase() === lowerInput;
|
|
36
|
+
});
|
|
37
|
+
if (nameMatches.length === 1) {
|
|
38
|
+
return { type: 'single', entity: nameMatches[0] };
|
|
39
|
+
}
|
|
40
|
+
if (nameMatches.length > 1) {
|
|
41
|
+
return { type: 'multiple', entities: nameMatches };
|
|
42
|
+
}
|
|
43
|
+
// 4. No match
|
|
44
|
+
return { type: 'none' };
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Show interactive picker for multiple matches.
|
|
48
|
+
* Returns selected entity or null if cancelled.
|
|
49
|
+
*/
|
|
50
|
+
async function pickEntity(entities, message = 'Select an item:') {
|
|
51
|
+
if (entities.length === 0)
|
|
52
|
+
return null;
|
|
53
|
+
const choices = entities.map((e) => ({
|
|
54
|
+
name: `${e.title || e.name || 'Untitled'} ${ui_1.colors.muted(`(${e.id.slice(0, 8)}...)`)}`,
|
|
55
|
+
value: e.id,
|
|
56
|
+
}));
|
|
57
|
+
// Add separator and cancel option
|
|
58
|
+
choices.push(new inquirer_1.default.Separator('─'.repeat(40)));
|
|
59
|
+
choices.push({
|
|
60
|
+
name: chalk_1.default.gray(' Cancel'),
|
|
61
|
+
value: '__cancel__',
|
|
62
|
+
});
|
|
63
|
+
const answers = await inquirer_1.default.prompt([
|
|
64
|
+
{
|
|
65
|
+
type: 'list',
|
|
66
|
+
name: 'entityId',
|
|
67
|
+
message,
|
|
68
|
+
choices,
|
|
69
|
+
},
|
|
70
|
+
]);
|
|
71
|
+
// Check for cancel
|
|
72
|
+
if (answers.entityId === '__cancel__') {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
return entities.find((e) => e.id === answers.entityId) || null;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Resolve entity with automatic picker fallback.
|
|
79
|
+
* Handles TTY/JSON modes appropriately.
|
|
80
|
+
*/
|
|
81
|
+
async function resolveWithPicker(input, entities, options) {
|
|
82
|
+
const { jsonMode, entityType, pickerMessage } = options;
|
|
83
|
+
// No input + interactive mode: show picker
|
|
84
|
+
if (!input && (0, tty_1.shouldUseInteractive)() && !jsonMode) {
|
|
85
|
+
if (entities.length === 0) {
|
|
86
|
+
(0, ui_1.error)(`No ${entityType}s found.`);
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
return await pickEntity(entities, pickerMessage || `Select a ${entityType}:`);
|
|
90
|
+
}
|
|
91
|
+
// No input + non-interactive mode: error
|
|
92
|
+
if (!input) {
|
|
93
|
+
const msg = `${entityType} ID or name is required in non-interactive mode.`;
|
|
94
|
+
if (jsonMode) {
|
|
95
|
+
(0, tty_1.outputJson)({ success: false, error: msg });
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
(0, ui_1.error)(msg);
|
|
99
|
+
(0, ui_1.info)(`Usage: Provide ${entityType} ID or name as argument.`);
|
|
100
|
+
}
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
// Resolve with input
|
|
104
|
+
const result = resolveEntity(input, entities);
|
|
105
|
+
if (result.type === 'single') {
|
|
106
|
+
return result.entity;
|
|
107
|
+
}
|
|
108
|
+
if (result.type === 'multiple') {
|
|
109
|
+
// Multiple matches: show picker in TTY mode
|
|
110
|
+
if ((0, tty_1.shouldUseInteractive)() && !jsonMode) {
|
|
111
|
+
(0, ui_1.info)(`Multiple ${entityType}s match "${input}".`);
|
|
112
|
+
return await pickEntity(result.entities, pickerMessage || `Select a ${entityType}:`);
|
|
113
|
+
}
|
|
114
|
+
// Multiple matches: error in JSON mode
|
|
115
|
+
const msg = `Ambiguous ${entityType} identifier: "${input}" matches multiple ${entityType}s.`;
|
|
116
|
+
const matches = result.entities.map((e) => ({
|
|
117
|
+
id: e.id,
|
|
118
|
+
name: e.title || e.name,
|
|
119
|
+
}));
|
|
120
|
+
if (jsonMode) {
|
|
121
|
+
(0, tty_1.outputJson)({ success: false, error: msg, data: { matches } });
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
(0, ui_1.error)(msg);
|
|
125
|
+
console.log();
|
|
126
|
+
console.log(' Matches:');
|
|
127
|
+
for (const match of matches) {
|
|
128
|
+
console.log(` ${ui_1.colors.primary('•')} ${match.name} ${ui_1.colors.muted(`(${match.id.slice(0, 8)}...)`)}`);
|
|
129
|
+
}
|
|
130
|
+
console.log();
|
|
131
|
+
(0, ui_1.info)('Provide a more specific identifier.');
|
|
132
|
+
}
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
// No match
|
|
136
|
+
const msg = `${entityType} not found: "${input}"`;
|
|
137
|
+
if (jsonMode) {
|
|
138
|
+
(0, tty_1.outputJson)({ success: false, error: msg });
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
(0, ui_1.error)(msg);
|
|
142
|
+
// Show suggestions if available
|
|
143
|
+
if (entities.length > 0) {
|
|
144
|
+
console.log();
|
|
145
|
+
(0, ui_1.info)(`Available ${entityType}s:`);
|
|
146
|
+
for (const entity of entities.slice(0, 5)) {
|
|
147
|
+
const name = entity.title || entity.name || 'Untitled';
|
|
148
|
+
console.log(` ${ui_1.colors.primary('•')} ${name} ${ui_1.colors.muted(`(${entity.id.slice(0, 8)}...)`)}`);
|
|
149
|
+
}
|
|
150
|
+
if (entities.length > 5) {
|
|
151
|
+
console.log(` ${ui_1.colors.muted(`... and ${entities.length - 5} more`)}`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/utils/resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Ora } from 'ora';
|
|
2
|
+
/**
|
|
3
|
+
* Check if running in a TTY (interactive terminal).
|
|
4
|
+
* Returns false in CI environments or when piped.
|
|
5
|
+
*/
|
|
6
|
+
export declare function isTTY(): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Check if we should use interactive features (prompts, pickers).
|
|
9
|
+
* Accounts for TTY detection + CI environment detection.
|
|
10
|
+
*/
|
|
11
|
+
export declare function shouldUseInteractive(): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Output JSON with proper formatting and exit code.
|
|
14
|
+
* Sets process.exitCode based on success flag.
|
|
15
|
+
*/
|
|
16
|
+
export declare function outputJson(data: {
|
|
17
|
+
success: boolean;
|
|
18
|
+
data?: unknown;
|
|
19
|
+
error?: string;
|
|
20
|
+
}): void;
|
|
21
|
+
/**
|
|
22
|
+
* Create a spinner that respects TTY mode.
|
|
23
|
+
* Returns null in JSON mode or non-TTY environments.
|
|
24
|
+
*/
|
|
25
|
+
export declare function createSpinner(text: string, jsonMode?: boolean): Ora | null;
|
|
26
|
+
//# sourceMappingURL=tty.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tty.d.ts","sourceRoot":"","sources":["../../src/utils/tty.ts"],"names":[],"mappings":"AACA,OAAY,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE/B;;;GAGG;AACH,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAQ9C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAK3F;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAe,GAAG,GAAG,GAAG,IAAI,CAKjF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isTTY = isTTY;
|
|
7
|
+
exports.shouldUseInteractive = shouldUseInteractive;
|
|
8
|
+
exports.outputJson = outputJson;
|
|
9
|
+
exports.createSpinner = createSpinner;
|
|
10
|
+
const ora_1 = __importDefault(require("ora"));
|
|
11
|
+
/**
|
|
12
|
+
* Check if running in a TTY (interactive terminal).
|
|
13
|
+
* Returns false in CI environments or when piped.
|
|
14
|
+
*/
|
|
15
|
+
function isTTY() {
|
|
16
|
+
return Boolean(process.stdout.isTTY && process.stdin.isTTY);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Check if we should use interactive features (prompts, pickers).
|
|
20
|
+
* Accounts for TTY detection + CI environment detection.
|
|
21
|
+
*/
|
|
22
|
+
function shouldUseInteractive() {
|
|
23
|
+
if (!isTTY())
|
|
24
|
+
return false;
|
|
25
|
+
// Detect common CI environments
|
|
26
|
+
const ciEnvVars = ['CI', 'CONTINUOUS_INTEGRATION', 'BUILD_ID', 'GITHUB_ACTIONS', 'GITLAB_CI', 'CIRCLECI'];
|
|
27
|
+
const isCI = ciEnvVars.some((v) => process.env[v]);
|
|
28
|
+
return !isCI;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Output JSON with proper formatting and exit code.
|
|
32
|
+
* Sets process.exitCode based on success flag.
|
|
33
|
+
*/
|
|
34
|
+
function outputJson(data) {
|
|
35
|
+
console.log(JSON.stringify(data, null, 2));
|
|
36
|
+
if (!data.success) {
|
|
37
|
+
process.exitCode = 1;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Create a spinner that respects TTY mode.
|
|
42
|
+
* Returns null in JSON mode or non-TTY environments.
|
|
43
|
+
*/
|
|
44
|
+
function createSpinner(text, jsonMode = false) {
|
|
45
|
+
if (jsonMode || !isTTY()) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
return (0, ora_1.default)(text).start();
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=tty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tty.js","sourceRoot":"","sources":["../../src/utils/tty.ts"],"names":[],"mappings":";;;;;AAOA,sBAEC;AAMD,oDAQC;AAMD,gCAKC;AAMD,sCAKC;AA5CD,8CAA+B;AAE/B;;;GAGG;AACH,SAAgB,KAAK;IACnB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB;IAClC,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAE3B,gCAAgC;IAChC,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAC1G,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnD,OAAO,CAAC,IAAI,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAgB,UAAU,CAAC,IAA0D;IACnF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,IAAY,EAAE,WAAoB,KAAK;IACnE,IAAI,QAAQ,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAA,aAAG,EAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;AAC3B,CAAC"}
|
package/dist/utils/ui.d.ts
CHANGED
|
@@ -35,4 +35,8 @@ export declare function levenshteinDistance(a: string, b: string): number;
|
|
|
35
35
|
* Returns commands sorted by similarity (closest first).
|
|
36
36
|
*/
|
|
37
37
|
export declare function findSimilarCommands(input: string, commands: string[], maxSuggestions?: number, maxDistance?: number): string[];
|
|
38
|
+
/**
|
|
39
|
+
* Show deprecation warning for a command.
|
|
40
|
+
*/
|
|
41
|
+
export declare function deprecationWarning(oldCmd: string, newCmd: string): void;
|
|
38
42
|
//# sourceMappingURL=ui.d.ts.map
|
package/dist/utils/ui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/utils/ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,eAAO,MAAM,MAAM;;;;;;;;;;CAUlB,CAAC;AAEF,wBAAgB,IAAI,IAAI,MAAM,CAW7B;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAQzC;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEzC;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAK5E;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED,wBAAgB,OAAO,IAAI,IAAI,CAE9B;AAED,wBAAgB,WAAW,IAAI,OAAO,CAOrC;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhD;AAGD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAQrG;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAkBlD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA0BhE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAAE,EAClB,cAAc,GAAE,MAAU,EAC1B,WAAW,GAAE,MAAU,GACtB,MAAM,EAAE,CAOV"}
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/utils/ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,eAAO,MAAM,MAAM;;;;;;;;;;CAUlB,CAAC;AAEF,wBAAgB,IAAI,IAAI,MAAM,CAW7B;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAQzC;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEzC;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAK5E;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED,wBAAgB,OAAO,IAAI,IAAI,CAE9B;AAED,wBAAgB,WAAW,IAAI,OAAO,CAOrC;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhD;AAGD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAQrG;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAkBlD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA0BhE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAAE,EAClB,cAAc,GAAE,MAAU,EAC1B,WAAW,GAAE,MAAU,GACtB,MAAM,EAAE,CAOV;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAIvE"}
|
package/dist/utils/ui.js
CHANGED
|
@@ -19,6 +19,7 @@ exports.safeParseJSON = safeParseJSON;
|
|
|
19
19
|
exports.statusBadge = statusBadge;
|
|
20
20
|
exports.levenshteinDistance = levenshteinDistance;
|
|
21
21
|
exports.findSimilarCommands = findSimilarCommands;
|
|
22
|
+
exports.deprecationWarning = deprecationWarning;
|
|
22
23
|
const chalk_1 = __importDefault(require("chalk"));
|
|
23
24
|
const boxen_1 = __importDefault(require("boxen"));
|
|
24
25
|
const figures_1 = __importDefault(require("figures"));
|
|
@@ -156,4 +157,12 @@ function findSimilarCommands(input, commands, maxSuggestions = 3, maxDistance =
|
|
|
156
157
|
.sort((a, b) => a.distance - b.distance);
|
|
157
158
|
return scored.slice(0, maxSuggestions).map(({ cmd }) => cmd);
|
|
158
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Show deprecation warning for a command.
|
|
162
|
+
*/
|
|
163
|
+
function deprecationWarning(oldCmd, newCmd) {
|
|
164
|
+
warn(`The "${oldCmd}" command is deprecated and will be removed in a future version.`);
|
|
165
|
+
info(`Use "${chalk_1.default.cyan(newCmd)}" instead.`);
|
|
166
|
+
console.log();
|
|
167
|
+
}
|
|
159
168
|
//# sourceMappingURL=ui.js.map
|
package/dist/utils/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/utils/ui.ts"],"names":[],"mappings":";;;;;;AAgBA,oBAWC;AAED,wBAQC;AAED,0BAEC;AAED,sBAKC;AAED,oBAEC;AAED,oBAEC;AAED,sBAEC;AAED,0BAEC;AAED,kCAOC;AAED,8BAEC;AAED,8BAEC;AAGD,sCAQC;AAED,kCAkBC;AAMD,kDA0BC;AAMD,kDAYC;
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/utils/ui.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4V5D"}
|