@hraness/ghostget 0.18.3 → 0.18.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/CHANGELOG.md +17 -0
- package/README.md +7 -7
- package/dist/apple-photos-client.js +1 -1
- package/dist/beeper-client.js +1 -1
- package/dist/{index-cnbz0gws.js → index-30bdb2y9.js} +1 -1
- package/docs/control-panel.md +2 -2
- package/package.json +5 -4
- package/skills/ghostget/references/control-panel.md +1 -1
- package/skills/ghostget/references/install.md +5 -5
- package/src/beeper-client-types.ts +1 -1
- package/src/cli-intro.ts +5 -0
- package/src/cli.ts +7 -0
- package/src/control/helper.ts +2 -2
- package/src/control/web-policy.ts +1 -1
- package/src/providers/x-web-runtime.ts +2 -2
- package/src/providers/x-web.ts +2 -2
- package/src/usage.ts +1 -1
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,23 @@ Historical entries retain their original delivery coordinates.
|
|
|
7
7
|
|
|
8
8
|
## Unreleased
|
|
9
9
|
|
|
10
|
+
## 0.18.5
|
|
11
|
+
|
|
12
|
+
- Remove the website footer's Cloudflare Turnstile gate through the shared
|
|
13
|
+
footer: newsletter signups post directly to the accounts endpoint behind a
|
|
14
|
+
honeypot field, and the geo-gated consent note joins the public pages.
|
|
15
|
+
Package commands, provider operations, and archive contracts stay unchanged.
|
|
16
|
+
- Port the desktop control panel onto the shared menu-bar foundation and
|
|
17
|
+
harden menu refreshes while preserving unknown approval status.
|
|
18
|
+
|
|
19
|
+
## 0.18.4
|
|
20
|
+
|
|
21
|
+
- Show a compact ASCII ghost before interactive root help. Piped output,
|
|
22
|
+
machine-readable commands, version output, and command help stay unchanged.
|
|
23
|
+
- Refine the shared marketing surfaces and use the ghost identity consistently.
|
|
24
|
+
Provider operations, account authority, and immutable archive contracts remain
|
|
25
|
+
unchanged.
|
|
26
|
+
|
|
10
27
|
## 0.18.3
|
|
11
28
|
|
|
12
29
|
- Apply the shared Lantern material to the homepage: luminous grid glass behind
|
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ Bring the model, planner, and tool loop you prefer. Ghostget supplies precise we
|
|
|
21
21
|
capabilities with local custody and explicit evidence. Its native macOS control
|
|
22
22
|
panel manages accounts, operation permissions, human approvals, editable OpenAPI
|
|
23
23
|
interfaces, and a searchable local web request log. See the
|
|
24
|
-
[control panel guide](docs/control-panel.md) and [native source build](https://github.com/hraness/ghostget/blob/v0.18.
|
|
24
|
+
[control panel guide](docs/control-panel.md) and [native source build](https://github.com/hraness/ghostget/blob/v0.18.5/desktop/README.md).
|
|
25
25
|
|
|
26
26
|
The separate public web gateway admits exact HTTPS retrieval URLs under human
|
|
27
27
|
domain and path rules. Use `ghostget web request <url>` with the app open, and
|
|
@@ -51,7 +51,7 @@ ghostget plugin list
|
|
|
51
51
|
|
|
52
52
|
## Built-in provider catalog
|
|
53
53
|
|
|
54
|
-
This v0.18.
|
|
54
|
+
This v0.18.5 source tree supports executable actions for 20 services: Beeper,
|
|
55
55
|
Bluesky, ClasificadosOnline, Facebook, Facebook Groups, Facebook Marketplace,
|
|
56
56
|
GitHub, Gmail, Hacker News, Instagram, iMessage, LinkedIn, Reddit, Substack,
|
|
57
57
|
Threads, TikTok, Twitch, WhatsApp, X, and YouTube.
|
|
@@ -116,7 +116,7 @@ owns the narrow capability boundary that can sit beneath them.
|
|
|
116
116
|
Wrench is now Ghostget. The package name is `@hraness/ghostget`, and the CLI
|
|
117
117
|
command is `ghostget`. Read the [migration guide](docs/ghostget-migration.md)
|
|
118
118
|
before updating an existing installation. After its optional npm mirror is
|
|
119
|
-
verified public, `@hraness/ghostget@0.18.
|
|
119
|
+
verified public, `@hraness/ghostget@0.18.5` is also available from the registry.
|
|
120
120
|
|
|
121
121
|
This README describes the package version in this source tree. Its versioned
|
|
122
122
|
GitHub archive and Agent Skill become a supported public release after the
|
|
@@ -127,9 +127,9 @@ The optional npm mirror can follow later without delaying canonical delivery.
|
|
|
127
127
|
Install the single Ghostget Agent Skill with either runner:
|
|
128
128
|
|
|
129
129
|
```sh
|
|
130
|
-
npx skills add hraness/ghostget#v0.18.
|
|
130
|
+
npx skills add hraness/ghostget#v0.18.5
|
|
131
131
|
# or
|
|
132
|
-
bunx skills add hraness/ghostget#v0.18.
|
|
132
|
+
bunx skills add hraness/ghostget#v0.18.5
|
|
133
133
|
```
|
|
134
134
|
|
|
135
135
|
The skill teaches Codex, Claude Code, Cursor, and other compatible coding
|
|
@@ -139,7 +139,7 @@ install the CLI if it is missing. Start a new agent session after installation.
|
|
|
139
139
|
After the matching immutable Release exists, install this exact canonical archive:
|
|
140
140
|
|
|
141
141
|
```sh
|
|
142
|
-
bun add --global https://github.com/hraness/ghostget/releases/download/v0.18.
|
|
142
|
+
bun add --global https://github.com/hraness/ghostget/releases/download/v0.18.5/hraness-ghostget-0.18.5.tgz
|
|
143
143
|
ghostget adapter sync-bundled --json
|
|
144
144
|
ghostget doctor
|
|
145
145
|
```
|
|
@@ -167,7 +167,7 @@ For that same released coordinate, install Ghostget in an agent or application
|
|
|
167
167
|
that owns its own model, planning, tool loop, approvals, and interface:
|
|
168
168
|
|
|
169
169
|
```sh
|
|
170
|
-
bun add https://github.com/hraness/ghostget/releases/download/v0.18.
|
|
170
|
+
bun add https://github.com/hraness/ghostget/releases/download/v0.18.5/hraness-ghostget-0.18.5.tgz
|
|
171
171
|
```
|
|
172
172
|
|
|
173
173
|
```ts
|
package/dist/beeper-client.js
CHANGED
package/docs/control-panel.md
CHANGED
|
@@ -9,7 +9,7 @@ and capabilities refresh when you return to the app, after changes made in the
|
|
|
9
9
|
app, or when you choose Refresh. Permission decisions always validate current
|
|
10
10
|
account and integration state.
|
|
11
11
|
|
|
12
|
-
Build instructions and native qualification live in [desktop/README.md](https://github.com/hraness/ghostget/blob/v0.18.
|
|
12
|
+
Build instructions and native qualification live in [desktop/README.md](https://github.com/hraness/ghostget/blob/v0.18.5/desktop/README.md).
|
|
13
13
|
The CLI's canonical five-file GitHub Release contract is unchanged. A source
|
|
14
14
|
build is not a signed or notarized public macOS installer.
|
|
15
15
|
|
|
@@ -123,7 +123,7 @@ User and imported interfaces are distinguished from bundled interfaces. Remote
|
|
|
123
123
|
references, executable import hooks, arbitrary HTTP templates, and unsupported
|
|
124
124
|
input-schema constructs are rejected or remain visibly inert as appropriate.
|
|
125
125
|
An interface without an executor does not become executable by importing it.
|
|
126
|
-
Use the existing [provider plugin protocol](https://github.com/hraness/ghostget/blob/v0.18.
|
|
126
|
+
Use the existing [provider plugin protocol](https://github.com/hraness/ghostget/blob/v0.18.5/docs/plugins.md) when a new executor is
|
|
127
127
|
needed. OpenAPI import does not grant it account access.
|
|
128
128
|
|
|
129
129
|
Middleware and LLM approval are future extensions. Future hooks may propose
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hraness/ghostget",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.5",
|
|
4
4
|
"description": "Open-source CLI and TypeScript SDK for precise web capabilities for AI agents: page capture, verified media archives, encrypted reads, and typed provider operations.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -274,6 +274,7 @@
|
|
|
274
274
|
"src/client-types.ts",
|
|
275
275
|
"src/client.ts",
|
|
276
276
|
"src/cli.ts",
|
|
277
|
+
"src/cli-intro.ts",
|
|
277
278
|
"src/cursor-token.ts",
|
|
278
279
|
"src/derive-command-helper.ts",
|
|
279
280
|
"src/derivation-dnr-readiness.ts",
|
|
@@ -637,9 +638,9 @@
|
|
|
637
638
|
"@1password/sdk": "0.5.0"
|
|
638
639
|
},
|
|
639
640
|
"devDependencies": {
|
|
640
|
-
"@hraness/design-kit": "github:hraness/design-kit#v0.
|
|
641
|
-
"@hraness/site-footer": "github:hraness/site-footer#v0.
|
|
642
|
-
"@hraness/ui": "github:hraness/ui#v0.5.
|
|
641
|
+
"@hraness/design-kit": "github:hraness/design-kit#v0.8.0",
|
|
642
|
+
"@hraness/site-footer": "github:hraness/site-footer#v0.9.2",
|
|
643
|
+
"@hraness/ui": "github:hraness/ui#v0.5.13",
|
|
643
644
|
"@steipete/sweet-cookie": "0.4.3",
|
|
644
645
|
"@types/bun": "^1.3.14",
|
|
645
646
|
"@types/react": "19.2.14",
|
|
@@ -40,4 +40,4 @@ Unsupported executors remain inert. Follow the existing provider-plugin
|
|
|
40
40
|
authoring protocol to add an executor; do not synthesize arbitrary authenticated
|
|
41
41
|
HTTP or broaden an existing grant. Interface changes invalidate exact grants.
|
|
42
42
|
|
|
43
|
-
The product reference is the [Ghostget control panel guide](https://github.com/hraness/ghostget/blob/v0.18.
|
|
43
|
+
The product reference is the [Ghostget control panel guide](https://github.com/hraness/ghostget/blob/v0.18.5/docs/control-panel.md).
|
|
@@ -17,34 +17,34 @@ If Bun is missing, stop and direct the user to the official
|
|
|
17
17
|
[Bun installation guide](https://bun.sh/docs/installation). Do not switch
|
|
18
18
|
package managers or pipe an unreviewed installer into a shell.
|
|
19
19
|
|
|
20
|
-
This reference is authored for the exact v0.18.
|
|
20
|
+
This reference is authored for the exact v0.18.5 release coordinate. Use it
|
|
21
21
|
only from the matching release-bound Agent Skill after its canonical archive and
|
|
22
22
|
immutable GitHub Release exist. If the coordinate is not public, stop instead
|
|
23
23
|
of substituting `main`, another tag, or a different package version. Install
|
|
24
24
|
that exact release and its reviewed bundled adapter manifests:
|
|
25
25
|
|
|
26
26
|
```sh
|
|
27
|
-
bun add --global https://github.com/hraness/ghostget/releases/download/v0.18.
|
|
27
|
+
bun add --global https://github.com/hraness/ghostget/releases/download/v0.18.5/hraness-ghostget-0.18.5.tgz
|
|
28
28
|
ghostget adapter sync-bundled --json
|
|
29
29
|
ghostget --help
|
|
30
30
|
ghostget doctor --json
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
The package is `@hraness/ghostget`; `@hraness/ghostget@0.18.
|
|
33
|
+
The package is `@hraness/ghostget`; `@hraness/ghostget@0.18.5` is an optional npm
|
|
34
34
|
mirror only after verified registry publication. Canonical installation does not
|
|
35
35
|
wait for registry publication.
|
|
36
36
|
|
|
37
37
|
When upgrading from Wrench, use `ghostget` for new commands and
|
|
38
38
|
`GHOSTGET_STATE_HOME` for an explicit state root. Existing state is selected in
|
|
39
39
|
place; do not rename, copy, or delete a state directory as part of the upgrade.
|
|
40
|
-
The [migration guide](https://github.com/hraness/ghostget/blob/v0.18.
|
|
40
|
+
The [migration guide](https://github.com/hraness/ghostget/blob/v0.18.5/docs/ghostget-migration.md)
|
|
41
41
|
explains the retained state aliases and durable protocol names.
|
|
42
42
|
|
|
43
43
|
Do not clone the repository merely to run the CLI. Importing the SDK is a
|
|
44
44
|
separate project dependency and does not install a global command:
|
|
45
45
|
|
|
46
46
|
```sh
|
|
47
|
-
bun add https://github.com/hraness/ghostget/releases/download/v0.18.
|
|
47
|
+
bun add https://github.com/hraness/ghostget/releases/download/v0.18.5/hraness-ghostget-0.18.5.tgz
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
`ghostget adapter sync-bundled` upgrades exact bundled baselines, including an
|
|
@@ -96,7 +96,7 @@ export type BeeperContactInteractionExportReceipt = Readonly<{
|
|
|
96
96
|
implementation: Readonly<{
|
|
97
97
|
producer: Readonly<{
|
|
98
98
|
package: "@hraness/ghostget";
|
|
99
|
-
version: "0.18.
|
|
99
|
+
version: "0.18.5";
|
|
100
100
|
}>;
|
|
101
101
|
officialCli: Readonly<{
|
|
102
102
|
implementation: "github.com/beeper/cli";
|
package/src/cli-intro.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Compact ASCII identity for interactive root help; never command output. */
|
|
2
|
+
export function terminalIntro(terminal: Readonly<{ isTTY: boolean | undefined; columns: number | undefined; term: string | undefined }>): string {
|
|
3
|
+
if (terminal.isTTY !== true || terminal.term === "dumb" || (terminal.columns ?? 80) < 48) return "";
|
|
4
|
+
return " .---.\n / o o \\ ghostget\n | | Get useful context for your agents.\n |/|/|/\n\n";
|
|
5
|
+
}
|
package/src/cli.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
|
|
3
3
|
import { ghostgetUsage } from "./usage";
|
|
4
|
+
import { terminalIntro } from "./cli-intro";
|
|
4
5
|
import { GHOSTGET_VERSION } from "./version";
|
|
5
6
|
import type {
|
|
6
7
|
GhostgetCatalogCommand,
|
|
@@ -164,6 +165,7 @@ export async function runGhostgetCliProcess(
|
|
|
164
165
|
loadKnowledgeCli: () => Promise<PublicKbCliModule> = loadPublicKbCli,
|
|
165
166
|
): Promise<void> {
|
|
166
167
|
if (isImmediateGhostgetHelpRequest(rawArguments)) {
|
|
168
|
+
if (output === defaultOutput) output.stdout(terminalIntro({ isTTY: process.stdout.isTTY, columns: process.stdout.columns, term: process.env.TERM }));
|
|
167
169
|
output.stdout(ghostgetUsage);
|
|
168
170
|
process.exitCode = 0;
|
|
169
171
|
return;
|
|
@@ -194,6 +196,11 @@ export async function runGhostgetCliProcess(
|
|
|
194
196
|
process.exitCode = runInterfaceCommand(rawArguments, process.env, resolvedOutput);
|
|
195
197
|
return;
|
|
196
198
|
}
|
|
199
|
+
if (rawArguments[0] === "menubar") {
|
|
200
|
+
const { runMenubarCommand } = await import("./control/menubar-cli");
|
|
201
|
+
process.exitCode = await runMenubarCommand(rawArguments, process.env, resolvedOutput);
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
197
204
|
} catch {
|
|
198
205
|
resolvedOutput.stderr("Ghostget gateway-only policy blocks this command, or its policy state is unavailable. Review the native app.\n");
|
|
199
206
|
process.exitCode = 1;
|
package/src/control/helper.ts
CHANGED
|
@@ -30,7 +30,7 @@ async function handleAgent(value:unknown,service:ControlService,signal:AbortSign
|
|
|
30
30
|
throw new Error("invalid action");
|
|
31
31
|
}
|
|
32
32
|
function socketLive(path:string):Promise<boolean> {
|
|
33
|
-
return new Promise((resolve,reject)=>{const socket=connect({path});const timer=setTimeout(()=>{socket.destroy();reject(new Error("socket state unknown"));},1000);socket.once("connect",()=>{clearTimeout(timer);socket.destroy();resolve(true);});socket.once("error",error=>{clearTimeout(timer);socket.destroy();
|
|
33
|
+
return new Promise((resolve,reject)=>{const socket=connect({path});const timer=setTimeout(()=>{socket.destroy();reject(new Error("socket state unknown"));},1000);socket.once("connect",()=>{clearTimeout(timer);socket.destroy();resolve(true);});socket.once("error",error=>{clearTimeout(timer);socket.destroy();const code=(error as NodeJS.ErrnoException).code;if(code==="ECONNREFUSED"||code==="ENOENT")resolve(false);else reject(new Error("socket state unknown"));});});
|
|
34
34
|
}
|
|
35
35
|
function acquireOwner(environment:ControlEnvironment):()=>void {
|
|
36
36
|
const directory=join(ghostgetStateHome(environment),"control");ensurePrivateStateDirectory(directory,environment);
|
|
@@ -59,7 +59,7 @@ export async function runControlHelper(environment:ControlEnvironment=process.en
|
|
|
59
59
|
started=true;const work=(async()=>{let response:unknown;try{if(newline!==buffer.length-1)throw new Error();response=await handleAgent(JSON.parse(buffer.subarray(0,newline).toString("utf8")),service!,controller.signal);}catch(error){response=controlFailure(error);}if(!socket.destroyed)socket.end(`${JSON.stringify(response)}\n`);})();active.add(work);void work.then(()=>active.delete(work),()=>{active.delete(work);process.exitCode=1;process.stdin.destroy();});
|
|
60
60
|
});
|
|
61
61
|
});
|
|
62
|
-
const shutdown=async()=>{if(closing)return;closing=true;for(const socket of clients)socket.destroy();service?.beginShutdown();await Promise.allSettled(active);service?.close();if(server.listening)await new Promise<void>(resolve=>server.close(()=>resolve()));if(ownedSocket!==undefined){snapshotPrivateStateDirectory(directory,environment,directoryIdentity);try{const stat=lstatSync(socketPath);if(stat.isSocket()&&stat.dev===ownedSocket.dev&&stat.ino===ownedSocket.ino)unlinkSync(socketPath);}catch(error){if((error as NodeJS.ErrnoException).code!=="ENOENT")throw error;}}releaseOwner();};
|
|
62
|
+
const shutdown=async()=>{if(closing)return;closing=true;const closes:Promise<void>[]=[];for(const socket of clients){if(socket.closed)continue;closes.push(new Promise<void>(resolve=>socket.once("close",resolve)));socket.destroy();}await Promise.all(closes);service?.beginShutdown();await Promise.allSettled(active);service?.close();if(server.listening)await new Promise<void>(resolve=>server.close(()=>resolve()));if(ownedSocket!==undefined){snapshotPrivateStateDirectory(directory,environment,directoryIdentity);try{const stat=lstatSync(socketPath);if(stat.isSocket()&&stat.dev===ownedSocket.dev&&stat.ino===ownedSocket.ino)unlinkSync(socketPath);}catch(error){if((error as NodeJS.ErrnoException).code!=="ENOENT")throw error;}}releaseOwner();};
|
|
63
63
|
const termination=()=>{process.stdin.destroy();};process.once("SIGTERM",termination);process.once("SIGINT",termination);
|
|
64
64
|
try {
|
|
65
65
|
if(Buffer.byteLength(socketPath)>100)throw new ControlError("CONTROL_PATH_TOO_LONG","Choose a shorter Ghostget state-home path for the native app.");
|
|
@@ -50,7 +50,7 @@ export function checkWebRequest(method:"GET"|"HEAD", rawUrl:string, environment:
|
|
|
50
50
|
export function assertGatewayCommandAllowed(args: readonly string[], environment:ControlEnvironment=process.env): void {
|
|
51
51
|
if(!readWebPolicy(environment).gatewayOnly) return;
|
|
52
52
|
const first=args[0];
|
|
53
|
-
if(first==="web" || first==="capabilities" || first==="--version" || first==="help" || first==="--help" || first==="-h" || args.length===0) return;
|
|
53
|
+
if(first==="web" || first==="capabilities" || first==="menubar" || first==="--version" || first==="help" || first==="--help" || first==="-h" || args.length===0) return;
|
|
54
54
|
if((first==="plugin"||first==="plugins") && ["list","show"].includes(args[1]??"")) return;
|
|
55
55
|
throw new ControlError("GATEWAY_ONLY","This state home permits web gateway requests only. Use ghostget web request or change the mode in the native app.");
|
|
56
56
|
}
|
|
@@ -153,8 +153,8 @@ const viewerEvidence = Object.freeze({
|
|
|
153
153
|
operationName: "Viewer",
|
|
154
154
|
operationType: "query" as const,
|
|
155
155
|
queryId: "9t128XgFic52jPUEkJMf6w",
|
|
156
|
-
sourceChunk: "main.
|
|
157
|
-
observedOn: "2026-09-
|
|
156
|
+
sourceChunk: "main.59435dbf6f40166da.js",
|
|
157
|
+
observedOn: "2026-09-13",
|
|
158
158
|
});
|
|
159
159
|
|
|
160
160
|
function isRecord(value: unknown): value is JsonRecord {
|
package/src/providers/x-web.ts
CHANGED
|
@@ -246,7 +246,7 @@ export const xWebQueryDescriptorEvidenceSnapshot = Object.freeze({
|
|
|
246
246
|
{ operationName: "HomeLatestTimeline", operationType: "query", queryId: "BLQWpfVqtgBqAqwRRJcJjA", sourceChunk: "shared~bundle.LoggedInMain~bundle.HomeTimeline.c12c8a9a.js", observedOn: "2026-08-20" },
|
|
247
247
|
{ operationName: "ListLatestTweetsTimeline", operationType: "query", queryId: "LV64djPRhnsVhGCK76s13w", sourceChunk: "shared~loader.Dock~bundle.BookmarkFolders~bundle.Bookmarks~bundle.Explore~bundle.HomeTimeline~bundle.Notifica.3b894e0a.js" },
|
|
248
248
|
{ operationName: "ListRankedTweetsTimeline", operationType: "query", queryId: "dPN7GrkxeMF4SUYCo9D9YA", sourceChunk: "shared~loader.Dock~bundle.BookmarkFolders~bundle.Bookmarks~bundle.Explore~bundle.HomeTimeline~bundle.Notifica.3b894e0a.js" },
|
|
249
|
-
{ operationName: "Bookmarks", operationType: "query", queryId: "tF6KOjmZM0WGcB2Q0mfwhw", sourceChunk: "shared~bundle.BookmarkFolders~bundle.Bookmarks.
|
|
249
|
+
{ operationName: "Bookmarks", operationType: "query", queryId: "tF6KOjmZM0WGcB2Q0mfwhw", sourceChunk: "shared~bundle.BookmarkFolders~bundle.Bookmarks.42881d01aa4e5708a.js", observedOn: "2026-09-13" },
|
|
250
250
|
{ operationName: "BookmarkSearchTimeline", operationType: "query", queryId: "SpDsqmz6FfYESd1e7TPcAw", sourceChunk: "main.9929b02a.js" },
|
|
251
251
|
{ operationName: "SearchTimeline", operationType: "query", queryId: "hyPfJYJ_XAtDYoslQc-Rgg", sourceChunk: "main.ae82e9d02d3328bba.js", observedOn: "2026-09-06" },
|
|
252
252
|
{ operationName: "NotificationsTimeline", operationType: "query", queryId: "dDSNxYH-uWwVo2r3Y5VVqg", sourceChunk: "bundle.Notifications.eea6257a.js" },
|
|
@@ -268,7 +268,7 @@ export const xWebQueryDescriptorEvidenceSnapshot = Object.freeze({
|
|
|
268
268
|
{ operationName: "DmAllSearchSlice", operationType: "query", queryId: "zd0F6a_svKAXdlMGbCZDFg", sourceChunk: "bundle.DirectMessages.265735ba.js" },
|
|
269
269
|
{ operationName: "DmGroupSearchSlice", operationType: "query", queryId: "LxrvmqF3Lokl_BYZ1c83LA", sourceChunk: "bundle.DirectMessages.265735ba.js" },
|
|
270
270
|
{ operationName: "DmPeopleSearchSlice", operationType: "query", queryId: "c1MnRRmI-_Bggpntlq9-hQ", sourceChunk: "bundle.DirectMessages.265735ba.js" },
|
|
271
|
-
{ operationName: "Viewer", operationType: "query", queryId: "9t128XgFic52jPUEkJMf6w", sourceChunk: "main.
|
|
271
|
+
{ operationName: "Viewer", operationType: "query", queryId: "9t128XgFic52jPUEkJMf6w", sourceChunk: "main.59435dbf6f40166da.js", observedOn: "2026-09-13" },
|
|
272
272
|
{ operationName: "UserByScreenName", operationType: "query", queryId: "Gb-d6r0vxPOADdG62OEBpQ", sourceChunk: "main.dd6a5b6a.js", observedOn: "2026-08-21" },
|
|
273
273
|
{ operationName: "ArticleEntityDraftCreate", operationType: "mutation", queryId: "btD9FyMDa3_vydVp7fr87Q", sourceChunk: "bundle.TwitterArticles.305538ca.js", observedOn: "2026-08-14" },
|
|
274
274
|
{ operationName: "ArticleEntityUpdateContent", operationType: "mutation", queryId: "P5Nc3DYs9D4XqVthNrig8w", sourceChunk: "bundle.TwitterArticles.305538ca.js", observedOn: "2026-08-14" },
|
package/src/usage.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Static CLI help kept separate from the command implementation graph.
|
|
3
3
|
*
|
|
4
|
-
* The installed entrypoint imports only
|
|
4
|
+
* The installed entrypoint imports only static help, terminal identity, and release
|
|
5
5
|
* identity for a valid help request, so help remains available even when an
|
|
6
6
|
* optional provider runtime is broken.
|
|
7
7
|
*/
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** Canonical immutable Ghostget package release identity. */
|
|
2
|
-
export const GHOSTGET_VERSION = "0.18.
|
|
2
|
+
export const GHOSTGET_VERSION = "0.18.5" as const;
|