@walkeros/mcp 4.7.1 → 4.7.2-next-1791213015481

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 CHANGED
@@ -129,7 +129,7 @@ The server registers 19 tools.
129
129
  | `walkeros://reference/flow-schema` | Flow configuration structure and connection rules |
130
130
  | `walkeros://reference/event-model` | Event naming, properties, and auto-populated fields |
131
131
  | `walkeros://reference/mapping` | Mapping syntax: data, map, loop, set, condition, policy |
132
- | `walkeros://reference/consent` | The consent model at destination, rule, and field level |
132
+ | `walkeros://reference/consent` | The consent model at destination and field level |
133
133
  | `walkeros://reference/variables` | Variable patterns: `$var`, `$env`, `$secret`, `$code`, `$store` |
134
134
  | `walkeros://reference/contract` | Event schemas, wildcards, and inheritance |
135
135
  | `walkeros://reference/openapi` | The live OpenAPI 3.1 document of the app this server talks to |
@@ -148,11 +148,11 @@ Read these before writing a configuration by hand.
148
148
 
149
149
  ## Environment variables
150
150
 
151
- | Variable | Required | Default | Purpose |
152
- | --------------------- | -------- | ------------------------- | ------------------------------------------------------------------------- |
153
- | `WALKEROS_TOKEN` | No | none | Automation token (`wos_pat_...`), an alternative to the `auth` tool login |
154
- | `WALKEROS_PROJECT_ID` | No | none | Active project ID (`proj_...`) |
155
- | `WALKEROS_APP_URL` | No | `https://app.walkeros.io` | Base URL override |
151
+ | Variable | Required | Default | Purpose |
152
+ | --------------------- | -------- | ------------------------- | -------------------------------------------------------------------------- |
153
+ | `WALKEROS_TOKEN` | No | none | Automation token (`wos_pat_...`), an alternative to the `auth` tool login |
154
+ | `WALKEROS_PROJECT_ID` | No | none | Project (`proj_...`) for calls without `projectId`, ahead of `set_default` |
155
+ | `WALKEROS_APP_URL` | No | `https://app.walkeros.io` | Base URL override |
156
156
 
157
157
  ## Programmatic usage
158
158
 
@@ -193,6 +193,11 @@ AI SDK, call `createToolHandlers(client, version, runtime)` or import
193
193
  `TOOL_DEFINITIONS` and supply your own `ToolClient`. The stdio binary stays
194
194
  available as `@walkeros/mcp/stdio` and the `walkeros-mcp` bin entry.
195
195
 
196
+ A `ToolClient` served inside a host that authenticates every request itself
197
+ returns `'host'` from `credentialSource()`. The `auth` tool then reports the
198
+ connection as logged in, answers `login` with "no login needed" and refuses
199
+ `logout`, which never reaches the client: the connection ends in the host.
200
+
196
201
  A `ToolClient` may implement `checkContract()` and `openapiDocument()`. The
197
202
  `diagnostics` tool reports the first as its contract verdict, `unknown` when it
198
203
  is absent; the `walkeros://reference/openapi` resource serves the second.
package/dist/index.d.ts CHANGED
@@ -370,6 +370,8 @@ interface ToolClient {
370
370
  }): Promise<unknown>;
371
371
  setDefaultProject(projectId: string): void;
372
372
  getDefaultProject(): string | null;
373
+ /** Every project's flows, as an array of `{ project: { id, name }, flows }`
374
+ * groups whose `flows` are the rows `listFlows` answers for that project. */
373
375
  listAllFlows(options?: {
374
376
  sort?: string;
375
377
  order?: 'asc' | 'desc';
@@ -524,15 +526,24 @@ interface ToolClient {
524
526
  timeoutMs?: number;
525
527
  }): Promise<DeviceLoginResult>;
526
528
  whoami(): Promise<unknown>;
527
- /** Where a credential would come from, without resolving or refreshing it. */
528
- credentialSource(): 'env' | 'config' | null;
529
+ /**
530
+ * Where a credential would come from, without resolving or refreshing it:
531
+ * `'env'` (`WALKEROS_TOKEN`), `'config'` (a stored login), `'host'` (the
532
+ * door is served inside a host that authenticates every request itself, so
533
+ * this process holds no login to start or end), or null (none).
534
+ */
535
+ credentialSource(): 'env' | 'config' | 'host' | null;
529
536
  /**
530
537
  * Retire the session. Where the credential was issued to this process, that
531
538
  * means revoking it with the server before dropping it locally; a plane
532
- * holding a bearer it did not issue reports nothing deleted.
539
+ * holding a bearer it did not issue reports nothing deleted. `envCleared`
540
+ * reports that the door also dropped a `WALKEROS_TOKEN` from its own process
541
+ * environment, which only a door that owns its process does. The `auth`
542
+ * tool never calls this on a `'host'` door.
533
543
  */
534
544
  logout(): Promise<{
535
545
  deleted: boolean;
546
+ envCleared?: boolean;
536
547
  }>;
537
548
  /**
538
549
  * The base URL of the walkerOS app this door talks to, without a trailing
@@ -762,7 +773,14 @@ declare class HttpToolClient implements ToolClient {
762
773
  deleteProject(options: {
763
774
  projectId?: string;
764
775
  }): Promise<unknown>;
776
+ /** Refuses while `WALKEROS_PROJECT_ID` names another project (see the CLI). */
765
777
  setDefaultProject(projectId: string): void;
778
+ /**
779
+ * `WALKEROS_PROJECT_ID`, then the CLI config's default, through the same
780
+ * resolution the CLI's own commands use. Read here, at the door that owns
781
+ * this process's environment, never in the shared tool layer: a hosted door
782
+ * runs in a server process whose variables are no person's selection.
783
+ */
766
784
  getDefaultProject(): string | null;
767
785
  listAllFlows(options?: {
768
786
  sort?: string;
@@ -828,8 +846,8 @@ declare class HttpToolClient implements ToolClient {
828
846
  /**
829
847
  * Observe session lifecycle over the CLI's authenticated boundary. The trio
830
848
  * routes through the same `apiFetch` as every other method here, so token
831
- * resolution, base URL, and `ApiError` shaping (which `isAuthError` reads)
832
- * stay identical to the rest of the client.
849
+ * resolution, base URL, and `ApiError` shaping (which
850
+ * `isAuthenticationError` reads) stay identical to the rest of the client.
833
851
  */
834
852
  startObserveSession(options: StartObserveSessionOptions): Promise<ObserveSessionResult>;
835
853
  getObserveSession(options: ObserveSessionRef): Promise<ObserveSessionResult>;
@@ -906,8 +924,15 @@ declare class HttpToolClient implements ToolClient {
906
924
  }): Promise<DeviceLoginResult>;
907
925
  whoami(): Promise<unknown>;
908
926
  credentialSource(): 'env' | 'config' | null;
927
+ /**
928
+ * Revoke and drop the stored session, then clear a `WALKEROS_TOKEN` from
929
+ * this process: the local door owns its environment, so a later call in the
930
+ * same session no longer authenticates with it.
931
+ */
909
932
  logout(): Promise<{
910
933
  deleted: boolean;
934
+ superseded: boolean;
935
+ envCleared: boolean;
911
936
  }>;
912
937
  /**
913
938
  * The app this local door talks to: `WALKEROS_APP_URL`, then the CLI config