@agentsky/sky 2.27.0 → 2.28.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.
@@ -3,7 +3,7 @@ import {
3
3
  apiBase,
4
4
  apiToken,
5
5
  currentUniverse
6
- } from "./chunk-HWDI7WA5.js";
6
+ } from "./chunk-ABDGMJYV.js";
7
7
 
8
8
  // src/api.ts
9
9
  import { createWriteStream, writeFileSync } from "fs";
@@ -149,7 +149,7 @@ async function resolveSessionRef(ref) {
149
149
  return agent.defaultSessionId;
150
150
  }
151
151
  async function* streamEvents(sessionId, signal) {
152
- const { parseSseStream } = await import("./src-UWCEYDU6.js");
152
+ const { parseSseStream } = await import("./src-XZOV6WUV.js");
153
153
  const res = await fetch(
154
154
  `${apiBase()}/sessions/${encodeURIComponent(sessionId)}/stream`,
155
155
  {
@@ -38,7 +38,7 @@ function currentUniverse() {
38
38
  }
39
39
 
40
40
  // src/version.ts
41
- var CLI_VERSION = "2.27.0";
41
+ var CLI_VERSION = "2.28.0";
42
42
  var USER_AGENT = `sky-cli/${CLI_VERSION} (${process.platform}; node/${process.versions.node})`;
43
43
 
44
44
  export {
@@ -19069,14 +19069,14 @@ var CATALOG_MODELS = [
19069
19069
  "tiers": [
19070
19070
  {
19071
19071
  "maxPromptTokens": 1048576,
19072
- "input": 0.871072,
19073
- "output": 2.61217,
19074
- "cachedInput": 0.043867
19072
+ "input": 0.967857,
19073
+ "output": 2.902411,
19074
+ "cachedInput": 0.048741
19075
19075
  }
19076
19076
  ],
19077
19077
  "maxPrice": {
19078
- "prompt": 0.82566,
19079
- "completion": 2.47599
19078
+ "prompt": 0.9174,
19079
+ "completion": 2.7511
19080
19080
  },
19081
19081
  "reasoningEfforts": [
19082
19082
  "none",
@@ -19101,14 +19101,14 @@ var CATALOG_MODELS = [
19101
19101
  "tiers": [
19102
19102
  {
19103
19103
  "maxPromptTokens": 1048576,
19104
- "input": 0.051574,
19105
- "output": 0.154719,
19106
- "cachedInput": 1642e-6
19104
+ "input": 0.06963,
19105
+ "output": 0.20889,
19106
+ "cachedInput": 0.017408
19107
19107
  }
19108
19108
  ],
19109
19109
  "maxPrice": {
19110
- "prompt": 0.048884,
19111
- "completion": 0.146652
19110
+ "prompt": 0.066,
19111
+ "completion": 0.198
19112
19112
  },
19113
19113
  "reasoningEfforts": [
19114
19114
  "none",
@@ -19134,14 +19134,14 @@ var CATALOG_MODELS = [
19134
19134
  "tiers": [
19135
19135
  {
19136
19136
  "maxPromptTokens": 262144,
19137
- "input": 0.095742,
19138
- "output": 0.382965,
19139
- "cachedInput": 0.023936
19137
+ "input": 0.153186,
19138
+ "output": 0.612744,
19139
+ "cachedInput": 0.038297
19140
19140
  }
19141
19141
  ],
19142
19142
  "maxPrice": {
19143
- "prompt": 0.09075,
19144
- "completion": 0.363
19143
+ "prompt": 0.1452,
19144
+ "completion": 0.5808
19145
19145
  },
19146
19146
  "reasoningEfforts": [
19147
19147
  "none",
@@ -19774,14 +19774,14 @@ var CATALOG_MODELS = [
19774
19774
  "tiers": [
19775
19775
  {
19776
19776
  "maxPromptTokens": 202752,
19777
- "input": 1.119419,
19778
- "output": 3.518172,
19779
- "cachedInput": 0.207893
19777
+ "input": 1.121043,
19778
+ "output": 3.523278,
19779
+ "cachedInput": 0.208194
19780
19780
  }
19781
19781
  ],
19782
19782
  "maxPrice": {
19783
- "prompt": 1.06106,
19784
- "completion": 3.33476
19783
+ "prompt": 1.0626,
19784
+ "completion": 3.3396
19785
19785
  },
19786
19786
  "reasoningEfforts": [],
19787
19787
  "quantizations": [
@@ -19808,8 +19808,8 @@ var CATALOG_MODELS = [
19808
19808
  }
19809
19809
  ],
19810
19810
  "maxPrice": {
19811
- "prompt": 0.2079,
19812
- "completion": 0.6534
19811
+ "prompt": 0.611072,
19812
+ "completion": 1.920512
19813
19813
  },
19814
19814
  "reasoningEfforts": [
19815
19815
  "none",
@@ -24643,11 +24643,11 @@ var GATEWAY_CAPABILITY_IDS = [
24643
24643
  "dictionary.define",
24644
24644
  "openlibrary.search",
24645
24645
  "googledns.resolve",
24646
- "qrserver.create"
24646
+ "qrserver.create",
24647
+ "recall.meeting-record"
24647
24648
  ];
24648
24649
  var RETIRED_CAPABILITY_IDS = [
24649
- "social-boost.catalog",
24650
- "recall.meeting-record"
24650
+ "social-boost.catalog"
24651
24651
  ];
24652
24652
  var CAPABILITY_IDS = [...LEGACY_CAPABILITY_IDS, ...GATEWAY_CAPABILITY_IDS, ...RETIRED_CAPABILITY_IDS];
24653
24653
  var PLATFORM_CAPABILITY_IDS = ["platform.orchestration"];
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  streamEvents,
12
12
  uploadFile,
13
13
  writeResponseFile
14
- } from "./chunk-CGBZMNTO.js";
14
+ } from "./chunk-5OBCA2MM.js";
15
15
  import {
16
16
  CLI_VERSION,
17
17
  USER_AGENT,
@@ -22,7 +22,7 @@ import {
22
22
  currentUniverse,
23
23
  loadConfig,
24
24
  saveConfig
25
- } from "./chunk-HWDI7WA5.js";
25
+ } from "./chunk-ABDGMJYV.js";
26
26
  import {
27
27
  AGENT_TYPES,
28
28
  MODEL_SUBSCRIPTION_PLAN_PHRASE,
@@ -44,7 +44,7 @@ import {
44
44
  skillRefSchema,
45
45
  splitMcpServers,
46
46
  supersededBy
47
- } from "./chunk-FRZEEUWH.js";
47
+ } from "./chunk-OFH52W34.js";
48
48
  import "./chunk-MLKGABMK.js";
49
49
 
50
50
  // src/index.ts
@@ -6515,6 +6515,27 @@ session.command("handoff <ref> <targetAgent>").description("hand the session's c
6515
6515
  if (done.target_session) console.log(`${done.target_session} (${done.resolved_mode === "native_fork" ? "forked" : "from a written summary"})`);
6516
6516
  })
6517
6517
  );
6518
+ session.command("cloud-copy <ref>").description("what is kept in the cloud for a chat synced from your own computer: its working folder and native session").option("--json", "print the raw answer").action(
6519
+ run(async (ref, opts) => {
6520
+ const id = await resolveSessionRef(ref);
6521
+ const read = async (path) => {
6522
+ try {
6523
+ return await api("GET", `/sessions/${encodeURIComponent(id)}/mirror/${path}`);
6524
+ } catch (error) {
6525
+ if (error instanceof ApiError && error.status === 404) return null;
6526
+ throw error;
6527
+ }
6528
+ };
6529
+ const folder = await read("environment");
6530
+ const native = await read("checkpoint");
6531
+ if (opts.json) {
6532
+ console.log(JSON.stringify({ folder, session: native }, null, 2));
6533
+ return;
6534
+ }
6535
+ console.log(folder ? `folder ${folder.name}: ${folder.files} files, ${folder.size_bytes} bytes, stored ${folder.staged_at}; restored at /workspace/${folder.name}` : "folder none stored");
6536
+ console.log(native ? `session ${native.harness}${native.harness_version ? ` ${native.harness_version}` : ""}: ${native.size_bytes} bytes, stored ${native.staged_at}; resumed exactly on the same agent` : "session none stored");
6537
+ })
6538
+ );
6518
6539
  var sessionWorkspace = session.command("workspace").description("the session's workspace: list and read files, see changes, take a patch, copy a folder in");
6519
6540
  sessionWorkspace.command("ls <ref> [path]").description("list a directory (default: the workspace root)").option("--hidden", "include dotfiles").action(
6520
6541
  run(async (ref, path, opts) => {
@@ -8438,7 +8459,7 @@ harness.command("connect").description("run an ACP agent (the command after --)
8438
8459
  }));
8439
8460
  var traceCmd = program.command("trace").description("correlate this machine's agent work with the cloud sessions it starts (metadata only unless you choose content)");
8440
8461
  traceCmd.command("start").description("start a trace: a grant for this machine, a root span, and the spool the hooks write to").option("--name <name>", "a name for the task").option("--source <source>", "how this machine reports itself", "claude-code").option("--hooks [settings]", "also install the Claude Code hooks (default: ./.claude/settings.local.json)").option("--capture <scopes>", "also send content, redacted on this machine first: any of prompts,tool_output,files").option("--file <path>", "a file the files scope may send (repeatable)", collect).option("--dir <path>", "a folder whose files the files scope may send when a file tool touches them (repeatable)", collect).action(run(async (opts) => {
8441
- const { readState, writeState, record, installClaudeHooks, parseContentScopes, chosenPaths, fileEvent } = await import("./trace-L26WH5K6.js");
8462
+ const { readState, writeState, record, installClaudeHooks, parseContentScopes, chosenPaths, fileEvent } = await import("./trace-6KAXVDDM.js");
8442
8463
  if (readState()) throw new Error("a trace is already running here \u2014 `sky trace stop` it first");
8443
8464
  const scopes = parseContentScopes(opts.capture);
8444
8465
  const chosen = chosenPaths(opts.file ?? [], opts.dir ?? []);
@@ -8473,7 +8494,7 @@ traceCmd.command("start").description("start a trace: a grant for this machine,
8473
8494
  }));
8474
8495
  traceCmd.command("hook").description("record one Claude Code hook event read from stdin (run by the installed hooks; never fails, prints nothing)").action(async () => {
8475
8496
  try {
8476
- const { readState, record, flush, grantSender, eventsForClaudeHook, contentForClaudeHook, clearState } = await import("./trace-L26WH5K6.js");
8497
+ const { readState, record, flush, grantSender, eventsForClaudeHook, contentForClaudeHook, clearState } = await import("./trace-6KAXVDDM.js");
8477
8498
  const chunks = [];
8478
8499
  for await (const chunk of process.stdin) chunks.push(chunk);
8479
8500
  const input = JSON.parse(Buffer.concat(chunks).toString("utf8") || "{}");
@@ -8486,14 +8507,14 @@ traceCmd.command("hook").description("record one Claude Code hook event read fro
8486
8507
  }
8487
8508
  });
8488
8509
  traceCmd.command("flush").description("send what the spool holds, retrying with backoff").action(run(async () => {
8489
- const { readState, flush, grantSender } = await import("./trace-L26WH5K6.js");
8510
+ const { readState, flush, grantSender } = await import("./trace-6KAXVDDM.js");
8490
8511
  const state = readState();
8491
8512
  if (!state) throw new Error("no trace is running here");
8492
8513
  const outcome = await flush(grantSender(state), { attempts: 4 });
8493
8514
  console.log(`sent ${outcome.sent}, refused ${outcome.refused}, given up ${outcome.expired}, still pending ${outcome.pending}${outcome.stopped ? ` (stopped: ${outcome.stopped})` : ""}`);
8494
8515
  }));
8495
8516
  traceCmd.command("status").description("the running trace and its spool").action(run(async () => {
8496
- const { readState, spoolStatus } = await import("./trace-L26WH5K6.js");
8517
+ const { readState, spoolStatus } = await import("./trace-6KAXVDDM.js");
8497
8518
  const state = readState();
8498
8519
  if (!state) {
8499
8520
  console.log("No trace is running here.");
@@ -8503,7 +8524,7 @@ traceCmd.command("status").description("the running trace and its spool").action
8503
8524
  console.log(`${state.trace_id} as ${state.source}: ${spool.pending} pending, ${spool.dropped_full} dropped (spool full), ${spool.dropped_expired} given up, ${spool.refused} refused`);
8504
8525
  }));
8505
8526
  traceCmd.command("show [id]").description("the trace bundle: spans, the sessions they reach, cost counted once per session").option("--json", "print the bundle as JSON").action(run(async (id, opts) => {
8506
- const { readState } = await import("./trace-L26WH5K6.js");
8527
+ const { readState } = await import("./trace-6KAXVDDM.js");
8507
8528
  const ref = id ?? readState()?.trace_id;
8508
8529
  if (!ref) throw new Error("name a trace, or start one here");
8509
8530
  const bundle = await api("GET", `/traces/${ref}`);
@@ -8530,7 +8551,7 @@ traceCmd.command("show [id]").description("the trace bundle: spans, the sessions
8530
8551
  for (const gap of bundle.gaps) console.log(` gap: ${gap.span_id} ${gap.reason}`);
8531
8552
  }));
8532
8553
  traceCmd.command("stop").description("end the root span, send what is left, and revoke this machine's grant").action(run(async () => {
8533
- const { readState, record, flush, grantSender, clearState } = await import("./trace-L26WH5K6.js");
8554
+ const { readState, record, flush, grantSender, clearState } = await import("./trace-6KAXVDDM.js");
8534
8555
  const state = readState();
8535
8556
  if (!state) throw new Error("no trace is running here");
8536
8557
  if (state.root_span) record(() => [{ span_id: state.root_span, kind: "end", outcome: "completed" }]);
@@ -8540,7 +8561,7 @@ traceCmd.command("stop").description("end the root span, send what is left, and
8540
8561
  console.log(`Stopped ${state.trace_id}${outcome.pending ? ` (${outcome.pending} events could not be sent)` : ""}`);
8541
8562
  }));
8542
8563
  traceCmd.command("sync [payload]").description("upload this machine's agent sessions (Claude Code, Codex, Cursor, Gemini CLI and every other agent `--agents` lists) to the matching workspace's trace library, redacted here first").option("--enable", "turn sync on for this machine").option("--disable", "turn sync off; nothing more is uploaded").option("--route <match=workspace>", "send sessions whose folder path contains <match> to <workspace> (repeatable; replaces the saved rules)", collect).option("--default <workspace>", "where a session no rule matches goes").option("--keep-local", "keep sessions no rule matches on this machine (the default)").option("--session <ref>", "only this session: its id or transcript path (repeatable)", collect).option("--import <export>", "add a downloaded cloud export (claude.ai, ChatGPT, Gemini, Grok, DeepSeek \u2026: its .zip, folder or file) so sync uploads it (repeatable)", collect).option("--agents", "list the agents sync reads and which are on this machine").option("--full", "re-read every session, not only files that changed").option("--limit <n>", "at most this many changed sessions this run", (v) => Number.parseInt(v, 10)).option("--dry-run", "show what would be uploaded without uploading").option("--hook", "run from a Claude Code SessionEnd hook or Codex notify: upload that session in the background and return at once").option("--install-schedule", "also sweep every 15 minutes (macOS launchd)").option("--status", "what sync has done on this machine").option("--quiet", "print only failures").action(async (payload, opts) => {
8543
- const lib = await import("./trace-library-HLDGAMIU.js");
8564
+ const lib = await import("./trace-library-C7ZM4BA2.js");
8544
8565
  if (opts.hook) {
8545
8566
  try {
8546
8567
  let raw = payload ?? "";
@@ -8655,7 +8676,7 @@ traceCmd.command("search <query...>").description("search every session in a wor
8655
8676
  console.log(opts.json ? JSON.stringify(page, null, 2) : renderContextPage(page));
8656
8677
  }));
8657
8678
  traceCmd.command("library").description("list the sessions in a workspace's trace library, most recently updated first").option("--workspace <slug>", "the workspace (default: the current one)").option("--limit <n>", "how many", (v) => Number.parseInt(v, 10), 20).option("--json", "print the page as JSON").action(run(async (opts) => {
8658
- const { libraryRequest } = await import("./trace-library-HLDGAMIU.js");
8679
+ const { libraryRequest } = await import("./trace-library-C7ZM4BA2.js");
8659
8680
  const workspace2 = opts.workspace ?? currentUniverse();
8660
8681
  if (!workspace2) throw new Error("name a workspace with --workspace");
8661
8682
  const page = await libraryRequest("GET", `/trace-library?limit=${opts.limit}`, workspace2);
@@ -2,7 +2,7 @@ import {
2
2
  admittedInputScopeSchema,
3
3
  external_exports,
4
4
  messagePartSchema
5
- } from "./chunk-FRZEEUWH.js";
5
+ } from "./chunk-OFH52W34.js";
6
6
  import "./chunk-MLKGABMK.js";
7
7
 
8
8
  // ../../packages/chat/src/stream.ts
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  USER_AGENT,
3
3
  configPath
4
- } from "./chunk-HWDI7WA5.js";
4
+ } from "./chunk-ABDGMJYV.js";
5
5
  import {
6
6
  TRACE_CONTENT_SCOPES,
7
7
  redactTraceText
8
- } from "./chunk-FRZEEUWH.js";
8
+ } from "./chunk-OFH52W34.js";
9
9
  import "./chunk-MLKGABMK.js";
10
10
 
11
11
  // src/trace.ts
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  ApiError
3
- } from "./chunk-CGBZMNTO.js";
3
+ } from "./chunk-5OBCA2MM.js";
4
4
  import {
5
5
  USER_AGENT,
6
6
  apiBase,
7
7
  apiToken
8
- } from "./chunk-HWDI7WA5.js";
8
+ } from "./chunk-ABDGMJYV.js";
9
9
  import {
10
10
  SessionSourceCollector,
11
11
  publicRemote,
12
12
  redactTraceText
13
- } from "./chunk-FRZEEUWH.js";
13
+ } from "./chunk-OFH52W34.js";
14
14
  import "./chunk-MLKGABMK.js";
15
15
 
16
16
  // src/trace-library.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentsky/sky",
3
- "version": "2.27.0",
3
+ "version": "2.28.0",
4
4
  "description": "sky \u2014 the AgentSky developer CLI: launch and talk to long-lived agents from your terminal.",
5
5
  "license": "MIT",
6
6
  "type": "module",