@suveren/gateway 0.9.0 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -1
- package/bin/suveren-gateway.js +203 -5
- package/content/integrations/crm.json +47 -3
- package/content/integrations/erp.json +231 -0
- package/content/integrations/index.json +3 -1
- package/content/integrations/mail.json +147 -0
- package/dist/control-plane/index.mjs +688 -179
- package/dist/mcp-server/http.mjs +483 -259
- package/dist/ui/assets/index-CV9Mbbkd.css +1 -0
- package/dist/ui/assets/{index-CIiOCgjJ.js → index-sq564t5H.js} +23 -23
- package/dist/ui/index.html +2 -2
- package/lib/as-pairing.mjs +77 -0
- package/lib/config.mjs +48 -0
- package/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/node/package.json +2 -2
- package/node_modules/@types/node/zlib.d.ts +6 -0
- package/node_modules/follow-redirects/index.js +10 -1
- package/node_modules/follow-redirects/package.json +1 -1
- package/node_modules/ip-address/README.md +34 -34
- package/node_modules/ip-address/dist/ipv4.js +7 -0
- package/node_modules/ip-address/dist/ipv4.js.map +1 -1
- package/node_modules/ip-address/package.json +1 -1
- package/node_modules/undici/LICENSE +21 -0
- package/node_modules/undici/README.md +741 -0
- package/node_modules/undici/docs/docs/api/Agent.md +84 -0
- package/node_modules/undici/docs/docs/api/BalancedPool.md +99 -0
- package/node_modules/undici/docs/docs/api/CacheStorage.md +30 -0
- package/node_modules/undici/docs/docs/api/CacheStore.md +164 -0
- package/node_modules/undici/docs/docs/api/Client.md +288 -0
- package/node_modules/undici/docs/docs/api/ClientStats.md +27 -0
- package/node_modules/undici/docs/docs/api/Connector.md +115 -0
- package/node_modules/undici/docs/docs/api/ContentType.md +57 -0
- package/node_modules/undici/docs/docs/api/Cookies.md +128 -0
- package/node_modules/undici/docs/docs/api/Debug.md +62 -0
- package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +317 -0
- package/node_modules/undici/docs/docs/api/Dispatcher.md +1393 -0
- package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +159 -0
- package/node_modules/undici/docs/docs/api/Errors.md +49 -0
- package/node_modules/undici/docs/docs/api/EventSource.md +45 -0
- package/node_modules/undici/docs/docs/api/Fetch.md +60 -0
- package/node_modules/undici/docs/docs/api/GlobalInstallation.md +139 -0
- package/node_modules/undici/docs/docs/api/H2CClient.md +263 -0
- package/node_modules/undici/docs/docs/api/MockAgent.md +603 -0
- package/node_modules/undici/docs/docs/api/MockCallHistory.md +197 -0
- package/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +43 -0
- package/node_modules/undici/docs/docs/api/MockClient.md +81 -0
- package/node_modules/undici/docs/docs/api/MockErrors.md +12 -0
- package/node_modules/undici/docs/docs/api/MockPool.md +555 -0
- package/node_modules/undici/docs/docs/api/Pool.md +84 -0
- package/node_modules/undici/docs/docs/api/PoolStats.md +35 -0
- package/node_modules/undici/docs/docs/api/ProxyAgent.md +229 -0
- package/node_modules/undici/docs/docs/api/RedirectHandler.md +93 -0
- package/node_modules/undici/docs/docs/api/RetryAgent.md +50 -0
- package/node_modules/undici/docs/docs/api/RetryHandler.md +118 -0
- package/node_modules/undici/docs/docs/api/RoundRobinPool.md +145 -0
- package/node_modules/undici/docs/docs/api/SnapshotAgent.md +616 -0
- package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +275 -0
- package/node_modules/undici/docs/docs/api/Util.md +25 -0
- package/node_modules/undici/docs/docs/api/WebSocket.md +141 -0
- package/node_modules/undici/docs/docs/api/api-lifecycle.md +91 -0
- package/node_modules/undici/docs/docs/best-practices/client-certificate.md +64 -0
- package/node_modules/undici/docs/docs/best-practices/crawling.md +58 -0
- package/node_modules/undici/docs/docs/best-practices/mocking-request.md +190 -0
- package/node_modules/undici/docs/docs/best-practices/proxy.md +127 -0
- package/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +224 -0
- package/node_modules/undici/docs/docs/best-practices/writing-tests.md +63 -0
- package/node_modules/undici/index-fetch.js +65 -0
- package/node_modules/undici/index.d.ts +3 -0
- package/node_modules/undici/index.js +234 -0
- package/node_modules/undici/lib/api/abort-signal.js +59 -0
- package/node_modules/undici/lib/api/api-connect.js +110 -0
- package/node_modules/undici/lib/api/api-pipeline.js +252 -0
- package/node_modules/undici/lib/api/api-request.js +214 -0
- package/node_modules/undici/lib/api/api-stream.js +209 -0
- package/node_modules/undici/lib/api/api-upgrade.js +111 -0
- package/node_modules/undici/lib/api/index.js +7 -0
- package/node_modules/undici/lib/api/readable.js +580 -0
- package/node_modules/undici/lib/cache/memory-cache-store.js +279 -0
- package/node_modules/undici/lib/cache/sqlite-cache-store.js +467 -0
- package/node_modules/undici/lib/core/connect.js +153 -0
- package/node_modules/undici/lib/core/constants.js +143 -0
- package/node_modules/undici/lib/core/diagnostics.js +227 -0
- package/node_modules/undici/lib/core/errors.js +477 -0
- package/node_modules/undici/lib/core/request.js +485 -0
- package/node_modules/undici/lib/core/socks5-client.js +422 -0
- package/node_modules/undici/lib/core/socks5-utils.js +212 -0
- package/node_modules/undici/lib/core/symbols.js +75 -0
- package/node_modules/undici/lib/core/tree.js +160 -0
- package/node_modules/undici/lib/core/util.js +992 -0
- package/node_modules/undici/lib/dispatcher/agent.js +158 -0
- package/node_modules/undici/lib/dispatcher/balanced-pool.js +221 -0
- package/node_modules/undici/lib/dispatcher/client-h1.js +1746 -0
- package/node_modules/undici/lib/dispatcher/client-h2.js +1060 -0
- package/node_modules/undici/lib/dispatcher/client.js +668 -0
- package/node_modules/undici/lib/dispatcher/dispatcher-base.js +184 -0
- package/node_modules/undici/lib/dispatcher/dispatcher.js +48 -0
- package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +146 -0
- package/node_modules/undici/lib/dispatcher/fixed-queue.js +135 -0
- package/node_modules/undici/lib/dispatcher/h2c-client.js +51 -0
- package/node_modules/undici/lib/dispatcher/pool-base.js +214 -0
- package/node_modules/undici/lib/dispatcher/pool.js +118 -0
- package/node_modules/undici/lib/dispatcher/proxy-agent.js +319 -0
- package/node_modules/undici/lib/dispatcher/retry-agent.js +35 -0
- package/node_modules/undici/lib/dispatcher/round-robin-pool.js +137 -0
- package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +260 -0
- package/node_modules/undici/lib/encoding/index.js +33 -0
- package/node_modules/undici/lib/global.js +59 -0
- package/node_modules/undici/lib/handler/cache-handler.js +776 -0
- package/node_modules/undici/lib/handler/cache-revalidation-handler.js +124 -0
- package/node_modules/undici/lib/handler/decorator-handler.js +67 -0
- package/node_modules/undici/lib/handler/deduplication-handler.js +460 -0
- package/node_modules/undici/lib/handler/redirect-handler.js +238 -0
- package/node_modules/undici/lib/handler/retry-handler.js +504 -0
- package/node_modules/undici/lib/handler/unwrap-handler.js +106 -0
- package/node_modules/undici/lib/handler/wrap-handler.js +105 -0
- package/node_modules/undici/lib/interceptor/cache.js +621 -0
- package/node_modules/undici/lib/interceptor/decompress.js +551 -0
- package/node_modules/undici/lib/interceptor/deduplicate.js +117 -0
- package/node_modules/undici/lib/interceptor/dns.js +571 -0
- package/node_modules/undici/lib/interceptor/dump.js +99 -0
- package/node_modules/undici/lib/interceptor/redirect.js +21 -0
- package/node_modules/undici/lib/interceptor/response-error.js +95 -0
- package/node_modules/undici/lib/interceptor/retry.js +19 -0
- package/node_modules/undici/lib/llhttp/.gitkeep +0 -0
- package/node_modules/undici/lib/llhttp/constants.d.ts +195 -0
- package/node_modules/undici/lib/llhttp/constants.js +531 -0
- package/node_modules/undici/lib/llhttp/llhttp-wasm.js +15 -0
- package/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +15 -0
- package/node_modules/undici/lib/llhttp/utils.d.ts +2 -0
- package/node_modules/undici/lib/llhttp/utils.js +12 -0
- package/node_modules/undici/lib/mock/mock-agent.js +232 -0
- package/node_modules/undici/lib/mock/mock-call-history.js +248 -0
- package/node_modules/undici/lib/mock/mock-client.js +68 -0
- package/node_modules/undici/lib/mock/mock-errors.js +29 -0
- package/node_modules/undici/lib/mock/mock-interceptor.js +209 -0
- package/node_modules/undici/lib/mock/mock-pool.js +68 -0
- package/node_modules/undici/lib/mock/mock-symbols.js +32 -0
- package/node_modules/undici/lib/mock/mock-utils.js +486 -0
- package/node_modules/undici/lib/mock/pending-interceptors-formatter.js +43 -0
- package/node_modules/undici/lib/mock/snapshot-agent.js +353 -0
- package/node_modules/undici/lib/mock/snapshot-recorder.js +588 -0
- package/node_modules/undici/lib/mock/snapshot-utils.js +158 -0
- package/node_modules/undici/lib/util/cache.js +676 -0
- package/node_modules/undici/lib/util/date.js +670 -0
- package/node_modules/undici/lib/util/promise.js +28 -0
- package/node_modules/undici/lib/util/runtime-features.js +124 -0
- package/node_modules/undici/lib/util/stats.js +32 -0
- package/node_modules/undici/lib/util/timers.js +425 -0
- package/node_modules/undici/lib/web/cache/cache.js +864 -0
- package/node_modules/undici/lib/web/cache/cachestorage.js +152 -0
- package/node_modules/undici/lib/web/cache/util.js +45 -0
- package/node_modules/undici/lib/web/cookies/constants.js +12 -0
- package/node_modules/undici/lib/web/cookies/index.js +199 -0
- package/node_modules/undici/lib/web/cookies/parse.js +314 -0
- package/node_modules/undici/lib/web/cookies/util.js +352 -0
- package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +494 -0
- package/node_modules/undici/lib/web/eventsource/eventsource.js +501 -0
- package/node_modules/undici/lib/web/eventsource/util.js +29 -0
- package/node_modules/undici/lib/web/fetch/LICENSE +21 -0
- package/node_modules/undici/lib/web/fetch/body.js +509 -0
- package/node_modules/undici/lib/web/fetch/constants.js +131 -0
- package/node_modules/undici/lib/web/fetch/data-url.js +596 -0
- package/node_modules/undici/lib/web/fetch/formdata-parser.js +586 -0
- package/node_modules/undici/lib/web/fetch/formdata.js +259 -0
- package/node_modules/undici/lib/web/fetch/global.js +40 -0
- package/node_modules/undici/lib/web/fetch/headers.js +719 -0
- package/node_modules/undici/lib/web/fetch/index.js +2413 -0
- package/node_modules/undici/lib/web/fetch/request.js +1115 -0
- package/node_modules/undici/lib/web/fetch/response.js +641 -0
- package/node_modules/undici/lib/web/fetch/util.js +1522 -0
- package/node_modules/undici/lib/web/infra/index.js +229 -0
- package/node_modules/undici/lib/web/subresource-integrity/Readme.md +9 -0
- package/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +307 -0
- package/node_modules/undici/lib/web/webidl/index.js +1006 -0
- package/node_modules/undici/lib/web/websocket/connection.js +339 -0
- package/node_modules/undici/lib/web/websocket/constants.js +126 -0
- package/node_modules/undici/lib/web/websocket/events.js +331 -0
- package/node_modules/undici/lib/web/websocket/frame.js +133 -0
- package/node_modules/undici/lib/web/websocket/permessage-deflate.js +105 -0
- package/node_modules/undici/lib/web/websocket/receiver.js +507 -0
- package/node_modules/undici/lib/web/websocket/sender.js +109 -0
- package/node_modules/undici/lib/web/websocket/stream/websocketerror.js +104 -0
- package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +496 -0
- package/node_modules/undici/lib/web/websocket/util.js +347 -0
- package/node_modules/undici/lib/web/websocket/websocket.js +758 -0
- package/node_modules/undici/package.json +152 -0
- package/node_modules/undici/scripts/strip-comments.js +10 -0
- package/node_modules/undici/types/README.md +6 -0
- package/node_modules/undici/types/agent.d.ts +32 -0
- package/node_modules/undici/types/api.d.ts +43 -0
- package/node_modules/undici/types/balanced-pool.d.ts +30 -0
- package/node_modules/undici/types/cache-interceptor.d.ts +179 -0
- package/node_modules/undici/types/cache.d.ts +36 -0
- package/node_modules/undici/types/client-stats.d.ts +15 -0
- package/node_modules/undici/types/client.d.ts +139 -0
- package/node_modules/undici/types/connector.d.ts +36 -0
- package/node_modules/undici/types/content-type.d.ts +21 -0
- package/node_modules/undici/types/cookies.d.ts +30 -0
- package/node_modules/undici/types/diagnostics-channel.d.ts +74 -0
- package/node_modules/undici/types/dispatcher.d.ts +275 -0
- package/node_modules/undici/types/env-http-proxy-agent.d.ts +22 -0
- package/node_modules/undici/types/errors.d.ts +177 -0
- package/node_modules/undici/types/eventsource.d.ts +66 -0
- package/node_modules/undici/types/fetch.d.ts +231 -0
- package/node_modules/undici/types/formdata.d.ts +114 -0
- package/node_modules/undici/types/global-dispatcher.d.ts +9 -0
- package/node_modules/undici/types/global-origin.d.ts +7 -0
- package/node_modules/undici/types/h2c-client.d.ts +73 -0
- package/node_modules/undici/types/handlers.d.ts +14 -0
- package/node_modules/undici/types/header.d.ts +160 -0
- package/node_modules/undici/types/index.d.ts +91 -0
- package/node_modules/undici/types/interceptors.d.ts +82 -0
- package/node_modules/undici/types/mock-agent.d.ts +68 -0
- package/node_modules/undici/types/mock-call-history.d.ts +111 -0
- package/node_modules/undici/types/mock-client.d.ts +27 -0
- package/node_modules/undici/types/mock-errors.d.ts +12 -0
- package/node_modules/undici/types/mock-interceptor.d.ts +94 -0
- package/node_modules/undici/types/mock-pool.d.ts +27 -0
- package/node_modules/undici/types/patch.d.ts +29 -0
- package/node_modules/undici/types/pool-stats.d.ts +19 -0
- package/node_modules/undici/types/pool.d.ts +41 -0
- package/node_modules/undici/types/proxy-agent.d.ts +29 -0
- package/node_modules/undici/types/readable.d.ts +68 -0
- package/node_modules/undici/types/retry-agent.d.ts +8 -0
- package/node_modules/undici/types/retry-handler.d.ts +125 -0
- package/node_modules/undici/types/round-robin-pool.d.ts +41 -0
- package/node_modules/undici/types/snapshot-agent.d.ts +109 -0
- package/node_modules/undici/types/socks5-proxy-agent.d.ts +25 -0
- package/node_modules/undici/types/util.d.ts +18 -0
- package/node_modules/undici/types/utility.d.ts +7 -0
- package/node_modules/undici/types/webidl.d.ts +347 -0
- package/node_modules/undici/types/websocket.d.ts +188 -0
- package/package.json +4 -2
- package/profiles/customers/0.8.profile.json +187 -0
- package/profiles/email/0.7.profile.json +254 -0
- package/profiles/index.json +4 -1
- package/profiles/sales/0.2.profile.json +282 -0
- package/dist/ui/assets/index-BJqF5rmx.css +0 -1
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "github.com/humanagencyprotocol/hap-profiles/customers@0.8",
|
|
3
|
+
"name": "Customer Management",
|
|
4
|
+
"version": "0.8",
|
|
5
|
+
"description": "Customer authority — governs CRM operations: contacts, activities, deals, tasks",
|
|
6
|
+
"boundsSchema": {
|
|
7
|
+
"actionTypes": [
|
|
8
|
+
"delete",
|
|
9
|
+
"write",
|
|
10
|
+
"setup"
|
|
11
|
+
],
|
|
12
|
+
"keyOrder": [
|
|
13
|
+
"profile",
|
|
14
|
+
"read_access",
|
|
15
|
+
"export_access",
|
|
16
|
+
"write_daily_max",
|
|
17
|
+
"delete_daily_max",
|
|
18
|
+
"setup_daily_max"
|
|
19
|
+
],
|
|
20
|
+
"fields": {
|
|
21
|
+
"profile": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"required": true
|
|
24
|
+
},
|
|
25
|
+
"read_access": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"required": true,
|
|
28
|
+
"displayName": "Read access",
|
|
29
|
+
"description": "Allow the agent to browse contacts, timelines, pipeline and tasks. Bulk export is governed separately by Export access.",
|
|
30
|
+
"boundType": {
|
|
31
|
+
"kind": "enum",
|
|
32
|
+
"values": [
|
|
33
|
+
"unlimited",
|
|
34
|
+
"none"
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
"toolsDescription": "find_contacts, get_timeline, get_pipeline, list_tasks",
|
|
38
|
+
"default": "unlimited"
|
|
39
|
+
},
|
|
40
|
+
"export_access": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"required": true,
|
|
43
|
+
"displayName": "Export access",
|
|
44
|
+
"description": "Allow the agent to export the ENTIRE CRM in one call. Separate from read access because the risk is different in kind: reading one contact and extracting the whole customer database are not the same decision.",
|
|
45
|
+
"boundType": {
|
|
46
|
+
"kind": "enum",
|
|
47
|
+
"values": [
|
|
48
|
+
"allowed",
|
|
49
|
+
"none"
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
"toolsDescription": "export_crm",
|
|
53
|
+
"default": "none"
|
|
54
|
+
},
|
|
55
|
+
"write_daily_max": {
|
|
56
|
+
"type": "number",
|
|
57
|
+
"required": true,
|
|
58
|
+
"displayName": "Daily write limit",
|
|
59
|
+
"description": "Maximum CRM write operations per day (creates, updates)",
|
|
60
|
+
"unit": "count",
|
|
61
|
+
"boundType": {
|
|
62
|
+
"kind": "cumulative_count",
|
|
63
|
+
"window": "daily"
|
|
64
|
+
},
|
|
65
|
+
"paths": [
|
|
66
|
+
"customers-write"
|
|
67
|
+
],
|
|
68
|
+
"appliesTo": [
|
|
69
|
+
"write"
|
|
70
|
+
]
|
|
71
|
+
},
|
|
72
|
+
"delete_daily_max": {
|
|
73
|
+
"type": "number",
|
|
74
|
+
"required": true,
|
|
75
|
+
"displayName": "Daily delete limit",
|
|
76
|
+
"description": "Maximum CRM delete operations per day",
|
|
77
|
+
"unit": "count",
|
|
78
|
+
"boundType": {
|
|
79
|
+
"kind": "cumulative_count",
|
|
80
|
+
"window": "daily"
|
|
81
|
+
},
|
|
82
|
+
"paths": [
|
|
83
|
+
"customers-delete"
|
|
84
|
+
],
|
|
85
|
+
"appliesTo": [
|
|
86
|
+
"delete"
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
"setup_daily_max": {
|
|
90
|
+
"type": "number",
|
|
91
|
+
"required": true,
|
|
92
|
+
"displayName": "Test-data loads per day",
|
|
93
|
+
"description": "How many times per day the simulated system may be loaded with a simulation package (load_simulation). Only works while the connector runs in simulation mode, and only into an empty system — a load cannot edit or replace existing test data. 0 = not allowed. Grant it only in a separate setup mandate, never in the mandate the AI uses for its work.",
|
|
94
|
+
"unit": "count",
|
|
95
|
+
"boundType": {
|
|
96
|
+
"kind": "cumulative_count",
|
|
97
|
+
"window": "daily"
|
|
98
|
+
},
|
|
99
|
+
"appliesTo": [
|
|
100
|
+
"setup"
|
|
101
|
+
],
|
|
102
|
+
"default": 0
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"contextSchema": {
|
|
107
|
+
"keyOrder": [
|
|
108
|
+
"contact_type"
|
|
109
|
+
],
|
|
110
|
+
"fields": {
|
|
111
|
+
"contact_type": {
|
|
112
|
+
"type": "string",
|
|
113
|
+
"required": true,
|
|
114
|
+
"displayName": "Contact types the agent may create or modify",
|
|
115
|
+
"description": "Contact types the agent may create, update or delete. Does NOT restrict reading — reads are governed by read_access.",
|
|
116
|
+
"enum": [
|
|
117
|
+
"customer",
|
|
118
|
+
"lead",
|
|
119
|
+
"partner",
|
|
120
|
+
"vendor"
|
|
121
|
+
],
|
|
122
|
+
"constraint": {
|
|
123
|
+
"type": "string",
|
|
124
|
+
"enforceable": [
|
|
125
|
+
"subset"
|
|
126
|
+
]
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"executionContextSchema": {
|
|
132
|
+
"fields": {
|
|
133
|
+
"contact_type": {
|
|
134
|
+
"source": "declared",
|
|
135
|
+
"description": "Contact type being accessed",
|
|
136
|
+
"required": true,
|
|
137
|
+
"constraint": {
|
|
138
|
+
"type": "string",
|
|
139
|
+
"enforceable": [
|
|
140
|
+
"subset"
|
|
141
|
+
]
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
"write_count_daily": {
|
|
145
|
+
"source": "cumulative",
|
|
146
|
+
"cumulativeField": "_count",
|
|
147
|
+
"window": "daily",
|
|
148
|
+
"description": "Running daily write operation count",
|
|
149
|
+
"required": true,
|
|
150
|
+
"constraint": {
|
|
151
|
+
"type": "number",
|
|
152
|
+
"enforceable": [
|
|
153
|
+
"max"
|
|
154
|
+
]
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
"setup_count_daily": {
|
|
158
|
+
"source": "cumulative",
|
|
159
|
+
"cumulativeField": "_count",
|
|
160
|
+
"window": "daily",
|
|
161
|
+
"description": "Running daily count of test-data loads",
|
|
162
|
+
"required": true,
|
|
163
|
+
"constraint": {
|
|
164
|
+
"type": "number",
|
|
165
|
+
"enforceable": [
|
|
166
|
+
"max"
|
|
167
|
+
]
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
"requiredGates": [
|
|
173
|
+
"bounds",
|
|
174
|
+
"intent",
|
|
175
|
+
"commitment",
|
|
176
|
+
"decision_owner"
|
|
177
|
+
],
|
|
178
|
+
"ttl": {
|
|
179
|
+
"default": 86400,
|
|
180
|
+
"max": 31536000
|
|
181
|
+
},
|
|
182
|
+
"retention_minimum": 7776000,
|
|
183
|
+
"content_binding": {
|
|
184
|
+
"version": "1",
|
|
185
|
+
"kind": "jcs"
|
|
186
|
+
}
|
|
187
|
+
}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "github.com/humanagencyprotocol/hap-profiles/email@0.7",
|
|
3
|
+
"name": "Email",
|
|
4
|
+
"version": "0.7",
|
|
5
|
+
"description": "Email authority — governs sending, drafting, and reading email via Gmail",
|
|
6
|
+
"whatsNew": "Binds the recipients to the receipt, not only the message body — an approved message can no longer be delivered to someone else without breaking the proof.",
|
|
7
|
+
"boundsSchema": {
|
|
8
|
+
"actionTypes": [
|
|
9
|
+
"delete",
|
|
10
|
+
"send",
|
|
11
|
+
"setup"
|
|
12
|
+
],
|
|
13
|
+
"keyOrder": [
|
|
14
|
+
"profile",
|
|
15
|
+
"read_access",
|
|
16
|
+
"recipient_max",
|
|
17
|
+
"send_daily_max",
|
|
18
|
+
"read_max_age_days",
|
|
19
|
+
"read_daily_max",
|
|
20
|
+
"setup_daily_max"
|
|
21
|
+
],
|
|
22
|
+
"fields": {
|
|
23
|
+
"profile": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"required": true
|
|
26
|
+
},
|
|
27
|
+
"recipient_max": {
|
|
28
|
+
"type": "number",
|
|
29
|
+
"required": false,
|
|
30
|
+
"displayName": "Recipients per email",
|
|
31
|
+
"description": "Maximum recipients per email",
|
|
32
|
+
"unit": "count",
|
|
33
|
+
"boundType": {
|
|
34
|
+
"kind": "per_transaction",
|
|
35
|
+
"of": "recipient_count"
|
|
36
|
+
},
|
|
37
|
+
"paths": [
|
|
38
|
+
"email-send",
|
|
39
|
+
"email-draft"
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
"send_daily_max": {
|
|
43
|
+
"type": "number",
|
|
44
|
+
"required": false,
|
|
45
|
+
"displayName": "Daily send limit",
|
|
46
|
+
"description": "Maximum emails sent or drafted per day",
|
|
47
|
+
"unit": "count",
|
|
48
|
+
"boundType": {
|
|
49
|
+
"kind": "cumulative_count",
|
|
50
|
+
"window": "daily"
|
|
51
|
+
},
|
|
52
|
+
"paths": [
|
|
53
|
+
"email-send",
|
|
54
|
+
"email-draft"
|
|
55
|
+
],
|
|
56
|
+
"appliesTo": [
|
|
57
|
+
"send"
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
"read_max_age_days": {
|
|
61
|
+
"type": "number",
|
|
62
|
+
"required": false,
|
|
63
|
+
"displayName": "Max email age (days)",
|
|
64
|
+
"description": "Maximum age in days for email search. Enforced locally by the Gatekeeper, never by the Authority Server: reads carry no receipt, so no signed check ever reads this value. Set it on the integration instead, where it is live-editable. Kept in the schema as the fallback for grants issued before that setting existed.",
|
|
65
|
+
"unit": "days",
|
|
66
|
+
"enforcedBy": "gatekeeper",
|
|
67
|
+
"boundType": {
|
|
68
|
+
"kind": "per_transaction",
|
|
69
|
+
"of": "read_age_days"
|
|
70
|
+
},
|
|
71
|
+
"paths": [
|
|
72
|
+
"email-read"
|
|
73
|
+
]
|
|
74
|
+
},
|
|
75
|
+
"read_daily_max": {
|
|
76
|
+
"type": "number",
|
|
77
|
+
"required": false,
|
|
78
|
+
"displayName": "Daily read limit",
|
|
79
|
+
"description": "Not currently enforced: reads carry no receipt, so no component counts them. Hidden from the authorization editor until enforcement exists.",
|
|
80
|
+
"unit": "count",
|
|
81
|
+
"boundType": {
|
|
82
|
+
"kind": "cumulative_count",
|
|
83
|
+
"window": "daily"
|
|
84
|
+
},
|
|
85
|
+
"paths": [
|
|
86
|
+
"email-read"
|
|
87
|
+
],
|
|
88
|
+
"enforced": false,
|
|
89
|
+
"appliesTo": []
|
|
90
|
+
},
|
|
91
|
+
"read_access": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"required": true,
|
|
94
|
+
"displayName": "Read access",
|
|
95
|
+
"description": "Allow the agent to list and read messages in the mailbox (simulated or real). Sending is governed separately.",
|
|
96
|
+
"boundType": {
|
|
97
|
+
"kind": "enum",
|
|
98
|
+
"values": [
|
|
99
|
+
"unlimited",
|
|
100
|
+
"none"
|
|
101
|
+
]
|
|
102
|
+
},
|
|
103
|
+
"toolsDescription": "list_messages, get_message",
|
|
104
|
+
"default": "unlimited"
|
|
105
|
+
},
|
|
106
|
+
"setup_daily_max": {
|
|
107
|
+
"type": "number",
|
|
108
|
+
"required": true,
|
|
109
|
+
"displayName": "Test-data loads per day",
|
|
110
|
+
"description": "How many times per day the simulated system may be loaded with a simulation package (load_simulation). Only works while the connector runs in simulation mode, and only into an empty system — a load cannot edit or replace existing test data. 0 = not allowed. Grant it only in a separate setup mandate, never in the mandate the AI uses for its work.",
|
|
111
|
+
"unit": "count",
|
|
112
|
+
"boundType": {
|
|
113
|
+
"kind": "cumulative_count",
|
|
114
|
+
"window": "daily"
|
|
115
|
+
},
|
|
116
|
+
"appliesTo": [
|
|
117
|
+
"setup"
|
|
118
|
+
],
|
|
119
|
+
"default": 0
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"contextSchema": {
|
|
124
|
+
"keyOrder": [
|
|
125
|
+
"allowed_recipients",
|
|
126
|
+
"allowed_domains"
|
|
127
|
+
],
|
|
128
|
+
"fields": {
|
|
129
|
+
"allowed_recipients": {
|
|
130
|
+
"type": "string",
|
|
131
|
+
"required": false,
|
|
132
|
+
"displayName": "Allowed recipients",
|
|
133
|
+
"format": "email",
|
|
134
|
+
"description": "Comma-separated list of allowed email addresses",
|
|
135
|
+
"constraint": {
|
|
136
|
+
"type": "string",
|
|
137
|
+
"enforceable": [
|
|
138
|
+
"subset"
|
|
139
|
+
],
|
|
140
|
+
"requiredFor": [
|
|
141
|
+
"send"
|
|
142
|
+
]
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"allowed_domains": {
|
|
146
|
+
"type": "string",
|
|
147
|
+
"required": false,
|
|
148
|
+
"displayName": "Allowed domains",
|
|
149
|
+
"format": "domain",
|
|
150
|
+
"description": "Comma-separated list of allowed recipient domains (e.g. acme.com,partner.org)",
|
|
151
|
+
"constraint": {
|
|
152
|
+
"type": "string",
|
|
153
|
+
"enforceable": [
|
|
154
|
+
"subset"
|
|
155
|
+
],
|
|
156
|
+
"requiredFor": [
|
|
157
|
+
"send"
|
|
158
|
+
]
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
"executionContextSchema": {
|
|
164
|
+
"fields": {
|
|
165
|
+
"recipient_count": {
|
|
166
|
+
"source": "declared",
|
|
167
|
+
"description": "Number of recipients in this email",
|
|
168
|
+
"required": true,
|
|
169
|
+
"constraint": {
|
|
170
|
+
"type": "number",
|
|
171
|
+
"enforceable": [
|
|
172
|
+
"max"
|
|
173
|
+
]
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
"allowed_recipients": {
|
|
177
|
+
"source": "declared",
|
|
178
|
+
"description": "Comma-separated recipient addresses from this call (checked against context)",
|
|
179
|
+
"required": false,
|
|
180
|
+
"constraint": {
|
|
181
|
+
"type": "string",
|
|
182
|
+
"enforceable": [
|
|
183
|
+
"subset"
|
|
184
|
+
]
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
"allowed_domains": {
|
|
188
|
+
"source": "declared",
|
|
189
|
+
"description": "Comma-separated unique recipient domains from this call (checked against context)",
|
|
190
|
+
"required": false,
|
|
191
|
+
"constraint": {
|
|
192
|
+
"type": "string",
|
|
193
|
+
"enforceable": [
|
|
194
|
+
"subset"
|
|
195
|
+
]
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
"send_count_daily": {
|
|
199
|
+
"source": "cumulative",
|
|
200
|
+
"cumulativeField": "_count",
|
|
201
|
+
"window": "daily",
|
|
202
|
+
"description": "Running daily send/draft count (resolved from execution log)",
|
|
203
|
+
"required": true,
|
|
204
|
+
"constraint": {
|
|
205
|
+
"type": "number",
|
|
206
|
+
"enforceable": [
|
|
207
|
+
"max"
|
|
208
|
+
]
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
"setup_count_daily": {
|
|
212
|
+
"source": "cumulative",
|
|
213
|
+
"cumulativeField": "_count",
|
|
214
|
+
"window": "daily",
|
|
215
|
+
"description": "Running daily count of test-data loads",
|
|
216
|
+
"required": true,
|
|
217
|
+
"constraint": {
|
|
218
|
+
"type": "number",
|
|
219
|
+
"enforceable": [
|
|
220
|
+
"max"
|
|
221
|
+
]
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
"requiredGates": [
|
|
227
|
+
"bounds",
|
|
228
|
+
"intent",
|
|
229
|
+
"commitment",
|
|
230
|
+
"decision_owner"
|
|
231
|
+
],
|
|
232
|
+
"ttl": {
|
|
233
|
+
"default": 86400,
|
|
234
|
+
"max": 31536000
|
|
235
|
+
},
|
|
236
|
+
"retention_minimum": 7776000,
|
|
237
|
+
"content_binding": {
|
|
238
|
+
"version": "2",
|
|
239
|
+
"kind": "jcs",
|
|
240
|
+
"fields": [
|
|
241
|
+
"to",
|
|
242
|
+
"cc",
|
|
243
|
+
"subject",
|
|
244
|
+
"body"
|
|
245
|
+
],
|
|
246
|
+
"required_fields": [
|
|
247
|
+
"to",
|
|
248
|
+
"body"
|
|
249
|
+
],
|
|
250
|
+
"appliesTo": [
|
|
251
|
+
"send"
|
|
252
|
+
]
|
|
253
|
+
}
|
|
254
|
+
}
|
package/profiles/index.json
CHANGED
|
@@ -23,6 +23,9 @@
|
|
|
23
23
|
"github.com/humanagencyprotocol/hap-profiles/deploy@0.9": "deploy/0.9.profile.json",
|
|
24
24
|
"github.com/humanagencyprotocol/hap-profiles/deploy@0.10": "deploy/0.10.profile.json",
|
|
25
25
|
"github.com/humanagencyprotocol/hap-profiles/charge@0.5": "charge/0.5.profile.json",
|
|
26
|
-
"github.com/humanagencyprotocol/hap-profiles/sales@0.1": "sales/0.1.profile.json"
|
|
26
|
+
"github.com/humanagencyprotocol/hap-profiles/sales@0.1": "sales/0.1.profile.json",
|
|
27
|
+
"github.com/humanagencyprotocol/hap-profiles/sales@0.2": "sales/0.2.profile.json",
|
|
28
|
+
"github.com/humanagencyprotocol/hap-profiles/customers@0.8": "customers/0.8.profile.json",
|
|
29
|
+
"github.com/humanagencyprotocol/hap-profiles/email@0.7": "email/0.7.profile.json"
|
|
27
30
|
}
|
|
28
31
|
}
|