@arcforges/operator-client 1.0.0-ci.267.1 → 1.0.0-ci.277.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.267.1 (Apache-2.0)
4
+ @arcforges/operator-client 1.0.0-ci.277.1 (Apache-2.0)
5
5
 
6
6
  Resolved runtime dependency inventory (dependencies retain their own licences):
7
- - @arcforges/proto 1.0.0-ci.267.1: Apache-2.0 (pkg:npm/%40arcforges/proto@1.0.0-ci.267.1)
7
+ - @arcforges/proto 1.0.0-ci.277.1: Apache-2.0 (pkg:npm/%40arcforges/proto@1.0.0-ci.277.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-con-24-r1
17
- Source: https://github.com/ArcForges/Contracts @ d29ca2156f33d18052bb448ecc86661d96f30610
16
+ contract-bindings-con-11-r1
17
+ Source: https://github.com/ArcForges/Contracts @ fdf7ff7fc0a91f7c767ab269c1141144776ed310
18
18
  Material licence: Apache-2.0
19
19
  Notice scope: packages
20
20
  Copyright 2026 ArcForges contributors.
@@ -22,7 +22,7 @@ Copyright 2008 Google Inc. All rights reserved.
22
22
  Copyright 2015, 2019, 2020 gRPC authors.
23
23
  Copyright 2021-2026 Buf Technologies, Inc.
24
24
  Copyright 2022-2026 The Connect Authors.
25
- Generated Contracts source remains Apache-2.0. CON.24 adds only the authorized read-only ScopeService contract schemas, generated bindings, and declarative constraint/fixture evidence; it adds no third-party package or scope mutation.
25
+ Generated Contracts source remains Apache-2.0. CON.11 adds only the authorized public Application, History, Execution and Events RPC contracts, Registry04 payload hints, private RunStream projection and generated C#, TypeScript, Kotlin and existing internal shape-validation bindings; it adds no runtime authorization or handler behavior and no new generator or third-party package.
26
26
 
27
27
  protobuf-generator-licence-r1
28
28
  Source: https://github.com/protocolbuffers/protobuf @ 35cd01f9fe9afbeea38cc7b979a3b6bfcde82c03
@@ -3,17 +3,17 @@
3
3
  "owner": "Contracts",
4
4
  "artifact": {
5
5
  "id": "@arcforges/operator-client",
6
- "version": "1.0.0-ci.267.1"
6
+ "version": "1.0.0-ci.277.1"
7
7
  },
8
8
  "build": {
9
- "sourceCommit": "f82af853bdce1eb5cbbedc510905a27fc5ed8dea",
9
+ "sourceCommit": "3773d57bfba2745ece4edf5638b542a63d624ad1",
10
10
  "dirty": false,
11
11
  "kind": "ci",
12
- "buildId": "36765504658.1",
13
- "runId": "36765504658",
12
+ "buildId": "36911182117.1",
13
+ "runId": "36911182117",
14
14
  "runAttempt": 1,
15
- "pipelineRun": "https://github.com/ArcForges/Contracts/actions/runs/36765504658",
16
- "sourceDateEpoch": 1790796294
15
+ "pipelineRun": "https://github.com/ArcForges/Contracts/actions/runs/36911182117",
16
+ "sourceDateEpoch": 1790881265
17
17
  },
18
18
  "axes": {
19
19
  "AppVersion": {
@@ -30,16 +30,16 @@
30
30
  "path": "public/proto/arcforges/catalog/v1/catalog.proto",
31
31
  "sha256": "ff77d24be445e107d4fb4a0b3f7fd6b205664317e856a3696e471be1a18f0828"
32
32
  },
33
- "descriptorSha256": "9ff4327c48a3762392e13ad2dd42dbdfed81fbbbb6b8a0dc5e8ae1f2d7c76cb9"
33
+ "descriptorSha256": "75303e46c1966d167885495f03aba2a453fa02aea7b5fb860c3e645914582bed"
34
34
  },
35
35
  {
36
36
  "subject": "arcforges.events",
37
37
  "version": "1",
38
38
  "source": {
39
39
  "path": "public/proto/arcforges/events/v1/events.proto",
40
- "sha256": "ea0ac740c06bbb5b81724b4a7e601110424cabc4940b07e579cf97d852880f43"
40
+ "sha256": "33953eb0fa0ade48154efee887abae991d8eb697542516091164b7601e95d25e"
41
41
  },
42
- "descriptorSha256": "9ff4327c48a3762392e13ad2dd42dbdfed81fbbbb6b8a0dc5e8ae1f2d7c76cb9"
42
+ "descriptorSha256": "75303e46c1966d167885495f03aba2a453fa02aea7b5fb860c3e645914582bed"
43
43
  },
44
44
  {
45
45
  "subject": "arcforges.foundation",
@@ -48,7 +48,7 @@
48
48
  "path": "public/proto/arcforges/foundation/v1/foundation.proto",
49
49
  "sha256": "e7e634103664dcca4c63383dd0eda5d90b408edb4786bfdf4a148856fed92736"
50
50
  },
51
- "descriptorSha256": "9ff4327c48a3762392e13ad2dd42dbdfed81fbbbb6b8a0dc5e8ae1f2d7c76cb9"
51
+ "descriptorSha256": "75303e46c1966d167885495f03aba2a453fa02aea7b5fb860c3e645914582bed"
52
52
  },
53
53
  {
54
54
  "subject": "arcforges.hello",
@@ -57,7 +57,7 @@
57
57
  "path": "public/proto/arcforges/hello/v1/hello.proto",
58
58
  "sha256": "92489f89d1898a3d3bbea56c72116416cd0152ae8866c98745739437020c67d9"
59
59
  },
60
- "descriptorSha256": "9ff4327c48a3762392e13ad2dd42dbdfed81fbbbb6b8a0dc5e8ae1f2d7c76cb9"
60
+ "descriptorSha256": "75303e46c1966d167885495f03aba2a453fa02aea7b5fb860c3e645914582bed"
61
61
  },
62
62
  {
63
63
  "subject": "arcforges.operator",
@@ -66,13 +66,17 @@
66
66
  "path": "internal/proto/arcforges/operator/v1/operator.proto",
67
67
  "sha256": "30e9f7ef3124839417839a25f7be2a43a954947d688387cea4faff09ddcf66e8"
68
68
  },
69
- "descriptorSha256": "9ff4327c48a3762392e13ad2dd42dbdfed81fbbbb6b8a0dc5e8ae1f2d7c76cb9"
69
+ "descriptorSha256": "75303e46c1966d167885495f03aba2a453fa02aea7b5fb860c3e645914582bed"
70
70
  },
71
71
  {
72
72
  "subject": "arcforges.publicapi",
73
73
  "version": "1",
74
- "descriptorSha256": "9ff4327c48a3762392e13ad2dd42dbdfed81fbbbb6b8a0dc5e8ae1f2d7c76cb9",
74
+ "descriptorSha256": "75303e46c1966d167885495f03aba2a453fa02aea7b5fb860c3e645914582bed",
75
75
  "sources": [
76
+ {
77
+ "path": "public/proto/arcforges/publicapi/v1/application.proto",
78
+ "sha256": "a75077033ccc4876460606b35bfd06929b83ee57111637367bef92cbc1a28710"
79
+ },
76
80
  {
77
81
  "path": "public/proto/arcforges/publicapi/v1/chat.proto",
78
82
  "sha256": "b878ad06144a626e426e78addb76ca7fceb3c36d6a99f087f918fad1968e109a"
@@ -122,7 +126,7 @@
122
126
  "path": "public/proto/arcforges/simulation/v1/simulation.proto",
123
127
  "sha256": "6be3a09a0ae9f2f28f2cfec9c5a762d0b1d11519336109fd842b14537e53faf7"
124
128
  },
125
- "descriptorSha256": "9ff4327c48a3762392e13ad2dd42dbdfed81fbbbb6b8a0dc5e8ae1f2d7c76cb9"
129
+ "descriptorSha256": "75303e46c1966d167885495f03aba2a453fa02aea7b5fb860c3e645914582bed"
126
130
  }
127
131
  ]
128
132
  },
@@ -159,10 +163,10 @@
159
163
  "values": [
160
164
  {
161
165
  "subject": "pkg:npm/%40arcforges/proto",
162
- "version": "1.0.0-ci.267.1",
166
+ "version": "1.0.0-ci.277.1",
163
167
  "source": {
164
168
  "path": "sbom.cdx.json#components",
165
- "sha256": "7a588e7df9ab1e87ceafb80a9e3339aabb6530be1a3cce90870b5b43a8edd1ba"
169
+ "sha256": "fdce46549b0a9eb98cde404986aeee910a48d56d4bba799f7bd5c15019cce4b8"
166
170
  }
167
171
  },
168
172
  {
@@ -170,7 +174,7 @@
170
174
  "version": "2.15.0",
171
175
  "source": {
172
176
  "path": "sbom.cdx.json#components",
173
- "sha256": "7a588e7df9ab1e87ceafb80a9e3339aabb6530be1a3cce90870b5b43a8edd1ba"
177
+ "sha256": "fdce46549b0a9eb98cde404986aeee910a48d56d4bba799f7bd5c15019cce4b8"
174
178
  }
175
179
  }
176
180
  ]
package/contracts.binpb CHANGED
Binary file
@@ -1,2 +1,4 @@
1
+ export declare function isRunStreamRequest(input: unknown): boolean;
1
2
  export declare function isId(input: unknown): boolean;
2
3
  export declare function isOperatorCallContext(input: unknown): boolean;
4
+ export declare function isExecutionOwner(input: unknown): boolean;
@@ -1,6 +1,44 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  // <auto-generated />
3
3
  // Generated by eng/generate_shapes.py; do not edit.
4
+ export function isRunStreamRequest(input) { return checkRunStreamRequest(input, { active: new Set(), depth: 0 }); }
5
+ function checkRunStreamRequest(input, context) {
6
+ if (typeof input !== 'object' || input === null || Array.isArray(input) || context.depth >= 100 || context.active.has(input))
7
+ return false;
8
+ context.active.add(input);
9
+ context.depth++;
10
+ try {
11
+ const value = input;
12
+ if (value.execution === undefined)
13
+ return false;
14
+ if (value.execution !== undefined) {
15
+ const fieldValue = value.execution;
16
+ if (!checkExecutionOwner(fieldValue, context))
17
+ return false;
18
+ }
19
+ if (value.attemptId === undefined)
20
+ return false;
21
+ if (value.attemptId !== undefined) {
22
+ const fieldValue = value.attemptId;
23
+ if (!checkId(fieldValue, context))
24
+ return false;
25
+ }
26
+ if (value.generation === undefined)
27
+ return false;
28
+ if (value.generation !== undefined) {
29
+ const fieldValue = value.generation;
30
+ if (typeof fieldValue !== "bigint")
31
+ return false;
32
+ if (fieldValue < 0n || fieldValue > 18446744073709551615n)
33
+ return false;
34
+ }
35
+ return true;
36
+ }
37
+ finally {
38
+ context.depth--;
39
+ context.active.delete(input);
40
+ }
41
+ }
4
42
  export function isId(input) { return checkId(input, { active: new Set(), depth: 0 }); }
5
43
  function checkId(input, context) {
6
44
  if (typeof input !== 'object' || input === null || Array.isArray(input) || context.depth >= 100 || context.active.has(input))
@@ -69,6 +107,35 @@ function checkOperatorCallContext(input, context) {
69
107
  context.active.delete(input);
70
108
  }
71
109
  }
110
+ export function isExecutionOwner(input) { return checkExecutionOwner(input, { active: new Set(), depth: 0 }); }
111
+ function checkExecutionOwner(input, context) {
112
+ if (typeof input !== 'object' || input === null || Array.isArray(input) || context.depth >= 100 || context.active.has(input))
113
+ return false;
114
+ context.active.add(input);
115
+ context.depth++;
116
+ try {
117
+ const value = input;
118
+ if (value.owner?.case === "taskId") {
119
+ const fieldValue = value.owner.value;
120
+ if (!checkId(fieldValue, context))
121
+ return false;
122
+ }
123
+ if (value.owner?.case === "turnId") {
124
+ const fieldValue = value.owner.value;
125
+ if (!checkId(fieldValue, context))
126
+ return false;
127
+ }
128
+ if (value.owner === undefined || typeof value.owner !== 'object' || value.owner === null)
129
+ return false;
130
+ if (value.owner.case !== "taskId" && value.owner.case !== "turnId")
131
+ return false;
132
+ return true;
133
+ }
134
+ finally {
135
+ context.depth--;
136
+ context.active.delete(input);
137
+ }
138
+ }
72
139
  function validUnicode(text) {
73
140
  for (let i = 0; i < text.length; i++) {
74
141
  const unit = text.charCodeAt(i);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcforges/operator-client",
3
- "version": "1.0.0-ci.267.1",
3
+ "version": "1.0.0-ci.277.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.267.1",
37
+ "@arcforges/proto": "1.0.0-ci.277.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.267.1",
8
+ "bom-ref": "pkg:npm/%40arcforges/operator-client@1.0.0-ci.277.1",
9
9
  "name": "@arcforges/operator-client",
10
- "version": "1.0.0-ci.267.1",
11
- "purl": "pkg:npm/%40arcforges/operator-client@1.0.0-ci.267.1",
10
+ "version": "1.0.0-ci.277.1",
11
+ "purl": "pkg:npm/%40arcforges/operator-client@1.0.0-ci.277.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.267.1",
22
+ "bom-ref": "pkg:npm/%40arcforges/proto@1.0.0-ci.277.1",
23
23
  "name": "@arcforges/proto",
24
- "version": "1.0.0-ci.267.1",
25
- "purl": "pkg:npm/%40arcforges/proto@1.0.0-ci.267.1",
24
+ "version": "1.0.0-ci.277.1",
25
+ "purl": "pkg:npm/%40arcforges/proto@1.0.0-ci.277.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.267.1",
51
+ "ref": "pkg:npm/%40arcforges/proto@1.0.0-ci.277.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.267.1",
57
+ "ref": "pkg:npm/%40arcforges/operator-client@1.0.0-ci.277.1",
58
58
  "dependsOn": [
59
- "pkg:npm/%40arcforges/proto@1.0.0-ci.267.1",
59
+ "pkg:npm/%40arcforges/proto@1.0.0-ci.277.1",
60
60
  "pkg:npm/%40bufbuild/protobuf@2.15.0"
61
61
  ]
62
62
  }
@@ -3,12 +3,341 @@ syntax = "proto3";
3
3
 
4
4
  package arcforges.events.v1;
5
5
 
6
+ import "arcforges/foundation/v1/foundation.proto";
7
+ import "arcforges/publicapi/v1/application.proto";
8
+ import "arcforges/publicapi/v1/chat.proto";
9
+ import "arcforges/publicapi/v1/content.proto";
10
+ import "arcforges/publicapi/v1/inprocess-values.proto";
11
+
6
12
  option csharp_namespace = "ArcForges.Contracts.Events.V1";
7
13
  option java_package = "io.github.arcforges.contracts.events.v1";
8
14
  option java_multiple_files = true;
9
15
  option java_outer_classname = "EventsProto";
10
16
 
17
+ service ExecutionService {
18
+ rpc StartTransientTurn(ExecutionServiceStartTransientTurnRequest) returns (ExecutionServiceStartTransientTurnResponse);
19
+ rpc ReadOutput(ExecutionServiceReadOutputRequest) returns (ExecutionServiceReadOutputResponse);
20
+ rpc WatchOutput(ExecutionServiceWatchOutputRequest) returns (stream StreamFrame);
21
+ rpc AcknowledgeOutput(ExecutionServiceAcknowledgeOutputRequest) returns (ExecutionServiceAcknowledgeOutputResponse);
22
+ rpc PurgeTransient(ExecutionServicePurgeTransientRequest) returns (ExecutionServicePurgeTransientResponse);
23
+ }
24
+
25
+ service EventService {
26
+ rpc Poll(EventServicePollRequest) returns (EventServicePollResponse);
27
+ rpc Watch(EventServiceWatchRequest) returns (stream StreamFrame);
28
+ }
29
+
30
+ // Event payload alternatives and their declaration order mirror the complete
31
+ // event registry in Design Registry04 §7 (tags 10–26). This oneof is the
32
+ // single schema source for generated language descriptors; event names map
33
+ // to the corresponding lower-camel oneof field.
11
34
  // The complete entitlement.changed hint payload; not the full Event envelope.
12
35
  message EntitlementChanged {
13
36
  optional int64 entitlement_version = 1 [json_name = "entitlementVersion"];
14
37
  }
38
+
39
+ message Event {
40
+ optional string subscription_key = 1 [json_name = "subscriptionKey"];
41
+ optional uint64 seq = 2 [json_name = "seq"];
42
+ arcforges.foundation.v1.Id workspace_id = 3 [json_name = "workspaceId"];
43
+ arcforges.foundation.v1.Instant occurred_at = 4 [json_name = "occurredAt"];
44
+ arcforges.foundation.v1.Id correlation_id = 5 [json_name = "correlationId"];
45
+ oneof payload {
46
+ SyncChanged sync_changed = 10 [json_name = "syncChanged"];
47
+ SyncConflictRaised sync_conflict_raised = 11 [json_name = "syncConflictRaised"];
48
+ TaskStateChanged task_state_changed = 12 [json_name = "taskStateChanged"];
49
+ TaskProgress task_progress = 13 [json_name = "taskProgress"];
50
+ TaskOutputAppended task_output_appended = 14 [json_name = "taskOutputAppended"];
51
+ ApprovalRaised approval_raised = 15 [json_name = "approvalRaised"];
52
+ ApprovalResolved approval_resolved = 16 [json_name = "approvalResolved"];
53
+ EntitlementChanged entitlement_changed = 17 [json_name = "entitlementChanged"];
54
+ ApplicationPresenceChanged application_presence_changed = 18 [json_name = "applicationPresenceChanged"];
55
+ BridgeRequestAvailable bridge_request_available = 19 [json_name = "bridgeRequestAvailable"];
56
+ NotificationRaised notification_raised = 20 [json_name = "notificationRaised"];
57
+ PolicyBundleAvailable policy_bundle_available = 21 [json_name = "policyBundleAvailable"];
58
+ ResourceCommitted resource_committed = 22 [json_name = "resourceCommitted"];
59
+ CapacityChanged capacity_changed = 23 [json_name = "capacityChanged"];
60
+ ServiceTermChanged service_term_changed = 24 [json_name = "serviceTermChanged"];
61
+ SimulationStateChanged simulation_state_changed = 25 [json_name = "simulationStateChanged"];
62
+ ConfigRevisionActivated config_revision_activated = 26 [json_name = "configRevisionActivated"];
63
+ }
64
+ }
65
+
66
+ message SyncChanged {
67
+ arcforges.foundation.v1.AggregateRef root = 1 [json_name = "root"];
68
+ arcforges.foundation.v1.Revision revision = 2 [json_name = "revision"];
69
+ arcforges.foundation.v1.Id origin_device_id = 3 [json_name = "originDeviceId"];
70
+ }
71
+
72
+ message SyncConflictRaised {
73
+ arcforges.foundation.v1.Id conflict_id = 1 [json_name = "conflictId"];
74
+ arcforges.foundation.v1.AggregateRef root = 2 [json_name = "root"];
75
+ }
76
+
77
+ message TaskStateChanged {
78
+ arcforges.foundation.v1.Id task_id = 1 [json_name = "taskId"];
79
+ optional arcforges.publicapi.v1.TaskState state = 2 [json_name = "state"];
80
+ optional string reason = 3 [json_name = "reason"];
81
+ arcforges.foundation.v1.Revision revision = 4 [json_name = "revision"];
82
+ }
83
+
84
+ message TaskProgress {
85
+ arcforges.foundation.v1.Id task_id = 1 [json_name = "taskId"];
86
+ arcforges.foundation.v1.Id run_id = 2 [json_name = "runId"];
87
+ optional uint32 progress = 3 [json_name = "progress"];
88
+ optional uint32 step_ordinal = 4 [json_name = "stepOrdinal"];
89
+ }
90
+
91
+ message TaskOutputAppended {
92
+ arcforges.foundation.v1.Id task_id = 1 [json_name = "taskId"];
93
+ arcforges.foundation.v1.Id stream_id = 2 [json_name = "streamId"];
94
+ optional uint64 next_offset = 3 [json_name = "nextOffset"];
95
+ }
96
+
97
+ message ApprovalRaised {
98
+ arcforges.foundation.v1.Id approval_id = 1 [json_name = "approvalId"];
99
+ arcforges.foundation.v1.Id task_id = 2 [json_name = "taskId"];
100
+ optional string risk = 3 [json_name = "risk"];
101
+ arcforges.foundation.v1.Instant expires_at = 4 [json_name = "expiresAt"];
102
+ }
103
+
104
+ message ApprovalResolved {
105
+ arcforges.foundation.v1.Id approval_id = 1 [json_name = "approvalId"];
106
+ optional arcforges.publicapi.v1.ApprovalDecision decision = 2 [json_name = "decision"];
107
+ }
108
+
109
+ message ApplicationPresenceChanged {
110
+ arcforges.publicapi.v1.ApplicationTarget target = 1 [json_name = "target"];
111
+ optional string state = 2 [json_name = "state"];
112
+ optional bool eligible = 3 [json_name = "eligible"];
113
+ }
114
+
115
+ message BridgeRequestAvailable {
116
+ optional uint32 count = 1 [json_name = "count"];
117
+ }
118
+
119
+ message NotificationRaised {
120
+ arcforges.foundation.v1.Id notification_id = 1 [json_name = "notificationId"];
121
+ optional string durability = 2 [json_name = "durability"];
122
+ }
123
+
124
+ message PolicyBundleAvailable {
125
+ optional string version = 1 [json_name = "version"];
126
+ }
127
+
128
+ message ResourceCommitted {
129
+ arcforges.foundation.v1.Id resource_id = 1 [json_name = "resourceId"];
130
+ optional string sha256 = 2 [json_name = "sha256"];
131
+ }
132
+
133
+ message CapacityChanged {
134
+ arcforges.foundation.v1.Instant recovery_at = 1 [json_name = "recoveryAt"];
135
+ }
136
+
137
+ message ServiceTermChanged {
138
+ arcforges.foundation.v1.Id workspace_id = 1 [json_name = "workspaceId"];
139
+ }
140
+
141
+ message SimulationStateChanged {
142
+ arcforges.foundation.v1.Id run_id = 1 [json_name = "runId"];
143
+ optional string state = 2 [json_name = "state"];
144
+ optional int64 committed_sequence = 3 [json_name = "committedSequence"];
145
+ }
146
+
147
+ message ConfigRevisionActivated {
148
+ arcforges.foundation.v1.Id config_id = 1 [json_name = "configId"];
149
+ }
150
+
151
+ message StreamPosition {
152
+ optional string cursor = 1 [json_name = "cursor"];
153
+ optional uint64 sequence = 2 [json_name = "sequence"];
154
+ optional uint64 generation = 3 [json_name = "generation"];
155
+ optional string content_hash = 4 [json_name = "contentHash"];
156
+ }
157
+
158
+ message StreamFrame {
159
+ arcforges.foundation.v1.ResponseMeta meta = 1 [json_name = "meta"];
160
+ StreamPosition position = 2 [json_name = "position"];
161
+ oneof frame {
162
+ Event hint = 10 [json_name = "hint"];
163
+ OutputChunk output = 11 [json_name = "output"];
164
+ StreamReset reset = 12 [json_name = "reset"];
165
+ ExecutionOutput terminal = 13 [json_name = "terminal"];
166
+ arcforges.foundation.v1.Instant heartbeat = 14 [json_name = "heartbeat"];
167
+ arcforges.foundation.v1.ArcError error = 15 [json_name = "error"];
168
+ ExecutionProgress progress = 16 [json_name = "progress"];
169
+ }
170
+ }
171
+
172
+ message OutputChunk {
173
+ arcforges.publicapi.v1.ExecutionOwner execution = 1 [json_name = "execution"];
174
+ optional uint64 offset = 2 [json_name = "offset"];
175
+ optional bytes data = 3 [json_name = "data"];
176
+ optional string chunk_hash = 4 [json_name = "chunkHash"];
177
+ optional string kind = 5 [json_name = "kind"];
178
+ arcforges.foundation.v1.Id attempt_id = 6 [json_name = "attemptId"];
179
+ arcforges.foundation.v1.Id stream_id = 7 [json_name = "streamId"];
180
+ }
181
+
182
+ message StreamReset {
183
+ optional string reason = 1 [json_name = "reason"];
184
+ optional string resume_from = 2 [json_name = "resumeFrom"];
185
+ optional bool snapshot_required = 3 [json_name = "snapshotRequired"];
186
+ arcforges.foundation.v1.Id successor_stream_id = 4 [json_name = "successorStreamId"];
187
+ optional bool truncated = 5 [json_name = "truncated"];
188
+ }
189
+
190
+ message ExecutionOutput {
191
+ arcforges.publicapi.v1.ExecutionOwner execution = 1 [json_name = "execution"];
192
+ optional string state = 2 [json_name = "state"];
193
+ arcforges.publicapi.v1.MessageView message = 3 [json_name = "message"];
194
+ arcforges.foundation.v1.EncodedBodyRef body = 4 [json_name = "body"];
195
+ optional string final_hash = 5 [json_name = "finalHash"];
196
+ arcforges.foundation.v1.Instant expires_at = 6 [json_name = "expiresAt"];
197
+ arcforges.foundation.v1.Id attempt_id = 7 [json_name = "attemptId"];
198
+ arcforges.foundation.v1.Id stream_id = 8 [json_name = "streamId"];
199
+ arcforges.foundation.v1.Id successor_stream_id = 9 [json_name = "successorStreamId"];
200
+ optional bool truncated = 10 [json_name = "truncated"];
201
+ arcforges.foundation.v1.VersionedRef final_message = 11 [json_name = "finalMessage"];
202
+ optional string no_answer_reason = 12 [json_name = "noAnswerReason"];
203
+ }
204
+
205
+ message ExecutionProgress {
206
+ arcforges.publicapi.v1.ExecutionOwner execution = 1 [json_name = "execution"];
207
+ oneof owner_progress {
208
+ arcforges.publicapi.v1.TaskSnapshot task = 2 [json_name = "task"];
209
+ arcforges.publicapi.v1.ChatTurnProgress turn = 3 [json_name = "turn"];
210
+ }
211
+ arcforges.foundation.v1.Id attempt_id = 4 [json_name = "attemptId"];
212
+ arcforges.foundation.v1.Id stream_id = 5 [json_name = "streamId"];
213
+ optional string stream_state = 6 [json_name = "streamState"];
214
+ arcforges.foundation.v1.Id successor_stream_id = 7 [json_name = "successorStreamId"];
215
+ arcforges.foundation.v1.VersionedRef iteration_output = 8 [json_name = "iterationOutput"];
216
+ arcforges.foundation.v1.VersionedRef final_message = 9 [json_name = "finalMessage"];
217
+ optional string no_answer_reason = 10 [json_name = "noAnswerReason"];
218
+ optional uint32 retry_after_ms = 11 [json_name = "retryAfterMs"];
219
+ optional string attempt_state = 12 [json_name = "attemptState"];
220
+ }
221
+
222
+ message ExecutionServiceStartTransientTurnRequest {
223
+ arcforges.foundation.v1.RequestMeta meta = 1 [json_name = "meta"];
224
+ reserved 2 to 9;
225
+ arcforges.publicapi.v1.TransientTurnRequest turn = 10 [json_name = "turn"];
226
+ }
227
+
228
+ message ExecutionServiceStartTransientTurnValue {
229
+ arcforges.publicapi.v1.ExecutionOwner owner = 10 [json_name = "owner"];
230
+ arcforges.publicapi.v1.RunView run = 11 [json_name = "run"];
231
+ }
232
+
233
+ message ExecutionServiceStartTransientTurnResponse {
234
+ arcforges.foundation.v1.ResponseMeta meta = 1 [json_name = "meta"];
235
+ oneof outcome {
236
+ ExecutionServiceStartTransientTurnValue value = 2 [json_name = "value"];
237
+ arcforges.foundation.v1.ArcError error = 3 [json_name = "error"];
238
+ }
239
+ reserved 4;
240
+ reserved 5 to 9;
241
+ }
242
+
243
+ message ExecutionServiceReadOutputRequest {
244
+ arcforges.foundation.v1.RequestMeta meta = 1 [json_name = "meta"];
245
+ reserved 2 to 9;
246
+ arcforges.publicapi.v1.ExecutionOwner owner = 10 [json_name = "owner"];
247
+ optional string cursor = 11 [json_name = "cursor"];
248
+ optional uint32 limit = 12 [json_name = "limit"];
249
+ }
250
+
251
+ message ExecutionServiceReadOutputValue {
252
+ repeated OutputChunk chunks = 10 [json_name = "chunks"];
253
+ StreamPosition position = 11 [json_name = "position"];
254
+ ExecutionOutput terminal = 12 [json_name = "terminal"];
255
+ optional bool reset_required = 13 [json_name = "resetRequired"];
256
+ ExecutionProgress progress = 14 [json_name = "progress"];
257
+ }
258
+
259
+ message ExecutionServiceReadOutputResponse {
260
+ arcforges.foundation.v1.ResponseMeta meta = 1 [json_name = "meta"];
261
+ oneof outcome {
262
+ ExecutionServiceReadOutputValue value = 2 [json_name = "value"];
263
+ arcforges.foundation.v1.ArcError error = 3 [json_name = "error"];
264
+ arcforges.foundation.v1.EncodedBodyRef encoded_body = 4 [json_name = "encodedBody"];
265
+ }
266
+ reserved 5 to 9;
267
+ }
268
+
269
+ message ExecutionServiceWatchOutputRequest {
270
+ arcforges.foundation.v1.RequestMeta meta = 1 [json_name = "meta"];
271
+ reserved 2 to 9;
272
+ arcforges.publicapi.v1.ExecutionOwner owner = 10 [json_name = "owner"];
273
+ optional string cursor = 11 [json_name = "cursor"];
274
+ }
275
+
276
+ message ExecutionServiceAcknowledgeOutputRequest {
277
+ arcforges.foundation.v1.RequestMeta meta = 1 [json_name = "meta"];
278
+ reserved 2 to 9;
279
+ arcforges.publicapi.v1.ExecutionOwner owner = 10 [json_name = "owner"];
280
+ optional string final_hash = 11 [json_name = "finalHash"];
281
+ }
282
+
283
+ message ExecutionServiceAcknowledgeOutputValue {}
284
+
285
+ message ExecutionServiceAcknowledgeOutputResponse {
286
+ arcforges.foundation.v1.ResponseMeta meta = 1 [json_name = "meta"];
287
+ oneof outcome {
288
+ ExecutionServiceAcknowledgeOutputValue value = 2 [json_name = "value"];
289
+ arcforges.foundation.v1.ArcError error = 3 [json_name = "error"];
290
+ }
291
+ reserved 4;
292
+ reserved 5 to 9;
293
+ }
294
+
295
+ message ExecutionServicePurgeTransientRequest {
296
+ arcforges.foundation.v1.RequestMeta meta = 1 [json_name = "meta"];
297
+ reserved 2 to 9;
298
+ arcforges.publicapi.v1.ExecutionOwner owner = 10 [json_name = "owner"];
299
+ }
300
+
301
+ message ExecutionServicePurgeTransientValue {}
302
+
303
+ message ExecutionServicePurgeTransientResponse {
304
+ arcforges.foundation.v1.ResponseMeta meta = 1 [json_name = "meta"];
305
+ oneof outcome {
306
+ ExecutionServicePurgeTransientValue value = 2 [json_name = "value"];
307
+ arcforges.foundation.v1.ArcError error = 3 [json_name = "error"];
308
+ }
309
+ reserved 4;
310
+ reserved 5 to 9;
311
+ }
312
+
313
+ message EventServicePollRequest {
314
+ arcforges.foundation.v1.RequestMeta meta = 1 [json_name = "meta"];
315
+ reserved 2 to 9;
316
+ optional string subscription_key = 10 [json_name = "subscriptionKey"];
317
+ optional string cursor = 11 [json_name = "cursor"];
318
+ optional uint32 limit = 12 [json_name = "limit"];
319
+ }
320
+
321
+ message EventServicePollValue {
322
+ repeated Event events = 10 [json_name = "events"];
323
+ optional string next_cursor = 11 [json_name = "nextCursor"];
324
+ optional bool reset_required = 12 [json_name = "resetRequired"];
325
+ }
326
+
327
+ message EventServicePollResponse {
328
+ arcforges.foundation.v1.ResponseMeta meta = 1 [json_name = "meta"];
329
+ oneof outcome {
330
+ EventServicePollValue value = 2 [json_name = "value"];
331
+ arcforges.foundation.v1.ArcError error = 3 [json_name = "error"];
332
+ arcforges.foundation.v1.EncodedBodyRef encoded_body = 4 [json_name = "encodedBody"];
333
+ }
334
+ reserved 5 to 9;
335
+ }
336
+
337
+ message EventServiceWatchRequest {
338
+ arcforges.foundation.v1.RequestMeta meta = 1 [json_name = "meta"];
339
+ reserved 2 to 9;
340
+ optional string subscription_key = 10 [json_name = "subscriptionKey"];
341
+ optional string cursor = 11 [json_name = "cursor"];
342
+ repeated string filter = 12 [json_name = "filter"];
343
+ }
@@ -0,0 +1,297 @@
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/chat.proto";
8
+ import "arcforges/publicapi/v1/content.proto";
9
+ import "arcforges/publicapi/v1/inprocess-values.proto";
10
+
11
+ option csharp_namespace = "ArcForges.Contracts.PublicApi.V1";
12
+ option java_package = "io.github.arcforges.contracts.publicapi.v1";
13
+ option java_multiple_files = true;
14
+ option java_outer_classname = "ApplicationProto";
15
+
16
+ // CON.11: application presence and history-import records.
17
+ // ApplicationScope and HistoryMode remain owned by Foundation and Content.
18
+ service ApplicationService {
19
+ rpc List(ApplicationServiceListRequest) returns (ApplicationServiceListResponse);
20
+ rpc Heartbeat(ApplicationServiceHeartbeatRequest) returns (ApplicationServiceHeartbeatResponse);
21
+ rpc Disconnect(ApplicationServiceDisconnectRequest) returns (ApplicationServiceDisconnectResponse);
22
+ }
23
+
24
+ service HistoryService {
25
+ rpc BeginImport(HistoryServiceBeginImportRequest) returns (HistoryServiceBeginImportResponse);
26
+ rpc FinalizeImport(HistoryServiceFinalizeImportRequest) returns (HistoryServiceFinalizeImportResponse);
27
+ rpc GetImport(HistoryServiceGetImportRequest) returns (HistoryServiceGetImportResponse);
28
+ rpc CancelImport(HistoryServiceCancelImportRequest) returns (HistoryServiceCancelImportResponse);
29
+ }
30
+
31
+ message ApplicationPresence {
32
+ arcforges.publicapi.v1.ApplicationTarget target = 1 [json_name = "target"];
33
+ optional string display_name = 2 [json_name = "displayName"];
34
+ optional string app_version = 3 [json_name = "appVersion"];
35
+ optional string state = 4 [json_name = "state"];
36
+ arcforges.foundation.v1.Instant last_seen_at = 5 [json_name = "lastSeenAt"];
37
+ repeated string available_capabilities = 6 [json_name = "availableCapabilities"];
38
+ arcforges.foundation.v1.Revision revision = 7 [json_name = "revision"];
39
+ }
40
+
41
+ message HistoryImportManifest {
42
+ arcforges.foundation.v1.Id import_id = 1 [json_name = "importId"];
43
+ optional string product_id = 2 [json_name = "productId"];
44
+ optional uint64 source_revision = 3 [json_name = "sourceRevision"];
45
+ arcforges.foundation.v1.ResourceVersionRef archive = 4 [json_name = "archive"];
46
+ optional uint64 message_count = 5 [json_name = "messageCount"];
47
+ optional string manifest_hash = 6 [json_name = "manifestHash"];
48
+ optional string format_version = 7 [json_name = "formatVersion"];
49
+ }
50
+
51
+ message HistoryImportView {
52
+ arcforges.foundation.v1.Id import_id = 1 [json_name = "importId"];
53
+ optional string state = 2 [json_name = "state"];
54
+ arcforges.foundation.v1.Id conversation_id = 3 [json_name = "conversationId"];
55
+ arcforges.foundation.v1.Instant expires_at = 4 [json_name = "expiresAt"];
56
+ arcforges.foundation.v1.Revision revision = 5 [json_name = "revision"];
57
+ arcforges.foundation.v1.ArcError failure = 6 [json_name = "failure"];
58
+ }
59
+
60
+ message TransientTurnRequest {
61
+ arcforges.foundation.v1.Id turn_id = 1 [json_name = "turnId"];
62
+ arcforges.foundation.v1.Id branch_id = 2 [json_name = "branchId"];
63
+ optional string request_hash = 3 [json_name = "requestHash"];
64
+ optional arcforges.publicapi.v1.HistoryMode mode = 4 [json_name = "mode"];
65
+ repeated arcforges.publicapi.v1.MessagePart parts = 5 [json_name = "parts"];
66
+ repeated arcforges.publicapi.v1.ContextRef context = 6 [json_name = "context"];
67
+ arcforges.foundation.v1.Id profile_id = 7 [json_name = "profileId"];
68
+ arcforges.publicapi.v1.ApplicationTarget target = 8 [json_name = "target"];
69
+ arcforges.publicapi.v1.TurnOptions options = 9 [json_name = "options"];
70
+ oneof transcript_source {
71
+ arcforges.publicapi.v1.TranscriptWindow transcript = 10 [json_name = "transcript"];
72
+ arcforges.foundation.v1.ResourceVersionRef transcript_object = 11 [json_name = "transcriptObject"];
73
+ }
74
+ arcforges.publicapi.v1.CompactionRecord compaction = 12 [json_name = "compaction"];
75
+ }
76
+
77
+ message TranscriptWindow {
78
+ arcforges.foundation.v1.Id branch_id = 1 [json_name = "branchId"];
79
+ optional uint64 branch_revision = 2 [json_name = "branchRevision"];
80
+ repeated TranscriptMessage messages = 3 [json_name = "messages"];
81
+ optional uint64 first_ordinal = 4 [json_name = "firstOrdinal"];
82
+ optional uint64 last_ordinal = 5 [json_name = "lastOrdinal"];
83
+ optional string window_hash = 6 [json_name = "windowHash"];
84
+ }
85
+
86
+ message TranscriptMessage {
87
+ arcforges.foundation.v1.Id message_id = 1 [json_name = "messageId"];
88
+ optional uint64 ordinal = 2 [json_name = "ordinal"];
89
+ optional TranscriptRole role = 3 [json_name = "role"];
90
+ repeated arcforges.publicapi.v1.MessagePart parts = 4 [json_name = "parts"];
91
+ arcforges.foundation.v1.Id tool_call_id = 5 [json_name = "toolCallId"];
92
+ arcforges.foundation.v1.Id tool_result_for = 6 [json_name = "toolResultFor"];
93
+ }
94
+
95
+ enum TranscriptRole {
96
+ TRANSCRIPT_ROLE_UNSPECIFIED = 0;
97
+ TRANSCRIPT_ROLE_USER = 1;
98
+ TRANSCRIPT_ROLE_ASSISTANT = 2;
99
+ TRANSCRIPT_ROLE_TOOL = 3;
100
+ TRANSCRIPT_ROLE_SYSTEM = 4;
101
+ }
102
+
103
+ message CompactionRecord {
104
+ arcforges.foundation.v1.Id compaction_id = 1 [json_name = "compactionId"];
105
+ arcforges.foundation.v1.Id branch_id = 2 [json_name = "branchId"];
106
+ optional uint64 through_ordinal = 3 [json_name = "throughOrdinal"];
107
+ optional string source_hash = 4 [json_name = "sourceHash"];
108
+ optional string summary = 5 [json_name = "summary"];
109
+ optional string model_id = 6 [json_name = "modelId"];
110
+ optional string policy_version = 7 [json_name = "policyVersion"];
111
+ arcforges.foundation.v1.Instant created_at = 8 [json_name = "createdAt"];
112
+ optional string summary_hash = 9 [json_name = "summaryHash"];
113
+ }
114
+
115
+ // Length-delimited assistant-history.v1 archive records. These are data records,
116
+ // never authority, capability grants, or pending execution state.
117
+ message HistoryArchiveHeader {
118
+ optional string format_version = 1 [json_name = "formatVersion"];
119
+ optional string product_id = 2 [json_name = "productId"];
120
+ arcforges.foundation.v1.Id source_conversation_id = 3 [json_name = "sourceConversationId"];
121
+ optional uint64 source_revision = 4 [json_name = "sourceRevision"];
122
+ optional string title = 5 [json_name = "title"];
123
+ optional uint64 branch_count = 6 [json_name = "branchCount"];
124
+ optional uint64 message_count = 7 [json_name = "messageCount"];
125
+ optional uint64 resource_count = 8 [json_name = "resourceCount"];
126
+ }
127
+
128
+ message HistoryArchiveRecord {
129
+ oneof record {
130
+ HistoryBranch branch = 1 [json_name = "branch"];
131
+ HistoryMessage message = 2 [json_name = "message"];
132
+ arcforges.foundation.v1.ResourceVersionRef resource = 3 [json_name = "resource"];
133
+ }
134
+ }
135
+
136
+ message HistoryMessage {
137
+ arcforges.publicapi.v1.MessageView message = 1 [json_name = "message"];
138
+ optional uint64 ordinal = 2 [json_name = "ordinal"];
139
+ arcforges.foundation.v1.Instant created_at = 3 [json_name = "createdAt"];
140
+ }
141
+
142
+ message HistoryBranch {
143
+ arcforges.foundation.v1.Id branch_id = 1 [json_name = "branchId"];
144
+ arcforges.foundation.v1.Id parent_branch_id = 2 [json_name = "parentBranchId"];
145
+ arcforges.foundation.v1.Id fork_message_id = 3 [json_name = "forkMessageId"];
146
+ }
147
+
148
+ message HistoryArchiveEnd {
149
+ optional uint64 record_count = 1 [json_name = "recordCount"];
150
+ optional string preceding_bytes_hash = 2 [json_name = "precedingBytesHash"];
151
+ }
152
+
153
+ message ApplicationServiceListRequest {
154
+ arcforges.foundation.v1.RequestMeta meta = 1 [json_name = "meta"];
155
+ reserved 2 to 9;
156
+ arcforges.foundation.v1.Id device_id = 10 [json_name = "deviceId"];
157
+ optional string cursor = 11 [json_name = "cursor"];
158
+ optional uint32 limit = 12 [json_name = "limit"];
159
+ }
160
+
161
+ message ApplicationServiceListValue {
162
+ repeated ApplicationPresence applications = 10 [json_name = "applications"];
163
+ optional string next_cursor = 11 [json_name = "nextCursor"];
164
+ }
165
+
166
+ message ApplicationServiceListResponse {
167
+ arcforges.foundation.v1.ResponseMeta meta = 1 [json_name = "meta"];
168
+ oneof outcome {
169
+ ApplicationServiceListValue value = 2 [json_name = "value"];
170
+ arcforges.foundation.v1.ArcError error = 3 [json_name = "error"];
171
+ arcforges.foundation.v1.EncodedBodyRef encoded_body = 4 [json_name = "encodedBody"];
172
+ }
173
+ reserved 5 to 9;
174
+ }
175
+
176
+ message ApplicationServiceHeartbeatRequest {
177
+ arcforges.foundation.v1.RequestMeta meta = 1 [json_name = "meta"];
178
+ reserved 2 to 9;
179
+ ApplicationTarget target = 10 [json_name = "target"];
180
+ repeated string capabilities = 11 [json_name = "capabilities"];
181
+ optional string app_version = 12 [json_name = "appVersion"];
182
+ }
183
+
184
+ message ApplicationServiceHeartbeatValue {
185
+ ApplicationPresence presence = 10 [json_name = "presence"];
186
+ optional uint32 renew_after_seconds = 11 [json_name = "renewAfterSeconds"];
187
+ }
188
+
189
+ message ApplicationServiceHeartbeatResponse {
190
+ arcforges.foundation.v1.ResponseMeta meta = 1 [json_name = "meta"];
191
+ oneof outcome {
192
+ ApplicationServiceHeartbeatValue value = 2 [json_name = "value"];
193
+ arcforges.foundation.v1.ArcError error = 3 [json_name = "error"];
194
+ }
195
+ reserved 4;
196
+ reserved 5 to 9;
197
+ }
198
+
199
+ message ApplicationServiceDisconnectRequest {
200
+ arcforges.foundation.v1.RequestMeta meta = 1 [json_name = "meta"];
201
+ reserved 2 to 9;
202
+ ApplicationTarget target = 10 [json_name = "target"];
203
+ }
204
+
205
+ message ApplicationServiceDisconnectValue {}
206
+
207
+ message ApplicationServiceDisconnectResponse {
208
+ arcforges.foundation.v1.ResponseMeta meta = 1 [json_name = "meta"];
209
+ oneof outcome {
210
+ ApplicationServiceDisconnectValue value = 2 [json_name = "value"];
211
+ arcforges.foundation.v1.ArcError error = 3 [json_name = "error"];
212
+ }
213
+ reserved 4;
214
+ reserved 5 to 9;
215
+ }
216
+
217
+ message HistoryServiceBeginImportRequest {
218
+ arcforges.foundation.v1.RequestMeta meta = 1 [json_name = "meta"];
219
+ reserved 2 to 9;
220
+ arcforges.foundation.v1.Id import_id = 10 [json_name = "importId"];
221
+ optional uint64 source_revision = 11 [json_name = "sourceRevision"];
222
+ optional string manifest_hash = 12 [json_name = "manifestHash"];
223
+ }
224
+
225
+ message HistoryServiceBeginImportValue {
226
+ HistoryImportView import = 10 [json_name = "import"];
227
+ }
228
+
229
+ message HistoryServiceBeginImportResponse {
230
+ arcforges.foundation.v1.ResponseMeta meta = 1 [json_name = "meta"];
231
+ oneof outcome {
232
+ HistoryServiceBeginImportValue value = 2 [json_name = "value"];
233
+ arcforges.foundation.v1.ArcError error = 3 [json_name = "error"];
234
+ }
235
+ reserved 4;
236
+ reserved 5 to 9;
237
+ }
238
+
239
+ message HistoryServiceFinalizeImportRequest {
240
+ arcforges.foundation.v1.RequestMeta meta = 1 [json_name = "meta"];
241
+ reserved 2 to 9;
242
+ HistoryImportManifest manifest = 10 [json_name = "manifest"];
243
+ }
244
+
245
+ message HistoryServiceFinalizeImportValue {
246
+ HistoryImportView import = 10 [json_name = "import"];
247
+ }
248
+
249
+ message HistoryServiceFinalizeImportResponse {
250
+ arcforges.foundation.v1.ResponseMeta meta = 1 [json_name = "meta"];
251
+ oneof outcome {
252
+ HistoryServiceFinalizeImportValue value = 2 [json_name = "value"];
253
+ arcforges.foundation.v1.ArcError error = 3 [json_name = "error"];
254
+ }
255
+ reserved 4;
256
+ reserved 5 to 9;
257
+ }
258
+
259
+ message HistoryServiceGetImportRequest {
260
+ arcforges.foundation.v1.RequestMeta meta = 1 [json_name = "meta"];
261
+ reserved 2 to 9;
262
+ arcforges.foundation.v1.Id import_id = 10 [json_name = "importId"];
263
+ }
264
+
265
+ message HistoryServiceGetImportValue {
266
+ HistoryImportView import = 10 [json_name = "import"];
267
+ }
268
+
269
+ message HistoryServiceGetImportResponse {
270
+ arcforges.foundation.v1.ResponseMeta meta = 1 [json_name = "meta"];
271
+ oneof outcome {
272
+ HistoryServiceGetImportValue value = 2 [json_name = "value"];
273
+ arcforges.foundation.v1.ArcError error = 3 [json_name = "error"];
274
+ arcforges.foundation.v1.EncodedBodyRef encoded_body = 4 [json_name = "encodedBody"];
275
+ }
276
+ reserved 5 to 9;
277
+ }
278
+
279
+ message HistoryServiceCancelImportRequest {
280
+ arcforges.foundation.v1.RequestMeta meta = 1 [json_name = "meta"];
281
+ reserved 2 to 9;
282
+ arcforges.foundation.v1.Id import_id = 10 [json_name = "importId"];
283
+ }
284
+
285
+ message HistoryServiceCancelImportValue {
286
+ HistoryImportView import = 10 [json_name = "import"];
287
+ }
288
+
289
+ message HistoryServiceCancelImportResponse {
290
+ arcforges.foundation.v1.ResponseMeta meta = 1 [json_name = "meta"];
291
+ oneof outcome {
292
+ HistoryServiceCancelImportValue value = 2 [json_name = "value"];
293
+ arcforges.foundation.v1.ArcError error = 3 [json_name = "error"];
294
+ }
295
+ reserved 4;
296
+ reserved 5 to 9;
297
+ }
package/source.json CHANGED
@@ -1,15 +1,16 @@
1
1
  {
2
2
  "repository": "https://github.com/ArcForges/Contracts",
3
- "commit": "f82af853bdce1eb5cbbedc510905a27fc5ed8dea",
3
+ "commit": "3773d57bfba2745ece4edf5638b542a63d624ad1",
4
4
  "dirty": false,
5
- "version": "1.0.0-ci.267.1",
5
+ "version": "1.0.0-ci.277.1",
6
6
  "contractAccess": "internal",
7
7
  "schemaSources": {
8
8
  "internal/proto/arcforges/operator/v1/operator.proto": "30e9f7ef3124839417839a25f7be2a43a954947d688387cea4faff09ddcf66e8",
9
9
  "public/proto/arcforges/catalog/v1/catalog.proto": "ff77d24be445e107d4fb4a0b3f7fd6b205664317e856a3696e471be1a18f0828",
10
- "public/proto/arcforges/events/v1/events.proto": "ea0ac740c06bbb5b81724b4a7e601110424cabc4940b07e579cf97d852880f43",
10
+ "public/proto/arcforges/events/v1/events.proto": "33953eb0fa0ade48154efee887abae991d8eb697542516091164b7601e95d25e",
11
11
  "public/proto/arcforges/foundation/v1/foundation.proto": "e7e634103664dcca4c63383dd0eda5d90b408edb4786bfdf4a148856fed92736",
12
12
  "public/proto/arcforges/hello/v1/hello.proto": "92489f89d1898a3d3bbea56c72116416cd0152ae8866c98745739437020c67d9",
13
+ "public/proto/arcforges/publicapi/v1/application.proto": "a75077033ccc4876460606b35bfd06929b83ee57111637367bef92cbc1a28710",
13
14
  "public/proto/arcforges/publicapi/v1/chat.proto": "b878ad06144a626e426e78addb76ca7fceb3c36d6a99f087f918fad1968e109a",
14
15
  "public/proto/arcforges/publicapi/v1/commerce.proto": "e0ed5700197fdb20006c7ea699d9071dd8c4ac9d4248651f8a148363ad8af9dc",
15
16
  "public/proto/arcforges/publicapi/v1/content.proto": "7d77c5c222dcfa2a5473675873f4d3e1bc8664fa5983f2b40e8c49db652b17fa",
@@ -22,21 +23,21 @@
22
23
  "public/proto/arcforges/publicapi/v1/transfer.proto": "f7d53346a43cd977224154b33d8f1f3f3f4b973c67e513caf384b195654abc0e",
23
24
  "public/proto/arcforges/simulation/v1/simulation.proto": "6be3a09a0ae9f2f28f2cfec9c5a762d0b1d11519336109fd842b14537e53faf7"
24
25
  },
25
- "descriptorSha256": "9ff4327c48a3762392e13ad2dd42dbdfed81fbbbb6b8a0dc5e8ae1f2d7c76cb9",
26
+ "descriptorSha256": "75303e46c1966d167885495f03aba2a453fa02aea7b5fb860c3e645914582bed",
26
27
  "dependencyLocks": {
27
28
  "package-lock.json": "3e536db25743ceb5a021559dbc1f31d57112211c62d94f84df34daca5382709c",
28
29
  "src/public/dotnet/ArcForges.Contracts.Foundation/packages.lock.json": "fa17fe6057706e36ae0b9370a457536d05d0f3a8f0f72df622881bfc1628337e",
29
30
  "src/public/dotnet/ArcForges.Contracts.PublicApi/packages.lock.json": "950f637a1c8b5152e0fdabff441cb2a8802ac50ae8aae0b97a89b4fa1e633b29",
30
- "src/public/dotnet/ArcForges.Contracts.Events/packages.lock.json": "bfc4981894f94a4ee6f2518f6e1f5997d7d20e17749125c5711794cd2ee10d94",
31
+ "src/public/dotnet/ArcForges.Contracts.Events/packages.lock.json": "5f4282b8edd354a2197bcc62bf48c640251aa7272bd81b4a51dd340cf28fce45",
31
32
  "src/public/dotnet/ArcForges.Sdk.Contracts/packages.lock.json": "0490ab15d029c97f1015d0483d419737a7963c4d7be002247d917eac684f74ce",
32
- "src/public/dotnet/ArcForges.Contracts.Validation/packages.lock.json": "0c7b05824fdd61702898b2d3c3297d40f19fde0a10ffcc9851920620c4168296",
33
- "src/public/dotnet/ArcForges.Sdk.Client/packages.lock.json": "4a90644c21c833eda8fa5d74e2e850860a34605c026f3983114149f162a4e38a",
34
- "src/public/dotnet/ArcForges.Cli/packages.lock.json": "b82fce1d2e52e143a0c83b6807b7207a720dd70479ff61fa95f9325bbfbbc3f3",
33
+ "src/public/dotnet/ArcForges.Contracts.Validation/packages.lock.json": "17e9ab54e527b0811319a94b81bbfcb16bd1773fd019ad81bbeffbbe4368508d",
34
+ "src/public/dotnet/ArcForges.Sdk.Client/packages.lock.json": "2182c09fccd0754761f9160db38c112d496a4ee72047cc052bbcaf2f22351a91",
35
+ "src/public/dotnet/ArcForges.Cli/packages.lock.json": "103777bb279eafe8ebe643afc4fb1c5d7d33f80f5f7d31fa3c796c64474b24f8",
35
36
  "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Platform/packages.lock.json": "4af9f61c399adec188a1e1717c4ba13b2291d4039af5a374d99832cfd9228586",
36
37
  "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Sandbox/packages.lock.json": "950f637a1c8b5152e0fdabff441cb2a8802ac50ae8aae0b97a89b4fa1e633b29",
37
38
  "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Chat/packages.lock.json": "2ffa6c7fb3cf873b86775fa67fcce30516bed510d126113933bfef7fbed3e052",
38
39
  "src/internal/dotnet/ArcForges.Contracts.LocalRpc.Scope/packages.lock.json": "2ffa6c7fb3cf873b86775fa67fcce30516bed510d126113933bfef7fbed3e052",
39
- "src/internal/dotnet/ArcForges.Contracts.CloudInternal/packages.lock.json": "bfc4981894f94a4ee6f2518f6e1f5997d7d20e17749125c5711794cd2ee10d94",
40
+ "src/internal/dotnet/ArcForges.Contracts.CloudInternal/packages.lock.json": "4c4e87d606b9b79824286022accc631f2b8ac6689248b213fc9eb54255121cee",
40
41
  "gradle.lockfile": "b176c43fe3fdb8fc99e36c8ccafc6dd1c07c2a2c0c0e9e5cbb3a328b70d128df",
41
42
  "src/public/kotlin/contract-fixtures/gradle.lockfile": "14dc5803d23ab183aa24b2849ee51541e52e4d26fbada80e19082d15e0b1c654",
42
43
  "src/public/kotlin/contracts-connect-client/gradle.lockfile": "9b5447a219bb4ec726f780a103ce193eaa6468378da8314316558bbf79ff7281",