linkshell-cli 0.10.97 → 0.10.98
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/README.md +1 -1
- package/dist/cli/src/commands/host.js +1 -1
- package/dist/cli/src/commands/host.js.map +1 -1
- package/dist/cli/tsconfig.tsbuildinfo +1 -1
- package/dist/client-core/src/pro-membership.d.ts +31 -2
- package/dist/client-core/src/pro-membership.js +28 -2
- package/dist/client-core/src/pro-membership.js.map +1 -1
- package/dist/gateway/src/subscription.d.ts +1 -1
- package/dist/gateway/src/subscription.js +2 -1
- package/dist/gateway/src/subscription.js.map +1 -1
- package/package.json +3 -3
- package/src/commands/host.ts +1 -1
|
@@ -24,9 +24,38 @@ export interface ProMembershipOptions {
|
|
|
24
24
|
signal?: AbortSignal;
|
|
25
25
|
}
|
|
26
26
|
export declare const LINKSHELL_PRODUCT = "linkshell";
|
|
27
|
-
/**
|
|
28
|
-
|
|
27
|
+
/**
|
|
28
|
+
* The only place a membership is bought. Phones must not link to it (App Store rules).
|
|
29
|
+
* www and a locale up front: the bare domain costs two redirects (308 to www, 307 to a locale).
|
|
30
|
+
* Chinese, like the rest of the computer UI. The entitlement API below stays on the bare domain:
|
|
31
|
+
* it is exempt from those redirects, and a cross-host redirect would drop the bearer token.
|
|
32
|
+
*/
|
|
33
|
+
export declare const ITOOL_MEMBERSHIP_URL = "https://www.itool.tech/zh/pro?from=linkshell";
|
|
29
34
|
export declare const ITOOL_ENTITLEMENT_URL = "https://itool.tech/api/membership/entitlement?product=linkshell";
|
|
35
|
+
/**
|
|
36
|
+
* iTool products a membership can unlock: yearly unlocks all of them, monthly the iTool site and LinkShell.
|
|
37
|
+
* Mirrors itool-tech src/lib/membership.ts MEMBERSHIP_PRODUCTS: change them when it changes.
|
|
38
|
+
*/
|
|
39
|
+
export declare const MEMBERSHIP_PRODUCT_TOTAL = 7;
|
|
40
|
+
export declare const MONTHLY_PRODUCT_COUNT = 2;
|
|
41
|
+
/**
|
|
42
|
+
* For monthly members: with `checkout=yearly`, itool.tech opens the yearly checkout once the
|
|
43
|
+
* person is signed in. Like the buy page, phones must not link to it (App Store rules).
|
|
44
|
+
* apps/mac mirrors this and the counts in `DesktopModel.swift` (`ITool`).
|
|
45
|
+
*/
|
|
46
|
+
export declare const ITOOL_YEARLY_UPGRADE_URL = "https://www.itool.tech/zh/pro?from=linkshell&checkout=yearly";
|
|
47
|
+
/** The upgrade row monthly members see on the computer: what they have, and the way to the rest. */
|
|
48
|
+
export declare const MONTHLY_UPGRADE_COPY: {
|
|
49
|
+
readonly zh: {
|
|
50
|
+
readonly unlocked: "已解锁 2/7 款产品";
|
|
51
|
+
readonly action: "升级年度";
|
|
52
|
+
};
|
|
53
|
+
readonly en: {
|
|
54
|
+
readonly unlocked: "2 of 7 products unlocked";
|
|
55
|
+
readonly action: "Go yearly";
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
export declare function monthlyUpgradeLabel(lang?: keyof typeof MONTHLY_UPGRADE_COPY): string;
|
|
30
59
|
/**
|
|
31
60
|
* Why a lookup failed. `login` means the token is no good; `unavailable` and `network` say
|
|
32
61
|
* nothing about the account, so callers keep what they last knew.
|
|
@@ -4,9 +4,35 @@
|
|
|
4
4
|
* clients just read the entitlement and send people to the buy page.
|
|
5
5
|
*/
|
|
6
6
|
export const LINKSHELL_PRODUCT = "linkshell";
|
|
7
|
-
/**
|
|
8
|
-
|
|
7
|
+
/**
|
|
8
|
+
* The only place a membership is bought. Phones must not link to it (App Store rules).
|
|
9
|
+
* www and a locale up front: the bare domain costs two redirects (308 to www, 307 to a locale).
|
|
10
|
+
* Chinese, like the rest of the computer UI. The entitlement API below stays on the bare domain:
|
|
11
|
+
* it is exempt from those redirects, and a cross-host redirect would drop the bearer token.
|
|
12
|
+
*/
|
|
13
|
+
export const ITOOL_MEMBERSHIP_URL = "https://www.itool.tech/zh/pro?from=linkshell";
|
|
9
14
|
export const ITOOL_ENTITLEMENT_URL = `https://itool.tech/api/membership/entitlement?product=${LINKSHELL_PRODUCT}`;
|
|
15
|
+
/**
|
|
16
|
+
* iTool products a membership can unlock: yearly unlocks all of them, monthly the iTool site and LinkShell.
|
|
17
|
+
* Mirrors itool-tech src/lib/membership.ts MEMBERSHIP_PRODUCTS: change them when it changes.
|
|
18
|
+
*/
|
|
19
|
+
export const MEMBERSHIP_PRODUCT_TOTAL = 7;
|
|
20
|
+
export const MONTHLY_PRODUCT_COUNT = 2;
|
|
21
|
+
/**
|
|
22
|
+
* For monthly members: with `checkout=yearly`, itool.tech opens the yearly checkout once the
|
|
23
|
+
* person is signed in. Like the buy page, phones must not link to it (App Store rules).
|
|
24
|
+
* apps/mac mirrors this and the counts in `DesktopModel.swift` (`ITool`).
|
|
25
|
+
*/
|
|
26
|
+
export const ITOOL_YEARLY_UPGRADE_URL = `${ITOOL_MEMBERSHIP_URL}&checkout=yearly`;
|
|
27
|
+
/** The upgrade row monthly members see on the computer: what they have, and the way to the rest. */
|
|
28
|
+
export const MONTHLY_UPGRADE_COPY = {
|
|
29
|
+
zh: { unlocked: `已解锁 ${MONTHLY_PRODUCT_COUNT}/${MEMBERSHIP_PRODUCT_TOTAL} 款产品`, action: "升级年度" },
|
|
30
|
+
en: { unlocked: `${MONTHLY_PRODUCT_COUNT} of ${MEMBERSHIP_PRODUCT_TOTAL} products unlocked`, action: "Go yearly" },
|
|
31
|
+
};
|
|
32
|
+
export function monthlyUpgradeLabel(lang = "zh") {
|
|
33
|
+
const copy = MONTHLY_UPGRADE_COPY[lang];
|
|
34
|
+
return `${copy.unlocked} · ${copy.action}`;
|
|
35
|
+
}
|
|
10
36
|
const REQUEST_TIMEOUT_MS = 15_000;
|
|
11
37
|
const LOGIN_REQUIRED = "登录已失效,请重新登录后再试";
|
|
12
38
|
const MALFORMED = "会员状态返回异常,请稍后重试";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pro-membership.js","sourceRoot":"","sources":["../../../../client-core/src/pro-membership.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAyBH,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAC7C
|
|
1
|
+
{"version":3,"file":"pro-membership.js","sourceRoot":"","sources":["../../../../client-core/src/pro-membership.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { GatewayOptions } from "./relay.js";
|
|
2
|
-
export declare const MEMBERSHIP_URL = "https://itool.tech/pro?from=linkshell";
|
|
2
|
+
export declare const MEMBERSHIP_URL = "https://www.itool.tech/zh/pro?from=linkshell";
|
|
3
3
|
export interface SubscriptionCheck {
|
|
4
4
|
/** "unknown": the lookup itself failed, which says nothing about the account. */
|
|
5
5
|
status: "active" | "inactive" | "unknown";
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// The official gateway is part of the iTool membership: any active member (monthly or yearly)
|
|
2
2
|
// has LinkShell. The gateway asks iTool's `itool_entitlement_for(uid, 'linkshell')` with the
|
|
3
3
|
// service-role key, on its own behalf, not with the user's token.
|
|
4
|
-
|
|
4
|
+
// www and a locale up front: the bare domain costs two redirects. Chinese, like the message it ends.
|
|
5
|
+
export const MEMBERSHIP_URL = "https://www.itool.tech/zh/pro?from=linkshell";
|
|
5
6
|
/** The RPC's jsonb answer, as the gateway reads it. */
|
|
6
7
|
export function subscriptionFromEntitlement(value) {
|
|
7
8
|
const body = value !== null && typeof value === "object" && !Array.isArray(value) ? value : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../../gateway/src/subscription.ts"],"names":[],"mappings":"AAEA,8FAA8F;AAC9F,6FAA6F;AAC7F,kEAAkE;AAElE,MAAM,CAAC,MAAM,cAAc,GAAG,
|
|
1
|
+
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../../gateway/src/subscription.ts"],"names":[],"mappings":"AAEA,8FAA8F;AAC9F,6FAA6F;AAC7F,kEAAkE;AAElE,qGAAqG;AACrG,MAAM,CAAC,MAAM,cAAc,GAAG,8CAA8C,CAAC;AAU7E,uDAAuD;AACvD,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACxD,MAAM,IAAI,GAAG,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAgC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjI,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;IACzE,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC;IACnI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;IACpG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAkE;IACtG,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;QACxG,IAAI,CAAC,QAAQ,CAAC,cAAc;YAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC;QAC/F,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,oCAAoC,EAAE;gBACnG,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,QAAQ,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC7H,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;gBAChE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;aACnC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,2BAA2B,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACrG,OAAO,2BAA2B,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC;QACpE,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAwB,EAAE,IAA+B;IAClF,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QAChC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACzC,IAAI,CAAC,MAAM;YAAE,OAAO,4CAA4C,CAAC;QACjE,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QACzC,+EAA+E;QAC/E,IAAI,YAAY,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO,mBAAmB,cAAc,EAAE,CAAC;QACnF,IAAI,YAAY,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,mCAAmC,YAAY,CAAC,MAAM,gBAAgB,MAAM,EAAE,CAAC,CAAC;QAC5H,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "linkshell-cli",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.98",
|
|
4
4
|
"description": "Follow, steer and approve the coding agents on your computer (Claude Code, Codex, Gemini, Copilot and more) from your phone",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/cli/src/index.js",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"node-pty": "^1.1.0",
|
|
35
35
|
"qrcode-terminal": "^0.12.0",
|
|
36
36
|
"ws": "^8.21.0",
|
|
37
|
-
"@linkshell/host": "0.4.
|
|
38
|
-
"@linkshell/gateway": "0.6.
|
|
37
|
+
"@linkshell/host": "0.4.92",
|
|
38
|
+
"@linkshell/gateway": "0.6.61",
|
|
39
39
|
"@linkshell/wire": "0.2.29"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
package/src/commands/host.ts
CHANGED
|
@@ -244,7 +244,7 @@ export async function joinGatewayAfterLogin(plan: "pro" | "free"): Promise<void>
|
|
|
244
244
|
if (!chosen && plan !== "pro") {
|
|
245
245
|
// A running host now gets the gateway's own answer, instead of an old login's.
|
|
246
246
|
await refreshGateway(0);
|
|
247
|
-
out("The official gateway needs an iTool membership (monthly or yearly): https://itool.tech/pro?from=linkshell");
|
|
247
|
+
out("The official gateway needs an iTool membership (monthly or yearly): https://www.itool.tech/en/pro?from=linkshell");
|
|
248
248
|
out("Or use your own gateway: linkshell host --gateway <url>, then linkshell pair\n");
|
|
249
249
|
return;
|
|
250
250
|
}
|