@chipschat/harness 0.0.0-stage → 1.0.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/LICENSE +201 -0
- package/README.md +66 -2
- package/dist/asks.d.ts +75 -0
- package/dist/asks.d.ts.map +1 -0
- package/dist/asks.js +103 -0
- package/dist/asks.js.map +1 -0
- package/dist/connect.d.ts +406 -0
- package/dist/connect.d.ts.map +1 -0
- package/dist/connect.js +883 -0
- package/dist/connect.js.map +1 -0
- package/dist/events.d.ts +89 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +36 -0
- package/dist/events.js.map +1 -0
- package/dist/files.d.ts +34 -0
- package/dist/files.d.ts.map +1 -0
- package/dist/files.js +78 -0
- package/dist/files.js.map +1 -0
- package/dist/heard.d.ts +22 -0
- package/dist/heard.d.ts.map +1 -0
- package/dist/heard.js +32 -0
- package/dist/heard.js.map +1 -0
- package/dist/index.d.ts +56 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/join.d.ts +101 -0
- package/dist/join.d.ts.map +1 -0
- package/dist/join.js +289 -0
- package/dist/join.js.map +1 -0
- package/dist/keep.d.ts +33 -0
- package/dist/keep.d.ts.map +1 -0
- package/dist/keep.js +160 -0
- package/dist/keep.js.map +1 -0
- package/dist/lane.d.ts +73 -0
- package/dist/lane.d.ts.map +1 -0
- package/dist/lane.js +105 -0
- package/dist/lane.js.map +1 -0
- package/dist/outbox.d.ts +50 -0
- package/dist/outbox.d.ts.map +1 -0
- package/dist/outbox.js +52 -0
- package/dist/outbox.js.map +1 -0
- package/dist/project.d.ts +224 -0
- package/dist/project.d.ts.map +1 -0
- package/dist/project.js +619 -0
- package/dist/project.js.map +1 -0
- package/dist/prompt.d.ts +61 -0
- package/dist/prompt.d.ts.map +1 -0
- package/dist/prompt.js +87 -0
- package/dist/prompt.js.map +1 -0
- package/dist/rules.d.ts +18 -0
- package/dist/rules.d.ts.map +1 -0
- package/dist/rules.js +25 -0
- package/dist/rules.js.map +1 -0
- package/dist/run.d.ts +246 -0
- package/dist/run.d.ts.map +1 -0
- package/dist/run.js +295 -0
- package/dist/run.js.map +1 -0
- package/dist/sending.d.ts +78 -0
- package/dist/sending.d.ts.map +1 -0
- package/dist/sending.js +149 -0
- package/dist/sending.js.map +1 -0
- package/dist/service.d.ts +124 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +349 -0
- package/dist/service.js.map +1 -0
- package/dist/settings.d.ts +137 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +228 -0
- package/dist/settings.js.map +1 -0
- package/dist/steps.d.ts +27 -0
- package/dist/steps.d.ts.map +1 -0
- package/dist/steps.js +26 -0
- package/dist/steps.js.map +1 -0
- package/dist/store.d.ts +35 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +52 -0
- package/dist/store.js.map +1 -0
- package/package.json +38 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"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"}
|
package/dist/events.d.ts
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a harness hears, typed from the protocol. The wire is snake_case and stays that way in
|
|
3
|
+
* handlers: an event is the protocol's object, not a translation of it, so the reference on
|
|
4
|
+
* the docs site is the reference for these too.
|
|
5
|
+
*/
|
|
6
|
+
import type { AgentAsked, AgentAttached, AgentFork, AgentReleased, AnyEvent, ApprovalResolved, BudgetWarning, Feedback, Hello, LaneUpdated, MessageNew, MessageOverheard, PolicyUpdated, QuestionAnswered, RunCancel, RunPause, RunRequested, RunResume, RunSteer } from "@chipschat/protocol";
|
|
7
|
+
export type ConnectionState = "connecting" | "open" | "closed";
|
|
8
|
+
/** What Chips did with a message a person sent mid-run: queued for the next look, or steered. */
|
|
9
|
+
export interface Receipt {
|
|
10
|
+
readonly idempotencyKey: string;
|
|
11
|
+
readonly disposition: "queued" | "steered";
|
|
12
|
+
}
|
|
13
|
+
/** Everything `chips.on(...)` can listen for, by name. */
|
|
14
|
+
export interface ChipsEvents {
|
|
15
|
+
/**
|
|
16
|
+
* Something said to this harness: a person's message, or another harness addressing it. Its
|
|
17
|
+
* `context` is what was said in the room since this harness last spoke there (ADR 0088), and
|
|
18
|
+
* `context.files` the room's files at their current version, each with a URL (ADR 0099);
|
|
19
|
+
* `renderContext(event.context)` writes both as plain text to go ahead of the turn's words. Its
|
|
20
|
+
* `room` says who is in the room, with the handle that reaches each, and `room.notes[id]` is the
|
|
21
|
+
* note for each agent in `for` (ADR 0092): put it first in that agent's turn.
|
|
22
|
+
*/
|
|
23
|
+
readonly "message.new": MessageNew;
|
|
24
|
+
/**
|
|
25
|
+
* Something said in a room this harness is in, for somebody else (ADR 0081): context, not a
|
|
26
|
+
* turn. `held` is set when Chips stopped two harnesses talking until a person speaks.
|
|
27
|
+
*/
|
|
28
|
+
readonly "message.overheard": MessageOverheard;
|
|
29
|
+
readonly "approval.resolved": ApprovalResolved;
|
|
30
|
+
readonly "question.answered": QuestionAnswered;
|
|
31
|
+
readonly "run.steer": RunSteer;
|
|
32
|
+
readonly "run.pause": RunPause;
|
|
33
|
+
readonly "run.resume": RunResume;
|
|
34
|
+
readonly "run.cancel": RunCancel;
|
|
35
|
+
readonly "run.requested": RunRequested;
|
|
36
|
+
/** News of a lane this harness opened, in the space it linked the lane into (M3.5). */
|
|
37
|
+
readonly "lane.updated": LaneUpdated;
|
|
38
|
+
readonly "policy.updated": PolicyUpdated;
|
|
39
|
+
/**
|
|
40
|
+
* One of this harness's agents was put in a room (ADR 0087): added, moved in, or brought back by
|
|
41
|
+
* an unarchive. `space_id` is the room, and `catch_up` its last lines before the agent joined
|
|
42
|
+
* (ADR 0088), for the agent's next turn there. Heard only by a harness that declares `agents`.
|
|
43
|
+
*/
|
|
44
|
+
readonly "agent.attached": AgentAttached;
|
|
45
|
+
/**
|
|
46
|
+
* One of this harness's agents was taken out of its room, and is free (ADR 0087): `reason` says
|
|
47
|
+
* why — `archived` (its room was archived: archive what it is, and restore it when it is
|
|
48
|
+
* attached again), `deleted` (with `delete`, the person asked to delete it on this side too),
|
|
49
|
+
* `moved`, `agent_archived` or `removed`. What it says while free is held, and posted in the next
|
|
50
|
+
* room it joins.
|
|
51
|
+
*/
|
|
52
|
+
readonly "agent.released": AgentReleased;
|
|
53
|
+
/**
|
|
54
|
+
* A person asked for a copy of one of this harness's agents in a room (ADR 0087, Fork): copy what
|
|
55
|
+
* the agent remembers, then `chips.agents.register` the copy with `forkedFrom` (this event's
|
|
56
|
+
* `agent_id`) and `spaceId` (its `space_id`), and it joins that room. The room waits a minute
|
|
57
|
+
* (`FORK_WAIT_MS`) from the event's `ts`; a copy registered later is free. Heard only by a
|
|
58
|
+
* harness that declares `forks`, which no person is offered otherwise.
|
|
59
|
+
*/
|
|
60
|
+
readonly "agent.fork": AgentFork;
|
|
61
|
+
/**
|
|
62
|
+
* A person asked this harness for a new agent in a room (ADR 0108): make one that remembers
|
|
63
|
+
* nothing from elsewhere, called this event's `name`, then `chips.agents.register` it with
|
|
64
|
+
* `madeFor` (this event's `id`) and `spaceId` (its `space_id`), and it joins that room. The room
|
|
65
|
+
* waits a minute (`NEW_AGENT_WAIT_MS`) from the event's `ts`; an agent registered later is free.
|
|
66
|
+
* Heard only by a harness that declares `new_agents`, which no person is offered otherwise.
|
|
67
|
+
*/
|
|
68
|
+
readonly "agent.asked": AgentAsked;
|
|
69
|
+
readonly "budget.warning": BudgetWarning;
|
|
70
|
+
/**
|
|
71
|
+
* A thumb, or a note about what went wrong, on one of this harness's messages (M3.4). Only
|
|
72
|
+
* the harness whose message it is hears it; `from` says who gave it, and their role.
|
|
73
|
+
*/
|
|
74
|
+
readonly feedback: Feedback;
|
|
75
|
+
readonly hello: Hello;
|
|
76
|
+
/** Every event, whatever its type, in `seq` order. */
|
|
77
|
+
readonly event: AnyEvent;
|
|
78
|
+
readonly receipt: Receipt;
|
|
79
|
+
readonly state: ConnectionState;
|
|
80
|
+
}
|
|
81
|
+
export type Handler<T> = (event: T) => void | Promise<void>;
|
|
82
|
+
/** A small typed emitter. Handlers run in order; one that throws does not stop the others. */
|
|
83
|
+
export declare class Emitter<Events extends object> {
|
|
84
|
+
private readonly handlers;
|
|
85
|
+
on<K extends keyof Events>(name: K, handler: Handler<Events[K]>): () => void;
|
|
86
|
+
emit<K extends keyof Events>(name: K, value: Events[K]): void;
|
|
87
|
+
count(name: keyof Events): number;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,KAAK,EACL,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,QAAQ,EACT,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE/D,iGAAiG;AACjG,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC5C;AAED,0DAA0D;AAC1D,MAAM,WAAW,WAAW;IAC1B;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,YAAY,CAAC;IACvC,uFAAuF;IACvF,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;IACrC,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC;IACzC;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC;IACzC;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC;IACnC,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;CACjC;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5D,8FAA8F;AAC9F,qBAAa,OAAO,CAAC,MAAM,SAAS,MAAM;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgD;IAEzE,EAAE,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAY5E,IAAI,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;IAW7D,KAAK,CAAC,IAAI,EAAE,MAAM,MAAM,GAAG,MAAM;CAGlC"}
|
package/dist/events.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a harness hears, typed from the protocol. The wire is snake_case and stays that way in
|
|
3
|
+
* handlers: an event is the protocol's object, not a translation of it, so the reference on
|
|
4
|
+
* the docs site is the reference for these too.
|
|
5
|
+
*/
|
|
6
|
+
/** A small typed emitter. Handlers run in order; one that throws does not stop the others. */
|
|
7
|
+
export class Emitter {
|
|
8
|
+
handlers = new Map();
|
|
9
|
+
on(name, handler) {
|
|
10
|
+
let set = this.handlers.get(name);
|
|
11
|
+
if (set === undefined) {
|
|
12
|
+
set = new Set();
|
|
13
|
+
this.handlers.set(name, set);
|
|
14
|
+
}
|
|
15
|
+
set.add(handler);
|
|
16
|
+
return () => {
|
|
17
|
+
set?.delete(handler);
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
emit(name, value) {
|
|
21
|
+
for (const handler of this.handlers.get(name) ?? []) {
|
|
22
|
+
try {
|
|
23
|
+
const result = handler(value);
|
|
24
|
+
if (result instanceof Promise)
|
|
25
|
+
result.catch(() => undefined);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
// A handler that throws is the harness's bug, not a reason to drop the connection.
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
count(name) {
|
|
33
|
+
return this.handlers.get(name)?.size ?? 0;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAuGH,8FAA8F;AAC9F,MAAM,OAAO,OAAO;IACD,QAAQ,GAAG,IAAI,GAAG,EAAqC,CAAC;IAEzE,EAAE,CAAyB,IAAO,EAAE,OAA2B;QAC7D,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,OAAyB,CAAC,CAAC;QACnC,OAAO,GAAG,EAAE;YACV,GAAG,EAAE,MAAM,CAAC,OAAyB,CAAC,CAAC;QACzC,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CAAyB,IAAO,EAAE,KAAgB;QACpD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACpD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAI,OAA8B,CAAC,KAAK,CAAC,CAAC;gBACtD,IAAI,MAAM,YAAY,OAAO;oBAAE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC/D,CAAC;YAAC,MAAM,CAAC;gBACP,mFAAmF;YACrF,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAkB;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;IAC5C,CAAC;CACF"}
|
package/dist/files.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Files in and out (ADRs 0010, 0052, 0099). Out: `upload` asks for a slot and sends the bytes, in
|
|
3
|
+
* four-megabyte pieces at an offset when there are more than that, asking the server how far it
|
|
4
|
+
* got after a piece fails and going on from there; the upload id goes on a post as `uploadIds`.
|
|
5
|
+
* In: an attachment's signed URL is bound to the token that was handed it, so `download` fetches
|
|
6
|
+
* it with that token as the bearer, which a plain `fetch` of the URL would not.
|
|
7
|
+
*/
|
|
8
|
+
import type { SignedAttachment } from "@chipschat/protocol";
|
|
9
|
+
/** How big a piece is: what the phone and the desktop send (ADR 0052). */
|
|
10
|
+
export declare const PIECE_BYTES: number;
|
|
11
|
+
export interface UploadInput {
|
|
12
|
+
readonly bytes: Uint8Array;
|
|
13
|
+
/** The name a person sees. The server reads the type from the bytes, never from this. */
|
|
14
|
+
readonly filename: string;
|
|
15
|
+
/** Keep a photo's or a video's metadata (where it was taken); dropped unless said. */
|
|
16
|
+
readonly keepMetadata?: boolean | undefined;
|
|
17
|
+
}
|
|
18
|
+
/** What an upload turned out to be, as the server measured it. */
|
|
19
|
+
export interface Uploaded {
|
|
20
|
+
/** What a post names in `uploadIds`. */
|
|
21
|
+
readonly attachmentId: string;
|
|
22
|
+
readonly filename: string;
|
|
23
|
+
readonly mimeType: string;
|
|
24
|
+
readonly byteSize: number;
|
|
25
|
+
readonly sha256: string;
|
|
26
|
+
readonly kind: string;
|
|
27
|
+
}
|
|
28
|
+
/** One call to chipsd with the harness's token: JSON in and out, or bytes in. */
|
|
29
|
+
export type Call = (method: "GET" | "POST" | "PUT", path: string, body?: Readonly<Record<string, unknown>> | Uint8Array) => Promise<Record<string, unknown>>;
|
|
30
|
+
/** Send a file to chipsd. Resolves with what it stored; a refusal throws with the server's words. */
|
|
31
|
+
export declare function upload(call: Call, input: UploadInput): Promise<Uploaded>;
|
|
32
|
+
/** An attachment's bytes, fetched with the token its signed URL is bound to. */
|
|
33
|
+
export declare function download(fetcher: typeof fetch, token: string, attachment: Pick<SignedAttachment, "url"> | string): Promise<Uint8Array>;
|
|
34
|
+
//# sourceMappingURL=files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,0EAA0E;AAC1E,eAAO,MAAM,WAAW,QAAkB,CAAC;AAI3C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,yFAAyF;IACzF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,sFAAsF;IACtF,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7C;AAED,kEAAkE;AAClE,MAAM,WAAW,QAAQ;IACvB,wCAAwC;IACxC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,iFAAiF;AACjF,MAAM,MAAM,IAAI,GAAG,CACjB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,EAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,UAAU,KAClD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AActC,qGAAqG;AACrG,wBAAsB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAW9E;AAuCD,gFAAgF;AAChF,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,OAAO,KAAK,EACrB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,GAAG,MAAM,GACjD,OAAO,CAAC,UAAU,CAAC,CAOrB"}
|
package/dist/files.js
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Files in and out (ADRs 0010, 0052, 0099). Out: `upload` asks for a slot and sends the bytes, in
|
|
3
|
+
* four-megabyte pieces at an offset when there are more than that, asking the server how far it
|
|
4
|
+
* got after a piece fails and going on from there; the upload id goes on a post as `uploadIds`.
|
|
5
|
+
* In: an attachment's signed URL is bound to the token that was handed it, so `download` fetches
|
|
6
|
+
* it with that token as the bearer, which a plain `fetch` of the URL would not.
|
|
7
|
+
*/
|
|
8
|
+
import { RefusedError } from "./outbox.js";
|
|
9
|
+
/** How big a piece is: what the phone and the desktop send (ADR 0052). */
|
|
10
|
+
export const PIECE_BYTES = 4 * 1024 * 1024;
|
|
11
|
+
/** How many times a piece is tried before the upload gives up. */
|
|
12
|
+
const PIECE_TRIES = 5;
|
|
13
|
+
function uploaded(answer) {
|
|
14
|
+
const attachment = (answer["attachment"] ?? {});
|
|
15
|
+
return {
|
|
16
|
+
attachmentId: String(attachment["attachment_id"]),
|
|
17
|
+
filename: String(attachment["filename"]),
|
|
18
|
+
mimeType: String(attachment["mime_type"]),
|
|
19
|
+
byteSize: Number(attachment["byte_size"]),
|
|
20
|
+
sha256: String(attachment["sha256"]),
|
|
21
|
+
kind: String(attachment["kind"]),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/** Send a file to chipsd. Resolves with what it stored; a refusal throws with the server's words. */
|
|
25
|
+
export async function upload(call, input) {
|
|
26
|
+
const size = input.bytes.byteLength;
|
|
27
|
+
const pieces = size > PIECE_BYTES;
|
|
28
|
+
const slot = await call("POST", "/v1/uploads", {
|
|
29
|
+
filename: input.filename,
|
|
30
|
+
...(pieces ? { byte_size: size } : {}),
|
|
31
|
+
...(input.keepMetadata === true ? { keep_metadata: true } : {}),
|
|
32
|
+
});
|
|
33
|
+
const path = `/v1/uploads/${encodeURIComponent(String(slot["attachment_id"]))}`;
|
|
34
|
+
if (!pieces)
|
|
35
|
+
return uploaded(await call("PUT", path, input.bytes));
|
|
36
|
+
return await inPieces(call, path, input.bytes);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The bytes a piece at a time. After a piece is lost the server says how far it got, and the next
|
|
40
|
+
* one goes from there; a refusal is the server's word, and final.
|
|
41
|
+
*/
|
|
42
|
+
async function inPieces(call, path, bytes) {
|
|
43
|
+
let offset = 0;
|
|
44
|
+
let failures = 0;
|
|
45
|
+
for (;;) {
|
|
46
|
+
try {
|
|
47
|
+
const answer = failures > 0 ? await call("GET", path) : await sendPiece(call, path, bytes, offset);
|
|
48
|
+
if (answer["attachment"] !== undefined)
|
|
49
|
+
return uploaded(answer);
|
|
50
|
+
offset = Number(answer["received_bytes"]);
|
|
51
|
+
failures = 0;
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
failures += 1;
|
|
55
|
+
await afterLoss(error, failures);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/** A refusal, or the last try, thrown on; a piece lost on the network waits a little longer each time. */
|
|
60
|
+
async function afterLoss(error, failures) {
|
|
61
|
+
if (error instanceof RefusedError || failures >= PIECE_TRIES)
|
|
62
|
+
throw error;
|
|
63
|
+
await new Promise((resolve) => setTimeout(resolve, 250 * failures));
|
|
64
|
+
}
|
|
65
|
+
function sendPiece(call, path, bytes, offset) {
|
|
66
|
+
const piece = bytes.subarray(offset, Math.min(offset + PIECE_BYTES, bytes.byteLength));
|
|
67
|
+
return call("PUT", `${path}?offset=${offset}`, piece);
|
|
68
|
+
}
|
|
69
|
+
/** An attachment's bytes, fetched with the token its signed URL is bound to. */
|
|
70
|
+
export async function download(fetcher, token, attachment) {
|
|
71
|
+
const url = typeof attachment === "string" ? attachment : attachment.url;
|
|
72
|
+
const response = await fetcher(url, { headers: { authorization: `Bearer ${token}` } });
|
|
73
|
+
if (!response.ok) {
|
|
74
|
+
throw new RefusedError(String(response.status), `fetching ${url} answered ${response.status}`);
|
|
75
|
+
}
|
|
76
|
+
return new Uint8Array(await response.arrayBuffer());
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"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"}
|
package/dist/heard.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Words said in a room while one of a harness's agents works there, not to it (ADR 0105,
|
|
3
|
+
* ADR 0106). Chips names the turns that are to hear them in `message.overheard`'s
|
|
4
|
+
* `working_turns`; a bridge hands each the line below at its next step, never starting a turn on
|
|
5
|
+
* it, and says `run.heard(message_id)` once the turn has it. A turn that ends first hears nothing,
|
|
6
|
+
* and is handed the words with its agent's next turn (ADR 0105).
|
|
7
|
+
*/
|
|
8
|
+
import { type MessageOverheard } from "@chipschat/protocol";
|
|
9
|
+
/** One turn that is to hear a message: its agent and its run. */
|
|
10
|
+
export interface WorkingTurn {
|
|
11
|
+
readonly agentId: string;
|
|
12
|
+
readonly runId: string;
|
|
13
|
+
}
|
|
14
|
+
/** The turns `message.overheard` names to hear it, or none. */
|
|
15
|
+
export declare function workingTurnsOf(message: Pick<MessageOverheard, "working_turns">): WorkingTurn[];
|
|
16
|
+
/**
|
|
17
|
+
* The line a working turn is handed: who said it, a person with their standing, and what, its
|
|
18
|
+
* words, what a voice note said and its files by name. "Duncan (guest) said in the room, not to
|
|
19
|
+
* you: …", as Jacobian tells its turns.
|
|
20
|
+
*/
|
|
21
|
+
export declare function overheardLine(message: Pick<MessageOverheard, "from" | "text" | "attachments">): string;
|
|
22
|
+
//# sourceMappingURL=heard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heard.d.ts","sourceRoot":"","sources":["../src/heard.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,gBAAgB,EAAY,MAAM,qBAAqB,CAAC;AAEtE,iEAAiE;AACjE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,GAAG,WAAW,EAAE,CAK9F;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC,GAC/D,MAAM,CAUR"}
|
package/dist/heard.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Words said in a room while one of a harness's agents works there, not to it (ADR 0105,
|
|
3
|
+
* ADR 0106). Chips names the turns that are to hear them in `message.overheard`'s
|
|
4
|
+
* `working_turns`; a bridge hands each the line below at its next step, never starting a turn on
|
|
5
|
+
* it, and says `run.heard(message_id)` once the turn has it. A turn that ends first hears nothing,
|
|
6
|
+
* and is handed the words with its agent's next turn (ADR 0105).
|
|
7
|
+
*/
|
|
8
|
+
import { withRole } from "@chipschat/protocol";
|
|
9
|
+
/** The turns `message.overheard` names to hear it, or none. */
|
|
10
|
+
export function workingTurnsOf(message) {
|
|
11
|
+
return (message.working_turns ?? []).map((turn) => ({
|
|
12
|
+
agentId: turn.agent_id,
|
|
13
|
+
runId: turn.run_id,
|
|
14
|
+
}));
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The line a working turn is handed: who said it, a person with their standing, and what, its
|
|
18
|
+
* words, what a voice note said and its files by name. "Duncan (guest) said in the room, not to
|
|
19
|
+
* you: …", as Jacobian tells its turns.
|
|
20
|
+
*/
|
|
21
|
+
export function overheardLine(message) {
|
|
22
|
+
const files = message.attachments ?? [];
|
|
23
|
+
const said = files.flatMap((file) => (file.transcript === undefined ? [] : [file.transcript]));
|
|
24
|
+
const words = [
|
|
25
|
+
message.text.trim(),
|
|
26
|
+
...said.map((each) => `(voice note: ${each})`),
|
|
27
|
+
files.length === 0 ? "" : `(sent ${files.map((file) => file.filename).join(", ")})`,
|
|
28
|
+
].filter((part) => part !== "");
|
|
29
|
+
const who = withRole(message.from.display_name, message.from);
|
|
30
|
+
return `${who} said in the room, not to you: ${words.join(" ")}`;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=heard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heard.js","sourceRoot":"","sources":["../src/heard.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAyB,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAQtE,+DAA+D;AAC/D,MAAM,UAAU,cAAc,CAAC,OAAgD;IAC7E,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClD,OAAO,EAAE,IAAI,CAAC,QAAQ;QACtB,KAAK,EAAE,IAAI,CAAC,MAAM;KACnB,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAgE;IAEhE,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,KAAK,GAAG;QACZ,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;QACnB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,IAAI,GAAG,CAAC;QAC9C,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;KACpF,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,GAAG,GAAG,kCAAkC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACnE,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@chipschat/harness` — Agent Connect for a harness you control (blueprint, Connect; ADR 0009's
|
|
3
|
+
* sibling on the harness side). Import the client, emit events from inside your loop, and hear
|
|
4
|
+
* messages, decisions and steering on a callback. Typed from `@chipschat/protocol` and dependent
|
|
5
|
+
* on nothing else: Node 22's own `WebSocket` carries it. `join()` (ADR 0122) asks to come in, with
|
|
6
|
+
* a link or a code a person allows, and keeps the key it is handed: `connect(await join(…))`.
|
|
7
|
+
* Beyond the events: `promptFor` words a turn, and `rulesFor` with `SessionRules` lets a session
|
|
8
|
+
* hear a room's rules once (ADR 0250); `upload` and `download` carry files, `settings`
|
|
9
|
+
* keeps an agent's files, model, heartbeat and context window in step with its page, and a `store`
|
|
10
|
+
* keeps what must survive a restart.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* What a harness is handed with a question (ADR 0088): `message.new`'s `context`, and the plain
|
|
14
|
+
* form the adapters write ahead of a turn's words.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Who is in the room and what an @ does (ADR 0092): `message.new`'s `room`. Put
|
|
18
|
+
* `room.notes[<the agent taking the turn>]` at the top of its turn; `renderRoomNote` words it again
|
|
19
|
+
* from `room.members` for an agent the note was not written for.
|
|
20
|
+
*/
|
|
21
|
+
export type { ContextBudget, ContextLine, RoomContext, RoomFile, RoomMember, RoomNote, } from "@chipschat/protocol";
|
|
22
|
+
export { noteWithoutRules, renderContext, renderLine, renderReplyingTo, renderRoomNote, } from "@chipschat/protocol";
|
|
23
|
+
export type { ClaimedSpace, SpaceAsked } from "./asks.js";
|
|
24
|
+
export type { Agent, ConnectOptions, PostInput, RestartAsk, SocketLike, Speaker, StartRunInput, } from "./connect.js";
|
|
25
|
+
export { Chips, ConnectError, connect } from "./connect.js";
|
|
26
|
+
export type { ChipsEvents, ConnectionState, Handler, Receipt } from "./events.js";
|
|
27
|
+
export type { Uploaded, UploadInput } from "./files.js";
|
|
28
|
+
export { PIECE_BYTES } from "./files.js";
|
|
29
|
+
export type { WorkingTurn } from "./heard.js";
|
|
30
|
+
export { overheardLine, workingTurnsOf } from "./heard.js";
|
|
31
|
+
export type { Joined, JoinOptions } from "./join.js";
|
|
32
|
+
export { filledIn, forgetJoin, helloOnce, JoinError, join, keptJoin } from "./join.js";
|
|
33
|
+
export type { KeyStore } from "./keep.js";
|
|
34
|
+
export { openKeyStore } from "./keep.js";
|
|
35
|
+
export type { LaneEvents, LaneOutcome, LaneState } from "./lane.js";
|
|
36
|
+
export { Lane } from "./lane.js";
|
|
37
|
+
export type { Ack } from "./outbox.js";
|
|
38
|
+
export { RefusedError } from "./outbox.js";
|
|
39
|
+
export type { FolderChange, FolderLook, ProjectOptions, Pushed } from "./project.js";
|
|
40
|
+
export { checkGit, heldNote, Project, pushedInWords, subjectOf } from "./project.js";
|
|
41
|
+
export type { PromptOptions } from "./prompt.js";
|
|
42
|
+
export { promptFor, rulesFor } from "./prompt.js";
|
|
43
|
+
export { SessionRules } from "./rules.js";
|
|
44
|
+
export type { Answer, ApprovalInput, AskInput, CompleteInput, ContextInput, Decision, FailInput, PlannedStep, QuestionInput, QuestionOption, RunEvents, StatusInput, StepInput, TaskInput, UsageInput, } from "./run.js";
|
|
45
|
+
export { Run } from "./run.js";
|
|
46
|
+
export type { NamedFiles, Sendable, SendOptions, SentAnswer } from "./sending.js";
|
|
47
|
+
export { filesNamedIn, MOST_FILE_BYTES, MOST_FILES, readSendable, SENDING_FILES, sendAnswer, sendingFiles, } from "./sending.js";
|
|
48
|
+
export type { Command, KeepSpec, Kept, ServiceFile, ServiceKind } from "./service.js";
|
|
49
|
+
export { appHolding, keepEnvironment, keepRunning, keptNode, nodeOnPath, serviceFile, stopKeeping, } from "./service.js";
|
|
50
|
+
export type { AgentContextCopy, AgentContextWindowCopy, AgentHeartbeatCopy, AgentModelCopy, HarnessContextCopy, HarnessJobsCopy, SettingsHandlers, } from "./settings.js";
|
|
51
|
+
export { Refuse, Settings } from "./settings.js";
|
|
52
|
+
export type { StepName, StopWords } from "./steps.js";
|
|
53
|
+
export { reportStep, STEP_MARK } from "./steps.js";
|
|
54
|
+
export type { HarnessState, HarnessStore, OpenRun } from "./store.js";
|
|
55
|
+
export { fileStore, memoryStore } from "./store.js";
|
|
56
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@chipschat/harness` — Agent Connect for a harness you control (blueprint, Connect; ADR 0009's
|
|
3
|
+
* sibling on the harness side). Import the client, emit events from inside your loop, and hear
|
|
4
|
+
* messages, decisions and steering on a callback. Typed from `@chipschat/protocol` and dependent
|
|
5
|
+
* on nothing else: Node 22's own `WebSocket` carries it. `join()` (ADR 0122) asks to come in, with
|
|
6
|
+
* a link or a code a person allows, and keeps the key it is handed: `connect(await join(…))`.
|
|
7
|
+
* Beyond the events: `promptFor` words a turn, and `rulesFor` with `SessionRules` lets a session
|
|
8
|
+
* hear a room's rules once (ADR 0250); `upload` and `download` carry files, `settings`
|
|
9
|
+
* keeps an agent's files, model, heartbeat and context window in step with its page, and a `store`
|
|
10
|
+
* keeps what must survive a restart.
|
|
11
|
+
*/
|
|
12
|
+
export { noteWithoutRules, renderContext, renderLine, renderReplyingTo, renderRoomNote, } from "@chipschat/protocol";
|
|
13
|
+
export { Chips, ConnectError, connect } from "./connect.js";
|
|
14
|
+
export { PIECE_BYTES } from "./files.js";
|
|
15
|
+
export { overheardLine, workingTurnsOf } from "./heard.js";
|
|
16
|
+
export { filledIn, forgetJoin, helloOnce, JoinError, join, keptJoin } from "./join.js";
|
|
17
|
+
export { openKeyStore } from "./keep.js";
|
|
18
|
+
export { Lane } from "./lane.js";
|
|
19
|
+
export { RefusedError } from "./outbox.js";
|
|
20
|
+
export { checkGit, heldNote, Project, pushedInWords, subjectOf } from "./project.js";
|
|
21
|
+
export { promptFor, rulesFor } from "./prompt.js";
|
|
22
|
+
export { SessionRules } from "./rules.js";
|
|
23
|
+
export { Run } from "./run.js";
|
|
24
|
+
export { filesNamedIn, MOST_FILE_BYTES, MOST_FILES, readSendable, SENDING_FILES, sendAnswer, sendingFiles, } from "./sending.js";
|
|
25
|
+
export { appHolding, keepEnvironment, keepRunning, keptNode, nodeOnPath, serviceFile, stopKeeping, } from "./service.js";
|
|
26
|
+
export { Refuse, Settings } from "./settings.js";
|
|
27
|
+
export { reportStep, STEP_MARK } from "./steps.js";
|
|
28
|
+
export { fileStore, memoryStore } from "./store.js";
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAmBH,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAW7B,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEvF,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAErF,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAkB1C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,OAAO,EACL,YAAY,EACZ,eAAe,EACf,UAAU,EACV,YAAY,EACZ,aAAa,EACb,UAAU,EACV,YAAY,GACb,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,UAAU,EACV,eAAe,EACf,WAAW,EACX,QAAQ,EACR,UAAU,EACV,WAAW,EACX,WAAW,GACZ,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/join.d.ts
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Join a Chips (ADR 0122): find the server, ask to join, and come back with the four things
|
|
3
|
+
* `connect()` and a harness need — its address, the harness's id, its key and its room — with no
|
|
4
|
+
* token copied by hand.
|
|
5
|
+
*
|
|
6
|
+
* ```ts
|
|
7
|
+
* const me = await join({ link, name: "Tide" });
|
|
8
|
+
* const chips = await connect(me);
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* Two ways in. With a link a person made in Chips (`<address>/j/<secret>`), it is allowed already
|
|
12
|
+
* and is taken up at once. With only an address, it asks: the server answers with a code, which
|
|
13
|
+
* `onCode` shows, and a person compares it and allows it; `join()` asks every few seconds until
|
|
14
|
+
* they do. Either way what it is handed is kept — in the keychain, the Secret Service, or a file
|
|
15
|
+
* only its user can read — and the next `join()` of the same name at the same server returns it
|
|
16
|
+
* without asking again. A link it wasn't handed that key by is taken up all the same, and its key
|
|
17
|
+
* kept in place of the old one: a person makes a new link when the old key is no good (the
|
|
18
|
+
* harness removed, Chips started afresh). A link already used or lapsed gives the kept key back,
|
|
19
|
+
* so a command run again as it was first written still starts.
|
|
20
|
+
*
|
|
21
|
+
* The server is found from the link, then `url`, then `CHIPS_URL`, then the `server.json` that
|
|
22
|
+
* `chips up` writes on its own machine.
|
|
23
|
+
*/
|
|
24
|
+
import { type Environment, type KeyStore } from "./keep.js";
|
|
25
|
+
export interface JoinOptions {
|
|
26
|
+
/** A link a person made in Chips: allowed already, good once, for fifteen minutes. */
|
|
27
|
+
readonly link?: string | undefined;
|
|
28
|
+
/** Where Chips is, to ask with a code when there is no link. */
|
|
29
|
+
readonly url?: string | undefined;
|
|
30
|
+
/** What the harness is called: what a person sees, and what its key is kept under. */
|
|
31
|
+
readonly name: string;
|
|
32
|
+
/** Its software and version, as a person allowing it is shown. */
|
|
33
|
+
readonly software?: string | undefined;
|
|
34
|
+
/** The machine it runs on; this machine's name unless said. */
|
|
35
|
+
readonly machine?: string | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* What it asks to be allowed (ADR 0046), when it asks with a code: `autonomy` unless said, since
|
|
38
|
+
* a harness on this SDK reads the dial. A link carries what the person chose instead.
|
|
39
|
+
*/
|
|
40
|
+
readonly wants?: readonly string[] | undefined;
|
|
41
|
+
/** Shown the code to compare, when it asks; to standard error unless given. */
|
|
42
|
+
readonly onCode?: ((code: string, url: string) => void) | undefined;
|
|
43
|
+
/** Where the key is kept. `false` keeps nothing, and asks every time. */
|
|
44
|
+
readonly keep?: KeyStore | false | undefined;
|
|
45
|
+
/** `CHIPS_URL`, `CHIPS_CONFIG_HOME`, `CHIPS_NO_KEYCHAIN`, `HOME`: `process.env` unless given. */
|
|
46
|
+
readonly env?: Environment | undefined;
|
|
47
|
+
readonly fetch?: typeof fetch | undefined;
|
|
48
|
+
/** Stops the asking. */
|
|
49
|
+
readonly signal?: AbortSignal | undefined;
|
|
50
|
+
}
|
|
51
|
+
/** What `join()` comes back with: everything `connect()` takes, and the room it speaks in first. */
|
|
52
|
+
export interface Joined {
|
|
53
|
+
readonly url: string;
|
|
54
|
+
readonly harnessId: string;
|
|
55
|
+
readonly token: string;
|
|
56
|
+
readonly spaceId?: string | undefined;
|
|
57
|
+
readonly capabilities: readonly string[];
|
|
58
|
+
}
|
|
59
|
+
/** Why it did not join, with the rule that refused it: `spent`, `expired`, `denied`, `too_many`… */
|
|
60
|
+
export declare class JoinError extends Error {
|
|
61
|
+
readonly refusal: string;
|
|
62
|
+
readonly name = "JoinError";
|
|
63
|
+
constructor(refusal: string, message: string);
|
|
64
|
+
}
|
|
65
|
+
/** The server, and the link's secret when there is one. */
|
|
66
|
+
export declare function findServer(options: Pick<JoinOptions, "link" | "url">, env: Environment): {
|
|
67
|
+
readonly url: string;
|
|
68
|
+
readonly secret?: string;
|
|
69
|
+
};
|
|
70
|
+
/** The account a key is kept under: the harness's name, at its server. */
|
|
71
|
+
export declare function accountOf(url: string, name: string): string;
|
|
72
|
+
/**
|
|
73
|
+
* The key `join()` takes up for a harness of this name when it has no link, at the server it would
|
|
74
|
+
* find (`url`, `CHIPS_URL`, then `server.json`): what `chips connect <id>` with no link joins with,
|
|
75
|
+
* so the harness keeps its rooms (ADR 0218's addendum of 24 October 2026). The server's address
|
|
76
|
+
* comes back as well where one is found, kept key or not.
|
|
77
|
+
*/
|
|
78
|
+
export declare function keptJoin(name: string, options?: Pick<JoinOptions, "url" | "keep" | "env">): {
|
|
79
|
+
readonly url?: string;
|
|
80
|
+
readonly joined?: Joined;
|
|
81
|
+
};
|
|
82
|
+
export declare function join(options: JoinOptions): Promise<Joined>;
|
|
83
|
+
/**
|
|
84
|
+
* Say a harness's first words in the room it joined, once: the card that followed its link waits
|
|
85
|
+
* for them ("Said hello", ADR 0122), and a harness that only answers would leave it waiting. They
|
|
86
|
+
* are due when `join()` is handed a key, and noted as said beside it, so a restart says nothing
|
|
87
|
+
* again, a new link (a new key and room) says them again there, and a key kept from before says
|
|
88
|
+
* none. `say` posts the words, as the harness or its Main agent; nothing is said when Chips gave it
|
|
89
|
+
* no room. Whether it spoke comes back.
|
|
90
|
+
*/
|
|
91
|
+
export declare function helloOnce(joined: Joined, options: Pick<JoinOptions, "name" | "keep" | "env"> & {
|
|
92
|
+
readonly say: (spaceId: string) => Promise<unknown>;
|
|
93
|
+
}): Promise<boolean>;
|
|
94
|
+
/**
|
|
95
|
+
* Whether a value was filled in, rather than left as the placeholder a command was copied with
|
|
96
|
+
* (`API_SERVER_KEY=…`): a harness checks what it needs before it takes up a link, which works once.
|
|
97
|
+
*/
|
|
98
|
+
export declare function filledIn(value: string | undefined): value is string;
|
|
99
|
+
/** Forget what a harness was handed, so the next `join()` asks again: a key withdrawn, say. */
|
|
100
|
+
export declare function forgetJoin(options: Pick<JoinOptions, "link" | "url" | "name" | "keep" | "env">): void;
|
|
101
|
+
//# sourceMappingURL=join.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../src/join.ts"],"names":[],"mappings":"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"}
|