@anthropic-ai/sdk 0.116.0 → 0.118.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.
Files changed (246) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/client.d.mts +2 -2
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +2 -2
  5. package/client.d.ts.map +1 -1
  6. package/client.js +1 -1
  7. package/client.js.map +1 -1
  8. package/client.mjs +1 -1
  9. package/client.mjs.map +1 -1
  10. package/core/api-promise.d.mts +1 -0
  11. package/core/api-promise.d.mts.map +1 -1
  12. package/core/api-promise.d.ts +1 -0
  13. package/core/api-promise.d.ts.map +1 -1
  14. package/core/api-promise.js +7 -2
  15. package/core/api-promise.js.map +1 -1
  16. package/core/api-promise.mjs +8 -3
  17. package/core/api-promise.mjs.map +1 -1
  18. package/core/error.d.mts +1 -0
  19. package/core/error.d.mts.map +1 -1
  20. package/core/error.d.ts +1 -0
  21. package/core/error.d.ts.map +1 -1
  22. package/core/error.js +1 -0
  23. package/core/error.js.map +1 -1
  24. package/core/error.mjs +1 -0
  25. package/core/error.mjs.map +1 -1
  26. package/core/middleware.js +1 -1
  27. package/core/middleware.js.map +1 -1
  28. package/core/middleware.mjs +2 -2
  29. package/core/middleware.mjs.map +1 -1
  30. package/helpers/beta/zod.d.mts.map +1 -1
  31. package/helpers/beta/zod.d.ts.map +1 -1
  32. package/helpers/beta/zod.js +1 -2
  33. package/helpers/beta/zod.js.map +1 -1
  34. package/helpers/beta/zod.mjs +1 -2
  35. package/helpers/beta/zod.mjs.map +1 -1
  36. package/helpers/zod.d.mts.map +1 -1
  37. package/helpers/zod.d.ts.map +1 -1
  38. package/helpers/zod.js +1 -2
  39. package/helpers/zod.js.map +1 -1
  40. package/helpers/zod.mjs +1 -2
  41. package/helpers/zod.mjs.map +1 -1
  42. package/internal/parse.d.mts +2 -1
  43. package/internal/parse.d.mts.map +1 -1
  44. package/internal/parse.d.ts +2 -1
  45. package/internal/parse.d.ts.map +1 -1
  46. package/internal/parse.js +6 -6
  47. package/internal/parse.js.map +1 -1
  48. package/internal/parse.mjs +5 -5
  49. package/internal/parse.mjs.map +1 -1
  50. package/lib/BetaMessageStream.d.mts +2 -0
  51. package/lib/BetaMessageStream.d.mts.map +1 -1
  52. package/lib/BetaMessageStream.d.ts +2 -0
  53. package/lib/BetaMessageStream.d.ts.map +1 -1
  54. package/lib/BetaMessageStream.js +20 -7
  55. package/lib/BetaMessageStream.js.map +1 -1
  56. package/lib/BetaMessageStream.mjs +20 -7
  57. package/lib/BetaMessageStream.mjs.map +1 -1
  58. package/lib/MessageStream.d.mts +2 -0
  59. package/lib/MessageStream.d.mts.map +1 -1
  60. package/lib/MessageStream.d.ts +2 -0
  61. package/lib/MessageStream.d.ts.map +1 -1
  62. package/lib/MessageStream.js +17 -6
  63. package/lib/MessageStream.js.map +1 -1
  64. package/lib/MessageStream.mjs +17 -6
  65. package/lib/MessageStream.mjs.map +1 -1
  66. package/lib/environments/worker.d.mts +10 -6
  67. package/lib/environments/worker.d.mts.map +1 -1
  68. package/lib/environments/worker.d.ts +10 -6
  69. package/lib/environments/worker.d.ts.map +1 -1
  70. package/lib/environments/worker.js +51 -18
  71. package/lib/environments/worker.js.map +1 -1
  72. package/lib/environments/worker.mjs +51 -18
  73. package/lib/environments/worker.mjs.map +1 -1
  74. package/lib/tools/BetaRunnableTool.d.mts +20 -42
  75. package/lib/tools/BetaRunnableTool.d.mts.map +1 -1
  76. package/lib/tools/BetaRunnableTool.d.ts +20 -42
  77. package/lib/tools/BetaRunnableTool.d.ts.map +1 -1
  78. package/lib/tools/BetaRunnableTool.js +3 -17
  79. package/lib/tools/BetaRunnableTool.js.map +1 -1
  80. package/lib/tools/BetaRunnableTool.mjs +3 -17
  81. package/lib/tools/BetaRunnableTool.mjs.map +1 -1
  82. package/lib/tools/BetaToolRunner.d.mts.map +1 -1
  83. package/lib/tools/BetaToolRunner.d.ts.map +1 -1
  84. package/lib/tools/BetaToolRunner.js +11 -12
  85. package/lib/tools/BetaToolRunner.js.map +1 -1
  86. package/lib/tools/BetaToolRunner.mjs +11 -12
  87. package/lib/tools/BetaToolRunner.mjs.map +1 -1
  88. package/lib/tools/SessionToolRunner.d.mts +6 -0
  89. package/lib/tools/SessionToolRunner.d.mts.map +1 -1
  90. package/lib/tools/SessionToolRunner.d.ts +6 -0
  91. package/lib/tools/SessionToolRunner.d.ts.map +1 -1
  92. package/lib/tools/SessionToolRunner.js +37 -8
  93. package/lib/tools/SessionToolRunner.js.map +1 -1
  94. package/lib/tools/SessionToolRunner.mjs +38 -9
  95. package/lib/tools/SessionToolRunner.mjs.map +1 -1
  96. package/package.json +9 -15
  97. package/resources/beta/agents/agents.d.mts +3 -3
  98. package/resources/beta/agents/agents.d.ts +3 -3
  99. package/resources/beta/agents/agents.js +1 -1
  100. package/resources/beta/agents/agents.mjs +1 -1
  101. package/resources/beta/beta.d.mts +5 -5
  102. package/resources/beta/beta.d.mts.map +1 -1
  103. package/resources/beta/beta.d.ts +5 -5
  104. package/resources/beta/beta.d.ts.map +1 -1
  105. package/resources/beta/beta.js.map +1 -1
  106. package/resources/beta/beta.mjs.map +1 -1
  107. package/resources/beta/dreams.d.mts +48 -8
  108. package/resources/beta/dreams.d.mts.map +1 -1
  109. package/resources/beta/dreams.d.ts +48 -8
  110. package/resources/beta/dreams.d.ts.map +1 -1
  111. package/resources/beta/environments/environments.d.mts +4 -3
  112. package/resources/beta/environments/environments.d.mts.map +1 -1
  113. package/resources/beta/environments/environments.d.ts +4 -3
  114. package/resources/beta/environments/environments.d.ts.map +1 -1
  115. package/resources/beta/environments/environments.js.map +1 -1
  116. package/resources/beta/environments/environments.mjs.map +1 -1
  117. package/resources/beta/index.d.mts +2 -2
  118. package/resources/beta/index.d.mts.map +1 -1
  119. package/resources/beta/index.d.ts +2 -2
  120. package/resources/beta/index.d.ts.map +1 -1
  121. package/resources/beta/index.js.map +1 -1
  122. package/resources/beta/index.mjs.map +1 -1
  123. package/resources/beta/memory-stores/index.d.mts +1 -1
  124. package/resources/beta/memory-stores/index.d.mts.map +1 -1
  125. package/resources/beta/memory-stores/index.d.ts +1 -1
  126. package/resources/beta/memory-stores/index.d.ts.map +1 -1
  127. package/resources/beta/memory-stores/index.js.map +1 -1
  128. package/resources/beta/memory-stores/index.mjs.map +1 -1
  129. package/resources/beta/memory-stores/memory-stores.d.mts +2 -2
  130. package/resources/beta/memory-stores/memory-stores.d.mts.map +1 -1
  131. package/resources/beta/memory-stores/memory-stores.d.ts +2 -2
  132. package/resources/beta/memory-stores/memory-stores.d.ts.map +1 -1
  133. package/resources/beta/memory-stores/memory-stores.js.map +1 -1
  134. package/resources/beta/memory-stores/memory-stores.mjs.map +1 -1
  135. package/resources/beta/memory-stores/memory-versions.d.mts +17 -2
  136. package/resources/beta/memory-stores/memory-versions.d.mts.map +1 -1
  137. package/resources/beta/memory-stores/memory-versions.d.ts +17 -2
  138. package/resources/beta/memory-stores/memory-versions.d.ts.map +1 -1
  139. package/resources/beta/messages/batches.d.mts +1 -1
  140. package/resources/beta/messages/batches.d.ts +1 -1
  141. package/resources/beta/messages/batches.js +1 -1
  142. package/resources/beta/messages/batches.mjs +1 -1
  143. package/resources/beta/messages/index.d.mts +1 -1
  144. package/resources/beta/messages/index.d.mts.map +1 -1
  145. package/resources/beta/messages/index.d.ts +1 -1
  146. package/resources/beta/messages/index.d.ts.map +1 -1
  147. package/resources/beta/messages/index.js.map +1 -1
  148. package/resources/beta/messages/index.mjs.map +1 -1
  149. package/resources/beta/messages/messages.d.mts +4 -22
  150. package/resources/beta/messages/messages.d.mts.map +1 -1
  151. package/resources/beta/messages/messages.d.ts +4 -22
  152. package/resources/beta/messages/messages.d.ts.map +1 -1
  153. package/resources/beta/messages/messages.js +2 -2
  154. package/resources/beta/messages/messages.js.map +1 -1
  155. package/resources/beta/messages/messages.mjs +2 -2
  156. package/resources/beta/messages/messages.mjs.map +1 -1
  157. package/resources/beta/sessions/sessions.d.mts +1 -1
  158. package/resources/beta/sessions/sessions.d.ts +1 -1
  159. package/resources/beta/user-profiles.d.mts +37 -11
  160. package/resources/beta/user-profiles.d.mts.map +1 -1
  161. package/resources/beta/user-profiles.d.ts +37 -11
  162. package/resources/beta/user-profiles.d.ts.map +1 -1
  163. package/resources/beta/user-profiles.js +5 -5
  164. package/resources/beta/user-profiles.mjs +5 -5
  165. package/resources/index.d.mts +1 -1
  166. package/resources/index.d.mts.map +1 -1
  167. package/resources/index.d.ts +1 -1
  168. package/resources/index.d.ts.map +1 -1
  169. package/resources/index.js.map +1 -1
  170. package/resources/index.mjs.map +1 -1
  171. package/resources/messages/batches.d.mts +1 -1
  172. package/resources/messages/batches.d.ts +1 -1
  173. package/resources/messages/batches.js +1 -1
  174. package/resources/messages/batches.mjs +1 -1
  175. package/resources/messages/index.d.mts +1 -1
  176. package/resources/messages/index.d.mts.map +1 -1
  177. package/resources/messages/index.d.ts +1 -1
  178. package/resources/messages/index.d.ts.map +1 -1
  179. package/resources/messages/index.js.map +1 -1
  180. package/resources/messages/index.mjs.map +1 -1
  181. package/resources/messages/messages.d.mts +4 -22
  182. package/resources/messages/messages.d.mts.map +1 -1
  183. package/resources/messages/messages.d.ts +4 -22
  184. package/resources/messages/messages.d.ts.map +1 -1
  185. package/resources/messages/messages.js +2 -2
  186. package/resources/messages/messages.js.map +1 -1
  187. package/resources/messages/messages.mjs +2 -2
  188. package/resources/messages/messages.mjs.map +1 -1
  189. package/src/client.ts +1 -3
  190. package/src/core/api-promise.ts +14 -4
  191. package/src/core/error.ts +2 -0
  192. package/src/core/middleware.ts +2 -2
  193. package/src/helpers/beta/zod.ts +1 -3
  194. package/src/helpers/zod.ts +1 -3
  195. package/src/internal/parse.ts +6 -6
  196. package/src/lib/BetaMessageStream.ts +23 -5
  197. package/src/lib/MessageStream.ts +19 -4
  198. package/src/lib/environments/worker.ts +56 -17
  199. package/src/lib/tools/BetaRunnableTool.ts +20 -44
  200. package/src/lib/tools/BetaToolRunner.ts +11 -12
  201. package/src/lib/tools/SessionToolRunner.ts +39 -6
  202. package/src/resources/beta/agents/agents.ts +3 -3
  203. package/src/resources/beta/beta.ts +7 -2
  204. package/src/resources/beta/dreams.ts +56 -7
  205. package/src/resources/beta/environments/environments.ts +4 -3
  206. package/src/resources/beta/index.ts +3 -1
  207. package/src/resources/beta/memory-stores/index.ts +1 -0
  208. package/src/resources/beta/memory-stores/memory-stores.ts +2 -0
  209. package/src/resources/beta/memory-stores/memory-versions.ts +21 -1
  210. package/src/resources/beta/messages/batches.ts +1 -1
  211. package/src/resources/beta/messages/index.ts +0 -1
  212. package/src/resources/beta/messages/messages.ts +3 -26
  213. package/src/resources/beta/sessions/sessions.ts +1 -1
  214. package/src/resources/beta/user-profiles.ts +46 -17
  215. package/src/resources/index.ts +0 -1
  216. package/src/resources/messages/batches.ts +1 -1
  217. package/src/resources/messages/index.ts +0 -1
  218. package/src/resources/messages/messages.ts +4 -27
  219. package/src/tools/agent-toolset/fs-util.ts +43 -23
  220. package/src/tools/agent-toolset/node.ts +1 -1
  221. package/src/tools/agent-toolset/skills.ts +127 -31
  222. package/src/version.ts +1 -1
  223. package/tools/agent-toolset/fs-util.d.mts +14 -2
  224. package/tools/agent-toolset/fs-util.d.mts.map +1 -1
  225. package/tools/agent-toolset/fs-util.d.ts +14 -2
  226. package/tools/agent-toolset/fs-util.d.ts.map +1 -1
  227. package/tools/agent-toolset/fs-util.js +46 -24
  228. package/tools/agent-toolset/fs-util.js.map +1 -1
  229. package/tools/agent-toolset/fs-util.mjs +45 -24
  230. package/tools/agent-toolset/fs-util.mjs.map +1 -1
  231. package/tools/agent-toolset/node.js +1 -1
  232. package/tools/agent-toolset/node.js.map +1 -1
  233. package/tools/agent-toolset/node.mjs +1 -1
  234. package/tools/agent-toolset/node.mjs.map +1 -1
  235. package/tools/agent-toolset/skills.d.mts +26 -3
  236. package/tools/agent-toolset/skills.d.mts.map +1 -1
  237. package/tools/agent-toolset/skills.d.ts +26 -3
  238. package/tools/agent-toolset/skills.d.ts.map +1 -1
  239. package/tools/agent-toolset/skills.js +114 -29
  240. package/tools/agent-toolset/skills.js.map +1 -1
  241. package/tools/agent-toolset/skills.mjs +113 -30
  242. package/tools/agent-toolset/skills.mjs.map +1 -1
  243. package/version.d.mts +1 -1
  244. package/version.d.ts +1 -1
  245. package/version.js +1 -1
  246. package/version.mjs +1 -1
@@ -29,6 +29,24 @@ export declare function setupSkills(ctx: AgentToolContext): Promise<() => Promis
29
29
  * versions pass through unchanged.
30
30
  */
31
31
  export declare function resolveSkillVersion(client: Anthropic, skillId: string, version: string): Promise<string>;
32
+ /**
33
+ * Pair an archive's name listing (`unzip -Z1` / `tar -tf`) with its typed
34
+ * listing (`unzip -Z --h --t` / `tar -tvf`) and split the members into plain
35
+ * (regular file or directory) and special (everything else). Special members
36
+ * are excluded from extraction rather than rejected; the archive is refused
37
+ * only when the two listings disagree in length or a special member's name
38
+ * cannot be passed back to the CLI verbatim (see {@link canExcludeVerbatim}).
39
+ */
40
+ export declare function classifyArchiveListing(cmd: 'unzip' | 'tar', names: string, typed: string): {
41
+ plain: string[];
42
+ special: string[];
43
+ };
44
+ /**
45
+ * Walk `dir` with `lstat` semantics and reject anything that is not a regular
46
+ * file or directory. Never follows a link and never descends into anything
47
+ * but a real directory.
48
+ */
49
+ export declare function assertOnlyPlainEntries(dir: string): Promise<void>;
32
50
  /**
33
51
  * Extract a skill download (a zip or tar.* archive) into `dest`. Streams the
34
52
  * response body straight to a temp file beside `dest` (so the whole archive is
@@ -36,9 +54,14 @@ export declare function resolveSkillVersion(client: Anthropic, skillId: string,
36
54
  * to `unzip`/`tar` — consistent with the rest of the toolset, which already
37
55
  * invokes `bash` and `rg`. Both `unzip` and `tar` must be available on `PATH`; a
38
56
  * missing binary surfaces as a clear error (see {@link runArchiveTool}). Refuses
39
- * any member that would escape `dest` (zip-slip / tar-slip), including
40
- * symlink/hardlink members: skill archives come from the API, but skills can be
41
- * third-party.
57
+ * any member that would escape `dest` (zip-slip / tar-slip): skill archives
58
+ * come from the API, but skills can be third-party. Members that are not a
59
+ * regular file or directory (symlink, hardlink, device, fifo) are excluded
60
+ * from extraction rather than rejected; an archive whose special members
61
+ * cannot be excluded reliably is refused (see {@link classifyArchiveListing}).
62
+ * `tar` matches exclusions unanchored, so a plain member sharing a special
63
+ * member's name may be dropped too. The staging tree is verified to hold only
64
+ * regular files and directories before anything is promoted into `dest`.
42
65
  *
43
66
  * The skill bundle's single wrapper directory is stripped: the archive is
44
67
  * extracted into a staging dir and the wrapper's contents are promoted into
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/tools/agent-toolset/skills.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAE,SAAS,EAAE,wBAAqB;AAI9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAe;AAI/C;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAiDrF;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAgBjB;AA4ED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCrF"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/tools/agent-toolset/skills.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAE,SAAS,EAAE,wBAAqB;AAI9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAe;AAI/C;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAiDrF;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAgBjB;AA0CD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,OAAO,GAAG,KAAK,EACpB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAmBxC;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKvE;AAiDD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+CrF"}
@@ -8,6 +8,8 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.setupSkills = setupSkills;
10
10
  exports.resolveSkillVersion = resolveSkillVersion;
11
+ exports.classifyArchiveListing = classifyArchiveListing;
12
+ exports.assertOnlyPlainEntries = assertOnlyPlainEntries;
11
13
  exports.extractSkillArchive = extractSkillArchive;
12
14
  const tslib_1 = require("../../internal/tslib.js");
13
15
  const fs = tslib_1.__importStar(require("node:fs/promises"));
@@ -111,7 +113,7 @@ async function resolveSkillVersion(client, skillId, version) {
111
113
  }
112
114
  /** Reject archive members that are absolute or contain a `..` component. */
113
115
  function assertSafeMemberNames(names) {
114
- for (const raw of names.split('\n')) {
116
+ for (const raw of names) {
115
117
  const entry = raw.trim();
116
118
  if (!entry)
117
119
  continue;
@@ -120,19 +122,70 @@ function assertSafeMemberNames(names) {
120
122
  }
121
123
  }
122
124
  }
125
+ const INCONSISTENT_LISTING = 'skill archive listing is inconsistent; refusing to extract';
123
126
  /**
124
- * Reject archives that contain anything other than regular files and
125
- * directories. The type char is the first byte of each `ls`-style line emitted
126
- * by `tar -tvf` / `unzip -Z`: `-` file, `d` dir, `l` symlink, `h` hardlink,
127
- * `b`/`c` device, `p` fifo, `s` socket. A symlink/hardlink member is how an
128
- * archive escapes its extraction dir even when no name contains `..`.
127
+ * Type chars (first byte of each `ls`-style line from `unzip -Z` / `tar -tvf`)
128
+ * that denote a regular file or directory. `zipinfo` prints `?` for entries
129
+ * with no Unix type bits, which `unzip` extracts as regular files; GNU tar
130
+ * prints `C` for contiguous files. Everything else `l` symlink, `h`
131
+ * hardlink, `b`/`c` device, `p` fifo, `s` socket, unknown tar types — is a
132
+ * special member.
129
133
  */
130
- function assertNoSpecialMembers(verboseListing) {
131
- for (const line of verboseListing.split('\n')) {
132
- const type = line.trimStart()[0];
133
- if (type === 'l' || type === 'h' || type === 'b' || type === 'c' || type === 'p' || type === 's') {
134
- throw new error_1.AnthropicError('refusing to extract archive with symlink/hardlink/device member');
134
+ const PLAIN_TYPE_CHARS = { unzip: new Set(['-', 'd', '?']), tar: new Set(['-', 'd', 'C']) };
135
+ function listingLines(listing) {
136
+ const lines = listing.split('\n');
137
+ if (lines[lines.length - 1] === '')
138
+ lines.pop();
139
+ return lines;
140
+ }
141
+ /**
142
+ * A special member is excluded by handing its listed name back to the CLI as
143
+ * a pattern, so the name must be byte-identical to what is stored. `tar`,
144
+ * `bsdtar` and `unzip` print bytes they cannot show literally as `\ooo`, `^X`
145
+ * or `#U` escapes, or as raw non-ASCII; any such name cannot be excluded
146
+ * reliably. A leading `-` would let `unzip` parse the pattern as an option.
147
+ */
148
+ function canExcludeVerbatim(cmd, name) {
149
+ return /^[\x20-\x7E]+$/.test(name) && !/[\\^#]/.test(name) && !(cmd === 'unzip' && name.startsWith('-'));
150
+ }
151
+ /**
152
+ * Pair an archive's name listing (`unzip -Z1` / `tar -tf`) with its typed
153
+ * listing (`unzip -Z --h --t` / `tar -tvf`) and split the members into plain
154
+ * (regular file or directory) and special (everything else). Special members
155
+ * are excluded from extraction rather than rejected; the archive is refused
156
+ * only when the two listings disagree in length or a special member's name
157
+ * cannot be passed back to the CLI verbatim (see {@link canExcludeVerbatim}).
158
+ */
159
+ function classifyArchiveListing(cmd, names, typed) {
160
+ const nameLines = listingLines(names);
161
+ const typedLines = listingLines(typed);
162
+ if (nameLines.length !== typedLines.length)
163
+ throw new error_1.AnthropicError(INCONSISTENT_LISTING);
164
+ const plain = [];
165
+ const special = [];
166
+ nameLines.forEach((name, i) => {
167
+ if (PLAIN_TYPE_CHARS[cmd].has(typedLines[i].charAt(0))) {
168
+ plain.push(name);
169
+ return;
135
170
  }
171
+ if (!canExcludeVerbatim(cmd, name)) {
172
+ throw new error_1.AnthropicError(`refusing to extract archive: cannot safely exclude member ${JSON.stringify(name)}`);
173
+ }
174
+ special.push(name);
175
+ });
176
+ return { plain, special };
177
+ }
178
+ /**
179
+ * Walk `dir` with `lstat` semantics and reject anything that is not a regular
180
+ * file or directory. Never follows a link and never descends into anything
181
+ * but a real directory.
182
+ */
183
+ async function assertOnlyPlainEntries(dir) {
184
+ for (const entry of await fs.readdir(dir, { withFileTypes: true })) {
185
+ if (entry.isDirectory())
186
+ await assertOnlyPlainEntries(path.join(dir, entry.name));
187
+ else if (!entry.isFile())
188
+ throw new error_1.AnthropicError(INCONSISTENT_LISTING);
136
189
  }
137
190
  }
138
191
  /**
@@ -147,24 +200,24 @@ async function runArchiveTool(cmd, args) {
147
200
  return stdout;
148
201
  }
149
202
  catch (e) {
150
- if (e != null && typeof e === 'object' && e.code === 'ENOENT') {
203
+ if ((0, fs_util_1.errnoCode)(e) === 'ENOENT') {
151
204
  throw new error_1.AnthropicError(`skill extraction requires the \`${cmd}\` command, but it was not found on PATH`);
152
205
  }
153
206
  throw e;
154
207
  }
155
208
  }
156
209
  /**
157
- * The single top-level directory shared by every entry in a newline-separated
158
- * archive listing, or `''` if entries don't all live under one common
159
- * directory. Skill bundles are packaged wrapped in one directory named after
160
- * the skill (e.g. `pdf/SKILL.md`, `pdf/scripts/...`); the extractor strips it
161
- * so contents land directly in the skill's dir instead of a redundant nested
162
- * `<skill>/<skill>/` level. A flat or multi-root archive yields `''`.
210
+ * The single top-level directory shared by every entry in an archive listing,
211
+ * or `''` if entries don't all live under one common directory. Skill bundles
212
+ * are packaged wrapped in one directory named after the skill (e.g.
213
+ * `pdf/SKILL.md`, `pdf/scripts/...`); the extractor strips it so contents land
214
+ * directly in the skill's dir instead of a redundant nested `<skill>/<skill>/`
215
+ * level. A flat or multi-root archive yields `''`.
163
216
  */
164
- function archiveTopDir(listing) {
217
+ function archiveTopDir(names) {
165
218
  let top;
166
219
  let nested = false;
167
- for (const raw of listing.split('\n')) {
220
+ for (const raw of names) {
168
221
  // Drop `.` / empty segments so a `./pdf/...`-style listing (e.g. from
169
222
  // `tar -C dir .`) is treated the same as `pdf/...`.
170
223
  const parts = raw
@@ -190,9 +243,14 @@ function archiveTopDir(listing) {
190
243
  * to `unzip`/`tar` — consistent with the rest of the toolset, which already
191
244
  * invokes `bash` and `rg`. Both `unzip` and `tar` must be available on `PATH`; a
192
245
  * missing binary surfaces as a clear error (see {@link runArchiveTool}). Refuses
193
- * any member that would escape `dest` (zip-slip / tar-slip), including
194
- * symlink/hardlink members: skill archives come from the API, but skills can be
195
- * third-party.
246
+ * any member that would escape `dest` (zip-slip / tar-slip): skill archives
247
+ * come from the API, but skills can be third-party. Members that are not a
248
+ * regular file or directory (symlink, hardlink, device, fifo) are excluded
249
+ * from extraction rather than rejected; an archive whose special members
250
+ * cannot be excluded reliably is refused (see {@link classifyArchiveListing}).
251
+ * `tar` matches exclusions unanchored, so a plain member sharing a special
252
+ * member's name may be dropped too. The staging tree is verified to hold only
253
+ * regular files and directories before anything is promoted into `dest`.
196
254
  *
197
255
  * The skill bundle's single wrapper directory is stripped: the archive is
198
256
  * extracted into a staging dir and the wrapper's contents are promoted into
@@ -207,6 +265,7 @@ async function extractSkillArchive(resp, dest) {
207
265
  }
208
266
  await (0, promises_1.pipeline)(node_stream_1.Readable.fromWeb(resp.body), fssync.createWriteStream(tmp));
209
267
  const stage = path.join(path.dirname(dest), `.skill-stage-${process.pid}-${Date.now()}`);
268
+ const excludeFile = path.join(path.dirname(dest), `.skill-exclude-${process.pid}-${Date.now()}`);
210
269
  try {
211
270
  // Sniff the first bytes: zip archives start with "PK\x03\x04"; treat
212
271
  // anything else as a tar.* archive (`tar -xf` autodetects gzip/bzip2/xz).
@@ -215,25 +274,51 @@ async function extractSkillArchive(resp, dest) {
215
274
  const archiveCmd = isZip ? 'unzip' : 'tar';
216
275
  // List first, validate, then extract — `tar`/`unzip` will happily write a
217
276
  // `../` member (or follow a symlink member) outside `-C`/`-d` otherwise.
218
- const listing = await runArchiveTool(archiveCmd, isZip ? ['-Z1', tmp] : ['-tf', tmp]);
219
- assertSafeMemberNames(listing);
220
- assertNoSpecialMembers(await runArchiveTool(archiveCmd, isZip ? ['-Z', tmp] : ['-tvf', tmp]));
221
- const top = archiveTopDir(listing);
277
+ const names = await runArchiveTool(archiveCmd, isZip ? ['-Z1', tmp] : ['-tf', tmp]);
278
+ const typed = await runArchiveTool(archiveCmd, isZip ? ['-Z', '--h', '--t', tmp] : ['-tvf', tmp]);
279
+ const { plain, special } = classifyArchiveListing(archiveCmd, names, typed);
280
+ assertSafeMemberNames([...plain, ...special]);
281
+ const top = archiveTopDir(plain);
222
282
  await fs.mkdir(stage, { recursive: true, mode: fs_util_1.DIR_CREATE_MODE });
223
- await runArchiveTool(archiveCmd, isZip ? ['-oq', tmp, '-d', stage] : ['-xf', tmp, '-C', stage]);
283
+ // `unzip` exits non-zero when every member is excluded, so only run the
284
+ // extractor when there is something to extract.
285
+ if (plain.length > 0) {
286
+ await runArchiveTool(archiveCmd, await extractArgs(archiveCmd, tmp, stage, special, excludeFile));
287
+ }
288
+ await assertOnlyPlainEntries(stage);
224
289
  // Promote the wrapper's contents (or the staged tree itself, if the
225
290
  // archive wasn't wrapped) into the already-created empty `dest`. `stage`
226
291
  // is a sibling of `dest`, so each rename stays on one filesystem.
227
292
  const srcRoot = top ? path.join(stage, top) : stage;
228
- for (const entry of await fs.readdir(srcRoot)) {
293
+ const entries = await fs.readdir(srcRoot).catch((e) => {
294
+ throw (0, fs_util_1.errnoCode)(e) === 'ENOENT' ? new error_1.AnthropicError(INCONSISTENT_LISTING) : e;
295
+ });
296
+ for (const entry of entries) {
229
297
  await fs.rename(path.join(srcRoot, entry), path.join(dest, entry));
230
298
  }
231
299
  }
232
300
  finally {
233
301
  await fs.rm(tmp, { force: true });
302
+ await fs.rm(excludeFile, { force: true });
234
303
  await fs.rm(stage, { recursive: true, force: true });
235
304
  }
236
305
  }
306
+ /**
307
+ * Arguments that extract `archive` into `stage` while excluding every member
308
+ * in `special`. Names are glob-escaped because both CLIs treat exclusions as
309
+ * patterns; `tar` reads them from `excludeFile`, `unzip` takes them after
310
+ * `-x`, which must follow `-d` so no pattern is parsed as an option.
311
+ */
312
+ async function extractArgs(cmd, archive, stage, special, excludeFile) {
313
+ const patterns = special.map((name) => name.replace(/[*?[\\]/g, '\\$&'));
314
+ if (cmd === 'unzip') {
315
+ return ['-oq', archive, '-d', stage, ...(patterns.length > 0 ? ['-x', ...patterns] : [])];
316
+ }
317
+ if (patterns.length === 0)
318
+ return ['-xf', archive, '-C', stage];
319
+ await fs.writeFile(excludeFile, patterns.join('\n') + '\n', { flag: 'wx', mode: 0o600 });
320
+ return ['-xf', archive, '-C', stage, '-X', excludeFile];
321
+ }
237
322
  /** Read the first `n` bytes of `file`. */
238
323
  async function readHead(file, n) {
239
324
  const handle = await fs.open(file, 'r');
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/tools/agent-toolset/skills.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAgCH,kCAiDC;AAQD,kDAoBC;AA6FD,kDAoCC;;AA5OD,6DAAuC;AACvC,wDAAkC;AAClC,wDAAkC;AAClC,2DAA8C;AAC9C,yCAAsC;AACtC,6CAAuC;AACvC,mDAAgD;AAEhD,+CAAkD;AAClD,qDAAqD;AACrD,0CAA4C;AAG5C,MAAM,aAAa,GAAG,IAAA,qBAAS,EAAC,6BAAQ,CAAC,CAAC;AAE1C;;;;;;;;;;;;;;GAcG;AACI,KAAK,UAAU,WAAW,CAAC,GAAqB;IACrD,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC;IAClC,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,IAAA,eAAS,EAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACnF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YACpG,mEAAmE;YACnE,yDAAyD;YACzD,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI;gBAAE,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC;YACpF,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC/C,IAAI,IAAI,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnE,GAAG,CAAC,IAAI,CAAC,6CAA6C,EAAE;oBACtD,SAAS,EAAE,oBAAoB;oBAC/B,IAAI,EAAE,OAAO,CAAC,IAAI;iBACnB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YACjG,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,yBAAe,EAAE,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,MAAM,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACtC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBAC3B,SAAS,EAAE,oBAAoB;gBAC/B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,OAAO,EAAE,SAAS;gBAClB,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE;gBACnC,SAAS,EAAE,oBAAoB;gBAC/B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,KAAK,IAAI,EAAE;QAChB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC9D,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACpG,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,mBAAmB,CACvC,MAAiB,EACjB,OAAe,EACf,OAAe;IAEf,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC1C,IAAI,MAA0B,CAAC;IAC/B,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAChE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAC5F,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;QACrB,CAAC;IACH,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,sBAAc,CACtB,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,uCAAuC,IAAI,CAAC,SAAS,CACnF,OAAO,CACR,UAAU,CACZ,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,4EAA4E;AAC5E,SAAS,qBAAqB,CAAC,KAAa;IAC1C,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,sBAAc,CAAC,8CAA8C,KAAK,EAAE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAAC,cAAsB;IACpD,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjG,MAAM,IAAI,sBAAc,CAAC,iEAAiE,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,cAAc,CAAC,GAAoB,EAAE,IAAc;IAChE,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAK,CAAwB,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtF,MAAM,IAAI,sBAAc,CACtB,mCAAmC,GAAG,0CAA0C,CACjF,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,OAAe;IACpC,IAAI,GAAuB,CAAC;IAC5B,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,sEAAsE;QACtE,oDAAoD;QACpD,MAAM,KAAK,GAAG,GAAG;aACd,IAAI,EAAE;aACN,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACxB,IAAI,GAAG,KAAK,SAAS;YAAE,GAAG,GAAG,KAAK,CAAC;aAC9B,IAAI,KAAK,KAAK,GAAG;YAAE,OAAO,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,GAAG,IAAI,CAAC;IACtC,CAAC;IACD,OAAO,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AAChD,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACI,KAAK,UAAU,mBAAmB,CAAC,IAAc,EAAE,IAAY;IACpE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC3E,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,IAAI,sBAAc,CAAC,qCAAqC,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,IAAA,mBAAQ,EACZ,sBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAA8C,CAAC,EACrE,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAC9B,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,gBAAgB,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACzF,IAAI,CAAC;QACH,qEAAqE;QACrE,0EAA0E;QAC1E,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACpC,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;QACnG,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3C,0EAA0E;QAC1E,yEAAyE;QACzE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QACtF,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC/B,sBAAsB,CAAC,MAAM,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9F,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,yBAAe,EAAE,CAAC,CAAC;QAClE,MAAM,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAChG,oEAAoE;QACpE,yEAAyE;QACzE,kEAAkE;QAClE,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9C,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClC,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,0CAA0C;AAC1C,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,CAAS;IAC7C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACpC,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/tools/agent-toolset/skills.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ import { Readable } from 'node:stream';
13
13
  import { pipeline } from 'node:stream/promises';
14
14
  import { AnthropicError } from "../../core/error.mjs";
15
15
  import { loggerFor } from "../../internal/utils/log.mjs";
16
- import { DIR_CREATE_MODE } from "./fs-util.mjs";
16
+ import { DIR_CREATE_MODE, errnoCode } from "./fs-util.mjs";
17
17
  const execFileAsync = promisify(execFile);
18
18
  /**
19
19
  * Download the session agent's skills into `{ctx.workdir}/skills/<name>/`.
@@ -105,7 +105,7 @@ export async function resolveSkillVersion(client, skillId, version) {
105
105
  }
106
106
  /** Reject archive members that are absolute or contain a `..` component. */
107
107
  function assertSafeMemberNames(names) {
108
- for (const raw of names.split('\n')) {
108
+ for (const raw of names) {
109
109
  const entry = raw.trim();
110
110
  if (!entry)
111
111
  continue;
@@ -114,19 +114,70 @@ function assertSafeMemberNames(names) {
114
114
  }
115
115
  }
116
116
  }
117
+ const INCONSISTENT_LISTING = 'skill archive listing is inconsistent; refusing to extract';
117
118
  /**
118
- * Reject archives that contain anything other than regular files and
119
- * directories. The type char is the first byte of each `ls`-style line emitted
120
- * by `tar -tvf` / `unzip -Z`: `-` file, `d` dir, `l` symlink, `h` hardlink,
121
- * `b`/`c` device, `p` fifo, `s` socket. A symlink/hardlink member is how an
122
- * archive escapes its extraction dir even when no name contains `..`.
119
+ * Type chars (first byte of each `ls`-style line from `unzip -Z` / `tar -tvf`)
120
+ * that denote a regular file or directory. `zipinfo` prints `?` for entries
121
+ * with no Unix type bits, which `unzip` extracts as regular files; GNU tar
122
+ * prints `C` for contiguous files. Everything else `l` symlink, `h`
123
+ * hardlink, `b`/`c` device, `p` fifo, `s` socket, unknown tar types — is a
124
+ * special member.
123
125
  */
124
- function assertNoSpecialMembers(verboseListing) {
125
- for (const line of verboseListing.split('\n')) {
126
- const type = line.trimStart()[0];
127
- if (type === 'l' || type === 'h' || type === 'b' || type === 'c' || type === 'p' || type === 's') {
128
- throw new AnthropicError('refusing to extract archive with symlink/hardlink/device member');
126
+ const PLAIN_TYPE_CHARS = { unzip: new Set(['-', 'd', '?']), tar: new Set(['-', 'd', 'C']) };
127
+ function listingLines(listing) {
128
+ const lines = listing.split('\n');
129
+ if (lines[lines.length - 1] === '')
130
+ lines.pop();
131
+ return lines;
132
+ }
133
+ /**
134
+ * A special member is excluded by handing its listed name back to the CLI as
135
+ * a pattern, so the name must be byte-identical to what is stored. `tar`,
136
+ * `bsdtar` and `unzip` print bytes they cannot show literally as `\ooo`, `^X`
137
+ * or `#U` escapes, or as raw non-ASCII; any such name cannot be excluded
138
+ * reliably. A leading `-` would let `unzip` parse the pattern as an option.
139
+ */
140
+ function canExcludeVerbatim(cmd, name) {
141
+ return /^[\x20-\x7E]+$/.test(name) && !/[\\^#]/.test(name) && !(cmd === 'unzip' && name.startsWith('-'));
142
+ }
143
+ /**
144
+ * Pair an archive's name listing (`unzip -Z1` / `tar -tf`) with its typed
145
+ * listing (`unzip -Z --h --t` / `tar -tvf`) and split the members into plain
146
+ * (regular file or directory) and special (everything else). Special members
147
+ * are excluded from extraction rather than rejected; the archive is refused
148
+ * only when the two listings disagree in length or a special member's name
149
+ * cannot be passed back to the CLI verbatim (see {@link canExcludeVerbatim}).
150
+ */
151
+ export function classifyArchiveListing(cmd, names, typed) {
152
+ const nameLines = listingLines(names);
153
+ const typedLines = listingLines(typed);
154
+ if (nameLines.length !== typedLines.length)
155
+ throw new AnthropicError(INCONSISTENT_LISTING);
156
+ const plain = [];
157
+ const special = [];
158
+ nameLines.forEach((name, i) => {
159
+ if (PLAIN_TYPE_CHARS[cmd].has(typedLines[i].charAt(0))) {
160
+ plain.push(name);
161
+ return;
129
162
  }
163
+ if (!canExcludeVerbatim(cmd, name)) {
164
+ throw new AnthropicError(`refusing to extract archive: cannot safely exclude member ${JSON.stringify(name)}`);
165
+ }
166
+ special.push(name);
167
+ });
168
+ return { plain, special };
169
+ }
170
+ /**
171
+ * Walk `dir` with `lstat` semantics and reject anything that is not a regular
172
+ * file or directory. Never follows a link and never descends into anything
173
+ * but a real directory.
174
+ */
175
+ export async function assertOnlyPlainEntries(dir) {
176
+ for (const entry of await fs.readdir(dir, { withFileTypes: true })) {
177
+ if (entry.isDirectory())
178
+ await assertOnlyPlainEntries(path.join(dir, entry.name));
179
+ else if (!entry.isFile())
180
+ throw new AnthropicError(INCONSISTENT_LISTING);
130
181
  }
131
182
  }
132
183
  /**
@@ -141,24 +192,24 @@ async function runArchiveTool(cmd, args) {
141
192
  return stdout;
142
193
  }
143
194
  catch (e) {
144
- if (e != null && typeof e === 'object' && e.code === 'ENOENT') {
195
+ if (errnoCode(e) === 'ENOENT') {
145
196
  throw new AnthropicError(`skill extraction requires the \`${cmd}\` command, but it was not found on PATH`);
146
197
  }
147
198
  throw e;
148
199
  }
149
200
  }
150
201
  /**
151
- * The single top-level directory shared by every entry in a newline-separated
152
- * archive listing, or `''` if entries don't all live under one common
153
- * directory. Skill bundles are packaged wrapped in one directory named after
154
- * the skill (e.g. `pdf/SKILL.md`, `pdf/scripts/...`); the extractor strips it
155
- * so contents land directly in the skill's dir instead of a redundant nested
156
- * `<skill>/<skill>/` level. A flat or multi-root archive yields `''`.
202
+ * The single top-level directory shared by every entry in an archive listing,
203
+ * or `''` if entries don't all live under one common directory. Skill bundles
204
+ * are packaged wrapped in one directory named after the skill (e.g.
205
+ * `pdf/SKILL.md`, `pdf/scripts/...`); the extractor strips it so contents land
206
+ * directly in the skill's dir instead of a redundant nested `<skill>/<skill>/`
207
+ * level. A flat or multi-root archive yields `''`.
157
208
  */
158
- function archiveTopDir(listing) {
209
+ function archiveTopDir(names) {
159
210
  let top;
160
211
  let nested = false;
161
- for (const raw of listing.split('\n')) {
212
+ for (const raw of names) {
162
213
  // Drop `.` / empty segments so a `./pdf/...`-style listing (e.g. from
163
214
  // `tar -C dir .`) is treated the same as `pdf/...`.
164
215
  const parts = raw
@@ -184,9 +235,14 @@ function archiveTopDir(listing) {
184
235
  * to `unzip`/`tar` — consistent with the rest of the toolset, which already
185
236
  * invokes `bash` and `rg`. Both `unzip` and `tar` must be available on `PATH`; a
186
237
  * missing binary surfaces as a clear error (see {@link runArchiveTool}). Refuses
187
- * any member that would escape `dest` (zip-slip / tar-slip), including
188
- * symlink/hardlink members: skill archives come from the API, but skills can be
189
- * third-party.
238
+ * any member that would escape `dest` (zip-slip / tar-slip): skill archives
239
+ * come from the API, but skills can be third-party. Members that are not a
240
+ * regular file or directory (symlink, hardlink, device, fifo) are excluded
241
+ * from extraction rather than rejected; an archive whose special members
242
+ * cannot be excluded reliably is refused (see {@link classifyArchiveListing}).
243
+ * `tar` matches exclusions unanchored, so a plain member sharing a special
244
+ * member's name may be dropped too. The staging tree is verified to hold only
245
+ * regular files and directories before anything is promoted into `dest`.
190
246
  *
191
247
  * The skill bundle's single wrapper directory is stripped: the archive is
192
248
  * extracted into a staging dir and the wrapper's contents are promoted into
@@ -201,6 +257,7 @@ export async function extractSkillArchive(resp, dest) {
201
257
  }
202
258
  await pipeline(Readable.fromWeb(resp.body), fssync.createWriteStream(tmp));
203
259
  const stage = path.join(path.dirname(dest), `.skill-stage-${process.pid}-${Date.now()}`);
260
+ const excludeFile = path.join(path.dirname(dest), `.skill-exclude-${process.pid}-${Date.now()}`);
204
261
  try {
205
262
  // Sniff the first bytes: zip archives start with "PK\x03\x04"; treat
206
263
  // anything else as a tar.* archive (`tar -xf` autodetects gzip/bzip2/xz).
@@ -209,25 +266,51 @@ export async function extractSkillArchive(resp, dest) {
209
266
  const archiveCmd = isZip ? 'unzip' : 'tar';
210
267
  // List first, validate, then extract — `tar`/`unzip` will happily write a
211
268
  // `../` member (or follow a symlink member) outside `-C`/`-d` otherwise.
212
- const listing = await runArchiveTool(archiveCmd, isZip ? ['-Z1', tmp] : ['-tf', tmp]);
213
- assertSafeMemberNames(listing);
214
- assertNoSpecialMembers(await runArchiveTool(archiveCmd, isZip ? ['-Z', tmp] : ['-tvf', tmp]));
215
- const top = archiveTopDir(listing);
269
+ const names = await runArchiveTool(archiveCmd, isZip ? ['-Z1', tmp] : ['-tf', tmp]);
270
+ const typed = await runArchiveTool(archiveCmd, isZip ? ['-Z', '--h', '--t', tmp] : ['-tvf', tmp]);
271
+ const { plain, special } = classifyArchiveListing(archiveCmd, names, typed);
272
+ assertSafeMemberNames([...plain, ...special]);
273
+ const top = archiveTopDir(plain);
216
274
  await fs.mkdir(stage, { recursive: true, mode: DIR_CREATE_MODE });
217
- await runArchiveTool(archiveCmd, isZip ? ['-oq', tmp, '-d', stage] : ['-xf', tmp, '-C', stage]);
275
+ // `unzip` exits non-zero when every member is excluded, so only run the
276
+ // extractor when there is something to extract.
277
+ if (plain.length > 0) {
278
+ await runArchiveTool(archiveCmd, await extractArgs(archiveCmd, tmp, stage, special, excludeFile));
279
+ }
280
+ await assertOnlyPlainEntries(stage);
218
281
  // Promote the wrapper's contents (or the staged tree itself, if the
219
282
  // archive wasn't wrapped) into the already-created empty `dest`. `stage`
220
283
  // is a sibling of `dest`, so each rename stays on one filesystem.
221
284
  const srcRoot = top ? path.join(stage, top) : stage;
222
- for (const entry of await fs.readdir(srcRoot)) {
285
+ const entries = await fs.readdir(srcRoot).catch((e) => {
286
+ throw errnoCode(e) === 'ENOENT' ? new AnthropicError(INCONSISTENT_LISTING) : e;
287
+ });
288
+ for (const entry of entries) {
223
289
  await fs.rename(path.join(srcRoot, entry), path.join(dest, entry));
224
290
  }
225
291
  }
226
292
  finally {
227
293
  await fs.rm(tmp, { force: true });
294
+ await fs.rm(excludeFile, { force: true });
228
295
  await fs.rm(stage, { recursive: true, force: true });
229
296
  }
230
297
  }
298
+ /**
299
+ * Arguments that extract `archive` into `stage` while excluding every member
300
+ * in `special`. Names are glob-escaped because both CLIs treat exclusions as
301
+ * patterns; `tar` reads them from `excludeFile`, `unzip` takes them after
302
+ * `-x`, which must follow `-d` so no pattern is parsed as an option.
303
+ */
304
+ async function extractArgs(cmd, archive, stage, special, excludeFile) {
305
+ const patterns = special.map((name) => name.replace(/[*?[\\]/g, '\\$&'));
306
+ if (cmd === 'unzip') {
307
+ return ['-oq', archive, '-d', stage, ...(patterns.length > 0 ? ['-x', ...patterns] : [])];
308
+ }
309
+ if (patterns.length === 0)
310
+ return ['-xf', archive, '-C', stage];
311
+ await fs.writeFile(excludeFile, patterns.join('\n') + '\n', { flag: 'wx', mode: 0o600 });
312
+ return ['-xf', archive, '-C', stage, '-X', excludeFile];
313
+ }
231
314
  /** Read the first `n` bytes of `file`. */
232
315
  async function readHead(file, n) {
233
316
  const handle = await fs.open(file, 'r');
@@ -1 +1 @@
1
- {"version":3,"file":"skills.mjs","sourceRoot":"","sources":["../../src/tools/agent-toolset/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.mjs","sourceRoot":"","sources":["../../src/tools/agent-toolset/skills.ts"],"names":[],"mappings":"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"}
package/version.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.116.0";
1
+ export declare const VERSION = "0.118.0";
2
2
  //# sourceMappingURL=version.d.mts.map
package/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.116.0";
1
+ export declare const VERSION = "0.118.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '0.116.0'; // x-release-please-version
4
+ exports.VERSION = '0.118.0'; // x-release-please-version
5
5
  //# sourceMappingURL=version.js.map
package/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = '0.116.0'; // x-release-please-version
1
+ export const VERSION = '0.118.0'; // x-release-please-version
2
2
  //# sourceMappingURL=version.mjs.map