@medalsocial/pilot 0.1.0 → 0.1.5
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 +88 -0
- package/dist/colors.d.ts +1 -0
- package/dist/colors.d.ts.map +1 -1
- package/dist/colors.js +1 -0
- package/dist/colors.js.map +1 -1
- package/dist/crew/members.d.ts.map +1 -1
- package/dist/crew/members.js +6 -5
- package/dist/crew/members.js.map +1 -1
- package/dist/errors.d.ts +11 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +19 -0
- package/dist/errors.js.map +1 -0
- package/dist/hooks/useListNav.js +4 -2
- package/dist/hooks/useListNav.js.map +1 -1
- package/dist/plugins/discover.d.ts.map +1 -1
- package/dist/plugins/discover.js +9 -2
- package/dist/plugins/discover.js.map +1 -1
- package/dist/plugins/manifest.d.ts +7 -53
- package/dist/plugins/manifest.d.ts.map +1 -1
- package/dist/plugins/manifest.js +2 -2
- package/dist/plugins/manifest.js.map +1 -1
- package/dist/screens/Plugins.d.ts.map +1 -1
- package/dist/screens/Plugins.js +13 -9
- package/dist/screens/Plugins.js.map +1 -1
- package/dist/screens/Update.d.ts.map +1 -1
- package/dist/screens/Update.js +16 -11
- package/dist/screens/Update.js.map +1 -1
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +7 -2
- package/dist/settings.js.map +1 -1
- package/dist/update/checker.d.ts +5 -4
- package/dist/update/checker.d.ts.map +1 -1
- package/dist/update/checker.js +19 -13
- package/dist/update/checker.js.map +1 -1
- package/package.json +35 -12
package/README.md
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# @medalsocial/pilot
|
|
2
|
+
|
|
3
|
+
**Your AI crew, ready to fly.**
|
|
4
|
+
|
|
5
|
+
Pilot is an AI-powered CLI platform by Medal Social. One command gives you a full AI crew that knows your brand, creates content, manages your machine, and works across every AI tool you use.
|
|
6
|
+
|
|
7
|
+
Everything runs locally. Your data stays on your machine.
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install -g @medalsocial/pilot
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# Launch the cockpit
|
|
19
|
+
pilot
|
|
20
|
+
|
|
21
|
+
# One-click machine setup
|
|
22
|
+
pilot up <template>
|
|
23
|
+
|
|
24
|
+
# Manage your AI crew
|
|
25
|
+
pilot crew
|
|
26
|
+
|
|
27
|
+
# Teach your crew about your brand
|
|
28
|
+
pilot training
|
|
29
|
+
|
|
30
|
+
# Browse and manage plugins
|
|
31
|
+
pilot plugins
|
|
32
|
+
|
|
33
|
+
# Check for updates
|
|
34
|
+
pilot update
|
|
35
|
+
|
|
36
|
+
# System health
|
|
37
|
+
pilot status
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Commands
|
|
41
|
+
|
|
42
|
+
| Command | Description |
|
|
43
|
+
|---------|-------------|
|
|
44
|
+
| `pilot` | Launch the cockpit — chat with your crew, see dashboard |
|
|
45
|
+
| `pilot up <template>` | One-click setup — install templates and skills |
|
|
46
|
+
| `pilot crew` | Manage your AI crew — skills, tools, specialists |
|
|
47
|
+
| `pilot training` | Knowledge base — teach your crew about your brand |
|
|
48
|
+
| `pilot plugins` | Browse and manage plugins |
|
|
49
|
+
| `pilot update` | Check for and apply updates |
|
|
50
|
+
| `pilot status` | Machine and system health |
|
|
51
|
+
| `pilot help` | Help reference |
|
|
52
|
+
|
|
53
|
+
## How It Works
|
|
54
|
+
|
|
55
|
+
Pilot gives you five AI crew leads, each specialized in a domain:
|
|
56
|
+
|
|
57
|
+
- **Brand Lead** — voice, tone, style, guidelines
|
|
58
|
+
- **Marketing Lead** — social posts, campaigns, email, content
|
|
59
|
+
- **Tech Lead** — build, deploy, scaffold, code review
|
|
60
|
+
- **CS Lead** — support tickets, customer issues
|
|
61
|
+
- **Sales Lead** — outreach, pipeline
|
|
62
|
+
|
|
63
|
+
Ask anything in natural language and Pilot routes to the right crew member automatically.
|
|
64
|
+
|
|
65
|
+
## Key Features
|
|
66
|
+
|
|
67
|
+
- **Local-first** — works offline, no account required
|
|
68
|
+
- **Private by design** — your data never leaves your machine
|
|
69
|
+
- **Cloud-optional** — connect for sync, registry, team sharing
|
|
70
|
+
- **Portable config** — generates AGENTS.md and CLAUDE.md for use in Claude Code, Codex, and more
|
|
71
|
+
- **Plugin system** — extend with community or custom plugins
|
|
72
|
+
|
|
73
|
+
## Plugin System
|
|
74
|
+
|
|
75
|
+
Pilot supports plugins declared via `plugin.toml` with permission enforcement:
|
|
76
|
+
|
|
77
|
+
- `@medalsocial/kit` — machine management
|
|
78
|
+
- `@medalsocial/sanity` — CMS integration
|
|
79
|
+
- `@medalsocial/pencil` — design tool integration
|
|
80
|
+
|
|
81
|
+
## Links
|
|
82
|
+
|
|
83
|
+
- [GitHub](https://github.com/Medal-Social/pilot)
|
|
84
|
+
- [Issues](https://github.com/Medal-Social/pilot/issues)
|
|
85
|
+
|
|
86
|
+
## License
|
|
87
|
+
|
|
88
|
+
MIT
|
package/dist/colors.d.ts
CHANGED
package/dist/colors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;;;;CAWT,CAAC"}
|
package/dist/colors.js
CHANGED
package/dist/colors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,EAAE,EAAE,SAAS;IACb,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;CACR,CAAC"}
|
|
1
|
+
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,EAAE,EAAE,SAAS;IACb,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;CACR,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"members.d.ts","sourceRoot":"","sources":["../../src/crew/members.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"members.d.ts","sourceRoot":"","sources":["../../src/crew/members.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,eAAO,MAAM,WAAW,EAAE,UAAU,EA+BnC,CAAC"}
|
package/dist/crew/members.js
CHANGED
|
@@ -1,33 +1,34 @@
|
|
|
1
|
+
import { colors } from '../colors.js';
|
|
1
2
|
export const defaultCrew = [
|
|
2
3
|
{
|
|
3
4
|
role: 'Brand Lead',
|
|
4
5
|
description: 'Learns your voice, trains all other leads',
|
|
5
6
|
skills: ['brand-voice', 'tone-analysis'],
|
|
6
|
-
color:
|
|
7
|
+
color: colors.primary,
|
|
7
8
|
},
|
|
8
9
|
{
|
|
9
10
|
role: 'Marketing Lead',
|
|
10
11
|
description: 'Social posts, campaigns, content calendar',
|
|
11
12
|
skills: ['content-writer', 'social-scheduler'],
|
|
12
|
-
color:
|
|
13
|
+
color: colors.success,
|
|
13
14
|
},
|
|
14
15
|
{
|
|
15
16
|
role: 'Tech Lead',
|
|
16
17
|
description: 'Suite builds, deploys, code review',
|
|
17
18
|
skills: ['nextmedal', 'deploy'],
|
|
18
|
-
color:
|
|
19
|
+
color: colors.info,
|
|
19
20
|
},
|
|
20
21
|
{
|
|
21
22
|
role: 'CS Lead',
|
|
22
23
|
description: 'Tickets, escalation, customer retention',
|
|
23
24
|
skills: ['support-agent'],
|
|
24
|
-
color:
|
|
25
|
+
color: colors.warning,
|
|
25
26
|
},
|
|
26
27
|
{
|
|
27
28
|
role: 'Sales Lead',
|
|
28
29
|
description: 'Outreach, pipeline, lead scoring',
|
|
29
30
|
skills: ['outreach'],
|
|
30
|
-
color:
|
|
31
|
+
color: colors.error,
|
|
31
32
|
},
|
|
32
33
|
];
|
|
33
34
|
//# sourceMappingURL=members.js.map
|
package/dist/crew/members.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"members.js","sourceRoot":"","sources":["../../src/crew/members.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"members.js","sourceRoot":"","sources":["../../src/crew/members.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,2CAA2C;QACxD,MAAM,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;QACxC,KAAK,EAAE,MAAM,CAAC,OAAO;KACtB;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,2CAA2C;QACxD,MAAM,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;QAC9C,KAAK,EAAE,MAAM,CAAC,OAAO;KACtB;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,oCAAoC;QACjD,MAAM,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;QAC/B,KAAK,EAAE,MAAM,CAAC,IAAI;KACnB;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,yCAAyC;QACtD,MAAM,EAAE,CAAC,eAAe,CAAC;QACzB,KAAK,EAAE,MAAM,CAAC,OAAO;KACtB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,kCAAkC;QAC/C,MAAM,EAAE,CAAC,UAAU,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB;CACF,CAAC"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const errorCodes: {
|
|
2
|
+
readonly UPDATE_CHECK_FAILED: "UPDATE_CHECK_FAILED";
|
|
3
|
+
readonly UPDATE_INSTALL_FAILED: "UPDATE_INSTALL_FAILED";
|
|
4
|
+
};
|
|
5
|
+
type ErrorCode = (typeof errorCodes)[keyof typeof errorCodes];
|
|
6
|
+
export declare class PilotError extends Error {
|
|
7
|
+
code: ErrorCode;
|
|
8
|
+
constructor(code: ErrorCode, detail?: string);
|
|
9
|
+
}
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;CAGb,CAAC;AAEX,KAAK,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAO9D,qBAAa,UAAW,SAAQ,KAAK;IACnC,IAAI,EAAE,SAAS,CAAC;gBAEJ,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM;CAM7C"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export const errorCodes = {
|
|
2
|
+
UPDATE_CHECK_FAILED: 'UPDATE_CHECK_FAILED',
|
|
3
|
+
UPDATE_INSTALL_FAILED: 'UPDATE_INSTALL_FAILED',
|
|
4
|
+
};
|
|
5
|
+
const userMessages = {
|
|
6
|
+
UPDATE_CHECK_FAILED: 'Unable to check for updates — are you online?',
|
|
7
|
+
UPDATE_INSTALL_FAILED: 'Update could not be installed. Please try again or visit medalsocial.com/pilot for help.',
|
|
8
|
+
};
|
|
9
|
+
export class PilotError extends Error {
|
|
10
|
+
code;
|
|
11
|
+
constructor(code, detail) {
|
|
12
|
+
super(userMessages[code]);
|
|
13
|
+
this.code = code;
|
|
14
|
+
this.name = 'PilotError';
|
|
15
|
+
if (detail)
|
|
16
|
+
this.cause = detail;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,mBAAmB,EAAE,qBAAqB;IAC1C,qBAAqB,EAAE,uBAAuB;CACtC,CAAC;AAIX,MAAM,YAAY,GAA8B;IAC9C,mBAAmB,EAAE,+CAA+C;IACpE,qBAAqB,EAAE,0FAA0F;CAClH,CAAC;AAEF,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnC,IAAI,CAAY;IAEhB,YAAY,IAAe,EAAE,MAAe;QAC1C,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,MAAM;YAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;IAClC,CAAC;CACF"}
|
package/dist/hooks/useListNav.js
CHANGED
|
@@ -9,10 +9,12 @@ export function useListNav({ listLength, tabs, initialTab }) {
|
|
|
9
9
|
}, [listLength]);
|
|
10
10
|
useInput((input, key) => {
|
|
11
11
|
if (key.downArrow) {
|
|
12
|
-
|
|
12
|
+
if (listLength > 0)
|
|
13
|
+
setSelected((s) => (s + 1) % listLength);
|
|
13
14
|
}
|
|
14
15
|
else if (key.upArrow) {
|
|
15
|
-
|
|
16
|
+
if (listLength > 0)
|
|
17
|
+
setSelected((s) => (s - 1 + listLength) % listLength);
|
|
16
18
|
}
|
|
17
19
|
else {
|
|
18
20
|
const num = Number.parseInt(input, 10);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useListNav.js","sourceRoot":"","sources":["../../src/hooks/useListNav.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAc/B,MAAM,UAAU,UAAU,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAqB;IAC5E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAQ,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAEnF,mFAAmF;IACnF,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"useListNav.js","sourceRoot":"","sources":["../../src/hooks/useListNav.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAc/B,MAAM,UAAU,UAAU,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAqB;IAC5E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAQ,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAEnF,mFAAmF;IACnF,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,UAAU,GAAG,CAAC;gBAAE,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;QAC/D,CAAC;aAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACvB,IAAI,UAAU,GAAG,CAAC;gBAAE,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACvC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACnC,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC/B,WAAW,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/plugins/discover.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACpD;
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/plugins/discover.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACpD;AA4CD,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,YAAY,EAAE,CAgBxE"}
|
package/dist/plugins/discover.js
CHANGED
|
@@ -13,8 +13,15 @@ function scanDir(dir, enabledState) {
|
|
|
13
13
|
const tomlPath = join(pluginDir, 'plugin.toml');
|
|
14
14
|
if (!existsSync(tomlPath))
|
|
15
15
|
continue;
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
let raw;
|
|
17
|
+
let parsed;
|
|
18
|
+
try {
|
|
19
|
+
raw = readFileSync(tomlPath, 'utf-8');
|
|
20
|
+
parsed = parseToml(raw);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
18
25
|
const result = parseManifest(parsed);
|
|
19
26
|
if (!result.success)
|
|
20
27
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/plugins/discover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAQ9C,SAAS,OAAO,CACd,GAAW,EACX,YAAkD;IAElD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAEhC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAEhD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,SAAS;QAEpC,
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/plugins/discover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAQ9C,SAAS,OAAO,CACd,GAAW,EACX,YAAkD;IAElD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAEhC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAEhD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,SAAS;QAEpC,IAAI,GAAW,CAAC;QAChB,IAAI,MAA+B,CAAC;QACpC,IAAI,CAAC;YACH,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACtC,MAAM,GAAG,SAAS,CAAC,GAAG,CAA4B,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAErC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,SAAS;QAE9B,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QAE/B,OAAO,CAAC,IAAI,CAAC;YACX,QAAQ,EAAE,MAAM,CAAC,IAAI;YACrB,EAAE;YACF,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,IAAI;YAC/B,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAwB;IACtD,kDAAkD;IAClD,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzC,GAAG,CAAC;QACJ,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,OAAO;KAC1D,CAAC,CAAC,CAAC;IAEJ,8BAA8B;IAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAE5D,mDAAmD;IACnD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAExC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -4,62 +4,16 @@ export declare const manifestSchema: z.ZodObject<{
|
|
|
4
4
|
namespace: z.ZodString;
|
|
5
5
|
description: z.ZodString;
|
|
6
6
|
provides: z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
7
|
-
commands: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString
|
|
8
|
-
mcpServers: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString
|
|
9
|
-
},
|
|
10
|
-
commands: string[];
|
|
11
|
-
mcpServers: string[];
|
|
12
|
-
}, {
|
|
13
|
-
commands?: string[] | undefined;
|
|
14
|
-
mcpServers?: string[] | undefined;
|
|
15
|
-
}>>>;
|
|
7
|
+
commands: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
8
|
+
mcpServers: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
9
|
+
}, z.core.$strip>>>;
|
|
16
10
|
permissions: z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
17
|
-
network: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString
|
|
18
|
-
},
|
|
19
|
-
network: string[];
|
|
20
|
-
}, {
|
|
21
|
-
network?: string[] | undefined;
|
|
22
|
-
}>>>;
|
|
11
|
+
network: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
12
|
+
}, z.core.$strip>>>;
|
|
23
13
|
roleBindings: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
24
|
-
},
|
|
25
|
-
name: string;
|
|
26
|
-
namespace: string;
|
|
27
|
-
description: string;
|
|
28
|
-
provides: {
|
|
29
|
-
commands: string[];
|
|
30
|
-
mcpServers: string[];
|
|
31
|
-
};
|
|
32
|
-
permissions: {
|
|
33
|
-
network: string[];
|
|
34
|
-
};
|
|
35
|
-
roleBindings: Record<string, string>;
|
|
36
|
-
}, {
|
|
37
|
-
name: string;
|
|
38
|
-
namespace: string;
|
|
39
|
-
description: string;
|
|
40
|
-
provides?: {
|
|
41
|
-
commands?: string[] | undefined;
|
|
42
|
-
mcpServers?: string[] | undefined;
|
|
43
|
-
} | undefined;
|
|
44
|
-
permissions?: {
|
|
45
|
-
network?: string[] | undefined;
|
|
46
|
-
} | undefined;
|
|
47
|
-
roleBindings?: Record<string, string> | undefined;
|
|
48
|
-
}>;
|
|
14
|
+
}, z.core.$strip>;
|
|
49
15
|
export type PluginManifest = z.infer<typeof manifestSchema>;
|
|
50
|
-
export declare function parseManifest(raw: unknown): z.
|
|
51
|
-
name: string;
|
|
52
|
-
namespace: string;
|
|
53
|
-
description: string;
|
|
54
|
-
provides?: {
|
|
55
|
-
commands?: string[] | undefined;
|
|
56
|
-
mcpServers?: string[] | undefined;
|
|
57
|
-
} | undefined;
|
|
58
|
-
permissions?: {
|
|
59
|
-
network?: string[] | undefined;
|
|
60
|
-
} | undefined;
|
|
61
|
-
roleBindings?: Record<string, string> | undefined;
|
|
62
|
-
}, {
|
|
16
|
+
export declare function parseManifest(raw: unknown): z.ZodSafeParseResult<{
|
|
63
17
|
name: string;
|
|
64
18
|
namespace: string;
|
|
65
19
|
description: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/plugins/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/plugins/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,cAAc;;;;;;;;;;;;iBAkBzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO;;;;;;;;;;;;GAEzC;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAEzD"}
|
package/dist/plugins/manifest.js
CHANGED
|
@@ -9,13 +9,13 @@ export const manifestSchema = z.object({
|
|
|
9
9
|
mcpServers: z.array(z.string()).optional().default([]),
|
|
10
10
|
})
|
|
11
11
|
.optional()
|
|
12
|
-
.default({}),
|
|
12
|
+
.default({ commands: [], mcpServers: [] }),
|
|
13
13
|
permissions: z
|
|
14
14
|
.object({
|
|
15
15
|
network: z.array(z.string()).optional().default([]),
|
|
16
16
|
})
|
|
17
17
|
.optional()
|
|
18
|
-
.default({}),
|
|
18
|
+
.default({ network: [] }),
|
|
19
19
|
roleBindings: z.record(z.string(), z.string()).optional().default({}),
|
|
20
20
|
});
|
|
21
21
|
export function parseManifest(raw) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/plugins/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;KACvD,CAAC;SACD,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/plugins/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;KACvD,CAAC;SACD,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAC5C,WAAW,EAAE,CAAC;SACX,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;KACpD,CAAC;SACD,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC3B,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACtE,CAAC,CAAC;AAIH,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,OAAO,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,QAAwB;IAC/C,OAAO,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;AACnD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Plugins.d.ts","sourceRoot":"","sources":["../../src/screens/Plugins.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Plugins.d.ts","sourceRoot":"","sources":["../../src/screens/Plugins.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAcxD,UAAU,YAAY;IACpB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,wBAAgB,OAAO,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,YAAY,2CA2GhE"}
|
package/dist/screens/Plugins.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useState } from 'react';
|
|
2
|
+
import { useEffect, useMemo, useState } from 'react';
|
|
3
3
|
import { Box, Text, useInput } from 'ink';
|
|
4
4
|
import { SplitPanel } from '../components/SplitPanel.js';
|
|
5
5
|
import { TabBar } from '../components/TabBar.js';
|
|
@@ -12,19 +12,23 @@ const TABS = [
|
|
|
12
12
|
{ id: 'enabled', label: 'Enabled' },
|
|
13
13
|
{ id: 'disabled', label: 'Disabled' },
|
|
14
14
|
];
|
|
15
|
+
function filterByTab(plugins, tab) {
|
|
16
|
+
if (tab === 'enabled')
|
|
17
|
+
return plugins.filter((p) => p.enabled);
|
|
18
|
+
if (tab === 'disabled')
|
|
19
|
+
return plugins.filter((p) => !p.enabled);
|
|
20
|
+
return plugins;
|
|
21
|
+
}
|
|
15
22
|
export function Plugins({ plugins: initialPlugins }) {
|
|
16
23
|
const [plugins, setPlugins] = useState(initialPlugins);
|
|
24
|
+
const [activeTab, setActiveTab] = useState('all');
|
|
25
|
+
const displayPlugins = useMemo(() => filterByTab(plugins, activeTab), [plugins, activeTab]);
|
|
17
26
|
const nav = useListNav({
|
|
18
|
-
listLength:
|
|
27
|
+
listLength: displayPlugins.length,
|
|
19
28
|
tabs: TABS,
|
|
20
29
|
});
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return p.enabled;
|
|
24
|
-
if (nav.activeTab === 'disabled')
|
|
25
|
-
return !p.enabled;
|
|
26
|
-
return true;
|
|
27
|
-
});
|
|
30
|
+
// Sync local activeTab with the hook's tab state so filtered list length stays correct
|
|
31
|
+
useEffect(() => { setActiveTab(nav.activeTab); }, [nav.activeTab]);
|
|
28
32
|
const current = displayPlugins[nav.selected];
|
|
29
33
|
useInput((input) => {
|
|
30
34
|
if (!current)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Plugins.js","sourceRoot":"","sources":["../../src/screens/Plugins.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Plugins.js","sourceRoot":"","sources":["../../src/screens/Plugins.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Update.d.ts","sourceRoot":"","sources":["../../src/screens/Update.tsx"],"names":[],"mappings":"AAUA,UAAU,WAAW;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,MAAM,CAAC,EAAE,cAAc,EAAE,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"Update.d.ts","sourceRoot":"","sources":["../../src/screens/Update.tsx"],"names":[],"mappings":"AAUA,UAAU,WAAW;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,MAAM,CAAC,EAAE,cAAc,EAAE,EAAE,WAAW,2CAsHrD"}
|
package/dist/screens/Update.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx,
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useState } from 'react';
|
|
3
3
|
import { Box, Text, useInput } from 'ink';
|
|
4
4
|
import { Step } from '../components/Step.js';
|
|
@@ -18,7 +18,7 @@ export function Update({ currentVersion }) {
|
|
|
18
18
|
return;
|
|
19
19
|
setCheckResult(result);
|
|
20
20
|
if (result.error) {
|
|
21
|
-
setUpdateError(result.error);
|
|
21
|
+
setUpdateError(result.error.message);
|
|
22
22
|
setPhase('error');
|
|
23
23
|
}
|
|
24
24
|
else if (result.hasUpdate) {
|
|
@@ -43,15 +43,20 @@ export function Update({ currentVersion }) {
|
|
|
43
43
|
useEffect(() => {
|
|
44
44
|
if (phase !== 'updating')
|
|
45
45
|
return;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
46
|
+
let cancelled = false;
|
|
47
|
+
applyUpdate().then((result) => {
|
|
48
|
+
if (cancelled)
|
|
49
|
+
return;
|
|
50
|
+
if (result.success) {
|
|
51
|
+
setPhase('complete');
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
setUpdateError(result.error?.message ?? 'Update could not be installed');
|
|
55
|
+
setPhase('error');
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
return () => { cancelled = true; };
|
|
54
59
|
}, [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:
|
|
60
|
+
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: _jsx(Text, { color: colors.success, bold: true, children: "\u2708 Flight systems are current" }) })] })), phase === 'confirm' && checkResult && (_jsxs(_Fragment, { children: [_jsx(Step, { label: "New version available", status: "done" }), _jsxs(Box, { marginTop: 1, flexDirection: "column", gap: 1, children: [_jsx(Text, { color: colors.text, children: "A newer version of Pilot is available." }), _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' && (_jsxs(_Fragment, { children: [_jsx(Step, { label: "Update downloaded", status: "done" }), _jsx(Step, { label: "Update installed", status: "done" }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.success, bold: true, children: "\u2708 Flight systems upgraded!" }) }), _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: "Visit medalsocial.com/pilot for help" })] })] }))] }));
|
|
56
61
|
}
|
|
57
62
|
//# sourceMappingURL=Update.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Update.js","sourceRoot":"","sources":["../../src/screens/Update.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AASpE,MAAM,UAAU,MAAM,CAAC,EAAE,cAAc,EAAe;IACpD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAQ,UAAU,CAAC,CAAC;IACtD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAA2B,IAAI,CAAC,CAAC;IAC/E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAEpE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,KAAK,UAAU;YAAE,OAAO;QAEjC,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,eAAe,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9C,IAAI,SAAS;gBAAE,OAAO;YACtB,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Update.js","sourceRoot":"","sources":["../../src/screens/Update.tsx"],"names":[],"mappings":"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"}
|
package/dist/settings.d.ts.map
CHANGED
|
@@ -1 +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,
|
|
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,CAU5C;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAG1D;AAED,wBAAgB,aAAa,IAAI,IAAI,CAKpC"}
|
package/dist/settings.js
CHANGED
|
@@ -11,8 +11,13 @@ export function loadSettings() {
|
|
|
11
11
|
if (!existsSync(SETTINGS_FILE)) {
|
|
12
12
|
return { ...DEFAULT_SETTINGS };
|
|
13
13
|
}
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
try {
|
|
15
|
+
const raw = JSON.parse(readFileSync(SETTINGS_FILE, 'utf-8'));
|
|
16
|
+
return { ...DEFAULT_SETTINGS, ...raw };
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return { ...DEFAULT_SETTINGS };
|
|
20
|
+
}
|
|
16
21
|
}
|
|
17
22
|
export function saveSettings(settings) {
|
|
18
23
|
mkdirSync(PILOT_DIR, { recursive: true });
|
package/dist/settings.js.map
CHANGED
|
@@ -1 +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;
|
|
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,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;QAC7D,OAAO,EAAE,GAAG,gBAAgB,EAAE,GAAG,GAAG,EAAE,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACjC,CAAC;AACH,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"}
|
package/dist/update/checker.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { PilotError } from '../errors.js';
|
|
1
2
|
export interface UpdateCheckResult {
|
|
2
3
|
current: string;
|
|
3
4
|
latest: string;
|
|
4
5
|
hasUpdate: boolean;
|
|
5
|
-
error?:
|
|
6
|
+
error?: PilotError;
|
|
6
7
|
}
|
|
7
8
|
export declare function checkForUpdates(currentVersion: string): Promise<UpdateCheckResult>;
|
|
8
|
-
export declare function applyUpdate(): {
|
|
9
|
+
export declare function applyUpdate(): Promise<{
|
|
9
10
|
success: boolean;
|
|
10
|
-
error?:
|
|
11
|
-
}
|
|
11
|
+
error?: PilotError;
|
|
12
|
+
}>;
|
|
12
13
|
//# sourceMappingURL=checker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../src/update/checker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../src/update/checker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAc,MAAM,cAAc,CAAC;AAEtD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAWD,wBAAsB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA2BxF;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC,CAWrF"}
|
package/dist/update/checker.js
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { execFile } from 'node:child_process';
|
|
2
|
+
import { PilotError, errorCodes } from '../errors.js';
|
|
3
|
+
function execAsync(cmd, args, timeout) {
|
|
4
|
+
return new Promise((resolve, reject) => {
|
|
5
|
+
execFile(cmd, args, { encoding: 'utf-8', timeout }, (err, stdout) => {
|
|
6
|
+
if (err)
|
|
7
|
+
reject(err);
|
|
8
|
+
else
|
|
9
|
+
resolve(stdout);
|
|
10
|
+
});
|
|
11
|
+
});
|
|
12
|
+
}
|
|
2
13
|
export async function checkForUpdates(currentVersion) {
|
|
3
14
|
try {
|
|
4
|
-
const output =
|
|
5
|
-
|
|
6
|
-
timeout: 10000,
|
|
7
|
-
});
|
|
8
|
-
const latest = String(output).trim();
|
|
15
|
+
const output = await execAsync('npm', ['view', '@medalsocial/pilot', 'version'], 10000);
|
|
16
|
+
const latest = output.trim();
|
|
9
17
|
return {
|
|
10
18
|
current: currentVersion,
|
|
11
19
|
latest,
|
|
@@ -26,22 +34,20 @@ export async function checkForUpdates(currentVersion) {
|
|
|
26
34
|
current: currentVersion,
|
|
27
35
|
latest: currentVersion,
|
|
28
36
|
hasUpdate: false,
|
|
29
|
-
error: message,
|
|
37
|
+
error: new PilotError(errorCodes.UPDATE_CHECK_FAILED, message),
|
|
30
38
|
};
|
|
31
39
|
}
|
|
32
40
|
}
|
|
33
|
-
export function applyUpdate() {
|
|
41
|
+
export async function applyUpdate() {
|
|
34
42
|
try {
|
|
35
|
-
|
|
36
|
-
encoding: 'utf-8',
|
|
37
|
-
timeout: 120000,
|
|
38
|
-
});
|
|
43
|
+
await execAsync('npm', ['install', '-g', '@medalsocial/pilot@latest'], 120000);
|
|
39
44
|
return { success: true };
|
|
40
45
|
}
|
|
41
46
|
catch (err) {
|
|
47
|
+
const detail = err instanceof Error ? err.message : 'Unknown error';
|
|
42
48
|
return {
|
|
43
49
|
success: false,
|
|
44
|
-
error:
|
|
50
|
+
error: new PilotError(errorCodes.UPDATE_INSTALL_FAILED, detail),
|
|
45
51
|
};
|
|
46
52
|
}
|
|
47
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checker.js","sourceRoot":"","sources":["../../src/update/checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"checker.js","sourceRoot":"","sources":["../../src/update/checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAStD,SAAS,SAAS,CAAC,GAAW,EAAE,IAAc,EAAE,OAAe;IAC7D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YAClE,IAAI,GAAG;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;gBAChB,OAAO,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,cAAsB;IAC1D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;QACxF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAE7B,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,IAAI,UAAU,CAAC,UAAU,CAAC,mBAAmB,EAAE,OAAO,CAAC;SAC/D,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,2BAA2B,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACpE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,IAAI,UAAU,CAAC,UAAU,CAAC,qBAAqB,EAAE,MAAM,CAAC;SAChE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,37 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@medalsocial/pilot",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Your AI crew, ready to fly. Medal Social's AI-powered CLI platform.",
|
|
6
6
|
"license": "MIT",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"cli",
|
|
9
|
+
"ai",
|
|
10
|
+
"agent",
|
|
11
|
+
"medal",
|
|
12
|
+
"social",
|
|
13
|
+
"pilot",
|
|
14
|
+
"crew",
|
|
15
|
+
"anthropic",
|
|
16
|
+
"claude",
|
|
17
|
+
"gemini",
|
|
18
|
+
"codex",
|
|
19
|
+
"marketing",
|
|
20
|
+
"cto",
|
|
21
|
+
"cmo"
|
|
22
|
+
],
|
|
7
23
|
"repository": {
|
|
8
24
|
"type": "git",
|
|
9
25
|
"url": "git+https://github.com/Medal-Social/pilot.git",
|
|
10
26
|
"directory": "packages/cli"
|
|
11
27
|
},
|
|
28
|
+
"bugs": {
|
|
29
|
+
"url": "https://github.com/Medal-Social/pilot/issues"
|
|
30
|
+
},
|
|
31
|
+
"homepage": "https://github.com/Medal-Social/pilot#readme",
|
|
32
|
+
"engines": {
|
|
33
|
+
"node": ">=24.0.0"
|
|
34
|
+
},
|
|
12
35
|
"bin": {
|
|
13
36
|
"pilot": "dist/bin/pilot.js"
|
|
14
37
|
},
|
|
@@ -18,7 +41,7 @@
|
|
|
18
41
|
],
|
|
19
42
|
"publishConfig": {
|
|
20
43
|
"access": "public",
|
|
21
|
-
"provenance":
|
|
44
|
+
"provenance": true
|
|
22
45
|
},
|
|
23
46
|
"scripts": {
|
|
24
47
|
"dev": "tsx watch src/bin/pilot.ts",
|
|
@@ -27,17 +50,17 @@
|
|
|
27
50
|
"prepublishOnly": "tsc"
|
|
28
51
|
},
|
|
29
52
|
"dependencies": {
|
|
30
|
-
"commander": "
|
|
31
|
-
"ink": "
|
|
32
|
-
"ink-text-input": "
|
|
33
|
-
"react": "
|
|
34
|
-
"smol-toml": "
|
|
35
|
-
"zod": "
|
|
53
|
+
"commander": "14.0.3",
|
|
54
|
+
"ink": "7.0.0",
|
|
55
|
+
"ink-text-input": "6.0.0",
|
|
56
|
+
"react": "19.2.5",
|
|
57
|
+
"smol-toml": "1.6.1",
|
|
58
|
+
"zod": "4.3.6"
|
|
36
59
|
},
|
|
37
60
|
"devDependencies": {
|
|
38
|
-
"@types/node": "
|
|
39
|
-
"@types/react": "
|
|
40
|
-
"ink-testing-library": "
|
|
41
|
-
"tsx": "
|
|
61
|
+
"@types/node": "25.6.0",
|
|
62
|
+
"@types/react": "19.2.14",
|
|
63
|
+
"ink-testing-library": "4.0.0",
|
|
64
|
+
"tsx": "4.21.0"
|
|
42
65
|
}
|
|
43
66
|
}
|