claude-use 9.7.0 → 9.7.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/cli.cjs CHANGED
@@ -33242,7 +33242,7 @@ var init_package = __esm({
33242
33242
  "package.json"() {
33243
33243
  package_default = {
33244
33244
  name: "claude-use",
33245
- version: "9.7.0",
33245
+ version: "9.7.2",
33246
33246
  description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
33247
33247
  license: "MIT",
33248
33248
  author: "Joseph Mearman <joseph@mearman.co.uk>",
@@ -62430,10 +62430,16 @@ function decideLaunch(params, readOnly) {
62430
62430
  const assembled = assembleCascade(launchCascade);
62431
62431
  const flattened = flattenLayers(assembled.layers, { home: params.farm.home });
62432
62432
  cascadeLaunch = flattened.launch;
62433
- if (readOnly) {
62433
+ if (readOnly || farmContext === void 0) {
62434
62434
  for (const diagnostic of [...assembled.diagnostics, ...flattened.diagnostics]) {
62435
- if (diagnostic.severity !== "info") {
62436
- log.warn(`agent-shim: ${diagnostic.code}: ${diagnostic.message}`);
62435
+ if (diagnostic.severity === "info") {
62436
+ continue;
62437
+ }
62438
+ const message = `agent-shim: ${diagnostic.code}: ${diagnostic.message}`;
62439
+ if (diagnostic.severity === "error" && !readOnly) {
62440
+ log.error(message);
62441
+ } else {
62442
+ log.warn(message);
62437
62443
  }
62438
62444
  }
62439
62445
  }
@@ -122847,6 +122853,7 @@ init_capability();
122847
122853
  var RC_ORPC_PATH_PREFIX = "/__agent-shim/orpc";
122848
122854
  var RC_OPENAPI_DOC_PATH = "/openapi.json";
122849
122855
  var RC_SUBSCRIBER_BUFFER_EVENTS = 100;
122856
+ var READ_ONLY_OPERATION_EXTENSION = "x-agent-shim-read-only";
122850
122857
  function doorApiBearer(headers) {
122851
122858
  const presented = headers.authorization;
122852
122859
  const bearerPrefix = "bearer ".length;
@@ -123644,7 +123651,16 @@ function createLaunchApiRouter(deps) {
123644
123651
  const authed = doorApiAuth(deps.expectedToken);
123645
123652
  return {
123646
123653
  launch: {
123647
- resolve: authed.meta(openapi({ method: "POST", path: "/rest/launch/resolve", summary: "Resolve what a launch from one directory would do, without performing it", tags: [LAUNCH_API_TAG] })).input(LaunchResolveInputSchema).output(LaunchResolveOutputSchema).handler(({ input: input2 }) => {
123654
+ resolve: authed.meta(
123655
+ openapi({
123656
+ method: "POST",
123657
+ path: "/rest/launch/resolve",
123658
+ summary: "Resolve what a launch from one directory would do, without performing it",
123659
+ tags: [LAUNCH_API_TAG],
123660
+ // A POST because the launch's environment and arguments are a body, but the answer changes nothing.
123661
+ spec: (current) => ({ ...current, [READ_ONLY_OPERATION_EXTENSION]: true })
123662
+ })
123663
+ ).input(LaunchResolveInputSchema).output(LaunchResolveOutputSchema).handler(({ input: input2 }) => {
123648
123664
  try {
123649
123665
  const { resolution, warnings } = deps.resolveLaunch({ path: input2.path, argv: input2.argv ?? [], env: input2.env ?? {} });
123650
123666
  return { ...resolution, warnings };
@@ -138365,6 +138381,7 @@ var OperationSchema = external_exports.object({
138365
138381
  summary: external_exports.string().optional(),
138366
138382
  description: external_exports.string().optional(),
138367
138383
  tags: external_exports.array(external_exports.string()).optional(),
138384
+ [READ_ONLY_OPERATION_EXTENSION]: external_exports.boolean().optional(),
138368
138385
  parameters: external_exports.array(external_exports.object({ in: external_exports.string(), name: external_exports.string(), required: external_exports.boolean().optional(), schema: external_exports.unknown().optional(), description: external_exports.string().optional() })).optional(),
138369
138386
  requestBody: external_exports.object({ content: external_exports.record(external_exports.string(), external_exports.object({ schema: JsonSchemaObjectSchema.optional() })) }).optional(),
138370
138387
  responses: external_exports.record(external_exports.string(), external_exports.object({ content: external_exports.record(external_exports.string(), external_exports.unknown()).optional() })).optional()
@@ -138413,7 +138430,7 @@ function toolsFromOpenApiDocument(document, permissions) {
138413
138430
  if (isStream(operation)) {
138414
138431
  continue;
138415
138432
  }
138416
- const readOnly = method === "get";
138433
+ const readOnly = method === "get" || operation[READ_ONLY_OPERATION_EXTENSION] === true;
138417
138434
  const tag = operation.tags?.[0];
138418
138435
  if (!permitted(tag, readOnly, permissions)) {
138419
138436
  continue;
package/dist/index.cjs CHANGED
@@ -2663,7 +2663,7 @@ var init_package = __esm({
2663
2663
  "package.json"() {
2664
2664
  package_default = {
2665
2665
  name: "claude-use",
2666
- version: "9.7.0",
2666
+ version: "9.7.2",
2667
2667
  description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
2668
2668
  license: "MIT",
2669
2669
  author: "Joseph Mearman <joseph@mearman.co.uk>",
@@ -7017,10 +7017,16 @@ function decideLaunch(params, readOnly) {
7017
7017
  const assembled = assembleCascade(launchCascade);
7018
7018
  const flattened = flattenLayers(assembled.layers, { home: params.farm.home });
7019
7019
  cascadeLaunch = flattened.launch;
7020
- if (readOnly) {
7020
+ if (readOnly || farmContext === void 0) {
7021
7021
  for (const diagnostic of [...assembled.diagnostics, ...flattened.diagnostics]) {
7022
- if (diagnostic.severity !== "info") {
7023
- log.warn(`agent-shim: ${diagnostic.code}: ${diagnostic.message}`);
7022
+ if (diagnostic.severity === "info") {
7023
+ continue;
7024
+ }
7025
+ const message = `agent-shim: ${diagnostic.code}: ${diagnostic.message}`;
7026
+ if (diagnostic.severity === "error" && !readOnly) {
7027
+ log.error(message);
7028
+ } else {
7029
+ log.warn(message);
7024
7030
  }
7025
7031
  }
7026
7032
  }
@@ -11088,6 +11094,7 @@ var RcAnswerOutputSchema = import_zod4.z.strictObject({
11088
11094
  var RC_ORPC_PATH_PREFIX = "/__agent-shim/orpc";
11089
11095
  var RC_OPENAPI_DOC_PATH = "/openapi.json";
11090
11096
  var RC_SUBSCRIBER_BUFFER_EVENTS = 100;
11097
+ var READ_ONLY_OPERATION_EXTENSION = "x-agent-shim-read-only";
11091
11098
  function doorApiBearer(headers) {
11092
11099
  const presented = headers.authorization;
11093
11100
  const bearerPrefix = "bearer ".length;
@@ -13904,7 +13911,16 @@ function createLaunchApiRouter(deps) {
13904
13911
  const authed = doorApiAuth(deps.expectedToken);
13905
13912
  return {
13906
13913
  launch: {
13907
- resolve: authed.meta((0, import_openapi6.openapi)({ method: "POST", path: "/rest/launch/resolve", summary: "Resolve what a launch from one directory would do, without performing it", tags: [LAUNCH_API_TAG] })).input(LaunchResolveInputSchema).output(LaunchResolveOutputSchema).handler(({ input }) => {
13914
+ resolve: authed.meta(
13915
+ (0, import_openapi6.openapi)({
13916
+ method: "POST",
13917
+ path: "/rest/launch/resolve",
13918
+ summary: "Resolve what a launch from one directory would do, without performing it",
13919
+ tags: [LAUNCH_API_TAG],
13920
+ // A POST because the launch's environment and arguments are a body, but the answer changes nothing.
13921
+ spec: (current) => ({ ...current, [READ_ONLY_OPERATION_EXTENSION]: true })
13922
+ })
13923
+ ).input(LaunchResolveInputSchema).output(LaunchResolveOutputSchema).handler(({ input }) => {
13908
13924
  try {
13909
13925
  const { resolution, warnings } = deps.resolveLaunch({ path: input.path, argv: input.argv ?? [], env: input.env ?? {} });
13910
13926
  return { ...resolution, warnings };
package/dist/index.mjs CHANGED
@@ -2639,7 +2639,7 @@ var init_package = __esm({
2639
2639
  "package.json"() {
2640
2640
  package_default = {
2641
2641
  name: "claude-use",
2642
- version: "9.7.0",
2642
+ version: "9.7.2",
2643
2643
  description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
2644
2644
  license: "MIT",
2645
2645
  author: "Joseph Mearman <joseph@mearman.co.uk>",
@@ -6992,10 +6992,16 @@ function decideLaunch(params, readOnly) {
6992
6992
  const assembled = assembleCascade(launchCascade);
6993
6993
  const flattened = flattenLayers(assembled.layers, { home: params.farm.home });
6994
6994
  cascadeLaunch = flattened.launch;
6995
- if (readOnly) {
6995
+ if (readOnly || farmContext === void 0) {
6996
6996
  for (const diagnostic of [...assembled.diagnostics, ...flattened.diagnostics]) {
6997
- if (diagnostic.severity !== "info") {
6998
- log.warn(`agent-shim: ${diagnostic.code}: ${diagnostic.message}`);
6997
+ if (diagnostic.severity === "info") {
6998
+ continue;
6999
+ }
7000
+ const message = `agent-shim: ${diagnostic.code}: ${diagnostic.message}`;
7001
+ if (diagnostic.severity === "error" && !readOnly) {
7002
+ log.error(message);
7003
+ } else {
7004
+ log.warn(message);
6999
7005
  }
7000
7006
  }
7001
7007
  }
@@ -10716,6 +10722,7 @@ var RcAnswerOutputSchema = z4.strictObject({
10716
10722
  var RC_ORPC_PATH_PREFIX = "/__agent-shim/orpc";
10717
10723
  var RC_OPENAPI_DOC_PATH = "/openapi.json";
10718
10724
  var RC_SUBSCRIBER_BUFFER_EVENTS = 100;
10725
+ var READ_ONLY_OPERATION_EXTENSION = "x-agent-shim-read-only";
10719
10726
  function doorApiBearer(headers) {
10720
10727
  const presented = headers.authorization;
10721
10728
  const bearerPrefix = "bearer ".length;
@@ -13532,7 +13539,16 @@ function createLaunchApiRouter(deps) {
13532
13539
  const authed = doorApiAuth(deps.expectedToken);
13533
13540
  return {
13534
13541
  launch: {
13535
- resolve: authed.meta(openapi6({ method: "POST", path: "/rest/launch/resolve", summary: "Resolve what a launch from one directory would do, without performing it", tags: [LAUNCH_API_TAG] })).input(LaunchResolveInputSchema).output(LaunchResolveOutputSchema).handler(({ input }) => {
13542
+ resolve: authed.meta(
13543
+ openapi6({
13544
+ method: "POST",
13545
+ path: "/rest/launch/resolve",
13546
+ summary: "Resolve what a launch from one directory would do, without performing it",
13547
+ tags: [LAUNCH_API_TAG],
13548
+ // A POST because the launch's environment and arguments are a body, but the answer changes nothing.
13549
+ spec: (current) => ({ ...current, [READ_ONLY_OPERATION_EXTENSION]: true })
13550
+ })
13551
+ ).input(LaunchResolveInputSchema).output(LaunchResolveOutputSchema).handler(({ input }) => {
13536
13552
  try {
13537
13553
  const { resolution, warnings } = deps.resolveLaunch({ path: input.path, argv: input.argv ?? [], env: input.env ?? {} });
13538
13554
  return { ...resolution, warnings };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-use",
3
- "version": "9.7.0",
3
+ "version": "9.7.2",
4
4
  "description": "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
5
5
  "license": "MIT",
6
6
  "author": "Joseph Mearman <joseph@mearman.co.uk>",