@stigmer/protos 3.2.3 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai/stigmer/agentic/agent/v1/spec_pb.d.ts +41 -0
- package/ai/stigmer/agentic/agent/v1/spec_pb.js +8 -3
- package/ai/stigmer/agentic/agent/v1/spec_pb.js.map +1 -1
- package/ai/stigmer/agentic/agentexecution/v1/usage_pb.d.ts +62 -0
- package/ai/stigmer/agentic/agentexecution/v1/usage_pb.js +37 -1
- package/ai/stigmer/agentic/agentexecution/v1/usage_pb.js.map +1 -1
- package/ai/stigmer/agentic/agentinstance/v1/spec_pb.d.ts +21 -0
- package/ai/stigmer/agentic/agentinstance/v1/spec_pb.js +1 -1
- package/ai/stigmer/agentic/agentinstance/v1/spec_pb.js.map +1 -1
- package/ai/stigmer/agentic/datastore/v1/api_pb.d.ts +64 -0
- package/ai/stigmer/agentic/datastore/v1/api_pb.js +18 -0
- package/ai/stigmer/agentic/datastore/v1/api_pb.js.map +1 -0
- package/ai/stigmer/agentic/datastore/v1/command_connect.d.ts +111 -0
- package/ai/stigmer/agentic/datastore/v1/command_connect.js +119 -0
- package/ai/stigmer/agentic/datastore/v1/command_connect.js.map +1 -0
- package/ai/stigmer/agentic/datastore/v1/command_pb.d.ts +110 -0
- package/ai/stigmer/agentic/datastore/v1/command_pb.js +19 -0
- package/ai/stigmer/agentic/datastore/v1/command_pb.js.map +1 -0
- package/ai/stigmer/agentic/datastore/v1/io_pb.d.ts +64 -0
- package/ai/stigmer/agentic/datastore/v1/io_pb.js +22 -0
- package/ai/stigmer/agentic/datastore/v1/io_pb.js.map +1 -0
- package/ai/stigmer/agentic/datastore/v1/query_connect.d.ts +59 -0
- package/ai/stigmer/agentic/datastore/v1/query_connect.js +68 -0
- package/ai/stigmer/agentic/datastore/v1/query_connect.js.map +1 -0
- package/ai/stigmer/agentic/datastore/v1/query_pb.d.ts +61 -0
- package/ai/stigmer/agentic/datastore/v1/query_pb.js +24 -0
- package/ai/stigmer/agentic/datastore/v1/query_pb.js.map +1 -0
- package/ai/stigmer/agentic/datastore/v1/record_command_connect.d.ts +75 -0
- package/ai/stigmer/agentic/datastore/v1/record_command_connect.js +82 -0
- package/ai/stigmer/agentic/datastore/v1/record_command_connect.js.map +1 -0
- package/ai/stigmer/agentic/datastore/v1/record_command_pb.d.ts +75 -0
- package/ai/stigmer/agentic/datastore/v1/record_command_pb.js +32 -0
- package/ai/stigmer/agentic/datastore/v1/record_command_pb.js.map +1 -0
- package/ai/stigmer/agentic/datastore/v1/record_io_pb.d.ts +752 -0
- package/ai/stigmer/agentic/datastore/v1/record_io_pb.js +198 -0
- package/ai/stigmer/agentic/datastore/v1/record_io_pb.js.map +1 -0
- package/ai/stigmer/agentic/datastore/v1/record_query_connect.d.ts +69 -0
- package/ai/stigmer/agentic/datastore/v1/record_query_connect.js +76 -0
- package/ai/stigmer/agentic/datastore/v1/record_query_connect.js.map +1 -0
- package/ai/stigmer/agentic/datastore/v1/record_query_pb.d.ts +70 -0
- package/ai/stigmer/agentic/datastore/v1/record_query_pb.js +38 -0
- package/ai/stigmer/agentic/datastore/v1/record_query_pb.js.map +1 -0
- package/ai/stigmer/agentic/datastore/v1/spec_pb.d.ts +735 -0
- package/ai/stigmer/agentic/datastore/v1/spec_pb.js +195 -0
- package/ai/stigmer/agentic/datastore/v1/spec_pb.js.map +1 -0
- package/ai/stigmer/agentic/datastore/v1/status_pb.d.ts +159 -0
- package/ai/stigmer/agentic/datastore/v1/status_pb.js +93 -0
- package/ai/stigmer/agentic/datastore/v1/status_pb.js.map +1 -0
- package/ai/stigmer/agentic/session/v1/spec_pb.d.ts +18 -0
- package/ai/stigmer/agentic/session/v1/spec_pb.js +1 -1
- package/ai/stigmer/agentic/session/v1/spec_pb.js.map +1 -1
- package/ai/stigmer/billing/v1/command_connect.d.ts +43 -0
- package/ai/stigmer/billing/v1/command_connect.js +46 -1
- package/ai/stigmer/billing/v1/command_connect.js.map +1 -1
- package/ai/stigmer/billing/v1/command_pb.d.ts +43 -1
- package/ai/stigmer/billing/v1/command_pb.js +3 -1
- package/ai/stigmer/billing/v1/command_pb.js.map +1 -1
- package/ai/stigmer/billing/v1/io_pb.d.ts +299 -1
- package/ai/stigmer/billing/v1/io_pb.js +44 -2
- package/ai/stigmer/billing/v1/io_pb.js.map +1 -1
- package/ai/stigmer/billing/v1/model_pricing_baseline_pb.d.ts +369 -0
- package/ai/stigmer/billing/v1/model_pricing_baseline_pb.js +79 -0
- package/ai/stigmer/billing/v1/model_pricing_baseline_pb.js.map +1 -0
- package/ai/stigmer/billing/v1/pricing_override_pb.d.ts +272 -0
- package/ai/stigmer/billing/v1/pricing_override_pb.js +116 -0
- package/ai/stigmer/billing/v1/pricing_override_pb.js.map +1 -0
- package/ai/stigmer/billing/v1/query_connect.d.ts +31 -0
- package/ai/stigmer/billing/v1/query_connect.js +32 -1
- package/ai/stigmer/billing/v1/query_connect.js.map +1 -1
- package/ai/stigmer/billing/v1/query_pb.d.ts +30 -1
- package/ai/stigmer/billing/v1/query_pb.js +1 -1
- package/ai/stigmer/billing/v1/query_pb.js.map +1 -1
- package/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb.d.ts +7 -0
- package/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb.js +8 -1
- package/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb.js.map +1 -1
- package/ai/stigmer/iam/v1/enum_pb.d.ts +44 -1
- package/ai/stigmer/iam/v1/enum_pb.js +44 -1
- package/ai/stigmer/iam/v1/enum_pb.js.map +1 -1
- package/ai/stigmer/platform/cursoraccount/v1/command_connect.d.ts +102 -0
- package/ai/stigmer/platform/cursoraccount/v1/command_connect.js +110 -0
- package/ai/stigmer/platform/cursoraccount/v1/command_connect.js.map +1 -0
- package/ai/stigmer/platform/cursoraccount/v1/command_pb.d.ts +100 -0
- package/ai/stigmer/platform/cursoraccount/v1/command_pb.js +32 -0
- package/ai/stigmer/platform/cursoraccount/v1/command_pb.js.map +1 -0
- package/ai/stigmer/platform/cursoraccount/v1/cursor_account_pb.d.ts +409 -0
- package/ai/stigmer/platform/cursoraccount/v1/cursor_account_pb.js +36 -0
- package/ai/stigmer/platform/cursoraccount/v1/cursor_account_pb.js.map +1 -0
- package/ai/stigmer/platform/cursoraccount/v1/io_pb.d.ts +383 -0
- package/ai/stigmer/platform/cursoraccount/v1/io_pb.js +115 -0
- package/ai/stigmer/platform/cursoraccount/v1/io_pb.js.map +1 -0
- package/ai/stigmer/platform/cursoraccount/v1/query_connect.d.ts +44 -0
- package/ai/stigmer/platform/cursoraccount/v1/query_connect.js +51 -0
- package/ai/stigmer/platform/cursoraccount/v1/query_connect.js.map +1 -0
- package/ai/stigmer/platform/cursoraccount/v1/query_pb.d.ts +45 -0
- package/ai/stigmer/platform/cursoraccount/v1/query_pb.js +25 -0
- package/ai/stigmer/platform/cursoraccount/v1/query_pb.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,409 @@
|
|
|
1
|
+
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
|
|
2
|
+
import type { Timestamp } from "@bufbuild/protobuf/wkt";
|
|
3
|
+
import type { Message } from "@bufbuild/protobuf";
|
|
4
|
+
/**
|
|
5
|
+
* Describes the file ai/stigmer/platform/cursoraccount/v1/cursor_account.proto.
|
|
6
|
+
*/
|
|
7
|
+
export declare const file_ai_stigmer_platform_cursoraccount_v1_cursor_account: GenFile;
|
|
8
|
+
/**
|
|
9
|
+
* CursorAccount is one managed Cursor team: the platform-operator resource
|
|
10
|
+
* that is the ONLY source of Cursor credentials for the cursor harness —
|
|
11
|
+
* member keys for execution and unscoped platform traffic, the team admin
|
|
12
|
+
* key for roster/spend sync and ledger reconciliation. (It replaced the
|
|
13
|
+
* historical single STIGMER_PROXY_CURSOR_API_KEY env var, which is gone.)
|
|
14
|
+
*
|
|
15
|
+
* One document = one Cursor team. It carries two credential classes with
|
|
16
|
+
* strictly different capabilities (verified empirically 2026-07-22, see the
|
|
17
|
+
* harness-cost-parity T04 probe note):
|
|
18
|
+
*
|
|
19
|
+
* - the team ADMIN key ("Team API Keys" dashboard tab) — works ONLY
|
|
20
|
+
* against the Cursor Admin API (roster, spend, usage events). It can
|
|
21
|
+
* NEVER run executions; Cursor rejects it on execution surfaces.
|
|
22
|
+
* - MEMBER keys (user-scoped API keys, one per team member) — the keys
|
|
23
|
+
* the proxy injects into execution traffic. Each is validated and
|
|
24
|
+
* bound to its owning team member via Cursor's /v1/me at save time.
|
|
25
|
+
*
|
|
26
|
+
* Consequently an account with no enabled member keys is visible but NOT
|
|
27
|
+
* routable — no execution traffic can be sent under it.
|
|
28
|
+
*
|
|
29
|
+
* Org assignment — two account classes, derived from org_ids alone:
|
|
30
|
+
*
|
|
31
|
+
* - DEDICATED (org_ids non-empty): the account is a cost boundary for
|
|
32
|
+
* exactly those organizations. Their sessions are served only by this
|
|
33
|
+
* account's keys; when it has no usable keys, sessions fail with an
|
|
34
|
+
* explicit operator-actionable error rather than silently spending
|
|
35
|
+
* another team's quota (DD-008).
|
|
36
|
+
* - SHARED POOL (org_ids empty + enabled): the account is part of the
|
|
37
|
+
* platform-operated pool serving every org with no dedicated account.
|
|
38
|
+
* Pool sessions may move across pool accounts when their current
|
|
39
|
+
* account is depleted — all pool teams bill to the platform operator,
|
|
40
|
+
* so movement is capacity management, not a cost-boundary breach.
|
|
41
|
+
* Keep an account out of rotation (e.g. a quarantined probe team) by
|
|
42
|
+
* leaving it disabled.
|
|
43
|
+
*
|
|
44
|
+
* Load spreading for NEW sessions is least-recently-used across the
|
|
45
|
+
* eligible key set (the dedicated account's keys, or all pool accounts'
|
|
46
|
+
* keys); an existing session stays pinned to one key until that key
|
|
47
|
+
* becomes unusable.
|
|
48
|
+
*
|
|
49
|
+
* Secrets at rest: admin_api_key and CursorMemberKey.api_key are encrypted
|
|
50
|
+
* (AES-256-GCM, "enc:v1:" prefix) before persistence and replaced with
|
|
51
|
+
* "***REDACTED***" on every read surface. Sending the redaction marker
|
|
52
|
+
* back on update means "keep the stored value" (the ChannelApp secret
|
|
53
|
+
* round-trip convention).
|
|
54
|
+
*
|
|
55
|
+
* @generated from message ai.stigmer.platform.cursoraccount.v1.CursorAccount
|
|
56
|
+
*/
|
|
57
|
+
export type CursorAccount = Message<"ai.stigmer.platform.cursoraccount.v1.CursorAccount"> & {
|
|
58
|
+
/**
|
|
59
|
+
* Unique identifier (UUID). Server-assigned on create; required on
|
|
60
|
+
* update.
|
|
61
|
+
*
|
|
62
|
+
* @generated from field: string account_id = 1;
|
|
63
|
+
*/
|
|
64
|
+
accountId: string;
|
|
65
|
+
/**
|
|
66
|
+
* Human-readable name shown in the operator console (e.g. the Cursor
|
|
67
|
+
* team name, "scenar.ai team").
|
|
68
|
+
*
|
|
69
|
+
* @generated from field: string display_name = 2;
|
|
70
|
+
*/
|
|
71
|
+
displayName: string;
|
|
72
|
+
/**
|
|
73
|
+
* Team Admin API key. Used exclusively for Admin API calls (roster,
|
|
74
|
+
* spend); never injected into execution traffic. Validated at save time
|
|
75
|
+
* by a live GET /teams/members call.
|
|
76
|
+
*
|
|
77
|
+
* Write: plaintext on create/rotate, or "***REDACTED***" to keep the
|
|
78
|
+
* stored value. Read: always "***REDACTED***".
|
|
79
|
+
*
|
|
80
|
+
* @generated from field: string admin_api_key = 3;
|
|
81
|
+
*/
|
|
82
|
+
adminApiKey: string;
|
|
83
|
+
/**
|
|
84
|
+
* Whether this account participates in key selection. Disabled accounts
|
|
85
|
+
* stop receiving NEW sessions immediately; sessions already pinned to
|
|
86
|
+
* one of its keys keep working (the hard kill switch is revoking the
|
|
87
|
+
* key in the Cursor dashboard).
|
|
88
|
+
*
|
|
89
|
+
* @generated from field: bool enabled = 4;
|
|
90
|
+
*/
|
|
91
|
+
enabled: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Deprecated: superseded by the derived shared pool (DD-008). Every
|
|
94
|
+
* enabled account with empty org_ids now serves unassigned orgs; a
|
|
95
|
+
* single "default" marker is meaningless under that rule, so selection
|
|
96
|
+
* and the console ignore this field. Kept on the wire for old clients;
|
|
97
|
+
* never written by current ones.
|
|
98
|
+
*
|
|
99
|
+
* @generated from field: bool is_platform_default = 5 [deprecated = true];
|
|
100
|
+
* @deprecated
|
|
101
|
+
*/
|
|
102
|
+
isPlatformDefault: boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Stigmer organization ids this account is DEDICATED to. An org may
|
|
105
|
+
* appear in at most one account across the collection
|
|
106
|
+
* (unique-multikey-index-enforced). Empty = shared-pool account (see
|
|
107
|
+
* the message doc for the two account classes).
|
|
108
|
+
*
|
|
109
|
+
* @generated from field: repeated string org_ids = 6;
|
|
110
|
+
*/
|
|
111
|
+
orgIds: string[];
|
|
112
|
+
/**
|
|
113
|
+
* Execution-capable member keys. Selection picks among enabled entries
|
|
114
|
+
* (least-recently-used for new sessions, then sticky per session).
|
|
115
|
+
*
|
|
116
|
+
* @generated from field: repeated ai.stigmer.platform.cursoraccount.v1.CursorMemberKey member_keys = 7;
|
|
117
|
+
*/
|
|
118
|
+
memberKeys: CursorMemberKey[];
|
|
119
|
+
/**
|
|
120
|
+
* Operator identity that created the account.
|
|
121
|
+
*
|
|
122
|
+
* @generated from field: string created_by = 8;
|
|
123
|
+
*/
|
|
124
|
+
createdBy: string;
|
|
125
|
+
/**
|
|
126
|
+
* @generated from field: google.protobuf.Timestamp created_at = 9;
|
|
127
|
+
*/
|
|
128
|
+
createdAt?: Timestamp;
|
|
129
|
+
/**
|
|
130
|
+
* Operator identity of the latest mutation (account fields or keys).
|
|
131
|
+
*
|
|
132
|
+
* @generated from field: string updated_by = 10;
|
|
133
|
+
*/
|
|
134
|
+
updatedBy: string;
|
|
135
|
+
/**
|
|
136
|
+
* @generated from field: google.protobuf.Timestamp updated_at = 11;
|
|
137
|
+
*/
|
|
138
|
+
updatedAt?: Timestamp;
|
|
139
|
+
/**
|
|
140
|
+
* Operator's assertion that this Cursor team's on-demand usage toggle
|
|
141
|
+
* is OFF in the Cursor dashboard. Declared, not synced: the Admin API
|
|
142
|
+
* exposes no settings surface, so Cursor cannot report it (verified
|
|
143
|
+
* 2026-07-22 against docs and live API).
|
|
144
|
+
*
|
|
145
|
+
* When true, member keys whose included API-pool usage crosses the
|
|
146
|
+
* platform soft limit are excluded from NEW-session selection — with
|
|
147
|
+
* on-demand off, an exhausted key can no longer serve third-party
|
|
148
|
+
* models (T06 probe: runs error, no silent degrade).
|
|
149
|
+
*
|
|
150
|
+
* Deliberately the negative of Cursor's "on-demand enabled" wording:
|
|
151
|
+
* proto3 bool absence must mean "assume Cursor's team default
|
|
152
|
+
* (on-demand ON, guard inactive)" so accounts created before this
|
|
153
|
+
* field keep their exact selection behavior with no migration. A
|
|
154
|
+
* positive `on_demand_usage_enabled` field would read false on every
|
|
155
|
+
* existing document and silently activate the guard fleet-wide.
|
|
156
|
+
*
|
|
157
|
+
* @generated from field: bool on_demand_usage_disabled = 12;
|
|
158
|
+
*/
|
|
159
|
+
onDemandUsageDisabled: boolean;
|
|
160
|
+
/**
|
|
161
|
+
* Operator-pasted team invite link from the Cursor dashboard (Invite
|
|
162
|
+
* Members → Copy Invite Link). Cursor's Admin API cannot mint or fetch
|
|
163
|
+
* one, so this is declared, not synced. Long-lived and joinable by
|
|
164
|
+
* anyone holding it (each join consumes a paid seat), so it is
|
|
165
|
+
* encrypted at rest — but unlike the API keys it IS returned readable
|
|
166
|
+
* on read: a link operators cannot copy serves no one, and every read
|
|
167
|
+
* surface is operator-gated. Optional: when empty the console shows
|
|
168
|
+
* dashboard guidance instead of a per-row "Copy invite" action.
|
|
169
|
+
*
|
|
170
|
+
* Write: plaintext https:// URL to set/rotate, empty to clear.
|
|
171
|
+
* Read: plaintext.
|
|
172
|
+
*
|
|
173
|
+
* @generated from field: string team_invite_link = 13;
|
|
174
|
+
*/
|
|
175
|
+
teamInviteLink: string;
|
|
176
|
+
};
|
|
177
|
+
/**
|
|
178
|
+
* Describes the message ai.stigmer.platform.cursoraccount.v1.CursorAccount.
|
|
179
|
+
* Use `create(CursorAccountSchema)` to create a new message.
|
|
180
|
+
*/
|
|
181
|
+
export declare const CursorAccountSchema: GenMessage<CursorAccount>;
|
|
182
|
+
/**
|
|
183
|
+
* CursorMemberKey is one execution-capable, user-scoped Cursor API key
|
|
184
|
+
* held by a CursorAccount.
|
|
185
|
+
*
|
|
186
|
+
* Identity binding is server-owned: at save time the key is presented to
|
|
187
|
+
* Cursor's GET /v1/me, which returns the owning member's email and user
|
|
188
|
+
* id — a team admin key pasted here fails that call with Cursor's own
|
|
189
|
+
* explanatory 401. There is no manual "which member is this" mapping to
|
|
190
|
+
* drift.
|
|
191
|
+
*
|
|
192
|
+
* @generated from message ai.stigmer.platform.cursoraccount.v1.CursorMemberKey
|
|
193
|
+
*/
|
|
194
|
+
export type CursorMemberKey = Message<"ai.stigmer.platform.cursoraccount.v1.CursorMemberKey"> & {
|
|
195
|
+
/**
|
|
196
|
+
* Unique identifier (UUID) of this key entry. Server-assigned. Stable
|
|
197
|
+
* across enable/disable; referenced by session pins and usage
|
|
198
|
+
* attribution (the key material itself never leaves the proxy).
|
|
199
|
+
*
|
|
200
|
+
* @generated from field: string key_id = 1;
|
|
201
|
+
*/
|
|
202
|
+
keyId: string;
|
|
203
|
+
/**
|
|
204
|
+
* The user-scoped API key. Write: plaintext on add, "***REDACTED***"
|
|
205
|
+
* never accepted here (rotation = remove + add, so the /v1/me binding
|
|
206
|
+
* can never go stale). Read: always "***REDACTED***".
|
|
207
|
+
*
|
|
208
|
+
* @generated from field: string api_key = 2;
|
|
209
|
+
*/
|
|
210
|
+
apiKey: string;
|
|
211
|
+
/**
|
|
212
|
+
* Optional operator label (e.g. "zane — stigmer-prod").
|
|
213
|
+
*
|
|
214
|
+
* @generated from field: string label = 3;
|
|
215
|
+
*/
|
|
216
|
+
label: string;
|
|
217
|
+
/**
|
|
218
|
+
* Email of the Cursor team member that owns this key.
|
|
219
|
+
*
|
|
220
|
+
* @generated from field: string bound_email = 4;
|
|
221
|
+
*/
|
|
222
|
+
boundEmail: string;
|
|
223
|
+
/**
|
|
224
|
+
* Cursor numeric user id of the owning member, as a string.
|
|
225
|
+
*
|
|
226
|
+
* @generated from field: string bound_user_id = 5;
|
|
227
|
+
*/
|
|
228
|
+
boundUserId: string;
|
|
229
|
+
/**
|
|
230
|
+
* Cursor-side name of the key (apiKeyName from /v1/me), for
|
|
231
|
+
* cross-referencing in the Cursor dashboard.
|
|
232
|
+
*
|
|
233
|
+
* @generated from field: string cursor_key_name = 6;
|
|
234
|
+
*/
|
|
235
|
+
cursorKeyName: string;
|
|
236
|
+
/**
|
|
237
|
+
* Whether this key participates in selection for NEW sessions.
|
|
238
|
+
* Sessions already pinned to it keep using it (conversation continuity
|
|
239
|
+
* and end-of-session agent disposal both require the original key).
|
|
240
|
+
*
|
|
241
|
+
* @generated from field: bool enabled = 7;
|
|
242
|
+
*/
|
|
243
|
+
enabled: boolean;
|
|
244
|
+
/**
|
|
245
|
+
* Operator identity that added the key.
|
|
246
|
+
*
|
|
247
|
+
* @generated from field: string added_by = 8;
|
|
248
|
+
*/
|
|
249
|
+
addedBy: string;
|
|
250
|
+
/**
|
|
251
|
+
* @generated from field: google.protobuf.Timestamp added_at = 9;
|
|
252
|
+
*/
|
|
253
|
+
addedAt?: Timestamp;
|
|
254
|
+
};
|
|
255
|
+
/**
|
|
256
|
+
* Describes the message ai.stigmer.platform.cursoraccount.v1.CursorMemberKey.
|
|
257
|
+
* Use `create(CursorMemberKeySchema)` to create a new message.
|
|
258
|
+
*/
|
|
259
|
+
export declare const CursorMemberKeySchema: GenMessage<CursorMemberKey>;
|
|
260
|
+
/**
|
|
261
|
+
* CursorTeamMember is one roster entry from the Admin API
|
|
262
|
+
* (GET /teams/members), captured by the periodic sync.
|
|
263
|
+
*
|
|
264
|
+
* @generated from message ai.stigmer.platform.cursoraccount.v1.CursorTeamMember
|
|
265
|
+
*/
|
|
266
|
+
export type CursorTeamMember = Message<"ai.stigmer.platform.cursoraccount.v1.CursorTeamMember"> & {
|
|
267
|
+
/**
|
|
268
|
+
* Cursor user id (e.g. "user_..." or numeric, as returned).
|
|
269
|
+
*
|
|
270
|
+
* @generated from field: string user_id = 1;
|
|
271
|
+
*/
|
|
272
|
+
userId: string;
|
|
273
|
+
/**
|
|
274
|
+
* @generated from field: string email = 2;
|
|
275
|
+
*/
|
|
276
|
+
email: string;
|
|
277
|
+
/**
|
|
278
|
+
* @generated from field: string name = 3;
|
|
279
|
+
*/
|
|
280
|
+
name: string;
|
|
281
|
+
/**
|
|
282
|
+
* Cursor-reported role: "owner", "member", or "removed". Removed
|
|
283
|
+
* members remain in the roster response; a stored member key whose
|
|
284
|
+
* owner shows as removed is flagged for the operator and excluded
|
|
285
|
+
* from selection.
|
|
286
|
+
*
|
|
287
|
+
* @generated from field: string role = 4;
|
|
288
|
+
*/
|
|
289
|
+
role: string;
|
|
290
|
+
};
|
|
291
|
+
/**
|
|
292
|
+
* Describes the message ai.stigmer.platform.cursoraccount.v1.CursorTeamMember.
|
|
293
|
+
* Use `create(CursorTeamMemberSchema)` to create a new message.
|
|
294
|
+
*/
|
|
295
|
+
export declare const CursorTeamMemberSchema: GenMessage<CursorTeamMember>;
|
|
296
|
+
/**
|
|
297
|
+
* CursorMemberSpend is one member's spend for the current billing cycle
|
|
298
|
+
* from the Admin API (POST /teams/spend).
|
|
299
|
+
*
|
|
300
|
+
* Money follows the platform integer-micro convention: Cursor reports
|
|
301
|
+
* (possibly fractional) cents; the sync converts cents x 10,000 to
|
|
302
|
+
* micro-USD. Cursor's response schema has drifted from its docs
|
|
303
|
+
* (overallSpendCents absent, includedSpendCents undocumented) — the sync
|
|
304
|
+
* parses defensively and omits fields Cursor omits.
|
|
305
|
+
*
|
|
306
|
+
* @generated from message ai.stigmer.platform.cursoraccount.v1.CursorMemberSpend
|
|
307
|
+
*/
|
|
308
|
+
export type CursorMemberSpend = Message<"ai.stigmer.platform.cursoraccount.v1.CursorMemberSpend"> & {
|
|
309
|
+
/**
|
|
310
|
+
* @generated from field: string user_id = 1;
|
|
311
|
+
*/
|
|
312
|
+
userId: string;
|
|
313
|
+
/**
|
|
314
|
+
* @generated from field: string email = 2;
|
|
315
|
+
*/
|
|
316
|
+
email: string;
|
|
317
|
+
/**
|
|
318
|
+
* Spend covered by the plan's included quota this cycle, micro-USD.
|
|
319
|
+
*
|
|
320
|
+
* @generated from field: int64 included_spend_usd_micros = 3;
|
|
321
|
+
*/
|
|
322
|
+
includedSpendUsdMicros: bigint;
|
|
323
|
+
/**
|
|
324
|
+
* On-demand overage spend this cycle, micro-USD (Cursor "spendCents").
|
|
325
|
+
*
|
|
326
|
+
* @generated from field: int64 overage_spend_usd_micros = 4;
|
|
327
|
+
*/
|
|
328
|
+
overageSpendUsdMicros: bigint;
|
|
329
|
+
/**
|
|
330
|
+
* Percent (0–100) of the member's blended usage allowance consumed
|
|
331
|
+
* (Cursor's totalPercentUsed, live-verified 2026-07-22 — the T06
|
|
332
|
+
* probe observed 22.35 for a member at 22%). 0 when Cursor omits it
|
|
333
|
+
* (non-tiered/Enterprise teams). Caution: removed members report a
|
|
334
|
+
* flat 100 here regardless of real usage — roster state, not this
|
|
335
|
+
* field, decides "removed".
|
|
336
|
+
*
|
|
337
|
+
* @generated from field: double total_percent_used = 5;
|
|
338
|
+
*/
|
|
339
|
+
totalPercentUsed: number;
|
|
340
|
+
/**
|
|
341
|
+
* Percent (0–100) of the FIRST-PARTY model pool (Auto/Composer)
|
|
342
|
+
* consumed — Cursor's autoPercentUsed. 0 when unreported.
|
|
343
|
+
*
|
|
344
|
+
* @generated from field: double auto_percent_used = 6;
|
|
345
|
+
*/
|
|
346
|
+
autoPercentUsed: number;
|
|
347
|
+
/**
|
|
348
|
+
* Percent (0–100) of the THIRD-PARTY API model pool (Claude/GPT/…)
|
|
349
|
+
* consumed — Cursor's apiPercentUsed. 0 when unreported. This is the
|
|
350
|
+
* usage-guard metric: the pools diverge hard in practice (T06
|
|
351
|
+
* observed api=100 while total=22.35), so the blended figure must
|
|
352
|
+
* never gate selection.
|
|
353
|
+
*
|
|
354
|
+
* @generated from field: double api_percent_used = 7;
|
|
355
|
+
*/
|
|
356
|
+
apiPercentUsed: number;
|
|
357
|
+
};
|
|
358
|
+
/**
|
|
359
|
+
* Describes the message ai.stigmer.platform.cursoraccount.v1.CursorMemberSpend.
|
|
360
|
+
* Use `create(CursorMemberSpendSchema)` to create a new message.
|
|
361
|
+
*/
|
|
362
|
+
export declare const CursorMemberSpendSchema: GenMessage<CursorMemberSpend>;
|
|
363
|
+
/**
|
|
364
|
+
* CursorAccountSyncSnapshot is the roster + spend state of one account as
|
|
365
|
+
* of one sync run. Append-only: each sync inserts a new snapshot, so the
|
|
366
|
+
* collection is a spend-over-time history; read surfaces use the latest.
|
|
367
|
+
*
|
|
368
|
+
* @generated from message ai.stigmer.platform.cursoraccount.v1.CursorAccountSyncSnapshot
|
|
369
|
+
*/
|
|
370
|
+
export type CursorAccountSyncSnapshot = Message<"ai.stigmer.platform.cursoraccount.v1.CursorAccountSyncSnapshot"> & {
|
|
371
|
+
/**
|
|
372
|
+
* Account this snapshot belongs to.
|
|
373
|
+
*
|
|
374
|
+
* @generated from field: string account_id = 1;
|
|
375
|
+
*/
|
|
376
|
+
accountId: string;
|
|
377
|
+
/**
|
|
378
|
+
* @generated from field: google.protobuf.Timestamp synced_at = 2;
|
|
379
|
+
*/
|
|
380
|
+
syncedAt?: Timestamp;
|
|
381
|
+
/**
|
|
382
|
+
* @generated from field: repeated ai.stigmer.platform.cursoraccount.v1.CursorTeamMember members = 3;
|
|
383
|
+
*/
|
|
384
|
+
members: CursorTeamMember[];
|
|
385
|
+
/**
|
|
386
|
+
* @generated from field: repeated ai.stigmer.platform.cursoraccount.v1.CursorMemberSpend spend = 4;
|
|
387
|
+
*/
|
|
388
|
+
spend: CursorMemberSpend[];
|
|
389
|
+
/**
|
|
390
|
+
* Start of the Cursor billing cycle the spend figures cover
|
|
391
|
+
* (subscriptionCycleStart).
|
|
392
|
+
*
|
|
393
|
+
* @generated from field: google.protobuf.Timestamp cycle_start = 5;
|
|
394
|
+
*/
|
|
395
|
+
cycleStart?: Timestamp;
|
|
396
|
+
/**
|
|
397
|
+
* Non-empty when the sync partially failed (e.g. spend endpoint
|
|
398
|
+
* errored while roster succeeded). The snapshot still records what was
|
|
399
|
+
* fetched; the console surfaces the message.
|
|
400
|
+
*
|
|
401
|
+
* @generated from field: string sync_error = 6;
|
|
402
|
+
*/
|
|
403
|
+
syncError: string;
|
|
404
|
+
};
|
|
405
|
+
/**
|
|
406
|
+
* Describes the message ai.stigmer.platform.cursoraccount.v1.CursorAccountSyncSnapshot.
|
|
407
|
+
* Use `create(CursorAccountSyncSnapshotSchema)` to create a new message.
|
|
408
|
+
*/
|
|
409
|
+
export declare const CursorAccountSyncSnapshotSchema: GenMessage<CursorAccountSyncSnapshot>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts,import_extension=js"
|
|
2
|
+
// @generated from file ai/stigmer/platform/cursoraccount/v1/cursor_account.proto (package ai.stigmer.platform.cursoraccount.v1, syntax proto3)
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1";
|
|
5
|
+
import { file_buf_validate_validate } from "../../../../../buf/validate/validate_pb.js";
|
|
6
|
+
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
|
|
7
|
+
/**
|
|
8
|
+
* Describes the file ai/stigmer/platform/cursoraccount/v1/cursor_account.proto.
|
|
9
|
+
*/
|
|
10
|
+
export const file_ai_stigmer_platform_cursoraccount_v1_cursor_account = /*@__PURE__*/ fileDesc("CjlhaS9zdGlnbWVyL3BsYXRmb3JtL2N1cnNvcmFjY291bnQvdjEvY3Vyc29yX2FjY291bnQucHJvdG8SJGFpLnN0aWdtZXIucGxhdGZvcm0uY3Vyc29yYWNjb3VudC52MSLTAwoNQ3Vyc29yQWNjb3VudBISCgphY2NvdW50X2lkGAEgASgJEiEKDGRpc3BsYXlfbmFtZRgCIAEoCUILukgIyAEBcgMYgAESHwoNYWRtaW5fYXBpX2tleRgDIAEoCUIIukgFcgMYgAISDwoHZW5hYmxlZBgEIAEoCBIfChNpc19wbGF0Zm9ybV9kZWZhdWx0GAUgASgIQgIYARIeCgdvcmdfaWRzGAYgAygJQg26SAqSAQciBXIDGIABEkoKC21lbWJlcl9rZXlzGAcgAygLMjUuYWkuc3RpZ21lci5wbGF0Zm9ybS5jdXJzb3JhY2NvdW50LnYxLkN1cnNvck1lbWJlcktleRISCgpjcmVhdGVkX2J5GAggASgJEi4KCmNyZWF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCnVwZGF0ZWRfYnkYCiABKAkSLgoKdXBkYXRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASIAoYb25fZGVtYW5kX3VzYWdlX2Rpc2FibGVkGAwgASgIEiIKEHRlYW1faW52aXRlX2xpbmsYDSABKAlCCLpIBXIDGIAEIusBCg9DdXJzb3JNZW1iZXJLZXkSDgoGa2V5X2lkGAEgASgJEhkKB2FwaV9rZXkYAiABKAlCCLpIBXIDGIACEhcKBWxhYmVsGAMgASgJQgi6SAVyAxiAARITCgtib3VuZF9lbWFpbBgEIAEoCRIVCg1ib3VuZF91c2VyX2lkGAUgASgJEhcKD2N1cnNvcl9rZXlfbmFtZRgGIAEoCRIPCgdlbmFibGVkGAcgASgIEhAKCGFkZGVkX2J5GAggASgJEiwKCGFkZGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJOChBDdXJzb3JUZWFtTWVtYmVyEg8KB3VzZXJfaWQYASABKAkSDQoFZW1haWwYAiABKAkSDAoEbmFtZRgDIAEoCRIMCgRyb2xlGAQgASgJItsBChFDdXJzb3JNZW1iZXJTcGVuZBIPCgd1c2VyX2lkGAEgASgJEg0KBWVtYWlsGAIgASgJEioKGWluY2x1ZGVkX3NwZW5kX3VzZF9taWNyb3MYAyABKANCB7pIBCICKAASKQoYb3ZlcmFnZV9zcGVuZF91c2RfbWljcm9zGAQgASgDQge6SAQiAigAEhoKEnRvdGFsX3BlcmNlbnRfdXNlZBgFIAEoARIZChFhdXRvX3BlcmNlbnRfdXNlZBgGIAEoARIYChBhcGlfcGVyY2VudF91c2VkGAcgASgBIrQCChlDdXJzb3JBY2NvdW50U3luY1NuYXBzaG90EhIKCmFjY291bnRfaWQYASABKAkSLQoJc3luY2VkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJHCgdtZW1iZXJzGAMgAygLMjYuYWkuc3RpZ21lci5wbGF0Zm9ybS5jdXJzb3JhY2NvdW50LnYxLkN1cnNvclRlYW1NZW1iZXISRgoFc3BlbmQYBCADKAsyNy5haS5zdGlnbWVyLnBsYXRmb3JtLmN1cnNvcmFjY291bnQudjEuQ3Vyc29yTWVtYmVyU3BlbmQSLwoLY3ljbGVfc3RhcnQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCnN5bmNfZXJyb3IYBiABKAliBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_timestamp]);
|
|
11
|
+
/**
|
|
12
|
+
* Describes the message ai.stigmer.platform.cursoraccount.v1.CursorAccount.
|
|
13
|
+
* Use `create(CursorAccountSchema)` to create a new message.
|
|
14
|
+
*/
|
|
15
|
+
export const CursorAccountSchema = /*@__PURE__*/ messageDesc(file_ai_stigmer_platform_cursoraccount_v1_cursor_account, 0);
|
|
16
|
+
/**
|
|
17
|
+
* Describes the message ai.stigmer.platform.cursoraccount.v1.CursorMemberKey.
|
|
18
|
+
* Use `create(CursorMemberKeySchema)` to create a new message.
|
|
19
|
+
*/
|
|
20
|
+
export const CursorMemberKeySchema = /*@__PURE__*/ messageDesc(file_ai_stigmer_platform_cursoraccount_v1_cursor_account, 1);
|
|
21
|
+
/**
|
|
22
|
+
* Describes the message ai.stigmer.platform.cursoraccount.v1.CursorTeamMember.
|
|
23
|
+
* Use `create(CursorTeamMemberSchema)` to create a new message.
|
|
24
|
+
*/
|
|
25
|
+
export const CursorTeamMemberSchema = /*@__PURE__*/ messageDesc(file_ai_stigmer_platform_cursoraccount_v1_cursor_account, 2);
|
|
26
|
+
/**
|
|
27
|
+
* Describes the message ai.stigmer.platform.cursoraccount.v1.CursorMemberSpend.
|
|
28
|
+
* Use `create(CursorMemberSpendSchema)` to create a new message.
|
|
29
|
+
*/
|
|
30
|
+
export const CursorMemberSpendSchema = /*@__PURE__*/ messageDesc(file_ai_stigmer_platform_cursoraccount_v1_cursor_account, 3);
|
|
31
|
+
/**
|
|
32
|
+
* Describes the message ai.stigmer.platform.cursoraccount.v1.CursorAccountSyncSnapshot.
|
|
33
|
+
* Use `create(CursorAccountSyncSnapshotSchema)` to create a new message.
|
|
34
|
+
*/
|
|
35
|
+
export const CursorAccountSyncSnapshotSchema = /*@__PURE__*/ messageDesc(file_ai_stigmer_platform_cursoraccount_v1_cursor_account, 4);
|
|
36
|
+
//# sourceMappingURL=cursor_account_pb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor_account_pb.js","sourceRoot":"","sources":["../../../../../../ai/stigmer/platform/cursoraccount/v1/cursor_account_pb.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,+IAA+I;AAC/I,oBAAoB;AAGpB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AAExF,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAGxE;;GAEG;AACH,MAAM,CAAC,MAAM,wDAAwD,GAAY,aAAa,CAC5F,QAAQ,CAAC,g3DAAg3D,EAAE,CAAC,0BAA0B,EAAE,8BAA8B,CAAC,CAAC,CAAC;AAwL37D;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA8B,aAAa,CACzE,WAAW,CAAC,wDAAwD,EAAE,CAAC,CAAC,CAAC;AAoF3E;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAgC,aAAa,CAC7E,WAAW,CAAC,wDAAwD,EAAE,CAAC,CAAC,CAAC;AAqC3E;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAiC,aAAa,CAC/E,WAAW,CAAC,wDAAwD,EAAE,CAAC,CAAC,CAAC;AAuE3E;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAkC,aAAa,CACjF,WAAW,CAAC,wDAAwD,EAAE,CAAC,CAAC,CAAC;AAkD3E;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAA0C,aAAa,CACjG,WAAW,CAAC,wDAAwD,EAAE,CAAC,CAAC,CAAC"}
|