deepline 0.1.137 → 0.1.138

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.
@@ -101,10 +101,10 @@ export const SDK_RELEASE = {
101
101
  // 0.1.108 ships explicit dataset column/tool recompute policy and removes
102
102
  // the SDK enrich generator's one-second stale policy.
103
103
  // 0.1.110 ships authored V2 prebuilts and required top-level play descriptions.
104
- version: '0.1.137',
104
+ version: '0.1.138',
105
105
  apiContract: '2026-06-dataset-column-cell-stale-hard-cutover',
106
106
  supportPolicy: {
107
- latest: '0.1.137',
107
+ latest: '0.1.138',
108
108
  minimumSupported: '0.1.53',
109
109
  deprecatedBelow: '0.1.53',
110
110
  commandMinimumSupported: [
package/dist/cli/index.js CHANGED
@@ -619,10 +619,10 @@ var SDK_RELEASE = {
619
619
  // 0.1.108 ships explicit dataset column/tool recompute policy and removes
620
620
  // the SDK enrich generator's one-second stale policy.
621
621
  // 0.1.110 ships authored V2 prebuilts and required top-level play descriptions.
622
- version: "0.1.137",
622
+ version: "0.1.138",
623
623
  apiContract: "2026-06-dataset-column-cell-stale-hard-cutover",
624
624
  supportPolicy: {
625
- latest: "0.1.137",
625
+ latest: "0.1.138",
626
626
  minimumSupported: "0.1.53",
627
627
  deprecatedBelow: "0.1.53",
628
628
  commandMinimumSupported: [
@@ -22125,34 +22125,6 @@ async function fetchV1SkillNames(baseUrl) {
22125
22125
  function buildSdkSkillNames(v1SkillNames) {
22126
22126
  return sortedUniqueSkillNames(v1SkillNames);
22127
22127
  }
22128
- async function fetchSkillsUpdate(baseUrl, localVersion) {
22129
- const controller = new AbortController();
22130
- const timeout = setTimeout(() => controller.abort(), CHECK_TIMEOUT_MS2);
22131
- try {
22132
- const response = await fetch(new URL("/api/v2/cli/update-check", baseUrl), {
22133
- method: "POST",
22134
- headers: { "Content-Type": "application/json" },
22135
- body: JSON.stringify({
22136
- skills: {
22137
- version: localVersion
22138
- }
22139
- }),
22140
- signal: controller.signal
22141
- });
22142
- if (!response.ok) return null;
22143
- const data = await response.json().catch(() => null);
22144
- const skills = data?.skills;
22145
- if (!skills) return null;
22146
- return {
22147
- needsUpdate: skills.needs_update === true,
22148
- remoteVersion: typeof skills.remote?.version === "string" ? skills.remote.version.trim() : ""
22149
- };
22150
- } catch {
22151
- return null;
22152
- } finally {
22153
- clearTimeout(timeout);
22154
- }
22155
- }
22156
22128
  function buildSkillsInstallArgs(baseUrl, skillNames = DEFAULT_SDK_SKILL_NAMES) {
22157
22129
  return buildSkillsAddArgs(baseUrl, sortedUniqueSkillNames(skillNames));
22158
22130
  }
@@ -22293,6 +22265,12 @@ function writeSdkSkillsStatusLine(line) {
22293
22265
  process.stderr.write(`${line}
22294
22266
  `);
22295
22267
  }
22268
+ function skillsStaleHintLine(update) {
22269
+ if (!update?.needs_update || !update.remote.version) {
22270
+ return null;
22271
+ }
22272
+ return "Deepline agent skills are out of date. Run `deepline update` to sync.";
22273
+ }
22296
22274
  async function syncSdkSkillsIfNeeded(baseUrl, options = {}) {
22297
22275
  if (attemptedSync || shouldSkipSkillsSync()) return;
22298
22276
  attemptedSync = true;
@@ -22300,14 +22278,11 @@ async function syncSdkSkillsIfNeeded(baseUrl, options = {}) {
22300
22278
  if (usingPluginSkills) {
22301
22279
  return;
22302
22280
  }
22303
- const localVersion = readSdkSkillsLocalVersion(baseUrl);
22304
- const update = options.update === void 0 ? await fetchSkillsUpdate(baseUrl, localVersion) : options.update ? {
22305
- needsUpdate: options.update.needs_update,
22306
- remoteVersion: options.update.remote.version
22307
- } : null;
22308
- if (!update?.needsUpdate || !update.remoteVersion) {
22281
+ const update = options.update ?? null;
22282
+ if (!update?.needs_update || !update.remote.version) {
22309
22283
  return;
22310
22284
  }
22285
+ const remoteVersion = update.remote.version;
22311
22286
  const remoteSkillNames = await fetchV1SkillNames(baseUrl);
22312
22287
  const skillNames = buildSdkSkillNames(
22313
22288
  remoteSkillNames.length > 0 ? remoteSkillNames : DEFAULT_SDK_SKILL_NAMES
@@ -22317,11 +22292,17 @@ async function syncSdkSkillsIfNeeded(baseUrl, options = {}) {
22317
22292
  const installed = await runSkillsInstall(baseUrl, skillNames);
22318
22293
  if (!installed) return;
22319
22294
  runLegacySkillsCleanup();
22320
- writeLocalSkillsVersion(baseUrl, update.remoteVersion);
22295
+ writeLocalSkillsVersion(baseUrl, remoteVersion);
22321
22296
  writeSdkSkillsStatusLine("Deepline agent skills are up to date.");
22322
22297
  }
22323
22298
 
22324
22299
  // src/cli/commands/update.ts
22300
+ async function resolveSkillsVerdictFromCompat(baseUrl) {
22301
+ const { response } = await checkSdkCompatibility(baseUrl, {
22302
+ skillsVersion: readSdkSkillsLocalVersion(baseUrl)
22303
+ });
22304
+ return response?.skills ?? null;
22305
+ }
22325
22306
  var NPM_SDK_INSTALL_COMMON_FLAGS = ["--no-audit", "--no-fund"];
22326
22307
  var NPM_SDK_GLOBAL_INSTALL_FLAGS = [
22327
22308
  "--no-audit",
@@ -22760,6 +22741,7 @@ async function runUpdateCommand(options, dependencies = {}) {
22760
22741
  const detectBaseUrl = dependencies.detectBaseUrl ?? autoDetectBaseUrl;
22761
22742
  const resolvePlan = dependencies.resolvePlan ?? resolveUpdatePlan;
22762
22743
  const runPlan = dependencies.runPlan ?? runUpdatePlan;
22744
+ const resolveSkillsVerdict = dependencies.resolveSkillsVerdict ?? resolveSkillsVerdictFromCompat;
22763
22745
  const syncSkills = dependencies.syncSkillsIfNeeded ?? syncSdkSkillsIfNeeded;
22764
22746
  const stderr = dependencies.stderr ?? process.stderr;
22765
22747
  const plan = resolvePlan();
@@ -22804,7 +22786,9 @@ async function runUpdateCommand(options, dependencies = {}) {
22804
22786
  if (updateExitCode !== 0) {
22805
22787
  return updateExitCode;
22806
22788
  }
22807
- await syncSkills(normalizeBaseUrl3(detectBaseUrl()));
22789
+ const updatedBaseUrl = normalizeBaseUrl3(detectBaseUrl());
22790
+ const skillsUpdate = await resolveSkillsVerdict(updatedBaseUrl);
22791
+ await syncSkills(updatedBaseUrl, { update: skillsUpdate });
22808
22792
  return 0;
22809
22793
  }
22810
22794
  function registerUpdateCommand(program) {
@@ -23521,7 +23505,7 @@ Exit codes:
23521
23505
  const baseUrl = autoDetectBaseUrl().replace(/\/$/, "");
23522
23506
  const compatibilityCommand = compatibilityCommandPath(actionCommand) || actionCommand.name();
23523
23507
  const shouldDeferSkillsSync = shouldDeferSkillsSyncForCommand();
23524
- const skillsVersion = shouldDeferSkillsSync ? void 0 : readSdkSkillsLocalVersion(baseUrl);
23508
+ const skillsVersion = readSdkSkillsLocalVersion(baseUrl);
23525
23509
  const compatibility = await traceCliSpan(
23526
23510
  "cli.sdk_compatibility",
23527
23511
  {
@@ -23557,8 +23541,14 @@ Exit codes:
23557
23541
  if (printStartupPhase) {
23558
23542
  progress?.phase("checking sdk skills");
23559
23543
  }
23560
- if (!shouldDeferSkillsSync) {
23561
- const skillsUpdate = compatibility.response && Object.prototype.hasOwnProperty.call(compatibility.response, "skills") ? compatibility.response.skills ?? null : void 0;
23544
+ const skillsUpdate = compatibility.response?.skills ?? null;
23545
+ if (shouldDeferSkillsSync) {
23546
+ const hint = skillsStaleHintLine(skillsUpdate);
23547
+ if (hint && !process.argv.includes("--json")) {
23548
+ process.stderr.write(`${hint}
23549
+ `);
23550
+ }
23551
+ } else {
23562
23552
  await traceCliSpan(
23563
23553
  "cli.sdk_skills_sync",
23564
23554
  { baseUrl },
@@ -604,10 +604,10 @@ var SDK_RELEASE = {
604
604
  // 0.1.108 ships explicit dataset column/tool recompute policy and removes
605
605
  // the SDK enrich generator's one-second stale policy.
606
606
  // 0.1.110 ships authored V2 prebuilts and required top-level play descriptions.
607
- version: "0.1.137",
607
+ version: "0.1.138",
608
608
  apiContract: "2026-06-dataset-column-cell-stale-hard-cutover",
609
609
  supportPolicy: {
610
- latest: "0.1.137",
610
+ latest: "0.1.138",
611
611
  minimumSupported: "0.1.53",
612
612
  deprecatedBelow: "0.1.53",
613
613
  commandMinimumSupported: [
@@ -22164,34 +22164,6 @@ async function fetchV1SkillNames(baseUrl) {
22164
22164
  function buildSdkSkillNames(v1SkillNames) {
22165
22165
  return sortedUniqueSkillNames(v1SkillNames);
22166
22166
  }
22167
- async function fetchSkillsUpdate(baseUrl, localVersion) {
22168
- const controller = new AbortController();
22169
- const timeout = setTimeout(() => controller.abort(), CHECK_TIMEOUT_MS2);
22170
- try {
22171
- const response = await fetch(new URL("/api/v2/cli/update-check", baseUrl), {
22172
- method: "POST",
22173
- headers: { "Content-Type": "application/json" },
22174
- body: JSON.stringify({
22175
- skills: {
22176
- version: localVersion
22177
- }
22178
- }),
22179
- signal: controller.signal
22180
- });
22181
- if (!response.ok) return null;
22182
- const data = await response.json().catch(() => null);
22183
- const skills = data?.skills;
22184
- if (!skills) return null;
22185
- return {
22186
- needsUpdate: skills.needs_update === true,
22187
- remoteVersion: typeof skills.remote?.version === "string" ? skills.remote.version.trim() : ""
22188
- };
22189
- } catch {
22190
- return null;
22191
- } finally {
22192
- clearTimeout(timeout);
22193
- }
22194
- }
22195
22167
  function buildSkillsInstallArgs(baseUrl, skillNames = DEFAULT_SDK_SKILL_NAMES) {
22196
22168
  return buildSkillsAddArgs(baseUrl, sortedUniqueSkillNames(skillNames));
22197
22169
  }
@@ -22332,6 +22304,12 @@ function writeSdkSkillsStatusLine(line) {
22332
22304
  process.stderr.write(`${line}
22333
22305
  `);
22334
22306
  }
22307
+ function skillsStaleHintLine(update) {
22308
+ if (!update?.needs_update || !update.remote.version) {
22309
+ return null;
22310
+ }
22311
+ return "Deepline agent skills are out of date. Run `deepline update` to sync.";
22312
+ }
22335
22313
  async function syncSdkSkillsIfNeeded(baseUrl, options = {}) {
22336
22314
  if (attemptedSync || shouldSkipSkillsSync()) return;
22337
22315
  attemptedSync = true;
@@ -22339,14 +22317,11 @@ async function syncSdkSkillsIfNeeded(baseUrl, options = {}) {
22339
22317
  if (usingPluginSkills) {
22340
22318
  return;
22341
22319
  }
22342
- const localVersion = readSdkSkillsLocalVersion(baseUrl);
22343
- const update = options.update === void 0 ? await fetchSkillsUpdate(baseUrl, localVersion) : options.update ? {
22344
- needsUpdate: options.update.needs_update,
22345
- remoteVersion: options.update.remote.version
22346
- } : null;
22347
- if (!update?.needsUpdate || !update.remoteVersion) {
22320
+ const update = options.update ?? null;
22321
+ if (!update?.needs_update || !update.remote.version) {
22348
22322
  return;
22349
22323
  }
22324
+ const remoteVersion = update.remote.version;
22350
22325
  const remoteSkillNames = await fetchV1SkillNames(baseUrl);
22351
22326
  const skillNames = buildSdkSkillNames(
22352
22327
  remoteSkillNames.length > 0 ? remoteSkillNames : DEFAULT_SDK_SKILL_NAMES
@@ -22356,11 +22331,17 @@ async function syncSdkSkillsIfNeeded(baseUrl, options = {}) {
22356
22331
  const installed = await runSkillsInstall(baseUrl, skillNames);
22357
22332
  if (!installed) return;
22358
22333
  runLegacySkillsCleanup();
22359
- writeLocalSkillsVersion(baseUrl, update.remoteVersion);
22334
+ writeLocalSkillsVersion(baseUrl, remoteVersion);
22360
22335
  writeSdkSkillsStatusLine("Deepline agent skills are up to date.");
22361
22336
  }
22362
22337
 
22363
22338
  // src/cli/commands/update.ts
22339
+ async function resolveSkillsVerdictFromCompat(baseUrl) {
22340
+ const { response } = await checkSdkCompatibility(baseUrl, {
22341
+ skillsVersion: readSdkSkillsLocalVersion(baseUrl)
22342
+ });
22343
+ return response?.skills ?? null;
22344
+ }
22364
22345
  var NPM_SDK_INSTALL_COMMON_FLAGS = ["--no-audit", "--no-fund"];
22365
22346
  var NPM_SDK_GLOBAL_INSTALL_FLAGS = [
22366
22347
  "--no-audit",
@@ -22799,6 +22780,7 @@ async function runUpdateCommand(options, dependencies = {}) {
22799
22780
  const detectBaseUrl = dependencies.detectBaseUrl ?? autoDetectBaseUrl;
22800
22781
  const resolvePlan = dependencies.resolvePlan ?? resolveUpdatePlan;
22801
22782
  const runPlan = dependencies.runPlan ?? runUpdatePlan;
22783
+ const resolveSkillsVerdict = dependencies.resolveSkillsVerdict ?? resolveSkillsVerdictFromCompat;
22802
22784
  const syncSkills = dependencies.syncSkillsIfNeeded ?? syncSdkSkillsIfNeeded;
22803
22785
  const stderr = dependencies.stderr ?? process.stderr;
22804
22786
  const plan = resolvePlan();
@@ -22843,7 +22825,9 @@ async function runUpdateCommand(options, dependencies = {}) {
22843
22825
  if (updateExitCode !== 0) {
22844
22826
  return updateExitCode;
22845
22827
  }
22846
- await syncSkills(normalizeBaseUrl3(detectBaseUrl()));
22828
+ const updatedBaseUrl = normalizeBaseUrl3(detectBaseUrl());
22829
+ const skillsUpdate = await resolveSkillsVerdict(updatedBaseUrl);
22830
+ await syncSkills(updatedBaseUrl, { update: skillsUpdate });
22847
22831
  return 0;
22848
22832
  }
22849
22833
  function registerUpdateCommand(program) {
@@ -23560,7 +23544,7 @@ Exit codes:
23560
23544
  const baseUrl = autoDetectBaseUrl().replace(/\/$/, "");
23561
23545
  const compatibilityCommand = compatibilityCommandPath(actionCommand) || actionCommand.name();
23562
23546
  const shouldDeferSkillsSync = shouldDeferSkillsSyncForCommand();
23563
- const skillsVersion = shouldDeferSkillsSync ? void 0 : readSdkSkillsLocalVersion(baseUrl);
23547
+ const skillsVersion = readSdkSkillsLocalVersion(baseUrl);
23564
23548
  const compatibility = await traceCliSpan(
23565
23549
  "cli.sdk_compatibility",
23566
23550
  {
@@ -23596,8 +23580,14 @@ Exit codes:
23596
23580
  if (printStartupPhase) {
23597
23581
  progress?.phase("checking sdk skills");
23598
23582
  }
23599
- if (!shouldDeferSkillsSync) {
23600
- const skillsUpdate = compatibility.response && Object.prototype.hasOwnProperty.call(compatibility.response, "skills") ? compatibility.response.skills ?? null : void 0;
23583
+ const skillsUpdate = compatibility.response?.skills ?? null;
23584
+ if (shouldDeferSkillsSync) {
23585
+ const hint = skillsStaleHintLine(skillsUpdate);
23586
+ if (hint && !process.argv.includes("--json")) {
23587
+ process.stderr.write(`${hint}
23588
+ `);
23589
+ }
23590
+ } else {
23601
23591
  await traceCliSpan(
23602
23592
  "cli.sdk_skills_sync",
23603
23593
  { baseUrl },
package/dist/index.js CHANGED
@@ -418,10 +418,10 @@ var SDK_RELEASE = {
418
418
  // 0.1.108 ships explicit dataset column/tool recompute policy and removes
419
419
  // the SDK enrich generator's one-second stale policy.
420
420
  // 0.1.110 ships authored V2 prebuilts and required top-level play descriptions.
421
- version: "0.1.137",
421
+ version: "0.1.138",
422
422
  apiContract: "2026-06-dataset-column-cell-stale-hard-cutover",
423
423
  supportPolicy: {
424
- latest: "0.1.137",
424
+ latest: "0.1.138",
425
425
  minimumSupported: "0.1.53",
426
426
  deprecatedBelow: "0.1.53",
427
427
  commandMinimumSupported: [
package/dist/index.mjs CHANGED
@@ -348,10 +348,10 @@ var SDK_RELEASE = {
348
348
  // 0.1.108 ships explicit dataset column/tool recompute policy and removes
349
349
  // the SDK enrich generator's one-second stale policy.
350
350
  // 0.1.110 ships authored V2 prebuilts and required top-level play descriptions.
351
- version: "0.1.137",
351
+ version: "0.1.138",
352
352
  apiContract: "2026-06-dataset-column-cell-stale-hard-cutover",
353
353
  supportPolicy: {
354
- latest: "0.1.137",
354
+ latest: "0.1.138",
355
355
  minimumSupported: "0.1.53",
356
356
  deprecatedBelow: "0.1.53",
357
357
  commandMinimumSupported: [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deepline",
3
- "version": "0.1.137",
3
+ "version": "0.1.138",
4
4
  "description": "Deepline SDK + CLI — B2B data enrichment powered by durable cloud execution",
5
5
  "license": "MIT",
6
6
  "repository": {