@agimon-ai/doompi-session 0.0.1-alpha.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 +21 -0
- package/README.md +44 -0
- package/dist/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/api-contracts.cjs +7 -0
- package/dist/api-contracts.d.cts +2 -0
- package/dist/api-contracts.d.mts +2 -0
- package/dist/api-contracts.mjs +2 -0
- package/dist/extensions/pi.cjs +20 -0
- package/dist/extensions/pi.cjs.map +1 -0
- package/dist/extensions/pi.d.cts +5 -0
- package/dist/extensions/pi.d.cts.map +1 -0
- package/dist/extensions/pi.d.mts +5 -0
- package/dist/extensions/pi.d.mts.map +1 -0
- package/dist/extensions/pi.mjs +15 -0
- package/dist/extensions/pi.mjs.map +1 -0
- package/dist/extensions/server.cjs +37 -0
- package/dist/extensions/server.cjs.map +1 -0
- package/dist/extensions/server.d.cts +5 -0
- package/dist/extensions/server.d.cts.map +1 -0
- package/dist/extensions/server.d.mts +5 -0
- package/dist/extensions/server.d.mts.map +1 -0
- package/dist/extensions/server.mjs +32 -0
- package/dist/extensions/server.mjs.map +1 -0
- package/dist/index.cjs +32 -0
- package/dist/index.d.cts +11 -0
- package/dist/index.d.mts +11 -0
- package/dist/index.mjs +10 -0
- package/dist/src/extensions/(backend)/api/session-peer/route.server.cjs +7 -0
- package/dist/src/extensions/(backend)/api/session-peer/route.server.cjs.map +1 -0
- package/dist/src/extensions/(backend)/api/session-peer/route.server.mjs +8 -0
- package/dist/src/extensions/(backend)/api/session-peer/route.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs +10 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs +11 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs +101 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs +99 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs.map +1 -0
- package/dist/src/schemas/apiContracts.cjs +33 -0
- package/dist/src/schemas/apiContracts.cjs.map +1 -0
- package/dist/src/schemas/apiContracts.d.cts +52 -0
- package/dist/src/schemas/apiContracts.d.cts.map +1 -0
- package/dist/src/schemas/apiContracts.d.mts +52 -0
- package/dist/src/schemas/apiContracts.d.mts.map +1 -0
- package/dist/src/schemas/apiContracts.mjs +32 -0
- package/dist/src/schemas/apiContracts.mjs.map +1 -0
- package/dist/src/services/backgroundWorkService/index.cjs +79 -0
- package/dist/src/services/backgroundWorkService/index.cjs.map +1 -0
- package/dist/src/services/backgroundWorkService/index.d.cts +9 -0
- package/dist/src/services/backgroundWorkService/index.d.cts.map +1 -0
- package/dist/src/services/backgroundWorkService/index.d.mts +9 -0
- package/dist/src/services/backgroundWorkService/index.d.mts.map +1 -0
- package/dist/src/services/backgroundWorkService/index.mjs +78 -0
- package/dist/src/services/backgroundWorkService/index.mjs.map +1 -0
- package/dist/src/services/peerInbox/index.cjs +18 -0
- package/dist/src/services/peerInbox/index.cjs.map +1 -0
- package/dist/src/services/peerInbox/index.mjs +17 -0
- package/dist/src/services/peerInbox/index.mjs.map +1 -0
- package/dist/src/services/peerInboxApi/index.cjs +48 -0
- package/dist/src/services/peerInboxApi/index.cjs.map +1 -0
- package/dist/src/services/peerInboxApi/index.mjs +48 -0
- package/dist/src/services/peerInboxApi/index.mjs.map +1 -0
- package/dist/src/services/peerTransport/index.cjs +206 -0
- package/dist/src/services/peerTransport/index.cjs.map +1 -0
- package/dist/src/services/peerTransport/index.d.cts +49 -0
- package/dist/src/services/peerTransport/index.d.cts.map +1 -0
- package/dist/src/services/peerTransport/index.d.mts +49 -0
- package/dist/src/services/peerTransport/index.d.mts.map +1 -0
- package/dist/src/services/peerTransport/index.mjs +195 -0
- package/dist/src/services/peerTransport/index.mjs.map +1 -0
- package/dist/src/services/sessionDelivery/index.cjs +277 -0
- package/dist/src/services/sessionDelivery/index.cjs.map +1 -0
- package/dist/src/services/sessionDelivery/index.d.cts +10 -0
- package/dist/src/services/sessionDelivery/index.d.cts.map +1 -0
- package/dist/src/services/sessionDelivery/index.d.mts +10 -0
- package/dist/src/services/sessionDelivery/index.d.mts.map +1 -0
- package/dist/src/services/sessionDelivery/index.mjs +274 -0
- package/dist/src/services/sessionDelivery/index.mjs.map +1 -0
- package/dist/src/services/sessionDelivery/type.cjs +11 -0
- package/dist/src/services/sessionDelivery/type.cjs.map +1 -0
- package/dist/src/services/sessionDelivery/type.d.cts +73 -0
- package/dist/src/services/sessionDelivery/type.d.cts.map +1 -0
- package/dist/src/services/sessionDelivery/type.d.mts +73 -0
- package/dist/src/services/sessionDelivery/type.d.mts.map +1 -0
- package/dist/src/services/sessionDelivery/type.mjs +10 -0
- package/dist/src/services/sessionDelivery/type.mjs.map +1 -0
- package/dist/src/services/sessionDirectory/index.cjs +120 -0
- package/dist/src/services/sessionDirectory/index.cjs.map +1 -0
- package/dist/src/services/sessionDirectory/index.d.cts +7 -0
- package/dist/src/services/sessionDirectory/index.d.cts.map +1 -0
- package/dist/src/services/sessionDirectory/index.d.mts +7 -0
- package/dist/src/services/sessionDirectory/index.d.mts.map +1 -0
- package/dist/src/services/sessionDirectory/index.mjs +120 -0
- package/dist/src/services/sessionDirectory/index.mjs.map +1 -0
- package/dist/src/services/sessionDirectory/type.d.cts +54 -0
- package/dist/src/services/sessionDirectory/type.d.cts.map +1 -0
- package/dist/src/services/sessionDirectory/type.d.mts +54 -0
- package/dist/src/services/sessionDirectory/type.d.mts.map +1 -0
- package/dist/src/services/sessionGroups/index.cjs +105 -0
- package/dist/src/services/sessionGroups/index.cjs.map +1 -0
- package/dist/src/services/sessionGroups/index.d.cts +7 -0
- package/dist/src/services/sessionGroups/index.d.cts.map +1 -0
- package/dist/src/services/sessionGroups/index.d.mts +7 -0
- package/dist/src/services/sessionGroups/index.d.mts.map +1 -0
- package/dist/src/services/sessionGroups/index.mjs +104 -0
- package/dist/src/services/sessionGroups/index.mjs.map +1 -0
- package/dist/src/services/sessionGroups/type.cjs +11 -0
- package/dist/src/services/sessionGroups/type.cjs.map +1 -0
- package/dist/src/services/sessionGroups/type.d.cts +32 -0
- package/dist/src/services/sessionGroups/type.d.cts.map +1 -0
- package/dist/src/services/sessionGroups/type.d.mts +32 -0
- package/dist/src/services/sessionGroups/type.d.mts.map +1 -0
- package/dist/src/services/sessionGroups/type.mjs +11 -0
- package/dist/src/services/sessionGroups/type.mjs.map +1 -0
- package/dist/src/services/sessionIntercom/index.cjs +89 -0
- package/dist/src/services/sessionIntercom/index.cjs.map +1 -0
- package/dist/src/services/sessionIntercom/index.d.cts +11 -0
- package/dist/src/services/sessionIntercom/index.d.cts.map +1 -0
- package/dist/src/services/sessionIntercom/index.d.mts +11 -0
- package/dist/src/services/sessionIntercom/index.d.mts.map +1 -0
- package/dist/src/services/sessionIntercom/index.mjs +85 -0
- package/dist/src/services/sessionIntercom/index.mjs.map +1 -0
- package/dist/src/services/sessionIntercom/type.cjs +16 -0
- package/dist/src/services/sessionIntercom/type.cjs.map +1 -0
- package/dist/src/services/sessionIntercom/type.d.cts +60 -0
- package/dist/src/services/sessionIntercom/type.d.cts.map +1 -0
- package/dist/src/services/sessionIntercom/type.d.mts +60 -0
- package/dist/src/services/sessionIntercom/type.d.mts.map +1 -0
- package/dist/src/services/sessionIntercom/type.mjs +14 -0
- package/dist/src/services/sessionIntercom/type.mjs.map +1 -0
- package/llms.txt +3 -0
- package/package.json +115 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { DOOM_SESSION_INTERCOM_SERVICE, readSessionIntercom, requireSessionIntercom } from "./type.mjs";
|
|
2
|
+
//#region src/services/sessionIntercom/index.ts
|
|
3
|
+
const MESSAGE_KIND = "session-message";
|
|
4
|
+
const REPORT_KIND = "session-report";
|
|
5
|
+
function metadataFor(options, request, reportStatus) {
|
|
6
|
+
const group = options.groups.get(request.groupId);
|
|
7
|
+
if (!group || !options.groups.canMessage(request.groupId, options.selfReference, request.targetReference)) throw new Error(`Session group '${request.groupId}' does not authorize this message.`);
|
|
8
|
+
return {
|
|
9
|
+
sourceReference: options.selfReference,
|
|
10
|
+
targetReference: request.targetReference,
|
|
11
|
+
groupId: request.groupId,
|
|
12
|
+
groupRevision: String(group.revision),
|
|
13
|
+
...request.correlationId === void 0 ? {} : { correlationId: request.correlationId },
|
|
14
|
+
...reportStatus === void 0 ? {} : { reportStatus }
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/** Agent-facing intercom operations. A composition may acquire this service without gaining session controls. */
|
|
18
|
+
function createSessionIntercom(options) {
|
|
19
|
+
const deliver = async (request, kind, status) => {
|
|
20
|
+
const recipientKey = options.directory.resolveDeliveryTarget(options.selfReference, request.targetReference);
|
|
21
|
+
if (!recipientKey) throw new Error(`Session '${request.targetReference}' is not discoverable.`);
|
|
22
|
+
const metadata = metadataFor(options, request, status);
|
|
23
|
+
return options.delivery.deliver({
|
|
24
|
+
...request.deliveryId === void 0 ? {} : { deliveryId: request.deliveryId },
|
|
25
|
+
recipientKey,
|
|
26
|
+
kind,
|
|
27
|
+
prompt: `[Session ${status === void 0 ? "message" : `report: ${status}`} from ${options.selfReference}] ${request.text}`,
|
|
28
|
+
metadata
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
return Object.freeze({
|
|
32
|
+
discover() {
|
|
33
|
+
const members = new Set(options.groups.groupsFor(options.selfReference).flatMap((group) => group.members).filter((reference) => reference !== options.selfReference));
|
|
34
|
+
return options.directory.discover(options.selfReference, members);
|
|
35
|
+
},
|
|
36
|
+
send: (request) => deliver(request, MESSAGE_KIND),
|
|
37
|
+
report: (request) => deliver(request, REPORT_KIND, request.status),
|
|
38
|
+
messages() {
|
|
39
|
+
return options.delivery.inbox().filter((entry) => entry.kind === MESSAGE_KIND || entry.kind === REPORT_KIND).filter((entry) => {
|
|
40
|
+
const groupId = entry.metadata.groupId;
|
|
41
|
+
return groupId !== void 0 && options.groups.get(groupId)?.members.includes(options.selfReference) === true;
|
|
42
|
+
}).flatMap((entry) => {
|
|
43
|
+
const sourceReference = entry.metadata.sourceReference;
|
|
44
|
+
const targetReference = entry.metadata.targetReference;
|
|
45
|
+
const groupId = entry.metadata.groupId;
|
|
46
|
+
if (!sourceReference || !targetReference || !groupId) return [];
|
|
47
|
+
const reportStatus = entry.metadata.reportStatus;
|
|
48
|
+
return [{
|
|
49
|
+
deliveryId: entry.deliveryId,
|
|
50
|
+
sourceReference,
|
|
51
|
+
targetReference,
|
|
52
|
+
groupId,
|
|
53
|
+
...entry.metadata.correlationId === void 0 ? {} : { correlationId: entry.metadata.correlationId },
|
|
54
|
+
text: entry.prompt,
|
|
55
|
+
...reportStatus === "done" || reportStatus === "blocked" || reportStatus === "failed" ? { reportStatus } : {},
|
|
56
|
+
state: entry.state,
|
|
57
|
+
consumed: entry.consumed
|
|
58
|
+
}];
|
|
59
|
+
});
|
|
60
|
+
},
|
|
61
|
+
delivery(deliveryId) {
|
|
62
|
+
const entry = options.delivery.outbox(deliveryId);
|
|
63
|
+
const groupId = entry?.metadata.groupId;
|
|
64
|
+
return entry && groupId !== void 0 && options.groups.get(groupId)?.members.includes(options.selfReference) === true ? entry : void 0;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
/** Builds the dynamic delivery check used before every send, retry, and recipient acceptance. */
|
|
69
|
+
function createSessionGroupDeliveryAuthorizer(options) {
|
|
70
|
+
return (peerKey, metadata) => {
|
|
71
|
+
const sourceReference = metadata?.sourceReference;
|
|
72
|
+
const targetReference = metadata?.targetReference;
|
|
73
|
+
const groupId = metadata?.groupId;
|
|
74
|
+
if (sourceReference && targetReference && groupId) {
|
|
75
|
+
const peerReference = options.peerReference(peerKey);
|
|
76
|
+
if (!peerReference) return false;
|
|
77
|
+
return (sourceReference === options.selfReference && targetReference === peerReference || targetReference === options.selfReference && sourceReference === peerReference) && options.groups.canMessage(groupId, sourceReference, targetReference);
|
|
78
|
+
}
|
|
79
|
+
return options.fallback?.(peerKey, metadata) === true;
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
//#endregion
|
|
83
|
+
export { DOOM_SESSION_INTERCOM_SERVICE, createSessionGroupDeliveryAuthorizer, createSessionIntercom, readSessionIntercom, requireSessionIntercom };
|
|
84
|
+
|
|
85
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/sessionIntercom/index.ts"],"sourcesContent":["import type { DoomSessionDeliveryMetadata } from '../sessionDelivery';\nimport type { SessionIntercomMessage } from './type';\nimport type {\n SessionGroupDeliveryAuthorizationOptions,\n SessionIntercom,\n SessionIntercomOptions,\n SessionIntercomSendRequest,\n SessionReportStatus,\n} from './type';\n\nconst MESSAGE_KIND = 'session-message';\nconst REPORT_KIND = 'session-report';\n\nfunction metadataFor(\n options: SessionIntercomOptions,\n request: SessionIntercomSendRequest,\n reportStatus?: SessionReportStatus,\n): DoomSessionDeliveryMetadata {\n const group = options.groups.get(request.groupId);\n if (!group || !options.groups.canMessage(request.groupId, options.selfReference, request.targetReference))\n throw new Error(`Session group '${request.groupId}' does not authorize this message.`);\n return {\n sourceReference: options.selfReference,\n targetReference: request.targetReference,\n groupId: request.groupId,\n groupRevision: String(group.revision),\n ...(request.correlationId === undefined ? {} : { correlationId: request.correlationId }),\n ...(reportStatus === undefined ? {} : { reportStatus }),\n };\n}\n\n/** Agent-facing intercom operations. A composition may acquire this service without gaining session controls. */\nexport function createSessionIntercom(options: SessionIntercomOptions): SessionIntercom {\n const deliver = async (\n request: SessionIntercomSendRequest,\n kind: typeof MESSAGE_KIND | typeof REPORT_KIND,\n status?: SessionReportStatus,\n ): Promise<{ deliveryId: string }> => {\n const recipientKey = options.directory.resolveDeliveryTarget(options.selfReference, request.targetReference);\n if (!recipientKey) throw new Error(`Session '${request.targetReference}' is not discoverable.`);\n const metadata = metadataFor(options, request, status);\n return options.delivery.deliver({\n ...(request.deliveryId === undefined ? {} : { deliveryId: request.deliveryId }),\n recipientKey,\n kind,\n prompt: `[Session ${status === undefined ? 'message' : `report: ${status}`} from ${options.selfReference}] ${request.text}`,\n metadata,\n });\n };\n\n const intercom: SessionIntercom = {\n discover() {\n const members = new Set(\n options.groups\n .groupsFor(options.selfReference)\n .flatMap((group) => group.members)\n .filter((reference) => reference !== options.selfReference),\n );\n return options.directory.discover(options.selfReference, members);\n },\n send: (request) => deliver(request, MESSAGE_KIND),\n report: (request) => deliver(request, REPORT_KIND, request.status),\n messages() {\n return options.delivery\n .inbox()\n .filter((entry) => entry.kind === MESSAGE_KIND || entry.kind === REPORT_KIND)\n .filter((entry) => {\n const groupId = entry.metadata.groupId;\n return groupId !== undefined && options.groups.get(groupId)?.members.includes(options.selfReference) === true;\n })\n .flatMap((entry): SessionIntercomMessage[] => {\n const sourceReference = entry.metadata.sourceReference;\n const targetReference = entry.metadata.targetReference;\n const groupId = entry.metadata.groupId;\n if (!sourceReference || !targetReference || !groupId) return [];\n const reportStatus = entry.metadata.reportStatus;\n return [\n {\n deliveryId: entry.deliveryId,\n sourceReference,\n targetReference,\n groupId,\n ...(entry.metadata.correlationId === undefined ? {} : { correlationId: entry.metadata.correlationId }),\n text: entry.prompt,\n ...(reportStatus === 'done' || reportStatus === 'blocked' || reportStatus === 'failed'\n ? { reportStatus }\n : {}),\n state: entry.state,\n consumed: entry.consumed,\n },\n ];\n });\n },\n delivery(deliveryId) {\n const entry = options.delivery.outbox(deliveryId);\n const groupId = entry?.metadata.groupId;\n return entry &&\n groupId !== undefined &&\n options.groups.get(groupId)?.members.includes(options.selfReference) === true\n ? entry\n : undefined;\n },\n };\n return Object.freeze(intercom);\n}\n\n/** Builds the dynamic delivery check used before every send, retry, and recipient acceptance. */\nexport function createSessionGroupDeliveryAuthorizer(\n options: SessionGroupDeliveryAuthorizationOptions,\n): (peerKey: string, metadata: DoomSessionDeliveryMetadata | undefined) => boolean {\n return (peerKey, metadata) => {\n const sourceReference = metadata?.sourceReference;\n const targetReference = metadata?.targetReference;\n const groupId = metadata?.groupId;\n if (sourceReference && targetReference && groupId) {\n const peerReference = options.peerReference(peerKey);\n if (!peerReference) return false;\n const directionMatches =\n (sourceReference === options.selfReference && targetReference === peerReference) ||\n (targetReference === options.selfReference && sourceReference === peerReference);\n return directionMatches && options.groups.canMessage(groupId, sourceReference, targetReference);\n }\n return options.fallback?.(peerKey, metadata) === true;\n };\n}\n\nexport { DOOM_SESSION_INTERCOM_SERVICE, readSessionIntercom, requireSessionIntercom } from './type';\nexport type {\n SessionGroupDeliveryAuthorizationOptions,\n SessionIntercom,\n SessionIntercomMessage,\n SessionIntercomOptions,\n SessionIntercomSendRequest,\n SessionReportStatus,\n} from './type';\n"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/services/sessionIntercom/type.ts
|
|
2
|
+
const DOOM_SESSION_INTERCOM_SERVICE = "doom/session-intercom";
|
|
3
|
+
function readSessionIntercom(context) {
|
|
4
|
+
return context.get(DOOM_SESSION_INTERCOM_SERVICE);
|
|
5
|
+
}
|
|
6
|
+
function requireSessionIntercom(context) {
|
|
7
|
+
const service = readSessionIntercom(context);
|
|
8
|
+
if (!service) throw new Error("Session intercom is unavailable. Activate Session with a configured persistent host identity.");
|
|
9
|
+
return service;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
exports.DOOM_SESSION_INTERCOM_SERVICE = DOOM_SESSION_INTERCOM_SERVICE;
|
|
13
|
+
exports.readSessionIntercom = readSessionIntercom;
|
|
14
|
+
exports.requireSessionIntercom = requireSessionIntercom;
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=type.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.cjs","names":[],"sources":["../../../../src/services/sessionIntercom/type.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\n\nimport type {\n DoomSessionDeliveryMetadata,\n DoomSessionDeliveryService,\n DoomSessionInboxEntry,\n DoomSessionOutboxEntry,\n} from '../sessionDelivery';\nimport type { DiscoveredSession, SessionDirectory } from '../sessionDirectory';\nimport type { SessionGroupStore } from '../sessionGroups';\n\nexport const DOOM_SESSION_INTERCOM_SERVICE = 'doom/session-intercom';\n\nexport type SessionReportStatus = 'done' | 'blocked' | 'failed';\n\nexport interface SessionIntercomMessage {\n readonly deliveryId: string;\n readonly sourceReference: string;\n readonly targetReference: string;\n readonly groupId: string;\n readonly correlationId?: string;\n readonly text: string;\n readonly reportStatus?: SessionReportStatus;\n readonly state: DoomSessionInboxEntry['state'];\n readonly consumed: boolean;\n}\n\nexport interface SessionIntercomSendRequest {\n readonly targetReference: string;\n readonly groupId: string;\n readonly text: string;\n readonly correlationId?: string;\n readonly deliveryId?: string;\n}\n\nexport interface SessionIntercomOptions {\n readonly selfReference: string;\n readonly directory: SessionDirectory;\n readonly groups: SessionGroupStore;\n readonly delivery: DoomSessionDeliveryService;\n}\n\nexport interface SessionIntercom {\n discover(): readonly DiscoveredSession[];\n send(request: SessionIntercomSendRequest): Promise<{ deliveryId: string }>;\n report(\n request: SessionIntercomSendRequest & { readonly status: SessionReportStatus },\n ): Promise<{ deliveryId: string }>;\n messages(): readonly SessionIntercomMessage[];\n delivery(deliveryId: string): DoomSessionOutboxEntry | undefined;\n}\n\nexport interface SessionGroupDeliveryAuthorizationOptions {\n readonly selfReference: string;\n readonly groups: SessionGroupStore;\n readonly peerReference: (peerKey: string) => string | undefined;\n readonly fallback?: (peerKey: string, metadata: DoomSessionDeliveryMetadata | undefined) => boolean;\n}\n\ndeclare module '@deepseek-ai/cordis' {\n interface Context {\n 'doom/session-intercom': SessionIntercom;\n }\n}\n\nexport function readSessionIntercom(context: Context): SessionIntercom | undefined {\n return context.get(DOOM_SESSION_INTERCOM_SERVICE) as SessionIntercom | undefined;\n}\n\nexport function requireSessionIntercom(context: Context): SessionIntercom {\n const service = readSessionIntercom(context);\n if (!service)\n throw new Error('Session intercom is unavailable. Activate Session with a configured persistent host identity.');\n return service;\n}\n"],"mappings":";AAWA,MAAa,gCAAgC;AAsD7C,SAAgB,oBAAoB,SAA+C;CACjF,OAAO,QAAQ,IAAI,6BAA6B;AAClD;AAEA,SAAgB,uBAAuB,SAAmC;CACxE,MAAM,UAAU,oBAAoB,OAAO;CAC3C,IAAI,CAAC,SACH,MAAM,IAAI,MAAM,+FAA+F;CACjH,OAAO;AACT"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { DiscoveredSession, SessionDirectory } from "../sessionDirectory/type.cjs";
|
|
2
|
+
import { SessionGroupStore } from "../sessionGroups/type.cjs";
|
|
3
|
+
import { DoomSessionDeliveryMetadata, DoomSessionDeliveryService, DoomSessionInboxEntry, DoomSessionOutboxEntry } from "../sessionDelivery/type.cjs";
|
|
4
|
+
import "../sessionDelivery/index.cjs";
|
|
5
|
+
import { Context } from "@deepseek-ai/cordis";
|
|
6
|
+
//#region src/services/sessionIntercom/type.d.ts
|
|
7
|
+
export declare const DOOM_SESSION_INTERCOM_SERVICE = "doom/session-intercom";
|
|
8
|
+
export type SessionReportStatus = 'done' | 'blocked' | 'failed';
|
|
9
|
+
export interface SessionIntercomMessage {
|
|
10
|
+
readonly deliveryId: string;
|
|
11
|
+
readonly sourceReference: string;
|
|
12
|
+
readonly targetReference: string;
|
|
13
|
+
readonly groupId: string;
|
|
14
|
+
readonly correlationId?: string;
|
|
15
|
+
readonly text: string;
|
|
16
|
+
readonly reportStatus?: SessionReportStatus;
|
|
17
|
+
readonly state: DoomSessionInboxEntry['state'];
|
|
18
|
+
readonly consumed: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface SessionIntercomSendRequest {
|
|
21
|
+
readonly targetReference: string;
|
|
22
|
+
readonly groupId: string;
|
|
23
|
+
readonly text: string;
|
|
24
|
+
readonly correlationId?: string;
|
|
25
|
+
readonly deliveryId?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface SessionIntercomOptions {
|
|
28
|
+
readonly selfReference: string;
|
|
29
|
+
readonly directory: SessionDirectory;
|
|
30
|
+
readonly groups: SessionGroupStore;
|
|
31
|
+
readonly delivery: DoomSessionDeliveryService;
|
|
32
|
+
}
|
|
33
|
+
export interface SessionIntercom {
|
|
34
|
+
discover(): readonly DiscoveredSession[];
|
|
35
|
+
send(request: SessionIntercomSendRequest): Promise<{
|
|
36
|
+
deliveryId: string;
|
|
37
|
+
}>;
|
|
38
|
+
report(request: SessionIntercomSendRequest & {
|
|
39
|
+
readonly status: SessionReportStatus;
|
|
40
|
+
}): Promise<{
|
|
41
|
+
deliveryId: string;
|
|
42
|
+
}>;
|
|
43
|
+
messages(): readonly SessionIntercomMessage[];
|
|
44
|
+
delivery(deliveryId: string): DoomSessionOutboxEntry | undefined;
|
|
45
|
+
}
|
|
46
|
+
export interface SessionGroupDeliveryAuthorizationOptions {
|
|
47
|
+
readonly selfReference: string;
|
|
48
|
+
readonly groups: SessionGroupStore;
|
|
49
|
+
readonly peerReference: (peerKey: string) => string | undefined;
|
|
50
|
+
readonly fallback?: (peerKey: string, metadata: DoomSessionDeliveryMetadata | undefined) => boolean;
|
|
51
|
+
}
|
|
52
|
+
declare module '@deepseek-ai/cordis' {
|
|
53
|
+
interface Context {
|
|
54
|
+
'doom/session-intercom': SessionIntercom;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export declare function readSessionIntercom(context: Context): SessionIntercom | undefined;
|
|
58
|
+
export declare function requireSessionIntercom(context: Context): SessionIntercom;
|
|
59
|
+
//#endregion
|
|
60
|
+
//# sourceMappingURL=type.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.d.cts","names":[],"sources":["../../../../src/services/sessionIntercom/type.ts"],"mappings":";;;;;;qBAWa;YAED;iBAEK;WACN;WACA;WACA;WACA;WACA;WACA;WACA,eAAe;WACf,OAAO;WACP;;iBAGM;WACN;WACA;WACA;WACA;WACA;;iBAGM;WACN;WACA,WAAW;WACX,QAAQ;WACR,UAAU;;iBAGJ;EACf,qBAAqB;EACrB,KAAK,SAAS,6BAA6B;IAAU;;EACrD,OACE,SAAS;aAAwC,QAAQ;MACxD;IAAU;;EACb,qBAAqB;EACrB,SAAS,qBAAqB;;iBAGf;WACN;WACA,QAAQ;WACR,gBAAgB;WAChB,YAAY,iBAAiB,UAAU;;;YAItC;IACR,yBAAyB;;;wBAIb,oBAAoB,SAAS,UAAU;wBAIvC,uBAAuB,SAAS,UAAU"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { DiscoveredSession, SessionDirectory } from "../sessionDirectory/type.mjs";
|
|
2
|
+
import { SessionGroupStore } from "../sessionGroups/type.mjs";
|
|
3
|
+
import { DoomSessionDeliveryMetadata, DoomSessionDeliveryService, DoomSessionInboxEntry, DoomSessionOutboxEntry } from "../sessionDelivery/type.mjs";
|
|
4
|
+
import "../sessionDelivery/index.mjs";
|
|
5
|
+
import { Context } from "@deepseek-ai/cordis";
|
|
6
|
+
//#region src/services/sessionIntercom/type.d.ts
|
|
7
|
+
export declare const DOOM_SESSION_INTERCOM_SERVICE = "doom/session-intercom";
|
|
8
|
+
export type SessionReportStatus = 'done' | 'blocked' | 'failed';
|
|
9
|
+
export interface SessionIntercomMessage {
|
|
10
|
+
readonly deliveryId: string;
|
|
11
|
+
readonly sourceReference: string;
|
|
12
|
+
readonly targetReference: string;
|
|
13
|
+
readonly groupId: string;
|
|
14
|
+
readonly correlationId?: string;
|
|
15
|
+
readonly text: string;
|
|
16
|
+
readonly reportStatus?: SessionReportStatus;
|
|
17
|
+
readonly state: DoomSessionInboxEntry['state'];
|
|
18
|
+
readonly consumed: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface SessionIntercomSendRequest {
|
|
21
|
+
readonly targetReference: string;
|
|
22
|
+
readonly groupId: string;
|
|
23
|
+
readonly text: string;
|
|
24
|
+
readonly correlationId?: string;
|
|
25
|
+
readonly deliveryId?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface SessionIntercomOptions {
|
|
28
|
+
readonly selfReference: string;
|
|
29
|
+
readonly directory: SessionDirectory;
|
|
30
|
+
readonly groups: SessionGroupStore;
|
|
31
|
+
readonly delivery: DoomSessionDeliveryService;
|
|
32
|
+
}
|
|
33
|
+
export interface SessionIntercom {
|
|
34
|
+
discover(): readonly DiscoveredSession[];
|
|
35
|
+
send(request: SessionIntercomSendRequest): Promise<{
|
|
36
|
+
deliveryId: string;
|
|
37
|
+
}>;
|
|
38
|
+
report(request: SessionIntercomSendRequest & {
|
|
39
|
+
readonly status: SessionReportStatus;
|
|
40
|
+
}): Promise<{
|
|
41
|
+
deliveryId: string;
|
|
42
|
+
}>;
|
|
43
|
+
messages(): readonly SessionIntercomMessage[];
|
|
44
|
+
delivery(deliveryId: string): DoomSessionOutboxEntry | undefined;
|
|
45
|
+
}
|
|
46
|
+
export interface SessionGroupDeliveryAuthorizationOptions {
|
|
47
|
+
readonly selfReference: string;
|
|
48
|
+
readonly groups: SessionGroupStore;
|
|
49
|
+
readonly peerReference: (peerKey: string) => string | undefined;
|
|
50
|
+
readonly fallback?: (peerKey: string, metadata: DoomSessionDeliveryMetadata | undefined) => boolean;
|
|
51
|
+
}
|
|
52
|
+
declare module '@deepseek-ai/cordis' {
|
|
53
|
+
interface Context {
|
|
54
|
+
'doom/session-intercom': SessionIntercom;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export declare function readSessionIntercom(context: Context): SessionIntercom | undefined;
|
|
58
|
+
export declare function requireSessionIntercom(context: Context): SessionIntercom;
|
|
59
|
+
//#endregion
|
|
60
|
+
//# sourceMappingURL=type.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.d.mts","names":[],"sources":["../../../../src/services/sessionIntercom/type.ts"],"mappings":";;;;;;qBAWa;YAED;iBAEK;WACN;WACA;WACA;WACA;WACA;WACA;WACA,eAAe;WACf,OAAO;WACP;;iBAGM;WACN;WACA;WACA;WACA;WACA;;iBAGM;WACN;WACA,WAAW;WACX,QAAQ;WACR,UAAU;;iBAGJ;EACf,qBAAqB;EACrB,KAAK,SAAS,6BAA6B;IAAU;;EACrD,OACE,SAAS;aAAwC,QAAQ;MACxD;IAAU;;EACb,qBAAqB;EACrB,SAAS,qBAAqB;;iBAGf;WACN;WACA,QAAQ;WACR,gBAAgB;WAChB,YAAY,iBAAiB,UAAU;;;YAItC;IACR,yBAAyB;;;wBAIb,oBAAoB,SAAS,UAAU;wBAIvC,uBAAuB,SAAS,UAAU"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/services/sessionIntercom/type.ts
|
|
2
|
+
const DOOM_SESSION_INTERCOM_SERVICE = "doom/session-intercom";
|
|
3
|
+
function readSessionIntercom(context) {
|
|
4
|
+
return context.get(DOOM_SESSION_INTERCOM_SERVICE);
|
|
5
|
+
}
|
|
6
|
+
function requireSessionIntercom(context) {
|
|
7
|
+
const service = readSessionIntercom(context);
|
|
8
|
+
if (!service) throw new Error("Session intercom is unavailable. Activate Session with a configured persistent host identity.");
|
|
9
|
+
return service;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { DOOM_SESSION_INTERCOM_SERVICE, readSessionIntercom, requireSessionIntercom };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=type.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.mjs","names":[],"sources":["../../../../src/services/sessionIntercom/type.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\n\nimport type {\n DoomSessionDeliveryMetadata,\n DoomSessionDeliveryService,\n DoomSessionInboxEntry,\n DoomSessionOutboxEntry,\n} from '../sessionDelivery';\nimport type { DiscoveredSession, SessionDirectory } from '../sessionDirectory';\nimport type { SessionGroupStore } from '../sessionGroups';\n\nexport const DOOM_SESSION_INTERCOM_SERVICE = 'doom/session-intercom';\n\nexport type SessionReportStatus = 'done' | 'blocked' | 'failed';\n\nexport interface SessionIntercomMessage {\n readonly deliveryId: string;\n readonly sourceReference: string;\n readonly targetReference: string;\n readonly groupId: string;\n readonly correlationId?: string;\n readonly text: string;\n readonly reportStatus?: SessionReportStatus;\n readonly state: DoomSessionInboxEntry['state'];\n readonly consumed: boolean;\n}\n\nexport interface SessionIntercomSendRequest {\n readonly targetReference: string;\n readonly groupId: string;\n readonly text: string;\n readonly correlationId?: string;\n readonly deliveryId?: string;\n}\n\nexport interface SessionIntercomOptions {\n readonly selfReference: string;\n readonly directory: SessionDirectory;\n readonly groups: SessionGroupStore;\n readonly delivery: DoomSessionDeliveryService;\n}\n\nexport interface SessionIntercom {\n discover(): readonly DiscoveredSession[];\n send(request: SessionIntercomSendRequest): Promise<{ deliveryId: string }>;\n report(\n request: SessionIntercomSendRequest & { readonly status: SessionReportStatus },\n ): Promise<{ deliveryId: string }>;\n messages(): readonly SessionIntercomMessage[];\n delivery(deliveryId: string): DoomSessionOutboxEntry | undefined;\n}\n\nexport interface SessionGroupDeliveryAuthorizationOptions {\n readonly selfReference: string;\n readonly groups: SessionGroupStore;\n readonly peerReference: (peerKey: string) => string | undefined;\n readonly fallback?: (peerKey: string, metadata: DoomSessionDeliveryMetadata | undefined) => boolean;\n}\n\ndeclare module '@deepseek-ai/cordis' {\n interface Context {\n 'doom/session-intercom': SessionIntercom;\n }\n}\n\nexport function readSessionIntercom(context: Context): SessionIntercom | undefined {\n return context.get(DOOM_SESSION_INTERCOM_SERVICE) as SessionIntercom | undefined;\n}\n\nexport function requireSessionIntercom(context: Context): SessionIntercom {\n const service = readSessionIntercom(context);\n if (!service)\n throw new Error('Session intercom is unavailable. Activate Session with a configured persistent host identity.');\n return service;\n}\n"],"mappings":";AAWA,MAAa,gCAAgC;AAsD7C,SAAgB,oBAAoB,SAA+C;CACjF,OAAO,QAAQ,IAAI,6BAA6B;AAClD;AAEA,SAAgB,uBAAuB,SAAmC;CACxE,MAAM,UAAU,oBAAoB,OAAO;CAC3C,IAAI,CAAC,SACH,MAAM,IAAI,MAAM,+FAA+F;CACjH,OAAO;AACT"}
|
package/llms.txt
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@agimon-ai/doompi-session",
|
|
3
|
+
"version": "0.0.1-alpha.1",
|
|
4
|
+
"description": "Shared session coordination services for DoomPi.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"ai",
|
|
7
|
+
"coding-agent",
|
|
8
|
+
"developer-tools",
|
|
9
|
+
"doompi",
|
|
10
|
+
"pi-coding-agent",
|
|
11
|
+
"pi-extension",
|
|
12
|
+
"pi-package",
|
|
13
|
+
"session"
|
|
14
|
+
],
|
|
15
|
+
"homepage": "https://agimon.ai",
|
|
16
|
+
"bugs": {
|
|
17
|
+
"url": "https://github.com/AgiFlow/doompi/issues"
|
|
18
|
+
},
|
|
19
|
+
"license": "MIT",
|
|
20
|
+
"author": "Vuong Ngo",
|
|
21
|
+
"repository": {
|
|
22
|
+
"type": "git",
|
|
23
|
+
"url": "git+https://github.com/AgiFlow/doompi.git",
|
|
24
|
+
"directory": "packages/foundations/doompi-session"
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
"dist",
|
|
28
|
+
"llms.txt",
|
|
29
|
+
"README.md",
|
|
30
|
+
"LICENSE",
|
|
31
|
+
"package.json"
|
|
32
|
+
],
|
|
33
|
+
"type": "module",
|
|
34
|
+
"main": "./dist/index.cjs",
|
|
35
|
+
"module": "./dist/index.mjs",
|
|
36
|
+
"types": "./dist/index.d.cts",
|
|
37
|
+
"jsnext:main": "./dist/index.mjs",
|
|
38
|
+
"exports": {
|
|
39
|
+
".": {
|
|
40
|
+
"types": "./dist/index.d.mts",
|
|
41
|
+
"import": "./dist/index.mjs",
|
|
42
|
+
"require": "./dist/index.cjs"
|
|
43
|
+
},
|
|
44
|
+
"./api-contracts": {
|
|
45
|
+
"types": "./dist/api-contracts.d.mts",
|
|
46
|
+
"import": "./dist/api-contracts.mjs",
|
|
47
|
+
"require": "./dist/api-contracts.cjs"
|
|
48
|
+
},
|
|
49
|
+
"./extensions/pi": {
|
|
50
|
+
"types": "./dist/extensions/pi.d.mts",
|
|
51
|
+
"import": "./dist/extensions/pi.mjs",
|
|
52
|
+
"require": "./dist/extensions/pi.cjs"
|
|
53
|
+
},
|
|
54
|
+
"./extensions/server": {
|
|
55
|
+
"types": "./dist/extensions/server.d.mts",
|
|
56
|
+
"import": "./dist/extensions/server.mjs",
|
|
57
|
+
"require": "./dist/extensions/server.cjs"
|
|
58
|
+
},
|
|
59
|
+
"./package.json": "./package.json"
|
|
60
|
+
},
|
|
61
|
+
"publishConfig": {
|
|
62
|
+
"access": "public"
|
|
63
|
+
},
|
|
64
|
+
"dependencies": {
|
|
65
|
+
"@agimon-ai/doompi-core": "0.0.1-alpha.77",
|
|
66
|
+
"@deepseek-ai/cordis": "4.0.2",
|
|
67
|
+
"typebox": "1.3.30"
|
|
68
|
+
},
|
|
69
|
+
"devDependencies": {
|
|
70
|
+
"@agimon-ai/doompi-build": "0.0.1-alpha.6",
|
|
71
|
+
"@agimon-ai/vibe-lint-plugin-doom-extension": "0.0.1-alpha.72",
|
|
72
|
+
"@earendil-works/pi-coding-agent": "0.85.1",
|
|
73
|
+
"@types/node": "26.5.1",
|
|
74
|
+
"@vitest/coverage-v8": "5.0.0",
|
|
75
|
+
"tsdown": "0.23.0",
|
|
76
|
+
"typescript": "7.0.2",
|
|
77
|
+
"vitest": "5.0.0"
|
|
78
|
+
},
|
|
79
|
+
"peerDependencies": {
|
|
80
|
+
"@earendil-works/pi-coding-agent": "0.85.1"
|
|
81
|
+
},
|
|
82
|
+
"peerDependenciesMeta": {
|
|
83
|
+
"@earendil-works/pi-coding-agent": {
|
|
84
|
+
"optional": true
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"engines": {
|
|
88
|
+
"node": ">=22.19.0"
|
|
89
|
+
},
|
|
90
|
+
"doompiServer": {
|
|
91
|
+
"entry": "./generated/server.ts",
|
|
92
|
+
"dist": "./dist/extensions/server.mjs",
|
|
93
|
+
"scopes": [
|
|
94
|
+
"global",
|
|
95
|
+
"workspace",
|
|
96
|
+
"session"
|
|
97
|
+
],
|
|
98
|
+
"contracts": {
|
|
99
|
+
"entry": "./src/exports/apiContracts.ts",
|
|
100
|
+
"dist": "./dist/api-contracts.mjs"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"pi": {
|
|
104
|
+
"extensions": [
|
|
105
|
+
"./dist/extensions/pi.mjs"
|
|
106
|
+
]
|
|
107
|
+
},
|
|
108
|
+
"scripts": {
|
|
109
|
+
"build": "tsdown",
|
|
110
|
+
"test": "vitest --run",
|
|
111
|
+
"typecheck": "tsc --noEmit",
|
|
112
|
+
"lint": "oxlint . && oxfmt . --check",
|
|
113
|
+
"fixcode": "oxlint . --fix && oxfmt ."
|
|
114
|
+
}
|
|
115
|
+
}
|