@chopin-ai/harness-pi 0.2.0 → 0.3.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.
@@ -32,15 +32,39 @@ export declare const SubmissionSchema: Type.TUnion<[TObject<{
32
32
  * was answered.
33
33
  */
34
34
  export declare function lastFailure(submissions: Readonly<Record<string, Static<typeof SubmissionSchema>>>): string | undefined;
35
+ /** Why a submission got no answer, with the harness's detail, such as the provider's own message, when it gave one. */
36
+ export declare function unansweredText(settled: {
37
+ reason: string;
38
+ detail?: unknown;
39
+ }): string;
40
+ /** The detail the harness gave with an unanswered submission, as text. */
41
+ export declare function detailText(detail: unknown): string | undefined;
35
42
  type Call<A extends TSchema> = ReturnType<typeof method<A>> & {};
36
43
  type Query<A extends TSchema | undefined, R extends TSchema> = ReturnType<typeof method<A, R>> & {};
37
44
  declare const ForkArgs: TObject<{
38
45
  conversation: TNumber;
39
46
  at: TNumber;
40
47
  }>;
41
- /** `request`, chosen by the client, makes sending the same message again harmless: it is admitted once. */
48
+ /** The largest image a message may carry, before it is encoded. */
49
+ export declare const IMAGE_MAX_BYTES: number;
50
+ /** An image a message carries, in a format models take, as base64. */
51
+ export declare const ImageSchema: TObject<{
52
+ data: Type.TString;
53
+ mimeType: Type.TUnion<[Type.TLiteral<"image/png">, Type.TLiteral<"image/jpeg">, Type.TLiteral<"image/gif">, Type.TLiteral<"image/webp">]>;
54
+ }>;
55
+ export type Image = Static<typeof ImageSchema>;
56
+ /** The most images one message may carry. */
57
+ export declare const IMAGES_MAX = 20;
58
+ /**
59
+ * A message says something, shows something, or both. `request`, chosen by the client, makes sending the same message
60
+ * again harmless: it is admitted once.
61
+ */
42
62
  declare const SubmitArgs: TObject<{
43
63
  text: Type.TString;
64
+ images: Type.TOptional<TArray<TObject<{
65
+ data: Type.TString;
66
+ mimeType: Type.TUnion<[Type.TLiteral<"image/png">, Type.TLiteral<"image/jpeg">, Type.TLiteral<"image/gif">, Type.TLiteral<"image/webp">]>;
67
+ }>>>;
44
68
  steer: Type.TOptional<Type.TBoolean>;
45
69
  request: Type.TOptional<Type.TString>;
46
70
  }>;
@@ -55,6 +79,28 @@ declare const ModelArgs: TObject<{
55
79
  declare const NameArgs: TObject<{
56
80
  name: Type.TString;
57
81
  }>;
82
+ declare const ContextArgs: TObject<{
83
+ text: Type.TString;
84
+ }>;
85
+ declare const RetryArgs: TObject<{
86
+ text: Type.TOptional<Type.TString>;
87
+ images: Type.TOptional<TArray<TObject<{
88
+ data: Type.TString;
89
+ mimeType: Type.TUnion<[Type.TLiteral<"image/png">, Type.TLiteral<"image/jpeg">, Type.TLiteral<"image/gif">, Type.TLiteral<"image/webp">]>;
90
+ }>>>;
91
+ }>;
92
+ declare const ResetArgs: TObject<{
93
+ handoff: Type.TOptional<Type.TString>;
94
+ }>;
95
+ /** The kind of entry `retry` writes, which leaves the entries it names out of what the model sees; they stay in the transcript. */
96
+ export declare const REWIND_KIND = "chopin.rewind";
97
+ declare const QueueArgs: TObject<{
98
+ queue: TArray<TObject<{
99
+ id: TNumber;
100
+ text: Type.TOptional<Type.TString>;
101
+ steer: Type.TOptional<Type.TBoolean>;
102
+ }>>;
103
+ }>;
58
104
  /** A thinking level as the model library names them; the service takes only those the conversation's model has. */
59
105
  declare const ThinkingArgs: TObject<{
60
106
  level: Type.TString;
@@ -104,6 +150,31 @@ declare const Summaries: TArray<TObject<{
104
150
  created: TNumber;
105
151
  modified: TNumber;
106
152
  }>>;
153
+ /** A model the owner's agent can use now, with what a client shows to pick it. */
154
+ export declare const ModelChoiceSchema: TObject<{
155
+ provider: Type.TString;
156
+ modelId: Type.TString;
157
+ name: Type.TString;
158
+ contextWindow: TNumber;
159
+ images: Type.TBoolean;
160
+ thinkingLevels: TArray<Type.TString>;
161
+ }>;
162
+ /** The models the owner can use now, those whose providers have credentials, and the one a new conversation takes. */
163
+ export declare const ModelChoicesSchema: TObject<{
164
+ models: TArray<TObject<{
165
+ provider: Type.TString;
166
+ modelId: Type.TString;
167
+ name: Type.TString;
168
+ contextWindow: TNumber;
169
+ images: Type.TBoolean;
170
+ thinkingLevels: TArray<Type.TString>;
171
+ }>>;
172
+ current: Type.TUnion<[TObject<{
173
+ provider: Type.TString;
174
+ modelId: Type.TString;
175
+ }>, Type.TNull]>;
176
+ }>;
177
+ export type ModelChoices = Static<typeof ModelChoicesSchema>;
107
178
  /** An owner's conversations. */
108
179
  export declare const Conversations: import("@earendil-works/chord").RemoteContract<{
109
180
  readonly version: 1;
@@ -120,6 +191,8 @@ export declare const Conversations: import("@earendil-works/chord").RemoteContra
120
191
  loaded: Query<undefined, typeof LoadedSchema>;
121
192
  fork: Query<typeof ForkArgs, TNumber>;
122
193
  summaries: Query<undefined, typeof Summaries>;
194
+ /** Asked anew each time, so a credential set a moment ago shows its provider's models. */
195
+ models: Query<undefined, typeof ModelChoicesSchema>;
123
196
  };
124
197
  };
125
198
  };
@@ -164,16 +237,235 @@ export declare const Conversation: import("@earendil-works/chord").RemoteContrac
164
237
  transcript: Query<TObject<{}>, TArray<TUnknown>>;
165
238
  /** Takes back every message still queued, answering with their texts in the order they were sent. */
166
239
  withdraw: Query<TObject<{}>, typeof Texts>;
240
+ /**
241
+ * Arranges the messages still queued as listed, by their submission ids: in that order, each as it was, with new
242
+ * text, or to steer the turn under way; one left out is taken back. One the agent took up meanwhile stays sent,
243
+ * listed or not. A message put again is a new submission under a new id, as the queue in the view shows.
244
+ */
245
+ requeue: Call<typeof QueueArgs>;
246
+ /**
247
+ * Asks the latest message again, once the agent has stopped: as it was, or as what is given, which replaces it
248
+ * whole, its images included. The model no longer sees that message or anything after it.
249
+ */
250
+ retry: Query<typeof RetryArgs, TNumber>;
251
+ /** Starts the model on a fresh context, with a note to carry over if given; the transcript keeps everything. */
252
+ reset: Call<typeof ResetArgs>;
167
253
  abort: Call<TObject<{}>>;
168
254
  setMode: Call<typeof ModeArgs>;
169
255
  setModel: Call<typeof ModelArgs>;
170
256
  setName: Call<typeof NameArgs>;
257
+ /** What the client shows its user now, such as the page they are on; the model reads it before each request. */
258
+ setContext: Call<typeof ContextArgs>;
171
259
  setThinking: Call<typeof ThinkingArgs>;
172
260
  compact: Call<typeof CompactArgs>;
173
261
  };
174
262
  };
175
263
  };
176
264
  }>;
265
+ /** A provider the owner holds a credential for, and its kind; never the secret. */
266
+ export declare const CredentialSchema: TObject<{
267
+ provider: Type.TString;
268
+ type: Type.TUnion<[Type.TLiteral<"api_key">, Type.TLiteral<"oauth">]>;
269
+ }>;
270
+ export type CredentialInfo = Static<typeof CredentialSchema>;
271
+ declare const KeyArgs: TObject<{
272
+ provider: Type.TString;
273
+ key: Type.TString;
274
+ }>;
275
+ declare const ProviderArgs: TObject<{
276
+ provider: Type.TString;
277
+ }>;
278
+ /**
279
+ * The credentials an owner's agent reaches models with, where clients may set them. Secrets only ever travel to the
280
+ * service, which keeps each where it keeps that owner's credentials.
281
+ */
282
+ export declare const Credentials: import("@earendil-works/chord").RemoteContract<{
283
+ readonly version: 1;
284
+ readonly input: TObject<{}>;
285
+ readonly host: import("@earendil-works/chord").HostNamed;
286
+ readonly variants: {
287
+ owner: {
288
+ state: {
289
+ providers: TArray<TObject<{
290
+ provider: Type.TString;
291
+ type: Type.TUnion<[Type.TLiteral<"api_key">, Type.TLiteral<"oauth">]>;
292
+ }>>;
293
+ };
294
+ methods: {
295
+ setKey: Call<typeof KeyArgs>;
296
+ remove: Call<typeof ProviderArgs>;
297
+ };
298
+ };
299
+ };
300
+ }>;
301
+ /** An MCP server a client set, and how many tools it offers, or why it offers none yet; never its headers. */
302
+ export declare const McpServerSchema: TObject<{
303
+ name: Type.TString;
304
+ url: Type.TString;
305
+ tools: TNumber;
306
+ error: Type.TOptional<Type.TString>;
307
+ }>;
308
+ export type McpServerState = Static<typeof McpServerSchema>;
309
+ declare const McpArgs: TObject<{
310
+ name: Type.TString;
311
+ url: Type.TString;
312
+ headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
313
+ }>;
314
+ declare const McpNameArgs: TObject<{
315
+ name: Type.TString;
316
+ }>;
317
+ /**
318
+ * The MCP servers an owner's clients set, on top of the layer's: kept in memory alone, headers and all, so a client
319
+ * sets them again once the service restarts. Setting one by a name already set replaces it, its headers included.
320
+ */
321
+ export declare const Mcp: import("@earendil-works/chord").RemoteContract<{
322
+ readonly version: 1;
323
+ readonly input: TObject<{}>;
324
+ readonly host: import("@earendil-works/chord").HostNamed;
325
+ readonly variants: {
326
+ owner: {
327
+ state: {
328
+ servers: TArray<TObject<{
329
+ name: Type.TString;
330
+ url: Type.TString;
331
+ tools: TNumber;
332
+ error: Type.TOptional<Type.TString>;
333
+ }>>;
334
+ };
335
+ methods: {
336
+ set: Call<typeof McpArgs>;
337
+ remove: Call<typeof McpNameArgs>;
338
+ };
339
+ };
340
+ };
341
+ }>;
342
+ /** Where the RSI loop stands: the layer version in use, the failures it knows, what waits for the owner, what it spent. */
343
+ export declare const LoopStandingSchema: TObject<{
344
+ version: TNumber;
345
+ inUse: TNumber;
346
+ archived: TNumber;
347
+ kinds: TNumber;
348
+ recurring: TNumber;
349
+ shelved: TNumber;
350
+ corrections: TNumber;
351
+ held: TNumber;
352
+ spentUsd: TNumber;
353
+ weeklyBudgetUsd: Type.TUnion<[TNumber, Type.TNull]>;
354
+ }>;
355
+ /** A change the loop kept, archived or in use. */
356
+ export declare const LoopChangeSchema: TObject<{
357
+ id: Type.TString;
358
+ added: Type.TString;
359
+ kind: Type.TString;
360
+ archived: Type.TBoolean;
361
+ text: Type.TString;
362
+ }>;
363
+ /** A kind of correction the owner made in enough sessions to be asked whether the loop learns from it. */
364
+ export declare const CorrectionKindSchema: TObject<{
365
+ key: Type.TString;
366
+ sessions: TNumber;
367
+ examples: TArray<Type.TString>;
368
+ }>;
369
+ /** A change the audit held for the owner to approve, which is still tested before it is kept, or refuse. */
370
+ export declare const HeldChangeSchema: TObject<{
371
+ id: Type.TString;
372
+ failure: Type.TString;
373
+ kind: Type.TString;
374
+ skill: Type.TOptional<Type.TString>;
375
+ text: Type.TString;
376
+ prediction: Type.TString;
377
+ reasons: TArray<Type.TString>;
378
+ }>;
379
+ /** How the loop runs: none runs without a weekly budget; models as `provider/model`. */
380
+ export declare const LoopSettingsSchema: TObject<{
381
+ weeklyBudgetUsd: Type.TUnion<[TNumber, Type.TNull]>;
382
+ regularModel: Type.TUnion<[Type.TString, Type.TNull]>;
383
+ strongModel: Type.TUnion<[Type.TString, Type.TNull]>;
384
+ holdForReview: Type.TBoolean;
385
+ }>;
386
+ export type LoopStanding = Static<typeof LoopStandingSchema>;
387
+ export type LoopChange = Static<typeof LoopChangeSchema>;
388
+ export type CorrectionKind = Static<typeof CorrectionKindSchema>;
389
+ export type HeldChange = Static<typeof HeldChangeSchema>;
390
+ export type LoopSettings = Static<typeof LoopSettingsSchema>;
391
+ declare const LoopChanges: TArray<TObject<{
392
+ id: Type.TString;
393
+ added: Type.TString;
394
+ kind: Type.TString;
395
+ archived: Type.TBoolean;
396
+ text: Type.TString;
397
+ }>>;
398
+ declare const CorrectionKinds: TArray<TObject<{
399
+ key: Type.TString;
400
+ sessions: TNumber;
401
+ examples: TArray<Type.TString>;
402
+ }>>;
403
+ declare const HeldChanges: TArray<TObject<{
404
+ id: Type.TString;
405
+ failure: Type.TString;
406
+ kind: Type.TString;
407
+ skill: Type.TOptional<Type.TString>;
408
+ text: Type.TString;
409
+ prediction: Type.TString;
410
+ reasons: TArray<Type.TString>;
411
+ }>>;
412
+ declare const SettingsChange: TObject<{
413
+ weeklyBudgetUsd: Type.TOptional<Type.TUnion<[TNumber, Type.TNull]>>;
414
+ regularModel: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
415
+ strongModel: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
416
+ holdForReview: Type.TOptional<Type.TBoolean>;
417
+ }>;
418
+ declare const UndoArgs: TObject<{
419
+ id: Type.TString;
420
+ }>;
421
+ declare const AnswerArgs: TObject<{
422
+ key: Type.TString;
423
+ learn: Type.TBoolean;
424
+ }>;
425
+ declare const DecideArgs: TObject<{
426
+ id: Type.TString;
427
+ approve: Type.TBoolean;
428
+ }>;
429
+ /**
430
+ * The owner's RSI loop: what it learned and spent, and the decisions it waits on. Only clients reach it; the agent
431
+ * has no tool for it, so it never approves its own changes.
432
+ */
433
+ export declare const Loop: import("@earendil-works/chord").RemoteContract<{
434
+ readonly version: 1;
435
+ readonly input: TObject<{}>;
436
+ readonly host: import("@earendil-works/chord").HostNamed;
437
+ readonly variants: {
438
+ owner: {
439
+ state: {};
440
+ methods: {
441
+ standing: Query<undefined, typeof LoopStandingSchema>;
442
+ changes: Query<undefined, typeof LoopChanges>;
443
+ /** Archives a change in use, named by its id or a prefix of it, so new conversations run without it. */
444
+ undo: Call<typeof UndoArgs>;
445
+ corrections: Query<undefined, typeof CorrectionKinds>;
446
+ /** Learns from every correction of a kind, or dismisses them all. */
447
+ answer: Call<typeof AnswerArgs>;
448
+ held: Query<undefined, typeof HeldChanges>;
449
+ decide: Call<typeof DecideArgs>;
450
+ settings: Query<undefined, typeof LoopSettingsSchema>;
451
+ /** Changes the settings given, a null clearing one; answers with all of them. */
452
+ setSettings: Query<typeof SettingsChange, typeof LoopSettingsSchema>;
453
+ };
454
+ };
455
+ };
456
+ }>;
457
+ /** The loop a service's owner is answered from; an action refused says why, and nothing else of it fails that way. */
458
+ export interface LoopControl {
459
+ standing(): Promise<LoopStanding>;
460
+ changes(): Promise<LoopChange[]>;
461
+ undo(id: string): Promise<string | undefined>;
462
+ corrections(): Promise<CorrectionKind[]>;
463
+ answer(key: string, learn: boolean): Promise<string | undefined>;
464
+ held(): Promise<HeldChange[]>;
465
+ decide(id: string, approve: boolean): Promise<string | undefined>;
466
+ settings(): Promise<LoopSettings>;
467
+ setSettings(change: Partial<LoopSettings>): Promise<LoopSettings>;
468
+ }
177
469
  export interface ConnectOptions {
178
470
  /** A credential sent as a bearer header, kept out of the address and so out of any proxy's logs; not in browsers. */
179
471
  token?: string;
package/dist/protocol.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import { createHost, hostNamed, isChordError, method, remote, webSocketLink } from "@earendil-works/chord";
2
2
  import { Type } from "typebox";
3
- import { unansweredText } from "./acp.js";
4
3
  import { backoff } from "./backoff.js";
5
4
  export const HOST = "chopin";
6
5
  /** What a conversation may do: `read` admits only tools that change nothing; `full` admits every tool. */
@@ -21,10 +20,33 @@ export function lastFailure(submissions) {
21
20
  const outcome = latest === undefined ? undefined : submissions[String(latest)];
22
21
  return outcome?.status === "unanswered" && outcome.reason !== "aborted" ? unansweredText(outcome) : undefined;
23
22
  }
23
+ /** Why a submission got no answer, with the harness's detail, such as the provider's own message, when it gave one. */
24
+ export function unansweredText(settled) {
25
+ const detail = detailText(settled.detail);
26
+ return detail === undefined ? settled.reason : `${settled.reason}: ${detail}`;
27
+ }
28
+ /** The detail the harness gave with an unanswered submission, as text. */
29
+ export function detailText(detail) {
30
+ return detail === undefined ? undefined : typeof detail === "string" ? detail : JSON.stringify(detail);
31
+ }
24
32
  const ForkArgs = Type.Object({ conversation: Type.Number(), at: Type.Number() });
25
- /** `request`, chosen by the client, makes sending the same message again harmless: it is admitted once. */
33
+ /** The largest image a message may carry, before it is encoded. */
34
+ export const IMAGE_MAX_BYTES = 5 * 1024 * 1024;
35
+ /** An image a message carries, in a format models take, as base64. */
36
+ export const ImageSchema = Type.Object({
37
+ data: Type.String({ minLength: 1, maxLength: 4 * Math.ceil(IMAGE_MAX_BYTES / 3) }),
38
+ mimeType: Type.Union([Type.Literal("image/png"), Type.Literal("image/jpeg"), Type.Literal("image/gif"), Type.Literal("image/webp")]),
39
+ });
40
+ /** The most images one message may carry. */
41
+ export const IMAGES_MAX = 20;
42
+ const Images = Type.Array(ImageSchema, { maxItems: IMAGES_MAX });
43
+ /**
44
+ * A message says something, shows something, or both. `request`, chosen by the client, makes sending the same message
45
+ * again harmless: it is admitted once.
46
+ */
26
47
  const SubmitArgs = Type.Object({
27
- text: Type.String({ minLength: 1 }),
48
+ text: Type.String(),
49
+ images: Type.Optional(Images),
28
50
  steer: Type.Optional(Type.Boolean()),
29
51
  request: Type.Optional(Type.String({ minLength: 1 })),
30
52
  });
@@ -33,6 +55,14 @@ const ModeArgs = Type.Object({ mode: ModeSchema });
33
55
  const ModelArgs = Type.Object({ provider: Type.String({ minLength: 1 }), modelId: Type.String({ minLength: 1 }) });
34
56
  const NoArgs = Type.Object({});
35
57
  const NameArgs = Type.Object({ name: Type.String({ maxLength: 200 }) });
58
+ const ContextArgs = Type.Object({ text: Type.String({ maxLength: 4_000 }) });
59
+ const RetryArgs = Type.Object({ text: Type.Optional(Type.String()), images: Type.Optional(Images) });
60
+ const ResetArgs = Type.Object({ handoff: Type.Optional(Type.String({ minLength: 1 })) });
61
+ /** The kind of entry `retry` writes, which leaves the entries it names out of what the model sees; they stay in the transcript. */
62
+ export const REWIND_KIND = "chopin.rewind";
63
+ const QueueArgs = Type.Object({
64
+ queue: Type.Array(Type.Object({ id: Type.Number(), text: Type.Optional(Type.String({ minLength: 1 })), steer: Type.Optional(Type.Boolean()) })),
65
+ });
36
66
  /** A thinking level as the model library names them; the service takes only those the conversation's model has. */
37
67
  const ThinkingArgs = Type.Object({ level: Type.String({ minLength: 1 }) });
38
68
  const CompactArgs = Type.Object({ instructions: Type.Optional(Type.String()) });
@@ -64,6 +94,17 @@ export const SummarySchema = Type.Object({
64
94
  modified: Type.Number(),
65
95
  });
66
96
  const Summaries = Type.Array(SummarySchema);
97
+ /** A model the owner's agent can use now, with what a client shows to pick it. */
98
+ export const ModelChoiceSchema = Type.Object({
99
+ provider: Type.String(),
100
+ modelId: Type.String(),
101
+ name: Type.String(),
102
+ contextWindow: Type.Number(),
103
+ images: Type.Boolean(),
104
+ thinkingLevels: Type.Array(Type.String()),
105
+ });
106
+ /** The models the owner can use now, those whose providers have credentials, and the one a new conversation takes. */
107
+ export const ModelChoicesSchema = Type.Object({ models: Type.Array(ModelChoiceSchema), current: Type.Union([ModelArgs, Type.Null()]) });
67
108
  /** An owner's conversations. */
68
109
  export const Conversations = remote("chopin.conversations", {
69
110
  version: 1,
@@ -78,6 +119,8 @@ export const Conversations = remote("chopin.conversations", {
78
119
  loaded: method(undefined, LoadedSchema),
79
120
  fork: method(ForkArgs, Type.Number()),
80
121
  summaries: method(undefined, Summaries),
122
+ /** Asked anew each time, so a credential set a moment ago shows its provider's models. */
123
+ models: method(undefined, ModelChoicesSchema),
81
124
  },
82
125
  },
83
126
  },
@@ -108,16 +151,146 @@ export const Conversation = remote("chopin.conversation", {
108
151
  transcript: method(NoArgs, Type.Array(Type.Unknown())),
109
152
  /** Takes back every message still queued, answering with their texts in the order they were sent. */
110
153
  withdraw: method(NoArgs, Texts),
154
+ /**
155
+ * Arranges the messages still queued as listed, by their submission ids: in that order, each as it was, with new
156
+ * text, or to steer the turn under way; one left out is taken back. One the agent took up meanwhile stays sent,
157
+ * listed or not. A message put again is a new submission under a new id, as the queue in the view shows.
158
+ */
159
+ requeue: method(QueueArgs),
160
+ /**
161
+ * Asks the latest message again, once the agent has stopped: as it was, or as what is given, which replaces it
162
+ * whole, its images included. The model no longer sees that message or anything after it.
163
+ */
164
+ retry: method(RetryArgs, Type.Number()),
165
+ /** Starts the model on a fresh context, with a note to carry over if given; the transcript keeps everything. */
166
+ reset: method(ResetArgs),
111
167
  abort: method(NoArgs),
112
168
  setMode: method(ModeArgs),
113
169
  setModel: method(ModelArgs),
114
170
  setName: method(NameArgs),
171
+ /** What the client shows its user now, such as the page they are on; the model reads it before each request. */
172
+ setContext: method(ContextArgs),
115
173
  setThinking: method(ThinkingArgs),
116
174
  compact: method(CompactArgs),
117
175
  },
118
176
  },
119
177
  },
120
178
  });
179
+ /** A provider the owner holds a credential for, and its kind; never the secret. */
180
+ export const CredentialSchema = Type.Object({ provider: Type.String(), type: Type.Union([Type.Literal("api_key"), Type.Literal("oauth")]) });
181
+ const CredentialList = Type.Array(CredentialSchema);
182
+ const KeyArgs = Type.Object({ provider: Type.String({ minLength: 1 }), key: Type.String({ minLength: 1 }) });
183
+ const ProviderArgs = Type.Object({ provider: Type.String({ minLength: 1 }) });
184
+ /**
185
+ * The credentials an owner's agent reaches models with, where clients may set them. Secrets only ever travel to the
186
+ * service, which keeps each where it keeps that owner's credentials.
187
+ */
188
+ export const Credentials = remote("chopin.credentials", {
189
+ version: 1,
190
+ input: Type.Object({}),
191
+ host: hostNamed(HOST),
192
+ variants: {
193
+ owner: {
194
+ state: { providers: CredentialList },
195
+ methods: {
196
+ setKey: method(KeyArgs),
197
+ remove: method(ProviderArgs),
198
+ },
199
+ },
200
+ },
201
+ });
202
+ /** An MCP server a client set, and how many tools it offers, or why it offers none yet; never its headers. */
203
+ export const McpServerSchema = Type.Object({ name: Type.String(), url: Type.String(), tools: Type.Number(), error: Type.Optional(Type.String()) });
204
+ const McpServerName = Type.String({ pattern: "^[A-Za-z0-9_-]{1,32}$" });
205
+ const McpArgs = Type.Object({ name: McpServerName, url: Type.String({ minLength: 1 }), headers: Type.Optional(Type.Record(Type.String(), Type.String())) });
206
+ const McpNameArgs = Type.Object({ name: McpServerName });
207
+ /**
208
+ * The MCP servers an owner's clients set, on top of the layer's: kept in memory alone, headers and all, so a client
209
+ * sets them again once the service restarts. Setting one by a name already set replaces it, its headers included.
210
+ */
211
+ export const Mcp = remote("chopin.mcp", {
212
+ version: 1,
213
+ input: Type.Object({}),
214
+ host: hostNamed(HOST),
215
+ variants: {
216
+ owner: {
217
+ state: { servers: Type.Array(McpServerSchema) },
218
+ methods: {
219
+ set: method(McpArgs),
220
+ remove: method(McpNameArgs),
221
+ },
222
+ },
223
+ },
224
+ });
225
+ /** Where the RSI loop stands: the layer version in use, the failures it knows, what waits for the owner, what it spent. */
226
+ export const LoopStandingSchema = Type.Object({
227
+ version: Type.Number(),
228
+ inUse: Type.Number(),
229
+ archived: Type.Number(),
230
+ kinds: Type.Number(),
231
+ recurring: Type.Number(),
232
+ shelved: Type.Number(),
233
+ corrections: Type.Number(),
234
+ held: Type.Number(),
235
+ spentUsd: Type.Number(),
236
+ weeklyBudgetUsd: Type.Union([Type.Number(), Type.Null()]),
237
+ });
238
+ /** A change the loop kept, archived or in use. */
239
+ export const LoopChangeSchema = Type.Object({ id: Type.String(), added: Type.String(), kind: Type.String(), archived: Type.Boolean(), text: Type.String() });
240
+ /** A kind of correction the owner made in enough sessions to be asked whether the loop learns from it. */
241
+ export const CorrectionKindSchema = Type.Object({ key: Type.String(), sessions: Type.Number(), examples: Type.Array(Type.String()) });
242
+ /** A change the audit held for the owner to approve, which is still tested before it is kept, or refuse. */
243
+ export const HeldChangeSchema = Type.Object({
244
+ id: Type.String(),
245
+ failure: Type.String(),
246
+ kind: Type.String(),
247
+ skill: Type.Optional(Type.String()),
248
+ text: Type.String(),
249
+ prediction: Type.String(),
250
+ reasons: Type.Array(Type.String()),
251
+ });
252
+ /** How the loop runs: none runs without a weekly budget; models as `provider/model`. */
253
+ export const LoopSettingsSchema = Type.Object({
254
+ weeklyBudgetUsd: Type.Union([Type.Number({ minimum: 0 }), Type.Null()]),
255
+ regularModel: Type.Union([Type.String({ minLength: 1 }), Type.Null()]),
256
+ strongModel: Type.Union([Type.String({ minLength: 1 }), Type.Null()]),
257
+ holdForReview: Type.Boolean(),
258
+ });
259
+ const LoopChanges = Type.Array(LoopChangeSchema);
260
+ const CorrectionKinds = Type.Array(CorrectionKindSchema);
261
+ const HeldChanges = Type.Array(HeldChangeSchema);
262
+ const SettingsChange = Type.Partial(LoopSettingsSchema);
263
+ const UndoArgs = Type.Object({ id: Type.String({ minLength: 1 }) });
264
+ const AnswerArgs = Type.Object({ key: Type.String({ minLength: 1 }), learn: Type.Boolean() });
265
+ const DecideArgs = Type.Object({ id: Type.String({ minLength: 1 }), approve: Type.Boolean() });
266
+ /**
267
+ * The owner's RSI loop: what it learned and spent, and the decisions it waits on. Only clients reach it; the agent
268
+ * has no tool for it, so it never approves its own changes.
269
+ */
270
+ export const Loop = remote("chopin.loop", {
271
+ version: 1,
272
+ input: Type.Object({}),
273
+ host: hostNamed(HOST),
274
+ variants: {
275
+ owner: {
276
+ state: {},
277
+ methods: {
278
+ standing: method(undefined, LoopStandingSchema),
279
+ changes: method(undefined, LoopChanges),
280
+ /** Archives a change in use, named by its id or a prefix of it, so new conversations run without it. */
281
+ undo: method(UndoArgs),
282
+ corrections: method(undefined, CorrectionKinds),
283
+ /** Learns from every correction of a kind, or dismisses them all. */
284
+ answer: method(AnswerArgs),
285
+ held: method(undefined, HeldChanges),
286
+ decide: method(DecideArgs),
287
+ settings: method(undefined, LoopSettingsSchema),
288
+ /** Changes the settings given, a null clearing one; answers with all of them. */
289
+ setSettings: method(SettingsChange, LoopSettingsSchema),
290
+ },
291
+ },
292
+ },
293
+ });
121
294
  /**
122
295
  * A client host connected to the agent service at `url`, which carries the client's credential. A link that drops
123
296
  * is dialled again, waiting longer each time, until the host is closed; references come back live once the service
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}