@shipstatic/types 2.20.0 → 2.21.0-beta.2

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/index.d.ts CHANGED
@@ -26,9 +26,20 @@ export type DeploymentStatusType = (typeof DeploymentStatus)[keyof typeof Deploy
26
26
  * member here and every future one:
27
27
  *
28
28
  * - **Where the platform ships CODE, the code declares it.** `web`, `sdk`,
29
- * `cli`, `git`, `n8n` and `vsc` are surfaces this platform authors, so each
30
- * names itself in its own source and nothing external is needed to tell them
31
- * apart.
29
+ * `cli`, `git`, `n8n`, `vsc` and `gmn` are surfaces this platform authors,
30
+ * so each names itself in its own source and nothing external is needed to
31
+ * tell them apart. A first-party WRAPPER counts as code even when it is a
32
+ * manifest: the GitHub Action and the Gemini extension each compose an
33
+ * invocation of a platform executable and relabel it through
34
+ * {@link SHIP_VIA_ENV}.
35
+ *
36
+ * **And only a surface that DEPLOYS gets a member — `@shipstatic/drop` is the
37
+ * recorded refusal.** The widget collects and validates files and hands raw
38
+ * `File[]` to its embedder, whose own SDK call is the deploy; drop makes no
39
+ * upload call anywhere, so a `drp` member would be a word nothing can emit.
40
+ * Those deploys read `sdk`, which is the truth: the embedder is a program
41
+ * embedding the SDK directly. Mint the member the day drop grows an upload
42
+ * arm, not before.
32
43
  * - **Where the platform ships only a URL, the URL declares it.** A
33
44
  * marketplace listing runs somebody else's client against a bare endpoint —
34
45
  * every one of them the same server speaking the same protocol, and
@@ -69,6 +80,8 @@ export declare const DeploymentVia: {
69
80
  readonly CLD: "cld";
70
81
  /** Channel: the Cursor marketplace listing → `mcp.<domain>/crs`. */
71
82
  readonly CRS: "crs";
83
+ /** The Gemini CLI extension. */
84
+ readonly GMN: "gmn";
72
85
  /**
73
86
  * A deploy that reached the REST API naming no origin at all — the
74
87
  * platform-wide fallback, one altitude below `mcp`'s family fallback.
@@ -1622,10 +1635,11 @@ export declare const DEFAULT_API = "https://api.shipstatic.com";
1622
1635
  * values — as the VS Code extension's child-process env block does — picks
1623
1636
  * up a grown contract at the next pin bump instead of by remembered prose.
1624
1637
  *
1625
- * Browser builds read no environment at all, and the CLI-only variables
1626
- * (`SHIP_PASSWORD`, `SHIP_VIA`) are deliberately NOT here: they are the
1627
- * CLI's operational levers, not the SDK's ambient contract — see
1628
- * `npm/ship/CLAUDE.md`, "CLI-only env vars".
1638
+ * Browser builds read no environment at all, and the wrapper-tier variables
1639
+ * are deliberately NOT here: `SHIP_PASSWORD` stays the CLI's own operational
1640
+ * lever (see `npm/ship/CLAUDE.md`, "CLI-only env vars"), and the origin
1641
+ * relabel slot has its own owner beside this object ({@link SHIP_VIA_ENV})
1642
+ * because two executables read it and neither reading is the SDK's.
1629
1643
  */
1630
1644
  export declare const SHIP_ENV: {
1631
1645
  /** The one credential slot — any platform token. */
@@ -1633,6 +1647,22 @@ export declare const SHIP_ENV: {
1633
1647
  /** The API endpoint override. */
1634
1648
  readonly API_URL: "SHIP_API_URL";
1635
1649
  };
1650
+ /**
1651
+ * The origin-relabel slot for integrations that wrap a first-party
1652
+ * executable as a subprocess. A wrapper composes an argv and an env it does
1653
+ * not otherwise reach, so this variable is its one way to name the surface
1654
+ * the traffic is really from. Two executables read it through
1655
+ * {@link normalizeVia}: the `ship` CLI (default `cli`; the GitHub Action
1656
+ * sets `git`) and the stdio MCP bin (default `mcp`; the Gemini CLI
1657
+ * extension sets `gmn`). In-process SDK consumers pass the programmatic
1658
+ * `via` option instead: same destination, different mechanism.
1659
+ *
1660
+ * Deliberately not a member of {@link SHIP_ENV}, which is the SDK's ambient
1661
+ * contract; the SDK never reads this. The name earned an owner the day the
1662
+ * stdio bin became its second reader: one spelling, two executables, and a
1663
+ * misspelling on either side drops attribution silently.
1664
+ */
1665
+ export declare const SHIP_VIA_ENV = "SHIP_VIA";
1636
1666
  /**
1637
1667
  * Where a human creates an API key — the console deep link quoted by every
1638
1668
  * surface that teaches authentication (the CLI's config wizard, the VS Code
package/dist/index.js CHANGED
@@ -28,9 +28,20 @@ export const DeploymentStatus = {
28
28
  * member here and every future one:
29
29
  *
30
30
  * - **Where the platform ships CODE, the code declares it.** `web`, `sdk`,
31
- * `cli`, `git`, `n8n` and `vsc` are surfaces this platform authors, so each
32
- * names itself in its own source and nothing external is needed to tell them
33
- * apart.
31
+ * `cli`, `git`, `n8n`, `vsc` and `gmn` are surfaces this platform authors,
32
+ * so each names itself in its own source and nothing external is needed to
33
+ * tell them apart. A first-party WRAPPER counts as code even when it is a
34
+ * manifest: the GitHub Action and the Gemini extension each compose an
35
+ * invocation of a platform executable and relabel it through
36
+ * {@link SHIP_VIA_ENV}.
37
+ *
38
+ * **And only a surface that DEPLOYS gets a member — `@shipstatic/drop` is the
39
+ * recorded refusal.** The widget collects and validates files and hands raw
40
+ * `File[]` to its embedder, whose own SDK call is the deploy; drop makes no
41
+ * upload call anywhere, so a `drp` member would be a word nothing can emit.
42
+ * Those deploys read `sdk`, which is the truth: the embedder is a program
43
+ * embedding the SDK directly. Mint the member the day drop grows an upload
44
+ * arm, not before.
34
45
  * - **Where the platform ships only a URL, the URL declares it.** A
35
46
  * marketplace listing runs somebody else's client against a bare endpoint —
36
47
  * every one of them the same server speaking the same protocol, and
@@ -71,6 +82,8 @@ export const DeploymentVia = {
71
82
  CLD: 'cld',
72
83
  /** Channel: the Cursor marketplace listing → `mcp.<domain>/crs`. */
73
84
  CRS: 'crs',
85
+ /** The Gemini CLI extension. */
86
+ GMN: 'gmn',
74
87
  /**
75
88
  * A deploy that reached the REST API naming no origin at all — the
76
89
  * platform-wide fallback, one altitude below `mcp`'s family fallback.
@@ -1591,10 +1604,11 @@ export const DEFAULT_API = 'https://api.shipstatic.com';
1591
1604
  * values — as the VS Code extension's child-process env block does — picks
1592
1605
  * up a grown contract at the next pin bump instead of by remembered prose.
1593
1606
  *
1594
- * Browser builds read no environment at all, and the CLI-only variables
1595
- * (`SHIP_PASSWORD`, `SHIP_VIA`) are deliberately NOT here: they are the
1596
- * CLI's operational levers, not the SDK's ambient contract — see
1597
- * `npm/ship/CLAUDE.md`, "CLI-only env vars".
1607
+ * Browser builds read no environment at all, and the wrapper-tier variables
1608
+ * are deliberately NOT here: `SHIP_PASSWORD` stays the CLI's own operational
1609
+ * lever (see `npm/ship/CLAUDE.md`, "CLI-only env vars"), and the origin
1610
+ * relabel slot has its own owner beside this object ({@link SHIP_VIA_ENV})
1611
+ * because two executables read it and neither reading is the SDK's.
1598
1612
  */
1599
1613
  export const SHIP_ENV = {
1600
1614
  /** The one credential slot — any platform token. */
@@ -1602,6 +1616,22 @@ export const SHIP_ENV = {
1602
1616
  /** The API endpoint override. */
1603
1617
  API_URL: 'SHIP_API_URL',
1604
1618
  };
1619
+ /**
1620
+ * The origin-relabel slot for integrations that wrap a first-party
1621
+ * executable as a subprocess. A wrapper composes an argv and an env it does
1622
+ * not otherwise reach, so this variable is its one way to name the surface
1623
+ * the traffic is really from. Two executables read it through
1624
+ * {@link normalizeVia}: the `ship` CLI (default `cli`; the GitHub Action
1625
+ * sets `git`) and the stdio MCP bin (default `mcp`; the Gemini CLI
1626
+ * extension sets `gmn`). In-process SDK consumers pass the programmatic
1627
+ * `via` option instead: same destination, different mechanism.
1628
+ *
1629
+ * Deliberately not a member of {@link SHIP_ENV}, which is the SDK's ambient
1630
+ * contract; the SDK never reads this. The name earned an owner the day the
1631
+ * stdio bin became its second reader: one spelling, two executables, and a
1632
+ * misspelling on either side drops attribution silently.
1633
+ */
1634
+ export const SHIP_VIA_ENV = 'SHIP_VIA';
1605
1635
  /**
1606
1636
  * Where a human creates an API key — the console deep link quoted by every
1607
1637
  * surface that teaches authentication (the CLI's config wizard, the VS Code
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shipstatic/types",
3
- "version": "2.20.0",
3
+ "version": "2.21.0-beta.2",
4
4
  "description": "Shared types for ShipStatic platform",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/index.ts CHANGED
@@ -33,9 +33,20 @@ export type DeploymentStatusType = (typeof DeploymentStatus)[keyof typeof Deploy
33
33
  * member here and every future one:
34
34
  *
35
35
  * - **Where the platform ships CODE, the code declares it.** `web`, `sdk`,
36
- * `cli`, `git`, `n8n` and `vsc` are surfaces this platform authors, so each
37
- * names itself in its own source and nothing external is needed to tell them
38
- * apart.
36
+ * `cli`, `git`, `n8n`, `vsc` and `gmn` are surfaces this platform authors,
37
+ * so each names itself in its own source and nothing external is needed to
38
+ * tell them apart. A first-party WRAPPER counts as code even when it is a
39
+ * manifest: the GitHub Action and the Gemini extension each compose an
40
+ * invocation of a platform executable and relabel it through
41
+ * {@link SHIP_VIA_ENV}.
42
+ *
43
+ * **And only a surface that DEPLOYS gets a member — `@shipstatic/drop` is the
44
+ * recorded refusal.** The widget collects and validates files and hands raw
45
+ * `File[]` to its embedder, whose own SDK call is the deploy; drop makes no
46
+ * upload call anywhere, so a `drp` member would be a word nothing can emit.
47
+ * Those deploys read `sdk`, which is the truth: the embedder is a program
48
+ * embedding the SDK directly. Mint the member the day drop grows an upload
49
+ * arm, not before.
39
50
  * - **Where the platform ships only a URL, the URL declares it.** A
40
51
  * marketplace listing runs somebody else's client against a bare endpoint —
41
52
  * every one of them the same server speaking the same protocol, and
@@ -76,6 +87,8 @@ export const DeploymentVia = {
76
87
  CLD: 'cld',
77
88
  /** Channel: the Cursor marketplace listing → `mcp.<domain>/crs`. */
78
89
  CRS: 'crs',
90
+ /** The Gemini CLI extension. */
91
+ GMN: 'gmn',
79
92
  /**
80
93
  * A deploy that reached the REST API naming no origin at all — the
81
94
  * platform-wide fallback, one altitude below `mcp`'s family fallback.
@@ -2463,10 +2476,11 @@ export const DEFAULT_API = 'https://api.shipstatic.com';
2463
2476
  * values — as the VS Code extension's child-process env block does — picks
2464
2477
  * up a grown contract at the next pin bump instead of by remembered prose.
2465
2478
  *
2466
- * Browser builds read no environment at all, and the CLI-only variables
2467
- * (`SHIP_PASSWORD`, `SHIP_VIA`) are deliberately NOT here: they are the
2468
- * CLI's operational levers, not the SDK's ambient contract — see
2469
- * `npm/ship/CLAUDE.md`, "CLI-only env vars".
2479
+ * Browser builds read no environment at all, and the wrapper-tier variables
2480
+ * are deliberately NOT here: `SHIP_PASSWORD` stays the CLI's own operational
2481
+ * lever (see `npm/ship/CLAUDE.md`, "CLI-only env vars"), and the origin
2482
+ * relabel slot has its own owner beside this object ({@link SHIP_VIA_ENV})
2483
+ * because two executables read it and neither reading is the SDK's.
2470
2484
  */
2471
2485
  export const SHIP_ENV = {
2472
2486
  /** The one credential slot — any platform token. */
@@ -2475,6 +2489,23 @@ export const SHIP_ENV = {
2475
2489
  API_URL: 'SHIP_API_URL',
2476
2490
  } as const;
2477
2491
 
2492
+ /**
2493
+ * The origin-relabel slot for integrations that wrap a first-party
2494
+ * executable as a subprocess. A wrapper composes an argv and an env it does
2495
+ * not otherwise reach, so this variable is its one way to name the surface
2496
+ * the traffic is really from. Two executables read it through
2497
+ * {@link normalizeVia}: the `ship` CLI (default `cli`; the GitHub Action
2498
+ * sets `git`) and the stdio MCP bin (default `mcp`; the Gemini CLI
2499
+ * extension sets `gmn`). In-process SDK consumers pass the programmatic
2500
+ * `via` option instead: same destination, different mechanism.
2501
+ *
2502
+ * Deliberately not a member of {@link SHIP_ENV}, which is the SDK's ambient
2503
+ * contract; the SDK never reads this. The name earned an owner the day the
2504
+ * stdio bin became its second reader: one spelling, two executables, and a
2505
+ * misspelling on either side drops attribution silently.
2506
+ */
2507
+ export const SHIP_VIA_ENV = 'SHIP_VIA';
2508
+
2478
2509
  /**
2479
2510
  * Where a human creates an API key — the console deep link quoted by every
2480
2511
  * surface that teaches authentication (the CLI's config wizard, the VS Code