@caplets/core 0.25.0 → 0.25.1

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.js CHANGED
@@ -1,9 +1,9 @@
1
- import { $ as decodeDirectResourceUri, $t as ElicitResultSchema, A as nativeCapletToolDescription, An as objectFromShape, At as defaultCacheBaseDir, B as QuickJsCodeModeSandbox, Bt as assertClientRequestTaskCapability, C as resolveRemoteMode, Cn as getLiteralValue, Ct as startOAuthFlow, D as parseServerBaseUrl, Dn as isSchemaOptional, Dt as DEFAULT_AUTH_DIR, E as isLoopbackHost, En as getSchemaDescription, Et as readTokenBundle, F as codeModeRunInputSchema, Ft as resolveConfigPath, G as CodeModeLogStore, Gt as toJsonSchemaCompat, H as createCodeModeCapletsApi, Ht as AjvJsonSchemaValidator, I as codeModeRunParamsSchema, It as resolveProjectCapletsRoot, J as generateCodeModeDeclarations, Jt as CompleteRequestSchema, K as redactCodeModeLogText, Kt as CallToolRequestSchema, L as emptyCodeModeRunMeta, Lt as resolveProjectConfigPath, Mn as safeParseAsync, Mt as defaultConfigPath, Nt as defaultStateBaseDir, O as resolveCapletsServer, On as isZ4Schema, Pt as resolveCapletsRoot, Q as resolveExposure, R as runCodeMode, Rt as ReadBuffer, S as resolveHostedCloudRemote, Sn as isJSONRPCResultResponse, St as startGenericOAuthFlow, T as controlUrlForBase, Tn as getParseErrorMessage, Tt as isTokenBundleExpired, U as listCodeModeCallableCaplets, Ut as Protocol, V as diagnoseCodeModeTypeScript, Vt as assertToolsCallTaskCapability, W as CodeModeJournalStore, Wt as mergeCapabilities, X as minifyCodeModeDeclarationText, Xt as CreateMessageResultWithToolsSchema, Y as generateCodeModeRunToolDescription, Yt as CreateMessageResultSchema, Z as CapletsEngine, Zt as CreateTaskResultSchema, _n as assertCompleteRequestPrompt, _t as markdownCallToolResultContent, a as CloudAuthStore, an as JSONRPCMessageSchema, at as capabilityDescription, b as normalizeRemoteProfileHostUrl, bn as isJSONRPCErrorResponse, bt as runGenericOAuthFlow, c as redactedCloudAuthStatus, cn as ListResourceTemplatesRequestSchema, ct as loadConfigWithSources, d as projectBindingError, dn as ListToolsRequestSchema, dt as loadProjectConfig, en as EmptyResultSchema, et as directResourceUriMatchesTemplate, f as projectBindingRecovery, fn as LoggingLevelSchema, ft as parseConfig, g as buildProjectSyncManifest, gn as SetLevelRequestSchema, gt as hasRenderableStructuredContent, hn as SUPPORTED_PROTOCOL_VERSIONS, ht as loadCapletFilesFromMap, i as createRemoteProfileStore, in as InitializedNotificationSchema, it as ServerRegistry, j as nativeCapletToolName, jn as safeParse, jt as defaultConfigBaseDir, k as nativeCapletPromptGuidance, kn as normalizeObjectSchema, kt as DEFAULT_OBSERVED_OUTPUT_SHAPE_CACHE_DIR, l as PROJECT_BINDING_ERROR_CODES, ln as ListResourcesRequestSchema, lt as loadGlobalConfig, mn as ReadResourceRequestSchema, mt as validateCapletFile, n as resolveRemoteSelection, nn as GetPromptRequestSchema, nt as fingerprintProjectRoot, o as cloudAuthPath, on as LATEST_PROTOCOL_VERSION, ot as GoogleDiscoveryManager, p as CloudAuthClient, pn as McpError, pt as discoverCapletFiles, q as codeModeDeclarationHash, qt as CallToolResultSchema, r as cloudCredentialsFromRemoteProfile, rn as InitializeRequestSchema, rt as handleServerTool, s as migrateCredentials, sn as ListPromptsRequestSchema, st as loadConfig, t as createNativeCapletsService, tn as ErrorCode, tt as findProjectRoot, u as ProjectBindingError, un as ListRootsResultSchema, ut as loadLocalOverlayConfigWithSources, v as hostedCloudWorkspaceFromRemoteUrl, vn as assertCompleteRequestResourceTemplate, vt as markdownStructuredContent, w as appendBasePath, wn as getObjectShape, wt as deleteTokenBundle, x as resolveCapletsRemote, xn as isJSONRPCRequest, xt as runOAuthFlow, y as isCapletsCloudUrl, yn as isInitializeRequest, yt as refreshOAuthTokenBundle, z as CodeModeSessionManager, zt as serializeMessage } from "./service-DjwB8aiW.js";
2
- import { _ as record, b as unknown, d as literal, m as object, n as ZodOptional, o as array, p as number, r as _enum, s as boolean, v as string, x as url } from "./schemas-C0PNPwjS.js";
3
- import { f as redactSecrets$1, i as SERVER_ID_PATTERN, l as CAPLETS_ERROR_CODES, p as toSafeError, u as CapletsError } from "./validation-DgxCzt-A.js";
1
+ import { $ as decodeDirectResourceUri, $t as ElicitResultSchema, A as nativeCapletToolDescription, An as objectFromShape, At as defaultCacheBaseDir, B as QuickJsCodeModeSandbox, Bt as assertClientRequestTaskCapability, C as resolveRemoteMode, Cn as getLiteralValue, Ct as startOAuthFlow, D as parseServerBaseUrl, Dn as isSchemaOptional, Dt as DEFAULT_AUTH_DIR, E as isLoopbackHost, En as getSchemaDescription, Et as readTokenBundle, F as codeModeRunInputSchema, Ft as resolveConfigPath, G as CodeModeLogStore, Gt as toJsonSchemaCompat, H as createCodeModeCapletsApi, Ht as AjvJsonSchemaValidator, I as codeModeRunParamsSchema, It as resolveProjectCapletsRoot, J as generateCodeModeDeclarations, Jt as CompleteRequestSchema, K as redactCodeModeLogText, Kt as CallToolRequestSchema, L as emptyCodeModeRunMeta, Lt as resolveProjectConfigPath, Mn as safeParseAsync, Mt as defaultConfigPath, Nt as defaultStateBaseDir, O as resolveCapletsServer, On as isZ4Schema, Pt as resolveCapletsRoot, Q as resolveExposure, R as runCodeMode, Rt as ReadBuffer, S as resolveHostedCloudRemote, Sn as isJSONRPCResultResponse, St as startGenericOAuthFlow, T as controlUrlForBase, Tn as getParseErrorMessage, Tt as isTokenBundleExpired, U as listCodeModeCallableCaplets, Ut as Protocol, V as diagnoseCodeModeTypeScript, Vt as assertToolsCallTaskCapability, W as CodeModeJournalStore, Wt as mergeCapabilities, X as minifyCodeModeDeclarationText, Xt as CreateMessageResultWithToolsSchema, Y as generateCodeModeRunToolDescription, Yt as CreateMessageResultSchema, Z as CapletsEngine, Zt as CreateTaskResultSchema, _n as assertCompleteRequestPrompt, _t as markdownCallToolResultContent, a as CloudAuthStore, an as JSONRPCMessageSchema, at as capabilityDescription, b as normalizeRemoteProfileHostUrl, bn as isJSONRPCErrorResponse, bt as runGenericOAuthFlow, c as redactedCloudAuthStatus, cn as ListResourceTemplatesRequestSchema, ct as loadConfigWithSources, d as projectBindingError, dn as ListToolsRequestSchema, dt as loadProjectConfig, en as EmptyResultSchema, et as directResourceUriMatchesTemplate, f as projectBindingRecovery, fn as LoggingLevelSchema, ft as parseConfig, g as buildProjectSyncManifest, gn as SetLevelRequestSchema, gt as hasRenderableStructuredContent, hn as SUPPORTED_PROTOCOL_VERSIONS, ht as loadCapletFilesFromMap, i as createRemoteProfileStore, in as InitializedNotificationSchema, it as ServerRegistry, j as nativeCapletToolName, jn as safeParse, jt as defaultConfigBaseDir, k as nativeCapletPromptGuidance, kn as normalizeObjectSchema, kt as DEFAULT_OBSERVED_OUTPUT_SHAPE_CACHE_DIR, l as PROJECT_BINDING_ERROR_CODES, ln as ListResourcesRequestSchema, lt as loadGlobalConfig, mn as ReadResourceRequestSchema, mt as validateCapletFile, n as resolveRemoteSelection, nn as GetPromptRequestSchema, nt as fingerprintProjectRoot, o as cloudAuthPath, on as LATEST_PROTOCOL_VERSION, ot as GoogleDiscoveryManager, p as CloudAuthClient, pn as McpError, pt as discoverCapletFiles, q as codeModeDeclarationHash, qt as CallToolResultSchema, r as cloudCredentialsFromRemoteProfile, rn as InitializeRequestSchema, rt as handleServerTool, s as migrateCredentials, sn as ListPromptsRequestSchema, st as loadConfig, t as createNativeCapletsService, tn as ErrorCode, tt as findProjectRoot, u as ProjectBindingError, un as ListRootsResultSchema, ut as loadLocalOverlayConfigWithSources, v as hostedCloudWorkspaceFromRemoteUrl, vn as assertCompleteRequestResourceTemplate, vt as markdownStructuredContent, w as appendBasePath, wn as getObjectShape, wt as deleteTokenBundle, x as resolveCapletsRemote, xn as isJSONRPCRequest, xt as runOAuthFlow, y as isCapletsCloudUrl, yn as isInitializeRequest, yt as refreshOAuthTokenBundle, z as CodeModeSessionManager, zt as serializeMessage } from "./service-Ut6dN9M8.js";
2
+ import { _ as record, b as unknown, d as literal, m as object, n as ZodOptional, o as array, p as number, r as _enum, s as boolean, v as string, x as url } from "./schemas-BoqMu4MG.js";
3
+ import { f as redactSecrets$1, i as SERVER_ID_PATTERN, l as CAPLETS_ERROR_CODES, p as toSafeError, u as CapletsError } from "./validation-C4tYXw6G.js";
4
4
  import { generatedToolInputJsonSchemaForCaplet, generatedToolInputSchema, generatedToolInputSchemaForCaplet } from "./generated-tool-input-schema.js";
5
- import { f as observedOutputShapeKey, g as stableJsonStringify, h as schemaHash, i as observeOutputShape, u as FileObservedOutputShapeStore } from "./observed-output-shapes-D2k2-q8K.js";
6
- import { a as formatCapletList, c as resolveCliConfigPaths, l as cliCommands$1, n as completionScript, o as formatConfigPaths, s as listCaplets, t as completeCliWords, u as completionShells } from "./completion-DrPr2vYw.js";
5
+ import { f as observedOutputShapeKey, g as stableJsonStringify, h as schemaHash, i as observeOutputShape, u as FileObservedOutputShapeStore } from "./observed-output-shapes-DuP7mJQf.js";
6
+ import { a as formatCapletList, c as resolveCliConfigPaths, l as cliCommands$1, n as completionScript, o as formatConfigPaths, s as listCaplets, t as completeCliWords, u as completionShells } from "./completion-De4t5MtT.js";
7
7
  import { n as normalizeCapletSourcePath, t as FilesystemCapletSource } from "./filesystem-Kkg32TOJ.js";
8
8
  import { parseConfig as parseConfig$1 } from "./config-runtime.js";
9
9
  import fs, { accessSync, chmodSync, closeSync, constants, copyFileSync, cpSync, existsSync, fstatSync, lstatSync, mkdirSync, mkdtempSync, openSync, readFileSync, readSync, readdirSync, readlinkSync, realpathSync, renameSync, rmSync, statSync, watch, writeFileSync, writeSync } from "node:fs";
@@ -1553,7 +1553,7 @@ const EMPTY_COMPLETION_RESULT = { completion: {
1553
1553
  } };
1554
1554
  //#endregion
1555
1555
  //#region package.json
1556
- var version = "0.25.0";
1556
+ var version = "0.25.1";
1557
1557
  //#endregion
1558
1558
  //#region src/serve/session.ts
1559
1559
  var CapletsMcpSession = class {
@@ -4853,7 +4853,7 @@ new Command();
4853
4853
  //#region src/cli/author.ts
4854
4854
  function authorCliCaplet(id, options = {}) {
4855
4855
  const repo = resolve(options.repo ?? process.cwd());
4856
- const include = options.include !== void 0 ? parseInclude(options.include) : options.command ? /* @__PURE__ */ new Set() : new Set([
4856
+ const include = options.include !== void 0 ? parseInclude(options.include) : options.command ? /* @__PURE__ */ new Set() : /* @__PURE__ */ new Set([
4857
4857
  "git",
4858
4858
  "gh",
4859
4859
  "package"
@@ -5317,7 +5317,7 @@ function isUrlLike(value) {
5317
5317
  //#endregion
5318
5318
  //#region src/cli/cloud-add.ts
5319
5319
  const MAX_CLOUD_CAPLET_BUNDLE_BYTES = 2 * 1024 * 1024;
5320
- const SKIPPED_DIRECTORY_NAMES = new Set([
5320
+ const SKIPPED_DIRECTORY_NAMES = /* @__PURE__ */ new Set([
5321
5321
  ".git",
5322
5322
  "node_modules",
5323
5323
  "auth"
@@ -6166,7 +6166,7 @@ Description=Caplets daemon
6166
6166
 
6167
6167
  [Service]
6168
6168
  Type=simple
6169
- WorkingDirectory=${systemdQuote(config.command.workingDirectory)}
6169
+ WorkingDirectory=${systemdEscape(config.command.workingDirectory, true)}
6170
6170
  ${env ? `${env}\n` : ""}ExecStart=${[command.executable, ...command.args].map((value) => systemdQuote(value)).join(" ")}
6171
6171
  Restart=on-failure
6172
6172
  StandardOutput=append:${systemdEscape(config.paths.stdoutLog, true)}
@@ -7109,7 +7109,7 @@ function isTransientRunnerPath(path) {
7109
7109
  return /(?:^|\/)_npx(?:\/|$)/u.test(normalized) || /(?:^|\/)dlx-[^/]+(?:\/|$)/u.test(normalized);
7110
7110
  }
7111
7111
  //#endregion
7112
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/compose.js
7112
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/compose.js
7113
7113
  var compose = (middleware, onError, onNotFound) => {
7114
7114
  return (context, next) => {
7115
7115
  let index = -1;
@@ -7140,7 +7140,7 @@ var compose = (middleware, onError, onNotFound) => {
7140
7140
  };
7141
7141
  };
7142
7142
  //#endregion
7143
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/http-exception.js
7143
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/http-exception.js
7144
7144
  var HTTPException = class extends Error {
7145
7145
  res;
7146
7146
  status;
@@ -7168,10 +7168,10 @@ var HTTPException = class extends Error {
7168
7168
  }
7169
7169
  };
7170
7170
  //#endregion
7171
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/request/constants.js
7171
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/request/constants.js
7172
7172
  var GET_MATCH_RESULT = /* @__PURE__ */ Symbol();
7173
7173
  //#endregion
7174
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/utils/body.js
7174
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/utils/body.js
7175
7175
  var parseBody = async (request, options = /* @__PURE__ */ Object.create(null)) => {
7176
7176
  const { all = false, dot = false } = options;
7177
7177
  const contentType = (request instanceof HonoRequest ? request.raw.headers : request.headers).get("Content-Type");
@@ -7219,7 +7219,7 @@ var handleParsingNestedValues = (form, key, value) => {
7219
7219
  });
7220
7220
  };
7221
7221
  //#endregion
7222
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/utils/url.js
7222
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/utils/url.js
7223
7223
  var splitPath = (path) => {
7224
7224
  const paths = path.split("/");
7225
7225
  if (paths[0] === "") paths.shift();
@@ -7383,7 +7383,7 @@ var getQueryParams = (url, key) => {
7383
7383
  };
7384
7384
  var decodeURIComponent_ = decodeURIComponent;
7385
7385
  //#endregion
7386
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/request.js
7386
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/request.js
7387
7387
  var tryDecodeURIComponent = (str) => tryDecode(str, decodeURIComponent_);
7388
7388
  var HonoRequest = class {
7389
7389
  /**
@@ -7655,7 +7655,7 @@ var HonoRequest = class {
7655
7655
  }
7656
7656
  };
7657
7657
  //#endregion
7658
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/utils/html.js
7658
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/utils/html.js
7659
7659
  var HtmlEscapedCallbackPhase = {
7660
7660
  Stringify: 1,
7661
7661
  BeforeStream: 2,
@@ -7685,7 +7685,7 @@ var resolveCallback = async (str, phase, preserveCallbacks, context, buffer) =>
7685
7685
  else return resStr;
7686
7686
  };
7687
7687
  //#endregion
7688
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/context.js
7688
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/context.js
7689
7689
  var TEXT_PLAIN = "text/plain; charset=UTF-8";
7690
7690
  var setDefaultContentType = (contentType, headers) => {
7691
7691
  return {
@@ -8046,7 +8046,7 @@ var Context = class {
8046
8046
  };
8047
8047
  };
8048
8048
  //#endregion
8049
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/router.js
8049
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/router.js
8050
8050
  var METHODS = [
8051
8051
  "get",
8052
8052
  "post",
@@ -8058,10 +8058,10 @@ var METHODS = [
8058
8058
  var MESSAGE_MATCHER_IS_ALREADY_BUILT = "Can not add a route since the matcher is already built.";
8059
8059
  var UnsupportedPathError = class extends Error {};
8060
8060
  //#endregion
8061
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/utils/constants.js
8061
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/utils/constants.js
8062
8062
  var COMPOSED_HANDLER = "__COMPOSED_HANDLER";
8063
8063
  //#endregion
8064
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/hono-base.js
8064
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/hono-base.js
8065
8065
  var notFoundHandler = (c) => {
8066
8066
  return c.text("404 Not Found", 404);
8067
8067
  };
@@ -8395,7 +8395,7 @@ var Hono$1 = class _Hono {
8395
8395
  };
8396
8396
  };
8397
8397
  //#endregion
8398
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/router/reg-exp-router/matcher.js
8398
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/router/reg-exp-router/matcher.js
8399
8399
  var emptyParam = [];
8400
8400
  function match(method, path) {
8401
8401
  const matchers = this.buildAllMatchers();
@@ -8412,7 +8412,7 @@ function match(method, path) {
8412
8412
  return match2(method, path);
8413
8413
  }
8414
8414
  //#endregion
8415
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/router/reg-exp-router/node.js
8415
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/router/reg-exp-router/node.js
8416
8416
  var LABEL_REG_EXP_STR = "[^/]+";
8417
8417
  var ONLY_WILDCARD_REG_EXP_STR = ".*";
8418
8418
  var TAIL_WILDCARD_REG_EXP_STR = "(?:|/.*)";
@@ -8491,7 +8491,7 @@ var Node$1 = class _Node {
8491
8491
  }
8492
8492
  };
8493
8493
  //#endregion
8494
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/router/reg-exp-router/trie.js
8494
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/router/reg-exp-router/trie.js
8495
8495
  var Trie = class {
8496
8496
  #context = { varIndex: 0 };
8497
8497
  #root = new Node$1();
@@ -8549,7 +8549,7 @@ var Trie = class {
8549
8549
  }
8550
8550
  };
8551
8551
  //#endregion
8552
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/router/reg-exp-router/router.js
8552
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/router/reg-exp-router/router.js
8553
8553
  var nullMatcher = [
8554
8554
  /^$/,
8555
8555
  [],
@@ -8680,7 +8680,7 @@ var RegExpRouter = class {
8680
8680
  }
8681
8681
  };
8682
8682
  //#endregion
8683
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/router/smart-router/router.js
8683
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/router/smart-router/router.js
8684
8684
  var SmartRouter = class {
8685
8685
  name = "SmartRouter";
8686
8686
  #routers = [];
@@ -8727,7 +8727,7 @@ var SmartRouter = class {
8727
8727
  }
8728
8728
  };
8729
8729
  //#endregion
8730
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/router/trie-router/node.js
8730
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/router/trie-router/node.js
8731
8731
  var emptyParams = /* @__PURE__ */ Object.create(null);
8732
8732
  var hasChildren = (children) => {
8733
8733
  for (const _ in children) return true;
@@ -8880,7 +8880,7 @@ var Node = class _Node {
8880
8880
  }
8881
8881
  };
8882
8882
  //#endregion
8883
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/router/trie-router/router.js
8883
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/router/trie-router/router.js
8884
8884
  var TrieRouter = class {
8885
8885
  name = "TrieRouter";
8886
8886
  #node;
@@ -8900,7 +8900,7 @@ var TrieRouter = class {
8900
8900
  }
8901
8901
  };
8902
8902
  //#endregion
8903
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/hono.js
8903
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/hono.js
8904
8904
  var Hono = class extends Hono$1 {
8905
8905
  /**
8906
8906
  * Creates an instance of the Hono class.
@@ -8941,7 +8941,7 @@ object({
8941
8941
  client_secret: string().optional()
8942
8942
  });
8943
8943
  //#endregion
8944
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/utils/stream.js
8944
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/utils/stream.js
8945
8945
  var StreamingApi = class {
8946
8946
  writer;
8947
8947
  encoder;
@@ -9014,7 +9014,7 @@ var StreamingApi = class {
9014
9014
  }
9015
9015
  };
9016
9016
  //#endregion
9017
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/helper/streaming/sse.js
9017
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/helper/streaming/sse.js
9018
9018
  var SSEStreamingApi = class extends StreamingApi {
9019
9019
  constructor(writable, readable) {
9020
9020
  super(writable, readable);
@@ -9038,7 +9038,7 @@ var SSEStreamingApi = class extends StreamingApi {
9038
9038
  }
9039
9039
  };
9040
9040
  //#endregion
9041
- //#region ../../node_modules/.pnpm/@hono+mcp@0.3.0_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__hono-rate-limiter@0.5.3_hon_bab5e566be142c737b40f97c4dcddd20/node_modules/@hono/mcp/dist/index.js
9041
+ //#region ../../node_modules/.pnpm/@hono+mcp@0.3.0_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__hono-rate-limiter@0.5.3_hon_a02bf6202dadf168876634e2ff64c917/node_modules/@hono/mcp/dist/index.js
9042
9042
  let isOldBunVersion = () => {
9043
9043
  const version = typeof Bun !== "undefined" ? Bun.version : void 0;
9044
9044
  if (version === void 0) return false;
@@ -9479,7 +9479,7 @@ var StreamableHTTPTransport = class {
9479
9479
  }
9480
9480
  };
9481
9481
  //#endregion
9482
- //#region ../../node_modules/.pnpm/@hono+node-server@2.0.4_hono@4.12.25/node_modules/@hono/node-server/dist/index.mjs
9482
+ //#region ../../node_modules/.pnpm/@hono+node-server@2.0.5_hono@4.12.26/node_modules/@hono/node-server/dist/index.mjs
9483
9483
  var RequestError = class extends Error {
9484
9484
  constructor(message, options) {
9485
9485
  super(message, options);
@@ -9952,7 +9952,7 @@ const parseRedirectUrl = (url) => {
9952
9952
  if (validRedirectUrl.test(url)) return url;
9953
9953
  return new URL(url).href;
9954
9954
  };
9955
- const validRedirectStatuses = new Set([
9955
+ const validRedirectStatuses = /* @__PURE__ */ new Set([
9956
9956
  301,
9957
9957
  302,
9958
9958
  303,
@@ -10277,7 +10277,7 @@ const getRequestListener = (fetchCallback, options = {}) => {
10277
10277
  globalThis.CloseEvent;
10278
10278
  const CONNECTION_SYMBOL_KEY = Symbol("CONNECTION_SYMBOL_KEY");
10279
10279
  const WAIT_FOR_WEBSOCKET_SYMBOL = Symbol("WAIT_FOR_WEBSOCKET_SYMBOL");
10280
- const responseHeadersToSkip = new Set([
10280
+ const responseHeadersToSkip = /* @__PURE__ */ new Set([
10281
10281
  "connection",
10282
10282
  "content-length",
10283
10283
  "keep-alive",
@@ -10402,7 +10402,7 @@ const serve = (options, listeningListener) => {
10402
10402
  return server;
10403
10403
  };
10404
10404
  //#endregion
10405
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/utils/color.js
10405
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/utils/color.js
10406
10406
  function getColorEnabled() {
10407
10407
  const { process, Deno } = globalThis;
10408
10408
  return !(typeof Deno?.noColor === "boolean" ? Deno.noColor : process !== void 0 ? "NO_COLOR" in process?.env : false);
@@ -10419,7 +10419,7 @@ async function getColorEnabledAsync() {
10419
10419
  })() : !getColorEnabled());
10420
10420
  }
10421
10421
  //#endregion
10422
- //#region ../../node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/middleware/logger/index.js
10422
+ //#region ../../node_modules/.pnpm/hono@4.12.26/node_modules/hono/dist/middleware/logger/index.js
10423
10423
  var humanize = (times) => {
10424
10424
  const [delimiter, separator] = [",", "."];
10425
10425
  return times.map((v) => v.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1" + delimiter)).join(separator);
@@ -11010,7 +11010,7 @@ function nearestExistingParent(path) {
11010
11010
  }
11011
11011
  //#endregion
11012
11012
  //#region src/remote-control/dispatch.ts
11013
- const ENGINE_COMMANDS = new Set([
11013
+ const ENGINE_COMMANDS = /* @__PURE__ */ new Set([
11014
11014
  "inspect",
11015
11015
  "check",
11016
11016
  "tools",
@@ -12190,6 +12190,8 @@ function formatHost$1(host) {
12190
12190
  //#endregion
12191
12191
  //#region src/daemon/validation.ts
12192
12192
  async function validateDaemonCommand(config, options = {}) {
12193
+ const bindHost = await validateBindHost(config);
12194
+ if (!bindHost.ok) return bindHost;
12193
12195
  const { spawn } = await import("node:child_process");
12194
12196
  const command = validationSpawnCommand(config);
12195
12197
  const child = spawn(command.command, command.args, {
@@ -12230,6 +12232,7 @@ async function validateDaemonCommand(config, options = {}) {
12230
12232
  if (processDone) break;
12231
12233
  last = await Promise.race([probeDaemonHealth(config, {
12232
12234
  ...options.fetch ? { fetch: options.fetch } : {},
12235
+ skipBindHostValidation: true,
12233
12236
  timeoutMs: 750
12234
12237
  }), processFailure]);
12235
12238
  if (last.ok) return await Promise.race([processFailure, sleep$2(options.successSettleMs ?? 1e3).then(() => void 0)]) ?? last;
@@ -12249,7 +12252,35 @@ async function validateDaemonCommand(config, options = {}) {
12249
12252
  }
12250
12253
  }
12251
12254
  }
12255
+ async function validateBindHost(config) {
12256
+ const { createServer } = await import("node:net");
12257
+ const server = createServer();
12258
+ try {
12259
+ await new Promise((resolve, reject) => {
12260
+ server.once("error", reject);
12261
+ server.listen(0, config.serve.host, () => resolve());
12262
+ });
12263
+ return {
12264
+ ok: true,
12265
+ url: healthUrl(config)
12266
+ };
12267
+ } catch (error) {
12268
+ return {
12269
+ ok: false,
12270
+ url: healthUrl(config),
12271
+ error: `bind host validation failed: ${error instanceof Error ? error.message : String(error)}`
12272
+ };
12273
+ } finally {
12274
+ if (server.listening) await new Promise((resolve, reject) => {
12275
+ server.close((error) => error ? reject(error) : resolve());
12276
+ });
12277
+ }
12278
+ }
12252
12279
  async function probeDaemonHealth(config, options = {}) {
12280
+ if (options.skipBindHostValidation !== true) {
12281
+ const bindHost = await validateBindHost(config);
12282
+ if (!bindHost.ok) return bindHost;
12283
+ }
12253
12284
  const fetchImpl = options.fetch ?? fetch;
12254
12285
  const url = healthUrl(config, options.port);
12255
12286
  try {
@@ -12441,7 +12472,7 @@ async function temporaryValidationConfig(config, options) {
12441
12472
  };
12442
12473
  }
12443
12474
  async function validateInstallCommand(input) {
12444
- const useTemporaryPort = input.existingNativeRunning && (!input.existing || input.existing.serve.port === input.config.serve.port);
12475
+ const useTemporaryPort = input.existingNativeRunning && runningDaemonMayOccupyRequestedAddress(input.existing, input.config);
12445
12476
  const attempts = useTemporaryPort ? 3 : 1;
12446
12477
  let last;
12447
12478
  for (let attempt = 0; attempt < attempts; attempt += 1) {
@@ -12455,6 +12486,17 @@ async function validateInstallCommand(input) {
12455
12486
  error: "daemon install validation did not run"
12456
12487
  };
12457
12488
  }
12489
+ function runningDaemonMayOccupyRequestedAddress(existing, config) {
12490
+ if (!existing) return true;
12491
+ return existing.serve.port === config.serve.port && bindHostsMayOverlap(existing.serve.host, config.serve.host);
12492
+ }
12493
+ function bindHostsMayOverlap(left, right) {
12494
+ return left === right || isWildcardBindHost(left) || isWildcardBindHost(right);
12495
+ }
12496
+ function isWildcardBindHost(host) {
12497
+ const normalized = host.toLowerCase();
12498
+ return normalized === "0.0.0.0" || normalized === "::" || normalized === "[::]";
12499
+ }
12458
12500
  async function waitForDaemonHealth(config, options) {
12459
12501
  const deadline = Date.now() + (options.healthTimeoutMs ?? 1e4);
12460
12502
  const intervalMs = options.healthIntervalMs ?? 200;
@@ -16214,12 +16256,12 @@ function localShadowedCompletionTarget(words, config) {
16214
16256
  const command = words[0];
16215
16257
  const target = words[1];
16216
16258
  if (!command || !target || target.startsWith("-")) return;
16217
- const qualifiedCommands = new Set([
16259
+ const qualifiedCommands = /* @__PURE__ */ new Set([
16218
16260
  cliCommands$1.getTool,
16219
16261
  cliCommands$1.callTool,
16220
16262
  cliCommands$1.getPrompt
16221
16263
  ]);
16222
- const capletCommands = new Set([
16264
+ const capletCommands = /* @__PURE__ */ new Set([
16223
16265
  cliCommands$1.inspect,
16224
16266
  cliCommands$1.checkBackend,
16225
16267
  cliCommands$1.listTools,
@@ -17214,12 +17256,12 @@ function trimTrailingSlash(pathname) {
17214
17256
  }
17215
17257
  //#endregion
17216
17258
  //#region src/project-binding/mutagen.ts
17217
- const readyStatuses = new Set([
17259
+ const readyStatuses = /* @__PURE__ */ new Set([
17218
17260
  "watching",
17219
17261
  "ready",
17220
17262
  "ok"
17221
17263
  ]);
17222
- const syncingStatuses = new Set([
17264
+ const syncingStatuses = /* @__PURE__ */ new Set([
17223
17265
  "connecting",
17224
17266
  "halted on root",
17225
17267
  "reconciling",
package/dist/native.js CHANGED
@@ -1,4 +1,4 @@
1
- import { A as nativeCapletToolDescription, M as nativeCapletsSystemGuidance, N as nativeCodeModeToolId, P as nativeCodeModeToolName, _ as resolveNativeCapletsServiceOptions, h as createSdkRemoteCapletsClient, j as nativeCapletToolName, k as nativeCapletPromptGuidance, m as RemoteNativeCapletsService, t as createNativeCapletsService } from "./service-DjwB8aiW.js";
1
+ import { A as nativeCapletToolDescription, M as nativeCapletsSystemGuidance, N as nativeCodeModeToolId, P as nativeCodeModeToolName, _ as resolveNativeCapletsServiceOptions, h as createSdkRemoteCapletsClient, j as nativeCapletToolName, k as nativeCapletPromptGuidance, m as RemoteNativeCapletsService, t as createNativeCapletsService } from "./service-Ut6dN9M8.js";
2
2
  import { generatedToolInputJsonSchema, generatedToolInputSchema } from "./generated-tool-input-schema.js";
3
3
  //#region src/native/process-cleanup.ts
4
4
  function registerNativeCapletsProcessCleanup(service, options = {}) {
@@ -24,7 +24,7 @@ function mergeJsonShapes(left, right) {
24
24
  }
25
25
  function mergeObjects(left, right) {
26
26
  const fields = {};
27
- const keys = [...new Set([...Object.keys(left.fields), ...Object.keys(right.fields)])].sort();
27
+ const keys = [.../* @__PURE__ */ new Set([...Object.keys(left.fields), ...Object.keys(right.fields)])].sort();
28
28
  let truncated = left.truncated === true || right.truncated === true;
29
29
  const selected = keys.slice(0, OBSERVED_OUTPUT_SHAPE_LIMITS.maxObjectFields);
30
30
  truncated = truncated || keys.length > selected.length;
@@ -277,7 +277,7 @@ function mergeJsonShapes(left, right) {
277
277
  }
278
278
  function mergeObjects(left, right) {
279
279
  const fields = {};
280
- const keys = [...new Set([...Object.keys(left.fields), ...Object.keys(right.fields)])].sort();
280
+ const keys = [.../* @__PURE__ */ new Set([...Object.keys(left.fields), ...Object.keys(right.fields)])].sort();
281
281
  let truncated = left.truncated === true || right.truncated === true;
282
282
  const selected = keys.slice(0, OBSERVED_OUTPUT_SHAPE_LIMITS.maxObjectFields);
283
283
  truncated = truncated || keys.length > selected.length;
@@ -1,2 +1,2 @@
1
- import { _ as OBSERVED_OUTPUT_SHAPE_LIMITS, a as parseShapeableJsonText, c as shapeType, d as backendFingerprint, f as observedOutputShapeKey, i as observeOutputShape, l as mergeJsonShapes, m as stableHash, n as extractJsonShape, o as hasTruncatedShape, p as observedOutputShapeStorageKey, r as normalizedObservableValue, s as shapeToTypeScript, t as usefulOutputSchema, u as FileObservedOutputShapeStore, v as OBSERVED_OUTPUT_SHAPE_VERSION } from "./observed-output-shapes-D2k2-q8K.js";
1
+ import { _ as OBSERVED_OUTPUT_SHAPE_LIMITS, a as parseShapeableJsonText, c as shapeType, d as backendFingerprint, f as observedOutputShapeKey, i as observeOutputShape, l as mergeJsonShapes, m as stableHash, n as extractJsonShape, o as hasTruncatedShape, p as observedOutputShapeStorageKey, r as normalizedObservableValue, s as shapeToTypeScript, t as usefulOutputSchema, u as FileObservedOutputShapeStore, v as OBSERVED_OUTPUT_SHAPE_VERSION } from "./observed-output-shapes-DuP7mJQf.js";
2
2
  export { FileObservedOutputShapeStore, OBSERVED_OUTPUT_SHAPE_LIMITS, OBSERVED_OUTPUT_SHAPE_VERSION, backendFingerprint, extractJsonShape, hasTruncatedShape, mergeJsonShapes, normalizedObservableValue, observeOutputShape, observedOutputShapeKey, observedOutputShapeStorageKey, parseShapeableJsonText, shapeToTypeScript, shapeType, stableHash, usefulOutputSchema };
@@ -121,7 +121,10 @@ function assignProp(target, prop, value) {
121
121
  }
122
122
  function mergeDefs(...defs) {
123
123
  const mergedDescriptors = {};
124
- for (const def of defs) Object.assign(mergedDescriptors, Object.getOwnPropertyDescriptors(def));
124
+ for (const def of defs) {
125
+ const descriptors = Object.getOwnPropertyDescriptors(def);
126
+ Object.assign(mergedDescriptors, descriptors);
127
+ }
125
128
  return Object.defineProperties({}, mergedDescriptors);
126
129
  }
127
130
  function esc(str) {
@@ -1424,7 +1427,7 @@ const $ZodBoolean = /*@__PURE__*/ $constructor("$ZodBoolean", (inst, def) => {
1424
1427
  const $ZodNull = /*@__PURE__*/ $constructor("$ZodNull", (inst, def) => {
1425
1428
  $ZodType.init(inst, def);
1426
1429
  inst._zod.pattern = _null$2;
1427
- inst._zod.values = new Set([null]);
1430
+ inst._zod.values = /* @__PURE__ */ new Set([null]);
1428
1431
  inst._zod.parse = (payload, _ctx) => {
1429
1432
  const input = payload.value;
1430
1433
  if (input === null) return payload;
@@ -1575,13 +1578,13 @@ const $ZodObject = /*@__PURE__*/ $constructor("$ZodObject", (inst, def) => {
1575
1578
  }
1576
1579
  return propValues;
1577
1580
  });
1578
- const isObject$1 = isObject;
1581
+ const isObject$2 = isObject;
1579
1582
  const catchall = def.catchall;
1580
1583
  let value;
1581
1584
  inst._zod.parse = (payload, ctx) => {
1582
1585
  value ?? (value = _normalized.value);
1583
1586
  const input = payload.value;
1584
- if (!isObject$1(input)) {
1587
+ if (!isObject$2(input)) {
1585
1588
  payload.issues.push({
1586
1589
  expected: "object",
1587
1590
  code: "invalid_type",
@@ -1704,7 +1707,7 @@ const $ZodObjectJIT = /*@__PURE__*/ $constructor("$ZodObjectJIT", (inst, def) =>
1704
1707
  return (payload, ctx) => fn(shape, payload, ctx);
1705
1708
  };
1706
1709
  let fastpass;
1707
- const isObject$2 = isObject;
1710
+ const isObject$1 = isObject;
1708
1711
  const jit = !globalConfig.jitless;
1709
1712
  const fastEnabled = jit && allowsEval.value;
1710
1713
  const catchall = def.catchall;
@@ -1712,7 +1715,7 @@ const $ZodObjectJIT = /*@__PURE__*/ $constructor("$ZodObjectJIT", (inst, def) =>
1712
1715
  inst._zod.parse = (payload, ctx) => {
1713
1716
  value ?? (value = _normalized.value);
1714
1717
  const input = payload.value;
1715
- if (!isObject$2(input)) {
1718
+ if (!isObject$1(input)) {
1716
1719
  payload.issues.push({
1717
1720
  expected: "object",
1718
1721
  code: "invalid_type",
@@ -2114,7 +2117,7 @@ const $ZodOptional = /*@__PURE__*/ $constructor("$ZodOptional", (inst, def) => {
2114
2117
  inst._zod.optin = "optional";
2115
2118
  inst._zod.optout = "optional";
2116
2119
  defineLazy(inst._zod, "values", () => {
2117
- return def.innerType._zod.values ? new Set([...def.innerType._zod.values, void 0]) : void 0;
2120
+ return def.innerType._zod.values ? /* @__PURE__ */ new Set([...def.innerType._zod.values, void 0]) : void 0;
2118
2121
  });
2119
2122
  defineLazy(inst._zod, "pattern", () => {
2120
2123
  const pattern = def.innerType._zod.pattern;
@@ -2148,7 +2151,7 @@ const $ZodNullable = /*@__PURE__*/ $constructor("$ZodNullable", (inst, def) => {
2148
2151
  return pattern ? new RegExp(`^(${cleanRegex(pattern.source)}|null)$`) : void 0;
2149
2152
  });
2150
2153
  defineLazy(inst._zod, "values", () => {
2151
- return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : void 0;
2154
+ return def.innerType._zod.values ? /* @__PURE__ */ new Set([...def.innerType._zod.values, null]) : void 0;
2152
2155
  });
2153
2156
  inst._zod.parse = (payload, ctx) => {
2154
2157
  if (payload.value === null) return payload;