@agentshouse/mdruntime-adapter 0.1.0-ccda1a2da11c3 → 0.1.0-ccdfb41af2abb

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.
Files changed (67) hide show
  1. package/README.md +2 -2
  2. package/dist/actions.d.ts +3 -71
  3. package/dist/actions.d.ts.map +1 -1
  4. package/dist/actions.js +1 -317
  5. package/dist/adapter.d.ts.map +1 -1
  6. package/dist/adapter.js +171 -336
  7. package/dist/app-reference.d.ts +2 -0
  8. package/dist/app-reference.d.ts.map +1 -0
  9. package/dist/app-reference.js +2 -0
  10. package/dist/crockford.d.ts +4 -0
  11. package/dist/crockford.d.ts.map +1 -0
  12. package/dist/crockford.js +3 -0
  13. package/dist/discovery.d.ts +12 -12
  14. package/dist/discovery.d.ts.map +1 -1
  15. package/dist/discovery.js +44 -51
  16. package/dist/history.d.ts +12 -0
  17. package/dist/history.d.ts.map +1 -0
  18. package/dist/history.js +91 -0
  19. package/dist/house-model.d.ts +892 -0
  20. package/dist/house-model.d.ts.map +1 -0
  21. package/dist/house-model.js +482 -0
  22. package/dist/index.d.ts +10 -3
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +9 -2
  25. package/dist/model.d.ts +5 -2
  26. package/dist/model.d.ts.map +1 -1
  27. package/dist/model.js +10 -29
  28. package/dist/part.d.ts +12 -11
  29. package/dist/part.d.ts.map +1 -1
  30. package/dist/part.js +66 -56
  31. package/dist/read.d.ts +19 -56
  32. package/dist/read.d.ts.map +1 -1
  33. package/dist/read.js +138 -297
  34. package/dist/refusal.d.ts +0 -3
  35. package/dist/refusal.d.ts.map +1 -1
  36. package/dist/refusal.js +0 -5
  37. package/dist/room-stream.d.ts +19 -0
  38. package/dist/room-stream.d.ts.map +1 -0
  39. package/dist/room-stream.js +57 -0
  40. package/dist/room-types.d.ts +2 -1
  41. package/dist/room-types.d.ts.map +1 -1
  42. package/dist/room-types.js +62 -3
  43. package/dist/search.d.ts +5 -0
  44. package/dist/search.d.ts.map +1 -0
  45. package/dist/search.js +47 -0
  46. package/dist/site.d.ts.map +1 -1
  47. package/dist/site.js +79 -177
  48. package/dist/stream.d.ts +13 -14
  49. package/dist/stream.d.ts.map +1 -1
  50. package/dist/stream.js +168 -426
  51. package/dist/transport.d.ts +48 -38
  52. package/dist/transport.d.ts.map +1 -1
  53. package/dist/transport.js +55 -11
  54. package/dist/upload.d.ts +12 -0
  55. package/dist/upload.d.ts.map +1 -0
  56. package/dist/upload.js +63 -0
  57. package/dist/write.d.ts +6 -1
  58. package/dist/write.d.ts.map +1 -1
  59. package/dist/write.js +19 -32
  60. package/package.json +8 -4
  61. package/AGENTS.md +0 -309
  62. package/dist/gather.d.ts +0 -4
  63. package/dist/gather.d.ts.map +0 -1
  64. package/dist/gather.js +0 -35
  65. package/dist/referrer.d.ts +0 -9
  66. package/dist/referrer.d.ts.map +0 -1
  67. package/dist/referrer.js +0 -41
@@ -1,24 +1,21 @@
1
1
  import type { ConversationEvent, TurnOperation } from '@agentshouse/mdruntime';
2
- export declare const DOOR_DISCOVER = "/door/discover";
3
- export declare const DOOR_BOOTSTRAP = "/door/bootstrap";
4
- export declare const DOOR_ENUMERATE = "/door/enumerate";
5
- export declare const DOOR_BATCH = "/door/batch";
6
- export declare const DOOR_BATCH_UPLOAD = "/door/batch-upload";
7
- export declare const DOOR_REVISIONS = "/door/revisions";
8
- export declare const SITE_DOOR_DISCOVER = "/_house/door/discover";
9
- export declare const SITE_DOOR_BOOTSTRAP = "/_house/door/bootstrap/";
10
- export declare const SITE_DOOR_ENUMERATE = "/_house/door/enumerate";
2
+ export declare const HOUSE_RUNTIME_READS: {
3
+ readonly acts: readonly ['account/push', 'agents/read', 'apps/features/set', 'apps/source/download', 'apps/source/top', 'batch', 'batch-upload', 'bootstrap', 'conversations/history', 'discover', 'files/attach', 'files/finish', 'files/get', 'revisions', 'search', 'sites/screenshot/read'];
4
+ readonly frames: readonly ['app-message', 'app-release', 'authority_changed', 'carried', 'caught_up', 'commands', 'conversation', 'conversation_deleted', 'conversations', 'deliveries', 'deployment', 'held', 'interactions', 'link', 'message', 'opening', 'options', 'part', 'process', 'received', 'signal', 'site', 'starting', 'subagents', 'tab-icon', 'turn'];
5
+ };
6
+ export type HouseRuntimeAct = (typeof HOUSE_RUNTIME_READS.acts)[number];
7
+ export type HouseRuntimeFrame = (typeof HOUSE_RUNTIME_READS.frames)[number];
8
+ export declare function houseDoorRoute(act: HouseRuntimeAct): string;
9
+ export declare function houseSiteRoute(act: Extract<HouseRuntimeAct, 'bootstrap' | 'discover'>): string;
10
+ export declare const SITE_SUBMISSION = "site/submission";
11
11
  export declare const SITE_DOOR_SUBMIT = "/_house/door/submit";
12
12
  export type HouseMode = 'credential' | 'site';
13
13
  export type HouseDoorAnswer = {
14
14
  status: number;
15
15
  body: unknown;
16
16
  };
17
- export declare const DOOR_FILES_GET = "/door/files/get";
18
17
  export declare const SITE_FILES = "/_house/files/";
19
- export declare const SITE_FILE_RECORD = "record";
20
- export type HouseByteAct = 'authored_batch_upload' | 'file_upload' | 'binary_stage';
21
- export type HouseByteBody = string | ArrayBuffer | Uint8Array | Blob;
18
+ export type HouseByteAct = 'authored_batch_upload';
22
19
  export type HouseBytesAnswer = {
23
20
  status: number;
24
21
  body: ReadableStream<Uint8Array> | null;
@@ -27,17 +24,16 @@ export type HouseBytesAnswer = {
27
24
  export type HouseByteTransfer = {
28
25
  act: HouseByteAct;
29
26
  url: string;
30
- body: HouseByteBody;
31
- operation?: string;
27
+ body: string;
32
28
  };
33
29
  export type HouseStreamEntry = {
34
30
  path: string;
35
- kind: 'edited' | 'removed' | 'piece' | 'folder';
31
+ kind: 'edited' | 'removed' | 'folder';
36
32
  removed?: true;
37
33
  revision?: string;
38
34
  sha256?: string;
39
35
  text?: string;
40
- file?: string;
36
+ outline?: unknown;
41
37
  bytes?: number;
42
38
  media_type?: string;
43
39
  author?: {
@@ -48,7 +44,6 @@ export type HouseStreamEntry = {
48
44
  name: string;
49
45
  };
50
46
  created_at?: string;
51
- continued?: true;
52
47
  };
53
48
  type LiveFact<K extends ConversationEvent['kind']> = Extract<ConversationEvent, {
54
49
  kind: K;
@@ -56,21 +51,26 @@ type LiveFact<K extends ConversationEvent['kind']> = Extract<ConversationEvent,
56
51
  export type HouseListedConversation = {
57
52
  conversation_id: string;
58
53
  agent_id: string;
54
+ agent_name: string;
55
+ agent_retired: boolean;
59
56
  name: string;
60
57
  created_at: string;
61
58
  finished_at: string | null;
62
59
  outcome: string | null;
63
60
  waiting: boolean;
61
+ newest: {
62
+ accepted_at: string;
63
+ message_id: string;
64
+ } | null;
64
65
  };
65
- export type HouseStreamFrame = {
66
+ type Listed<Frame extends {
67
+ readonly type: HouseRuntimeFrame;
68
+ }> = Frame;
69
+ export type HouseStreamFrame = Listed<{
66
70
  type: 'part';
67
71
  authority: string;
68
72
  carry: string;
69
73
  index: number;
70
- after: string;
71
- from: string;
72
- target: string;
73
- handled: number;
74
74
  entries: readonly HouseStreamEntry[];
75
75
  } | {
76
76
  type: 'carried';
@@ -82,10 +82,18 @@ export type HouseStreamFrame = {
82
82
  log_epoch: string;
83
83
  } | {
84
84
  type: 'opening';
85
+ member: unknown;
86
+ bounds: unknown;
87
+ actions: readonly unknown[];
88
+ authorities: readonly unknown[];
89
+ } | {
90
+ type: 'caught_up';
85
91
  expired: readonly string[];
86
92
  } | {
87
93
  type: 'authority_changed';
88
- rooms: readonly string[];
94
+ member: unknown;
95
+ authorities: readonly unknown[];
96
+ left: readonly string[];
89
97
  } | ({
90
98
  type: 'turn';
91
99
  conversation_id: string;
@@ -118,6 +126,10 @@ export type HouseStreamFrame = {
118
126
  type: 'starting';
119
127
  conversation_id: string;
120
128
  step: string | null;
129
+ } | {
130
+ type: 'subagents';
131
+ conversation_id: string;
132
+ subagents: LiveFact<'subagents'>['subagents'];
121
133
  } | {
122
134
  type: 'link';
123
135
  conversation_id: string;
@@ -125,6 +137,9 @@ export type HouseStreamFrame = {
125
137
  } | {
126
138
  type: 'conversations';
127
139
  conversations: readonly HouseListedConversation[];
140
+ whole: boolean;
141
+ more: boolean;
142
+ cursor: string | null;
128
143
  } | {
129
144
  type: 'conversation';
130
145
  conversation: HouseListedConversation;
@@ -134,49 +149,44 @@ export type HouseStreamFrame = {
134
149
  } | {
135
150
  type: 'signal';
136
151
  service_mode: string;
137
- };
138
- export type HouseHeldCarry = {
139
- id: string;
140
- parts: number;
141
- from: string;
142
- target: string;
143
- handled: number;
144
- piece?: {
145
- sha256: string;
146
- offset: number;
147
- };
148
- };
152
+ }>;
149
153
  export type HouseHeldRoom = {
150
154
  authority: string;
151
155
  position: string;
152
156
  log_epoch: string;
153
- carry?: HouseHeldCarry;
154
157
  };
155
158
  export type HouseOpening = {
156
- hold(rooms: readonly HouseHeldRoom[], runtime: string): void;
159
+ hold(rooms: readonly HouseHeldRoom[], runtime: string, conversations: string | null): void;
157
160
  received(authority: string, carry: string, index: number): void;
158
161
  close(): void;
159
162
  };
160
163
  export type HouseClosing = {
161
164
  revoked: boolean;
162
165
  lost: boolean;
166
+ authorityChanged: boolean;
163
167
  };
164
168
  export type HouseStream = {
165
169
  observe(receive: (frame: HouseStreamFrame) => void): () => void;
166
170
  opened(notify: (opening: HouseOpening) => void): () => void;
167
171
  closed(notify: (closing: HouseClosing) => void): () => void;
168
172
  };
173
+ export type HouseStreamed = HouseDoorAnswer & {
174
+ room: ReadableStream<Uint8Array> | null;
175
+ };
169
176
  export type HouseDoor = {
170
177
  door(route: string, body: unknown): Promise<HouseDoorAnswer>;
171
178
  stream: HouseStream;
172
179
  };
173
180
  export type HouseTransport = HouseDoor & {
181
+ streamed(route: string, body: unknown, signal: AbortSignal): Promise<HouseStreamed>;
174
182
  transfer(request: HouseByteTransfer): Promise<HouseDoorAnswer>;
183
+ put(url: string, body: Blob, headers: Readonly<Record<string, string>>): Promise<number>;
175
184
  download(url: string): Promise<HouseBytesAnswer>;
176
185
  };
177
186
  export type HouseSiteTransport = HouseDoor & {
178
187
  online(): boolean;
179
188
  read(route: string): Promise<HouseDoorAnswer>;
189
+ streamed(route: string, signal: AbortSignal): Promise<HouseStreamed>;
180
190
  download(route: string): Promise<HouseBytesAnswer>;
181
191
  };
182
192
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
package/dist/transport.js CHANGED
@@ -1,13 +1,57 @@
1
- export const DOOR_DISCOVER = '/door/discover';
2
- export const DOOR_BOOTSTRAP = '/door/bootstrap';
3
- export const DOOR_ENUMERATE = '/door/enumerate';
4
- export const DOOR_BATCH = '/door/batch';
5
- export const DOOR_BATCH_UPLOAD = '/door/batch-upload';
6
- export const DOOR_REVISIONS = '/door/revisions';
7
- export const SITE_DOOR_DISCOVER = '/_house/door/discover';
8
- export const SITE_DOOR_BOOTSTRAP = '/_house/door/bootstrap/';
9
- export const SITE_DOOR_ENUMERATE = '/_house/door/enumerate';
1
+ export const HOUSE_RUNTIME_READS = {
2
+ acts: [
3
+ 'account/push',
4
+ 'agents/read',
5
+ 'apps/features/set',
6
+ 'apps/source/download',
7
+ 'apps/source/top',
8
+ 'batch',
9
+ 'batch-upload',
10
+ 'bootstrap',
11
+ 'conversations/history',
12
+ 'discover',
13
+ 'files/attach',
14
+ 'files/finish',
15
+ 'files/get',
16
+ 'revisions',
17
+ 'search',
18
+ 'sites/screenshot/read',
19
+ ],
20
+ frames: [
21
+ 'app-message',
22
+ 'app-release',
23
+ 'authority_changed',
24
+ 'carried',
25
+ 'caught_up',
26
+ 'commands',
27
+ 'conversation',
28
+ 'conversation_deleted',
29
+ 'conversations',
30
+ 'deliveries',
31
+ 'deployment',
32
+ 'held',
33
+ 'interactions',
34
+ 'link',
35
+ 'message',
36
+ 'opening',
37
+ 'options',
38
+ 'part',
39
+ 'process',
40
+ 'received',
41
+ 'signal',
42
+ 'site',
43
+ 'starting',
44
+ 'subagents',
45
+ 'tab-icon',
46
+ 'turn',
47
+ ],
48
+ };
49
+ export function houseDoorRoute(act) {
50
+ return `/door/${act}`;
51
+ }
52
+ export function houseSiteRoute(act) {
53
+ return `/_house/door/${act}`;
54
+ }
55
+ export const SITE_SUBMISSION = 'site/submission';
10
56
  export const SITE_DOOR_SUBMIT = '/_house/door/submit';
11
- export const DOOR_FILES_GET = '/door/files/get';
12
57
  export const SITE_FILES = '/_house/files/';
13
- export const SITE_FILE_RECORD = 'record';
@@ -0,0 +1,12 @@
1
+ import { type HouseDoorAnswer, type HouseTransport } from './transport.js';
2
+ export type HouseUpload = {
3
+ readonly id: string;
4
+ readonly partBytes: number;
5
+ readonly parts: readonly {
6
+ readonly part: number;
7
+ readonly url: string;
8
+ }[];
9
+ };
10
+ export declare function houseUpload(value: unknown): HouseUpload | null;
11
+ export declare function finishedUpload(transport: HouseTransport, first: HouseUpload, blob: Blob): Promise<HouseDoorAnswer | null>;
12
+ //# sourceMappingURL=upload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../src/upload.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE3F,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC5E,CAAC;AAeF,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAQ9D;AA8BD,wBAAsB,cAAc,CAClC,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAejC"}
package/dist/upload.js ADDED
@@ -0,0 +1,63 @@
1
+ import { sha256 } from '@agentshouse/mdruntime/digest';
2
+ import { houseDoorRoute } from './transport.js';
3
+ const FINISHING_ROUNDS = 24;
4
+ function record(value) {
5
+ return value !== null && typeof value === 'object' ? value : {};
6
+ }
7
+ function part(value) {
8
+ const { part: number, url } = record(value);
9
+ return Number.isSafeInteger(number) && number > 0 && typeof url === 'string'
10
+ ? { part: number, url }
11
+ : null;
12
+ }
13
+ export function houseUpload(value) {
14
+ const { id, part_bytes: partBytes, parts = [] } = record(value);
15
+ if (typeof id !== 'string' || !Number.isSafeInteger(partBytes) || partBytes <= 0)
16
+ return null;
17
+ if (!Array.isArray(parts))
18
+ return null;
19
+ const named = parts.map(part);
20
+ if (named.some((one) => one === null))
21
+ return null;
22
+ return { id, partBytes: partBytes, parts: named };
23
+ }
24
+ function checksum(hex) {
25
+ let bytes = '';
26
+ for (let at = 0; at < hex.length; at += 2)
27
+ bytes += String.fromCharCode(Number.parseInt(hex.slice(at, at + 2), 16));
28
+ return { 'x-amz-checksum-sha256': btoa(bytes) };
29
+ }
30
+ async function partSha256(blob, partBytes) {
31
+ const parts = [];
32
+ for (let start = 0; start === 0 || start < blob.size; start += partBytes)
33
+ parts.push(await sha256(blob.slice(start, start + partBytes)));
34
+ return parts;
35
+ }
36
+ async function sent(transport, upload, blob, digests) {
37
+ for (const { part: number, url } of upload.parts) {
38
+ const start = (number - 1) * upload.partBytes;
39
+ const slice = blob.slice(start, start + upload.partBytes);
40
+ if ((await transport.put(url, slice, checksum(digests[number - 1]))) !== 200)
41
+ return false;
42
+ }
43
+ return true;
44
+ }
45
+ export async function finishedUpload(transport, first, blob) {
46
+ const digests = await partSha256(blob, first.partBytes);
47
+ let upload = first;
48
+ for (let round = 0; round < FINISHING_ROUNDS; round += 1) {
49
+ if (!(await sent(transport, upload, blob, digests)))
50
+ return null;
51
+ const answer = await transport.door(houseDoorRoute('files/finish'), {
52
+ upload: upload.id,
53
+ part_sha256: digests,
54
+ });
55
+ if (answer.status !== 200)
56
+ return answer;
57
+ const missing = houseUpload(record(answer.body).upload);
58
+ if (missing === null)
59
+ return answer;
60
+ upload = missing;
61
+ }
62
+ return null;
63
+ }
package/dist/write.d.ts CHANGED
@@ -10,13 +10,18 @@ export type ChangeMapping = {
10
10
  rule: string;
11
11
  };
12
12
  export declare function houseChanges(batch: ChangeBatch, handle: string): ChangeMapping;
13
+ export declare function houseParts(saved: readonly {
14
+ readonly path: string;
15
+ readonly parts: unknown;
16
+ }[], handle: string): ChangeMapping;
13
17
  export declare function houseMove(batch: ChangeBatch, source: string, destination: string): ChangeMapping;
14
18
  export type OperationHead = {
15
19
  readonly operation_id: string;
20
+ readonly room_ref: string;
16
21
  readonly app_ref?: string;
17
22
  readonly release?: string;
18
23
  };
19
- export declare function operationHead(batch: ChangeBatch): OperationHead;
24
+ export declare function operationHead(batch: ChangeBatch, room: string): OperationHead;
20
25
  export declare function batchPaths(changes: readonly HouseOperation[]): readonly string[];
21
26
  export declare function deltaBody(changes: readonly HouseOperation[]): string;
22
27
  export declare function deltaBytes(delta: string): number;
@@ -1 +1 @@
1
- {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../src/write.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../src/write.ts"],"names":[],"mappings":"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"}
package/dist/write.js CHANGED
@@ -1,4 +1,4 @@
1
- import { departure, ROW_WEIGHT, } from '@agentshouse/mdruntime';
1
+ import { departure, partsChanges, ROW_WEIGHT, } from '@agentshouse/mdruntime';
2
2
  import { answered, answering, binaryFileOf, headChange, revised } from './read.js';
3
3
  import { sha256Hex, textBytes } from './digest.js';
4
4
  import { nativePath, roomLocalPath } from './map.js';
@@ -120,6 +120,9 @@ export function houseChanges(batch, handle) {
120
120
  }
121
121
  return { kind: 'changes', changes };
122
122
  }
123
+ export function houseParts(saved, handle) {
124
+ return houseChanges({ id: '', baseRoomVersion: '', ...partsChanges(saved) }, handle);
125
+ }
123
126
  export function houseMove(batch, source, destination) {
124
127
  const changes = [];
125
128
  for (const { path, to } of batch.between?.moves ?? []) {
@@ -138,11 +141,10 @@ export function houseMove(batch, source, destination) {
138
141
  }
139
142
  return { kind: 'changes', changes };
140
143
  }
141
- export function operationHead(batch) {
144
+ export function operationHead(batch, room) {
142
145
  const writer = batch.writtenBy;
143
- return writer === undefined
144
- ? { operation_id: batch.id }
145
- : { operation_id: batch.id, app_ref: writer.app, release: writer.release };
146
+ const head = { operation_id: batch.id, room_ref: room };
147
+ return writer === undefined ? head : { ...head, app_ref: writer.app, release: writer.release };
146
148
  }
147
149
  export function batchPaths(changes) {
148
150
  return [
@@ -337,14 +339,17 @@ export function revisionBody(input) {
337
339
  }
338
340
  function revisionAuthor(entry) {
339
341
  const user = entry.author_user;
342
+ const userName = entry.author_user_name;
340
343
  const site = entry.author_site;
341
344
  const siteName = entry.author_site_name;
342
345
  const inbox = entry.author_inbox;
343
346
  const inboxName = entry.author_inbox_name;
344
- const named = [site, siteName, inbox, inboxName].filter((held) => held !== undefined);
345
- if (typeof user === 'string' && named.length === 0)
346
- return { kind: 'user', id: user };
347
- if (user !== null || named.length !== 2)
347
+ const app = entry.author_app;
348
+ const appName = entry.author_app_name;
349
+ const named = [site, siteName, inbox, inboxName, app, appName].filter((held) => held !== undefined);
350
+ if (typeof user === 'string' && typeof userName === 'string' && named.length === 0)
351
+ return { kind: 'user', id: user, name: userName };
352
+ if (user !== null || userName !== undefined || named.length !== 2)
348
353
  return null;
349
354
  if (typeof site === 'string' && typeof siteName === 'string') {
350
355
  return { kind: 'site', id: site, name: siteName };
@@ -352,19 +357,11 @@ function revisionAuthor(entry) {
352
357
  if (typeof inbox === 'string' && typeof inboxName === 'string') {
353
358
  return { kind: 'inbox', id: inbox, name: inboxName };
354
359
  }
360
+ if (typeof app === 'string' && typeof appName === 'string') {
361
+ return { kind: 'app', id: app, name: appName };
362
+ }
355
363
  return null;
356
364
  }
357
- function historyBinary(entry) {
358
- if (entry.file === undefined)
359
- return undefined;
360
- const { file, bytes, media_type: mediaType, sha256 } = entry;
361
- if (typeof file !== 'string' ||
362
- typeof bytes !== 'number' ||
363
- typeof mediaType !== 'string' ||
364
- typeof sha256 !== 'string')
365
- return null;
366
- return { fileRef: file, byteLength: bytes, mediaType, sha256 };
367
- }
368
365
  export function historyOutcome(status, body, locator, request) {
369
366
  const classified = classifyDoor(status, body, locator);
370
367
  if (classified !== null)
@@ -385,17 +382,7 @@ export function historyOutcome(status, body, locator, request) {
385
382
  const named = entries[0];
386
383
  if (named === undefined)
387
384
  return { kind: 'no-history' };
388
- if (named.unavailable === true) {
389
- return {
390
- kind: 'scoped-refusal',
391
- locator,
392
- scope: 'operation',
393
- code: 'retained_history_unavailable',
394
- fields: { path: request.path, revision: request.revision },
395
- retryable: false,
396
- };
397
- }
398
- if (typeof named.file === 'string')
385
+ if (typeof named.media_type === 'string')
399
386
  return { kind: 'no-history' };
400
387
  if (typeof named.content !== 'string')
401
388
  return { kind: 'transport-uncertainty' };
@@ -411,7 +398,7 @@ export function historyOutcome(status, body, locator, request) {
411
398
  typeof entry.created_at !== 'string') {
412
399
  return { kind: 'transport-uncertainty' };
413
400
  }
414
- const binaryFile = historyBinary(entry);
401
+ const binaryFile = binaryFileOf(entry);
415
402
  if (binaryFile === null)
416
403
  return { kind: 'transport-uncertainty' };
417
404
  revisions.push({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentshouse/mdruntime-adapter",
3
- "version": "0.1.0-ccda1a2da11c3",
3
+ "version": "0.1.0-ccdfb41af2abb",
4
4
  "description": "Agents House Adapter for the MD Runtime",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -9,7 +9,7 @@
9
9
  "access": "public"
10
10
  },
11
11
  "engines": {
12
- "node": ">=24.21.0"
12
+ "node": ">=24.22.1"
13
13
  },
14
14
  "exports": {
15
15
  ".": {
@@ -20,11 +20,15 @@
20
20
  },
21
21
  "files": [
22
22
  "dist",
23
- "AGENTS.md",
24
23
  "README.md",
25
24
  "LICENSE"
26
25
  ],
27
26
  "dependencies": {
28
- "@agentshouse/mdruntime": "0.1.0-cc3518569406b"
27
+ "@agentshouse/mdruntime": "0.1.0-c96e80d38e5f0"
28
+ },
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "git+https://github.com/agentshouse/core.git",
32
+ "directory": "mdruntime/packages/mdruntime-adapter"
29
33
  }
30
34
  }