deepline 0.1.118 → 0.1.119
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/cli/index.js +32 -6
- package/dist/cli/index.mjs +32 -6
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/dist/repo/sdk/src/release.ts +2 -2
- package/dist/viewer/viewer.js +25 -2
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -403,10 +403,10 @@ var SDK_RELEASE = {
|
|
|
403
403
|
// skill on the sdk sync surface, and the people-search-to-email prebuilt.
|
|
404
404
|
// 0.1.108 ships explicit dataset column/tool recompute policy and removes
|
|
405
405
|
// the SDK enrich generator's one-second stale policy.
|
|
406
|
-
version: "0.1.
|
|
406
|
+
version: "0.1.119",
|
|
407
407
|
apiContract: "2026-06-dataset-column-cell-stale-hard-cutover",
|
|
408
408
|
supportPolicy: {
|
|
409
|
-
latest: "0.1.
|
|
409
|
+
latest: "0.1.119",
|
|
410
410
|
minimumSupported: "0.1.53",
|
|
411
411
|
deprecatedBelow: "0.1.53",
|
|
412
412
|
commandMinimumSupported: [
|
|
@@ -4248,10 +4248,33 @@ function printDeeplineLogo() {
|
|
|
4248
4248
|
}
|
|
4249
4249
|
console.log("DEEPLINE");
|
|
4250
4250
|
}
|
|
4251
|
-
function
|
|
4251
|
+
async function claimInstallBonus(baseUrl, apiKey) {
|
|
4252
|
+
try {
|
|
4253
|
+
const { status, data } = await httpJson(
|
|
4254
|
+
"POST",
|
|
4255
|
+
`${baseUrl}/api/v2/billing/claim-install-bonus`,
|
|
4256
|
+
apiKey,
|
|
4257
|
+
{}
|
|
4258
|
+
);
|
|
4259
|
+
if (status !== 200) {
|
|
4260
|
+
return;
|
|
4261
|
+
}
|
|
4262
|
+
const granted = Number(data.credits_granted ?? 0);
|
|
4263
|
+
const alreadyGranted = data.already_granted === true;
|
|
4264
|
+
if (granted > 0) {
|
|
4265
|
+
console.log(`
|
|
4266
|
+
\u2022 +${granted} free credits added to your account!`);
|
|
4267
|
+
} else if (alreadyGranted) {
|
|
4268
|
+
console.log("\n \u2022 Free credits already applied to your account.");
|
|
4269
|
+
}
|
|
4270
|
+
} catch {
|
|
4271
|
+
}
|
|
4272
|
+
}
|
|
4273
|
+
async function printClaimSuccessBanner(baseUrl, apiKey, statusData) {
|
|
4252
4274
|
console.log("");
|
|
4253
4275
|
printDeeplineLogo();
|
|
4254
4276
|
console.log("\u2713 All set! Your CLI is connected.");
|
|
4277
|
+
await claimInstallBonus(baseUrl, apiKey);
|
|
4255
4278
|
if (statusData.org_name) {
|
|
4256
4279
|
console.log(` \u2022 Signed in with organization: ${statusData.org_name}`);
|
|
4257
4280
|
}
|
|
@@ -4343,7 +4366,7 @@ async function handleRegister(args) {
|
|
|
4343
4366
|
baseUrl
|
|
4344
4367
|
);
|
|
4345
4368
|
clearPendingClaimToken(baseUrl);
|
|
4346
|
-
printClaimSuccessBanner(statusData);
|
|
4369
|
+
await printClaimSuccessBanner(baseUrl, apiKey, statusData);
|
|
4347
4370
|
return EXIT_OK;
|
|
4348
4371
|
}
|
|
4349
4372
|
}
|
|
@@ -4410,7 +4433,7 @@ async function handleWait(args) {
|
|
|
4410
4433
|
baseUrl
|
|
4411
4434
|
);
|
|
4412
4435
|
clearPendingClaimToken(baseUrl);
|
|
4413
|
-
printClaimSuccessBanner(data);
|
|
4436
|
+
await printClaimSuccessBanner(baseUrl, apiKey, data);
|
|
4414
4437
|
return EXIT_OK;
|
|
4415
4438
|
}
|
|
4416
4439
|
}
|
|
@@ -19837,7 +19860,10 @@ function startCallbackServer(input2) {
|
|
|
19837
19860
|
async function handleQuickstart(options) {
|
|
19838
19861
|
const jsonOutput = shouldEmitJson(options.json === true);
|
|
19839
19862
|
const baseUrl = autoDetectBaseUrl().replace(/\/$/, "");
|
|
19840
|
-
const
|
|
19863
|
+
const installerMode = String(process.env.DEEPLINE_INSTALLER_MODE ?? "").trim().toLowerCase() === "true";
|
|
19864
|
+
const interactive = Boolean(
|
|
19865
|
+
!installerMode && process.stdin.isTTY && process.stdout.isTTY
|
|
19866
|
+
);
|
|
19841
19867
|
let apiKey = resolveApiKeyForBaseUrl(baseUrl);
|
|
19842
19868
|
if (!apiKey) {
|
|
19843
19869
|
if (interactive) {
|
package/dist/cli/index.mjs
CHANGED
|
@@ -380,10 +380,10 @@ var SDK_RELEASE = {
|
|
|
380
380
|
// skill on the sdk sync surface, and the people-search-to-email prebuilt.
|
|
381
381
|
// 0.1.108 ships explicit dataset column/tool recompute policy and removes
|
|
382
382
|
// the SDK enrich generator's one-second stale policy.
|
|
383
|
-
version: "0.1.
|
|
383
|
+
version: "0.1.119",
|
|
384
384
|
apiContract: "2026-06-dataset-column-cell-stale-hard-cutover",
|
|
385
385
|
supportPolicy: {
|
|
386
|
-
latest: "0.1.
|
|
386
|
+
latest: "0.1.119",
|
|
387
387
|
minimumSupported: "0.1.53",
|
|
388
388
|
deprecatedBelow: "0.1.53",
|
|
389
389
|
commandMinimumSupported: [
|
|
@@ -4237,10 +4237,33 @@ function printDeeplineLogo() {
|
|
|
4237
4237
|
}
|
|
4238
4238
|
console.log("DEEPLINE");
|
|
4239
4239
|
}
|
|
4240
|
-
function
|
|
4240
|
+
async function claimInstallBonus(baseUrl, apiKey) {
|
|
4241
|
+
try {
|
|
4242
|
+
const { status, data } = await httpJson(
|
|
4243
|
+
"POST",
|
|
4244
|
+
`${baseUrl}/api/v2/billing/claim-install-bonus`,
|
|
4245
|
+
apiKey,
|
|
4246
|
+
{}
|
|
4247
|
+
);
|
|
4248
|
+
if (status !== 200) {
|
|
4249
|
+
return;
|
|
4250
|
+
}
|
|
4251
|
+
const granted = Number(data.credits_granted ?? 0);
|
|
4252
|
+
const alreadyGranted = data.already_granted === true;
|
|
4253
|
+
if (granted > 0) {
|
|
4254
|
+
console.log(`
|
|
4255
|
+
\u2022 +${granted} free credits added to your account!`);
|
|
4256
|
+
} else if (alreadyGranted) {
|
|
4257
|
+
console.log("\n \u2022 Free credits already applied to your account.");
|
|
4258
|
+
}
|
|
4259
|
+
} catch {
|
|
4260
|
+
}
|
|
4261
|
+
}
|
|
4262
|
+
async function printClaimSuccessBanner(baseUrl, apiKey, statusData) {
|
|
4241
4263
|
console.log("");
|
|
4242
4264
|
printDeeplineLogo();
|
|
4243
4265
|
console.log("\u2713 All set! Your CLI is connected.");
|
|
4266
|
+
await claimInstallBonus(baseUrl, apiKey);
|
|
4244
4267
|
if (statusData.org_name) {
|
|
4245
4268
|
console.log(` \u2022 Signed in with organization: ${statusData.org_name}`);
|
|
4246
4269
|
}
|
|
@@ -4332,7 +4355,7 @@ async function handleRegister(args) {
|
|
|
4332
4355
|
baseUrl
|
|
4333
4356
|
);
|
|
4334
4357
|
clearPendingClaimToken(baseUrl);
|
|
4335
|
-
printClaimSuccessBanner(statusData);
|
|
4358
|
+
await printClaimSuccessBanner(baseUrl, apiKey, statusData);
|
|
4336
4359
|
return EXIT_OK;
|
|
4337
4360
|
}
|
|
4338
4361
|
}
|
|
@@ -4399,7 +4422,7 @@ async function handleWait(args) {
|
|
|
4399
4422
|
baseUrl
|
|
4400
4423
|
);
|
|
4401
4424
|
clearPendingClaimToken(baseUrl);
|
|
4402
|
-
printClaimSuccessBanner(data);
|
|
4425
|
+
await printClaimSuccessBanner(baseUrl, apiKey, data);
|
|
4403
4426
|
return EXIT_OK;
|
|
4404
4427
|
}
|
|
4405
4428
|
}
|
|
@@ -19862,7 +19885,10 @@ function startCallbackServer(input2) {
|
|
|
19862
19885
|
async function handleQuickstart(options) {
|
|
19863
19886
|
const jsonOutput = shouldEmitJson(options.json === true);
|
|
19864
19887
|
const baseUrl = autoDetectBaseUrl().replace(/\/$/, "");
|
|
19865
|
-
const
|
|
19888
|
+
const installerMode = String(process.env.DEEPLINE_INSTALLER_MODE ?? "").trim().toLowerCase() === "true";
|
|
19889
|
+
const interactive = Boolean(
|
|
19890
|
+
!installerMode && process.stdin.isTTY && process.stdout.isTTY
|
|
19891
|
+
);
|
|
19866
19892
|
let apiKey = resolveApiKeyForBaseUrl(baseUrl);
|
|
19867
19893
|
if (!apiKey) {
|
|
19868
19894
|
if (interactive) {
|
package/dist/index.js
CHANGED
|
@@ -274,10 +274,10 @@ var SDK_RELEASE = {
|
|
|
274
274
|
// skill on the sdk sync surface, and the people-search-to-email prebuilt.
|
|
275
275
|
// 0.1.108 ships explicit dataset column/tool recompute policy and removes
|
|
276
276
|
// the SDK enrich generator's one-second stale policy.
|
|
277
|
-
version: "0.1.
|
|
277
|
+
version: "0.1.119",
|
|
278
278
|
apiContract: "2026-06-dataset-column-cell-stale-hard-cutover",
|
|
279
279
|
supportPolicy: {
|
|
280
|
-
latest: "0.1.
|
|
280
|
+
latest: "0.1.119",
|
|
281
281
|
minimumSupported: "0.1.53",
|
|
282
282
|
deprecatedBelow: "0.1.53",
|
|
283
283
|
commandMinimumSupported: [
|
package/dist/index.mjs
CHANGED
|
@@ -196,10 +196,10 @@ var SDK_RELEASE = {
|
|
|
196
196
|
// skill on the sdk sync surface, and the people-search-to-email prebuilt.
|
|
197
197
|
// 0.1.108 ships explicit dataset column/tool recompute policy and removes
|
|
198
198
|
// the SDK enrich generator's one-second stale policy.
|
|
199
|
-
version: "0.1.
|
|
199
|
+
version: "0.1.119",
|
|
200
200
|
apiContract: "2026-06-dataset-column-cell-stale-hard-cutover",
|
|
201
201
|
supportPolicy: {
|
|
202
|
-
latest: "0.1.
|
|
202
|
+
latest: "0.1.119",
|
|
203
203
|
minimumSupported: "0.1.53",
|
|
204
204
|
deprecatedBelow: "0.1.53",
|
|
205
205
|
commandMinimumSupported: [
|
|
@@ -99,10 +99,10 @@ export const SDK_RELEASE = {
|
|
|
99
99
|
// skill on the sdk sync surface, and the people-search-to-email prebuilt.
|
|
100
100
|
// 0.1.108 ships explicit dataset column/tool recompute policy and removes
|
|
101
101
|
// the SDK enrich generator's one-second stale policy.
|
|
102
|
-
version: '0.1.
|
|
102
|
+
version: '0.1.119',
|
|
103
103
|
apiContract: '2026-06-dataset-column-cell-stale-hard-cutover',
|
|
104
104
|
supportPolicy: {
|
|
105
|
-
latest: '0.1.
|
|
105
|
+
latest: '0.1.119',
|
|
106
106
|
minimumSupported: '0.1.53',
|
|
107
107
|
deprecatedBelow: '0.1.53',
|
|
108
108
|
commandMinimumSupported: [
|
package/dist/viewer/viewer.js
CHANGED
|
@@ -489,6 +489,11 @@ function codexToolCommand(name, input) {
|
|
|
489
489
|
return JSON.stringify(input).slice(0, 120);
|
|
490
490
|
}
|
|
491
491
|
|
|
492
|
+
function codexSkillReadName(command) {
|
|
493
|
+
const match = String(command || '').match(/\/(?:\.agents|\.claude|\.codex)\/skills\/([^/\s'"]+)\/SKILL\.md\b/);
|
|
494
|
+
return match ? match[1] : null;
|
|
495
|
+
}
|
|
496
|
+
|
|
492
497
|
function codexToolOutputText(p) {
|
|
493
498
|
if (typeof p.output === 'string') return p.output;
|
|
494
499
|
if (typeof p.content === 'string') return p.content;
|
|
@@ -500,6 +505,14 @@ function codexToolOutputText(p) {
|
|
|
500
505
|
|
|
501
506
|
function buildCodexTimeline(events, firstTs) {
|
|
502
507
|
const outputsByCallId = {};
|
|
508
|
+
const hasEventUserMessages = events.some(d => {
|
|
509
|
+
const p = d.payload || {};
|
|
510
|
+
return d.type === 'event_msg' && p.type === 'user_message';
|
|
511
|
+
});
|
|
512
|
+
const hasEventAgentMessages = events.some(d => {
|
|
513
|
+
const p = d.payload || {};
|
|
514
|
+
return d.type === 'event_msg' && p.type === 'agent_message';
|
|
515
|
+
});
|
|
503
516
|
for (const d of events) {
|
|
504
517
|
if (d.type !== 'response_item') continue;
|
|
505
518
|
const p = d.payload || {};
|
|
@@ -534,9 +547,11 @@ function buildCodexTimeline(events, firstTs) {
|
|
|
534
547
|
|
|
535
548
|
if (p.type === 'message') {
|
|
536
549
|
if (p.role === 'user') {
|
|
550
|
+
if (hasEventUserMessages) continue;
|
|
537
551
|
const text = codexContentText(p.content);
|
|
538
552
|
if (text) timeline.push({kind: 'user_message', text, event_index: eventIndex, elapsed});
|
|
539
553
|
} else if (p.role === 'assistant') {
|
|
554
|
+
if (hasEventAgentMessages) continue;
|
|
540
555
|
const text = codexContentText(p.content);
|
|
541
556
|
if (text) timeline.push({kind: 'reasoning', text, event_index: eventIndex, elapsed});
|
|
542
557
|
}
|
|
@@ -561,12 +576,20 @@ function buildCodexTimeline(events, firstTs) {
|
|
|
561
576
|
const input = parseCodexArguments(p.arguments || p.input);
|
|
562
577
|
const callId = p.call_id || p.id || '';
|
|
563
578
|
const output = outputsByCallId[callId] || null;
|
|
564
|
-
|
|
579
|
+
let tool = normalizeStepToolName(codexToolName(p));
|
|
580
|
+
let command = codexToolCommand(tool, input);
|
|
581
|
+
const skillName = codexSkillReadName(command);
|
|
582
|
+
if (skillName) {
|
|
583
|
+
tool = 'Skill';
|
|
584
|
+
command = skillName;
|
|
585
|
+
input.skill = skillName;
|
|
586
|
+
input.command = input.command || input.cmd || command;
|
|
587
|
+
}
|
|
565
588
|
timeline.push({
|
|
566
589
|
kind: 'tool_call',
|
|
567
590
|
step,
|
|
568
591
|
tool,
|
|
569
|
-
command
|
|
592
|
+
command,
|
|
570
593
|
input,
|
|
571
594
|
result_content: output ? output.text : null,
|
|
572
595
|
is_error: output ? output.is_error : null,
|