@namzu/cli 14.2.0 → 14.3.0
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 +31 -7
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +7 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/login.d.ts +21 -3
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +33 -21
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/prior-messages.d.ts.map +1 -1
- package/dist/commands/prior-messages.js +13 -4
- package/dist/commands/prior-messages.js.map +1 -1
- package/dist/commands/upgrade.d.ts +25 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +182 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/context/runtime-message.d.ts +4 -0
- package/dist/context/runtime-message.d.ts.map +1 -0
- package/dist/context/runtime-message.js +20 -0
- package/dist/context/runtime-message.js.map +1 -0
- package/dist/integrations/providers/identity.d.ts +16 -21
- package/dist/integrations/providers/identity.d.ts.map +1 -1
- package/dist/integrations/providers/identity.js +16 -21
- package/dist/integrations/providers/identity.js.map +1 -1
- package/dist/integrations/providers/index.d.ts +1 -1
- package/dist/integrations/providers/index.d.ts.map +1 -1
- package/dist/integrations/providers/index.js +1 -1
- package/dist/integrations/providers/index.js.map +1 -1
- package/dist/integrations/providers/subscription-login.d.ts +7 -41
- package/dist/integrations/providers/subscription-login.d.ts.map +1 -1
- package/dist/integrations/providers/subscription-login.js +16 -143
- package/dist/integrations/providers/subscription-login.js.map +1 -1
- package/dist/integrations/sessions/transcript-export.d.ts.map +1 -1
- package/dist/integrations/sessions/transcript-export.js +10 -1
- package/dist/integrations/sessions/transcript-export.js.map +1 -1
- package/dist/integrations/sessions/turn-evidence.d.ts.map +1 -1
- package/dist/integrations/sessions/turn-evidence.js +9 -1
- package/dist/integrations/sessions/turn-evidence.js.map +1 -1
- package/dist/integrations/updates.d.ts +7 -1
- package/dist/integrations/updates.d.ts.map +1 -1
- package/dist/integrations/updates.js +59 -21
- package/dist/integrations/updates.js.map +1 -1
- package/dist/tui/App.d.ts +3 -1
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +287 -96
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/Composer.d.ts +15 -5
- package/dist/tui/Composer.d.ts.map +1 -1
- package/dist/tui/Composer.js +73 -8
- package/dist/tui/Composer.js.map +1 -1
- package/dist/tui/LiveActivity.d.ts +3 -0
- package/dist/tui/LiveActivity.d.ts.map +1 -1
- package/dist/tui/LiveActivity.js +4 -1
- package/dist/tui/LiveActivity.js.map +1 -1
- package/dist/tui/Picker.d.ts +4 -2
- package/dist/tui/Picker.d.ts.map +1 -1
- package/dist/tui/Picker.js +136 -16
- package/dist/tui/Picker.js.map +1 -1
- package/dist/tui/StatusBar.d.ts +1 -1
- package/dist/tui/StatusBar.d.ts.map +1 -1
- package/dist/tui/StatusBar.js +8 -5
- package/dist/tui/StatusBar.js.map +1 -1
- package/dist/tui/Transcript.d.ts +3 -1
- package/dist/tui/Transcript.d.ts.map +1 -1
- package/dist/tui/Transcript.js +2 -2
- package/dist/tui/Transcript.js.map +1 -1
- package/dist/tui/agent.d.ts +15 -0
- package/dist/tui/agent.d.ts.map +1 -1
- package/dist/tui/agent.js +17 -0
- package/dist/tui/agent.js.map +1 -1
- package/dist/tui/exit-summary.d.ts +6 -0
- package/dist/tui/exit-summary.d.ts.map +1 -0
- package/dist/tui/exit-summary.js +8 -0
- package/dist/tui/exit-summary.js.map +1 -0
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/index.js +15 -6
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/log-pane.d.ts +13 -8
- package/dist/tui/log-pane.d.ts.map +1 -1
- package/dist/tui/log-pane.js +23 -29
- package/dist/tui/log-pane.js.map +1 -1
- package/dist/tui/login-prompt.d.ts +0 -1
- package/dist/tui/login-prompt.d.ts.map +1 -1
- package/dist/tui/login-prompt.js +1 -6
- package/dist/tui/login-prompt.js.map +1 -1
- package/dist/tui/open-browser.d.ts.map +1 -1
- package/dist/tui/open-browser.js +27 -9
- package/dist/tui/open-browser.js.map +1 -1
- package/package.json +7 -7
|
@@ -4,45 +4,83 @@
|
|
|
4
4
|
* unpublished yields `null`, never an error or a hang.
|
|
5
5
|
*/
|
|
6
6
|
const NPM_TIMEOUT_MS = 2_500;
|
|
7
|
-
|
|
7
|
+
const SEMVER_PATTERN = /^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/;
|
|
8
|
+
function parseVersion(value) {
|
|
9
|
+
const match = SEMVER_PATTERN.exec(value);
|
|
10
|
+
if (!match)
|
|
11
|
+
return null;
|
|
12
|
+
return {
|
|
13
|
+
core: [Number(match[1]), Number(match[2]), Number(match[3])],
|
|
14
|
+
prerelease: match[4]?.split('.') ?? null,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/** Compare semantic versions; >0 if a>b, <0 if a<b, 0 if equal. */
|
|
8
18
|
export function compareVersions(a, b) {
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const pb = parse(b);
|
|
16
|
-
for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
|
|
17
|
-
const d = (pa[i] ?? 0) - (pb[i] ?? 0);
|
|
19
|
+
const pa = parseVersion(a);
|
|
20
|
+
const pb = parseVersion(b);
|
|
21
|
+
if (!pa || !pb)
|
|
22
|
+
throw new Error(`Cannot compare invalid semantic versions: ${a}, ${b}`);
|
|
23
|
+
for (let i = 0; i < pa.core.length; i++) {
|
|
24
|
+
const d = (pa.core[i] ?? 0) - (pb.core[i] ?? 0);
|
|
18
25
|
if (d !== 0)
|
|
19
26
|
return d;
|
|
20
27
|
}
|
|
28
|
+
if (pa.prerelease === null || pb.prerelease === null) {
|
|
29
|
+
if (pa.prerelease === pb.prerelease)
|
|
30
|
+
return 0;
|
|
31
|
+
return pa.prerelease === null ? 1 : -1;
|
|
32
|
+
}
|
|
33
|
+
for (let i = 0; i < Math.max(pa.prerelease.length, pb.prerelease.length); i++) {
|
|
34
|
+
const left = pa.prerelease[i];
|
|
35
|
+
const right = pb.prerelease[i];
|
|
36
|
+
if (left === right)
|
|
37
|
+
continue;
|
|
38
|
+
if (left === undefined)
|
|
39
|
+
return -1;
|
|
40
|
+
if (right === undefined)
|
|
41
|
+
return 1;
|
|
42
|
+
const leftNumeric = /^\d+$/.test(left);
|
|
43
|
+
const rightNumeric = /^\d+$/.test(right);
|
|
44
|
+
if (leftNumeric && rightNumeric)
|
|
45
|
+
return Number(left) - Number(right);
|
|
46
|
+
if (leftNumeric !== rightNumeric)
|
|
47
|
+
return leftNumeric ? -1 : 1;
|
|
48
|
+
return left < right ? -1 : 1;
|
|
49
|
+
}
|
|
21
50
|
return 0;
|
|
22
51
|
}
|
|
23
|
-
/**
|
|
24
|
-
export async function
|
|
52
|
+
/** Exact latest published CLI version, or an error when it cannot be established. */
|
|
53
|
+
export async function latestNamzuVersion(options = {}) {
|
|
25
54
|
const controller = new AbortController();
|
|
26
|
-
const timer = setTimeout(() => controller.abort(), NPM_TIMEOUT_MS);
|
|
55
|
+
const timer = setTimeout(() => controller.abort(), options.timeoutMs ?? NPM_TIMEOUT_MS);
|
|
27
56
|
try {
|
|
28
|
-
const res = await fetch('https://registry.npmjs.org/@namzu/cli/latest', {
|
|
57
|
+
const res = await (options.fetch ?? fetch)('https://registry.npmjs.org/@namzu/cli/latest', {
|
|
29
58
|
signal: controller.signal,
|
|
30
59
|
headers: { accept: 'application/json' },
|
|
31
60
|
});
|
|
32
61
|
if (!res.ok)
|
|
33
|
-
|
|
62
|
+
throw new Error(`npm registry returned HTTP ${res.status}`);
|
|
34
63
|
const data = (await res.json());
|
|
35
|
-
|
|
36
|
-
|
|
64
|
+
if (typeof data.version !== 'string' || parseVersion(data.version) === null) {
|
|
65
|
+
throw new Error('npm registry returned an invalid @namzu/cli version');
|
|
66
|
+
}
|
|
67
|
+
return data.version.replace(/^v/, '');
|
|
68
|
+
}
|
|
69
|
+
finally {
|
|
70
|
+
clearTimeout(timer);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/** Newer @namzu/cli on npm, or null when up to date / unreachable. */
|
|
74
|
+
export async function checkNamzuUpdate(current) {
|
|
75
|
+
try {
|
|
76
|
+
const latest = await latestNamzuVersion();
|
|
77
|
+
if (compareVersions(latest, current) <= 0)
|
|
37
78
|
return null;
|
|
38
|
-
return { name: 'namzu', current, latest, how: '
|
|
79
|
+
return { name: 'namzu', current, latest, how: 'namzu upgrade' };
|
|
39
80
|
}
|
|
40
81
|
catch {
|
|
41
82
|
return null;
|
|
42
83
|
}
|
|
43
|
-
finally {
|
|
44
|
-
clearTimeout(timer);
|
|
45
|
-
}
|
|
46
84
|
}
|
|
47
85
|
/** Returns an update when one is available. */
|
|
48
86
|
export async function checkUpdates(namzuVersion) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updates.js","sourceRoot":"","sources":["../../src/integrations/updates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,MAAM,cAAc,GAAG,KAAK,CAAA;AAE5B,
|
|
1
|
+
{"version":3,"file":"updates.js","sourceRoot":"","sources":["../../src/integrations/updates.ts"],"names":[],"mappings":"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"}
|
package/dist/tui/App.d.ts
CHANGED
|
@@ -11,11 +11,13 @@
|
|
|
11
11
|
* automatic reuse is not mistaken for a durable operator preference.
|
|
12
12
|
*/
|
|
13
13
|
import { type Message } from '@namzu/sdk';
|
|
14
|
+
import type { TuiExitSummary } from './exit-summary.js';
|
|
14
15
|
import type { TranscriptMessage, TuiContext } from './types.js';
|
|
15
16
|
export interface AppProps {
|
|
16
17
|
readonly ctx: TuiContext;
|
|
18
|
+
readonly onExitSummary?: (summary: TuiExitSummary) => void;
|
|
17
19
|
}
|
|
18
20
|
/** Build the transcript projection of exact model-visible history. */
|
|
19
21
|
export declare function projectConversation(messages: readonly Message[], nextId: () => string, readableUserTexts?: readonly string[]): readonly TranscriptMessage[];
|
|
20
|
-
export declare function App({ ctx: initialCtx }: AppProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export declare function App({ ctx: initialCtx, onExitSummary }: AppProps): import("react/jsx-runtime").JSX.Element;
|
|
21
23
|
//# sourceMappingURL=App.d.ts.map
|
package/dist/tui/App.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAMN,KAAK,OAAO,EAaZ,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAMN,KAAK,OAAO,EAaZ,MAAM,YAAY,CAAA;AA0FnB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AA4BvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAG/D,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAA;CAC1D;AA8DD,sEAAsE;AACtE,wBAAgB,mBAAmB,CAClC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,MAAM,EAAE,MAAM,MAAM,EACpB,iBAAiB,GAAE,SAAS,MAAM,EAAO,GACvC,SAAS,iBAAiB,EAAE,CAuE9B;AA6ID,wBAAgB,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,QAAQ,2CAuwH/D"}
|