@sente-labs/cli 0.1.0 → 0.1.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.
- package/dist/client.js +1 -1
- package/dist/commands/init.js +8 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.js +40 -23
- package/dist/commands/login.js.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/client.js
CHANGED
package/dist/commands/init.js
CHANGED
|
@@ -41,6 +41,8 @@ const path = __importStar(require("path"));
|
|
|
41
41
|
const readline = __importStar(require("readline"));
|
|
42
42
|
const child_process_1 = require("child_process");
|
|
43
43
|
const client_1 = require("../client");
|
|
44
|
+
const credentials_1 = require("../credentials");
|
|
45
|
+
const login_1 = require("./login");
|
|
44
46
|
const output_1 = require("../output");
|
|
45
47
|
const template_1 = require("../skill/template");
|
|
46
48
|
const GITIGNORE_BLOCK_MARKER = '# Sente CLI -- per-developer state';
|
|
@@ -64,6 +66,12 @@ function registerInitCommand(program, globalOpts) {
|
|
|
64
66
|
// Resolve inputs. Interactive prompts only when TTY + not --non-interactive
|
|
65
67
|
// and missing values. CC always invokes with flags + --non-interactive.
|
|
66
68
|
const interactive = !cmdOpts.nonInteractive && !(0, output_1.isJson)(opts) && process.stdin.isTTY;
|
|
69
|
+
// If we have no stored credentials, run the login flow inline before
|
|
70
|
+
// asking the user for project name/URL. Otherwise a fresh user hits
|
|
71
|
+
// "Not logged in" only AFTER answering both prompts, which is bad UX.
|
|
72
|
+
if (!(0, credentials_1.loadCredentials)()) {
|
|
73
|
+
await (0, login_1.runLoginFlow)({ nonInteractive: !interactive });
|
|
74
|
+
}
|
|
67
75
|
const defaultName = deriveDefaultProjectName(cwd);
|
|
68
76
|
const projectName = cmdOpts.name ?? (interactive ? await prompt('Project name', defaultName) : defaultName);
|
|
69
77
|
const stagingUrl = cmdOpts.stagingUrl ?? (interactive ? await prompt('Staging URL (https://...)', '') : '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,kDA8GC;AAED,kEAiBC;AA9KD,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAC7B,mDAAqC;AACrC,iDAAyC;AAEzC,sCAAoD;AACpD,gDAAiD;AACjD,mCAAuC;AACvC,sCAAyE;AACzE,gDAA+D;AAgC/D,MAAM,sBAAsB,GAAG,oCAAoC,CAAC;AACpE,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAErD,SAAgB,mBAAmB,CAAC,OAAgB,EAAE,UAA4B;IAChF,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,wEAAwE,CAAC;SACrF,MAAM,CAAC,eAAe,EAAE,oDAAoD,CAAC;SAC7E,MAAM,CAAC,qBAAqB,EAAE,wCAAwC,CAAC;SACvE,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,aAAa,CAAC;SACnE,MAAM,CAAC,cAAc,EAAE,sCAAsC,CAAC;SAC9D,MAAM,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;SACtD,MAAM,CAAC,KAAK,EAAE,OAAoB,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC1B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC;gBAC3D,MAAM,IAAI,KAAK,CACb,qIAAqI,CACtI,CAAC;YACJ,CAAC;YAED,4EAA4E;YAC5E,wEAAwE;YACxE,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,IAAA,eAAM,EAAC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;YAEpF,qEAAqE;YACrE,oEAAoE;YACpE,sEAAsE;YACtE,IAAI,CAAC,IAAA,6BAAe,GAAE,EAAE,CAAC;gBACvB,MAAM,IAAA,oBAAY,EAAC,EAAE,cAAc,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YACvD,CAAC;YAED,MAAM,WAAW,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;YAElD,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAC5G,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5G,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CACb,2HAA2H,CAC5H,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;YACD,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,IAAI,aAAa,CAAC;YAEvD,MAAM,MAAM,GAAG,IAAI,sBAAa,EAAE,CAAC;YAEnC,yBAAyB;YACzB,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,OAAO,CAAiB,eAAe,EAAE;gBACvE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE;aACjD,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;YAEnC,yDAAyD;YACzD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CACtC,iBAAiB,OAAO,CAAC,EAAE,YAAY,EACvC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CACjD,CAAC;YACF,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;YAEtC,uEAAuE;YACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC1C,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE5C,MAAM,MAAM,GAAe;gBACzB,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,UAAU,EAAE,kBAAkB,EAAE;gBAChC,OAAO,EAAE,UAAU;gBACnB,UAAU,EAAE,QAAQ,CAAC,EAAE;aACxB,CAAC;YACF,MAAM,KAAK,GAAc,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAC9D,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAC7F,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAE3F,+DAA+D;YAC/D,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAE1B,gEAAgE;YAChE,IAAI,SAAS,GAAkB,IAAI,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBACvB,SAAS,GAAG,YAAY,EAAE,CAAC;YAC7B,CAAC;YAED,IAAA,qBAAY,EACV;gBACE,OAAO;gBACP,QAAQ;gBACR,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC;gBAC9C,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC;gBAC5C,SAAS;aACV,EACD,GAAG,EAAE;gBACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC3E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC9E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBACzE,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,SAAS,IAAI,CAAC,CAAC;gBACxE,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iGAAiG,CAAC,CAAC;YAC1H,CAAC,EACD,IAAI,CACL,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,iBAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChD,wCAAwC;gBACxC,OAAO,CAAC,IAAI,CAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,2BAA2B,CAAC,OAAgB,EAAE,UAA4B;IACxF,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,4EAA4E,CAAC;SACzF,MAAM,CAAC,GAAG,EAAE;QACX,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;YACjC,IAAA,qBAAY,EACV,EAAE,SAAS,EAAE,EACb,kCAAkC,SAAS,EAAE,EAC7C,IAAI,CACL,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY;IACnB,MAAM,IAAI,GAAG,IAAA,2BAAgB,EAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,mBAAQ,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAW;IAC3C,+EAA+E;IAC/E,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,wBAAQ,EAAC,+BAA+B,EAAE;YACpD,GAAG;YACH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC;aACC,QAAQ,EAAE;aACV,IAAI,EAAE,CAAC;QACV,IAAI,GAAG;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,uBAAuB,CAAC;AAClE,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW;IACvC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACnD,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC;QACH,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,yBAAyB;IAC3B,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAAE,OAAO;IAEjD,MAAM,KAAK,GAAG,KAAK,sBAAsB,KAAK,iBAAiB,IAAI,CAAC;IACpE,6CAA6C;IAC7C,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;AACjI,CAAC;AAED,SAAS,MAAM,CAAC,QAAgB,EAAE,QAAgB;IAChD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,EAAE,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,MAAM,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;YAC/C,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/commands/login.js
CHANGED
|
@@ -33,12 +33,49 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.runLoginFlow = runLoginFlow;
|
|
36
37
|
exports.registerLoginCommand = registerLoginCommand;
|
|
37
38
|
const readline = __importStar(require("readline"));
|
|
38
39
|
const client_1 = require("../client");
|
|
39
40
|
const credentials_1 = require("../credentials");
|
|
40
41
|
const config_1 = require("../config");
|
|
41
42
|
const output_1 = require("../output");
|
|
43
|
+
/**
|
|
44
|
+
* Reusable login flow: prompt for a PAT (or take one via opts), validate it
|
|
45
|
+
* against /api/cli/whoami, and persist credentials to ~/.sente/credentials.
|
|
46
|
+
* Used both by `sente login` and by `sente init` when no credentials exist.
|
|
47
|
+
*
|
|
48
|
+
* Throws ApiError on token failures (caller decides whether to surface
|
|
49
|
+
* via printError or treat as fatal).
|
|
50
|
+
*/
|
|
51
|
+
async function runLoginFlow(opts = {}) {
|
|
52
|
+
let token = opts.token;
|
|
53
|
+
if (!token) {
|
|
54
|
+
if (opts.nonInteractive || !process.stdin.isTTY) {
|
|
55
|
+
throw new client_1.ApiError(400, 'TOKEN_REQUIRED', 'No token provided. Use --token <value> or run interactively.');
|
|
56
|
+
}
|
|
57
|
+
process.stderr.write("You're not logged in to Sente. Get a token from https://app.sente.run/settings (API Tokens) and paste it below.\n");
|
|
58
|
+
token = await promptToken();
|
|
59
|
+
}
|
|
60
|
+
token = token.trim();
|
|
61
|
+
if (!token) {
|
|
62
|
+
throw new client_1.ApiError(400, 'TOKEN_REQUIRED', 'Token cannot be empty.');
|
|
63
|
+
}
|
|
64
|
+
const client = new client_1.GatewayClient({
|
|
65
|
+
credentials: { token, gatewayUrl: (0, config_1.gatewayUrl)() },
|
|
66
|
+
maxRetries: 1,
|
|
67
|
+
});
|
|
68
|
+
const me = await client.request('/api/cli/whoami');
|
|
69
|
+
const credentials = {
|
|
70
|
+
token,
|
|
71
|
+
gatewayUrl: (0, config_1.gatewayUrl)(),
|
|
72
|
+
userEmail: me.user.email ?? undefined,
|
|
73
|
+
organizationId: me.organization.id,
|
|
74
|
+
organizationName: me.organization.name,
|
|
75
|
+
};
|
|
76
|
+
(0, credentials_1.saveCredentials)(credentials);
|
|
77
|
+
return { credentials, whoami: me };
|
|
78
|
+
}
|
|
42
79
|
/**
|
|
43
80
|
* Prompt for a PAT (or accept it via --token / stdin), validate it against
|
|
44
81
|
* /api/cli/whoami, and persist credentials to ~/.sente/credentials.
|
|
@@ -52,29 +89,9 @@ function registerLoginCommand(program, globalOpts) {
|
|
|
52
89
|
.action(async (cmdOpts) => {
|
|
53
90
|
const opts = globalOpts();
|
|
54
91
|
try {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
throw new client_1.ApiError(400, 'TOKEN_REQUIRED', 'No token provided. Use --token <value> or run interactively.');
|
|
59
|
-
}
|
|
60
|
-
token = await promptToken();
|
|
61
|
-
}
|
|
62
|
-
token = token.trim();
|
|
63
|
-
if (!token) {
|
|
64
|
-
throw new client_1.ApiError(400, 'TOKEN_REQUIRED', 'Token cannot be empty.');
|
|
65
|
-
}
|
|
66
|
-
// Validate by hitting /api/cli/whoami with the provided token.
|
|
67
|
-
const client = new client_1.GatewayClient({
|
|
68
|
-
credentials: { token, gatewayUrl: (0, config_1.gatewayUrl)() },
|
|
69
|
-
maxRetries: 1,
|
|
70
|
-
});
|
|
71
|
-
const me = await client.request('/api/cli/whoami');
|
|
72
|
-
(0, credentials_1.saveCredentials)({
|
|
73
|
-
token,
|
|
74
|
-
gatewayUrl: (0, config_1.gatewayUrl)(),
|
|
75
|
-
userEmail: me.user.email ?? undefined,
|
|
76
|
-
organizationId: me.organization.id,
|
|
77
|
-
organizationName: me.organization.name,
|
|
92
|
+
const { whoami: me } = await runLoginFlow({
|
|
93
|
+
token: cmdOpts.token,
|
|
94
|
+
nonInteractive: cmdOpts.nonInteractive,
|
|
78
95
|
});
|
|
79
96
|
(0, output_1.printSuccess)({
|
|
80
97
|
ok: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -11,7 +11,7 @@ const program = new commander_1.Command();
|
|
|
11
11
|
program
|
|
12
12
|
.name('sente')
|
|
13
13
|
.description('Sente CLI -- manage QA tests from the command line and Claude Code')
|
|
14
|
-
.version('0.1.
|
|
14
|
+
.version('0.1.1')
|
|
15
15
|
.option('--json', 'Emit machine-readable JSON instead of human output');
|
|
16
16
|
/**
|
|
17
17
|
* Global options aren't auto-propagated to subcommands by Commander, so we
|
package/package.json
CHANGED