gipity 1.1.1 → 1.1.3
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 +67 -29
- package/dist/agents/claude-code.js +0 -5
- package/dist/agents/codex.js +0 -4
- package/dist/agents/grok.js +0 -4
- package/dist/api.js +7 -4
- package/dist/catalog.js +46 -0
- package/dist/commands/add.js +9 -22
- package/dist/commands/build.js +20 -42
- package/dist/commands/db.js +10 -0
- package/dist/commands/deploy.js +7 -0
- package/dist/commands/fn.js +24 -1
- package/dist/commands/logs.js +21 -2
- package/dist/commands/page-eval.js +7 -3
- package/dist/commands/relay.js +1 -1
- package/dist/commands/status.js +35 -7
- package/dist/commands/test.js +7 -0
- package/dist/flag-aliases.js +1 -0
- package/dist/index.js +109 -77
- package/dist/prefs.js +8 -16
- package/dist/relay/onboarding.js +7 -7
- package/dist/relay/setup.js +8 -8
- package/dist/relay/state.js +1 -1
- package/package.json +1 -1
package/dist/relay/onboarding.js
CHANGED
|
@@ -75,7 +75,7 @@ export async function runRelaySetup(opts) {
|
|
|
75
75
|
console.log(` ${dim('To register this computer again — for example under a different name —')}`);
|
|
76
76
|
console.log(` ${dim('unregister it first, then re-run setup:')}`);
|
|
77
77
|
console.log(` ${brand('gipity relay revoke')} ${dim('# unpairs this computer and removes the login service')}`);
|
|
78
|
-
console.log(` ${brand('gipity
|
|
78
|
+
console.log(` ${brand('gipity connect')} ${dim('# register it again (asks for a new name)')}`);
|
|
79
79
|
console.log('');
|
|
80
80
|
}
|
|
81
81
|
return true;
|
|
@@ -84,14 +84,14 @@ export async function runRelaySetup(opts) {
|
|
|
84
84
|
// `gipity claude` first-run frames it as an optional add-on it's offering.
|
|
85
85
|
if (opts.mode === 'run-now') {
|
|
86
86
|
console.log(` ${bold('Set up this computer as a relay')}`);
|
|
87
|
-
console.log(` ${dim('A relay runs Claude Code
|
|
88
|
-
console.log(` ${dim('It uses your Claude or
|
|
87
|
+
console.log(` ${dim('A relay runs your coding agent (Claude Code, Codex, or Grok) here so you can drive it from the web (')}${brand('gipity.ai')}${dim(') on any browser.')}`);
|
|
88
|
+
console.log(` ${dim('It uses your Claude, Codex, or Grok subscription — the cheapest way to pay for tokens.')}`);
|
|
89
89
|
}
|
|
90
90
|
else {
|
|
91
|
-
console.log(` ${bold('Remote control of
|
|
92
|
-
console.log(` ${dim('Drive this
|
|
91
|
+
console.log(` ${bold('Remote control of your coding agent')}`);
|
|
92
|
+
console.log(` ${dim('Drive your coding agent on this computer from the web (')}${brand('gipity.ai')}${dim(') on any browser (desktop or phone).')}`);
|
|
93
93
|
console.log('');
|
|
94
|
-
console.log(` ${dim('Enable now (takes 2 seconds) or turn on later with')} ${brand('gipity
|
|
94
|
+
console.log(` ${dim('Enable now (takes 2 seconds) or turn on later with')} ${brand('gipity connect')}`);
|
|
95
95
|
}
|
|
96
96
|
console.log('');
|
|
97
97
|
const promptText = opts.mode === 'run-now'
|
|
@@ -121,7 +121,7 @@ export async function runRelaySetup(opts) {
|
|
|
121
121
|
}
|
|
122
122
|
catch (err) {
|
|
123
123
|
console.error(`\n ${clrError(`Could not create device: ${err?.message || err}`)}`);
|
|
124
|
-
console.error(` ${dim('Skipping for now - we\'ll offer again next time. Or turn it on with `gipity
|
|
124
|
+
console.error(` ${dim('Skipping for now - we\'ll offer again next time. Or turn it on with `gipity connect`.')}`);
|
|
125
125
|
// Deliberately DON'T persist relay_enabled here: the user SAID YES, and
|
|
126
126
|
// this is a transient failure (network blip, server down). Leaving the
|
|
127
127
|
// tri-state unset means onboarding re-offers on the next `gipity claude`
|
package/dist/relay/setup.js
CHANGED
|
@@ -60,8 +60,10 @@ export function resolveCliPath() {
|
|
|
60
60
|
/**
|
|
61
61
|
* Create + persist a relay device, marking the relay opted-in. Idempotent
|
|
62
62
|
* unless `force`: if this machine is already paired and `!force`, the
|
|
63
|
-
* existing device is returned untouched (no server call). With `force`,
|
|
64
|
-
*
|
|
63
|
+
* existing device is returned untouched (no server call). With `force`, we
|
|
64
|
+
* simply re-register: the server's machine_id dedup reattaches the same
|
|
65
|
+
* device row and rotates its token (no pre-revoke - revoking first forced a
|
|
66
|
+
* NEW row and orphaned the conversations bound to the old one, issue #291).
|
|
65
67
|
*
|
|
66
68
|
* Throws on a bad name or if the `/remote-devices` call fails (e.g. 401 when
|
|
67
69
|
* the user isn't logged in) — callers translate that into their own UX.
|
|
@@ -78,12 +80,10 @@ export async function pairDevice(opts = {}) {
|
|
|
78
80
|
};
|
|
79
81
|
}
|
|
80
82
|
if (existing && opts.force) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
// Best-effort: a stale server-side device is harmless; proceed to re-pair.
|
|
86
|
-
}
|
|
83
|
+
// Re-register in place: POST /remote-devices with this machine_id
|
|
84
|
+
// reattaches the existing row and rotates the token, which invalidates
|
|
85
|
+
// the old bearer anyway - a separate revoke round-trip only detached
|
|
86
|
+
// the row and orphaned its conversations.
|
|
87
87
|
state.clearDevice();
|
|
88
88
|
}
|
|
89
89
|
const name = (opts.name?.trim() || friendlyDeviceName()).trim();
|
package/dist/relay/state.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* paused: boolean,
|
|
9
9
|
* }
|
|
10
10
|
*
|
|
11
|
-
* The `token` field is the raw device bearer returned by /
|
|
11
|
+
* The `token` field is the raw device bearer returned by POST /remote-devices - it
|
|
12
12
|
* never leaves this file or the Authorization header. A future chunk will
|
|
13
13
|
* move it to OS keychain (macOS Keychain, libsecret, wincred); the state
|
|
14
14
|
* module's public surface is designed to absorb that change.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gipity",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.3",
|
|
4
4
|
"description": "The full-stack platform tuned for AI agents. Database, storage, auth, functions, deploy, and drop-in kits - all agent-tuned. Pair with Claude Code or use standalone.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"gipity": "dist/updater/shim.js",
|