@superdoc/sdk 2.26.0 → 2.27.0-next.9
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/README.md +236 -29
- package/dist/agent/actions.cjs +62 -24
- package/dist/agent/actions.js +62 -24
- package/dist/agent/catalog.d.ts +0 -4
- package/dist/agent/catalog.js +0 -4
- package/dist/embedded-prompts.generated.cjs +1 -1
- package/dist/embedded-prompts.generated.js +1 -1
- package/dist/embedded-tools.generated.cjs +5 -5
- package/dist/embedded-tools.generated.js +5 -5
- package/dist/generated/client.cjs +18 -1
- package/dist/generated/client.d.ts +3248 -1019
- package/dist/generated/client.js +18 -1
- package/dist/generated/contract.cjs +1 -2
- package/dist/generated/contract.d.ts +1 -0
- package/dist/generated/contract.js +1 -2
- package/dist/index.cjs +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/presets/full.cjs +4 -0
- package/dist/presets/full.js +4 -0
- package/dist/prompts/full-addendum.md +1 -0
- package/dist/runtime/host.cjs +36 -3
- package/dist/runtime/host.d.ts +5 -0
- package/dist/runtime/host.js +36 -4
- package/dist/runtime/notifications.cjs +124 -0
- package/dist/runtime/notifications.d.ts +35 -0
- package/dist/runtime/notifications.js +116 -0
- package/dist/runtime/process.cjs +4 -1
- package/dist/runtime/process.d.ts +2 -0
- package/dist/runtime/process.js +4 -1
- package/dist/runtime/sdk-policy.d.ts +1 -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/dist/runtime/transport-common.cjs +9 -1
- package/dist/runtime/transport-common.d.ts +3 -0
- package/dist/runtime/transport-common.js +8 -1
- package/package.json +7 -7
- package/tools/catalog.json +42 -2
- package/tools/generation-receipt.json +60 -22
- package/tools/tools-policy.json +1 -1
- package/tools/tools.anthropic.json +42 -2
- package/tools/tools.generic.json +42 -2
- package/tools/tools.openai.json +42 -2
- package/tools/tools.vercel.json +42 -2
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { SuperDocCliError } from './errors.js';
|
|
2
|
+
export const NOTIFICATIONS_LAGGED = 'NOTIFICATIONS_LAGGED';
|
|
3
|
+
export const DEFAULT_NOTIFICATION_CAPACITY = 64;
|
|
4
|
+
const LAGGED_MESSAGE = 'resynchronize document state before using notification-derived caches';
|
|
5
|
+
const RESYNC_HINT = 'Call changes.list with the cursor of the last change record you processed.';
|
|
6
|
+
export class HostNotifications {
|
|
7
|
+
capacity;
|
|
8
|
+
detach;
|
|
9
|
+
queue = [];
|
|
10
|
+
waiters = [];
|
|
11
|
+
skipped = 0;
|
|
12
|
+
failure = null;
|
|
13
|
+
closed = false;
|
|
14
|
+
constructor(capacity, detach) {
|
|
15
|
+
this.capacity = capacity;
|
|
16
|
+
this.detach = detach;
|
|
17
|
+
}
|
|
18
|
+
next() {
|
|
19
|
+
if (this.skipped > 0) {
|
|
20
|
+
const skipped = this.skipped;
|
|
21
|
+
this.skipped = 0;
|
|
22
|
+
return Promise.reject(new SuperDocCliError(LAGGED_MESSAGE, {
|
|
23
|
+
code: NOTIFICATIONS_LAGGED,
|
|
24
|
+
details: { skipped, resync: RESYNC_HINT },
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
const notification = this.queue.shift();
|
|
28
|
+
if (notification)
|
|
29
|
+
return Promise.resolve({ done: false, value: notification });
|
|
30
|
+
if (this.failure) {
|
|
31
|
+
const failure = this.failure;
|
|
32
|
+
this.failure = null;
|
|
33
|
+
return Promise.reject(failure);
|
|
34
|
+
}
|
|
35
|
+
if (this.closed)
|
|
36
|
+
return Promise.resolve({ done: true, value: undefined });
|
|
37
|
+
return new Promise((resolve, reject) => this.waiters.push({ resolve, reject }));
|
|
38
|
+
}
|
|
39
|
+
return() {
|
|
40
|
+
this.close();
|
|
41
|
+
return Promise.resolve({ done: true, value: undefined });
|
|
42
|
+
}
|
|
43
|
+
close() {
|
|
44
|
+
if (this.closed)
|
|
45
|
+
return;
|
|
46
|
+
this.closed = true;
|
|
47
|
+
this.queue.length = 0;
|
|
48
|
+
this.skipped = 0;
|
|
49
|
+
this.failure = null;
|
|
50
|
+
this.detach(this);
|
|
51
|
+
for (const waiter of this.waiters.splice(0))
|
|
52
|
+
waiter.resolve({ done: true, value: undefined });
|
|
53
|
+
}
|
|
54
|
+
[Symbol.asyncIterator]() {
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
57
|
+
get isClosed() {
|
|
58
|
+
return this.closed;
|
|
59
|
+
}
|
|
60
|
+
deliver(notification) {
|
|
61
|
+
if (this.closed)
|
|
62
|
+
return;
|
|
63
|
+
const waiter = this.waiters.shift();
|
|
64
|
+
if (waiter) {
|
|
65
|
+
waiter.resolve({ done: false, value: notification });
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (this.queue.length >= this.capacity) {
|
|
69
|
+
this.queue.shift();
|
|
70
|
+
this.skipped += 1;
|
|
71
|
+
}
|
|
72
|
+
this.queue.push(notification);
|
|
73
|
+
}
|
|
74
|
+
fail(error) {
|
|
75
|
+
if (this.closed)
|
|
76
|
+
return;
|
|
77
|
+
const waiter = this.waiters.shift();
|
|
78
|
+
if (waiter) {
|
|
79
|
+
waiter.reject(error);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
this.failure = error;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
export class HostNotificationHub {
|
|
86
|
+
subscriptions = new Set();
|
|
87
|
+
subscribe(options = {}) {
|
|
88
|
+
const capacity = options.capacity ?? DEFAULT_NOTIFICATION_CAPACITY;
|
|
89
|
+
if (!Number.isSafeInteger(capacity) || capacity < 1) {
|
|
90
|
+
throw new SuperDocCliError('Notification capacity must be a positive integer.', {
|
|
91
|
+
code: 'INVALID_ARGUMENT',
|
|
92
|
+
details: { capacity },
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
const subscription = new HostNotifications(capacity, (closed) => this.subscriptions.delete(closed));
|
|
96
|
+
this.subscriptions.add(subscription);
|
|
97
|
+
return subscription;
|
|
98
|
+
}
|
|
99
|
+
publish(frame) {
|
|
100
|
+
if (this.subscriptions.size === 0 || typeof frame.method !== 'string')
|
|
101
|
+
return;
|
|
102
|
+
const notification = frame.params === undefined
|
|
103
|
+
? { jsonrpc: '2.0', method: frame.method }
|
|
104
|
+
: { jsonrpc: '2.0', method: frame.method, params: frame.params };
|
|
105
|
+
for (const subscription of this.subscriptions)
|
|
106
|
+
subscription.deliver(notification);
|
|
107
|
+
}
|
|
108
|
+
disconnect(error) {
|
|
109
|
+
for (const subscription of this.subscriptions)
|
|
110
|
+
subscription.fail(error);
|
|
111
|
+
}
|
|
112
|
+
close() {
|
|
113
|
+
for (const subscription of [...this.subscriptions])
|
|
114
|
+
subscription.close();
|
|
115
|
+
}
|
|
116
|
+
}
|
package/dist/runtime/process.cjs
CHANGED
|
@@ -16,7 +16,7 @@ function resolveRuntimeProcess(options = {}, embedded = {
|
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
function toSafeInvokeTraceOptions(options) {
|
|
19
|
-
const { collaborationAuth: _collaborationAuth, ...traceOptions } = options;
|
|
19
|
+
const { collaborationAuth: _collaborationAuth, identityClaim: _identityClaim, ...traceOptions } = options;
|
|
20
20
|
return traceOptions;
|
|
21
21
|
}
|
|
22
22
|
class SuperDocRuntime {
|
|
@@ -31,6 +31,9 @@ class SuperDocRuntime {
|
|
|
31
31
|
async connect() {
|
|
32
32
|
await this.transport.connect();
|
|
33
33
|
}
|
|
34
|
+
subscribe(options = {}) {
|
|
35
|
+
return this.transport.subscribe(options);
|
|
36
|
+
}
|
|
34
37
|
supportsDocumentFacts(sessionId) {
|
|
35
38
|
return this.transport.supportsDocumentFacts(sessionId);
|
|
36
39
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { HostNotifications, SubscribeOptions } from './notifications.js';
|
|
1
2
|
import type { CollaborationAuth, DocumentRuntimeKind, DocOpenOptions, InvokeOptions, TransportInvokeOptions, OperationParamSpec, OperationSpec, RuntimeInvoker, SuperDocClientOptions } from './transport-common.js';
|
|
2
3
|
type RuntimeProcessResolution = {
|
|
3
4
|
hostBin: string;
|
|
@@ -24,6 +25,7 @@ export declare class SuperDocRuntime {
|
|
|
24
25
|
private readonly transport;
|
|
25
26
|
constructor(options?: SuperDocClientOptions);
|
|
26
27
|
connect(): Promise<void>;
|
|
28
|
+
subscribe(options?: SubscribeOptions): HostNotifications;
|
|
27
29
|
supportsDocumentFacts(sessionId: string): boolean;
|
|
28
30
|
usesCliDocumentFacts(sessionId: string): boolean;
|
|
29
31
|
readDocumentRevision(sessionId: string): Promise<string | undefined>;
|
package/dist/runtime/process.js
CHANGED
|
@@ -13,7 +13,7 @@ export function resolveRuntimeProcess(options = {}, embedded = {
|
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
15
|
export function toSafeInvokeTraceOptions(options) {
|
|
16
|
-
const { collaborationAuth: _collaborationAuth, ...traceOptions } = options;
|
|
16
|
+
const { collaborationAuth: _collaborationAuth, identityClaim: _identityClaim, ...traceOptions } = options;
|
|
17
17
|
return traceOptions;
|
|
18
18
|
}
|
|
19
19
|
export class SuperDocRuntime {
|
|
@@ -28,6 +28,9 @@ export class SuperDocRuntime {
|
|
|
28
28
|
async connect() {
|
|
29
29
|
await this.transport.connect();
|
|
30
30
|
}
|
|
31
|
+
subscribe(options = {}) {
|
|
32
|
+
return this.transport.subscribe(options);
|
|
33
|
+
}
|
|
31
34
|
supportsDocumentFacts(sessionId) {
|
|
32
35
|
return this.transport.supportsDocumentFacts(sessionId);
|
|
33
36
|
}
|
|
@@ -5,6 +5,7 @@ export declare const SDK_POLICY: {
|
|
|
5
5
|
replaceFile: string;
|
|
6
6
|
requestTimeout: string;
|
|
7
7
|
collaborationAuthPerOpen: string;
|
|
8
|
+
identityClaimPerOpen: string;
|
|
8
9
|
};
|
|
9
10
|
operationParamAliases: Record<string, Readonly<Record<string, readonly string[]>>>;
|
|
10
11
|
notifications: readonly string[];
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
// AUTO-GENERATED by scripts/embed-version.mjs — DO NOT EDIT.
|
|
4
4
|
// Source of truth: package.json. Regenerated on every SDK build so the
|
|
5
5
|
// SDK retains its own version identity when bundled into another package.
|
|
6
|
-
const SDK_VERSION = '2.
|
|
6
|
+
const SDK_VERSION = '2.27.0-next.9';
|
|
7
7
|
|
|
8
8
|
exports.SDK_VERSION = SDK_VERSION;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "2.
|
|
1
|
+
export declare const SDK_VERSION = "2.27.0-next.9";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// AUTO-GENERATED by scripts/embed-version.mjs — DO NOT EDIT.
|
|
2
2
|
// Source of truth: package.json. Regenerated on every SDK build so the
|
|
3
3
|
// SDK retains its own version identity when bundled into another package.
|
|
4
|
-
export const SDK_VERSION = '2.
|
|
4
|
+
export const SDK_VERSION = '2.27.0-next.9';
|
|
@@ -19,7 +19,8 @@ function buildStructuredReadInput(operation, params, options, encodedArgv) {
|
|
|
19
19
|
!params.sessionId ||
|
|
20
20
|
params.doc != null ||
|
|
21
21
|
options.stdinBytes !== undefined ||
|
|
22
|
-
options.collaborationAuth !== undefined
|
|
22
|
+
options.collaborationAuth !== undefined ||
|
|
23
|
+
options.identityClaim !== undefined)
|
|
23
24
|
return undefined;
|
|
24
25
|
if (!encodedArgv)
|
|
25
26
|
return undefined;
|
|
@@ -92,6 +93,12 @@ function buildStructuredReadInput(operation, params, options, encodedArgv) {
|
|
|
92
93
|
}
|
|
93
94
|
return input;
|
|
94
95
|
}
|
|
96
|
+
function normalizeIdentityClaim(value) {
|
|
97
|
+
if (typeof value !== 'string' || value.length === 0) {
|
|
98
|
+
throw new errors.SuperDocCliError('identityClaim must be a non-empty string.', { code: 'INVALID_ARGUMENT' });
|
|
99
|
+
}
|
|
100
|
+
return value;
|
|
101
|
+
}
|
|
95
102
|
function normalizeCollaborationAuth(value) {
|
|
96
103
|
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
97
104
|
throw new errors.SuperDocCliError('collaborationAuth must be an object.', { code: 'INVALID_ARGUMENT' });
|
|
@@ -301,4 +308,5 @@ exports.buildOperationArgv = buildOperationArgv;
|
|
|
301
308
|
exports.buildStructuredReadInput = buildStructuredReadInput;
|
|
302
309
|
exports.captureMutationPlanAuthor = captureMutationPlanAuthor;
|
|
303
310
|
exports.normalizeCollaborationAuth = normalizeCollaborationAuth;
|
|
311
|
+
exports.normalizeIdentityClaim = normalizeIdentityClaim;
|
|
304
312
|
exports.resolveInvocation = resolveInvocation;
|
|
@@ -27,10 +27,13 @@ export interface CollaborationAuth {
|
|
|
27
27
|
}
|
|
28
28
|
export interface DocOpenOptions extends InvokeOptions {
|
|
29
29
|
collaborationAuth?: CollaborationAuth;
|
|
30
|
+
identityClaim?: string;
|
|
30
31
|
}
|
|
31
32
|
export interface TransportInvokeOptions extends InvokeOptions {
|
|
32
33
|
collaborationAuth?: CollaborationAuth;
|
|
34
|
+
identityClaim?: string;
|
|
33
35
|
}
|
|
36
|
+
export declare function normalizeIdentityClaim(value: unknown): string;
|
|
34
37
|
export declare function normalizeCollaborationAuth(value: unknown): CollaborationAuth;
|
|
35
38
|
/**
|
|
36
39
|
* Minimal invoke interface that both SuperDocRuntime and BoundRuntime satisfy.
|
|
@@ -16,7 +16,8 @@ export function buildStructuredReadInput(operation, params, options, encodedArgv
|
|
|
16
16
|
!params.sessionId ||
|
|
17
17
|
params.doc != null ||
|
|
18
18
|
options.stdinBytes !== undefined ||
|
|
19
|
-
options.collaborationAuth !== undefined
|
|
19
|
+
options.collaborationAuth !== undefined ||
|
|
20
|
+
options.identityClaim !== undefined)
|
|
20
21
|
return undefined;
|
|
21
22
|
if (!encodedArgv)
|
|
22
23
|
return undefined;
|
|
@@ -89,6 +90,12 @@ export function buildStructuredReadInput(operation, params, options, encodedArgv
|
|
|
89
90
|
}
|
|
90
91
|
return input;
|
|
91
92
|
}
|
|
93
|
+
export function normalizeIdentityClaim(value) {
|
|
94
|
+
if (typeof value !== 'string' || value.length === 0) {
|
|
95
|
+
throw new SuperDocCliError('identityClaim must be a non-empty string.', { code: 'INVALID_ARGUMENT' });
|
|
96
|
+
}
|
|
97
|
+
return value;
|
|
98
|
+
}
|
|
92
99
|
export function normalizeCollaborationAuth(value) {
|
|
93
100
|
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
94
101
|
throw new SuperDocCliError('collaborationAuth must be an object.', { code: 'INVALID_ARGUMENT' });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superdoc/sdk",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.27.0-next.9",
|
|
4
4
|
"description": "Node SDK for SuperDoc, wrapping the SuperDoc CLI to read and edit .docx files from JavaScript and TypeScript.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"license": "AGPL-3.0",
|
|
@@ -38,11 +38,11 @@
|
|
|
38
38
|
"typescript": "^5.9.2"
|
|
39
39
|
},
|
|
40
40
|
"optionalDependencies": {
|
|
41
|
-
"@superdoc/sdk-darwin-arm64": "2.
|
|
42
|
-
"@superdoc/sdk-darwin-x64": "2.
|
|
43
|
-
"@superdoc/sdk-linux-x64": "2.
|
|
44
|
-
"@superdoc/sdk-linux-arm64": "2.
|
|
45
|
-
"@superdoc/sdk-windows-x64": "2.
|
|
41
|
+
"@superdoc/sdk-darwin-arm64": "2.27.0-next.9",
|
|
42
|
+
"@superdoc/sdk-darwin-x64": "2.27.0-next.9",
|
|
43
|
+
"@superdoc/sdk-linux-x64": "2.27.0-next.9",
|
|
44
|
+
"@superdoc/sdk-linux-arm64": "2.27.0-next.9",
|
|
45
|
+
"@superdoc/sdk-windows-x64": "2.27.0-next.9"
|
|
46
46
|
},
|
|
47
47
|
"publishConfig": {
|
|
48
48
|
"access": "public"
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"typecheck": "tsc --noEmit",
|
|
54
54
|
"typecheck:consumer": "tsc --noEmit --strict --skipLibCheck --target ES2022 --module NodeNext --moduleResolution NodeNext ../../../../tests/consumer-typecheck/src/sdk-per-open-collaboration-auth.mts ../../../../tests/consumer-typecheck/src/sdk-replace-file.mts ../../../../tests/consumer-typecheck/src/sdk-retained-paragraph.mts ../../../../tests/consumer-typecheck/src/sdk-state-directory.mts ../../../../tests/consumer-typecheck/src/sdk-agent-evidence.mts ../../../../tests/consumer-typecheck/src/sdk-custom-actions.mts ../../../../tests/consumer-typecheck/src/sd4807-sdk-inspect.mts ../../../../tests/consumer-typecheck/src/sdk-tracked-only-policy.mts ../../../../tests/consumer-typecheck/src/sdk-tracked-review-route.mts ../../../../tests/consumer-typecheck/src/sd5266-sdk-placeholder-null.mts ../../../../tests/consumer-typecheck/src/sdk-schema-types.mts",
|
|
55
55
|
"test:agent-actions": "bun test src/__tests__/actions.test.ts src/__tests__/agent-runtime.test.ts src/__tests__/execution-context.test.ts src/__tests__/custom-actions.test.ts src/__tests__/textbox-snapshot.test.ts",
|
|
56
|
-
"test:cli-host": "bun test src/__tests__/diff-direct-styles.e2e.test.ts src/__tests__/default-cli-optimization.e2e.test.ts src/runtime/__tests__/host-spawn-args.test.ts src/runtime/__tests__/cli-host.test.ts src/__tests__/tracked-review-route.test.ts src/__tests__/cli-document-lifecycle.e2e.test.ts src/__tests__/request-timeout-ms.e2e.test.ts src/__tests__/agent-evidence.e2e.test.ts src/__tests__/agent-apply.e2e.test.ts src/__tests__/find-text.e2e.test.ts src/__tests__/custom-actions.e2e.test.ts",
|
|
56
|
+
"test:cli-host": "bun test src/__tests__/diff-tracked-styles.e2e.test.ts src/__tests__/diff-direct-styles.e2e.test.ts src/__tests__/default-cli-optimization.e2e.test.ts src/runtime/__tests__/host-spawn-args.test.ts src/runtime/__tests__/cli-host.test.ts src/__tests__/tracked-review-route.test.ts src/__tests__/cli-document-lifecycle.e2e.test.ts src/__tests__/request-timeout-ms.e2e.test.ts src/__tests__/full-preset-table-presets.e2e.test.ts src/__tests__/agent-evidence.e2e.test.ts src/__tests__/agent-apply.e2e.test.ts src/__tests__/find-text.e2e.test.ts src/__tests__/custom-actions.e2e.test.ts src/__tests__/typed-engine-cli-a3c.e2e.test.ts",
|
|
57
57
|
"smoke:product-action": "node scripts/product-action-smoke.mjs"
|
|
58
58
|
}
|
|
59
59
|
}
|
package/tools/catalog.json
CHANGED
|
@@ -3547,11 +3547,25 @@
|
|
|
3547
3547
|
"description": "Line spacing rule. Required when 'line' is set. Only for action 'set_spacing'. Omit for other actions."
|
|
3548
3548
|
},
|
|
3549
3549
|
"contextualSpacing": {
|
|
3550
|
-
"
|
|
3550
|
+
"oneOf": [
|
|
3551
|
+
{
|
|
3552
|
+
"type": "boolean"
|
|
3553
|
+
},
|
|
3554
|
+
{
|
|
3555
|
+
"type": "null"
|
|
3556
|
+
}
|
|
3557
|
+
],
|
|
3551
3558
|
"description": "Only for action 'set_flow_options'. Omit for other actions."
|
|
3552
3559
|
},
|
|
3553
3560
|
"pageBreakBefore": {
|
|
3554
|
-
"
|
|
3561
|
+
"oneOf": [
|
|
3562
|
+
{
|
|
3563
|
+
"type": "boolean"
|
|
3564
|
+
},
|
|
3565
|
+
{
|
|
3566
|
+
"type": "null"
|
|
3567
|
+
}
|
|
3568
|
+
],
|
|
3555
3569
|
"description": "Only for action 'set_flow_options'. Omit for other actions."
|
|
3556
3570
|
},
|
|
3557
3571
|
"suppressAutoHyphens": {
|
|
@@ -5482,6 +5496,32 @@
|
|
|
5482
5496
|
"minLength": 1,
|
|
5483
5497
|
"description": "Caller-owned author image URL. Only for action 'create'. Omit for other actions."
|
|
5484
5498
|
},
|
|
5499
|
+
"authorIdentity": {
|
|
5500
|
+
"anyOf": [
|
|
5501
|
+
{
|
|
5502
|
+
"type": "object",
|
|
5503
|
+
"properties": {
|
|
5504
|
+
"providerId": {
|
|
5505
|
+
"type": "string",
|
|
5506
|
+
"minLength": 1
|
|
5507
|
+
},
|
|
5508
|
+
"userId": {
|
|
5509
|
+
"type": "string",
|
|
5510
|
+
"minLength": 1
|
|
5511
|
+
}
|
|
5512
|
+
},
|
|
5513
|
+
"additionalProperties": false,
|
|
5514
|
+
"required": [
|
|
5515
|
+
"providerId",
|
|
5516
|
+
"userId"
|
|
5517
|
+
]
|
|
5518
|
+
},
|
|
5519
|
+
{
|
|
5520
|
+
"type": "null"
|
|
5521
|
+
}
|
|
5522
|
+
],
|
|
5523
|
+
"description": "Explicit provider-issued comment account. Omitted author attribution inherits the configured identity; explicit author fields opt out of a configured identity unless a pair is supplied. Null explicitly opts out. Unconfigured identities keep existing name-only export behavior. Only for action 'create'. Omit for other actions."
|
|
5524
|
+
},
|
|
5485
5525
|
"metadata": {
|
|
5486
5526
|
"type": "object",
|
|
5487
5527
|
"additionalProperties": true,
|
|
@@ -1,34 +1,37 @@
|
|
|
1
1
|
{
|
|
2
2
|
"formatVersion": 1,
|
|
3
|
-
"contractHash": "
|
|
4
|
-
"documentApiSourceHash": "
|
|
5
|
-
"generatorHash": "
|
|
3
|
+
"contractHash": "f2ba0bd5c72180caac515087b0c32d0251a7d0cec5959647dc2e62080badd656",
|
|
4
|
+
"documentApiSourceHash": "e94c9c63292f5019235ebf9ae63510c41f7442905ed9145ab9a1c789534a0bd2",
|
|
5
|
+
"generatorHash": "65fc13d5e1790e1f556d279d6868a1b3206343718456d45ec74d6ffe235af354",
|
|
6
6
|
"inputs": {
|
|
7
|
-
"apps/cli/src/host/sdk-policy.ts": "
|
|
7
|
+
"apps/cli/src/host/sdk-policy.ts": "df3587f39b4888a7b11135cc453126febb6fa8e4d3fb59b3f4f9169b4364dcd3",
|
|
8
8
|
"packages/sdk/codegen/src/artifacts.mjs": "1e03c94c1da3cca73a078b5ab445f891409e6053eb695d52933628226c7f1583",
|
|
9
9
|
"packages/sdk/codegen/src/contract-identity.mjs": "9d2fd074c10cf71f89e4cb9a1c8d96f9c4df4a15e11207cd0921dc58b6906b52",
|
|
10
10
|
"packages/sdk/codegen/src/generate-action-names.mjs": "eedb0b3e7ecab3bb7a4e507e339d8a06754cb8bab154da2583be2d5de024ea28",
|
|
11
11
|
"packages/sdk/codegen/src/generate-action-policy.mjs": "f99188ec75594ee37a8ef37e021f357c1d308cc4d5eae71a045a1426f58b9fbf",
|
|
12
12
|
"packages/sdk/codegen/src/generate-all.mjs": "e364d1b02b0c866886c357a598597b3efb3692e2320a88980981fd5f428c7433",
|
|
13
13
|
"packages/sdk/codegen/src/generate-intent-tools.mjs": "843391a0eb83bf762985be96047e9e9109b87c7d9352cde7aabf49f0e57147b5",
|
|
14
|
-
"packages/sdk/codegen/src/generate-node.mjs": "
|
|
14
|
+
"packages/sdk/codegen/src/generate-node.mjs": "968fd315d782dc9a7c9cc39ac59888bb32bb8969e1e6827735f27fc86a509cd7",
|
|
15
15
|
"packages/sdk/codegen/src/generate-python.mjs": "e6415bb2047db279bf40f32f16ba1c6a4f5d99c9df303a69cc0b9ececfa01028",
|
|
16
|
+
"packages/sdk/codegen/src/generate-rust.mjs": "4ec6abca076e10206e3b7a027f790d78c848ffc1f24eef4c99b1d1fb80881ea9",
|
|
16
17
|
"packages/sdk/codegen/src/model/schema.mjs": "29cb1167413280907ad324d8a1fcb54dc70cce829df00c1a755f43040d01cf3b",
|
|
17
18
|
"packages/sdk/codegen/src/node22-core-characters.json": "ba26df167c0853b955b6e04d856a899a7c83865c7b5834d80645d1b41d66c693",
|
|
18
19
|
"packages/sdk/codegen/src/shared.mjs": "a411e7ea4fab43b5b08b00294c746ff7063ceddbae66ece8d8c5990f131e0f7c",
|
|
19
20
|
"packages/sdk/codegen/src/targets.mjs": "62c5ae3e3813e07b37e62487d973bac60ef6bea558a01f3ace2e0c6e8374e147",
|
|
20
|
-
"packages/sdk/langs/node/package.json": "
|
|
21
|
+
"packages/sdk/langs/node/package.json": "964aab0a19d37df68b289bf38c2a9861b987298d1358d8af436247244e2bb130",
|
|
21
22
|
"packages/sdk/langs/node/scripts/embed-prompts.mjs": "1b1641bf89cad962a4ff11d93f301fe5a4e32fe856cd3c9586106d8aaab4ad80",
|
|
22
23
|
"packages/sdk/langs/node/scripts/embed-tools.mjs": "4cd8b0605b088421ea1fdf8e4e19c70f571f4e3352309a1480491600122e7bb3",
|
|
23
24
|
"packages/sdk/langs/node/scripts/embed-version.mjs": "95e2ff3a7c15cb38130e12f04c8a96c901a5e55d9960610ebefa37178fd19cde",
|
|
24
25
|
"packages/sdk/langs/node/src/agent/action-descriptors.json": "b2afbe8a23454bf807f7220172fb6211ccd098849f1ca27dc3546fdc352c8e48",
|
|
25
|
-
"packages/sdk/langs/node/src/agent/actions.ts": "
|
|
26
|
-
"packages/sdk/langs/node/src/agent/catalog.ts": "
|
|
26
|
+
"packages/sdk/langs/node/src/agent/actions.ts": "b5fdb14fdb8a79e3b44513d07b52a304f12d75300c4ae3d63efbb7c0795529bf",
|
|
27
|
+
"packages/sdk/langs/node/src/agent/catalog.ts": "2b602247785611b1c8bfdf59fb2c03a810ec4bc2346655ec9e76d979bb382179",
|
|
27
28
|
"packages/sdk/langs/node/src/presets/core.ts": "b0f32dfc94ddfc86ad96a676da26b526edfcd5f658bfc077d880df69c057c214",
|
|
28
|
-
"packages/sdk/langs/node/src/prompts/full-addendum.md": "
|
|
29
|
+
"packages/sdk/langs/node/src/prompts/full-addendum.md": "6dbe191b0f72d144adb2c04fe1e3eba9e399aa7e081405bb98ead9a91b92113b",
|
|
29
30
|
"packages/sdk/langs/node/src/prompts/mcp-prompt.md": "ba1e239877b2b316744477e3ca7b6982fa265edb1358759209cc439457728e8b",
|
|
30
31
|
"packages/sdk/langs/node/src/prompts/system-prompt.md": "dd9bdac644843db2f4964ea091f5c832b8c8eb058703861210374037c077bb92",
|
|
31
32
|
"packages/sdk/langs/node/src/runtime/tracked-support.ts": "779efa7c8a949090aa83e7db93d4fa84500e7563a2d47c464305f4513c424e6f",
|
|
33
|
+
"packages/sdk/langs/rust/Cargo.toml": "5f09d85bb3e5c98d8892fd9f52e72717568217501b238a768d2d3c14f0648bc1",
|
|
34
|
+
"packages/sdk/langs/rust/rust-toolchain.toml": "080d1c422a980a506912db5c2cc9fbedcf1df1fe4c8de676934ab7c421c5d768",
|
|
32
35
|
"packages/sdk/scripts/sdk-generate.mjs": "fc5b0cb07a39972694a0c60cfef19b2e166ec12890fb5060e97b2b818f746ef3",
|
|
33
36
|
"packages/sdk/scripts/sdk-platform-targets.mjs": "1c9d5d29f346bdccad4dadcabca371d8a2943b1613ad5a673dcee8ecfac511b5",
|
|
34
37
|
"packages/sdk/tools/prompt-templates/system-prompt-core.md": "98632908dbece800115db92181b2a48823725b6e2612383de6bc6c34f57ac72e",
|
|
@@ -37,16 +40,51 @@
|
|
|
37
40
|
"scripts/generate-all.mjs": "fbcb0920173f8170321a3583e18b2b175e54cdca47b39f3c390c727cf9a5f911"
|
|
38
41
|
},
|
|
39
42
|
"outputs": {
|
|
43
|
+
"packages/sdk/langs/rust/src/generated/mod.rs": {
|
|
44
|
+
"id": "rust-mod",
|
|
45
|
+
"sha256": "a44c9960c2e4a0e94798bf9c7c2a12d40f8c36097f359b249313d473b949c6b9",
|
|
46
|
+
"consumers": [
|
|
47
|
+
"rust"
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"packages/sdk/langs/rust/src/generated/types.rs": {
|
|
51
|
+
"id": "rust-types",
|
|
52
|
+
"sha256": "64e87dd542201dcfc118736d461a2f0a574608cd6c9b73c9c3b4af94d0f28136",
|
|
53
|
+
"consumers": [
|
|
54
|
+
"rust"
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"packages/sdk/langs/rust/src/generated/operations.rs": {
|
|
58
|
+
"id": "rust-operations",
|
|
59
|
+
"sha256": "d093e8c0c3d071f64343ee7a72da290577baa122c582785c89e8b1cf30bcb352",
|
|
60
|
+
"consumers": [
|
|
61
|
+
"rust"
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
"packages/sdk/langs/rust/assets/contract.json": {
|
|
65
|
+
"id": "rust-contract",
|
|
66
|
+
"sha256": "963f8a354030570932962fd01f2a40d120ad68d1486d15b6f1301423f1f94877",
|
|
67
|
+
"consumers": [
|
|
68
|
+
"rust"
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
"packages/sdk/langs/rust/assets/action-policy.json": {
|
|
72
|
+
"id": "rust-action-policy",
|
|
73
|
+
"sha256": "104176fee6695b3bf2993c703913dcacc5babf9cdde82c6dc64dd7bc5dcb698d",
|
|
74
|
+
"consumers": [
|
|
75
|
+
"rust"
|
|
76
|
+
]
|
|
77
|
+
},
|
|
40
78
|
"packages/sdk/langs/node/src/generated/contract.ts": {
|
|
41
79
|
"id": "node-contract",
|
|
42
|
-
"sha256": "
|
|
80
|
+
"sha256": "638659597b33b2ec88d4eefbcff836f246fa88a0ed05cf10794bbe88df26703a",
|
|
43
81
|
"consumers": [
|
|
44
82
|
"node"
|
|
45
83
|
]
|
|
46
84
|
},
|
|
47
85
|
"packages/sdk/langs/node/src/generated/client.ts": {
|
|
48
86
|
"id": "node-client",
|
|
49
|
-
"sha256": "
|
|
87
|
+
"sha256": "09d60e17410b3fc9fbbd3c7e8d75296c0657e640352c4070180bd428925f49e9",
|
|
50
88
|
"consumers": [
|
|
51
89
|
"node"
|
|
52
90
|
]
|
|
@@ -60,14 +98,14 @@
|
|
|
60
98
|
},
|
|
61
99
|
"packages/sdk/langs/python/superdoc/generated/contract.py": {
|
|
62
100
|
"id": "python-contract",
|
|
63
|
-
"sha256": "
|
|
101
|
+
"sha256": "230335374a7dde1628917193be6ef7641749556f270a2671d89f4d222b463f4e",
|
|
64
102
|
"consumers": [
|
|
65
103
|
"python"
|
|
66
104
|
]
|
|
67
105
|
},
|
|
68
106
|
"packages/sdk/langs/python/superdoc/generated/client.py": {
|
|
69
107
|
"id": "python-client",
|
|
70
|
-
"sha256": "
|
|
108
|
+
"sha256": "bbc35360033cdadfa73eed7fd2f1f4ba378fbdbde9d0214aebcef5ff5885cb7e",
|
|
71
109
|
"consumers": [
|
|
72
110
|
"python"
|
|
73
111
|
]
|
|
@@ -102,7 +140,7 @@
|
|
|
102
140
|
},
|
|
103
141
|
"packages/sdk/tools/catalog.json": {
|
|
104
142
|
"id": "tool-catalog",
|
|
105
|
-
"sha256": "
|
|
143
|
+
"sha256": "8ed0e6de53f58906af5e2557c436b887a347d6aa19972dc7f96dcf21387185a5",
|
|
106
144
|
"consumers": [
|
|
107
145
|
"node",
|
|
108
146
|
"python",
|
|
@@ -111,7 +149,7 @@
|
|
|
111
149
|
},
|
|
112
150
|
"packages/sdk/tools/tools-policy.json": {
|
|
113
151
|
"id": "tool-policy",
|
|
114
|
-
"sha256": "
|
|
152
|
+
"sha256": "56f0089cf854f715981c6f91f3bfadc25e12be466e0b849754b64493cd850630",
|
|
115
153
|
"consumers": [
|
|
116
154
|
"node",
|
|
117
155
|
"python"
|
|
@@ -119,7 +157,7 @@
|
|
|
119
157
|
},
|
|
120
158
|
"packages/sdk/tools/tools.openai.json": {
|
|
121
159
|
"id": "tools-openai",
|
|
122
|
-
"sha256": "
|
|
160
|
+
"sha256": "6c4e9958cdf2baf0e4caa77d7a094119bf1dc218b3254f85931e6b66984ef240",
|
|
123
161
|
"consumers": [
|
|
124
162
|
"node",
|
|
125
163
|
"python",
|
|
@@ -128,7 +166,7 @@
|
|
|
128
166
|
},
|
|
129
167
|
"packages/sdk/tools/tools.anthropic.json": {
|
|
130
168
|
"id": "tools-anthropic",
|
|
131
|
-
"sha256": "
|
|
169
|
+
"sha256": "cae209818a7cd1a8c5b9e9d540ac103d96df4403f1cb259e96d0ad56f57a2b32",
|
|
132
170
|
"consumers": [
|
|
133
171
|
"node",
|
|
134
172
|
"python",
|
|
@@ -137,7 +175,7 @@
|
|
|
137
175
|
},
|
|
138
176
|
"packages/sdk/tools/tools.vercel.json": {
|
|
139
177
|
"id": "tools-vercel",
|
|
140
|
-
"sha256": "
|
|
178
|
+
"sha256": "6c4e9958cdf2baf0e4caa77d7a094119bf1dc218b3254f85931e6b66984ef240",
|
|
141
179
|
"consumers": [
|
|
142
180
|
"node",
|
|
143
181
|
"python",
|
|
@@ -146,7 +184,7 @@
|
|
|
146
184
|
},
|
|
147
185
|
"packages/sdk/tools/tools.generic.json": {
|
|
148
186
|
"id": "tools-generic",
|
|
149
|
-
"sha256": "
|
|
187
|
+
"sha256": "357580eec809e66757d2d4be777c8a374eddc7e818cb1d574b5f51012ed09058",
|
|
150
188
|
"consumers": [
|
|
151
189
|
"node",
|
|
152
190
|
"python",
|
|
@@ -179,21 +217,21 @@
|
|
|
179
217
|
},
|
|
180
218
|
"packages/sdk/langs/node/src/embedded-prompts.generated.ts": {
|
|
181
219
|
"id": "node-embedded-prompts",
|
|
182
|
-
"sha256": "
|
|
220
|
+
"sha256": "4f15851ce14cdd81db1c74b5e746e63d205706e89865e808fc1d38c74bd6d0f3",
|
|
183
221
|
"consumers": [
|
|
184
222
|
"node"
|
|
185
223
|
]
|
|
186
224
|
},
|
|
187
225
|
"packages/sdk/langs/node/src/embedded-tools.generated.ts": {
|
|
188
226
|
"id": "node-embedded-tools",
|
|
189
|
-
"sha256": "
|
|
227
|
+
"sha256": "d10266bcf94f298ca9b03f5875114c7ae15dd916adb526d7e392963ba027db07",
|
|
190
228
|
"consumers": [
|
|
191
229
|
"node"
|
|
192
230
|
]
|
|
193
231
|
},
|
|
194
232
|
"packages/sdk/langs/node/src/runtime/sdk-version.generated.ts": {
|
|
195
233
|
"id": "node-sdk-version",
|
|
196
|
-
"sha256": "
|
|
234
|
+
"sha256": "6452c9a62ea7d466e8ea50494885872e3a07c36a89bde7333a243dbaccaf9ad9",
|
|
197
235
|
"consumers": [
|
|
198
236
|
"node"
|
|
199
237
|
]
|
package/tools/tools-policy.json
CHANGED
|
@@ -3347,11 +3347,25 @@
|
|
|
3347
3347
|
"description": "Line spacing rule. Required when 'line' is set. Only for action 'set_spacing'. Omit for other actions."
|
|
3348
3348
|
},
|
|
3349
3349
|
"contextualSpacing": {
|
|
3350
|
-
"
|
|
3350
|
+
"oneOf": [
|
|
3351
|
+
{
|
|
3352
|
+
"type": "boolean"
|
|
3353
|
+
},
|
|
3354
|
+
{
|
|
3355
|
+
"type": "null"
|
|
3356
|
+
}
|
|
3357
|
+
],
|
|
3351
3358
|
"description": "Only for action 'set_flow_options'. Omit for other actions."
|
|
3352
3359
|
},
|
|
3353
3360
|
"pageBreakBefore": {
|
|
3354
|
-
"
|
|
3361
|
+
"oneOf": [
|
|
3362
|
+
{
|
|
3363
|
+
"type": "boolean"
|
|
3364
|
+
},
|
|
3365
|
+
{
|
|
3366
|
+
"type": "null"
|
|
3367
|
+
}
|
|
3368
|
+
],
|
|
3355
3369
|
"description": "Only for action 'set_flow_options'. Omit for other actions."
|
|
3356
3370
|
},
|
|
3357
3371
|
"suppressAutoHyphens": {
|
|
@@ -5091,6 +5105,32 @@
|
|
|
5091
5105
|
"minLength": 1,
|
|
5092
5106
|
"description": "Caller-owned author image URL. Only for action 'create'. Omit for other actions."
|
|
5093
5107
|
},
|
|
5108
|
+
"authorIdentity": {
|
|
5109
|
+
"anyOf": [
|
|
5110
|
+
{
|
|
5111
|
+
"type": "object",
|
|
5112
|
+
"properties": {
|
|
5113
|
+
"providerId": {
|
|
5114
|
+
"type": "string",
|
|
5115
|
+
"minLength": 1
|
|
5116
|
+
},
|
|
5117
|
+
"userId": {
|
|
5118
|
+
"type": "string",
|
|
5119
|
+
"minLength": 1
|
|
5120
|
+
}
|
|
5121
|
+
},
|
|
5122
|
+
"additionalProperties": false,
|
|
5123
|
+
"required": [
|
|
5124
|
+
"providerId",
|
|
5125
|
+
"userId"
|
|
5126
|
+
]
|
|
5127
|
+
},
|
|
5128
|
+
{
|
|
5129
|
+
"type": "null"
|
|
5130
|
+
}
|
|
5131
|
+
],
|
|
5132
|
+
"description": "Explicit provider-issued comment account. Omitted author attribution inherits the configured identity; explicit author fields opt out of a configured identity unless a pair is supplied. Null explicitly opts out. Unconfigured identities keep existing name-only export behavior. Only for action 'create'. Omit for other actions."
|
|
5133
|
+
},
|
|
5094
5134
|
"metadata": {
|
|
5095
5135
|
"type": "object",
|
|
5096
5136
|
"additionalProperties": true,
|