@fourier-labs/harbour-contracts 0.96.0 → 0.98.0
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/contract-release.json +42 -42
- package/dist/gen-ts/ai-governance-decision.d.ts +1 -0
- package/dist/gen-ts/ai-policy-snapshot.d.ts +7 -3
- package/dist/gen-ts/ai-pricing-revision.d.ts +1 -1
- package/dist/gen-ts/ai-runtime-contract.d.ts +1 -0
- package/dist/gen-ts/ai-trace-event.d.ts +2 -2
- package/dist/gen-ts/app-integrations-declaration.d.ts +5 -0
- package/dist/gen-ts/binding-classification-subject.d.ts +1 -1
- package/dist/gen-ts/contract-release.d.ts +6 -6
- package/dist/gen-ts/contract-release.js +6 -6
- package/dist/gen-ts/data-grant-v2.d.ts +4 -4
- package/dist/gen-ts/deploy-request.d.ts +2 -2
- package/dist/gen-ts/deployment-app-registration.d.ts +7 -3
- package/dist/gen-ts/file-arrival.d.ts +1 -1
- package/dist/gen-ts/integration-execute-input-rules.d.ts +130 -0
- package/dist/gen-ts/integration-execute-input-rules.js +42 -0
- package/dist/gen-ts/integration-execute-request.d.ts +5 -3
- package/dist/gen-ts/integration-execute-result.d.ts +36 -0
- package/dist/gen-ts/integration-operations.d.ts +35 -0
- package/dist/gen-ts/integration-operations.js +45 -0
- package/dist/gen-ts/promotion-request.d.ts +2 -2
- package/dist/gen-ts/saas-connection.d.ts +6 -6
- package/dist/gen-ts/sanitized-binding-evidence.d.ts +1 -1
- package/dist/resolver/index.d.ts +2 -1
- package/dist/resolver/index.js +6 -6
- package/gen-ts/ai-governance-decision.ts +1 -0
- package/gen-ts/ai-policy-snapshot.ts +34 -3
- package/gen-ts/ai-pricing-revision.ts +11 -1
- package/gen-ts/ai-runtime-contract.ts +1 -0
- package/gen-ts/ai-trace-event.ts +22 -2
- package/gen-ts/app-integrations-declaration.ts +5 -0
- package/gen-ts/binding-classification-subject.ts +1 -1
- package/gen-ts/contract-release.ts +6 -6
- package/gen-ts/data-grant-v2.ts +12 -2
- package/gen-ts/deploy-request.ts +4 -2
- package/gen-ts/deployment-app-registration.ts +12 -3
- package/gen-ts/file-arrival.ts +5 -1
- package/gen-ts/integration-execute-input-rules.ts +42 -0
- package/gen-ts/integration-execute-request.ts +10 -3
- package/gen-ts/integration-execute-result.ts +36 -0
- package/gen-ts/integration-operations.ts +45 -0
- package/gen-ts/promotion-request.ts +4 -2
- package/gen-ts/saas-connection.ts +18 -3
- package/gen-ts/sanitized-binding-evidence.ts +1 -1
- package/package.json +1 -1
- package/schema/ai-governance-decision.schema.json +2 -1
- package/schema/ai-policy-snapshot.schema.json +5 -4
- package/schema/ai-pricing-revision.schema.json +1 -1
- package/schema/ai-runtime-contract.schema.json +2 -1
- package/schema/ai-trace-event.schema.json +2 -2
- package/schema/app-integrations-declaration.schema.json +71 -1
- package/schema/binding-classification-subject.schema.json +1 -1
- package/schema/data-grant-v2.schema.json +2 -2
- package/schema/deployment-app-registration.schema.json +21 -4
- package/schema/file-arrival.schema.json +3 -1
- package/schema/integration-execute-request.schema.json +358 -10
- package/schema/integration-execute-result.schema.json +156 -1
- package/schema/saas-connection.schema.json +3 -3
- package/schema/sanitized-binding-evidence.schema.json +1 -1
|
@@ -729,6 +729,7 @@ export const IntegrationExecuteInputRules = {
|
|
|
729
729
|
rate: { kind: "string", required: true, minLength: 0, maxLength: 17, pattern: "^[0-9]{1,10}(\\.[0-9]{1,6})?$" },
|
|
730
730
|
taxId: { kind: "string", required: false, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
731
731
|
description: { kind: "string", required: false, minLength: 0, maxLength: 2000 },
|
|
732
|
+
salesOrderItemId: { kind: "string", required: false, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
732
733
|
} },
|
|
733
734
|
},
|
|
734
735
|
},
|
|
@@ -744,6 +745,47 @@ export const IntegrationExecuteInputRules = {
|
|
|
744
745
|
documentId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
745
746
|
},
|
|
746
747
|
},
|
|
748
|
+
"zohobooks.salesorder.list": {
|
|
749
|
+
idempotencyKey: false,
|
|
750
|
+
fields: {
|
|
751
|
+
customerId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
752
|
+
pageToken: { kind: "string", required: false, minLength: 1, maxLength: 2048 },
|
|
753
|
+
},
|
|
754
|
+
},
|
|
755
|
+
"zohobooks.salesorder.read": {
|
|
756
|
+
idempotencyKey: false,
|
|
757
|
+
fields: {
|
|
758
|
+
documentId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
759
|
+
},
|
|
760
|
+
},
|
|
761
|
+
"zohobooks.invoice.reviseDraft": {
|
|
762
|
+
idempotencyKey: true,
|
|
763
|
+
fields: {
|
|
764
|
+
documentId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
765
|
+
lineItems: { kind: "object[]", required: true, minItems: 1, maxItems: 100, fields: {
|
|
766
|
+
lineItemId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
767
|
+
quantity: { kind: "string", required: true, minLength: 0, maxLength: 17, pattern: "^[0-9]{1,10}(\\.[0-9]{1,6})?$" },
|
|
768
|
+
} },
|
|
769
|
+
},
|
|
770
|
+
},
|
|
771
|
+
"zohobooks.creditnote.create": {
|
|
772
|
+
idempotencyKey: true,
|
|
773
|
+
fields: {
|
|
774
|
+
documentId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
775
|
+
documentDate: { kind: "string", required: true, minLength: 0, maxLength: 10, pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" },
|
|
776
|
+
referenceNumber: { kind: "string", required: false, minLength: 1, maxLength: 100 },
|
|
777
|
+
lineItems: { kind: "object[]", required: true, minItems: 1, maxItems: 100, fields: {
|
|
778
|
+
lineItemId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
779
|
+
quantity: { kind: "string", required: true, minLength: 0, maxLength: 17, pattern: "^[0-9]{1,10}(\\.[0-9]{1,6})?$" },
|
|
780
|
+
} },
|
|
781
|
+
},
|
|
782
|
+
},
|
|
783
|
+
"zohobooks.creditnote.read": {
|
|
784
|
+
idempotencyKey: false,
|
|
785
|
+
fields: {
|
|
786
|
+
documentId: { kind: "string", required: true, minLength: 0, maxLength: 32, pattern: "^[0-9]{1,32}$" },
|
|
787
|
+
},
|
|
788
|
+
},
|
|
747
789
|
};
|
|
748
790
|
/** The upper bound of one integer input as a literal type: integrationExecuteInputMaximum('slack.channel.history', 'limit') is 15. */
|
|
749
791
|
export function integrationExecuteInputMaximum(operation, field) {
|
|
@@ -9,7 +9,7 @@ export type IntegrationExecuteRequest = {
|
|
|
9
9
|
/**
|
|
10
10
|
* Closed operation set. Extending it is a contracts change. 0.86.0 (ADR 0032) adds the forty-five Google Workspace and Microsoft 365 operations, every one user mode only: on the provider's fixed alias for the signed-in person's own data, calendar.calendar.list, calendar.event.list, calendar.event.read, calendar.event.create (a receipted write: explicit action, idempotencyKey), calendar.event.update and calendar.event.cancel (idempotent at Google, no key); drive.file.list, drive.file.search, drive.file.read, drive.file.upload and drive.folder.create (receipted writes); docs.document.read, docs.document.create (receipted), docs.document.append and docs.text.replace (no key); sheets.spreadsheet.read, sheets.values.read, sheets.values.append (receipted), sheets.values.update and sheets.values.clear (no key), sheets.spreadsheet.create (receipted); outlook.message.list, outlook.message.read, outlook.attachment.read, outlook.message.send and outlook.message.reply (receipted sends, as gmail.message.send), outlook.event.list, outlook.event.read, outlook.event.create (receipted), outlook.event.update and outlook.event.cancel (no key); onedrive.file.list, onedrive.file.search, onedrive.file.read, onedrive.file.upload and onedrive.folder.create (receipted); excel.worksheet.list, excel.range.read, excel.range.update (no key), excel.table.list, excel.row.add and excel.worksheet.add (receipted); and on a Teams channel alias (a key of the connection's `channels` map) teams.message.list, teams.message.post and teams.reply.post (receipted). 0.78.0 (ADR 0024) adds the nine SharePoint operations, every one user mode only on a site alias (a key of the connection's `channels` map, holding a Microsoft Graph site id): sharepoint.list.list, sharepoint.item.list, sharepoint.item.create (a receipted write: explicit action, idempotencyKey), sharepoint.item.update (a PATCH, idempotent at Graph, no key), sharepoint.drive.list, sharepoint.file.list, sharepoint.file.search, sharepoint.file.read and sharepoint.file.upload (a receipted write). 0.76.0 (ADR 0022) adds the eleven Basecamp operations, every one user mode only like gmail.*: basecamp.project.list (the projects of the company's pinned Basecamp account; its resource is the fixed `account` alias), and on one mapped project (the resource is a project alias, a key of the connection's `channels` map) basecamp.todolist.list, basecamp.todo.list, basecamp.todo.create (a receipted write: explicit action, idempotencyKey), basecamp.todo.complete (idempotent at Basecamp, no key), basecamp.message.list, basecamp.message.post, basecamp.comment.list, basecamp.comment.post, basecamp.campfire.post (the three posts are receipted writes) and basecamp.people.list. gmail.message.send (0.50.0) sends one email as the signed-in person: a send like slack.message.post (explicit Send, idempotencyKey, write receipt) under user identity; since 0.71.0 it may carry an HTML body and attachments. slack.message.post (0.53.0) runs in the mode the app declares: app (the company's Slack app, under the IT-approved per-app name) or user (the signed-in person, after their consent); since 0.55.0 each call names which of the approved modes it runs under. 0.71.0 (ADR 0018) adds slack.message.update and slack.message.delete (declared mode, like post), slack.dm.send (app mode: a direct message to 1..8 workspace members named by email), slack.user.lookup (app mode: email to Slack user id), gmail.thread.read (every message of one thread) and gmail.attachment.read (one attachment's bytes), and lets slack.channel.history run in app mode as well as user mode. 0.82.0 (ADR 0028) adds phone.sms.list (app mode only, a number alias from a phone connection's `channels` map: the SMS received on that number since a time) and warehouse.table.append (app mode only on a database connection, a receipted write with idempotencyKey: rows appended to a view alias whose mapping says `access: append`). 0.83.0 (ADR 0029) adds phone.number.get (app mode only, read-only, no input, on a number alias from a phone connection's `channels` map: the E.164 number that alias maps to, so the app — or a computer-use agent it drives — can type it into a portal that signs in by mobile number). 0.85.0 (ADR 0031) raises warehouse.table.append's `rows` from 1..500 to 1..5000 records (the byte cap stays governance's, now 8 MiB), so a downloaded report of a few thousand rows lands in one call.
|
|
11
11
|
*/
|
|
12
|
-
operation: 'slack.channel.history' | 'slack.message.post' | 'slack.message.update' | 'slack.message.delete' | 'slack.dm.send' | 'slack.user.lookup' | 'gmail.thread.list' | 'gmail.thread.read' | 'gmail.message.read' | 'gmail.message.send' | 'gmail.attachment.read' | 'basecamp.project.list' | 'basecamp.todolist.list' | 'basecamp.todo.list' | 'basecamp.todo.create' | 'basecamp.todo.complete' | 'basecamp.message.list' | 'basecamp.message.post' | 'basecamp.comment.list' | 'basecamp.comment.post' | 'basecamp.campfire.post' | 'basecamp.people.list' | 'sharepoint.list.list' | 'sharepoint.item.list' | 'sharepoint.item.create' | 'sharepoint.item.update' | 'sharepoint.drive.list' | 'sharepoint.file.list' | 'sharepoint.file.search' | 'sharepoint.file.read' | 'sharepoint.file.upload' | 'phone.sms.list' | 'phone.number.get' | 'calendar.calendar.list' | 'calendar.event.list' | 'calendar.event.read' | 'calendar.event.create' | 'calendar.event.update' | 'calendar.event.cancel' | 'drive.file.list' | 'drive.file.search' | 'drive.file.read' | 'drive.file.upload' | 'drive.folder.create' | 'docs.document.read' | 'docs.document.create' | 'docs.document.append' | 'docs.text.replace' | 'sheets.spreadsheet.read' | 'sheets.values.read' | 'sheets.values.append' | 'sheets.values.update' | 'sheets.values.clear' | 'sheets.spreadsheet.create' | 'outlook.message.list' | 'outlook.message.read' | 'outlook.attachment.read' | 'outlook.message.send' | 'outlook.message.reply' | 'outlook.event.list' | 'outlook.event.read' | 'outlook.event.create' | 'outlook.event.update' | 'outlook.event.cancel' | 'onedrive.file.list' | 'onedrive.file.search' | 'onedrive.file.read' | 'onedrive.file.upload' | 'onedrive.folder.create' | 'excel.worksheet.list' | 'excel.range.read' | 'excel.range.update' | 'excel.table.list' | 'excel.row.add' | 'excel.worksheet.add' | 'teams.message.list' | 'teams.message.post' | 'teams.reply.post' | 'warehouse.view.read' | 'warehouse.table.append' | 'service.request' | 'zohobooks.contact.list' | 'zohobooks.purchaseorder.list' | 'zohobooks.purchaseorder.read' | 'zohobooks.bill.create' | 'zohobooks.bill.read' | 'zohobooks.invoice.create' | 'zohobooks.invoice.read' | 'zohobooks.invoice.pdf';
|
|
12
|
+
operation: 'slack.channel.history' | 'slack.message.post' | 'slack.message.update' | 'slack.message.delete' | 'slack.dm.send' | 'slack.user.lookup' | 'gmail.thread.list' | 'gmail.thread.read' | 'gmail.message.read' | 'gmail.message.send' | 'gmail.attachment.read' | 'basecamp.project.list' | 'basecamp.todolist.list' | 'basecamp.todo.list' | 'basecamp.todo.create' | 'basecamp.todo.complete' | 'basecamp.message.list' | 'basecamp.message.post' | 'basecamp.comment.list' | 'basecamp.comment.post' | 'basecamp.campfire.post' | 'basecamp.people.list' | 'sharepoint.list.list' | 'sharepoint.item.list' | 'sharepoint.item.create' | 'sharepoint.item.update' | 'sharepoint.drive.list' | 'sharepoint.file.list' | 'sharepoint.file.search' | 'sharepoint.file.read' | 'sharepoint.file.upload' | 'phone.sms.list' | 'phone.number.get' | 'calendar.calendar.list' | 'calendar.event.list' | 'calendar.event.read' | 'calendar.event.create' | 'calendar.event.update' | 'calendar.event.cancel' | 'drive.file.list' | 'drive.file.search' | 'drive.file.read' | 'drive.file.upload' | 'drive.folder.create' | 'docs.document.read' | 'docs.document.create' | 'docs.document.append' | 'docs.text.replace' | 'sheets.spreadsheet.read' | 'sheets.values.read' | 'sheets.values.append' | 'sheets.values.update' | 'sheets.values.clear' | 'sheets.spreadsheet.create' | 'outlook.message.list' | 'outlook.message.read' | 'outlook.attachment.read' | 'outlook.message.send' | 'outlook.message.reply' | 'outlook.event.list' | 'outlook.event.read' | 'outlook.event.create' | 'outlook.event.update' | 'outlook.event.cancel' | 'onedrive.file.list' | 'onedrive.file.search' | 'onedrive.file.read' | 'onedrive.file.upload' | 'onedrive.folder.create' | 'excel.worksheet.list' | 'excel.range.read' | 'excel.range.update' | 'excel.table.list' | 'excel.row.add' | 'excel.worksheet.add' | 'teams.message.list' | 'teams.message.post' | 'teams.reply.post' | 'warehouse.view.read' | 'warehouse.table.append' | 'service.request' | 'zohobooks.contact.list' | 'zohobooks.purchaseorder.list' | 'zohobooks.purchaseorder.read' | 'zohobooks.bill.create' | 'zohobooks.bill.read' | 'zohobooks.invoice.create' | 'zohobooks.invoice.read' | 'zohobooks.invoice.pdf' | 'zohobooks.salesorder.list' | 'zohobooks.salesorder.read' | 'zohobooks.invoice.reviseDraft' | 'zohobooks.creditnote.create' | 'zohobooks.creditnote.read';
|
|
13
13
|
/**
|
|
14
14
|
* Tenant-wide logical alias of a connection (governance sourceId) or of a resource under it.
|
|
15
15
|
*/
|
|
@@ -370,12 +370,14 @@ export type IntegrationExecuteRequest = {
|
|
|
370
370
|
* @maxItems 100
|
|
371
371
|
*/
|
|
372
372
|
lineItems?: {
|
|
373
|
-
itemId
|
|
373
|
+
itemId?: string;
|
|
374
374
|
quantity: string;
|
|
375
|
-
rate
|
|
375
|
+
rate?: string;
|
|
376
376
|
taxId?: string;
|
|
377
377
|
description?: string;
|
|
378
378
|
purchaseOrderItemId?: string;
|
|
379
|
+
lineItemId?: string;
|
|
380
|
+
salesOrderItemId?: string;
|
|
379
381
|
}[];
|
|
380
382
|
};
|
|
381
383
|
/**
|
|
@@ -305,7 +305,11 @@ export type IntegrationExecuteResult = {
|
|
|
305
305
|
description?: string;
|
|
306
306
|
lineItemId?: string;
|
|
307
307
|
purchaseOrderItemId?: string;
|
|
308
|
+
sku?: string;
|
|
309
|
+
taxId?: string;
|
|
310
|
+
isInvoiced?: boolean;
|
|
308
311
|
}[];
|
|
312
|
+
referenceNumber?: string;
|
|
309
313
|
};
|
|
310
314
|
/**
|
|
311
315
|
* @maxItems 100
|
|
@@ -337,7 +341,11 @@ export type IntegrationExecuteResult = {
|
|
|
337
341
|
description?: string;
|
|
338
342
|
lineItemId?: string;
|
|
339
343
|
purchaseOrderItemId?: string;
|
|
344
|
+
sku?: string;
|
|
345
|
+
taxId?: string;
|
|
346
|
+
isInvoiced?: boolean;
|
|
340
347
|
}[];
|
|
348
|
+
referenceNumber?: string;
|
|
341
349
|
}[];
|
|
342
350
|
/**
|
|
343
351
|
* Resolved reply recipients, when supplied by the provider adapter. Outlook uses replyTo when present, otherwise from. Optional for backward compatibility.
|
|
@@ -345,6 +353,34 @@ export type IntegrationExecuteResult = {
|
|
|
345
353
|
* @maxItems 50
|
|
346
354
|
*/
|
|
347
355
|
replyTo?: string[];
|
|
356
|
+
/**
|
|
357
|
+
* @maxItems 100
|
|
358
|
+
*/
|
|
359
|
+
booksSalesOrders?: {
|
|
360
|
+
id: string;
|
|
361
|
+
number: string;
|
|
362
|
+
status: string;
|
|
363
|
+
currency: string;
|
|
364
|
+
total: string;
|
|
365
|
+
vendorId?: string;
|
|
366
|
+
customerId?: string;
|
|
367
|
+
/**
|
|
368
|
+
* @maxItems 100
|
|
369
|
+
*/
|
|
370
|
+
lineItems: {
|
|
371
|
+
itemId: string;
|
|
372
|
+
quantity: string;
|
|
373
|
+
rate: string;
|
|
374
|
+
total: string;
|
|
375
|
+
description?: string;
|
|
376
|
+
lineItemId?: string;
|
|
377
|
+
purchaseOrderItemId?: string;
|
|
378
|
+
sku?: string;
|
|
379
|
+
taxId?: string;
|
|
380
|
+
isInvoiced?: boolean;
|
|
381
|
+
}[];
|
|
382
|
+
referenceNumber?: string;
|
|
383
|
+
}[];
|
|
348
384
|
};
|
|
349
385
|
/**
|
|
350
386
|
* An event's state (0.86.0): confirmed (Google `confirmed`, Graph not cancelled and not tentative), tentative, or cancelled.
|
|
@@ -623,4 +623,39 @@ export declare const IntegrationOperations: {
|
|
|
623
623
|
readonly declaredMode: false;
|
|
624
624
|
readonly idempotencyKey: false;
|
|
625
625
|
};
|
|
626
|
+
readonly "zohobooks.salesorder.list": {
|
|
627
|
+
readonly kind: "saas";
|
|
628
|
+
readonly identities: readonly ["user"];
|
|
629
|
+
readonly readOnly: true;
|
|
630
|
+
readonly declaredMode: false;
|
|
631
|
+
readonly idempotencyKey: false;
|
|
632
|
+
};
|
|
633
|
+
readonly "zohobooks.salesorder.read": {
|
|
634
|
+
readonly kind: "saas";
|
|
635
|
+
readonly identities: readonly ["user"];
|
|
636
|
+
readonly readOnly: true;
|
|
637
|
+
readonly declaredMode: false;
|
|
638
|
+
readonly idempotencyKey: false;
|
|
639
|
+
};
|
|
640
|
+
readonly "zohobooks.invoice.reviseDraft": {
|
|
641
|
+
readonly kind: "saas";
|
|
642
|
+
readonly identities: readonly ["user"];
|
|
643
|
+
readonly readOnly: false;
|
|
644
|
+
readonly declaredMode: false;
|
|
645
|
+
readonly idempotencyKey: true;
|
|
646
|
+
};
|
|
647
|
+
readonly "zohobooks.creditnote.create": {
|
|
648
|
+
readonly kind: "saas";
|
|
649
|
+
readonly identities: readonly ["user"];
|
|
650
|
+
readonly readOnly: false;
|
|
651
|
+
readonly declaredMode: false;
|
|
652
|
+
readonly idempotencyKey: true;
|
|
653
|
+
};
|
|
654
|
+
readonly "zohobooks.creditnote.read": {
|
|
655
|
+
readonly kind: "saas";
|
|
656
|
+
readonly identities: readonly ["user"];
|
|
657
|
+
readonly readOnly: true;
|
|
658
|
+
readonly declaredMode: false;
|
|
659
|
+
readonly idempotencyKey: false;
|
|
660
|
+
};
|
|
626
661
|
};
|
|
@@ -806,5 +806,50 @@ export const IntegrationOperations = {
|
|
|
806
806
|
"readOnly": true,
|
|
807
807
|
"declaredMode": false,
|
|
808
808
|
"idempotencyKey": false
|
|
809
|
+
},
|
|
810
|
+
"zohobooks.salesorder.list": {
|
|
811
|
+
"kind": "saas",
|
|
812
|
+
"identities": [
|
|
813
|
+
"user"
|
|
814
|
+
],
|
|
815
|
+
"readOnly": true,
|
|
816
|
+
"declaredMode": false,
|
|
817
|
+
"idempotencyKey": false
|
|
818
|
+
},
|
|
819
|
+
"zohobooks.salesorder.read": {
|
|
820
|
+
"kind": "saas",
|
|
821
|
+
"identities": [
|
|
822
|
+
"user"
|
|
823
|
+
],
|
|
824
|
+
"readOnly": true,
|
|
825
|
+
"declaredMode": false,
|
|
826
|
+
"idempotencyKey": false
|
|
827
|
+
},
|
|
828
|
+
"zohobooks.invoice.reviseDraft": {
|
|
829
|
+
"kind": "saas",
|
|
830
|
+
"identities": [
|
|
831
|
+
"user"
|
|
832
|
+
],
|
|
833
|
+
"readOnly": false,
|
|
834
|
+
"declaredMode": false,
|
|
835
|
+
"idempotencyKey": true
|
|
836
|
+
},
|
|
837
|
+
"zohobooks.creditnote.create": {
|
|
838
|
+
"kind": "saas",
|
|
839
|
+
"identities": [
|
|
840
|
+
"user"
|
|
841
|
+
],
|
|
842
|
+
"readOnly": false,
|
|
843
|
+
"declaredMode": false,
|
|
844
|
+
"idempotencyKey": true
|
|
845
|
+
},
|
|
846
|
+
"zohobooks.creditnote.read": {
|
|
847
|
+
"kind": "saas",
|
|
848
|
+
"identities": [
|
|
849
|
+
"user"
|
|
850
|
+
],
|
|
851
|
+
"readOnly": true,
|
|
852
|
+
"declaredMode": false,
|
|
853
|
+
"idempotencyKey": false
|
|
809
854
|
}
|
|
810
855
|
};
|
|
@@ -21,7 +21,7 @@ export type PromotionRequestSecretBinding1 = {
|
|
|
21
21
|
type BindingClassificationEntry = {
|
|
22
22
|
kind: 'configuration' | 'secret' | 'provider_credential';
|
|
23
23
|
confidence: 'high' | 'low';
|
|
24
|
-
providerId?: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
|
|
24
|
+
providerId?: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield' | 'mistral' | 'datalab';
|
|
25
25
|
/**
|
|
26
26
|
* Closed current credential category. Add a reviewed contract version before supporting another credential mechanism.
|
|
27
27
|
*/
|
|
@@ -94,6 +94,6 @@ interface BindingClassificationSubject {
|
|
|
94
94
|
}
|
|
95
95
|
interface BindingClassificationAiMapping {
|
|
96
96
|
mappingVersion: string;
|
|
97
|
-
providerId: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
|
|
97
|
+
providerId: 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield' | 'mistral' | 'datalab';
|
|
98
98
|
}
|
|
99
99
|
export {};
|
|
@@ -55,15 +55,15 @@ export interface SaasConnection {
|
|
|
55
55
|
* Operations IT allows apps to request on this connection: the provider's own SaaS operations (Slack: slack.channel.history, slack.message.post, slack.message.update, slack.message.delete, slack.dm.send, slack.user.lookup; Gmail: gmail.thread.list, gmail.thread.read, gmail.message.read, gmail.message.send, gmail.attachment.read; Basecamp (0.76.0): basecamp.project.list, basecamp.todolist.list, basecamp.todo.list, basecamp.todo.create, basecamp.todo.complete, basecamp.message.list, basecamp.message.post, basecamp.comment.list, basecamp.comment.post, basecamp.campfire.post, basecamp.people.list; SharePoint (0.78.0): sharepoint.list.list, sharepoint.item.list, sharepoint.item.create, sharepoint.item.update, sharepoint.drive.list, sharepoint.file.list, sharepoint.file.search, sharepoint.file.read, sharepoint.file.upload; Google Workspace and Microsoft 365 (0.86.0): the calendar.*, drive.*, docs.*, sheets.*, outlook.*, onedrive.*, excel.* and teams.* operations of the connection's provider). Never warehouse.view.read. Phone (0.82.0): phone.sms.list; 0.83.0 adds phone.number.get. Seventy-eight SaaS operations in all since 0.86.0.
|
|
56
56
|
*
|
|
57
57
|
* @minItems 1
|
|
58
|
-
* @maxItems
|
|
58
|
+
* @maxItems 91
|
|
59
59
|
*/
|
|
60
|
-
operations: ('slack.channel.history' | 'slack.message.post' | 'slack.message.update' | 'slack.message.delete' | 'slack.dm.send' | 'slack.user.lookup' | 'gmail.thread.list' | 'gmail.thread.read' | 'gmail.message.read' | 'gmail.message.send' | 'gmail.attachment.read' | 'basecamp.project.list' | 'basecamp.todolist.list' | 'basecamp.todo.list' | 'basecamp.todo.create' | 'basecamp.todo.complete' | 'basecamp.message.list' | 'basecamp.message.post' | 'basecamp.comment.list' | 'basecamp.comment.post' | 'basecamp.campfire.post' | 'basecamp.people.list' | 'sharepoint.list.list' | 'sharepoint.item.list' | 'sharepoint.item.create' | 'sharepoint.item.update' | 'sharepoint.drive.list' | 'sharepoint.file.list' | 'sharepoint.file.search' | 'sharepoint.file.read' | 'sharepoint.file.upload' | 'phone.sms.list' | 'phone.number.get' | 'calendar.calendar.list' | 'calendar.event.list' | 'calendar.event.read' | 'calendar.event.create' | 'calendar.event.update' | 'calendar.event.cancel' | 'drive.file.list' | 'drive.file.search' | 'drive.file.read' | 'drive.file.upload' | 'drive.folder.create' | 'docs.document.read' | 'docs.document.create' | 'docs.document.append' | 'docs.text.replace' | 'sheets.spreadsheet.read' | 'sheets.values.read' | 'sheets.values.append' | 'sheets.values.update' | 'sheets.values.clear' | 'sheets.spreadsheet.create' | 'outlook.message.list' | 'outlook.message.read' | 'outlook.attachment.read' | 'outlook.message.send' | 'outlook.message.reply' | 'outlook.event.list' | 'outlook.event.read' | 'outlook.event.create' | 'outlook.event.update' | 'outlook.event.cancel' | 'onedrive.file.list' | 'onedrive.file.search' | 'onedrive.file.read' | 'onedrive.file.upload' | 'onedrive.folder.create' | 'excel.worksheet.list' | 'excel.range.read' | 'excel.range.update' | 'excel.table.list' | 'excel.row.add' | 'excel.worksheet.add' | 'teams.message.list' | 'teams.message.post' | 'teams.reply.post' | 'warehouse.view.read' | 'warehouse.table.append' | 'service.request' | 'zohobooks.contact.list' | 'zohobooks.purchaseorder.list' | 'zohobooks.purchaseorder.read' | 'zohobooks.bill.create' | 'zohobooks.bill.read' | 'zohobooks.invoice.create' | 'zohobooks.invoice.read' | 'zohobooks.invoice.pdf')[];
|
|
60
|
+
operations: ('slack.channel.history' | 'slack.message.post' | 'slack.message.update' | 'slack.message.delete' | 'slack.dm.send' | 'slack.user.lookup' | 'gmail.thread.list' | 'gmail.thread.read' | 'gmail.message.read' | 'gmail.message.send' | 'gmail.attachment.read' | 'basecamp.project.list' | 'basecamp.todolist.list' | 'basecamp.todo.list' | 'basecamp.todo.create' | 'basecamp.todo.complete' | 'basecamp.message.list' | 'basecamp.message.post' | 'basecamp.comment.list' | 'basecamp.comment.post' | 'basecamp.campfire.post' | 'basecamp.people.list' | 'sharepoint.list.list' | 'sharepoint.item.list' | 'sharepoint.item.create' | 'sharepoint.item.update' | 'sharepoint.drive.list' | 'sharepoint.file.list' | 'sharepoint.file.search' | 'sharepoint.file.read' | 'sharepoint.file.upload' | 'phone.sms.list' | 'phone.number.get' | 'calendar.calendar.list' | 'calendar.event.list' | 'calendar.event.read' | 'calendar.event.create' | 'calendar.event.update' | 'calendar.event.cancel' | 'drive.file.list' | 'drive.file.search' | 'drive.file.read' | 'drive.file.upload' | 'drive.folder.create' | 'docs.document.read' | 'docs.document.create' | 'docs.document.append' | 'docs.text.replace' | 'sheets.spreadsheet.read' | 'sheets.values.read' | 'sheets.values.append' | 'sheets.values.update' | 'sheets.values.clear' | 'sheets.spreadsheet.create' | 'outlook.message.list' | 'outlook.message.read' | 'outlook.attachment.read' | 'outlook.message.send' | 'outlook.message.reply' | 'outlook.event.list' | 'outlook.event.read' | 'outlook.event.create' | 'outlook.event.update' | 'outlook.event.cancel' | 'onedrive.file.list' | 'onedrive.file.search' | 'onedrive.file.read' | 'onedrive.file.upload' | 'onedrive.folder.create' | 'excel.worksheet.list' | 'excel.range.read' | 'excel.range.update' | 'excel.table.list' | 'excel.row.add' | 'excel.worksheet.add' | 'teams.message.list' | 'teams.message.post' | 'teams.reply.post' | 'warehouse.view.read' | 'warehouse.table.append' | 'service.request' | 'zohobooks.contact.list' | 'zohobooks.purchaseorder.list' | 'zohobooks.purchaseorder.read' | 'zohobooks.bill.create' | 'zohobooks.bill.read' | 'zohobooks.invoice.create' | 'zohobooks.invoice.read' | 'zohobooks.invoice.pdf' | 'zohobooks.salesorder.list' | 'zohobooks.salesorder.read' | 'zohobooks.invoice.reviseDraft' | 'zohobooks.creditnote.create' | 'zohobooks.creditnote.read')[];
|
|
61
61
|
/**
|
|
62
62
|
* Explicit user-mode operations eligible for automatic app access, subject to the connection operation ceiling and personal consent. Empty means review all; absent inherits company defaults or the existing userModeApproval migration rule. Governance validates provider and mode compatibility. Background execution still requires personal background consent, not a separate admin grant.
|
|
63
63
|
*
|
|
64
|
-
* @maxItems
|
|
64
|
+
* @maxItems 91
|
|
65
65
|
*/
|
|
66
|
-
automaticUserOperations?: ('slack.channel.history' | 'slack.message.post' | 'slack.message.update' | 'slack.message.delete' | 'slack.dm.send' | 'slack.user.lookup' | 'gmail.thread.list' | 'gmail.thread.read' | 'gmail.message.read' | 'gmail.message.send' | 'gmail.attachment.read' | 'basecamp.project.list' | 'basecamp.todolist.list' | 'basecamp.todo.list' | 'basecamp.todo.create' | 'basecamp.todo.complete' | 'basecamp.message.list' | 'basecamp.message.post' | 'basecamp.comment.list' | 'basecamp.comment.post' | 'basecamp.campfire.post' | 'basecamp.people.list' | 'sharepoint.list.list' | 'sharepoint.item.list' | 'sharepoint.item.create' | 'sharepoint.item.update' | 'sharepoint.drive.list' | 'sharepoint.file.list' | 'sharepoint.file.search' | 'sharepoint.file.read' | 'sharepoint.file.upload' | 'phone.sms.list' | 'phone.number.get' | 'calendar.calendar.list' | 'calendar.event.list' | 'calendar.event.read' | 'calendar.event.create' | 'calendar.event.update' | 'calendar.event.cancel' | 'drive.file.list' | 'drive.file.search' | 'drive.file.read' | 'drive.file.upload' | 'drive.folder.create' | 'docs.document.read' | 'docs.document.create' | 'docs.document.append' | 'docs.text.replace' | 'sheets.spreadsheet.read' | 'sheets.values.read' | 'sheets.values.append' | 'sheets.values.update' | 'sheets.values.clear' | 'sheets.spreadsheet.create' | 'outlook.message.list' | 'outlook.message.read' | 'outlook.attachment.read' | 'outlook.message.send' | 'outlook.message.reply' | 'outlook.event.list' | 'outlook.event.read' | 'outlook.event.create' | 'outlook.event.update' | 'outlook.event.cancel' | 'onedrive.file.list' | 'onedrive.file.search' | 'onedrive.file.read' | 'onedrive.file.upload' | 'onedrive.folder.create' | 'excel.worksheet.list' | 'excel.range.read' | 'excel.range.update' | 'excel.table.list' | 'excel.row.add' | 'excel.worksheet.add' | 'teams.message.list' | 'teams.message.post' | 'teams.reply.post' | 'warehouse.view.read' | 'warehouse.table.append' | 'service.request' | 'zohobooks.contact.list' | 'zohobooks.purchaseorder.list' | 'zohobooks.purchaseorder.read' | 'zohobooks.bill.create' | 'zohobooks.bill.read' | 'zohobooks.invoice.create' | 'zohobooks.invoice.read' | 'zohobooks.invoice.pdf')[];
|
|
66
|
+
automaticUserOperations?: ('slack.channel.history' | 'slack.message.post' | 'slack.message.update' | 'slack.message.delete' | 'slack.dm.send' | 'slack.user.lookup' | 'gmail.thread.list' | 'gmail.thread.read' | 'gmail.message.read' | 'gmail.message.send' | 'gmail.attachment.read' | 'basecamp.project.list' | 'basecamp.todolist.list' | 'basecamp.todo.list' | 'basecamp.todo.create' | 'basecamp.todo.complete' | 'basecamp.message.list' | 'basecamp.message.post' | 'basecamp.comment.list' | 'basecamp.comment.post' | 'basecamp.campfire.post' | 'basecamp.people.list' | 'sharepoint.list.list' | 'sharepoint.item.list' | 'sharepoint.item.create' | 'sharepoint.item.update' | 'sharepoint.drive.list' | 'sharepoint.file.list' | 'sharepoint.file.search' | 'sharepoint.file.read' | 'sharepoint.file.upload' | 'phone.sms.list' | 'phone.number.get' | 'calendar.calendar.list' | 'calendar.event.list' | 'calendar.event.read' | 'calendar.event.create' | 'calendar.event.update' | 'calendar.event.cancel' | 'drive.file.list' | 'drive.file.search' | 'drive.file.read' | 'drive.file.upload' | 'drive.folder.create' | 'docs.document.read' | 'docs.document.create' | 'docs.document.append' | 'docs.text.replace' | 'sheets.spreadsheet.read' | 'sheets.values.read' | 'sheets.values.append' | 'sheets.values.update' | 'sheets.values.clear' | 'sheets.spreadsheet.create' | 'outlook.message.list' | 'outlook.message.read' | 'outlook.attachment.read' | 'outlook.message.send' | 'outlook.message.reply' | 'outlook.event.list' | 'outlook.event.read' | 'outlook.event.create' | 'outlook.event.update' | 'outlook.event.cancel' | 'onedrive.file.list' | 'onedrive.file.search' | 'onedrive.file.read' | 'onedrive.file.upload' | 'onedrive.folder.create' | 'excel.worksheet.list' | 'excel.range.read' | 'excel.range.update' | 'excel.table.list' | 'excel.row.add' | 'excel.worksheet.add' | 'teams.message.list' | 'teams.message.post' | 'teams.reply.post' | 'warehouse.view.read' | 'warehouse.table.append' | 'service.request' | 'zohobooks.contact.list' | 'zohobooks.purchaseorder.list' | 'zohobooks.purchaseorder.read' | 'zohobooks.bill.create' | 'zohobooks.bill.read' | 'zohobooks.invoice.create' | 'zohobooks.invoice.read' | 'zohobooks.invoice.pdf' | 'zohobooks.salesorder.list' | 'zohobooks.salesorder.read' | 'zohobooks.invoice.reviseDraft' | 'zohobooks.creditnote.create' | 'zohobooks.creditnote.read')[];
|
|
67
67
|
/**
|
|
68
68
|
* Reusable permissions for admitted builders on explicit shared SaaS resources. Governance checks registered resources, provider/mode compatibility and the connection operation ceiling. Connection version and audit record changes; no per-entry approval metadata.
|
|
69
69
|
*
|
|
@@ -168,9 +168,9 @@ export interface ReusableSaasAccess {
|
|
|
168
168
|
mode: 'app' | 'user';
|
|
169
169
|
/**
|
|
170
170
|
* @minItems 1
|
|
171
|
-
* @maxItems
|
|
171
|
+
* @maxItems 91
|
|
172
172
|
*/
|
|
173
|
-
operations: ('slack.channel.history' | 'slack.message.post' | 'slack.message.update' | 'slack.message.delete' | 'slack.dm.send' | 'slack.user.lookup' | 'gmail.thread.list' | 'gmail.thread.read' | 'gmail.message.read' | 'gmail.message.send' | 'gmail.attachment.read' | 'basecamp.project.list' | 'basecamp.todolist.list' | 'basecamp.todo.list' | 'basecamp.todo.create' | 'basecamp.todo.complete' | 'basecamp.message.list' | 'basecamp.message.post' | 'basecamp.comment.list' | 'basecamp.comment.post' | 'basecamp.campfire.post' | 'basecamp.people.list' | 'sharepoint.list.list' | 'sharepoint.item.list' | 'sharepoint.item.create' | 'sharepoint.item.update' | 'sharepoint.drive.list' | 'sharepoint.file.list' | 'sharepoint.file.search' | 'sharepoint.file.read' | 'sharepoint.file.upload' | 'phone.sms.list' | 'phone.number.get' | 'calendar.calendar.list' | 'calendar.event.list' | 'calendar.event.read' | 'calendar.event.create' | 'calendar.event.update' | 'calendar.event.cancel' | 'drive.file.list' | 'drive.file.search' | 'drive.file.read' | 'drive.file.upload' | 'drive.folder.create' | 'docs.document.read' | 'docs.document.create' | 'docs.document.append' | 'docs.text.replace' | 'sheets.spreadsheet.read' | 'sheets.values.read' | 'sheets.values.append' | 'sheets.values.update' | 'sheets.values.clear' | 'sheets.spreadsheet.create' | 'outlook.message.list' | 'outlook.message.read' | 'outlook.attachment.read' | 'outlook.message.send' | 'outlook.message.reply' | 'outlook.event.list' | 'outlook.event.read' | 'outlook.event.create' | 'outlook.event.update' | 'outlook.event.cancel' | 'onedrive.file.list' | 'onedrive.file.search' | 'onedrive.file.read' | 'onedrive.file.upload' | 'onedrive.folder.create' | 'excel.worksheet.list' | 'excel.range.read' | 'excel.range.update' | 'excel.table.list' | 'excel.row.add' | 'excel.worksheet.add' | 'teams.message.list' | 'teams.message.post' | 'teams.reply.post' | 'warehouse.view.read' | 'warehouse.table.append' | 'service.request' | 'zohobooks.contact.list' | 'zohobooks.purchaseorder.list' | 'zohobooks.purchaseorder.read' | 'zohobooks.bill.create' | 'zohobooks.bill.read' | 'zohobooks.invoice.create' | 'zohobooks.invoice.read' | 'zohobooks.invoice.pdf')[];
|
|
173
|
+
operations: ('slack.channel.history' | 'slack.message.post' | 'slack.message.update' | 'slack.message.delete' | 'slack.dm.send' | 'slack.user.lookup' | 'gmail.thread.list' | 'gmail.thread.read' | 'gmail.message.read' | 'gmail.message.send' | 'gmail.attachment.read' | 'basecamp.project.list' | 'basecamp.todolist.list' | 'basecamp.todo.list' | 'basecamp.todo.create' | 'basecamp.todo.complete' | 'basecamp.message.list' | 'basecamp.message.post' | 'basecamp.comment.list' | 'basecamp.comment.post' | 'basecamp.campfire.post' | 'basecamp.people.list' | 'sharepoint.list.list' | 'sharepoint.item.list' | 'sharepoint.item.create' | 'sharepoint.item.update' | 'sharepoint.drive.list' | 'sharepoint.file.list' | 'sharepoint.file.search' | 'sharepoint.file.read' | 'sharepoint.file.upload' | 'phone.sms.list' | 'phone.number.get' | 'calendar.calendar.list' | 'calendar.event.list' | 'calendar.event.read' | 'calendar.event.create' | 'calendar.event.update' | 'calendar.event.cancel' | 'drive.file.list' | 'drive.file.search' | 'drive.file.read' | 'drive.file.upload' | 'drive.folder.create' | 'docs.document.read' | 'docs.document.create' | 'docs.document.append' | 'docs.text.replace' | 'sheets.spreadsheet.read' | 'sheets.values.read' | 'sheets.values.append' | 'sheets.values.update' | 'sheets.values.clear' | 'sheets.spreadsheet.create' | 'outlook.message.list' | 'outlook.message.read' | 'outlook.attachment.read' | 'outlook.message.send' | 'outlook.message.reply' | 'outlook.event.list' | 'outlook.event.read' | 'outlook.event.create' | 'outlook.event.update' | 'outlook.event.cancel' | 'onedrive.file.list' | 'onedrive.file.search' | 'onedrive.file.read' | 'onedrive.file.upload' | 'onedrive.folder.create' | 'excel.worksheet.list' | 'excel.range.read' | 'excel.range.update' | 'excel.table.list' | 'excel.row.add' | 'excel.worksheet.add' | 'teams.message.list' | 'teams.message.post' | 'teams.reply.post' | 'warehouse.view.read' | 'warehouse.table.append' | 'service.request' | 'zohobooks.contact.list' | 'zohobooks.purchaseorder.list' | 'zohobooks.purchaseorder.read' | 'zohobooks.bill.create' | 'zohobooks.bill.read' | 'zohobooks.invoice.create' | 'zohobooks.invoice.read' | 'zohobooks.invoice.pdf' | 'zohobooks.salesorder.list' | 'zohobooks.salesorder.read' | 'zohobooks.invoice.reviseDraft' | 'zohobooks.creditnote.create' | 'zohobooks.creditnote.read')[];
|
|
174
174
|
}
|
|
175
175
|
export interface DevelopmentPreapproval {
|
|
176
176
|
/**
|
|
@@ -13,7 +13,7 @@ export type SanitizedRuntimeBinding = {
|
|
|
13
13
|
*/
|
|
14
14
|
secretRef?: string;
|
|
15
15
|
};
|
|
16
|
-
export type SanitizedBindingProviderId = 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
|
|
16
|
+
export type SanitizedBindingProviderId = 'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield' | 'mistral' | 'datalab';
|
|
17
17
|
/**
|
|
18
18
|
* Immutable DCP allocation receipt and sanitized runtime-binding set for one exact allocated version and normalized source revision. DCP persists this evidence atomically with version admission before publish or provisioning. classificationDigest chains to the caller's pre-allocation BindingClassificationSubject; bindings contain only approved configuration, app secrets or approved data-source credential references and never an AI-mapping-owned provider credential.
|
|
19
19
|
*/
|
package/dist/resolver/index.d.ts
CHANGED
|
@@ -42,7 +42,7 @@ export type { AiPolicySnapshot, AiPolicyGuardrailRule, AiPolicyGuardrailParamete
|
|
|
42
42
|
* revision rather than guessed at. Bump on ANY change to the merge rules, the
|
|
43
43
|
* platform baseline, or the classification minimums. */
|
|
44
44
|
export declare const RESOLVER_VERSION = "1.0.0";
|
|
45
|
-
export type AiProviderType = "openai" | "anthropic" | "gemini" | "openrouter" | "deepseek" | "elevenlabs" | "deepgram" | "higgsfield";
|
|
45
|
+
export type AiProviderType = "openai" | "anthropic" | "gemini" | "openrouter" | "deepseek" | "elevenlabs" | "deepgram" | "higgsfield" | "mistral" | "datalab";
|
|
46
46
|
export type AiCaptureMode = "OFF" | "BEST_EFFORT" | "REQUIRED";
|
|
47
47
|
export type AiDataClassification = "Green" | "Yellow" | "Orange" | "Red";
|
|
48
48
|
export type AiGuardrailAction = "ALLOW" | "OBSERVE" | "REDACT" | "BLOCK";
|
|
@@ -160,6 +160,7 @@ export type AiModelAliasAssignment = {
|
|
|
160
160
|
image?: string;
|
|
161
161
|
video?: string;
|
|
162
162
|
realtime?: string;
|
|
163
|
+
document?: string;
|
|
163
164
|
};
|
|
164
165
|
declare const narrowedBrand: unique symbol;
|
|
165
166
|
/** Granted only by the narrowing combinators (`mergeKeyedFamily`,
|
package/dist/resolver/index.js
CHANGED
|
@@ -49,9 +49,9 @@ const SECRET_OUTPUT_GUARDRAIL = { ruleId: "platform.secret.output", detectorId:
|
|
|
49
49
|
const MAX_REQUEST_BYTES = 20 * 1024 * 1024;
|
|
50
50
|
export const AI_PLATFORM_BASELINE = {
|
|
51
51
|
schema: "harbour.ai-platform-baseline/1.0",
|
|
52
|
-
artifactVersion: "1.
|
|
52
|
+
artifactVersion: "1.2.0",
|
|
53
53
|
controls: {
|
|
54
|
-
permittedProviderTypes: ["anthropic", "gemini", "higgsfield", "openai", "openrouter"],
|
|
54
|
+
permittedProviderTypes: ["anthropic", "datalab", "gemini", "higgsfield", "mistral", "openai", "openrouter"],
|
|
55
55
|
requireApprovedModels: false,
|
|
56
56
|
maxCaptureMode: "BEST_EFFORT",
|
|
57
57
|
maxRetentionDays: 90,
|
|
@@ -70,11 +70,11 @@ export const AI_PLATFORM_BASELINE = {
|
|
|
70
70
|
* and are versioned by `artifactVersion` plus `RESOLVER_VERSION`. */
|
|
71
71
|
export const AI_CLASSIFICATION_MINIMUMS = {
|
|
72
72
|
schema: "harbour.ai-classification-minimums/1.0",
|
|
73
|
-
artifactVersion: "1.
|
|
73
|
+
artifactVersion: "1.2.0",
|
|
74
74
|
defaultClassification: "Yellow",
|
|
75
75
|
classes: {
|
|
76
76
|
Green: {
|
|
77
|
-
permittedProviderTypes: ["anthropic", "gemini", "higgsfield", "openai", "openrouter"],
|
|
77
|
+
permittedProviderTypes: ["anthropic", "datalab", "gemini", "higgsfield", "mistral", "openai", "openrouter"],
|
|
78
78
|
requireApprovedModels: false,
|
|
79
79
|
maxCaptureMode: "BEST_EFFORT",
|
|
80
80
|
maxRetentionDays: 90,
|
|
@@ -88,7 +88,7 @@ export const AI_CLASSIFICATION_MINIMUMS = {
|
|
|
88
88
|
requiredGuardrails: [],
|
|
89
89
|
},
|
|
90
90
|
Yellow: {
|
|
91
|
-
permittedProviderTypes: ["anthropic", "gemini", "higgsfield", "openai", "openrouter"],
|
|
91
|
+
permittedProviderTypes: ["anthropic", "datalab", "gemini", "higgsfield", "mistral", "openai", "openrouter"],
|
|
92
92
|
requireApprovedModels: true,
|
|
93
93
|
maxCaptureMode: "BEST_EFFORT",
|
|
94
94
|
maxRetentionDays: 60,
|
|
@@ -276,7 +276,7 @@ export function mergeKeyedFamily(tenant, application, rules) {
|
|
|
276
276
|
* another route. `{ ...tenant, ...application }` made the application the
|
|
277
277
|
* authority for both. */
|
|
278
278
|
export function mergeModelAliases(tenant, application) {
|
|
279
|
-
const merged = ["generation", "embeddings", "transcription", "translation", "speech", "image", "video", "realtime"].map(capability => {
|
|
279
|
+
const merged = ["generation", "embeddings", "transcription", "translation", "speech", "image", "video", "realtime", "document"].map(capability => {
|
|
280
280
|
const assigned = application[capability];
|
|
281
281
|
if (assigned === undefined)
|
|
282
282
|
return {};
|
|
@@ -94,7 +94,17 @@ export interface AiPolicyClassificationMinimum {
|
|
|
94
94
|
}
|
|
95
95
|
export interface AiPolicyProvider {
|
|
96
96
|
id: AiPolicyIdentifier;
|
|
97
|
-
provider:
|
|
97
|
+
provider:
|
|
98
|
+
| 'openai'
|
|
99
|
+
| 'anthropic'
|
|
100
|
+
| 'gemini'
|
|
101
|
+
| 'openrouter'
|
|
102
|
+
| 'deepseek'
|
|
103
|
+
| 'elevenlabs'
|
|
104
|
+
| 'deepgram'
|
|
105
|
+
| 'higgsfield'
|
|
106
|
+
| 'mistral'
|
|
107
|
+
| 'datalab';
|
|
98
108
|
baseUrl?: string;
|
|
99
109
|
credentialSecretRef: string;
|
|
100
110
|
enabled: boolean;
|
|
@@ -108,7 +118,15 @@ export interface AiPolicyModel {
|
|
|
108
118
|
* @maxItems 2
|
|
109
119
|
*/
|
|
110
120
|
capabilities: (
|
|
111
|
-
|
|
121
|
+
| 'generation'
|
|
122
|
+
| 'embeddings'
|
|
123
|
+
| 'transcription'
|
|
124
|
+
| 'translation'
|
|
125
|
+
| 'speech'
|
|
126
|
+
| 'image'
|
|
127
|
+
| 'video'
|
|
128
|
+
| 'realtime'
|
|
129
|
+
| 'document'
|
|
112
130
|
)[];
|
|
113
131
|
approved: boolean;
|
|
114
132
|
pricing: AiPolicyPricing;
|
|
@@ -144,12 +162,25 @@ export interface AiPolicyPricing {
|
|
|
144
162
|
audio_characters?: number;
|
|
145
163
|
image_count?: number;
|
|
146
164
|
video_seconds?: number;
|
|
165
|
+
/**
|
|
166
|
+
* Price per page read by document OCR (ADR 0043).
|
|
167
|
+
*/
|
|
168
|
+
document_pages?: number;
|
|
147
169
|
};
|
|
148
170
|
}
|
|
149
171
|
export interface AiPolicyRoute {
|
|
150
172
|
alias: AiPolicyIdentifier;
|
|
151
173
|
version: number;
|
|
152
|
-
capability:
|
|
174
|
+
capability:
|
|
175
|
+
| 'generation'
|
|
176
|
+
| 'embeddings'
|
|
177
|
+
| 'transcription'
|
|
178
|
+
| 'translation'
|
|
179
|
+
| 'speech'
|
|
180
|
+
| 'image'
|
|
181
|
+
| 'video'
|
|
182
|
+
| 'realtime'
|
|
183
|
+
| 'document';
|
|
153
184
|
/**
|
|
154
185
|
* @minItems 1
|
|
155
186
|
* @maxItems 16
|
|
@@ -10,7 +10,17 @@ export type AiPricingDigest = string;
|
|
|
10
10
|
export interface AiPricingRevision {
|
|
11
11
|
schema: 'harbour.ai-pricing-revision/2.0';
|
|
12
12
|
revisionId: AiPricingIdentifier;
|
|
13
|
-
provider:
|
|
13
|
+
provider:
|
|
14
|
+
| 'openai'
|
|
15
|
+
| 'anthropic'
|
|
16
|
+
| 'gemini'
|
|
17
|
+
| 'openrouter'
|
|
18
|
+
| 'deepseek'
|
|
19
|
+
| 'elevenlabs'
|
|
20
|
+
| 'deepgram'
|
|
21
|
+
| 'higgsfield'
|
|
22
|
+
| 'mistral'
|
|
23
|
+
| 'datalab';
|
|
14
24
|
providerModel: string;
|
|
15
25
|
region?: AiPricingIdentifier;
|
|
16
26
|
currency: 'USD';
|
package/gen-ts/ai-trace-event.ts
CHANGED
|
@@ -17,7 +17,17 @@ export type AiTraceEvent = {
|
|
|
17
17
|
routeRevision?: string;
|
|
18
18
|
requestedModel?: string;
|
|
19
19
|
governedModelAlias?: string;
|
|
20
|
-
provider?:
|
|
20
|
+
provider?:
|
|
21
|
+
| 'openai'
|
|
22
|
+
| 'anthropic'
|
|
23
|
+
| 'gemini'
|
|
24
|
+
| 'openrouter'
|
|
25
|
+
| 'deepseek'
|
|
26
|
+
| 'elevenlabs'
|
|
27
|
+
| 'deepgram'
|
|
28
|
+
| 'higgsfield'
|
|
29
|
+
| 'mistral'
|
|
30
|
+
| 'datalab';
|
|
21
31
|
providerModel?: string;
|
|
22
32
|
outcome: 'succeeded' | 'blocked' | 'failed' | 'cancelled';
|
|
23
33
|
/**
|
|
@@ -48,7 +58,17 @@ export type AiTraceIdentifier = string;
|
|
|
48
58
|
export type AiTraceDigest = string;
|
|
49
59
|
export type AiTraceAttempt = {
|
|
50
60
|
attempt: number;
|
|
51
|
-
provider:
|
|
61
|
+
provider:
|
|
62
|
+
| 'openai'
|
|
63
|
+
| 'anthropic'
|
|
64
|
+
| 'gemini'
|
|
65
|
+
| 'openrouter'
|
|
66
|
+
| 'deepseek'
|
|
67
|
+
| 'elevenlabs'
|
|
68
|
+
| 'deepgram'
|
|
69
|
+
| 'higgsfield'
|
|
70
|
+
| 'mistral'
|
|
71
|
+
| 'datalab';
|
|
52
72
|
providerModel: string;
|
|
53
73
|
priceRevision: AiTraceIdentifier;
|
|
54
74
|
outcome: 'succeeded' | 'failed' | 'timed_out' | 'cancelled';
|
|
@@ -94,6 +94,11 @@ export type DeclaredConnection = {
|
|
|
94
94
|
'zohobooks.invoice.create'?: UserModeChannelOperation;
|
|
95
95
|
'zohobooks.invoice.read'?: UserModeChannelOperation;
|
|
96
96
|
'zohobooks.invoice.pdf'?: UserModeChannelOperation;
|
|
97
|
+
'zohobooks.salesorder.list'?: UserModeChannelOperation;
|
|
98
|
+
'zohobooks.salesorder.read'?: UserModeChannelOperation;
|
|
99
|
+
'zohobooks.invoice.reviseDraft'?: UserModeChannelOperation;
|
|
100
|
+
'zohobooks.creditnote.create'?: UserModeChannelOperation;
|
|
101
|
+
'zohobooks.creditnote.read'?: UserModeChannelOperation;
|
|
97
102
|
};
|
|
98
103
|
};
|
|
99
104
|
export type IntegrationConnectionKind = 'saas' | 'database' | 'service';
|
|
@@ -19,7 +19,7 @@ export type BindingClassificationEntry = {
|
|
|
19
19
|
requestedAiMappingId?: BindingClassificationIdentifier;
|
|
20
20
|
};
|
|
21
21
|
export type BindingClassificationProviderId =
|
|
22
|
-
'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield';
|
|
22
|
+
'openai' | 'anthropic' | 'gemini' | 'openrouter' | 'deepseek' | 'deepgram' | 'higgsfield' | 'mistral' | 'datalab';
|
|
23
23
|
/**
|
|
24
24
|
* Closed current credential category. Add a reviewed contract version before supporting another credential mechanism.
|
|
25
25
|
*/
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
// Code generated by tools/gen/gen.mjs from schema/*.json. DO NOT EDIT.
|
|
3
3
|
|
|
4
|
-
export const ContractRepositoryVersion = "0.
|
|
5
|
-
export const ContractPublishVersion = "0.
|
|
6
|
-
export const ContractPublishTag = "v0.
|
|
7
|
-
export const ContractSchemasDigest = "sha256:
|
|
4
|
+
export const ContractRepositoryVersion = "0.98.0.0" as const;
|
|
5
|
+
export const ContractPublishVersion = "0.98.0" as const;
|
|
6
|
+
export const ContractPublishTag = "v0.98.0" as const;
|
|
7
|
+
export const ContractSchemasDigest = "sha256:c5ae6c789021697c7e00bf65bb1f072b4d8a61f151a9b31e1a74486992c6c196" as const;
|
|
8
8
|
export const ContractAiFixturesDigest = "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6" as const;
|
|
9
|
-
export const ContractGeneratedGoDigest = "sha256:
|
|
10
|
-
export const ContractGeneratedTypeScriptDigest = "sha256:
|
|
9
|
+
export const ContractGeneratedGoDigest = "sha256:d8ea139537eae467b12402fac22e1a44f4e6dc50cad71e02a0083dfa6b63ee3d" as const;
|
|
10
|
+
export const ContractGeneratedTypeScriptDigest = "sha256:95a22d7dd80f7a020e556f42a1b269a13bad0168f2872a96500deb4a184720d1" as const;
|
package/gen-ts/data-grant-v2.ts
CHANGED
|
@@ -35,7 +35,7 @@ export interface DataGrantV2 {
|
|
|
35
35
|
/**
|
|
36
36
|
* Approved operations; each must match this grant's mode. Empty until the first approval. At most the seventy-eight SaaS operations (0.86.0: eleven Slack and Gmail, eleven Basecamp, nine SharePoint, two phone, forty-five Google Workspace and Microsoft 365); a database grant holds up to two (warehouse.view.read, warehouse.table.append).
|
|
37
37
|
*
|
|
38
|
-
* @maxItems
|
|
38
|
+
* @maxItems 91
|
|
39
39
|
*/
|
|
40
40
|
operations: (
|
|
41
41
|
| 'slack.channel.history'
|
|
@@ -127,6 +127,11 @@ export interface DataGrantV2 {
|
|
|
127
127
|
| 'zohobooks.invoice.create'
|
|
128
128
|
| 'zohobooks.invoice.read'
|
|
129
129
|
| 'zohobooks.invoice.pdf'
|
|
130
|
+
| 'zohobooks.salesorder.list'
|
|
131
|
+
| 'zohobooks.salesorder.read'
|
|
132
|
+
| 'zohobooks.invoice.reviseDraft'
|
|
133
|
+
| 'zohobooks.creditnote.create'
|
|
134
|
+
| 'zohobooks.creditnote.read'
|
|
130
135
|
)[];
|
|
131
136
|
/**
|
|
132
137
|
* Approved logical resources. Never inherited by wildcard. Empty until the first approval.
|
|
@@ -197,7 +202,7 @@ export interface IntegrationResource {
|
|
|
197
202
|
*/
|
|
198
203
|
export interface ReviewedIntegrationScope {
|
|
199
204
|
/**
|
|
200
|
-
* @maxItems
|
|
205
|
+
* @maxItems 91
|
|
201
206
|
*/
|
|
202
207
|
operations: (
|
|
203
208
|
| 'slack.channel.history'
|
|
@@ -289,6 +294,11 @@ export interface ReviewedIntegrationScope {
|
|
|
289
294
|
| 'zohobooks.invoice.create'
|
|
290
295
|
| 'zohobooks.invoice.read'
|
|
291
296
|
| 'zohobooks.invoice.pdf'
|
|
297
|
+
| 'zohobooks.salesorder.list'
|
|
298
|
+
| 'zohobooks.salesorder.read'
|
|
299
|
+
| 'zohobooks.invoice.reviseDraft'
|
|
300
|
+
| 'zohobooks.creditnote.create'
|
|
301
|
+
| 'zohobooks.creditnote.read'
|
|
292
302
|
)[];
|
|
293
303
|
/**
|
|
294
304
|
* @maxItems 64
|