@agentsky/sky 2.28.0 → 2.29.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-ABDGMJYV.js";
6
+ } from "./chunk-QZLKHGX6.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-XZOV6WUV.js");
152
+ const { parseSseStream } = await import("./src-XQQXF3IG.js");
153
153
  const res = await fetch(
154
154
  `${apiBase()}/sessions/${encodeURIComponent(sessionId)}/stream`,
155
155
  {
@@ -18976,14 +18976,14 @@ var CATALOG_MODELS = [
18976
18976
  "tiers": [
18977
18977
  {
18978
18978
  "maxPromptTokens": 1048576,
18979
- "input": 0.09284,
18980
- "output": 0.58025,
18981
- "cachedInput": 9284e-6
18979
+ "input": 0.090984,
18980
+ "output": 0.27295,
18981
+ "cachedInput": 2731e-6
18982
18982
  }
18983
18983
  ],
18984
18984
  "maxPrice": {
18985
- "prompt": 0.08,
18986
- "completion": 0.5
18985
+ "prompt": 0.08624,
18986
+ "completion": 0.25872
18987
18987
  },
18988
18988
  "reasoningEfforts": [
18989
18989
  "none",
@@ -19041,14 +19041,14 @@ var CATALOG_MODELS = [
19041
19041
  "tiers": [
19042
19042
  {
19043
19043
  "maxPromptTokens": 1048576,
19044
- "input": 0.105606,
19045
- "output": 0.211211,
19046
- "cachedInput": 2114e-6
19044
+ "input": 0.1381,
19045
+ "output": 0.276199,
19046
+ "cachedInput": 2961e-6
19047
19047
  }
19048
19048
  ],
19049
19049
  "maxPrice": {
19050
- "prompt": 0.1001,
19051
- "completion": 0.2002
19050
+ "prompt": 0.1309,
19051
+ "completion": 0.2618
19052
19052
  },
19053
19053
  "reasoningEfforts": [],
19054
19054
  "quantizations": [
@@ -19198,9 +19198,9 @@ var CATALOG_MODELS = [
19198
19198
  "tiers": [
19199
19199
  {
19200
19200
  "maxPromptTokens": 1048576,
19201
- "input": 0.58025,
19202
- "output": 3.4815,
19203
- "cachedInput": 0.058025,
19201
+ "input": 0.527501,
19202
+ "output": 3.165001,
19203
+ "cachedInput": 0.052751,
19204
19204
  "cacheWrite": 0.35
19205
19205
  }
19206
19206
  ],
@@ -19208,19 +19208,19 @@ var CATALOG_MODELS = [
19208
19208
  "prompt": 0.5,
19209
19209
  "completion": 3
19210
19210
  },
19211
- "quantizations": [
19212
- "fp8",
19213
- "fp16",
19214
- "bf16",
19215
- "fp32",
19216
- "unknown"
19217
- ],
19218
19211
  "reasoningEfforts": [
19219
19212
  "none",
19220
19213
  "minimal",
19221
19214
  "low",
19222
19215
  "medium",
19223
19216
  "high"
19217
+ ],
19218
+ "quantizations": [
19219
+ "fp8",
19220
+ "fp16",
19221
+ "bf16",
19222
+ "fp32",
19223
+ "unknown"
19224
19224
  ]
19225
19225
  },
19226
19226
  {
@@ -19233,28 +19233,28 @@ var CATALOG_MODELS = [
19233
19233
  "tiers": [
19234
19234
  {
19235
19235
  "maxPromptTokens": 1048576,
19236
- "input": 0.870375,
19237
- "output": 4.351875,
19238
- "cachedInput": 0.087038,
19239
- "cacheWrite": 0.048355
19236
+ "input": 0.791251,
19237
+ "output": 3.956251,
19238
+ "cachedInput": 0.079126,
19239
+ "cacheWrite": 0.525
19240
19240
  }
19241
19241
  ],
19242
19242
  "maxPrice": {
19243
19243
  "prompt": 0.75,
19244
19244
  "completion": 3.75
19245
19245
  },
19246
+ "reasoningEfforts": [
19247
+ "minimal",
19248
+ "low",
19249
+ "medium",
19250
+ "high"
19251
+ ],
19246
19252
  "quantizations": [
19247
19253
  "fp8",
19248
19254
  "fp16",
19249
19255
  "bf16",
19250
19256
  "fp32",
19251
19257
  "unknown"
19252
- ],
19253
- "reasoningEfforts": [
19254
- "minimal",
19255
- "low",
19256
- "medium",
19257
- "high"
19258
19258
  ]
19259
19259
  },
19260
19260
  {
@@ -19267,27 +19267,27 @@ var CATALOG_MODELS = [
19267
19267
  "tiers": [
19268
19268
  {
19269
19269
  "maxPromptTokens": 1048576,
19270
- "input": 0.870375,
19271
- "output": 4.351875,
19272
- "cachedInput": 0.087038,
19273
- "cacheWrite": 0.048355
19270
+ "input": 0.791251,
19271
+ "output": 3.956251,
19272
+ "cachedInput": 0.079126,
19273
+ "cacheWrite": 0.04396
19274
19274
  }
19275
19275
  ],
19276
19276
  "maxPrice": {
19277
19277
  "prompt": 0.75,
19278
19278
  "completion": 3.75
19279
19279
  },
19280
+ "reasoningEfforts": [
19281
+ "low",
19282
+ "medium",
19283
+ "high"
19284
+ ],
19280
19285
  "quantizations": [
19281
19286
  "fp8",
19282
19287
  "fp16",
19283
19288
  "bf16",
19284
19289
  "fp32",
19285
19290
  "unknown"
19286
- ],
19287
- "reasoningEfforts": [
19288
- "low",
19289
- "medium",
19290
- "high"
19291
19291
  ]
19292
19292
  },
19293
19293
  {
@@ -19356,9 +19356,9 @@ var CATALOG_MODELS = [
19356
19356
  "tiers": [
19357
19357
  {
19358
19358
  "maxPromptTokens": 271999,
19359
- "input": 3.191375,
19360
- "output": 19.14825,
19361
- "cachedInput": 0.319138
19359
+ "input": 2.90125,
19360
+ "output": 17.4075,
19361
+ "cachedInput": 0.290125
19362
19362
  },
19363
19363
  {
19364
19364
  "maxPromptTokens": 105e4,
@@ -19773,15 +19773,15 @@ var CATALOG_MODELS = [
19773
19773
  "maxOutputTokens": 131072,
19774
19774
  "tiers": [
19775
19775
  {
19776
- "maxPromptTokens": 202752,
19777
- "input": 1.121043,
19778
- "output": 3.523278,
19779
- "cachedInput": 0.208194
19776
+ "maxPromptTokens": 2e5,
19777
+ "input": 1.04445,
19778
+ "output": 3.36545,
19779
+ "cachedInput": 0.189268
19780
19780
  }
19781
19781
  ],
19782
19782
  "maxPrice": {
19783
- "prompt": 1.0626,
19784
- "completion": 3.3396
19783
+ "prompt": 0.99,
19784
+ "completion": 3.19
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.611072,
19812
- "completion": 1.920512
19811
+ "prompt": 0.674366,
19812
+ "completion": 2.119436
19813
19813
  },
19814
19814
  "reasoningEfforts": [
19815
19815
  "none",
@@ -19947,14 +19947,14 @@ var CATALOG_MODELS = [
19947
19947
  "tiers": [
19948
19948
  {
19949
19949
  "maxPromptTokens": 1048576,
19950
- "input": 0.290125,
19951
- "output": 1.1605,
19952
- "cachedInput": 0.058025
19950
+ "input": 0.4642,
19951
+ "output": 1.3926,
19952
+ "cachedInput": 0.04642
19953
19953
  }
19954
19954
  ],
19955
19955
  "maxPrice": {
19956
- "prompt": 0.275,
19957
- "completion": 1.1
19956
+ "prompt": 0.44,
19957
+ "completion": 1.32
19958
19958
  },
19959
19959
  "reasoningEfforts": [
19960
19960
  "low",
@@ -20129,10 +20129,10 @@ var CATALOG_MODELS = [
20129
20129
  "tiers": [
20130
20130
  {
20131
20131
  "maxPromptTokens": 271999,
20132
- "input": 2.321,
20133
- "output": 11.605,
20134
- "cachedInput": 0.11605,
20135
- "cacheWrite": 2.90125
20132
+ "input": 2.110001,
20133
+ "output": 10.550001,
20134
+ "cachedInput": 0.105501,
20135
+ "cacheWrite": 2.637501
20136
20136
  },
20137
20137
  {
20138
20138
  "maxPromptTokens": 105e4,
@@ -20431,10 +20431,10 @@ var CATALOG_MODELS = [
20431
20431
  "tiers": [
20432
20432
  {
20433
20433
  "maxPromptTokens": 271999,
20434
- "input": 0.11605,
20435
- "output": 0.58025,
20436
- "cachedInput": 0.011605,
20437
- "cacheWrite": 0.145063
20434
+ "input": 0.105501,
20435
+ "output": 0.527501,
20436
+ "cachedInput": 0.010551,
20437
+ "cacheWrite": 0.131876
20438
20438
  },
20439
20439
  {
20440
20440
  "maxPromptTokens": 105e4,
@@ -20647,10 +20647,10 @@ var CATALOG_MODELS = [
20647
20647
  "tiers": [
20648
20648
  {
20649
20649
  "maxPromptTokens": 271999,
20650
- "input": 11.605,
20651
- "output": 58.025,
20652
- "cachedInput": 1.1605,
20653
- "cacheWrite": 14.50625
20650
+ "input": 10.550001,
20651
+ "output": 52.750001,
20652
+ "cachedInput": 1.055001,
20653
+ "cacheWrite": 13.187501
20654
20654
  },
20655
20655
  {
20656
20656
  "maxPromptTokens": 105e4,
@@ -20689,13 +20689,13 @@ var CATALOG_MODELS = [
20689
20689
  "tiers": [
20690
20690
  {
20691
20691
  "maxPromptTokens": 131072,
20692
- "input": 0.11605,
20692
+ "input": 0.06963,
20693
20693
  "output": 0.174075,
20694
- "cachedInput": 0.058025
20694
+ "cachedInput": 0.017408
20695
20695
  }
20696
20696
  ],
20697
20697
  "maxPrice": {
20698
- "prompt": 0.11,
20698
+ "prompt": 0.066,
20699
20699
  "completion": 0.165
20700
20700
  },
20701
20701
  "reasoningEfforts": [
@@ -21294,6 +21294,77 @@ var CATALOG_MODELS = [
21294
21294
  "high",
21295
21295
  "max"
21296
21296
  ]
21297
+ },
21298
+ {
21299
+ "id": "openai/gpt-6.1-terra",
21300
+ "openRouterId": "openai/gpt-6.1-terra",
21301
+ "label": "GPT-6.1 Terra",
21302
+ "maker": "OpenAI",
21303
+ "contextLength": 105e4,
21304
+ "maxOutputTokens": 128e3,
21305
+ "tiers": [
21306
+ {
21307
+ "maxPromptTokens": 271999,
21308
+ "input": 1.055001,
21309
+ "output": 5.275001,
21310
+ "cachedInput": 0.052751,
21311
+ "cacheWrite": 1.318751
21312
+ },
21313
+ {
21314
+ "maxPromptTokens": 105e4,
21315
+ "input": 2.321,
21316
+ "output": 8.70375,
21317
+ "cachedInput": 0.11605,
21318
+ "cacheWrite": 2.90125
21319
+ }
21320
+ ],
21321
+ "maxPrice": {
21322
+ "prompt": 1,
21323
+ "completion": 5
21324
+ },
21325
+ "reasoningEfforts": [
21326
+ "none",
21327
+ "low",
21328
+ "medium",
21329
+ "high",
21330
+ "xhigh",
21331
+ "max"
21332
+ ]
21333
+ },
21334
+ {
21335
+ "id": "openai/gpt-6.1-terra-pro",
21336
+ "openRouterId": "openai/gpt-6.1-terra-pro",
21337
+ "label": "GPT-6.1 Terra Pro",
21338
+ "maker": "OpenAI",
21339
+ "contextLength": 105e4,
21340
+ "maxOutputTokens": 128e3,
21341
+ "tiers": [
21342
+ {
21343
+ "maxPromptTokens": 271999,
21344
+ "input": 1.055001,
21345
+ "output": 5.275001,
21346
+ "cachedInput": 0.052751,
21347
+ "cacheWrite": 1.318751
21348
+ },
21349
+ {
21350
+ "maxPromptTokens": 105e4,
21351
+ "input": 2.321,
21352
+ "output": 8.70375,
21353
+ "cachedInput": 0.11605,
21354
+ "cacheWrite": 2.90125
21355
+ }
21356
+ ],
21357
+ "maxPrice": {
21358
+ "prompt": 1,
21359
+ "completion": 5
21360
+ },
21361
+ "reasoningEfforts": [
21362
+ "low",
21363
+ "medium",
21364
+ "high",
21365
+ "xhigh",
21366
+ "max"
21367
+ ]
21297
21368
  }
21298
21369
  ];
21299
21370
 
@@ -22248,7 +22319,7 @@ var ACP_AGENTS = {
22248
22319
  "registryId": "cline",
22249
22320
  "label": "Cline",
22250
22321
  "description": "Autonomous coding agent CLI - capable of creating/editing files, running commands, using the browser, and more",
22251
- "version": "3.0.73",
22322
+ "version": "3.0.74",
22252
22323
  "website": "https://cline.bot/cli",
22253
22324
  "tools": [
22254
22325
  { "id": "browser", "kind": "fetch", "title": "Headless browser", "requires": { "packages": { "apt": ["chromium"] } } },
@@ -22394,7 +22465,7 @@ var ACP_AGENTS = {
22394
22465
  "registryId": "kilo",
22395
22466
  "label": "Kilo",
22396
22467
  "description": "The open source coding agent",
22397
- "version": "7.8.17",
22468
+ "version": "7.8.18",
22398
22469
  "website": "https://kilo.ai/"
22399
22470
  },
22400
22471
  "kimchi": {
@@ -22408,7 +22479,7 @@ var ACP_AGENTS = {
22408
22479
  "registryId": "minimax-code",
22409
22480
  "label": "MiniMax Code",
22410
22481
  "description": "MiniMax Code is an AI coding agent with Agent Client Protocol support.",
22411
- "version": "0.6.12",
22482
+ "version": "0.7.0",
22412
22483
  "website": "https://agent.minimax.io"
22413
22484
  },
22414
22485
  "minion_code": {
@@ -22457,7 +22528,7 @@ var ACP_AGENTS = {
22457
22528
  "registryId": "sigit",
22458
22529
  "label": "siGit Code",
22459
22530
  "description": "Local-first coding agent. Runs entirely on your machine with optional on-device LLM inference via Onde.",
22460
- "version": "1.7.4",
22531
+ "version": "1.7.5",
22461
22532
  "website": "https://github.com/getsigit/sigit"
22462
22533
  },
22463
22534
  "stakpak": {
@@ -22565,7 +22636,7 @@ var GEMINI = ["gemini-4-argon", "gemini-3.8-flash", "gemini-3.5-flash-lite"];
22565
22636
  var CLAUDE_5_5 = ["claude-sonnet-5-5", "claude-haiku-5-5"];
22566
22637
  var KIMI_K3_1 = ["kimi-k3.1-pro"];
22567
22638
  var HARNESS_MODEL_ADDITIONS = {
22568
- claude_code: [{ models: CLAUDE_5_5, releases: ["2.1.295", "2.1.296", "2.1.303", "2.1.310"] }, {
22639
+ claude_code: [{ models: CLAUDE_5_5, releases: ["2.1.295", "2.1.296", "2.1.303", "2.1.310", "2.1.311"] }, {
22569
22640
  models: [
22570
22641
  "gpt-6.1-sol",
22571
22642
  "gpt-6-sol",
@@ -22588,7 +22659,7 @@ var HARNESS_MODEL_ADDITIONS = {
22588
22659
  ...MINIMAX,
22589
22660
  ...CATALOG_IDS
22590
22661
  ],
22591
- releases: ["2.1.303", "2.1.310"]
22662
+ releases: ["2.1.303", "2.1.310", "2.1.311"]
22592
22663
  }],
22593
22664
  codex: [{ models: KIMI_K3_1, releases: ["0.163.0"] }, { models: [...CLAUDE_5_5, ...GEMINI, "grok-4.7", ...MUSE, ...MINIMAX, ...CATALOG_IDS], releases: ["0.163.0"] }],
22594
22665
  hermes: [
@@ -22608,16 +22679,16 @@ var HARNESS_MODEL_ADDITIONS = {
22608
22679
  ],
22609
22680
  fast_agent: [{ models: KIMI_K3_1, releases: ["0.10.46"] }, { models: ["grok-4.7"], releases: ["0.10.43", "0.10.46"] }, { models: ["claude-sonnet-5-5", "claude-haiku-5-5"], releases: ["0.10.43", "0.10.46"] }],
22610
22681
  goose: [{ models: KIMI_K3_1, releases: ["1.54.0"] }, { models: ["grok-4.7"], releases: ["1.54.0"] }, { models: ["claude-sonnet-5-5", "claude-haiku-5-5"], releases: ["1.54.0"] }],
22611
- kilo: [{ models: KIMI_K3_1, releases: ["7.8.17"] }, { models: ["grok-4.7"], releases: ["7.8.8", "7.8.12", "7.8.15", "7.8.17"] }, { models: ["claude-sonnet-5-5", "claude-haiku-5-5"], releases: ["7.8.8", "7.8.12", "7.8.15", "7.8.17"] }],
22682
+ kilo: [{ models: KIMI_K3_1, releases: ["7.8.17", "7.8.18"] }, { models: ["grok-4.7"], releases: ["7.8.8", "7.8.12", "7.8.15", "7.8.17", "7.8.18"] }, { models: ["claude-sonnet-5-5", "claude-haiku-5-5"], releases: ["7.8.8", "7.8.12", "7.8.15", "7.8.17", "7.8.18"] }],
22612
22683
  docker_cagent: [{ models: KIMI_K3_1, releases: ["1.152.0"] }, { models: ["grok-4.7"], releases: ["1.150.0", "1.151.0", "1.152.0"] }, { models: ["claude-sonnet-5-5", "claude-haiku-5-5"], releases: ["1.150.0", "1.151.0", "1.152.0"] }],
22613
- cline: [{ models: KIMI_K3_1, releases: ["3.0.73"] }, { models: ["grok-4.7"], releases: ["3.0.70", "3.0.73"] }],
22684
+ cline: [{ models: KIMI_K3_1, releases: ["3.0.73", "3.0.74"] }, { models: ["grok-4.7"], releases: ["3.0.70", "3.0.73", "3.0.74"] }],
22614
22685
  grok_build: [{ models: KIMI_K3_1, releases: ["1.0.70"] }, { models: ["grok-4.7"], releases: ["1.0.50", "1.0.62", "1.0.67", "1.0.70"] }],
22615
22686
  mistral_vibe: [{ models: ["grok-4.7"], releases: ["2.26.1"] }],
22616
- sigit: [{ models: KIMI_K3_1, releases: ["1.7.4"] }, { models: ["grok-4.7"], releases: ["1.6.5", "1.7.2", "1.7.3", "1.7.4"] }],
22687
+ sigit: [{ models: KIMI_K3_1, releases: ["1.7.4", "1.7.5"] }, { models: ["grok-4.7"], releases: ["1.6.5", "1.7.2", "1.7.3", "1.7.4", "1.7.5"] }],
22617
22688
  cursor: [{ models: ["kimi-k2.7-code"], releases: ["2026.10.01"] }],
22618
- minimax_code: [{ models: KIMI_K3_1, releases: ["0.6.12"] }, { models: ["grok-4.7"], releases: ["0.6.5", "0.6.12"] }, { models: ["claude-sonnet-5-5", "claude-haiku-5-5"], releases: ["0.6.5", "0.6.12"] }, {
22689
+ minimax_code: [{ models: KIMI_K3_1, releases: ["0.6.12", "0.7.0"] }, { models: ["grok-4.7"], releases: ["0.6.5", "0.6.12", "0.7.0"] }, { models: ["claude-sonnet-5-5", "claude-haiku-5-5"], releases: ["0.6.5", "0.6.12", "0.7.0"] }, {
22619
22690
  models: ["gpt-6.1-sol", "gpt-6-sol", "gpt-6-luna", "gpt-5.6-sol", "claude-opus-5", "claude-opus-5-5"],
22620
- releases: ["0.6.2", "0.6.3", "0.6.4", "0.6.5", "0.6.12"]
22691
+ releases: ["0.6.2", "0.6.3", "0.6.4", "0.6.5", "0.6.12", "0.7.0"]
22621
22692
  }],
22622
22693
  dsh: [{ models: KIMI_K3_1, releases: ["0.1.5rc1"] }, {
22623
22694
  models: [
@@ -25036,6 +25107,9 @@ var CHATGPT_PLAN_MODELS = /* @__PURE__ */ new Set([
25036
25107
  ]);
25037
25108
  var CHATGPT_PLAN_HARNESSES = /* @__PURE__ */ new Set(["codex", "pi", "hermes", "opencode", "openclaw"]);
25038
25109
  var CLAUDE_PLAN_MODELS = /* @__PURE__ */ new Set([
25110
+ "claude-opus-5-5",
25111
+ "claude-sonnet-5-5",
25112
+ "claude-haiku-5-5",
25039
25113
  "claude-opus-5",
25040
25114
  "claude-fable-5-1",
25041
25115
  "claude-sonnet-5",
@@ -38,7 +38,7 @@ function currentUniverse() {
38
38
  }
39
39
 
40
40
  // src/version.ts
41
- var CLI_VERSION = "2.28.0";
41
+ var CLI_VERSION = "2.29.0";
42
42
  var USER_AGENT = `sky-cli/${CLI_VERSION} (${process.platform}; node/${process.versions.node})`;
43
43
 
44
44
  export {
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  streamEvents,
12
12
  uploadFile,
13
13
  writeResponseFile
14
- } from "./chunk-5OBCA2MM.js";
14
+ } from "./chunk-GEL5GWF2.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-ABDGMJYV.js";
25
+ } from "./chunk-QZLKHGX6.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-OFH52W34.js";
47
+ } from "./chunk-ISORBGQX.js";
48
48
  import "./chunk-MLKGABMK.js";
49
49
 
50
50
  // src/index.ts
@@ -5219,6 +5219,66 @@ function renderReachRequest(request) {
5219
5219
  return `${request.id} ${request.status}${request.error ? ` ${request.error.code}: ${request.error.message}` : ""}`;
5220
5220
  }
5221
5221
 
5222
+ // ../../packages/uikit-components/src/capabilities-overview.ts
5223
+ var CAPABILITY_KINDS = [
5224
+ { kind: "connector", title: "Connected apps", manage: "connectors" },
5225
+ { kind: "tool", title: "Tools", manage: "tools" },
5226
+ { kind: "plugin", title: "Plugins", manage: "plugins" },
5227
+ { kind: "mcp_server", title: "MCP servers", manage: "vaults" },
5228
+ { kind: "vault", title: "Secrets", manage: "vaults" },
5229
+ { kind: "browser", title: "Browser logins", manage: "browser-logins" },
5230
+ { kind: "mac", title: "Lent by your Macs", manage: "mac" },
5231
+ { kind: "plan", title: "Your plans", manage: "plans" }
5232
+ ];
5233
+ var CAPABILITY_WHERE_LABEL = { cloud: "Cloud", mac: "Mac", both: "Cloud and Mac" };
5234
+ var CAPABILITY_STATUS_LABEL = {
5235
+ on: "On",
5236
+ connected: "Connected",
5237
+ needs_signin: "Needs sign-in",
5238
+ needs_permission: "Needs permission",
5239
+ off: "Off"
5240
+ };
5241
+ var CAPABILITY_COST_LABEL = { free: "Free", credits: "Credits", plan: "Your plan", provider: "Provider pricing" };
5242
+ function sharerLabel(sharer) {
5243
+ if (sharer.type === "me") return "You";
5244
+ if (sharer.type === "workspace") return "Workspace";
5245
+ return sharer.name;
5246
+ }
5247
+ function needsAttention(item) {
5248
+ return item.status === "needs_signin" || item.status === "needs_permission";
5249
+ }
5250
+ function capabilityLine(item) {
5251
+ const where = item.kind === "mac" && item.machine ? item.machine.name : CAPABILITY_WHERE_LABEL[item.where];
5252
+ return [where, sharerLabel(item.shared_by), CAPABILITY_COST_LABEL[item.cost]].join(" \xB7 ");
5253
+ }
5254
+ var attentionFirst = (a, b) => Number(needsAttention(b)) - Number(needsAttention(a));
5255
+ function capabilityGroups(items) {
5256
+ return CAPABILITY_KINDS.flatMap(({ kind, title, manage }) => {
5257
+ const rows = items.filter((item) => item.kind === kind).sort(attentionFirst);
5258
+ if (rows.length === 0) return [];
5259
+ return [{ kind, title, manage, items: rows, attention: rows.filter(needsAttention).length }];
5260
+ });
5261
+ }
5262
+
5263
+ // src/capabilities.ts
5264
+ async function listCapabilities() {
5265
+ return api("GET", "/capabilities");
5266
+ }
5267
+ function renderCapabilities(overview, options = {}) {
5268
+ const rows = options.attention ? overview.data.filter(needsAttention) : overview.data;
5269
+ const lines = [];
5270
+ for (const group of capabilityGroups(rows)) {
5271
+ lines.push(group.attention ? `${group.title} (${group.attention} need${group.attention === 1 ? "s" : ""} you)` : group.title);
5272
+ for (const item of group.items) {
5273
+ const detail = item.detail ? ` ${item.detail}` : "";
5274
+ lines.push(` ${item.name} ${CAPABILITY_STATUS_LABEL[item.status].toLowerCase()} ${capabilityLine(item)}${detail}`);
5275
+ }
5276
+ }
5277
+ for (const gap of overview.unavailable) lines.push(`(${gap.message})`);
5278
+ if (!lines.length) return options.attention ? "nothing needs you" : "nothing yet: connect an app (sky connectors) or install a plugin (sky plugins install)";
5279
+ return lines.join("\n");
5280
+ }
5281
+
5222
5282
  // src/compare.ts
5223
5283
  async function listComparisons(opts = {}) {
5224
5284
  const qs = opts.archived ? "?archived=true" : "";
@@ -8103,6 +8163,16 @@ vendor.command("usage <id>").description("the agents and tasks that used this ve
8103
8163
  for (const t of tasks) console.log(` task ${t.session_id} ${t.title ?? "(untitled)"} ${t.last_used_at.slice(0, 10)}`);
8104
8164
  })
8105
8165
  );
8166
+ program.command("capabilities").description("everything your agents can use here: connected apps, tools, plugins, MCP servers, secrets, browser logins, what your Macs lend and your plans \u2014 where each works, who shared it, its status and its cost").option("--attention", "only what needs you: a sign-in or a permission").option("--json", "print as JSON").action(
8167
+ run(async (opts) => {
8168
+ const overview = await listCapabilities();
8169
+ if (opts.json) {
8170
+ console.log(JSON.stringify(overview, null, 2));
8171
+ return;
8172
+ }
8173
+ console.log(renderCapabilities(overview, { attention: opts.attention }));
8174
+ })
8175
+ );
8106
8176
  var mac = program.command("mac").description("your Macs: what each lends to agents now, and asking one for a folder, a browser window, its screen or its apps and files");
8107
8177
  mac.command("list").description("your Macs: online or not, what each can lend, and the folders, browser windows and screens lent now").option("--json", "print as JSON").action(
8108
8178
  run(async (opts) => {
@@ -8459,7 +8529,7 @@ harness.command("connect").description("run an ACP agent (the command after --)
8459
8529
  }));
8460
8530
  var traceCmd = program.command("trace").description("correlate this machine's agent work with the cloud sessions it starts (metadata only unless you choose content)");
8461
8531
  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) => {
8462
- const { readState, writeState, record, installClaudeHooks, parseContentScopes, chosenPaths, fileEvent } = await import("./trace-6KAXVDDM.js");
8532
+ const { readState, writeState, record, installClaudeHooks, parseContentScopes, chosenPaths, fileEvent } = await import("./trace-RUZF6QL6.js");
8463
8533
  if (readState()) throw new Error("a trace is already running here \u2014 `sky trace stop` it first");
8464
8534
  const scopes = parseContentScopes(opts.capture);
8465
8535
  const chosen = chosenPaths(opts.file ?? [], opts.dir ?? []);
@@ -8494,7 +8564,7 @@ traceCmd.command("start").description("start a trace: a grant for this machine,
8494
8564
  }));
8495
8565
  traceCmd.command("hook").description("record one Claude Code hook event read from stdin (run by the installed hooks; never fails, prints nothing)").action(async () => {
8496
8566
  try {
8497
- const { readState, record, flush, grantSender, eventsForClaudeHook, contentForClaudeHook, clearState } = await import("./trace-6KAXVDDM.js");
8567
+ const { readState, record, flush, grantSender, eventsForClaudeHook, contentForClaudeHook, clearState } = await import("./trace-RUZF6QL6.js");
8498
8568
  const chunks = [];
8499
8569
  for await (const chunk of process.stdin) chunks.push(chunk);
8500
8570
  const input = JSON.parse(Buffer.concat(chunks).toString("utf8") || "{}");
@@ -8507,14 +8577,14 @@ traceCmd.command("hook").description("record one Claude Code hook event read fro
8507
8577
  }
8508
8578
  });
8509
8579
  traceCmd.command("flush").description("send what the spool holds, retrying with backoff").action(run(async () => {
8510
- const { readState, flush, grantSender } = await import("./trace-6KAXVDDM.js");
8580
+ const { readState, flush, grantSender } = await import("./trace-RUZF6QL6.js");
8511
8581
  const state = readState();
8512
8582
  if (!state) throw new Error("no trace is running here");
8513
8583
  const outcome = await flush(grantSender(state), { attempts: 4 });
8514
8584
  console.log(`sent ${outcome.sent}, refused ${outcome.refused}, given up ${outcome.expired}, still pending ${outcome.pending}${outcome.stopped ? ` (stopped: ${outcome.stopped})` : ""}`);
8515
8585
  }));
8516
8586
  traceCmd.command("status").description("the running trace and its spool").action(run(async () => {
8517
- const { readState, spoolStatus } = await import("./trace-6KAXVDDM.js");
8587
+ const { readState, spoolStatus } = await import("./trace-RUZF6QL6.js");
8518
8588
  const state = readState();
8519
8589
  if (!state) {
8520
8590
  console.log("No trace is running here.");
@@ -8524,7 +8594,7 @@ traceCmd.command("status").description("the running trace and its spool").action
8524
8594
  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`);
8525
8595
  }));
8526
8596
  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) => {
8527
- const { readState } = await import("./trace-6KAXVDDM.js");
8597
+ const { readState } = await import("./trace-RUZF6QL6.js");
8528
8598
  const ref = id ?? readState()?.trace_id;
8529
8599
  if (!ref) throw new Error("name a trace, or start one here");
8530
8600
  const bundle = await api("GET", `/traces/${ref}`);
@@ -8551,7 +8621,7 @@ traceCmd.command("show [id]").description("the trace bundle: spans, the sessions
8551
8621
  for (const gap of bundle.gaps) console.log(` gap: ${gap.span_id} ${gap.reason}`);
8552
8622
  }));
8553
8623
  traceCmd.command("stop").description("end the root span, send what is left, and revoke this machine's grant").action(run(async () => {
8554
- const { readState, record, flush, grantSender, clearState } = await import("./trace-6KAXVDDM.js");
8624
+ const { readState, record, flush, grantSender, clearState } = await import("./trace-RUZF6QL6.js");
8555
8625
  const state = readState();
8556
8626
  if (!state) throw new Error("no trace is running here");
8557
8627
  if (state.root_span) record(() => [{ span_id: state.root_span, kind: "end", outcome: "completed" }]);
@@ -8561,7 +8631,7 @@ traceCmd.command("stop").description("end the root span, send what is left, and
8561
8631
  console.log(`Stopped ${state.trace_id}${outcome.pending ? ` (${outcome.pending} events could not be sent)` : ""}`);
8562
8632
  }));
8563
8633
  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) => {
8564
- const lib = await import("./trace-library-C7ZM4BA2.js");
8634
+ const lib = await import("./trace-library-5Y63PZAD.js");
8565
8635
  if (opts.hook) {
8566
8636
  try {
8567
8637
  let raw = payload ?? "";
@@ -8676,7 +8746,7 @@ traceCmd.command("search <query...>").description("search every session in a wor
8676
8746
  console.log(opts.json ? JSON.stringify(page, null, 2) : renderContextPage(page));
8677
8747
  }));
8678
8748
  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) => {
8679
- const { libraryRequest } = await import("./trace-library-C7ZM4BA2.js");
8749
+ const { libraryRequest } = await import("./trace-library-5Y63PZAD.js");
8680
8750
  const workspace2 = opts.workspace ?? currentUniverse();
8681
8751
  if (!workspace2) throw new Error("name a workspace with --workspace");
8682
8752
  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-OFH52W34.js";
5
+ } from "./chunk-ISORBGQX.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-ABDGMJYV.js";
4
+ } from "./chunk-QZLKHGX6.js";
5
5
  import {
6
6
  TRACE_CONTENT_SCOPES,
7
7
  redactTraceText
8
- } from "./chunk-OFH52W34.js";
8
+ } from "./chunk-ISORBGQX.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-5OBCA2MM.js";
3
+ } from "./chunk-GEL5GWF2.js";
4
4
  import {
5
5
  USER_AGENT,
6
6
  apiBase,
7
7
  apiToken
8
- } from "./chunk-ABDGMJYV.js";
8
+ } from "./chunk-QZLKHGX6.js";
9
9
  import {
10
10
  SessionSourceCollector,
11
11
  publicRemote,
12
12
  redactTraceText
13
- } from "./chunk-OFH52W34.js";
13
+ } from "./chunk-ISORBGQX.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.28.0",
3
+ "version": "2.29.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",