@arcforges/operator-client 1.0.0-ci.218.1 → 1.0.0-ci.229.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/NOTICE CHANGED
@@ -1,10 +1,10 @@
1
1
  ArcForges Contracts
2
2
  Copyright 2026 ArcForges contributors
3
3
 
4
- @arcforges/operator-client 1.0.0-ci.218.1 (Apache-2.0)
4
+ @arcforges/operator-client 1.0.0-ci.229.1 (Apache-2.0)
5
5
 
6
6
  Resolved runtime dependency inventory (dependencies retain their own licences):
7
- - @arcforges/proto 1.0.0-ci.218.1: Apache-2.0 (pkg:npm/%40arcforges/proto@1.0.0-ci.218.1)
7
+ - @arcforges/proto 1.0.0-ci.229.1: Apache-2.0 (pkg:npm/%40arcforges/proto@1.0.0-ci.229.1)
8
8
  - @bufbuild/protobuf 2.15.0: (Apache-2.0 AND BSD-3-Clause) (pkg:npm/%40bufbuild/protobuf@2.15.0)
9
9
 
10
10
  Third-party dependencies are referenced, not vendored into this package. Installed dependencies supply their original licence and notice files.
@@ -13,8 +13,8 @@ ArcForges source provenance notices
13
13
 
14
14
  Generated from reviewed active records. Original licence files and dependency notices remain authoritative.
15
15
 
16
- contract-bindings-con05-r1
17
- Source: https://github.com/ArcForges/Contracts @ 74306e39a4eef26173fecbbab9173134b9831dba
16
+ contract-bindings-con06-r1
17
+ Source: https://github.com/ArcForges/Contracts @ 1e0b868f78b474dc1267917022786436f6b42bd7
18
18
  Material licence: Apache-2.0
19
19
  Notice scope: packages
20
20
  Copyright 2026 ArcForges contributors.
@@ -3,17 +3,17 @@
3
3
  "owner": "Contracts",
4
4
  "artifact": {
5
5
  "id": "@arcforges/operator-client",
6
- "version": "1.0.0-ci.218.1"
6
+ "version": "1.0.0-ci.229.1"
7
7
  },
8
8
  "build": {
9
- "sourceCommit": "89fd2c88e2845e83c8378bdf540f9bea634cb2bf",
9
+ "sourceCommit": "8dee63adc34615eedcaa68c4b1bee8dcae51de90",
10
10
  "dirty": false,
11
11
  "kind": "ci",
12
- "buildId": "36358766004.1",
13
- "runId": "36358766004",
12
+ "buildId": "36364239823.1",
13
+ "runId": "36364239823",
14
14
  "runAttempt": 1,
15
- "pipelineRun": "https://github.com/ArcForges/Contracts/actions/runs/36358766004",
16
- "sourceDateEpoch": 1790551661
15
+ "pipelineRun": "https://github.com/ArcForges/Contracts/actions/runs/36364239823",
16
+ "sourceDateEpoch": 1790557167
17
17
  },
18
18
  "axes": {
19
19
  "AppVersion": {
@@ -23,6 +23,15 @@
23
23
  "ContractSet": {
24
24
  "status": "present",
25
25
  "values": [
26
+ {
27
+ "subject": "arcforges.catalog",
28
+ "version": "1",
29
+ "source": {
30
+ "path": "public/proto/arcforges/catalog/v1/catalog.proto",
31
+ "sha256": "ff77d24be445e107d4fb4a0b3f7fd6b205664317e856a3696e471be1a18f0828"
32
+ },
33
+ "descriptorSha256": "d46e18f30942c8cd7c0be5ce580566646585b32d91750d6565c4cc415bde6ea2"
34
+ },
26
35
  {
27
36
  "subject": "arcforges.events",
28
37
  "version": "1",
@@ -30,7 +39,7 @@
30
39
  "path": "public/proto/arcforges/events/v1/events.proto",
31
40
  "sha256": "ea0ac740c06bbb5b81724b4a7e601110424cabc4940b07e579cf97d852880f43"
32
41
  },
33
- "descriptorSha256": "aebba9c503484422126f1afe66122e1cfb0481b66e2c54375da54e2e26650648"
42
+ "descriptorSha256": "d46e18f30942c8cd7c0be5ce580566646585b32d91750d6565c4cc415bde6ea2"
34
43
  },
35
44
  {
36
45
  "subject": "arcforges.foundation",
@@ -39,7 +48,7 @@
39
48
  "path": "public/proto/arcforges/foundation/v1/foundation.proto",
40
49
  "sha256": "adff62f65799bc5523965caf40f1f6bf11cbb4e2d769f46d9e3183a72a6d24d5"
41
50
  },
42
- "descriptorSha256": "aebba9c503484422126f1afe66122e1cfb0481b66e2c54375da54e2e26650648"
51
+ "descriptorSha256": "d46e18f30942c8cd7c0be5ce580566646585b32d91750d6565c4cc415bde6ea2"
43
52
  },
44
53
  {
45
54
  "subject": "arcforges.hello",
@@ -48,7 +57,7 @@
48
57
  "path": "public/proto/arcforges/hello/v1/hello.proto",
49
58
  "sha256": "92489f89d1898a3d3bbea56c72116416cd0152ae8866c98745739437020c67d9"
50
59
  },
51
- "descriptorSha256": "aebba9c503484422126f1afe66122e1cfb0481b66e2c54375da54e2e26650648"
60
+ "descriptorSha256": "d46e18f30942c8cd7c0be5ce580566646585b32d91750d6565c4cc415bde6ea2"
52
61
  },
53
62
  {
54
63
  "subject": "arcforges.operator",
@@ -57,12 +66,12 @@
57
66
  "path": "internal/proto/arcforges/operator/v1/operator.proto",
58
67
  "sha256": "30e9f7ef3124839417839a25f7be2a43a954947d688387cea4faff09ddcf66e8"
59
68
  },
60
- "descriptorSha256": "aebba9c503484422126f1afe66122e1cfb0481b66e2c54375da54e2e26650648"
69
+ "descriptorSha256": "d46e18f30942c8cd7c0be5ce580566646585b32d91750d6565c4cc415bde6ea2"
61
70
  },
62
71
  {
63
72
  "subject": "arcforges.publicapi",
64
73
  "version": "1",
65
- "descriptorSha256": "aebba9c503484422126f1afe66122e1cfb0481b66e2c54375da54e2e26650648",
74
+ "descriptorSha256": "d46e18f30942c8cd7c0be5ce580566646585b32d91750d6565c4cc415bde6ea2",
66
75
  "sources": [
67
76
  {
68
77
  "path": "public/proto/arcforges/publicapi/v1/content.proto",
@@ -71,6 +80,10 @@
71
80
  {
72
81
  "path": "public/proto/arcforges/publicapi/v1/descriptors.proto",
73
82
  "sha256": "d8a43c27fd345d55786a67ce9776efa0b4bc089f57361c3e532dd1b5f9326161"
83
+ },
84
+ {
85
+ "path": "public/proto/arcforges/publicapi/v1/inprocess-values.proto",
86
+ "sha256": "24921ae4f54f48800ea1201a9eee27a4e23a476b738cc3903665dff137a10eea"
74
87
  }
75
88
  ]
76
89
  }
@@ -109,10 +122,10 @@
109
122
  "values": [
110
123
  {
111
124
  "subject": "pkg:npm/%40arcforges/proto",
112
- "version": "1.0.0-ci.218.1",
125
+ "version": "1.0.0-ci.229.1",
113
126
  "source": {
114
127
  "path": "sbom.cdx.json#components",
115
- "sha256": "3aa0a49cc6586a08dd7ea210cd0eb238c839a0897ab341b52a86e477b2f9d9fa"
128
+ "sha256": "010d350f605cd4f6ef14142ff4aea23b94a7b670e848a511a34632b4f99422a6"
116
129
  }
117
130
  },
118
131
  {
@@ -120,7 +133,7 @@
120
133
  "version": "2.15.0",
121
134
  "source": {
122
135
  "path": "sbom.cdx.json#components",
123
- "sha256": "3aa0a49cc6586a08dd7ea210cd0eb238c839a0897ab341b52a86e477b2f9d9fa"
136
+ "sha256": "010d350f605cd4f6ef14142ff4aea23b94a7b670e848a511a34632b4f99422a6"
124
137
  }
125
138
  }
126
139
  ]
package/contracts.binpb CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcforges/operator-client",
3
- "version": "1.0.0-ci.218.1",
3
+ "version": "1.0.0-ci.229.1",
4
4
  "description": "Internal operator protobuf records; Operations-only import boundary.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -34,7 +34,7 @@
34
34
  "source.json"
35
35
  ],
36
36
  "dependencies": {
37
- "@arcforges/proto": "1.0.0-ci.218.1",
37
+ "@arcforges/proto": "1.0.0-ci.229.1",
38
38
  "@bufbuild/protobuf": "2.15.0"
39
39
  },
40
40
  "publishConfig": {
package/sbom.cdx.json CHANGED
@@ -5,10 +5,10 @@
5
5
  "metadata": {
6
6
  "component": {
7
7
  "type": "library",
8
- "bom-ref": "pkg:npm/%40arcforges/operator-client@1.0.0-ci.218.1",
8
+ "bom-ref": "pkg:npm/%40arcforges/operator-client@1.0.0-ci.229.1",
9
9
  "name": "@arcforges/operator-client",
10
- "version": "1.0.0-ci.218.1",
11
- "purl": "pkg:npm/%40arcforges/operator-client@1.0.0-ci.218.1",
10
+ "version": "1.0.0-ci.229.1",
11
+ "purl": "pkg:npm/%40arcforges/operator-client@1.0.0-ci.229.1",
12
12
  "licenses": [
13
13
  {
14
14
  "expression": "Apache-2.0"
@@ -19,10 +19,10 @@
19
19
  "components": [
20
20
  {
21
21
  "type": "library",
22
- "bom-ref": "pkg:npm/%40arcforges/proto@1.0.0-ci.218.1",
22
+ "bom-ref": "pkg:npm/%40arcforges/proto@1.0.0-ci.229.1",
23
23
  "name": "@arcforges/proto",
24
- "version": "1.0.0-ci.218.1",
25
- "purl": "pkg:npm/%40arcforges/proto@1.0.0-ci.218.1",
24
+ "version": "1.0.0-ci.229.1",
25
+ "purl": "pkg:npm/%40arcforges/proto@1.0.0-ci.229.1",
26
26
  "licenses": [
27
27
  {
28
28
  "expression": "Apache-2.0"
@@ -48,15 +48,15 @@
48
48
  "dependsOn": []
49
49
  },
50
50
  {
51
- "ref": "pkg:npm/%40arcforges/proto@1.0.0-ci.218.1",
51
+ "ref": "pkg:npm/%40arcforges/proto@1.0.0-ci.229.1",
52
52
  "dependsOn": [
53
53
  "pkg:npm/%40bufbuild/protobuf@2.15.0"
54
54
  ]
55
55
  },
56
56
  {
57
- "ref": "pkg:npm/%40arcforges/operator-client@1.0.0-ci.218.1",
57
+ "ref": "pkg:npm/%40arcforges/operator-client@1.0.0-ci.229.1",
58
58
  "dependsOn": [
59
- "pkg:npm/%40arcforges/proto@1.0.0-ci.218.1",
59
+ "pkg:npm/%40arcforges/proto@1.0.0-ci.229.1",
60
60
  "pkg:npm/%40bufbuild/protobuf@2.15.0"
61
61
  ]
62
62
  }
@@ -0,0 +1,204 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ syntax = "proto3";
3
+ package arcforges.catalog.v1;
4
+ option csharp_namespace = "ArcForges.Contracts.Catalog.V1";
5
+ option java_package = "io.github.arcforges.contracts.catalog.v1";
6
+ option java_multiple_files = true;
7
+ option java_outer_classname = "CatalogProto";
8
+ import "arcforges/foundation/v1/foundation.proto";
9
+
10
+ // Registry04 package catalog. Operator reviews and revocations are a separate service.
11
+ service CatalogService {
12
+ rpc Search(CatalogServiceSearchRequest) returns (CatalogServiceSearchResponse);
13
+ rpc GetPackage(CatalogServiceGetPackageRequest) returns (CatalogServiceGetPackageResponse);
14
+ rpc ListVersions(CatalogServiceListVersionsRequest) returns (CatalogServiceListVersionsResponse);
15
+ rpc RegisterPublisher(CatalogServiceRegisterPublisherRequest) returns (CatalogServiceRegisterPublisherResponse);
16
+ rpc VerifyPublisher(CatalogServiceVerifyPublisherRequest) returns (CatalogServiceVerifyPublisherResponse);
17
+ rpc SubmitVersion(CatalogServiceSubmitVersionRequest) returns (CatalogServiceSubmitVersionResponse);
18
+ rpc GetSubmission(CatalogServiceGetSubmissionRequest) returns (CatalogServiceGetSubmissionResponse);
19
+ }
20
+
21
+ // Only owner projections may include the challenge. DNS and ownership checks are server responsibilities.
22
+ message PublisherView {
23
+ arcforges.foundation.v1.Id publisher_id = 1 [json_name = "publisherId"];
24
+ optional string domain = 2 [json_name = "domain"];
25
+ optional string state = 3 [json_name = "state"];
26
+ optional string dns_name = 4 [json_name = "dnsName"];
27
+ optional string challenge = 5 [json_name = "challenge"];
28
+ arcforges.foundation.v1.Instant expires_at = 6 [json_name = "expiresAt"];
29
+ arcforges.foundation.v1.Revision revision = 7 [json_name = "revision"];
30
+ }
31
+ message CatalogPackageView {
32
+ optional string package_id = 1 [json_name = "packageId"];
33
+ arcforges.foundation.v1.Id publisher_id = 2 [json_name = "publisherId"];
34
+ optional string name = 3 [json_name = "name"];
35
+ optional string summary = 4 [json_name = "summary"];
36
+ optional string kind = 5 [json_name = "kind"];
37
+ optional string latest_version = 6 [json_name = "latestVersion"];
38
+ arcforges.foundation.v1.Revision revision = 7 [json_name = "revision"];
39
+ }
40
+ message CatalogVersionView {
41
+ optional string package_id = 1 [json_name = "packageId"];
42
+ optional string version = 2 [json_name = "version"];
43
+ arcforges.foundation.v1.ResourceVersionRef archive = 3 [json_name = "archive"];
44
+ optional string digest = 4 [json_name = "digest"];
45
+ optional string manifest_hash = 5 [json_name = "manifestHash"];
46
+ optional string state = 6 [json_name = "state"];
47
+ arcforges.foundation.v1.Instant published_at = 7 [json_name = "publishedAt"];
48
+ arcforges.foundation.v1.Revision revision = 8 [json_name = "revision"];
49
+ }
50
+ message CatalogSubmissionView {
51
+ arcforges.foundation.v1.Id submission_id = 1 [json_name = "submissionId"];
52
+ CatalogVersionView version = 2 [json_name = "version"];
53
+ optional string reason = 3 [json_name = "reason"];
54
+ arcforges.foundation.v1.Revision revision = 4 [json_name = "revision"];
55
+ }
56
+ // Operator-only decisions; zero is never a known mutation value.
57
+ enum CatalogReviewDecision {
58
+ CATALOG_REVIEW_DECISION_UNSPECIFIED = 0;
59
+ CATALOG_REVIEW_DECISION_APPROVE = 1;
60
+ CATALOG_REVIEW_DECISION_REJECT = 2;
61
+ }
62
+ message CatalogServiceSearchRequest {
63
+ arcforges.foundation.v1.RequestMeta meta = 1;
64
+ reserved 2 to 9;
65
+ optional string query = 10;
66
+ optional string kind = 11;
67
+ arcforges.foundation.v1.PageRequest page = 12;
68
+ }
69
+ message CatalogServiceSearchValue {
70
+ repeated CatalogPackageView items = 10;
71
+ arcforges.foundation.v1.PageState page = 11;
72
+ }
73
+ message CatalogServiceSearchResponse {
74
+ arcforges.foundation.v1.ResponseMeta meta = 1;
75
+ oneof outcome {
76
+ CatalogServiceSearchValue value = 2;
77
+ arcforges.foundation.v1.ArcError error = 3;
78
+ arcforges.foundation.v1.EncodedBodyRef encoded_body = 4 [json_name = "encodedBody"];
79
+ }
80
+
81
+ reserved 5 to 9;
82
+ }
83
+
84
+ message CatalogServiceGetPackageRequest {
85
+ arcforges.foundation.v1.RequestMeta meta = 1;
86
+ reserved 2 to 9;
87
+ optional string package_id = 10 [json_name = "packageId"];
88
+ }
89
+ message CatalogServiceGetPackageValue {
90
+ CatalogPackageView package = 10;
91
+ }
92
+ message CatalogServiceGetPackageResponse {
93
+ arcforges.foundation.v1.ResponseMeta meta = 1;
94
+ oneof outcome {
95
+ CatalogServiceGetPackageValue value = 2;
96
+ arcforges.foundation.v1.ArcError error = 3;
97
+ arcforges.foundation.v1.EncodedBodyRef encoded_body = 4 [json_name = "encodedBody"];
98
+ }
99
+
100
+ reserved 5 to 9;
101
+ }
102
+
103
+ message CatalogServiceListVersionsRequest {
104
+ arcforges.foundation.v1.RequestMeta meta = 1;
105
+ reserved 2 to 9;
106
+ optional string package_id = 10 [json_name = "packageId"];
107
+ arcforges.foundation.v1.PageRequest page = 11;
108
+ }
109
+ message CatalogServiceListVersionsValue {
110
+ repeated CatalogVersionView items = 10;
111
+ arcforges.foundation.v1.PageState page = 11;
112
+ }
113
+ message CatalogServiceListVersionsResponse {
114
+ arcforges.foundation.v1.ResponseMeta meta = 1;
115
+ oneof outcome {
116
+ CatalogServiceListVersionsValue value = 2;
117
+ arcforges.foundation.v1.ArcError error = 3;
118
+ arcforges.foundation.v1.EncodedBodyRef encoded_body = 4 [json_name = "encodedBody"];
119
+ }
120
+
121
+ reserved 5 to 9;
122
+ }
123
+
124
+ message CatalogServiceRegisterPublisherRequest {
125
+ arcforges.foundation.v1.RequestMeta meta = 1;
126
+ reserved 2 to 9;
127
+ arcforges.foundation.v1.Id publisher_id = 10 [json_name = "publisherId"];
128
+ optional string domain = 11;
129
+ }
130
+ message CatalogServiceRegisterPublisherValue {
131
+ PublisherView publisher = 10;
132
+ }
133
+ message CatalogServiceRegisterPublisherResponse {
134
+ arcforges.foundation.v1.ResponseMeta meta = 1;
135
+ oneof outcome {
136
+ CatalogServiceRegisterPublisherValue value = 2;
137
+ arcforges.foundation.v1.ArcError error = 3;
138
+
139
+ }
140
+ reserved 4;
141
+ reserved 5 to 9;
142
+ }
143
+
144
+ message CatalogServiceVerifyPublisherRequest {
145
+ arcforges.foundation.v1.RequestMeta meta = 1;
146
+ reserved 2 to 9;
147
+ arcforges.foundation.v1.Id publisher_id = 10 [json_name = "publisherId"];
148
+ }
149
+ message CatalogServiceVerifyPublisherValue {
150
+ PublisherView publisher = 10;
151
+ }
152
+ message CatalogServiceVerifyPublisherResponse {
153
+ arcforges.foundation.v1.ResponseMeta meta = 1;
154
+ oneof outcome {
155
+ CatalogServiceVerifyPublisherValue value = 2;
156
+ arcforges.foundation.v1.ArcError error = 3;
157
+
158
+ }
159
+ reserved 4;
160
+ reserved 5 to 9;
161
+ }
162
+
163
+ message CatalogServiceSubmitVersionRequest {
164
+ arcforges.foundation.v1.RequestMeta meta = 1;
165
+ reserved 2 to 9;
166
+ arcforges.foundation.v1.Id submission_id = 10 [json_name = "submissionId"];
167
+ arcforges.foundation.v1.Id publisher_id = 11 [json_name = "publisherId"];
168
+ optional string package_id = 12 [json_name = "packageId"];
169
+ optional string version = 13;
170
+ arcforges.foundation.v1.ResourceVersionRef archive = 14;
171
+ optional string manifest_hash = 15 [json_name = "manifestHash"];
172
+ }
173
+ message CatalogServiceSubmitVersionValue {
174
+ CatalogSubmissionView submission = 10;
175
+ }
176
+ message CatalogServiceSubmitVersionResponse {
177
+ arcforges.foundation.v1.ResponseMeta meta = 1;
178
+ oneof outcome {
179
+ CatalogServiceSubmitVersionValue value = 2;
180
+ arcforges.foundation.v1.ArcError error = 3;
181
+
182
+ }
183
+ reserved 4;
184
+ reserved 5 to 9;
185
+ }
186
+
187
+ message CatalogServiceGetSubmissionRequest {
188
+ arcforges.foundation.v1.RequestMeta meta = 1;
189
+ reserved 2 to 9;
190
+ arcforges.foundation.v1.Id submission_id = 10 [json_name = "submissionId"];
191
+ }
192
+ message CatalogServiceGetSubmissionValue {
193
+ CatalogSubmissionView submission = 10;
194
+ }
195
+ message CatalogServiceGetSubmissionResponse {
196
+ arcforges.foundation.v1.ResponseMeta meta = 1;
197
+ oneof outcome {
198
+ CatalogServiceGetSubmissionValue value = 2;
199
+ arcforges.foundation.v1.ArcError error = 3;
200
+ arcforges.foundation.v1.EncodedBodyRef encoded_body = 4 [json_name = "encodedBody"];
201
+ }
202
+
203
+ reserved 5 to 9;
204
+ }
@@ -0,0 +1,134 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ syntax = "proto3";
3
+
4
+ package arcforges.publicapi.v1;
5
+
6
+ import "arcforges/foundation/v1/foundation.proto";
7
+ import "arcforges/publicapi/v1/content.proto";
8
+
9
+ option csharp_namespace = "ArcForges.Contracts.PublicApi.V1";
10
+ option java_package = "io.github.arcforges.contracts.publicapi.v1";
11
+ option java_multiple_files = true;
12
+ option java_outer_classname = "InprocessValuesProto";
13
+
14
+ // Canonical shared values from registry04. These records register no service,
15
+ // authorize no access, and do not substitute for the owner's permission checks.
16
+ enum ChatMode {
17
+ CHAT_MODE_UNSPECIFIED = 0;
18
+ CHAT_MODE_ORDINARY = 1;
19
+ CHAT_MODE_AGENT = 2;
20
+ CHAT_MODE_TEMPORARY = 3;
21
+ }
22
+
23
+ enum ApprovalDecision {
24
+ APPROVAL_DECISION_UNSPECIFIED = 0;
25
+ APPROVAL_DECISION_APPROVE = 1;
26
+ APPROVAL_DECISION_REJECT = 2;
27
+ }
28
+
29
+ message ContextRequest {
30
+ optional string kind = 1 [json_name = "kind"];
31
+ ContextRef selector = 2 [json_name = "selector"];
32
+ // Callers select defaults 50/65536; explicit budgets may only narrow caps.
33
+ optional uint32 max_items = 3 [json_name = "maxItems"];
34
+ optional uint32 max_bytes = 4 [json_name = "maxBytes"];
35
+ }
36
+
37
+ message ContextContribution {
38
+ repeated ContextRef sources = 1 [json_name = "sources"];
39
+ repeated ContextItem items = 2 [json_name = "items"];
40
+ optional bool truncated = 3 [json_name = "truncated"];
41
+ repeated string reasons = 4 [json_name = "reasons"];
42
+ }
43
+
44
+ message ContextItem {
45
+ ContextRef source = 1 [json_name = "source"];
46
+ oneof projection {
47
+ string text = 2 [json_name = "text"];
48
+ MeasurementResult measurement = 3 [json_name = "measurement"];
49
+ }
50
+ reserved 4;
51
+ reserved "timeline";
52
+ }
53
+
54
+ // Availability is preflight evidence, never a reservation or authorization token.
55
+ message Availability {
56
+ optional string capability = 1 [json_name = "capability"];
57
+ optional bool allowed = 2 [json_name = "allowed"];
58
+ repeated string reasons = 3 [json_name = "reasons"];
59
+ arcforges.foundation.v1.Instant recovery_at = 4 [json_name = "recoveryAt"];
60
+ }
61
+
62
+ message PreviewRequest {
63
+ optional uint32 max_width = 1 [json_name = "maxWidth"];
64
+ optional uint32 max_height = 2 [json_name = "maxHeight"];
65
+ optional uint32 page = 3 [json_name = "page"];
66
+ }
67
+
68
+ message ResourceMetadata {
69
+ arcforges.foundation.v1.ResourceRef resource = 1 [json_name = "resource"];
70
+ arcforges.foundation.v1.ResourceVersionRef version = 2 [json_name = "version"];
71
+ arcforges.foundation.v1.BlobRef blob = 3 [json_name = "blob"];
72
+ optional string media_type = 4 [json_name = "mediaType"];
73
+ optional string transfer_state = 5 [json_name = "transferState"];
74
+ arcforges.foundation.v1.ContentOrigin origin = 6 [json_name = "origin"];
75
+ }
76
+
77
+ message ApprovalView {
78
+ arcforges.foundation.v1.Id approval_id = 1 [json_name = "approvalId"];
79
+ arcforges.foundation.v1.Id task_id = 2 [json_name = "taskId"];
80
+ optional string proposal_hash = 3 [json_name = "proposalHash"];
81
+ optional string risk = 4 [json_name = "risk"];
82
+ optional string state = 5 [json_name = "state"];
83
+ arcforges.foundation.v1.Instant expires_at = 6 [json_name = "expiresAt"];
84
+ repeated ContextRef context = 7 [json_name = "context"];
85
+ }
86
+
87
+ message TurnOptions {
88
+ arcforges.foundation.v1.Id task_id = 1 [json_name = "taskId"];
89
+ arcforges.foundation.v1.Id profile_id = 2 [json_name = "profileId"];
90
+ optional uint64 max_budget = 3 [json_name = "maxBudget"];
91
+ optional ChatMode mode = 4 [json_name = "mode"];
92
+ arcforges.foundation.v1.Id turn_id = 5 [json_name = "turnId"];
93
+ optional string model_id = 6 [json_name = "modelId"];
94
+ arcforges.foundation.v1.Id target_device_id = 7 [json_name = "targetDeviceId"];
95
+ optional bool allow_web_search = 8 [json_name = "allowWebSearch"];
96
+ optional bool compaction_requested = 9 [json_name = "compactionRequested"];
97
+ }
98
+
99
+ // These permissions are independent; synchronization consent remains separate.
100
+ message KnowledgePolicy {
101
+ optional bool searchable = 1 [json_name = "searchable"];
102
+ optional bool cloud_index_allowed = 2 [json_name = "cloudIndexAllowed"];
103
+ optional bool ai_retrieval_allowed = 3 [json_name = "aiRetrievalAllowed"];
104
+ optional bool managed_ai_processing_allowed = 4 [json_name = "managedAiProcessingAllowed"];
105
+ }
106
+
107
+ // Absence inherits. Explicit false is a real policy selection, not absence.
108
+ message KnowledgePolicyPatch {
109
+ optional bool searchable = 1 [json_name = "searchable"];
110
+ optional bool cloud_index_allowed = 2 [json_name = "cloudIndexAllowed"];
111
+ optional bool ai_retrieval_allowed = 3 [json_name = "aiRetrievalAllowed"];
112
+ optional bool managed_ai_processing_allowed = 4 [json_name = "managedAiProcessingAllowed"];
113
+ }
114
+
115
+ message SourcePolicyView {
116
+ arcforges.foundation.v1.AggregateRef target = 1 [json_name = "target"];
117
+ arcforges.foundation.v1.Revision revision = 2 [json_name = "revision"];
118
+ KnowledgePolicyPatch local = 3 [json_name = "local"];
119
+ KnowledgePolicy effective = 4 [json_name = "effective"];
120
+ repeated string governing_denials = 5 [json_name = "governingDenials"];
121
+ arcforges.foundation.v1.AggregateRef inherited_from = 6 [json_name = "inheritedFrom"];
122
+ }
123
+
124
+ // A shape-valid selection still needs owner authorization, exact scope hashing,
125
+ // expiry and one-use validation. Temporary overrides cannot enroll an index.
126
+ message SourceConsentSpec {
127
+ arcforges.foundation.v1.Id operation_id = 1 [json_name = "operationId"];
128
+ optional string purpose = 2 [json_name = "purpose"];
129
+ repeated arcforges.foundation.v1.VersionedRef sources = 3 [json_name = "sources"];
130
+ optional uint64 max_bytes = 4 [json_name = "maxBytes"];
131
+ arcforges.foundation.v1.Revision policy_revision = 5 [json_name = "policyRevision"];
132
+ KnowledgePolicyPatch override = 6 [json_name = "override"];
133
+ optional string query_hash = 7 [json_name = "queryHash"];
134
+ }
package/source.json CHANGED
@@ -1,18 +1,20 @@
1
1
  {
2
2
  "repository": "https://github.com/ArcForges/Contracts",
3
- "commit": "89fd2c88e2845e83c8378bdf540f9bea634cb2bf",
3
+ "commit": "8dee63adc34615eedcaa68c4b1bee8dcae51de90",
4
4
  "dirty": false,
5
- "version": "1.0.0-ci.218.1",
5
+ "version": "1.0.0-ci.229.1",
6
6
  "contractAccess": "internal",
7
7
  "schemaSources": {
8
8
  "internal/proto/arcforges/operator/v1/operator.proto": "30e9f7ef3124839417839a25f7be2a43a954947d688387cea4faff09ddcf66e8",
9
+ "public/proto/arcforges/catalog/v1/catalog.proto": "ff77d24be445e107d4fb4a0b3f7fd6b205664317e856a3696e471be1a18f0828",
9
10
  "public/proto/arcforges/events/v1/events.proto": "ea0ac740c06bbb5b81724b4a7e601110424cabc4940b07e579cf97d852880f43",
10
11
  "public/proto/arcforges/foundation/v1/foundation.proto": "adff62f65799bc5523965caf40f1f6bf11cbb4e2d769f46d9e3183a72a6d24d5",
11
12
  "public/proto/arcforges/hello/v1/hello.proto": "92489f89d1898a3d3bbea56c72116416cd0152ae8866c98745739437020c67d9",
12
13
  "public/proto/arcforges/publicapi/v1/content.proto": "15acce6e5618843a24115f8e5ddf64aba5e4fb60ca55dcb926a1900dc46d078f",
13
- "public/proto/arcforges/publicapi/v1/descriptors.proto": "d8a43c27fd345d55786a67ce9776efa0b4bc089f57361c3e532dd1b5f9326161"
14
+ "public/proto/arcforges/publicapi/v1/descriptors.proto": "d8a43c27fd345d55786a67ce9776efa0b4bc089f57361c3e532dd1b5f9326161",
15
+ "public/proto/arcforges/publicapi/v1/inprocess-values.proto": "24921ae4f54f48800ea1201a9eee27a4e23a476b738cc3903665dff137a10eea"
14
16
  },
15
- "descriptorSha256": "aebba9c503484422126f1afe66122e1cfb0481b66e2c54375da54e2e26650648",
17
+ "descriptorSha256": "d46e18f30942c8cd7c0be5ce580566646585b32d91750d6565c4cc415bde6ea2",
16
18
  "dependencyLocks": {
17
19
  "package-lock.json": "3e536db25743ceb5a021559dbc1f31d57112211c62d94f84df34daca5382709c",
18
20
  "src/public/dotnet/ArcForges.Contracts.Foundation/packages.lock.json": "fa17fe6057706e36ae0b9370a457536d05d0f3a8f0f72df622881bfc1628337e",
@@ -22,10 +24,10 @@
22
24
  "src/public/dotnet/ArcForges.Contracts.Validation/packages.lock.json": "0c7b05824fdd61702898b2d3c3297d40f19fde0a10ffcc9851920620c4168296",
23
25
  "src/public/dotnet/ArcForges.Sdk.Client/packages.lock.json": "4a90644c21c833eda8fa5d74e2e850860a34605c026f3983114149f162a4e38a",
24
26
  "src/public/dotnet/ArcForges.Cli/packages.lock.json": "b82fce1d2e52e143a0c83b6807b7207a720dd70479ff61fa95f9325bbfbbc3f3",
25
- "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Platform/packages.lock.json": "950f637a1c8b5152e0fdabff441cb2a8802ac50ae8aae0b97a89b4fa1e633b29",
27
+ "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Platform/packages.lock.json": "4af9f61c399adec188a1e1717c4ba13b2291d4039af5a374d99832cfd9228586",
26
28
  "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Sandbox/packages.lock.json": "950f637a1c8b5152e0fdabff441cb2a8802ac50ae8aae0b97a89b4fa1e633b29",
27
- "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Chat/packages.lock.json": "bfc4981894f94a4ee6f2518f6e1f5997d7d20e17749125c5711794cd2ee10d94",
28
- "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Scope/packages.lock.json": "bfc4981894f94a4ee6f2518f6e1f5997d7d20e17749125c5711794cd2ee10d94",
29
+ "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Chat/packages.lock.json": "2ffa6c7fb3cf873b86775fa67fcce30516bed510d126113933bfef7fbed3e052",
30
+ "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Scope/packages.lock.json": "2ffa6c7fb3cf873b86775fa67fcce30516bed510d126113933bfef7fbed3e052",
29
31
  "src/internal/dotnet/ArcForges.Contracts.CloudInternal/packages.lock.json": "bfc4981894f94a4ee6f2518f6e1f5997d7d20e17749125c5711794cd2ee10d94",
30
32
  "gradle.lockfile": "b176c43fe3fdb8fc99e36c8ccafc6dd1c07c2a2c0c0e9e5cbb3a328b70d128df",
31
33
  "src/public/kotlin/contract-fixtures/gradle.lockfile": "14dc5803d23ab183aa24b2849ee51541e52e4d26fbada80e19082d15e0b1c654",