@everfur/cli 0.4.1 → 0.6.0

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.
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import { hostnameOf, listen, close, writeJson, serveStatelessMcp } from './chunk-A2QEBO5U.js';
3
- import { createHostedTokenVerifier, tokenBucketOf, isAccessTokenShaped, buildServer, MCP_SCOPE, tenantContextOf, sendTestUserRef, hostedVerifyUserRef, REVOKED_AUTHORIZATION_REMEDY, SYNTHETIC_USER_REF_PREFIX } from './chunk-QCXZJW5C.js';
4
- import { BASE_URL_ENV_VAR, resolveEndpoint, fetchTransport, systemClock, createApiClient, withPrefix, ephemeralCredential, validateContractText, isJsonObject, describeFailure } from './chunk-EBVP6FAD.js';
2
+ import { hostnameOf, listen, close, writeJson, serveStatelessMcp } from './chunk-KIX4GJKB.js';
3
+ import { createHostedTokenVerifier, tokenBucketOf, isAccessTokenShaped, buildServer, MCP_SCOPE, tenantContextOf, sendTestUserRef, hostedVerifyUserRef, REVOKED_AUTHORIZATION_REMEDY, SYNTHETIC_USER_REF_PREFIX } from './chunk-REQLWFQZ.js';
4
+ import { BASE_URL_ENV_VAR, resolveEndpoint, fetchTransport, systemClock, createApiClient, withPrefix, ephemeralCredential, validateContractText, isJsonObject, describeFailure } from './chunk-GDH5F4QE.js';
5
5
  import { createServer } from 'http';
6
6
  import { InvalidTokenError, TooManyRequestsError, TemporarilyUnavailableError } from '@modelcontextprotocol/sdk/server/auth/errors.js';
7
7
  import { isIP } from 'net';
@@ -4832,7 +4832,7 @@ function sdkInstallSpec() {
4832
4832
  return `${SDK_PACKAGE}@^${SDK_MIN_VERSION}` ;
4833
4833
  }
4834
4834
  var SDK_PACKAGE_PLATFORMS = /* @__PURE__ */ new Set(["expo-managed", "bare-react-native", "web"]);
4835
- var SDK_MIN_VERSION = "0.9.0";
4835
+ var SDK_MIN_VERSION = "0.10.0";
4836
4836
  var SDK_WEB_MIN_VERSION = SDK_MIN_VERSION;
4837
4837
  var SDK_TELEVET_MIN_VERSION = SDK_MIN_VERSION;
4838
4838
  function sdkInstallSpecFor(options) {
@@ -5433,8 +5433,8 @@ function booleanAttribute(outcome, key) {
5433
5433
  }
5434
5434
 
5435
5435
  // src/version.ts
5436
- var CLI_VERSION = "0.4.1";
5437
- var CLI_PUBLISHED_VERSION = "0.2.1";
5436
+ var CLI_VERSION = "0.6.0";
5437
+ var CLI_PUBLISHED_VERSION = "0.5.0";
5438
5438
 
5439
5439
  // src/commands/diagnose/reasons.ts
5440
5440
  var REASON_CODES = Object.freeze([
@@ -9666,8 +9666,11 @@ function userSpread(tokenNote, fetchCall, idName = "YOUR_USER_ID") {
9666
9666
  ${tokenNote.map((line) => `${indent}// ${line}`).join("\n")}
9667
9667
  getToken: async () => {
9668
9668
  const res = await ${fetchCall};
9669
+ // A failed mint must throw: an error body read as a token goes out as a bearer and is refused.
9669
9670
  if (!res.ok) throw new Error('session mint failed: ' + res.status);
9670
- return res.text();
9671
+ // The route answers JSON { token, expiresAt }; the expiry lets the SDK re-mint before the session ends.
9672
+ const { token, expiresAt } = (await res.json()) as { token: string; expiresAt: number };
9673
+ return { token, expiresAt };
9671
9674
  },
9672
9675
  },
9673
9676
  })}`;
@@ -10172,7 +10175,7 @@ var MINT_BODY = ` const partnerSecretKey = process.env['${SERVER_ENV.secretKey}
10172
10175
  const publishableKey = process.env['${SERVER_ENV.publishableKey}'];
10173
10176
  const apiBaseUrl = process.env['${SERVER_ENV.apiBaseUrl}'];
10174
10177
  if (!partnerSecretKey || !publishableKey || !apiBaseUrl) {
10175
- return { status: 503, body: 'Everfur is not configured' };
10178
+ return { status: 503, body: JSON.stringify({ error: 'Everfur is not configured' }) };
10176
10179
  }
10177
10180
  const minted = await mintPartnerSession({ apiBaseUrl, partnerSecretKey, publishableKey, userRef });
10178
10181
  if (!minted.ok) {
@@ -10184,9 +10187,12 @@ var MINT_BODY = ` const partnerSecretKey = process.env['${SERVER_ENV.secretKey}
10184
10187
  minted.error.httpStatus ?? 'no status',
10185
10188
  minted.error.requestId ?? 'no request id',
10186
10189
  );
10187
- return { status: 502, body: 'session unavailable' };
10190
+ return { status: 502, body: JSON.stringify({ error: 'session unavailable' }) };
10188
10191
  }
10189
- return { status: 200, body: minted.value.sessionToken };`;
10192
+ return {
10193
+ status: 200,
10194
+ body: JSON.stringify({ token: minted.value.sessionToken, expiresAt: minted.value.expiresAt }),
10195
+ };`;
10190
10196
  function nodeSessionRouteFile(sessionRoute, framework = null, sourceDir = "", audience = "web") {
10191
10197
  const layout = webLayoutFor(framework, sourceDir);
10192
10198
  if (framework === "next-app-router" && layout.sessionRoutePath !== null) {
@@ -10207,12 +10213,12 @@ export async function POST(request: Request): Promise<Response> {
10207
10213
  const userRef = await resolveCurrentUserRef(request);
10208
10214
  if (userRef === null) {
10209
10215
  // No signed-in user: 401, the answer a signed-out visitor gets once the lookup above is yours.
10210
- return new Response('Not signed in', { status: 401 });
10216
+ return new Response(JSON.stringify({ error: 'Not signed in' }), { status: 401, headers: { 'content-type': 'application/json' } });
10211
10217
  }
10212
10218
  const result = await mint(userRef);
10213
10219
  return new Response(result.body, {
10214
10220
  status: result.status,
10215
- headers: { 'content-type': 'text/plain', 'cache-control': 'no-store' },
10221
+ headers: { 'content-type': 'application/json', 'cache-control': 'no-store' },
10216
10222
  });
10217
10223
  }
10218
10224
  `;
@@ -10242,11 +10248,12 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
10242
10248
  const userRef = await resolveCurrentUserRef(req);
10243
10249
  if (userRef === null) {
10244
10250
  // No signed-in user: 401, the answer a signed-out visitor gets once the lookup above is yours.
10245
- res.status(401).send('Not signed in');
10251
+ res.setHeader('content-type', 'application/json');
10252
+ res.status(401).send(JSON.stringify({ error: 'Not signed in' }));
10246
10253
  return;
10247
10254
  }
10248
10255
  const result = await mint(userRef);
10249
- res.setHeader('content-type', 'text/plain');
10256
+ res.setHeader('content-type', 'application/json');
10250
10257
  res.setHeader('cache-control', 'no-store');
10251
10258
  res.status(result.status).send(result.body);
10252
10259
  }
@@ -10270,12 +10277,12 @@ export async function mintEverfurSession(request: Request): Promise<Response> {
10270
10277
  const userRef = await resolveCurrentUserRef(request);
10271
10278
  if (userRef === null) {
10272
10279
  // No signed-in user: 401, the answer a signed-out visitor gets once the lookup above is yours.
10273
- return new Response('Not signed in', { status: 401 });
10280
+ return new Response(JSON.stringify({ error: 'Not signed in' }), { status: 401, headers: { 'content-type': 'application/json' } });
10274
10281
  }
10275
10282
  const result = await mint(userRef);
10276
10283
  return new Response(result.body, {
10277
10284
  status: result.status,
10278
- headers: { 'content-type': 'text/plain', 'cache-control': 'no-store' },
10285
+ headers: { 'content-type': 'application/json', 'cache-control': 'no-store' },
10279
10286
  });
10280
10287
  }
10281
10288
 
@@ -10319,11 +10326,11 @@ async function answer(req: Request, res: Response): Promise<void> {
10319
10326
  const userRef = await resolveCurrentUserRef(req);
10320
10327
  if (userRef === null) {
10321
10328
  // No signed-in user: 401, the answer a signed-out visitor gets once the lookup above is yours.
10322
- res.status(401).type('text/plain').send('Not signed in');
10329
+ res.status(401).type('application/json').send(JSON.stringify({ error: 'Not signed in' }));
10323
10330
  return;
10324
10331
  }
10325
10332
  const result = await mint(userRef);
10326
- res.status(result.status).set('cache-control', 'no-store').type('text/plain').send(result.body);
10333
+ res.status(result.status).set('cache-control', 'no-store').type('application/json').send(result.body);
10327
10334
  }
10328
10335
 
10329
10336
  export const ${exported} = Router();
@@ -10350,10 +10357,10 @@ export const ${exported} = async (app: FastifyInstance): Promise<void> => {
10350
10357
  const userRef = await resolveCurrentUserRef(request);
10351
10358
  if (userRef === null) {
10352
10359
  // No signed-in user: 401, the answer a signed-out visitor gets once the lookup above is yours.
10353
- return reply.code(401).type('text/plain').send('Not signed in');
10360
+ return reply.code(401).type('application/json').send(JSON.stringify({ error: 'Not signed in' }));
10354
10361
  }
10355
10362
  const result = await mint(userRef);
10356
- return reply.code(result.status).header('cache-control', 'no-store').type('text/plain').send(result.body);
10363
+ return reply.code(result.status).header('cache-control', 'no-store').type('application/json').send(result.body);
10357
10364
  });
10358
10365
  };
10359
10366
 
@@ -10375,12 +10382,12 @@ export const ${exported} = async (ctx: Context, next: Next): Promise<void> => {
10375
10382
  return;
10376
10383
  }
10377
10384
  const userRef = await resolveCurrentUserRef(ctx);
10378
- ctx.type = 'text/plain';
10385
+ ctx.type = 'application/json';
10379
10386
  ctx.set('cache-control', 'no-store');
10380
10387
  if (userRef === null) {
10381
10388
  // No signed-in user: 401, the answer a signed-out visitor gets once the lookup above is yours.
10382
10389
  ctx.status = 401;
10383
- ctx.body = 'Not signed in';
10390
+ ctx.body = JSON.stringify({ error: 'Not signed in' });
10384
10391
  return;
10385
10392
  }
10386
10393
  const result = await mint(userRef);
@@ -10407,12 +10414,12 @@ ${exported}.post('${sessionRoute}', async (c) => {
10407
10414
  const userRef = await resolveCurrentUserRef(c);
10408
10415
  if (userRef === null) {
10409
10416
  // No signed-in user: 401, the answer a signed-out visitor gets once the lookup above is yours.
10410
- return new Response('Not signed in', { status: 401, headers: { 'content-type': 'text/plain' } });
10417
+ return new Response(JSON.stringify({ error: 'Not signed in' }), { status: 401, headers: { 'content-type': 'application/json' } });
10411
10418
  }
10412
10419
  const result = await mint(userRef);
10413
10420
  return new Response(result.body, {
10414
10421
  status: result.status,
10415
- headers: { 'content-type': 'text/plain', 'cache-control': 'no-store' },
10422
+ headers: { 'content-type': 'application/json', 'cache-control': 'no-store' },
10416
10423
  });
10417
10424
  });
10418
10425
 
@@ -10688,11 +10695,13 @@ function frameUser(sessionRoute, indent) {
10688
10695
  `${indent}user: {`,
10689
10696
  `${indent} // Your stable, case-sensitive id for this person, the same one your backend mints for.`,
10690
10697
  `${indent} userRef: '${USER_ID_PLACEHOLDER}',`,
10691
- `${indent} // Your backend mints the session from the secret key and returns the token as text.`,
10698
+ `${indent} // Your backend mints the session from the secret key and answers JSON { token, expiresAt }. The frame`,
10699
+ `${indent} // loader takes the token string alone, so return the token; a failed mint throws rather than handing it an error body.`,
10692
10700
  `${indent} getToken: async function () {`,
10693
10701
  `${indent} var res = await fetch('${sessionRoute}', { method: 'POST', credentials: 'same-origin' });`,
10694
10702
  `${indent} if (!res.ok) throw new Error('session mint failed: ' + res.status);`,
10695
- `${indent} return res.text();`,
10703
+ `${indent} var body = await res.json();`,
10704
+ `${indent} return body.token;`,
10696
10705
  `${indent} },`,
10697
10706
  `${indent}},`
10698
10707
  ].join("\n");
@@ -13814,8 +13823,8 @@ function planIntegration(input) {
13814
13823
  // src/registry/sdk/client/contract/contract.generated.ts
13815
13824
  var CONTRACT_SOURCE = Object.freeze({
13816
13825
  digestAlgorithm: "sha256",
13817
- digest: "1e2bf2afec40f30ea31eb99e35446c3541961fdc3c4cde88223bb4fa25812654",
13818
- generatedAt: "2026-10-02T17:11:35Z",
13826
+ digest: "6863b6fba6f545dab1877fa04badc35737f987d60c7bfbcfa94d09793d25237b",
13827
+ generatedAt: "2026-10-06T14:37:02Z",
13819
13828
  capabilitySchemaVersion: 1,
13820
13829
  errorSchemaVersion: 1
13821
13830
  });
@@ -14304,12 +14313,12 @@ function userFacingError(code) {
14304
14313
  var MANIFEST_default = {
14305
14314
  sdk: {
14306
14315
  name: "@everfur/sdk",
14307
- version: "0.9.2"
14316
+ version: "0.10.0"
14308
14317
  },
14309
14318
  files: [
14310
14319
  {
14311
14320
  path: "client/contract/contract.generated.ts",
14312
- sha256: "2c97b5c38e71e7090c1023c74f7d31af3ba345c1dcbd438cf0cf9a4dfa88de2e"
14321
+ sha256: "9462084408bec0fcd65d3b5f0403655b223135bc5f0994a49c6cf361592275bb"
14313
14322
  },
14314
14323
  {
14315
14324
  path: "client/errors/EverfurError.ts",
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { buildServer } from './chunk-QCXZJW5C.js';
2
+ import { buildServer } from './chunk-REQLWFQZ.js';
3
3
  import { createServer } from 'http';
4
4
  import { timingSafeEqual } from 'crypto';
5
5
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { ENVIRONMENTS, ENVELOPE_SHAPE, SURFACES, VERIFY_IDENTITY_MODES, refusal, API_BASE_URL_BY_ENVIRONMENT, fetchContract, NO_CONTRACT_CACHE, systemClock, fetchTransport, describeFailure, loadDecisionSpaceFromContract, uuidFromKey, resolveEndpoint, createApiClient, createContractProvider, nodeContractCache, CLI_VERSION, withPrefix, ephemeralCredential, isJsonObject, REFUSAL_POLICY, error_explanation_v1_schema_default, verification_v1_schema_default, diagnosis_v1_schema_default, plan_v1_schema_default, NEXT_ACTIONS, IDENTITY_QUESTION, IDENTITY_TREE, CAPABILITY_QUESTION, CAPABILITIES_TREE, WEB_EMBEDDING_QUESTION, PLATFORM_TREE, loadDecisionSpace, nodeFileSystem, expandCapabilities, detectThemeFromText, planIntegration, parseOrigin, parseLoaderUrl, isEverfurLoaderHost, EVERFUR_LOADER_HOSTS, resolveCredential, PARTNER_KEY, runVerification, themePropFromSource, normalizeSurfaces, failedResult, buildSupportBundle, chooseWidgetAuth, DIAGNOSTICS_PATH, diagnoseFailure, parseDiagnostics, buildDiagnosisDocument, toolCodeExplanation, resolveOffline, resolveWithoutRegistry, knownCodes, loadErrorRegistryFromContract, loadErrorRegistry, resolveAfterRegistryMiss, TOOL_CODES, registryAlsoIn, buildExplanationDocument, nextActionFor, digestOfProjection, detectProject, BASE_URL_ENV_VAR, checkTenantMode, isWorkspaceRootEvidence, plannableCapabilities, blockedCapabilities, offlineDocument, toolCodeMeaning, SESSION_TOKEN, SESSION_MINT_TREE, BACKEND_LANGUAGE_QUESTION, ALL_CAPABILITIES } from './chunk-EBVP6FAD.js';
2
+ import { ENVIRONMENTS, ENVELOPE_SHAPE, SURFACES, VERIFY_IDENTITY_MODES, refusal, API_BASE_URL_BY_ENVIRONMENT, fetchContract, NO_CONTRACT_CACHE, systemClock, fetchTransport, describeFailure, loadDecisionSpaceFromContract, uuidFromKey, resolveEndpoint, createApiClient, createContractProvider, nodeContractCache, CLI_VERSION, withPrefix, ephemeralCredential, isJsonObject, REFUSAL_POLICY, error_explanation_v1_schema_default, verification_v1_schema_default, diagnosis_v1_schema_default, plan_v1_schema_default, NEXT_ACTIONS, IDENTITY_QUESTION, IDENTITY_TREE, CAPABILITY_QUESTION, CAPABILITIES_TREE, WEB_EMBEDDING_QUESTION, PLATFORM_TREE, loadDecisionSpace, nodeFileSystem, expandCapabilities, detectThemeFromText, planIntegration, parseOrigin, parseLoaderUrl, isEverfurLoaderHost, EVERFUR_LOADER_HOSTS, resolveCredential, PARTNER_KEY, runVerification, themePropFromSource, normalizeSurfaces, failedResult, buildSupportBundle, chooseWidgetAuth, DIAGNOSTICS_PATH, diagnoseFailure, parseDiagnostics, buildDiagnosisDocument, toolCodeExplanation, resolveOffline, resolveWithoutRegistry, knownCodes, loadErrorRegistryFromContract, loadErrorRegistry, resolveAfterRegistryMiss, TOOL_CODES, registryAlsoIn, buildExplanationDocument, nextActionFor, digestOfProjection, detectProject, BASE_URL_ENV_VAR, checkTenantMode, isWorkspaceRootEvidence, plannableCapabilities, blockedCapabilities, offlineDocument, toolCodeMeaning, SESSION_TOKEN, SESSION_MINT_TREE, BACKEND_LANGUAGE_QUESTION, ALL_CAPABILITIES } from './chunk-GDH5F4QE.js';
3
3
  import { z } from 'zod';
4
4
  import { McpServer, ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
5
5
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { VERIFY_IDENTITY_MODES, SURFACES, ENVIRONMENTS, BASE_URL_ENV_VAR, MIN_TIMEOUT_MS, MAX_TIMEOUT_MS, DEFAULT_TIMEOUT_MS, ALL_CAPABILITIES, expandCapabilities, errorOutcome, describeFailure, failureDetails, countsAsNotOn, diagnoseVerdict, isJsonObject, succeed, CAPABILITY_QUESTION, CAPABILITIES_TREE, WEB_EMBEDDING_QUESTION, PLATFORM_TREE, loadDecisionSpace, fetchContract, contractUnavailableOutcome, loadDecisionSpaceFromContract, parseEnvironment, checkTenantMode, detectProject, planIntegration, fail, ExitCode, DOCS_KEY, resolveContractPath, validateContractFile, buildSupportBundle, renderSupportBundle, chooseWidgetAuth, DIAGNOSTICS_PATH, diagnoseFailure, parseDiagnostics, buildDiagnosisDocument, PARTNER_KEY, SESSION_TOKEN, resolveCredential, ADMIN_TOKEN, withPrefix, parseOrigin, parseLoaderUrl, parseSurfaces, parseIdentityMode, runVerification, PARTNER_SECRET_KEY, resolveOffline, resolveWithoutRegistry, knownCodes, loadErrorRegistryFromContract, loadErrorRegistry, resolveAfterRegistryMiss, registryAlsoIn, buildExplanationDocument, renderExplanation, alsoInLines, resolveEndpoint, isCorrelatableRequestId, EMPTY_REGISTRY, createApiClient, offlineDocument, renderOffline, IDENTITY_QUESTION, IDENTITY_TREE, BACKEND_LANGUAGE_QUESTION, SESSION_MINT_TREE, CREDENTIAL_SPECS } from './chunk-EBVP6FAD.js';
2
+ import { VERIFY_IDENTITY_MODES, SURFACES, ENVIRONMENTS, BASE_URL_ENV_VAR, MIN_TIMEOUT_MS, MAX_TIMEOUT_MS, DEFAULT_TIMEOUT_MS, ALL_CAPABILITIES, expandCapabilities, errorOutcome, describeFailure, failureDetails, countsAsNotOn, diagnoseVerdict, isJsonObject, succeed, CAPABILITY_QUESTION, CAPABILITIES_TREE, WEB_EMBEDDING_QUESTION, PLATFORM_TREE, loadDecisionSpace, fetchContract, contractUnavailableOutcome, loadDecisionSpaceFromContract, parseEnvironment, checkTenantMode, detectProject, planIntegration, fail, ExitCode, DOCS_KEY, resolveContractPath, validateContractFile, buildSupportBundle, renderSupportBundle, chooseWidgetAuth, DIAGNOSTICS_PATH, diagnoseFailure, parseDiagnostics, buildDiagnosisDocument, PARTNER_KEY, SESSION_TOKEN, resolveCredential, ADMIN_TOKEN, withPrefix, parseOrigin, parseLoaderUrl, parseSurfaces, parseIdentityMode, runVerification, PARTNER_SECRET_KEY, resolveOffline, resolveWithoutRegistry, knownCodes, loadErrorRegistryFromContract, loadErrorRegistry, resolveAfterRegistryMiss, registryAlsoIn, buildExplanationDocument, renderExplanation, alsoInLines, resolveEndpoint, isCorrelatableRequestId, EMPTY_REGISTRY, createApiClient, offlineDocument, renderOffline, IDENTITY_QUESTION, IDENTITY_TREE, BACKEND_LANGUAGE_QUESTION, SESSION_MINT_TREE, CREDENTIAL_SPECS } from './chunk-GDH5F4QE.js';
3
3
  import { isAbsolute, resolve } from 'path';
4
4
 
5
5
  // src/cli/format.ts
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import { loadHostedMcpConfig, startHostedMcpServer } from './chunk-YRGSY4R2.js';
3
- import './chunk-A2QEBO5U.js';
4
- import './chunk-QCXZJW5C.js';
5
- import { CLI_VERSION } from './chunk-EBVP6FAD.js';
2
+ import { loadHostedMcpConfig, startHostedMcpServer } from './chunk-4WAGFCO2.js';
3
+ import './chunk-KIX4GJKB.js';
4
+ import './chunk-REQLWFQZ.js';
5
+ import { CLI_VERSION } from './chunk-GDH5F4QE.js';
6
6
 
7
7
  // src/bin/everfur-mcp-hosted.ts
8
8
  async function main() {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import { startRemoteMcpServer, loadRemoteMcpConfig } from './chunk-A2QEBO5U.js';
3
- import './chunk-QCXZJW5C.js';
4
- import { CLI_VERSION } from './chunk-EBVP6FAD.js';
2
+ import { startRemoteMcpServer, loadRemoteMcpConfig } from './chunk-KIX4GJKB.js';
3
+ import './chunk-REQLWFQZ.js';
4
+ import { CLI_VERSION } from './chunk-GDH5F4QE.js';
5
5
 
6
6
  // src/bin/everfur-mcp-http.ts
7
7
  async function main() {
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { runStdioServer } from './chunk-QCXZJW5C.js';
3
- import { CLI_VERSION } from './chunk-EBVP6FAD.js';
2
+ import { runStdioServer } from './chunk-REQLWFQZ.js';
3
+ import { CLI_VERSION } from './chunk-GDH5F4QE.js';
4
4
 
5
5
  // src/bin/everfur-mcp.ts
6
6
  if (process.argv.slice(2).includes("--version")) {
package/dist/everfur.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { runCli } from './chunk-2MTX6YWO.js';
3
- import { ExitCode, systemClock, fetchTransport, CLI_VERSION, nodeFileSystem, nodeContractCache } from './chunk-EBVP6FAD.js';
2
+ import { runCli } from './chunk-WDZLDFN3.js';
3
+ import { ExitCode, systemClock, fetchTransport, CLI_VERSION, nodeFileSystem, nodeContractCache } from './chunk-GDH5F4QE.js';
4
4
 
5
5
  // src/bin/everfur.ts
6
6
  async function main() {
package/dist/index.d.ts CHANGED
@@ -3647,6 +3647,6 @@ declare function parseSuppliedFacts(capabilitiesRaw: string | null, identityRaw:
3647
3647
  * install, and a bundled artifact. `tests/unit/version.test.ts` asserts this constant equals
3648
3648
  * the package.json version, so the two cannot drift.
3649
3649
  */
3650
- declare const CLI_VERSION = "0.4.1";
3650
+ declare const CLI_VERSION = "0.6.0";
3651
3651
 
3652
3652
  export { ADMIN_TOKEN, API_PREFIX, type ApiClient, type ApiFailure, type ApiResult, type ApiSuccess, BASE_URL_ENV_VAR, type BlockedCapability, type BlockedOutcome, CLI_VERSION, COMMANDS, CREDENTIAL_SPECS, type Capability, type CapabilityDiagnosis, type ClockPort, type Command, type CommandContext, type CommandOutcome, type ContractValidationOutcome, type Credential, type CredentialSpec, DEFAULT_TIMEOUT_MS, type DecisionSpace, type DecisionSpaceProvenance, type DecisionTree, type DetectedDependency, type DetectedTheme, type Diagnosis, EMPTY_REGISTRY, ERRORS_DOCUMENT_KEY, type ErrorRegistry, type ErrorRegistryEntry, ExitCode, type FileSystemPort, type FormatOptions, type FormattedOutput, type HttpMethod, type HttpRequest, type HttpResponse, IDEMPOTENT_METHODS, type IdentityMode, MISSING_FACT_NAMES, type MissingFact, type MissingFactName, type Outcome, PARTNER_KEY, PARTNER_SECRET_KEY, PLAN_DOCUMENT_KIND, PLAN_SCHEMA_VERSION, type PackageManager, type PlanDocument, type PlanInput, type PlanPrinciple, type PlanStep, type PlanWarning, type PositionalSpec, type ProjectDetection, type ProjectType, REASON_CODES, REDACTED, type ReasonCode, type RegistryLoad, type RequestSpec, type ResolvedCredential, type ResolvedEndpoint, type RunOptions, SCHEMAS, SESSION_TOKEN, type SandboxCreateStatus, type SandboxCreation, type SchemaValidation, type SchemaViolation, type SessionMintLanguage, type StepResult, THEME_TOKEN_ORDER, type TerminalOutcome, type ThemeConfidence, type ThemeDetection, type ThemeEvidence, type ThemeSource, type ThemeToken, TransportError, type TransportPort, type TreeOption, type TreeQuestion, type Verification, type VerifyStep, type WalkResult, apiUrl, buildDecisionSpace, buildDiagnosisDocument, buildExplanationDocument, buildSandboxDocument, buildVerificationDocument, clampTimeout, createApiClient, createMemoryFileSystem, createRecordingClock, describeFailure, detectProject, detectTheme, detectThemeFromText, digestOfProjection, digestsEqual, editDistance, entryFromRow, ephemeralCredential, errorCodeOf, failureDetails, failureOutcome, fetchTransport, formatOutcome, isCorrelatableRequestId, isIdempotent, isKnownReasonCode, loadDecisionSpace, loadErrorRegistry, matchCommand, missingFactsFor, nextActionFor as nextActionForErrorCode, nextActionFor$1 as nextActionForReason, nextActionsFor, nodeFileSystem, parseCapabilities, parseDiagnostics, parseIdentityMode, parseSessionMintLanguage, parseSuppliedFacts, planIntegration, projectSandboxCreate, renderDiagnosis, renderExplanation, renderPlan, renderSandboxCreate, renderVerification, resolveContractPath, resolveCredential, resolveEndpoint, runCli, runVerification, suggestCodes, systemClock, validateContractFile, validateContractPublicEnvelope, validateDiagnosisDocument, validateErrorExplanationDocument, validatePlanDocument, validateSandboxCreateDocument, validateVerificationDocument, verifyDigest, walkSingle, walkTree, withPrefix };
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- export { COMMANDS, buildSandboxDocument, buildVerificationDocument, failureOutcome, formatOutcome, matchCommand, nextActionsFor, parseCapabilities, parseIdentityMode, parseSessionMintLanguage, parseSuppliedFacts, projectSandboxCreate, renderDiagnosis, renderPlan, renderSandboxCreate, renderVerification, runCli } from './chunk-2MTX6YWO.js';
3
- export { ADMIN_TOKEN, API_PREFIX, BASE_URL_ENV_VAR, CLI_VERSION, CREDENTIAL_SPECS, DEFAULT_TIMEOUT_MS, EMPTY_REGISTRY, ERRORS_DOCUMENT_KEY, ExitCode, IDEMPOTENT_METHODS, MISSING_FACT_NAMES, PARTNER_KEY, PARTNER_SECRET_KEY, PLAN_DOCUMENT_KIND, PLAN_SCHEMA_VERSION, REASON_CODES, REDACTED, SCHEMAS, SESSION_TOKEN, THEME_TOKEN_ORDER, TransportError, apiUrl, buildDecisionSpace, buildDiagnosisDocument, buildExplanationDocument, clampTimeout, createApiClient, createMemoryFileSystem, createRecordingClock, describeFailure, detectProject, detectTheme, detectThemeFromText, digestOfProjection, digestsEqual, editDistance, entryFromRow, ephemeralCredential, errorCodeOf, failureDetails, fetchTransport, isCorrelatableRequestId, isIdempotent, isKnownReasonCode, loadDecisionSpace, loadErrorRegistry, missingFactsFor, nextActionFor2 as nextActionForErrorCode, nextActionFor as nextActionForReason, nodeFileSystem, parseDiagnostics, planIntegration, renderExplanation, resolveContractPath, resolveCredential, resolveEndpoint, runVerification, suggestCodes, systemClock, validateContractFile, validateContractPublicEnvelope, validateDiagnosisDocument, validateErrorExplanationDocument, validatePlanDocument, validateSandboxCreateDocument, validateVerificationDocument, verifyDigest, walkSingle, walkTree, withPrefix } from './chunk-EBVP6FAD.js';
2
+ export { COMMANDS, buildSandboxDocument, buildVerificationDocument, failureOutcome, formatOutcome, matchCommand, nextActionsFor, parseCapabilities, parseIdentityMode, parseSessionMintLanguage, parseSuppliedFacts, projectSandboxCreate, renderDiagnosis, renderPlan, renderSandboxCreate, renderVerification, runCli } from './chunk-WDZLDFN3.js';
3
+ export { ADMIN_TOKEN, API_PREFIX, BASE_URL_ENV_VAR, CLI_VERSION, CREDENTIAL_SPECS, DEFAULT_TIMEOUT_MS, EMPTY_REGISTRY, ERRORS_DOCUMENT_KEY, ExitCode, IDEMPOTENT_METHODS, MISSING_FACT_NAMES, PARTNER_KEY, PARTNER_SECRET_KEY, PLAN_DOCUMENT_KIND, PLAN_SCHEMA_VERSION, REASON_CODES, REDACTED, SCHEMAS, SESSION_TOKEN, THEME_TOKEN_ORDER, TransportError, apiUrl, buildDecisionSpace, buildDiagnosisDocument, buildExplanationDocument, clampTimeout, createApiClient, createMemoryFileSystem, createRecordingClock, describeFailure, detectProject, detectTheme, detectThemeFromText, digestOfProjection, digestsEqual, editDistance, entryFromRow, ephemeralCredential, errorCodeOf, failureDetails, fetchTransport, isCorrelatableRequestId, isIdempotent, isKnownReasonCode, loadDecisionSpace, loadErrorRegistry, missingFactsFor, nextActionFor2 as nextActionForErrorCode, nextActionFor as nextActionForReason, nodeFileSystem, parseDiagnostics, planIntegration, renderExplanation, resolveContractPath, resolveCredential, resolveEndpoint, runVerification, suggestCodes, systemClock, validateContractFile, validateContractPublicEnvelope, validateDiagnosisDocument, validateErrorExplanationDocument, validatePlanDocument, validateSandboxCreateDocument, validateVerificationDocument, verifyDigest, walkSingle, walkTree, withPrefix } from './chunk-GDH5F4QE.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@everfur/cli",
3
- "version": "0.4.1",
3
+ "version": "0.6.0",
4
4
  "description": "Everfur CLI: plan, verify, and diagnose an Everfur pet-health integration from the terminal.",
5
5
  "license": "MIT",
6
6
  "type": "module",