@medalsocial/pilot 0.1.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/dist/bin/pilot.d.ts +3 -0
- package/dist/bin/pilot.d.ts.map +1 -0
- package/dist/bin/pilot.js +64 -0
- package/dist/bin/pilot.js.map +1 -0
- package/dist/colors.d.ts +12 -0
- package/dist/colors.d.ts.map +1 -0
- package/dist/colors.js +12 -0
- package/dist/colors.js.map +1 -0
- package/dist/commands/crew.d.ts +2 -0
- package/dist/commands/crew.d.ts.map +1 -0
- package/dist/commands/crew.js +7 -0
- package/dist/commands/crew.js.map +1 -0
- package/dist/commands/help.d.ts +2 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/help.js +7 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/plugins.d.ts +2 -0
- package/dist/commands/plugins.d.ts.map +1 -0
- package/dist/commands/plugins.js +17 -0
- package/dist/commands/plugins.js.map +1 -0
- package/dist/commands/repl.d.ts +2 -0
- package/dist/commands/repl.d.ts.map +1 -0
- package/dist/commands/repl.js +7 -0
- package/dist/commands/repl.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +7 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/training.d.ts +2 -0
- package/dist/commands/training.d.ts.map +1 -0
- package/dist/commands/training.js +7 -0
- package/dist/commands/training.js.map +1 -0
- package/dist/commands/up.d.ts +2 -0
- package/dist/commands/up.d.ts.map +1 -0
- package/dist/commands/up.js +7 -0
- package/dist/commands/up.js.map +1 -0
- package/dist/commands/update.d.ts +2 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +10 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/components/Header.d.ts +7 -0
- package/dist/components/Header.d.ts.map +1 -0
- package/dist/components/Header.js +8 -0
- package/dist/components/Header.js.map +1 -0
- package/dist/components/Modal.d.ts +9 -0
- package/dist/components/Modal.d.ts.map +1 -0
- package/dist/components/Modal.js +7 -0
- package/dist/components/Modal.js.map +1 -0
- package/dist/components/ProgressBar.d.ts +8 -0
- package/dist/components/ProgressBar.d.ts.map +1 -0
- package/dist/components/ProgressBar.js +10 -0
- package/dist/components/ProgressBar.js.map +1 -0
- package/dist/components/SplitPanel.d.ts +9 -0
- package/dist/components/SplitPanel.d.ts.map +1 -0
- package/dist/components/SplitPanel.js +7 -0
- package/dist/components/SplitPanel.js.map +1 -0
- package/dist/components/StatusBar.d.ts +9 -0
- package/dist/components/StatusBar.d.ts.map +1 -0
- package/dist/components/StatusBar.js +7 -0
- package/dist/components/StatusBar.js.map +1 -0
- package/dist/components/Step.d.ts +9 -0
- package/dist/components/Step.d.ts.map +1 -0
- package/dist/components/Step.js +14 -0
- package/dist/components/Step.js.map +1 -0
- package/dist/components/TabBar.d.ts +9 -0
- package/dist/components/TabBar.d.ts.map +1 -0
- package/dist/components/TabBar.js +7 -0
- package/dist/components/TabBar.js.map +1 -0
- package/dist/components/ThinkingRow.d.ts +6 -0
- package/dist/components/ThinkingRow.d.ts.map +1 -0
- package/dist/components/ThinkingRow.js +7 -0
- package/dist/components/ThinkingRow.js.map +1 -0
- package/dist/components/index.d.ts +9 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +9 -0
- package/dist/components/index.js.map +1 -0
- package/dist/crew/members.d.ts +3 -0
- package/dist/crew/members.d.ts.map +1 -0
- package/dist/crew/members.js +33 -0
- package/dist/crew/members.js.map +1 -0
- package/dist/hooks/useListNav.d.ts +12 -0
- package/dist/hooks/useListNav.d.ts.map +1 -0
- package/dist/hooks/useListNav.js +27 -0
- package/dist/hooks/useListNav.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/bundled.d.ts +3 -0
- package/dist/plugins/bundled.d.ts.map +1 -0
- package/dist/plugins/bundled.js +42 -0
- package/dist/plugins/bundled.js.map +1 -0
- package/dist/plugins/discover.d.ts +10 -0
- package/dist/plugins/discover.d.ts.map +1 -0
- package/dist/plugins/discover.js +48 -0
- package/dist/plugins/discover.js.map +1 -0
- package/dist/plugins/loader.d.ts +3 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +28 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/manifest.d.ts +76 -0
- package/dist/plugins/manifest.d.ts.map +1 -0
- package/dist/plugins/manifest.js +27 -0
- package/dist/plugins/manifest.js.map +1 -0
- package/dist/plugins/types.d.ts +16 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +2 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/screens/Home.d.ts +2 -0
- package/dist/screens/Home.d.ts.map +1 -0
- package/dist/screens/Home.js +12 -0
- package/dist/screens/Home.js.map +1 -0
- package/dist/screens/Plugins.d.ts +7 -0
- package/dist/screens/Plugins.d.ts.map +1 -0
- package/dist/screens/Plugins.js +58 -0
- package/dist/screens/Plugins.js.map +1 -0
- package/dist/screens/Repl.d.ts +2 -0
- package/dist/screens/Repl.d.ts.map +1 -0
- package/dist/screens/Repl.js +17 -0
- package/dist/screens/Repl.js.map +1 -0
- package/dist/screens/Training.d.ts +2 -0
- package/dist/screens/Training.d.ts.map +1 -0
- package/dist/screens/Training.js +52 -0
- package/dist/screens/Training.js.map +1 -0
- package/dist/screens/Update.d.ts +6 -0
- package/dist/screens/Update.d.ts.map +1 -0
- package/dist/screens/Update.js +57 -0
- package/dist/screens/Update.js.map +1 -0
- package/dist/screens/Welcome.d.ts +6 -0
- package/dist/screens/Welcome.d.ts.map +1 -0
- package/dist/screens/Welcome.js +13 -0
- package/dist/screens/Welcome.js.map +1 -0
- package/dist/settings.d.ts +11 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +27 -0
- package/dist/settings.js.map +1 -0
- package/dist/training/types.d.ts +20 -0
- package/dist/training/types.d.ts.map +1 -0
- package/dist/training/types.js +2 -0
- package/dist/training/types.js.map +1 -0
- package/dist/types.d.ts +31 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/update/checker.d.ts +12 -0
- package/dist/update/checker.d.ts.map +1 -0
- package/dist/update/checker.js +48 -0
- package/dist/update/checker.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
import { Box, Text, useInput } from 'ink';
|
|
4
|
+
import { Step } from '../components/Step.js';
|
|
5
|
+
import { ProgressBar } from '../components/ProgressBar.js';
|
|
6
|
+
import { colors } from '../colors.js';
|
|
7
|
+
import { checkForUpdates, applyUpdate } from '../update/checker.js';
|
|
8
|
+
export function Update({ currentVersion }) {
|
|
9
|
+
const [phase, setPhase] = useState('checking');
|
|
10
|
+
const [checkResult, setCheckResult] = useState(null);
|
|
11
|
+
const [updateError, setUpdateError] = useState(null);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
if (phase !== 'checking')
|
|
14
|
+
return;
|
|
15
|
+
let cancelled = false;
|
|
16
|
+
checkForUpdates(currentVersion).then((result) => {
|
|
17
|
+
if (cancelled)
|
|
18
|
+
return;
|
|
19
|
+
setCheckResult(result);
|
|
20
|
+
if (result.error) {
|
|
21
|
+
setUpdateError(result.error);
|
|
22
|
+
setPhase('error');
|
|
23
|
+
}
|
|
24
|
+
else if (result.hasUpdate) {
|
|
25
|
+
setPhase('confirm');
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
setPhase('up-to-date');
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
return () => { cancelled = true; };
|
|
32
|
+
}, [phase, currentVersion]);
|
|
33
|
+
useInput((input, key) => {
|
|
34
|
+
if (phase === 'confirm') {
|
|
35
|
+
if (input === 'y' || input === 'Y' || key.return) {
|
|
36
|
+
setPhase('updating');
|
|
37
|
+
}
|
|
38
|
+
else if (input === 'n' || input === 'N') {
|
|
39
|
+
setPhase('up-to-date');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
if (phase !== 'updating')
|
|
45
|
+
return;
|
|
46
|
+
const result = applyUpdate();
|
|
47
|
+
if (result.success) {
|
|
48
|
+
setPhase('complete');
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
setUpdateError(result.error ?? 'Update failed');
|
|
52
|
+
setPhase('error');
|
|
53
|
+
}
|
|
54
|
+
}, [phase]);
|
|
55
|
+
return (_jsxs(Box, { flexDirection: "column", padding: 2, gap: 1, children: [_jsx(Text, { color: colors.muted, children: "$ pilot update" }), phase === 'checking' && (_jsx(Step, { label: "Checking for updates...", status: "active" })), phase === 'up-to-date' && (_jsxs(_Fragment, { children: [_jsx(Step, { label: "Version check complete", status: "done" }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: colors.success, bold: true, children: ["\u2708 Flight systems are current (", currentVersion, ")"] }) })] })), phase === 'confirm' && checkResult && (_jsxs(_Fragment, { children: [_jsx(Step, { label: "Update available", status: "done" }), _jsxs(Box, { marginTop: 1, flexDirection: "column", gap: 1, children: [_jsxs(Text, { color: colors.text, children: [_jsx(Text, { bold: true, children: checkResult.current }), _jsx(Text, { color: colors.muted, children: " \u2192 " }), _jsx(Text, { bold: true, color: colors.success, children: checkResult.latest })] }), _jsx(Text, { color: colors.text, children: "Apply update? [Y/n]" })] })] })), phase === 'updating' && (_jsxs(_Fragment, { children: [_jsx(Step, { label: "Downloading update", status: "active" }), _jsx(ProgressBar, { progress: 0.5, label: "Installing..." })] })), phase === 'complete' && checkResult && (_jsxs(_Fragment, { children: [_jsx(Step, { label: "Update downloaded", status: "done" }), _jsx(Step, { label: "Update installed", status: "done" }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: colors.success, bold: true, children: ["\u2708 Flight systems upgraded to ", checkResult.latest, "!"] }) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.muted, children: "Restart pilot to use new features" }) })] })), phase === 'error' && (_jsxs(_Fragment, { children: [_jsx(Step, { label: "Update failed", status: "error" }), _jsxs(Box, { marginTop: 1, flexDirection: "column", gap: 1, children: [_jsx(Text, { color: colors.error, children: updateError }), _jsx(Text, { color: colors.muted, children: "Try manually: npm install -g @medalsocial/pilot@latest" })] })] }))] }));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=Update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Update.js","sourceRoot":"","sources":["../../src/screens/Update.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Welcome.d.ts","sourceRoot":"","sources":["../../src/screens/Welcome.tsx"],"names":[],"mappings":"AAMA,UAAU,YAAY;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,wBAAgB,OAAO,CAAC,EAAE,UAAU,EAAE,EAAE,YAAY,2CAgCnD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text, useInput } from 'ink';
|
|
3
|
+
import { Header } from '../components/Header.js';
|
|
4
|
+
import { colors } from '../colors.js';
|
|
5
|
+
import { defaultCrew } from '../crew/members.js';
|
|
6
|
+
export function Welcome({ onContinue }) {
|
|
7
|
+
useInput((_input, key) => {
|
|
8
|
+
if (key.return)
|
|
9
|
+
onContinue();
|
|
10
|
+
});
|
|
11
|
+
return (_jsxs(Box, { flexDirection: "column", alignItems: "center", gap: 1, padding: 2, children: [_jsx(Header, { size: "large" }), _jsx(Text, { bold: true, color: colors.text, children: "Welcome aboard, Captain." }), _jsx(Text, { color: colors.muted, children: "You have a full AI crew ready to work. Here's who's on board:" }), _jsx(Box, { flexDirection: "column", gap: 0, marginTop: 1, children: defaultCrew.map((member) => (_jsxs(Box, { gap: 1, children: [_jsx(Text, { color: member.color, children: "\u25CF" }), _jsx(Text, { bold: true, color: colors.text, children: member.role }), _jsxs(Text, { color: colors.muted, children: ["\u2014 ", member.description] })] }, member.role))) }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: colors.muted, children: ["Press ", _jsx(Text, { bold: true, color: colors.text, children: "Enter" }), " to start flying"] }) })] }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=Welcome.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Welcome.js","sourceRoot":"","sources":["../../src/screens/Welcome.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMjD,MAAM,UAAU,OAAO,CAAC,EAAE,UAAU,EAAgB;IAClD,QAAQ,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACvB,IAAI,GAAG,CAAC,MAAM;YAAE,UAAU,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,aAChE,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,GAAG,EACvB,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,MAAM,CAAC,IAAI,yCAEtB,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,8EAElB,EACP,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,YAC7C,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC3B,MAAC,GAAG,IAAmB,GAAG,EAAE,CAAC,aAC3B,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,uBAAU,EACnC,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,MAAM,CAAC,IAAI,YAC1B,MAAM,CAAC,IAAI,GACP,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,wBAAK,MAAM,CAAC,WAAW,IAAQ,KALhD,MAAM,CAAC,IAAI,CAMf,CACP,CAAC,GACE,EACN,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,uBACjB,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,MAAM,CAAC,IAAI,sBAAc,wBAC5C,GACH,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface PilotSettings {
|
|
2
|
+
onboarded: boolean;
|
|
3
|
+
lastRun?: string;
|
|
4
|
+
plugins: Record<string, {
|
|
5
|
+
enabled: boolean;
|
|
6
|
+
}>;
|
|
7
|
+
}
|
|
8
|
+
export declare function loadSettings(): PilotSettings;
|
|
9
|
+
export declare function saveSettings(settings: PilotSettings): void;
|
|
10
|
+
export declare function markOnboarded(): void;
|
|
11
|
+
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC/C;AAOD,wBAAgB,YAAY,IAAI,aAAa,CAM5C;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAG1D;AAED,wBAAgB,aAAa,IAAI,IAAI,CAKpC"}
|
package/dist/settings.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { homedir } from 'node:os';
|
|
4
|
+
const PILOT_DIR = join(homedir(), '.pilot');
|
|
5
|
+
const SETTINGS_FILE = join(PILOT_DIR, 'settings.json');
|
|
6
|
+
const DEFAULT_SETTINGS = {
|
|
7
|
+
onboarded: false,
|
|
8
|
+
plugins: {},
|
|
9
|
+
};
|
|
10
|
+
export function loadSettings() {
|
|
11
|
+
if (!existsSync(SETTINGS_FILE)) {
|
|
12
|
+
return { ...DEFAULT_SETTINGS };
|
|
13
|
+
}
|
|
14
|
+
const raw = JSON.parse(readFileSync(SETTINGS_FILE, 'utf-8'));
|
|
15
|
+
return { ...DEFAULT_SETTINGS, ...raw };
|
|
16
|
+
}
|
|
17
|
+
export function saveSettings(settings) {
|
|
18
|
+
mkdirSync(PILOT_DIR, { recursive: true });
|
|
19
|
+
writeFileSync(SETTINGS_FILE, JSON.stringify(settings, null, 2));
|
|
20
|
+
}
|
|
21
|
+
export function markOnboarded() {
|
|
22
|
+
const settings = loadSettings();
|
|
23
|
+
settings.onboarded = true;
|
|
24
|
+
settings.lastRun = new Date().toISOString();
|
|
25
|
+
saveSettings(settings);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;AAQvD,MAAM,gBAAgB,GAAkB;IACtC,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACjC,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,OAAO,EAAE,GAAG,gBAAgB,EAAE,GAAG,GAAG,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAuB;IAClD,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,YAAY,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface KnowledgeSource {
|
|
2
|
+
id: string;
|
|
3
|
+
type: 'sanity' | 'slack' | 'manual';
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
connected: boolean;
|
|
7
|
+
lastSync?: string;
|
|
8
|
+
documentCount?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface TrainingRun {
|
|
11
|
+
id: number;
|
|
12
|
+
status: 'running' | 'complete' | 'failed';
|
|
13
|
+
steps: Array<{
|
|
14
|
+
label: string;
|
|
15
|
+
status: 'done' | 'active' | 'waiting';
|
|
16
|
+
}>;
|
|
17
|
+
sourcesIncluded: string[];
|
|
18
|
+
outputFiles: string[];
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/training/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC1C,KAAK,EAAE,KAAK,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;KACvC,CAAC,CAAC;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/training/types.ts"],"names":[],"mappings":""}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export type StepStatus = 'done' | 'active' | 'waiting' | 'error';
|
|
2
|
+
export interface StepItem {
|
|
3
|
+
label: string;
|
|
4
|
+
detail?: string;
|
|
5
|
+
status: StepStatus;
|
|
6
|
+
}
|
|
7
|
+
export interface CrewMember {
|
|
8
|
+
role: string;
|
|
9
|
+
description: string;
|
|
10
|
+
skills: string[];
|
|
11
|
+
color: string;
|
|
12
|
+
}
|
|
13
|
+
export interface PluginManifest {
|
|
14
|
+
name: string;
|
|
15
|
+
namespace: string;
|
|
16
|
+
description: string;
|
|
17
|
+
provides: {
|
|
18
|
+
commands?: string[];
|
|
19
|
+
mcpServers?: string[];
|
|
20
|
+
};
|
|
21
|
+
permissions?: {
|
|
22
|
+
network?: string[];
|
|
23
|
+
};
|
|
24
|
+
roleBindings?: Record<string, string>;
|
|
25
|
+
}
|
|
26
|
+
export type TabId = string;
|
|
27
|
+
export interface Tab {
|
|
28
|
+
id: TabId;
|
|
29
|
+
label: string;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAEjE,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC;AAE3B,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface UpdateCheckResult {
|
|
2
|
+
current: string;
|
|
3
|
+
latest: string;
|
|
4
|
+
hasUpdate: boolean;
|
|
5
|
+
error?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function checkForUpdates(currentVersion: string): Promise<UpdateCheckResult>;
|
|
8
|
+
export declare function applyUpdate(): {
|
|
9
|
+
success: boolean;
|
|
10
|
+
error?: string;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=checker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../src/update/checker.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA8BxF;AAED,wBAAgB,WAAW,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAalE"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { execFileSync } from 'node:child_process';
|
|
2
|
+
export async function checkForUpdates(currentVersion) {
|
|
3
|
+
try {
|
|
4
|
+
const output = execFileSync('npm', ['view', '@medalsocial/pilot', 'version'], {
|
|
5
|
+
encoding: 'utf-8',
|
|
6
|
+
timeout: 10000,
|
|
7
|
+
});
|
|
8
|
+
const latest = String(output).trim();
|
|
9
|
+
return {
|
|
10
|
+
current: currentVersion,
|
|
11
|
+
latest,
|
|
12
|
+
hasUpdate: latest !== currentVersion,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
catch (err) {
|
|
16
|
+
const message = err instanceof Error ? err.message : 'Unknown error';
|
|
17
|
+
// npm 404 means package isn't published yet — not an error
|
|
18
|
+
if (message.includes('404') || message.includes('Not Found')) {
|
|
19
|
+
return {
|
|
20
|
+
current: currentVersion,
|
|
21
|
+
latest: currentVersion,
|
|
22
|
+
hasUpdate: false,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
current: currentVersion,
|
|
27
|
+
latest: currentVersion,
|
|
28
|
+
hasUpdate: false,
|
|
29
|
+
error: message,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export function applyUpdate() {
|
|
34
|
+
try {
|
|
35
|
+
execFileSync('npm', ['install', '-g', '@medalsocial/pilot@latest'], {
|
|
36
|
+
encoding: 'utf-8',
|
|
37
|
+
timeout: 120000,
|
|
38
|
+
});
|
|
39
|
+
return { success: true };
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
return {
|
|
43
|
+
success: false,
|
|
44
|
+
error: err instanceof Error ? err.message : 'Unknown error',
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=checker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checker.js","sourceRoot":"","sources":["../../src/update/checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASlD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,cAAsB;IAC1D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,CAAC,EAAE;YAC5E,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAErC,OAAO;YACL,OAAO,EAAE,cAAc;YACvB,MAAM;YACN,SAAS,EAAE,MAAM,KAAK,cAAc;SACrC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACrE,2DAA2D;QAC3D,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7D,OAAO;gBACL,OAAO,EAAE,cAAc;gBACvB,MAAM,EAAE,cAAc;gBACtB,SAAS,EAAE,KAAK;aACjB,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,cAAc;YACtB,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,OAAO;SACf,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC;QACH,YAAY,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,2BAA2B,CAAC,EAAE;YAClE,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAC5D,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@medalsocial/pilot",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Your AI crew, ready to fly. Medal Social's AI-powered CLI platform.",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/Medal-Social/pilot.git",
|
|
10
|
+
"directory": "packages/cli"
|
|
11
|
+
},
|
|
12
|
+
"bin": {
|
|
13
|
+
"pilot": "dist/bin/pilot.js"
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist",
|
|
17
|
+
"!dist/**/*.test.*"
|
|
18
|
+
],
|
|
19
|
+
"publishConfig": {
|
|
20
|
+
"access": "public",
|
|
21
|
+
"provenance": false
|
|
22
|
+
},
|
|
23
|
+
"scripts": {
|
|
24
|
+
"dev": "tsx watch src/bin/pilot.ts",
|
|
25
|
+
"build": "tsc",
|
|
26
|
+
"test": "vitest",
|
|
27
|
+
"prepublishOnly": "tsc"
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"commander": "^13.0.0",
|
|
31
|
+
"ink": "^5.1.0",
|
|
32
|
+
"ink-text-input": "^6.0.0",
|
|
33
|
+
"react": "^18.3.0",
|
|
34
|
+
"smol-toml": "^1.6.1",
|
|
35
|
+
"zod": "^3.24.0"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@types/node": "^25.6.0",
|
|
39
|
+
"@types/react": "^18.3.0",
|
|
40
|
+
"ink-testing-library": "^4.0.0",
|
|
41
|
+
"tsx": "^4.19.0"
|
|
42
|
+
}
|
|
43
|
+
}
|