@superdoc/sdk 2.12.0 → 2.13.0-next.1
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/agent/actions.cjs +30 -7
- package/dist/agent/actions.js +30 -7
- package/dist/embedded-tools.generated.cjs +5 -5
- package/dist/embedded-tools.generated.js +5 -5
- package/dist/generated/contract.cjs +10 -4
- package/dist/generated/contract.js +10 -4
- package/dist/generated/intent-dispatch.generated.cjs +2 -0
- package/dist/generated/intent-dispatch.generated.js +2 -0
- package/dist/runtime/sdk-version.generated.cjs +1 -1
- package/dist/runtime/sdk-version.generated.d.ts +1 -1
- package/dist/runtime/sdk-version.generated.js +1 -1
- package/package.json +6 -6
- package/tools/catalog.json +142 -97
- package/tools/intent_dispatch_generated.py +4 -0
- package/tools/tools.anthropic.json +127 -97
- package/tools/tools.generic.json +130 -98
- package/tools/tools.openai.json +127 -97
- package/tools/tools.vercel.json +127 -97
- package/tools/__pycache__/__init__.cpython-311.pyc +0 -0
- package/tools/__pycache__/intent_dispatch_generated.cpython-311.pyc +0 -0
package/dist/agent/actions.cjs
CHANGED
|
@@ -1133,7 +1133,7 @@ async function runInsertHeading(doc, args) {
|
|
|
1133
1133
|
return failedReceipt('insert_heading', err, pre);
|
|
1134
1134
|
}
|
|
1135
1135
|
}
|
|
1136
|
-
async function
|
|
1136
|
+
async function runReplaceTextUnchecked(doc, args) {
|
|
1137
1137
|
const selectorDomains = args.selector ? snapshotDomainsForSelector(args.selector) : null;
|
|
1138
1138
|
const requiresBlockSnapshot = args.selector != null;
|
|
1139
1139
|
const preIdentity = requiresBlockSnapshot ? null : await readDocumentIdentity(doc);
|
|
@@ -1326,6 +1326,13 @@ async function runReplaceText(doc, args) {
|
|
|
1326
1326
|
return failedReceipt('replace_text', err, pre);
|
|
1327
1327
|
}
|
|
1328
1328
|
}
|
|
1329
|
+
async function runReplaceText(doc, args) {
|
|
1330
|
+
const changeMode = args.changeMode ?? 'direct';
|
|
1331
|
+
return {
|
|
1332
|
+
...(await runReplaceTextUnchecked(doc, { ...args, changeMode })),
|
|
1333
|
+
changeMode,
|
|
1334
|
+
};
|
|
1335
|
+
}
|
|
1329
1336
|
async function runDeleteText(doc, args) {
|
|
1330
1337
|
const caseSensitive = args.caseSensitive === true;
|
|
1331
1338
|
// Scoped form: delete finds within ONE block (mirrors replace_text's selector
|
|
@@ -4613,7 +4620,7 @@ function compactOpResult(result) {
|
|
|
4613
4620
|
compact.stepCount = result.steps.length;
|
|
4614
4621
|
return compact;
|
|
4615
4622
|
}
|
|
4616
|
-
function parseScopedReplaceArgs(args) {
|
|
4623
|
+
function parseScopedReplaceArgs(args, changeMode) {
|
|
4617
4624
|
if (args.action !== 'replace_text')
|
|
4618
4625
|
return null;
|
|
4619
4626
|
if (!isRecord(args.selector))
|
|
@@ -4630,7 +4637,7 @@ function parseScopedReplaceArgs(args) {
|
|
|
4630
4637
|
edits,
|
|
4631
4638
|
selector: args.selector,
|
|
4632
4639
|
caseSensitive: args.caseSensitive === true,
|
|
4633
|
-
changeMode
|
|
4640
|
+
changeMode,
|
|
4634
4641
|
};
|
|
4635
4642
|
}
|
|
4636
4643
|
async function runScopedReplaceUnchecked(doc, args) {
|
|
@@ -4796,11 +4803,15 @@ async function runScopedReplaceUnchecked(doc, args) {
|
|
|
4796
4803
|
};
|
|
4797
4804
|
}
|
|
4798
4805
|
async function runScopedReplace(doc, args) {
|
|
4806
|
+
const changeMode = args.changeMode ?? 'direct';
|
|
4799
4807
|
try {
|
|
4800
|
-
return
|
|
4808
|
+
return {
|
|
4809
|
+
...(await runScopedReplaceUnchecked(doc, { ...args, changeMode })),
|
|
4810
|
+
changeMode,
|
|
4811
|
+
};
|
|
4801
4812
|
}
|
|
4802
4813
|
catch (error) {
|
|
4803
|
-
return failedReceipt('replace_text', error);
|
|
4814
|
+
return { ...failedReceipt('replace_text', error), changeMode };
|
|
4804
4815
|
}
|
|
4805
4816
|
}
|
|
4806
4817
|
/**
|
|
@@ -6526,11 +6537,12 @@ async function dispatchSuperdocPerformAction(doc, args) {
|
|
|
6526
6537
|
code: 'INVALID_ARGUMENT',
|
|
6527
6538
|
});
|
|
6528
6539
|
}
|
|
6540
|
+
const changeMode = parseReplaceTextChangeMode(args.changeMode);
|
|
6529
6541
|
// Selector-scoped replaces take the span-targeted path: per-find
|
|
6530
6542
|
// text.rewrite spans inside the one selected block, so tabs/breaks/
|
|
6531
6543
|
// images outside the spans survive and the receipt reports per-edit
|
|
6532
6544
|
// applied/skipped truth.
|
|
6533
|
-
const scoped = parseScopedReplaceArgs(args);
|
|
6545
|
+
const scoped = parseScopedReplaceArgs(args, changeMode);
|
|
6534
6546
|
if (scoped) {
|
|
6535
6547
|
return runScopedReplace(doc, scoped);
|
|
6536
6548
|
}
|
|
@@ -6543,7 +6555,7 @@ async function dispatchSuperdocPerformAction(doc, args) {
|
|
|
6543
6555
|
edits,
|
|
6544
6556
|
selector,
|
|
6545
6557
|
caseSensitive: args.caseSensitive === true,
|
|
6546
|
-
changeMode
|
|
6558
|
+
changeMode,
|
|
6547
6559
|
});
|
|
6548
6560
|
}
|
|
6549
6561
|
case 'delete_text': {
|
|
@@ -7171,6 +7183,17 @@ function parseChangeMode(value) {
|
|
|
7171
7183
|
return value;
|
|
7172
7184
|
return undefined;
|
|
7173
7185
|
}
|
|
7186
|
+
function parseReplaceTextChangeMode(value) {
|
|
7187
|
+
if (value === undefined)
|
|
7188
|
+
return 'direct';
|
|
7189
|
+
const changeMode = parseChangeMode(value);
|
|
7190
|
+
if (changeMode)
|
|
7191
|
+
return changeMode;
|
|
7192
|
+
throw new errors.SuperDocCliError('replace_text: "changeMode" must be "direct" or "tracked"', {
|
|
7193
|
+
code: 'INVALID_ARGUMENT',
|
|
7194
|
+
details: { changeMode: value },
|
|
7195
|
+
});
|
|
7196
|
+
}
|
|
7174
7197
|
function parseTrackedChangeKind(value) {
|
|
7175
7198
|
if (value === 'insert' || value === 'delete' || value === 'replacement' || value === 'format')
|
|
7176
7199
|
return value;
|
package/dist/agent/actions.js
CHANGED
|
@@ -1130,7 +1130,7 @@ async function runInsertHeading(doc, args) {
|
|
|
1130
1130
|
return failedReceipt('insert_heading', err, pre);
|
|
1131
1131
|
}
|
|
1132
1132
|
}
|
|
1133
|
-
async function
|
|
1133
|
+
async function runReplaceTextUnchecked(doc, args) {
|
|
1134
1134
|
const selectorDomains = args.selector ? snapshotDomainsForSelector(args.selector) : null;
|
|
1135
1135
|
const requiresBlockSnapshot = args.selector != null;
|
|
1136
1136
|
const preIdentity = requiresBlockSnapshot ? null : await readDocumentIdentity(doc);
|
|
@@ -1323,6 +1323,13 @@ async function runReplaceText(doc, args) {
|
|
|
1323
1323
|
return failedReceipt('replace_text', err, pre);
|
|
1324
1324
|
}
|
|
1325
1325
|
}
|
|
1326
|
+
async function runReplaceText(doc, args) {
|
|
1327
|
+
const changeMode = args.changeMode ?? 'direct';
|
|
1328
|
+
return {
|
|
1329
|
+
...(await runReplaceTextUnchecked(doc, { ...args, changeMode })),
|
|
1330
|
+
changeMode,
|
|
1331
|
+
};
|
|
1332
|
+
}
|
|
1326
1333
|
async function runDeleteText(doc, args) {
|
|
1327
1334
|
const caseSensitive = args.caseSensitive === true;
|
|
1328
1335
|
// Scoped form: delete finds within ONE block (mirrors replace_text's selector
|
|
@@ -4610,7 +4617,7 @@ function compactOpResult(result) {
|
|
|
4610
4617
|
compact.stepCount = result.steps.length;
|
|
4611
4618
|
return compact;
|
|
4612
4619
|
}
|
|
4613
|
-
function parseScopedReplaceArgs(args) {
|
|
4620
|
+
function parseScopedReplaceArgs(args, changeMode) {
|
|
4614
4621
|
if (args.action !== 'replace_text')
|
|
4615
4622
|
return null;
|
|
4616
4623
|
if (!isRecord(args.selector))
|
|
@@ -4627,7 +4634,7 @@ function parseScopedReplaceArgs(args) {
|
|
|
4627
4634
|
edits,
|
|
4628
4635
|
selector: args.selector,
|
|
4629
4636
|
caseSensitive: args.caseSensitive === true,
|
|
4630
|
-
changeMode
|
|
4637
|
+
changeMode,
|
|
4631
4638
|
};
|
|
4632
4639
|
}
|
|
4633
4640
|
async function runScopedReplaceUnchecked(doc, args) {
|
|
@@ -4793,11 +4800,15 @@ async function runScopedReplaceUnchecked(doc, args) {
|
|
|
4793
4800
|
};
|
|
4794
4801
|
}
|
|
4795
4802
|
async function runScopedReplace(doc, args) {
|
|
4803
|
+
const changeMode = args.changeMode ?? 'direct';
|
|
4796
4804
|
try {
|
|
4797
|
-
return
|
|
4805
|
+
return {
|
|
4806
|
+
...(await runScopedReplaceUnchecked(doc, { ...args, changeMode })),
|
|
4807
|
+
changeMode,
|
|
4808
|
+
};
|
|
4798
4809
|
}
|
|
4799
4810
|
catch (error) {
|
|
4800
|
-
return failedReceipt('replace_text', error);
|
|
4811
|
+
return { ...failedReceipt('replace_text', error), changeMode };
|
|
4801
4812
|
}
|
|
4802
4813
|
}
|
|
4803
4814
|
/**
|
|
@@ -6523,11 +6534,12 @@ async function dispatchSuperdocPerformAction(doc, args) {
|
|
|
6523
6534
|
code: 'INVALID_ARGUMENT',
|
|
6524
6535
|
});
|
|
6525
6536
|
}
|
|
6537
|
+
const changeMode = parseReplaceTextChangeMode(args.changeMode);
|
|
6526
6538
|
// Selector-scoped replaces take the span-targeted path: per-find
|
|
6527
6539
|
// text.rewrite spans inside the one selected block, so tabs/breaks/
|
|
6528
6540
|
// images outside the spans survive and the receipt reports per-edit
|
|
6529
6541
|
// applied/skipped truth.
|
|
6530
|
-
const scoped = parseScopedReplaceArgs(args);
|
|
6542
|
+
const scoped = parseScopedReplaceArgs(args, changeMode);
|
|
6531
6543
|
if (scoped) {
|
|
6532
6544
|
return runScopedReplace(doc, scoped);
|
|
6533
6545
|
}
|
|
@@ -6540,7 +6552,7 @@ async function dispatchSuperdocPerformAction(doc, args) {
|
|
|
6540
6552
|
edits,
|
|
6541
6553
|
selector,
|
|
6542
6554
|
caseSensitive: args.caseSensitive === true,
|
|
6543
|
-
changeMode
|
|
6555
|
+
changeMode,
|
|
6544
6556
|
});
|
|
6545
6557
|
}
|
|
6546
6558
|
case 'delete_text': {
|
|
@@ -7170,6 +7182,17 @@ function parseChangeMode(value) {
|
|
|
7170
7182
|
return value;
|
|
7171
7183
|
return undefined;
|
|
7172
7184
|
}
|
|
7185
|
+
function parseReplaceTextChangeMode(value) {
|
|
7186
|
+
if (value === undefined)
|
|
7187
|
+
return 'direct';
|
|
7188
|
+
const changeMode = parseChangeMode(value);
|
|
7189
|
+
if (changeMode)
|
|
7190
|
+
return changeMode;
|
|
7191
|
+
throw new SuperDocCliError('replace_text: "changeMode" must be "direct" or "tracked"', {
|
|
7192
|
+
code: 'INVALID_ARGUMENT',
|
|
7193
|
+
details: { changeMode: value },
|
|
7194
|
+
});
|
|
7195
|
+
}
|
|
7173
7196
|
function parseTrackedChangeKind(value) {
|
|
7174
7197
|
if (value === 'insert' || value === 'delete' || value === 'replacement' || value === 'format')
|
|
7175
7198
|
return value;
|