@superdoc/sdk 2.26.0-next.9 → 2.27.0-next.13
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 +28 -28
- 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.13';
|
|
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.13";
|
|
@@ -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.13';
|
|
@@ -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.13",
|
|
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.13",
|
|
42
|
+
"@superdoc/sdk-darwin-x64": "2.27.0-next.13",
|
|
43
|
+
"@superdoc/sdk-linux-x64": "2.27.0-next.13",
|
|
44
|
+
"@superdoc/sdk-linux-arm64": "2.27.0-next.13",
|
|
45
|
+
"@superdoc/sdk-windows-x64": "2.27.0-next.13"
|
|
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,36 +1,36 @@
|
|
|
1
1
|
{
|
|
2
2
|
"formatVersion": 1,
|
|
3
|
-
"contractHash": "
|
|
4
|
-
"documentApiSourceHash": "
|
|
5
|
-
"generatorHash": "
|
|
3
|
+
"contractHash": "f2ba0bd5c72180caac515087b0c32d0251a7d0cec5959647dc2e62080badd656",
|
|
4
|
+
"documentApiSourceHash": "e94c9c63292f5019235ebf9ae63510c41f7442905ed9145ab9a1c789534a0bd2",
|
|
5
|
+
"generatorHash": "70949a6747a6e645bd200a9c56eaab975fb3e411e9258b0200456e5195fc6b1a",
|
|
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
16
|
"packages/sdk/codegen/src/generate-rust.mjs": "4ec6abca076e10206e3b7a027f790d78c848ffc1f24eef4c99b1d1fb80881ea9",
|
|
17
17
|
"packages/sdk/codegen/src/model/schema.mjs": "29cb1167413280907ad324d8a1fcb54dc70cce829df00c1a755f43040d01cf3b",
|
|
18
18
|
"packages/sdk/codegen/src/node22-core-characters.json": "ba26df167c0853b955b6e04d856a899a7c83865c7b5834d80645d1b41d66c693",
|
|
19
19
|
"packages/sdk/codegen/src/shared.mjs": "a411e7ea4fab43b5b08b00294c746ff7063ceddbae66ece8d8c5990f131e0f7c",
|
|
20
20
|
"packages/sdk/codegen/src/targets.mjs": "62c5ae3e3813e07b37e62487d973bac60ef6bea558a01f3ace2e0c6e8374e147",
|
|
21
|
-
"packages/sdk/langs/node/package.json": "
|
|
21
|
+
"packages/sdk/langs/node/package.json": "a31025e71c6aa8d6cb3f9346ffd986dad021a3723509b609777dc2bc9d8f1715",
|
|
22
22
|
"packages/sdk/langs/node/scripts/embed-prompts.mjs": "1b1641bf89cad962a4ff11d93f301fe5a4e32fe856cd3c9586106d8aaab4ad80",
|
|
23
23
|
"packages/sdk/langs/node/scripts/embed-tools.mjs": "4cd8b0605b088421ea1fdf8e4e19c70f571f4e3352309a1480491600122e7bb3",
|
|
24
24
|
"packages/sdk/langs/node/scripts/embed-version.mjs": "95e2ff3a7c15cb38130e12f04c8a96c901a5e55d9960610ebefa37178fd19cde",
|
|
25
25
|
"packages/sdk/langs/node/src/agent/action-descriptors.json": "b2afbe8a23454bf807f7220172fb6211ccd098849f1ca27dc3546fdc352c8e48",
|
|
26
|
-
"packages/sdk/langs/node/src/agent/actions.ts": "
|
|
27
|
-
"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",
|
|
28
28
|
"packages/sdk/langs/node/src/presets/core.ts": "b0f32dfc94ddfc86ad96a676da26b526edfcd5f658bfc077d880df69c057c214",
|
|
29
|
-
"packages/sdk/langs/node/src/prompts/full-addendum.md": "
|
|
29
|
+
"packages/sdk/langs/node/src/prompts/full-addendum.md": "6dbe191b0f72d144adb2c04fe1e3eba9e399aa7e081405bb98ead9a91b92113b",
|
|
30
30
|
"packages/sdk/langs/node/src/prompts/mcp-prompt.md": "ba1e239877b2b316744477e3ca7b6982fa265edb1358759209cc439457728e8b",
|
|
31
31
|
"packages/sdk/langs/node/src/prompts/system-prompt.md": "dd9bdac644843db2f4964ea091f5c832b8c8eb058703861210374037c077bb92",
|
|
32
32
|
"packages/sdk/langs/node/src/runtime/tracked-support.ts": "779efa7c8a949090aa83e7db93d4fa84500e7563a2d47c464305f4513c424e6f",
|
|
33
|
-
"packages/sdk/langs/rust/Cargo.toml": "
|
|
33
|
+
"packages/sdk/langs/rust/Cargo.toml": "34ca998e9a6e5b63f875c930f200a5842271e863d6dc5d6a6d1ed38a74175a88",
|
|
34
34
|
"packages/sdk/langs/rust/rust-toolchain.toml": "080d1c422a980a506912db5c2cc9fbedcf1df1fe4c8de676934ab7c421c5d768",
|
|
35
35
|
"packages/sdk/scripts/sdk-generate.mjs": "fc5b0cb07a39972694a0c60cfef19b2e166ec12890fb5060e97b2b818f746ef3",
|
|
36
36
|
"packages/sdk/scripts/sdk-platform-targets.mjs": "1c9d5d29f346bdccad4dadcabca371d8a2943b1613ad5a673dcee8ecfac511b5",
|
|
@@ -42,49 +42,49 @@
|
|
|
42
42
|
"outputs": {
|
|
43
43
|
"packages/sdk/langs/rust/src/generated/mod.rs": {
|
|
44
44
|
"id": "rust-mod",
|
|
45
|
-
"sha256": "
|
|
45
|
+
"sha256": "a44c9960c2e4a0e94798bf9c7c2a12d40f8c36097f359b249313d473b949c6b9",
|
|
46
46
|
"consumers": [
|
|
47
47
|
"rust"
|
|
48
48
|
]
|
|
49
49
|
},
|
|
50
50
|
"packages/sdk/langs/rust/src/generated/types.rs": {
|
|
51
51
|
"id": "rust-types",
|
|
52
|
-
"sha256": "
|
|
52
|
+
"sha256": "64e87dd542201dcfc118736d461a2f0a574608cd6c9b73c9c3b4af94d0f28136",
|
|
53
53
|
"consumers": [
|
|
54
54
|
"rust"
|
|
55
55
|
]
|
|
56
56
|
},
|
|
57
57
|
"packages/sdk/langs/rust/src/generated/operations.rs": {
|
|
58
58
|
"id": "rust-operations",
|
|
59
|
-
"sha256": "
|
|
59
|
+
"sha256": "d093e8c0c3d071f64343ee7a72da290577baa122c582785c89e8b1cf30bcb352",
|
|
60
60
|
"consumers": [
|
|
61
61
|
"rust"
|
|
62
62
|
]
|
|
63
63
|
},
|
|
64
64
|
"packages/sdk/langs/rust/assets/contract.json": {
|
|
65
65
|
"id": "rust-contract",
|
|
66
|
-
"sha256": "
|
|
66
|
+
"sha256": "963f8a354030570932962fd01f2a40d120ad68d1486d15b6f1301423f1f94877",
|
|
67
67
|
"consumers": [
|
|
68
68
|
"rust"
|
|
69
69
|
]
|
|
70
70
|
},
|
|
71
71
|
"packages/sdk/langs/rust/assets/action-policy.json": {
|
|
72
72
|
"id": "rust-action-policy",
|
|
73
|
-
"sha256": "
|
|
73
|
+
"sha256": "104176fee6695b3bf2993c703913dcacc5babf9cdde82c6dc64dd7bc5dcb698d",
|
|
74
74
|
"consumers": [
|
|
75
75
|
"rust"
|
|
76
76
|
]
|
|
77
77
|
},
|
|
78
78
|
"packages/sdk/langs/node/src/generated/contract.ts": {
|
|
79
79
|
"id": "node-contract",
|
|
80
|
-
"sha256": "
|
|
80
|
+
"sha256": "638659597b33b2ec88d4eefbcff836f246fa88a0ed05cf10794bbe88df26703a",
|
|
81
81
|
"consumers": [
|
|
82
82
|
"node"
|
|
83
83
|
]
|
|
84
84
|
},
|
|
85
85
|
"packages/sdk/langs/node/src/generated/client.ts": {
|
|
86
86
|
"id": "node-client",
|
|
87
|
-
"sha256": "
|
|
87
|
+
"sha256": "09d60e17410b3fc9fbbd3c7e8d75296c0657e640352c4070180bd428925f49e9",
|
|
88
88
|
"consumers": [
|
|
89
89
|
"node"
|
|
90
90
|
]
|
|
@@ -98,14 +98,14 @@
|
|
|
98
98
|
},
|
|
99
99
|
"packages/sdk/langs/python/superdoc/generated/contract.py": {
|
|
100
100
|
"id": "python-contract",
|
|
101
|
-
"sha256": "
|
|
101
|
+
"sha256": "230335374a7dde1628917193be6ef7641749556f270a2671d89f4d222b463f4e",
|
|
102
102
|
"consumers": [
|
|
103
103
|
"python"
|
|
104
104
|
]
|
|
105
105
|
},
|
|
106
106
|
"packages/sdk/langs/python/superdoc/generated/client.py": {
|
|
107
107
|
"id": "python-client",
|
|
108
|
-
"sha256": "
|
|
108
|
+
"sha256": "bbc35360033cdadfa73eed7fd2f1f4ba378fbdbde9d0214aebcef5ff5885cb7e",
|
|
109
109
|
"consumers": [
|
|
110
110
|
"python"
|
|
111
111
|
]
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
},
|
|
141
141
|
"packages/sdk/tools/catalog.json": {
|
|
142
142
|
"id": "tool-catalog",
|
|
143
|
-
"sha256": "
|
|
143
|
+
"sha256": "8ed0e6de53f58906af5e2557c436b887a347d6aa19972dc7f96dcf21387185a5",
|
|
144
144
|
"consumers": [
|
|
145
145
|
"node",
|
|
146
146
|
"python",
|
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
},
|
|
150
150
|
"packages/sdk/tools/tools-policy.json": {
|
|
151
151
|
"id": "tool-policy",
|
|
152
|
-
"sha256": "
|
|
152
|
+
"sha256": "56f0089cf854f715981c6f91f3bfadc25e12be466e0b849754b64493cd850630",
|
|
153
153
|
"consumers": [
|
|
154
154
|
"node",
|
|
155
155
|
"python"
|
|
@@ -157,7 +157,7 @@
|
|
|
157
157
|
},
|
|
158
158
|
"packages/sdk/tools/tools.openai.json": {
|
|
159
159
|
"id": "tools-openai",
|
|
160
|
-
"sha256": "
|
|
160
|
+
"sha256": "6c4e9958cdf2baf0e4caa77d7a094119bf1dc218b3254f85931e6b66984ef240",
|
|
161
161
|
"consumers": [
|
|
162
162
|
"node",
|
|
163
163
|
"python",
|
|
@@ -166,7 +166,7 @@
|
|
|
166
166
|
},
|
|
167
167
|
"packages/sdk/tools/tools.anthropic.json": {
|
|
168
168
|
"id": "tools-anthropic",
|
|
169
|
-
"sha256": "
|
|
169
|
+
"sha256": "cae209818a7cd1a8c5b9e9d540ac103d96df4403f1cb259e96d0ad56f57a2b32",
|
|
170
170
|
"consumers": [
|
|
171
171
|
"node",
|
|
172
172
|
"python",
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
},
|
|
176
176
|
"packages/sdk/tools/tools.vercel.json": {
|
|
177
177
|
"id": "tools-vercel",
|
|
178
|
-
"sha256": "
|
|
178
|
+
"sha256": "6c4e9958cdf2baf0e4caa77d7a094119bf1dc218b3254f85931e6b66984ef240",
|
|
179
179
|
"consumers": [
|
|
180
180
|
"node",
|
|
181
181
|
"python",
|
|
@@ -184,7 +184,7 @@
|
|
|
184
184
|
},
|
|
185
185
|
"packages/sdk/tools/tools.generic.json": {
|
|
186
186
|
"id": "tools-generic",
|
|
187
|
-
"sha256": "
|
|
187
|
+
"sha256": "357580eec809e66757d2d4be777c8a374eddc7e818cb1d574b5f51012ed09058",
|
|
188
188
|
"consumers": [
|
|
189
189
|
"node",
|
|
190
190
|
"python",
|
|
@@ -217,21 +217,21 @@
|
|
|
217
217
|
},
|
|
218
218
|
"packages/sdk/langs/node/src/embedded-prompts.generated.ts": {
|
|
219
219
|
"id": "node-embedded-prompts",
|
|
220
|
-
"sha256": "
|
|
220
|
+
"sha256": "4f15851ce14cdd81db1c74b5e746e63d205706e89865e808fc1d38c74bd6d0f3",
|
|
221
221
|
"consumers": [
|
|
222
222
|
"node"
|
|
223
223
|
]
|
|
224
224
|
},
|
|
225
225
|
"packages/sdk/langs/node/src/embedded-tools.generated.ts": {
|
|
226
226
|
"id": "node-embedded-tools",
|
|
227
|
-
"sha256": "
|
|
227
|
+
"sha256": "d10266bcf94f298ca9b03f5875114c7ae15dd916adb526d7e392963ba027db07",
|
|
228
228
|
"consumers": [
|
|
229
229
|
"node"
|
|
230
230
|
]
|
|
231
231
|
},
|
|
232
232
|
"packages/sdk/langs/node/src/runtime/sdk-version.generated.ts": {
|
|
233
233
|
"id": "node-sdk-version",
|
|
234
|
-
"sha256": "
|
|
234
|
+
"sha256": "38072863b6ee86f767be0d92661cbf0a1e0b5c266e48d72392f7077a952a1832",
|
|
235
235
|
"consumers": [
|
|
236
236
|
"node"
|
|
237
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,
|