s-app-scoder-agent 0.8.21 → 0.9.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/watch.js CHANGED
@@ -29,6 +29,14 @@ export function watchWorkdir(workdir, onChange) {
29
29
  }
30
30
  catch { /* race — file removed between existsSync and watch */ }
31
31
  }
32
+ // Watch the parent too so a skills directory created after startup is seen.
33
+ const scoderDir = join(workdir, ".scoder");
34
+ if (existsSync(scoderDir)) {
35
+ try {
36
+ watchers.push(watch(scoderDir, () => fire("skills")));
37
+ }
38
+ catch { /* ignore */ }
39
+ }
32
40
  // .scoder/skills/ — skill files added/removed/edited.
33
41
  const skillsDir = join(workdir, ".scoder", "skills");
34
42
  if (existsSync(skillsDir)) {
package/dist/webfetch.js CHANGED
@@ -39,8 +39,8 @@ function isPrivateAddress(ip) {
39
39
  const lower = ip.toLowerCase();
40
40
  if (lower === "::1" || lower === "::")
41
41
  return true;
42
- if (lower.startsWith("fe80"))
43
- return true; // link-local
42
+ if (/^fe[89ab][0-9a-f]{2}:/.test(lower))
43
+ return true; // link-local fe80::/10
44
44
  if (/^f[cd][0-9a-f]{2}:/.test(lower))
45
45
  return true; // unique local fc00::/7
46
46
  // IPv4-mapped ::ffff:10.0.0.1
@@ -166,6 +166,9 @@ export async function toolWebFetch(ctx, args) {
166
166
  if (signal.aborted) {
167
167
  return { ok: false, output: `ERROR: fetch aborted (${signal.reason?.message ?? "aborted"})` };
168
168
  }
169
+ if (current.protocol !== "http:" && current.protocol !== "https:") {
170
+ return { ok: false, output: `ERROR: redirect target uses unsupported protocol ${current.protocol}` };
171
+ }
169
172
  await assertPublicHost(current.hostname);
170
173
  const res = await fetch(current, {
171
174
  method: "GET",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "s-app-scoder-agent",
3
- "version": "0.8.21",
3
+ "version": "0.9.2",
4
4
  "description": "Autonomous coding agent CLI — writes, edits, and builds code autonomously until the project compiles without errors.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",