deepline 0.1.318 → 0.1.319
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/bundling-sources/sdk/src/release.ts +1 -1
- package/dist/bundling-sources/sdk/src/types.ts +18 -4
- package/dist/cli/index.js +76 -3
- package/dist/cli/index.mjs +76 -3
- package/dist/index.d.mts +14 -4
- package/dist/index.d.ts +14 -4
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/viewer/viewer.css +64 -61
- package/package.json +1 -1
|
@@ -157,7 +157,7 @@ export const SDK_RELEASE = {
|
|
|
157
157
|
// 0.1.253 makes play-page browser opening opt-in and retires --no-open.
|
|
158
158
|
// 0.1.254 removes the internal operations tree from the published SDK CLI.
|
|
159
159
|
// Operators use the checkout-local deepline-admin binary instead.
|
|
160
|
-
version: '0.1.
|
|
160
|
+
version: '0.1.319',
|
|
161
161
|
contracts: {
|
|
162
162
|
api: {
|
|
163
163
|
name: 'sdk-http-api',
|
|
@@ -276,16 +276,30 @@ export interface ToolDefinition {
|
|
|
276
276
|
}>;
|
|
277
277
|
/**
|
|
278
278
|
* Whether this tool is callable in the current workspace. `false` for a
|
|
279
|
-
* bring-your-own-credential provider
|
|
280
|
-
* connected — the agent should offer to connect it rather than call it.
|
|
279
|
+
* bring-your-own-credential provider that has not been connected.
|
|
281
280
|
*/
|
|
282
281
|
connected?: boolean;
|
|
282
|
+
/** Whether the tool can be executed. Exact lookup may return non-callable deprecated aliases. */
|
|
283
|
+
callable?: boolean;
|
|
284
|
+
/** True when callers should migrate this exact tool id to its replacement. */
|
|
285
|
+
deprecated?: boolean;
|
|
286
|
+
/** Deprecation reason, replacement, and compatibility execution behavior. */
|
|
287
|
+
deprecation?: {
|
|
288
|
+
replacementToolId: string;
|
|
289
|
+
message: string;
|
|
290
|
+
execution?: 'terminal' | 'forward';
|
|
291
|
+
};
|
|
283
292
|
/**
|
|
284
293
|
* Connection status for discovery: `managed` (Deepline-run credentials),
|
|
285
294
|
* `connected` (your own credential is connected), or `requires_connection`
|
|
286
|
-
* (BYO provider not yet connected in this workspace).
|
|
295
|
+
* (BYO provider not yet connected in this workspace). `deprecated` means
|
|
296
|
+
* connecting credentials will not make the tool callable.
|
|
287
297
|
*/
|
|
288
|
-
credentialStatus?:
|
|
298
|
+
credentialStatus?:
|
|
299
|
+
| 'managed'
|
|
300
|
+
| 'connected'
|
|
301
|
+
| 'requires_connection'
|
|
302
|
+
| 'deprecated';
|
|
289
303
|
/** True when the tool requires a customer-provided credential to run. */
|
|
290
304
|
requiresOwnCredential?: boolean;
|
|
291
305
|
/** Actionable message shown when a connection is required. */
|
package/dist/cli/index.js
CHANGED
|
@@ -1037,7 +1037,7 @@ var SDK_RELEASE = {
|
|
|
1037
1037
|
// 0.1.253 makes play-page browser opening opt-in and retires --no-open.
|
|
1038
1038
|
// 0.1.254 removes the internal operations tree from the published SDK CLI.
|
|
1039
1039
|
// Operators use the checkout-local deepline-admin binary instead.
|
|
1040
|
-
version: "0.1.
|
|
1040
|
+
version: "0.1.319",
|
|
1041
1041
|
contracts: {
|
|
1042
1042
|
api: {
|
|
1043
1043
|
name: "sdk-http-api",
|
|
@@ -28589,14 +28589,23 @@ function toolContractJsonForDescribe(tool, requestedToolId) {
|
|
|
28589
28589
|
"deeplineUsdPerPricingUnit",
|
|
28590
28590
|
"deepline_usd_per_pricing_unit"
|
|
28591
28591
|
);
|
|
28592
|
-
const
|
|
28592
|
+
const deprecation = recordField2(tool, "deprecation");
|
|
28593
|
+
const replacementToolId = stringField2(
|
|
28594
|
+
deprecation,
|
|
28595
|
+
"replacementToolId",
|
|
28596
|
+
"replacement_tool_id"
|
|
28597
|
+
);
|
|
28598
|
+
const deprecationMessage = stringField2(deprecation, "message");
|
|
28599
|
+
const deprecationExecution = stringField2(deprecation, "execution");
|
|
28600
|
+
const deprecated = tool.deprecated === true || stringField2(tool, "credentialStatus", "credential_status") === "deprecated";
|
|
28601
|
+
const starterScript = !deprecated && !isPlayLikeTool(tool) && extractedLists.length > 0 ? starterScriptJson(
|
|
28593
28602
|
seedToolListScript({
|
|
28594
28603
|
toolId,
|
|
28595
28604
|
payload: samplePayloadForInputFields(inputFields),
|
|
28596
28605
|
rows: []
|
|
28597
28606
|
})
|
|
28598
28607
|
) : null;
|
|
28599
|
-
const executeCommand = isPlayLikeTool(tool) ? playRunCommandForTool(tool, toolId) : `deepline tools execute ${toolId} --input '{...}' --json`;
|
|
28608
|
+
const executeCommand = deprecated && replacementToolId ? `deepline tools execute ${replacementToolId} --input '{...}' --json` : isPlayLikeTool(tool) ? playRunCommandForTool(tool, toolId) : `deepline tools execute ${toolId} --input '{...}' --json`;
|
|
28600
28609
|
return {
|
|
28601
28610
|
schemaVersion: 1,
|
|
28602
28611
|
toolId,
|
|
@@ -28604,6 +28613,15 @@ function toolContractJsonForDescribe(tool, requestedToolId) {
|
|
|
28604
28613
|
displayName: tool.displayName,
|
|
28605
28614
|
description: tool.description,
|
|
28606
28615
|
categories: tool.categories,
|
|
28616
|
+
...deprecated ? {
|
|
28617
|
+
deprecated: true,
|
|
28618
|
+
callable: tool.callable !== false,
|
|
28619
|
+
deprecation: {
|
|
28620
|
+
replacementToolId,
|
|
28621
|
+
message: deprecationMessage,
|
|
28622
|
+
...deprecationExecution ? { execution: deprecationExecution } : {}
|
|
28623
|
+
}
|
|
28624
|
+
} : {},
|
|
28607
28625
|
inputFields: inputFields.map((field) => ({
|
|
28608
28626
|
name: field.name,
|
|
28609
28627
|
type: field.type ?? "unknown",
|
|
@@ -28746,6 +28764,29 @@ function printCompactToolContract(tool, requestedToolId) {
|
|
|
28746
28764
|
if (Array.isArray(contract.categories) && contract.categories.length) {
|
|
28747
28765
|
console.log(`Tags: ${contract.categories.join(", ")}`);
|
|
28748
28766
|
}
|
|
28767
|
+
if (contract.deprecated === true) {
|
|
28768
|
+
const deprecation = isRecord11(contract.deprecation) ? contract.deprecation : {};
|
|
28769
|
+
const message = stringField2(deprecation, "message");
|
|
28770
|
+
const replacementToolId = stringField2(
|
|
28771
|
+
deprecation,
|
|
28772
|
+
"replacementToolId",
|
|
28773
|
+
"replacement_tool_id"
|
|
28774
|
+
);
|
|
28775
|
+
console.log(
|
|
28776
|
+
contract.callable === false ? "Status: deprecated \u2014 this tool cannot be executed" : "Status: deprecated \u2014 legacy executions forward for compatibility"
|
|
28777
|
+
);
|
|
28778
|
+
if (message) console.log(`Migration: ${message}`);
|
|
28779
|
+
if (replacementToolId) {
|
|
28780
|
+
console.log(
|
|
28781
|
+
`Use: deepline tools execute ${replacementToolId} --input '{...}'`
|
|
28782
|
+
);
|
|
28783
|
+
}
|
|
28784
|
+
console.log("");
|
|
28785
|
+
console.log(
|
|
28786
|
+
`More: deepline tools describe ${replacementToolId || contract.toolId} --json`
|
|
28787
|
+
);
|
|
28788
|
+
return;
|
|
28789
|
+
}
|
|
28749
28790
|
printToolPricingOnly(tool, requestedToolId, { heading: "Cost" });
|
|
28750
28791
|
if (inputFields.length) {
|
|
28751
28792
|
console.log("");
|
|
@@ -29245,6 +29286,32 @@ function samplePayload(samples, key) {
|
|
|
29245
29286
|
function commandEnvelopeFromRawResponse(rawResponse) {
|
|
29246
29287
|
return isRecord11(rawResponse) ? { ...rawResponse } : { status: "completed", result: rawResponse };
|
|
29247
29288
|
}
|
|
29289
|
+
function extractToolExecutionWarningMessages(rawResponse) {
|
|
29290
|
+
if (!isRecord11(rawResponse)) return [];
|
|
29291
|
+
const candidates = [
|
|
29292
|
+
recordField2(recordField2(rawResponse, "toolResponse"), "meta"),
|
|
29293
|
+
recordField2(
|
|
29294
|
+
recordField2(recordField2(rawResponse, "toolResponse"), "raw"),
|
|
29295
|
+
"meta"
|
|
29296
|
+
),
|
|
29297
|
+
recordField2(rawResponse, "meta"),
|
|
29298
|
+
recordField2(recordField2(rawResponse, "result"), "meta")
|
|
29299
|
+
];
|
|
29300
|
+
const messages = [];
|
|
29301
|
+
for (const candidate of candidates) {
|
|
29302
|
+
const warnings = candidate?.warnings;
|
|
29303
|
+
if (!Array.isArray(warnings)) continue;
|
|
29304
|
+
for (const warning of warnings) {
|
|
29305
|
+
if (typeof warning === "string" && warning.trim()) {
|
|
29306
|
+
messages.push(warning.trim());
|
|
29307
|
+
} else if (isRecord11(warning)) {
|
|
29308
|
+
const message = stringField2(warning, "message");
|
|
29309
|
+
if (message) messages.push(message);
|
|
29310
|
+
}
|
|
29311
|
+
}
|
|
29312
|
+
}
|
|
29313
|
+
return [...new Set(messages)];
|
|
29314
|
+
}
|
|
29248
29315
|
function apifySyncRecoveryNext(rawResponse) {
|
|
29249
29316
|
if (!isRecord11(rawResponse) || rawResponse.status !== "running") return null;
|
|
29250
29317
|
const toolResponse = recordField2(rawResponse, "toolResponse");
|
|
@@ -29512,6 +29579,9 @@ export default definePlay(${JSON.stringify(playName)}, async (ctx) => {
|
|
|
29512
29579
|
}
|
|
29513
29580
|
function buildToolExecuteBaseEnvelope(input2) {
|
|
29514
29581
|
const envelope = commandEnvelopeFromRawResponse(input2.rawResponse);
|
|
29582
|
+
const warningMessages = extractToolExecutionWarningMessages(
|
|
29583
|
+
input2.rawResponse
|
|
29584
|
+
);
|
|
29515
29585
|
const apifyRecovery = apifySyncRecoveryNext(input2.rawResponse);
|
|
29516
29586
|
const summaryEntries = Object.entries(input2.summary);
|
|
29517
29587
|
const outputPreview = input2.listConversion ? {
|
|
@@ -29549,6 +29619,7 @@ function buildToolExecuteBaseEnvelope(input2) {
|
|
|
29549
29619
|
...envelope,
|
|
29550
29620
|
...envelopeHasCanonicalOutput || envelopeHasDeclaredOutput ? { output_preview: outputPreview } : { output: outputPreview },
|
|
29551
29621
|
...summaryEntries.length > 0 ? { summary: input2.summary } : {},
|
|
29622
|
+
...warningMessages.length > 0 ? { warnings: warningMessages } : {},
|
|
29552
29623
|
next: {
|
|
29553
29624
|
inspect: inspectCommand,
|
|
29554
29625
|
...apifyRecovery ?? {},
|
|
@@ -29560,6 +29631,7 @@ function buildToolExecuteBaseEnvelope(input2) {
|
|
|
29560
29631
|
},
|
|
29561
29632
|
render: {
|
|
29562
29633
|
sections: input2.listConversion ? [
|
|
29634
|
+
...warningMessages.length > 0 ? [{ title: "warnings", lines: warningMessages }] : [],
|
|
29563
29635
|
{
|
|
29564
29636
|
title: "output",
|
|
29565
29637
|
lines: [
|
|
@@ -29570,6 +29642,7 @@ function buildToolExecuteBaseEnvelope(input2) {
|
|
|
29570
29642
|
]
|
|
29571
29643
|
}
|
|
29572
29644
|
] : [
|
|
29645
|
+
...warningMessages.length > 0 ? [{ title: "warnings", lines: warningMessages }] : [],
|
|
29573
29646
|
{
|
|
29574
29647
|
title: "result",
|
|
29575
29648
|
lines: apifyRecovery ? [
|
package/dist/cli/index.mjs
CHANGED
|
@@ -1022,7 +1022,7 @@ var SDK_RELEASE = {
|
|
|
1022
1022
|
// 0.1.253 makes play-page browser opening opt-in and retires --no-open.
|
|
1023
1023
|
// 0.1.254 removes the internal operations tree from the published SDK CLI.
|
|
1024
1024
|
// Operators use the checkout-local deepline-admin binary instead.
|
|
1025
|
-
version: "0.1.
|
|
1025
|
+
version: "0.1.319",
|
|
1026
1026
|
contracts: {
|
|
1027
1027
|
api: {
|
|
1028
1028
|
name: "sdk-http-api",
|
|
@@ -28637,14 +28637,23 @@ function toolContractJsonForDescribe(tool, requestedToolId) {
|
|
|
28637
28637
|
"deeplineUsdPerPricingUnit",
|
|
28638
28638
|
"deepline_usd_per_pricing_unit"
|
|
28639
28639
|
);
|
|
28640
|
-
const
|
|
28640
|
+
const deprecation = recordField2(tool, "deprecation");
|
|
28641
|
+
const replacementToolId = stringField2(
|
|
28642
|
+
deprecation,
|
|
28643
|
+
"replacementToolId",
|
|
28644
|
+
"replacement_tool_id"
|
|
28645
|
+
);
|
|
28646
|
+
const deprecationMessage = stringField2(deprecation, "message");
|
|
28647
|
+
const deprecationExecution = stringField2(deprecation, "execution");
|
|
28648
|
+
const deprecated = tool.deprecated === true || stringField2(tool, "credentialStatus", "credential_status") === "deprecated";
|
|
28649
|
+
const starterScript = !deprecated && !isPlayLikeTool(tool) && extractedLists.length > 0 ? starterScriptJson(
|
|
28641
28650
|
seedToolListScript({
|
|
28642
28651
|
toolId,
|
|
28643
28652
|
payload: samplePayloadForInputFields(inputFields),
|
|
28644
28653
|
rows: []
|
|
28645
28654
|
})
|
|
28646
28655
|
) : null;
|
|
28647
|
-
const executeCommand = isPlayLikeTool(tool) ? playRunCommandForTool(tool, toolId) : `deepline tools execute ${toolId} --input '{...}' --json`;
|
|
28656
|
+
const executeCommand = deprecated && replacementToolId ? `deepline tools execute ${replacementToolId} --input '{...}' --json` : isPlayLikeTool(tool) ? playRunCommandForTool(tool, toolId) : `deepline tools execute ${toolId} --input '{...}' --json`;
|
|
28648
28657
|
return {
|
|
28649
28658
|
schemaVersion: 1,
|
|
28650
28659
|
toolId,
|
|
@@ -28652,6 +28661,15 @@ function toolContractJsonForDescribe(tool, requestedToolId) {
|
|
|
28652
28661
|
displayName: tool.displayName,
|
|
28653
28662
|
description: tool.description,
|
|
28654
28663
|
categories: tool.categories,
|
|
28664
|
+
...deprecated ? {
|
|
28665
|
+
deprecated: true,
|
|
28666
|
+
callable: tool.callable !== false,
|
|
28667
|
+
deprecation: {
|
|
28668
|
+
replacementToolId,
|
|
28669
|
+
message: deprecationMessage,
|
|
28670
|
+
...deprecationExecution ? { execution: deprecationExecution } : {}
|
|
28671
|
+
}
|
|
28672
|
+
} : {},
|
|
28655
28673
|
inputFields: inputFields.map((field) => ({
|
|
28656
28674
|
name: field.name,
|
|
28657
28675
|
type: field.type ?? "unknown",
|
|
@@ -28794,6 +28812,29 @@ function printCompactToolContract(tool, requestedToolId) {
|
|
|
28794
28812
|
if (Array.isArray(contract.categories) && contract.categories.length) {
|
|
28795
28813
|
console.log(`Tags: ${contract.categories.join(", ")}`);
|
|
28796
28814
|
}
|
|
28815
|
+
if (contract.deprecated === true) {
|
|
28816
|
+
const deprecation = isRecord11(contract.deprecation) ? contract.deprecation : {};
|
|
28817
|
+
const message = stringField2(deprecation, "message");
|
|
28818
|
+
const replacementToolId = stringField2(
|
|
28819
|
+
deprecation,
|
|
28820
|
+
"replacementToolId",
|
|
28821
|
+
"replacement_tool_id"
|
|
28822
|
+
);
|
|
28823
|
+
console.log(
|
|
28824
|
+
contract.callable === false ? "Status: deprecated \u2014 this tool cannot be executed" : "Status: deprecated \u2014 legacy executions forward for compatibility"
|
|
28825
|
+
);
|
|
28826
|
+
if (message) console.log(`Migration: ${message}`);
|
|
28827
|
+
if (replacementToolId) {
|
|
28828
|
+
console.log(
|
|
28829
|
+
`Use: deepline tools execute ${replacementToolId} --input '{...}'`
|
|
28830
|
+
);
|
|
28831
|
+
}
|
|
28832
|
+
console.log("");
|
|
28833
|
+
console.log(
|
|
28834
|
+
`More: deepline tools describe ${replacementToolId || contract.toolId} --json`
|
|
28835
|
+
);
|
|
28836
|
+
return;
|
|
28837
|
+
}
|
|
28797
28838
|
printToolPricingOnly(tool, requestedToolId, { heading: "Cost" });
|
|
28798
28839
|
if (inputFields.length) {
|
|
28799
28840
|
console.log("");
|
|
@@ -29293,6 +29334,32 @@ function samplePayload(samples, key) {
|
|
|
29293
29334
|
function commandEnvelopeFromRawResponse(rawResponse) {
|
|
29294
29335
|
return isRecord11(rawResponse) ? { ...rawResponse } : { status: "completed", result: rawResponse };
|
|
29295
29336
|
}
|
|
29337
|
+
function extractToolExecutionWarningMessages(rawResponse) {
|
|
29338
|
+
if (!isRecord11(rawResponse)) return [];
|
|
29339
|
+
const candidates = [
|
|
29340
|
+
recordField2(recordField2(rawResponse, "toolResponse"), "meta"),
|
|
29341
|
+
recordField2(
|
|
29342
|
+
recordField2(recordField2(rawResponse, "toolResponse"), "raw"),
|
|
29343
|
+
"meta"
|
|
29344
|
+
),
|
|
29345
|
+
recordField2(rawResponse, "meta"),
|
|
29346
|
+
recordField2(recordField2(rawResponse, "result"), "meta")
|
|
29347
|
+
];
|
|
29348
|
+
const messages = [];
|
|
29349
|
+
for (const candidate of candidates) {
|
|
29350
|
+
const warnings = candidate?.warnings;
|
|
29351
|
+
if (!Array.isArray(warnings)) continue;
|
|
29352
|
+
for (const warning of warnings) {
|
|
29353
|
+
if (typeof warning === "string" && warning.trim()) {
|
|
29354
|
+
messages.push(warning.trim());
|
|
29355
|
+
} else if (isRecord11(warning)) {
|
|
29356
|
+
const message = stringField2(warning, "message");
|
|
29357
|
+
if (message) messages.push(message);
|
|
29358
|
+
}
|
|
29359
|
+
}
|
|
29360
|
+
}
|
|
29361
|
+
return [...new Set(messages)];
|
|
29362
|
+
}
|
|
29296
29363
|
function apifySyncRecoveryNext(rawResponse) {
|
|
29297
29364
|
if (!isRecord11(rawResponse) || rawResponse.status !== "running") return null;
|
|
29298
29365
|
const toolResponse = recordField2(rawResponse, "toolResponse");
|
|
@@ -29560,6 +29627,9 @@ export default definePlay(${JSON.stringify(playName)}, async (ctx) => {
|
|
|
29560
29627
|
}
|
|
29561
29628
|
function buildToolExecuteBaseEnvelope(input2) {
|
|
29562
29629
|
const envelope = commandEnvelopeFromRawResponse(input2.rawResponse);
|
|
29630
|
+
const warningMessages = extractToolExecutionWarningMessages(
|
|
29631
|
+
input2.rawResponse
|
|
29632
|
+
);
|
|
29563
29633
|
const apifyRecovery = apifySyncRecoveryNext(input2.rawResponse);
|
|
29564
29634
|
const summaryEntries = Object.entries(input2.summary);
|
|
29565
29635
|
const outputPreview = input2.listConversion ? {
|
|
@@ -29597,6 +29667,7 @@ function buildToolExecuteBaseEnvelope(input2) {
|
|
|
29597
29667
|
...envelope,
|
|
29598
29668
|
...envelopeHasCanonicalOutput || envelopeHasDeclaredOutput ? { output_preview: outputPreview } : { output: outputPreview },
|
|
29599
29669
|
...summaryEntries.length > 0 ? { summary: input2.summary } : {},
|
|
29670
|
+
...warningMessages.length > 0 ? { warnings: warningMessages } : {},
|
|
29600
29671
|
next: {
|
|
29601
29672
|
inspect: inspectCommand,
|
|
29602
29673
|
...apifyRecovery ?? {},
|
|
@@ -29608,6 +29679,7 @@ function buildToolExecuteBaseEnvelope(input2) {
|
|
|
29608
29679
|
},
|
|
29609
29680
|
render: {
|
|
29610
29681
|
sections: input2.listConversion ? [
|
|
29682
|
+
...warningMessages.length > 0 ? [{ title: "warnings", lines: warningMessages }] : [],
|
|
29611
29683
|
{
|
|
29612
29684
|
title: "output",
|
|
29613
29685
|
lines: [
|
|
@@ -29618,6 +29690,7 @@ function buildToolExecuteBaseEnvelope(input2) {
|
|
|
29618
29690
|
]
|
|
29619
29691
|
}
|
|
29620
29692
|
] : [
|
|
29693
|
+
...warningMessages.length > 0 ? [{ title: "warnings", lines: warningMessages }] : [],
|
|
29621
29694
|
{
|
|
29622
29695
|
title: "result",
|
|
29623
29696
|
lines: apifyRecovery ? [
|
package/dist/index.d.mts
CHANGED
|
@@ -355,16 +355,26 @@ interface ToolDefinition {
|
|
|
355
355
|
}>;
|
|
356
356
|
/**
|
|
357
357
|
* Whether this tool is callable in the current workspace. `false` for a
|
|
358
|
-
* bring-your-own-credential provider
|
|
359
|
-
* connected — the agent should offer to connect it rather than call it.
|
|
358
|
+
* bring-your-own-credential provider that has not been connected.
|
|
360
359
|
*/
|
|
361
360
|
connected?: boolean;
|
|
361
|
+
/** Whether the tool can be executed. Exact lookup may return non-callable deprecated aliases. */
|
|
362
|
+
callable?: boolean;
|
|
363
|
+
/** True when callers should migrate this exact tool id to its replacement. */
|
|
364
|
+
deprecated?: boolean;
|
|
365
|
+
/** Deprecation reason, replacement, and compatibility execution behavior. */
|
|
366
|
+
deprecation?: {
|
|
367
|
+
replacementToolId: string;
|
|
368
|
+
message: string;
|
|
369
|
+
execution?: 'terminal' | 'forward';
|
|
370
|
+
};
|
|
362
371
|
/**
|
|
363
372
|
* Connection status for discovery: `managed` (Deepline-run credentials),
|
|
364
373
|
* `connected` (your own credential is connected), or `requires_connection`
|
|
365
|
-
* (BYO provider not yet connected in this workspace).
|
|
374
|
+
* (BYO provider not yet connected in this workspace). `deprecated` means
|
|
375
|
+
* connecting credentials will not make the tool callable.
|
|
366
376
|
*/
|
|
367
|
-
credentialStatus?: 'managed' | 'connected' | 'requires_connection';
|
|
377
|
+
credentialStatus?: 'managed' | 'connected' | 'requires_connection' | 'deprecated';
|
|
368
378
|
/** True when the tool requires a customer-provided credential to run. */
|
|
369
379
|
requiresOwnCredential?: boolean;
|
|
370
380
|
/** Actionable message shown when a connection is required. */
|
package/dist/index.d.ts
CHANGED
|
@@ -355,16 +355,26 @@ interface ToolDefinition {
|
|
|
355
355
|
}>;
|
|
356
356
|
/**
|
|
357
357
|
* Whether this tool is callable in the current workspace. `false` for a
|
|
358
|
-
* bring-your-own-credential provider
|
|
359
|
-
* connected — the agent should offer to connect it rather than call it.
|
|
358
|
+
* bring-your-own-credential provider that has not been connected.
|
|
360
359
|
*/
|
|
361
360
|
connected?: boolean;
|
|
361
|
+
/** Whether the tool can be executed. Exact lookup may return non-callable deprecated aliases. */
|
|
362
|
+
callable?: boolean;
|
|
363
|
+
/** True when callers should migrate this exact tool id to its replacement. */
|
|
364
|
+
deprecated?: boolean;
|
|
365
|
+
/** Deprecation reason, replacement, and compatibility execution behavior. */
|
|
366
|
+
deprecation?: {
|
|
367
|
+
replacementToolId: string;
|
|
368
|
+
message: string;
|
|
369
|
+
execution?: 'terminal' | 'forward';
|
|
370
|
+
};
|
|
362
371
|
/**
|
|
363
372
|
* Connection status for discovery: `managed` (Deepline-run credentials),
|
|
364
373
|
* `connected` (your own credential is connected), or `requires_connection`
|
|
365
|
-
* (BYO provider not yet connected in this workspace).
|
|
374
|
+
* (BYO provider not yet connected in this workspace). `deprecated` means
|
|
375
|
+
* connecting credentials will not make the tool callable.
|
|
366
376
|
*/
|
|
367
|
-
credentialStatus?: 'managed' | 'connected' | 'requires_connection';
|
|
377
|
+
credentialStatus?: 'managed' | 'connected' | 'requires_connection' | 'deprecated';
|
|
368
378
|
/** True when the tool requires a customer-provided credential to run. */
|
|
369
379
|
requiresOwnCredential?: boolean;
|
|
370
380
|
/** Actionable message shown when a connection is required. */
|
package/dist/index.js
CHANGED
|
@@ -760,7 +760,7 @@ var SDK_RELEASE = {
|
|
|
760
760
|
// 0.1.253 makes play-page browser opening opt-in and retires --no-open.
|
|
761
761
|
// 0.1.254 removes the internal operations tree from the published SDK CLI.
|
|
762
762
|
// Operators use the checkout-local deepline-admin binary instead.
|
|
763
|
-
version: "0.1.
|
|
763
|
+
version: "0.1.319",
|
|
764
764
|
contracts: {
|
|
765
765
|
api: {
|
|
766
766
|
name: "sdk-http-api",
|
package/dist/index.mjs
CHANGED
|
@@ -686,7 +686,7 @@ var SDK_RELEASE = {
|
|
|
686
686
|
// 0.1.253 makes play-page browser opening opt-in and retires --no-open.
|
|
687
687
|
// 0.1.254 removes the internal operations tree from the published SDK CLI.
|
|
688
688
|
// Operators use the checkout-local deepline-admin binary instead.
|
|
689
|
-
version: "0.1.
|
|
689
|
+
version: "0.1.319",
|
|
690
690
|
contracts: {
|
|
691
691
|
api: {
|
|
692
692
|
name: "sdk-http-api",
|
package/dist/viewer/viewer.css
CHANGED
|
@@ -1,27 +1,30 @@
|
|
|
1
1
|
|
|
2
2
|
:root {
|
|
3
|
-
--bg:
|
|
4
|
-
--bg-secondary:
|
|
5
|
-
--bg-tertiary:
|
|
6
|
-
--
|
|
7
|
-
--text:
|
|
8
|
-
--text-
|
|
9
|
-
--
|
|
10
|
-
--
|
|
11
|
-
--
|
|
12
|
-
--
|
|
13
|
-
--
|
|
14
|
-
--
|
|
15
|
-
--
|
|
16
|
-
--cyan: #39d2c0;
|
|
3
|
+
--bg: var(--background);
|
|
4
|
+
--bg-secondary: var(--background-secondary);
|
|
5
|
+
--bg-tertiary: var(--background-tertiary);
|
|
6
|
+
--text: var(--foreground);
|
|
7
|
+
--text-dim: var(--foreground-secondary);
|
|
8
|
+
--text-dimmer: var(--foreground-muted);
|
|
9
|
+
--green: var(--status-success-foreground);
|
|
10
|
+
--red: var(--status-error-foreground);
|
|
11
|
+
--yellow: var(--status-warning-foreground);
|
|
12
|
+
--blue: var(--primary-text);
|
|
13
|
+
--purple: var(--color-silver-400);
|
|
14
|
+
--orange: var(--status-warning-foreground);
|
|
15
|
+
--cyan: var(--status-info-foreground);
|
|
17
16
|
}
|
|
18
17
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
19
18
|
body {
|
|
20
19
|
background: var(--bg);
|
|
21
20
|
color: var(--text);
|
|
22
|
-
font-family: -
|
|
21
|
+
font-family: var(--font-base);
|
|
23
22
|
font-size: 14px;
|
|
24
23
|
line-height: 1.5;
|
|
24
|
+
letter-spacing: -0.011em;
|
|
25
|
+
-webkit-font-smoothing: antialiased;
|
|
26
|
+
-moz-osx-font-smoothing: grayscale;
|
|
27
|
+
text-rendering: optimizeLegibility;
|
|
25
28
|
}
|
|
26
29
|
.layout { display: flex; height: 100vh; }
|
|
27
30
|
.sidebar {
|
|
@@ -36,7 +39,7 @@ body {
|
|
|
36
39
|
padding: 10px 16px;
|
|
37
40
|
cursor: pointer;
|
|
38
41
|
border-left: 3px solid transparent;
|
|
39
|
-
transition: background
|
|
42
|
+
transition: background-color var(--duration-normal) var(--ease-standard);
|
|
40
43
|
font-size: 13px;
|
|
41
44
|
}
|
|
42
45
|
.sidebar-item:hover { background: var(--bg-tertiary); }
|
|
@@ -54,7 +57,7 @@ body {
|
|
|
54
57
|
.sidebar-compare kbd {
|
|
55
58
|
background: var(--bg-tertiary);
|
|
56
59
|
border: 1px solid var(--border);
|
|
57
|
-
border-radius:
|
|
60
|
+
border-radius: var(--radius-icon);
|
|
58
61
|
padding: 0 4px;
|
|
59
62
|
font-size: 10px;
|
|
60
63
|
font-family: inherit;
|
|
@@ -64,7 +67,7 @@ body {
|
|
|
64
67
|
.header {
|
|
65
68
|
background: var(--bg-secondary);
|
|
66
69
|
border: 1px solid var(--border);
|
|
67
|
-
border-radius:
|
|
70
|
+
border-radius: var(--radius-lg);
|
|
68
71
|
padding: 20px 24px;
|
|
69
72
|
margin-bottom: 20px;
|
|
70
73
|
}
|
|
@@ -99,7 +102,7 @@ body {
|
|
|
99
102
|
gap: 4px;
|
|
100
103
|
background: var(--bg);
|
|
101
104
|
border: 1px solid var(--border);
|
|
102
|
-
border-radius:
|
|
105
|
+
border-radius: var(--radius-sm);
|
|
103
106
|
padding: 2px 8px;
|
|
104
107
|
font-size: 12px;
|
|
105
108
|
}
|
|
@@ -150,7 +153,7 @@ body {
|
|
|
150
153
|
line-height: 1.6;
|
|
151
154
|
white-space: pre-wrap;
|
|
152
155
|
word-break: break-word;
|
|
153
|
-
background:
|
|
156
|
+
background: color-mix(in srgb, var(--status-success-accent) 4%, transparent);
|
|
154
157
|
}
|
|
155
158
|
.user-message.collapsed { max-height: 100px; overflow: hidden; position: relative; }
|
|
156
159
|
.user-message.collapsed::after {
|
|
@@ -184,7 +187,7 @@ body {
|
|
|
184
187
|
white-space: pre-wrap;
|
|
185
188
|
word-break: break-word;
|
|
186
189
|
font-style: italic;
|
|
187
|
-
background:
|
|
190
|
+
background: color-mix(in srgb, var(--color-silver-400) 3%, transparent);
|
|
188
191
|
}
|
|
189
192
|
.thinking.collapsed { max-height: 100px; overflow: hidden; position: relative; }
|
|
190
193
|
.thinking.collapsed::after {
|
|
@@ -231,10 +234,10 @@ body {
|
|
|
231
234
|
align-items: center;
|
|
232
235
|
gap: 12px;
|
|
233
236
|
padding: 6px 12px;
|
|
234
|
-
border-radius:
|
|
237
|
+
border-radius: var(--radius-md);
|
|
235
238
|
cursor: pointer;
|
|
236
|
-
transition: background
|
|
237
|
-
font-family:
|
|
239
|
+
transition: background-color var(--duration-normal) var(--ease-standard);
|
|
240
|
+
font-family: var(--font-mono);
|
|
238
241
|
font-size: 13px;
|
|
239
242
|
}
|
|
240
243
|
.tool-row:hover { background: var(--bg-secondary); }
|
|
@@ -244,15 +247,15 @@ body {
|
|
|
244
247
|
.tool-status {
|
|
245
248
|
display: inline-block;
|
|
246
249
|
padding: 1px 8px;
|
|
247
|
-
border-radius:
|
|
250
|
+
border-radius: var(--radius-control);
|
|
248
251
|
font-size: 11px;
|
|
249
252
|
font-weight: 600;
|
|
250
253
|
min-width: 42px;
|
|
251
254
|
text-align: center;
|
|
252
255
|
}
|
|
253
|
-
.tool-status.ok { background:
|
|
254
|
-
.tool-status.fail { background:
|
|
255
|
-
.tool-status.unknown { background:
|
|
256
|
+
.tool-status.ok { background: color-mix(in srgb, var(--status-success-accent) 15%, transparent); color: var(--green); }
|
|
257
|
+
.tool-status.fail { background: color-mix(in srgb, var(--status-error-accent) 15%, transparent); color: var(--red); }
|
|
258
|
+
.tool-status.unknown { background: color-mix(in srgb, var(--foreground-muted) 15%, transparent); color: var(--text-dim); }
|
|
256
259
|
.tool-name {
|
|
257
260
|
font-weight: 600;
|
|
258
261
|
min-width: 70px;
|
|
@@ -274,22 +277,22 @@ body {
|
|
|
274
277
|
color: var(--text-dimmer);
|
|
275
278
|
background: var(--bg-tertiary);
|
|
276
279
|
border: 1px solid var(--border);
|
|
277
|
-
border-radius:
|
|
280
|
+
border-radius: var(--radius-sm);
|
|
278
281
|
padding: 0 5px;
|
|
279
282
|
white-space: nowrap;
|
|
280
283
|
}
|
|
281
284
|
.loop-badge {
|
|
282
285
|
color: var(--yellow);
|
|
283
|
-
border-color:
|
|
284
|
-
background:
|
|
286
|
+
border-color: color-mix(in srgb, var(--status-warning-accent) 40%, transparent);
|
|
287
|
+
background: color-mix(in srgb, var(--status-warning-accent) 8%, transparent);
|
|
285
288
|
}
|
|
286
289
|
.repeat-badge {
|
|
287
290
|
margin-left: 6px;
|
|
288
291
|
font-size: 10px;
|
|
289
292
|
color: var(--text-dimmer);
|
|
290
|
-
background:
|
|
291
|
-
border: 1px solid
|
|
292
|
-
border-radius:
|
|
293
|
+
background: color-mix(in srgb, var(--color-silver-400) 8%, transparent);
|
|
294
|
+
border: 1px solid color-mix(in srgb, var(--color-silver-400) 30%, transparent);
|
|
295
|
+
border-radius: var(--radius-sm);
|
|
293
296
|
padding: 0 5px;
|
|
294
297
|
white-space: nowrap;
|
|
295
298
|
cursor: help;
|
|
@@ -319,7 +322,7 @@ body {
|
|
|
319
322
|
margin-left: 48px;
|
|
320
323
|
margin-bottom: 12px;
|
|
321
324
|
border: 1px solid var(--border);
|
|
322
|
-
border-radius:
|
|
325
|
+
border-radius: var(--radius-md);
|
|
323
326
|
overflow: hidden;
|
|
324
327
|
}
|
|
325
328
|
.tool-detail.open { display: block; }
|
|
@@ -337,12 +340,12 @@ body {
|
|
|
337
340
|
}
|
|
338
341
|
.tool-detail-section pre {
|
|
339
342
|
background: var(--bg);
|
|
340
|
-
border-radius:
|
|
343
|
+
border-radius: var(--radius-sm);
|
|
341
344
|
padding: 10px 14px;
|
|
342
345
|
overflow-x: auto;
|
|
343
346
|
font-size: 12px;
|
|
344
347
|
line-height: 1.5;
|
|
345
|
-
font-family:
|
|
348
|
+
font-family: var(--font-mono);
|
|
346
349
|
white-space: pre-wrap;
|
|
347
350
|
word-break: break-word;
|
|
348
351
|
max-height: 400px;
|
|
@@ -351,13 +354,13 @@ body {
|
|
|
351
354
|
}
|
|
352
355
|
.tool-detail-section pre.error-content {
|
|
353
356
|
border: 1px solid var(--red);
|
|
354
|
-
background:
|
|
357
|
+
background: color-mix(in srgb, var(--status-error-accent) 6%, transparent);
|
|
355
358
|
}
|
|
356
359
|
.tool-detail-toggle {
|
|
357
360
|
margin-top: 8px;
|
|
358
361
|
background: var(--bg-tertiary);
|
|
359
362
|
border: 1px solid var(--border);
|
|
360
|
-
border-radius:
|
|
363
|
+
border-radius: var(--radius-sm);
|
|
361
364
|
color: var(--blue);
|
|
362
365
|
cursor: pointer;
|
|
363
366
|
font-size: 12px;
|
|
@@ -369,7 +372,7 @@ body {
|
|
|
369
372
|
.result-card {
|
|
370
373
|
background: var(--bg-secondary);
|
|
371
374
|
border: 1px solid var(--border);
|
|
372
|
-
border-radius:
|
|
375
|
+
border-radius: var(--radius-lg);
|
|
373
376
|
padding: 20px 24px;
|
|
374
377
|
margin-top: 20px;
|
|
375
378
|
}
|
|
@@ -392,7 +395,7 @@ body {
|
|
|
392
395
|
flex: 1;
|
|
393
396
|
background: var(--bg-secondary);
|
|
394
397
|
border: 1px solid var(--border);
|
|
395
|
-
border-radius:
|
|
398
|
+
border-radius: var(--radius-md);
|
|
396
399
|
padding: 8px 12px;
|
|
397
400
|
color: var(--text);
|
|
398
401
|
font-size: 13px;
|
|
@@ -404,7 +407,7 @@ body {
|
|
|
404
407
|
.filter-btn {
|
|
405
408
|
background: var(--bg-secondary);
|
|
406
409
|
border: 1px solid var(--border);
|
|
407
|
-
border-radius:
|
|
410
|
+
border-radius: var(--radius-md);
|
|
408
411
|
padding: 8px 12px;
|
|
409
412
|
color: var(--text-dim);
|
|
410
413
|
font-size: 12px;
|
|
@@ -417,7 +420,7 @@ body {
|
|
|
417
420
|
.prompt-card {
|
|
418
421
|
background: var(--bg-secondary);
|
|
419
422
|
border: 1px solid var(--border);
|
|
420
|
-
border-radius:
|
|
423
|
+
border-radius: var(--radius-lg);
|
|
421
424
|
padding: 16px 20px;
|
|
422
425
|
margin-bottom: 16px;
|
|
423
426
|
}
|
|
@@ -440,11 +443,11 @@ body {
|
|
|
440
443
|
font-size: 11px;
|
|
441
444
|
font-weight: 600;
|
|
442
445
|
padding: 2px 8px;
|
|
443
|
-
border-radius:
|
|
446
|
+
border-radius: var(--radius-control);
|
|
444
447
|
vertical-align: middle;
|
|
445
448
|
}
|
|
446
|
-
.timing-badge.exact { background:
|
|
447
|
-
.timing-badge.estimated { background:
|
|
449
|
+
.timing-badge.exact { background: color-mix(in srgb, var(--status-success-accent) 15%, transparent); color: var(--green); }
|
|
450
|
+
.timing-badge.estimated { background: color-mix(in srgb, var(--status-warning-accent) 15%, transparent); color: var(--yellow); }
|
|
448
451
|
|
|
449
452
|
/* Live badge */
|
|
450
453
|
.live-badge {
|
|
@@ -452,8 +455,8 @@ body {
|
|
|
452
455
|
font-size: 11px;
|
|
453
456
|
font-weight: 700;
|
|
454
457
|
padding: 2px 10px;
|
|
455
|
-
border-radius:
|
|
456
|
-
background:
|
|
458
|
+
border-radius: var(--radius-control);
|
|
459
|
+
background: color-mix(in srgb, var(--status-error-accent) 15%, transparent);
|
|
457
460
|
color: var(--red);
|
|
458
461
|
animation: live-pulse 2s ease-in-out infinite;
|
|
459
462
|
letter-spacing: 0.5px;
|
|
@@ -461,7 +464,7 @@ body {
|
|
|
461
464
|
user-select: none;
|
|
462
465
|
}
|
|
463
466
|
.live-badge.paused {
|
|
464
|
-
background:
|
|
467
|
+
background: color-mix(in srgb, var(--foreground-muted) 15%, transparent);
|
|
465
468
|
color: var(--text-dim);
|
|
466
469
|
animation: none;
|
|
467
470
|
}
|
|
@@ -473,7 +476,7 @@ body {
|
|
|
473
476
|
.download-btn {
|
|
474
477
|
background: var(--bg-secondary);
|
|
475
478
|
border: 1px solid var(--border);
|
|
476
|
-
border-radius:
|
|
479
|
+
border-radius: var(--radius-md);
|
|
477
480
|
padding: 4px 10px;
|
|
478
481
|
color: var(--text-dim);
|
|
479
482
|
font-size: 12px;
|
|
@@ -487,7 +490,7 @@ body {
|
|
|
487
490
|
.file-map-card {
|
|
488
491
|
background: var(--bg-secondary);
|
|
489
492
|
border: 1px solid var(--border);
|
|
490
|
-
border-radius:
|
|
493
|
+
border-radius: var(--radius-lg);
|
|
491
494
|
margin-bottom: 16px;
|
|
492
495
|
overflow: hidden;
|
|
493
496
|
}
|
|
@@ -500,7 +503,7 @@ body {
|
|
|
500
503
|
font-size: 13px;
|
|
501
504
|
font-weight: 600;
|
|
502
505
|
color: var(--text-dim);
|
|
503
|
-
transition: background
|
|
506
|
+
transition: background-color var(--duration-normal) var(--ease-standard);
|
|
504
507
|
}
|
|
505
508
|
.file-map-header:hover { background: var(--bg-tertiary); }
|
|
506
509
|
.file-map-toggle {
|
|
@@ -517,7 +520,7 @@ body {
|
|
|
517
520
|
width: 100%;
|
|
518
521
|
border-collapse: collapse;
|
|
519
522
|
font-size: 12px;
|
|
520
|
-
font-family:
|
|
523
|
+
font-family: var(--font-mono);
|
|
521
524
|
}
|
|
522
525
|
.file-map-table th {
|
|
523
526
|
background: var(--bg-tertiary);
|
|
@@ -536,13 +539,13 @@ body {
|
|
|
536
539
|
color: var(--text-dim);
|
|
537
540
|
}
|
|
538
541
|
.file-map-table td:first-child { color: var(--text); }
|
|
539
|
-
.file-map-table tr:hover { background:
|
|
542
|
+
.file-map-table tr:hover { background: color-mix(in srgb, var(--primary) 4%, transparent); }
|
|
540
543
|
|
|
541
544
|
/* Comparison view */
|
|
542
545
|
.comparison-table-wrap {
|
|
543
546
|
background: var(--bg-secondary);
|
|
544
547
|
border: 1px solid var(--border);
|
|
545
|
-
border-radius:
|
|
548
|
+
border-radius: var(--radius-lg);
|
|
546
549
|
overflow: hidden;
|
|
547
550
|
}
|
|
548
551
|
.comparison-table {
|
|
@@ -571,7 +574,7 @@ body {
|
|
|
571
574
|
font-weight: 500;
|
|
572
575
|
min-width: 140px;
|
|
573
576
|
}
|
|
574
|
-
.comparison-table tr:hover { background:
|
|
577
|
+
.comparison-table tr:hover { background: color-mix(in srgb, var(--primary) 4%, transparent); }
|
|
575
578
|
.compare-dim { color: var(--text-dimmer); font-size: 11px; }
|
|
576
579
|
.compare-best { color: var(--green); font-weight: 600; }
|
|
577
580
|
.compare-worst { color: var(--red); }
|
|
@@ -593,8 +596,8 @@ body {
|
|
|
593
596
|
.md-rendered p { margin-bottom: 8px; }
|
|
594
597
|
.md-rendered strong { color: var(--text); font-weight: 600; }
|
|
595
598
|
.md-rendered code {
|
|
596
|
-
background: var(--bg-tertiary); border-radius:
|
|
597
|
-
font-family:
|
|
599
|
+
background: var(--bg-tertiary); border-radius: var(--radius-icon); padding: 1px 5px;
|
|
600
|
+
font-family: var(--font-mono); font-size: 12px;
|
|
598
601
|
}
|
|
599
602
|
.md-rendered table {
|
|
600
603
|
border-collapse: collapse; margin: 8px 0; width: 100%; font-size: 12px;
|
|
@@ -606,7 +609,7 @@ body {
|
|
|
606
609
|
background: var(--bg-tertiary); color: var(--text-dim); font-weight: 600;
|
|
607
610
|
font-size: 11px; text-transform: uppercase; letter-spacing: 0.3px;
|
|
608
611
|
}
|
|
609
|
-
.md-rendered tr:hover { background:
|
|
612
|
+
.md-rendered tr:hover { background: color-mix(in srgb, var(--primary) 4%, transparent); }
|
|
610
613
|
.md-rendered a { color: var(--blue); text-decoration: none; }
|
|
611
614
|
.md-rendered a:hover { text-decoration: underline; }
|
|
612
615
|
.md-rendered h1, .md-rendered h2, .md-rendered h3 {
|
|
@@ -618,9 +621,9 @@ body {
|
|
|
618
621
|
.md-rendered ul, .md-rendered ol { margin: 4px 0 8px 20px; }
|
|
619
622
|
.md-rendered li { margin-bottom: 2px; }
|
|
620
623
|
.md-rendered pre {
|
|
621
|
-
background: var(--bg); border-radius:
|
|
624
|
+
background: var(--bg); border-radius: var(--radius-sm); padding: 10px 14px;
|
|
622
625
|
font-size: 12px; line-height: 1.5; overflow-x: auto;
|
|
623
|
-
font-family:
|
|
626
|
+
font-family: var(--font-mono);
|
|
624
627
|
margin: 8px 0;
|
|
625
628
|
white-space: pre-wrap;
|
|
626
629
|
word-break: break-word;
|