@xrkseek/harness 0.6.7 → 0.6.8
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/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/preset.js +10 -2
- package/node_modules/@xrkseek/preset-harness/dist/preset.js.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/protocol/dist/content.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/content.js +5 -1
- package/node_modules/@xrkseek/protocol/dist/content.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-member-card.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-member-card.js +14 -1
- package/node_modules/@xrkseek/server-face/dist/agent-member-card.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-member-pack.d.ts +64 -0
- package/node_modules/@xrkseek/server-face/dist/agent-member-pack.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/agent-member-pack.js +328 -0
- package/node_modules/@xrkseek/server-face/dist/agent-member-pack.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/agent-roster-store.d.ts +36 -1
- package/node_modules/@xrkseek/server-face/dist/agent-roster-store.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-roster-store.js +102 -2
- package/node_modules/@xrkseek/server-face/dist/agent-roster-store.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-roster-tools.d.ts +2 -5
- package/node_modules/@xrkseek/server-face/dist/agent-roster-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-roster-tools.js +227 -39
- package/node_modules/@xrkseek/server-face/dist/agent-roster-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-team-roles.js +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-team-roles.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/dispatch.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/dispatch.js +5 -1
- package/node_modules/@xrkseek/server-face/dist/dispatch.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/team.d.ts +4 -0
- package/node_modules/@xrkseek/server-face/dist/handlers/team.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/team.js +188 -2
- package/node_modules/@xrkseek/server-face/dist/handlers/team.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/index.d.ts +2 -2
- package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/index.js +2 -2
- package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-tool-copy.d.ts +4 -0
- package/node_modules/@xrkseek/server-face/dist/session-tool-copy.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-tool-copy.js +18 -2
- package/node_modules/@xrkseek/server-face/dist/session-tool-copy.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.js +15 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/zip-store.d.ts +5 -3
- package/node_modules/@xrkseek/server-face/dist/zip-store.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/zip-store.js +60 -1
- package/node_modules/@xrkseek/server-face/dist/zip-store.js.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.js +31 -24
- package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/index.d.ts +8 -0
- package/node_modules/@xrkseek/workspace/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/index.js +17 -5
- package/node_modules/@xrkseek/workspace/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/inject-fingerprint.d.ts +1 -0
- package/node_modules/@xrkseek/workspace/dist/inject-fingerprint.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/inject-fingerprint.js +4 -1
- package/node_modules/@xrkseek/workspace/dist/inject-fingerprint.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skill-dirs.d.ts +2 -0
- package/node_modules/@xrkseek/workspace/dist/skill-dirs.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skill-dirs.js +24 -21
- package/node_modules/@xrkseek/workspace/dist/skill-dirs.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skills.d.ts +2 -0
- package/node_modules/@xrkseek/workspace/dist/skills.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skills.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-member-card.js","sourceRoot":"","sources":["../src/agent-member-card.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,oBAAoB,EAA2B,MAAM,uBAAuB,CAAC;AACtF,OAAO,
|
|
1
|
+
{"version":3,"file":"agent-member-card.js","sourceRoot":"","sources":["../src/agent-member-card.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,oBAAoB,EAA2B,MAAM,uBAAuB,CAAC;AACtF,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GAEtB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,CAAC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAWzD,gEAAgE;AAChE,MAAM,UAAU,qBAAqB,CAAC,IAAqB;IACzD,OAAO,IAAI,CAAC,SAAS,CACnB;QACE,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7C,EACD,IAAI,EACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAClF,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,oBAAoB,CAClC,GAAY;IAEZ,IAAI,KAAK,GAAG,GAAG,CAAC;IAChB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;IAChE,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,IAAI,IAAI,KAAK,sBAAsB,EAAE,CAAC;QACpC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,qBAAqB,sBAAsB,EAAE;SACrD,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC;IAC9D,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,mBAAmB,EAAE,CAAC;QAC1C,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,oBAAoB,mBAAmB,aAAa;SAC5D,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnE,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,KAAK,UAAU,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;QAClE,CAAC,CAAC,GAAG,CAAC,MAAM;QACZ,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE;YACJ,IAAI;YACJ,QAAQ;YACR,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;YACxD,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5B;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { type AgentMemberCard } from "./agent-member-card.js";
|
|
2
|
+
export declare const AGENT_MEMBER_PACK_KIND = "xrk-agent-pack";
|
|
3
|
+
export declare const AGENT_MEMBER_PACK_VERSION = 1;
|
|
4
|
+
/** Required root marker — zip/dir without it is rejected. */
|
|
5
|
+
export declare const AGENT_MEMBER_PACK_MARKER = ".xrk-agent-pack";
|
|
6
|
+
export interface AgentMemberPack {
|
|
7
|
+
readonly card: AgentMemberCard;
|
|
8
|
+
/** Relative skill directory names under `skills/` that contain SKILL.md. */
|
|
9
|
+
readonly skillDirs: readonly string[];
|
|
10
|
+
/** Parent-facing env prep markdown (from env/SETUP.md), if any. */
|
|
11
|
+
readonly envPrep?: string;
|
|
12
|
+
/** All file bytes keyed by normalized zip/dir-relative path. */
|
|
13
|
+
readonly files: ReadonlyMap<string, Buffer>;
|
|
14
|
+
}
|
|
15
|
+
export type ParseAgentMemberPackResult = {
|
|
16
|
+
readonly ok: true;
|
|
17
|
+
readonly pack: AgentMemberPack;
|
|
18
|
+
} | {
|
|
19
|
+
readonly ok: false;
|
|
20
|
+
readonly error: string;
|
|
21
|
+
};
|
|
22
|
+
/** Parse a pack from an in-memory path→bytes map (zip or walked directory). */
|
|
23
|
+
export declare function parseAgentMemberPackFiles(files: ReadonlyMap<string, Buffer>): ParseAgentMemberPackResult;
|
|
24
|
+
/** Load a pack from a `.zip` file or an unpacked directory. */
|
|
25
|
+
export declare function loadAgentMemberPack(sourcePath: string): ParseAgentMemberPackResult;
|
|
26
|
+
/** Load pack bytes (e.g. UI upload). */
|
|
27
|
+
export declare function loadAgentMemberPackBytes(buf: Buffer): ParseAgentMemberPackResult;
|
|
28
|
+
/** Read env/SETUP.md from an already-materialized pack dir (parent prep text). */
|
|
29
|
+
export declare function readMemberPackEnvPrep(packDir: string): string | undefined;
|
|
30
|
+
/** Hints for advanced members that are not ready yet (team_list / Face list / UI). */
|
|
31
|
+
export declare function notReadyPackHints(input: {
|
|
32
|
+
readonly rosterWorkspaceId: string;
|
|
33
|
+
readonly memberId: string;
|
|
34
|
+
readonly productHome?: string | undefined;
|
|
35
|
+
}): {
|
|
36
|
+
readonly packDir: string;
|
|
37
|
+
readonly envPrep?: string;
|
|
38
|
+
readonly envHint: string;
|
|
39
|
+
readonly next: string;
|
|
40
|
+
};
|
|
41
|
+
export interface MaterializeAgentMemberPackOptions {
|
|
42
|
+
readonly rosterWorkspaceId: string;
|
|
43
|
+
readonly memberId: string;
|
|
44
|
+
readonly productHome?: string | undefined;
|
|
45
|
+
}
|
|
46
|
+
export interface MaterializeAgentMemberPackResult {
|
|
47
|
+
readonly card: AgentMemberCard;
|
|
48
|
+
readonly packDir: string;
|
|
49
|
+
readonly skillNames: readonly string[];
|
|
50
|
+
readonly envPrep?: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Write pack files under `agent-rosters/packs/{scope}/{id}/`.
|
|
54
|
+
* Skills stay in the pack — never installed into workspace `.agents/skills`.
|
|
55
|
+
*/
|
|
56
|
+
export declare function materializeAgentMemberPack(pack: AgentMemberPack, options: MaterializeAgentMemberPackOptions): MaterializeAgentMemberPackResult;
|
|
57
|
+
/** Build a store-method zip for export (includes marker; no appearance). */
|
|
58
|
+
export declare function buildAgentMemberPackZip(card: AgentMemberCard, options?: {
|
|
59
|
+
readonly skillsFiles?: ReadonlyMap<string, Buffer>;
|
|
60
|
+
readonly envPrep?: string;
|
|
61
|
+
}): Buffer;
|
|
62
|
+
/** Zip an on-disk advanced pack directory (must already contain the marker). */
|
|
63
|
+
export declare function zipMemberPackDir(packDir: string): Buffer | undefined;
|
|
64
|
+
//# sourceMappingURL=agent-member-pack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-member-pack.d.ts","sourceRoot":"","sources":["../src/agent-member-pack.ts"],"names":[],"mappings":"AAuBA,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAOhC,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AACvD,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,6DAA6D;AAC7D,eAAO,MAAM,wBAAwB,oBAAoB,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,mEAAmE;IACnE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7C;AAED,MAAM,MAAM,0BAA0B,GAClC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAyCnD,+EAA+E;AAC/E,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,0BAA0B,CA2E5B;AA8DD,+DAA+D;AAC/D,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,0BAA0B,CAuBlF;AAED,wCAAwC;AACxC,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,0BAA0B,CAMhF;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAYzE;AAED,sFAAsF;AACtF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C,GAAG;IACF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAeA;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,iCAAiC,GACzC,gCAAgC,CA8BlC;AAED,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE;IACvE,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAkCT;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQpE"}
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Portable advanced 干员 pack: playbook + optional skills + env prep.
|
|
3
|
+
* Thin cards stay on `xrk-agent-member` JSON in the roster index.
|
|
4
|
+
*
|
|
5
|
+
* Layout (zip or directory under agent-rosters/packs/{scope}/{id}/):
|
|
6
|
+
* .xrk-agent-pack — required marker (illegal zip without it)
|
|
7
|
+
* manifest.json — kind xrk-agent-pack, name, role, optional brief/inject/tools
|
|
8
|
+
* playbook.md — required (≤ MEMBER_PLAYBOOK_MAX); stands in for AGENTS.md / rules
|
|
9
|
+
* skills/<id>/ — optional; child-only catalog (not parent workspace)
|
|
10
|
+
* env/SETUP.md — optional parent prep text (never auto-run)
|
|
11
|
+
*
|
|
12
|
+
* Never pack curated memory (`scope=agent`) or appearance — those stay local.
|
|
13
|
+
*/
|
|
14
|
+
import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync, } from "node:fs";
|
|
15
|
+
import path from "node:path";
|
|
16
|
+
import { AGENT_MEMBER_CARD_KIND, parseAgentMemberCard, } from "./agent-member-card.js";
|
|
17
|
+
import { MEMBER_PLAYBOOK_MAX, memberPackDir, } from "./agent-roster-store.js";
|
|
18
|
+
import { buildStoredZip, readZipEntries, zipEntryName } from "./zip-store.js";
|
|
19
|
+
export const AGENT_MEMBER_PACK_KIND = "xrk-agent-pack";
|
|
20
|
+
export const AGENT_MEMBER_PACK_VERSION = 1;
|
|
21
|
+
/** Required root marker — zip/dir without it is rejected. */
|
|
22
|
+
export const AGENT_MEMBER_PACK_MARKER = ".xrk-agent-pack";
|
|
23
|
+
function asRecord(value) {
|
|
24
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
25
|
+
return undefined;
|
|
26
|
+
return value;
|
|
27
|
+
}
|
|
28
|
+
function textOf(files, rel) {
|
|
29
|
+
const buf = files.get(zipEntryName(rel));
|
|
30
|
+
if (!buf)
|
|
31
|
+
return undefined;
|
|
32
|
+
return buf.toString("utf8");
|
|
33
|
+
}
|
|
34
|
+
function listSkillDirs(files) {
|
|
35
|
+
const names = new Set();
|
|
36
|
+
for (const key of files.keys()) {
|
|
37
|
+
const m = /^skills\/([^/]+)\/SKILL\.md$/i.exec(key);
|
|
38
|
+
if (m?.[1])
|
|
39
|
+
names.add(m[1]);
|
|
40
|
+
}
|
|
41
|
+
return [...names].sort();
|
|
42
|
+
}
|
|
43
|
+
function markerPayload() {
|
|
44
|
+
return `${JSON.stringify({
|
|
45
|
+
kind: AGENT_MEMBER_PACK_KIND,
|
|
46
|
+
version: AGENT_MEMBER_PACK_VERSION,
|
|
47
|
+
})}\n`;
|
|
48
|
+
}
|
|
49
|
+
function hasPackMarker(files) {
|
|
50
|
+
const raw = textOf(files, AGENT_MEMBER_PACK_MARKER)?.trim();
|
|
51
|
+
if (!raw)
|
|
52
|
+
return false;
|
|
53
|
+
try {
|
|
54
|
+
const row = asRecord(JSON.parse(raw));
|
|
55
|
+
return row?.kind === AGENT_MEMBER_PACK_KIND;
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// Allow a bare token file for hand-authored packs.
|
|
59
|
+
return raw === AGENT_MEMBER_PACK_KIND || raw.includes(AGENT_MEMBER_PACK_KIND);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/** Parse a pack from an in-memory path→bytes map (zip or walked directory). */
|
|
63
|
+
export function parseAgentMemberPackFiles(files) {
|
|
64
|
+
const normalized = new Map();
|
|
65
|
+
for (const [k, v] of files) {
|
|
66
|
+
const name = zipEntryName(k);
|
|
67
|
+
if (name && !name.endsWith("/"))
|
|
68
|
+
normalized.set(name, v);
|
|
69
|
+
}
|
|
70
|
+
if (!hasPackMarker(normalized)) {
|
|
71
|
+
return {
|
|
72
|
+
ok: false,
|
|
73
|
+
error: `illegal pack: missing ${AGENT_MEMBER_PACK_MARKER} marker`,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
const playbookRaw = textOf(normalized, "playbook.md") ?? textOf(normalized, "PLAYBOOK.md");
|
|
77
|
+
const playbook = playbookRaw?.trim() ?? "";
|
|
78
|
+
if (!playbook) {
|
|
79
|
+
return { ok: false, error: "pack needs playbook.md" };
|
|
80
|
+
}
|
|
81
|
+
if (playbook.length > MEMBER_PLAYBOOK_MAX) {
|
|
82
|
+
return {
|
|
83
|
+
ok: false,
|
|
84
|
+
error: `playbook exceeds ${MEMBER_PLAYBOOK_MAX} characters`,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
const manifestRaw = textOf(normalized, "manifest.json") ??
|
|
88
|
+
textOf(normalized, "member.json") ??
|
|
89
|
+
textOf(normalized, "card.json");
|
|
90
|
+
if (!manifestRaw) {
|
|
91
|
+
return { ok: false, error: "pack needs manifest.json (or member.json)" };
|
|
92
|
+
}
|
|
93
|
+
let manifestValue;
|
|
94
|
+
try {
|
|
95
|
+
manifestValue = JSON.parse(manifestRaw);
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return { ok: false, error: "manifest.json is not JSON" };
|
|
99
|
+
}
|
|
100
|
+
const row = asRecord(manifestValue);
|
|
101
|
+
if (!row)
|
|
102
|
+
return { ok: false, error: "manifest must be an object" };
|
|
103
|
+
const kind = typeof row.kind === "string" ? row.kind.trim() : "";
|
|
104
|
+
if (kind !== AGENT_MEMBER_PACK_KIND && kind !== AGENT_MEMBER_CARD_KIND) {
|
|
105
|
+
return {
|
|
106
|
+
ok: false,
|
|
107
|
+
error: `manifest kind must be ${AGENT_MEMBER_PACK_KIND} or ${AGENT_MEMBER_CARD_KIND}`,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
const cardPayload = {
|
|
111
|
+
...row,
|
|
112
|
+
kind: AGENT_MEMBER_CARD_KIND,
|
|
113
|
+
playbook,
|
|
114
|
+
};
|
|
115
|
+
const parsed = parseAgentMemberCard(cardPayload);
|
|
116
|
+
if (!parsed.ok)
|
|
117
|
+
return { ok: false, error: parsed.error };
|
|
118
|
+
const envPrep = textOf(normalized, "env/SETUP.md")?.trim() ||
|
|
119
|
+
textOf(normalized, "env/setup.md")?.trim() ||
|
|
120
|
+
textOf(normalized, "SETUP.md")?.trim() ||
|
|
121
|
+
undefined;
|
|
122
|
+
return {
|
|
123
|
+
ok: true,
|
|
124
|
+
pack: {
|
|
125
|
+
card: parsed.card,
|
|
126
|
+
skillDirs: listSkillDirs(normalized),
|
|
127
|
+
...(envPrep ? { envPrep } : {}),
|
|
128
|
+
files: normalized,
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
function walkDirFiles(root, prefix = "") {
|
|
133
|
+
const out = new Map();
|
|
134
|
+
let entries;
|
|
135
|
+
try {
|
|
136
|
+
entries = readdirSync(root);
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
return out;
|
|
140
|
+
}
|
|
141
|
+
for (const name of entries) {
|
|
142
|
+
if (name === "." || name === ".." || name === ".DS_Store")
|
|
143
|
+
continue;
|
|
144
|
+
const abs = path.join(root, name);
|
|
145
|
+
let st;
|
|
146
|
+
try {
|
|
147
|
+
st = statSync(abs);
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
const rel = prefix ? `${prefix}/${name}` : name;
|
|
153
|
+
if (st.isDirectory()) {
|
|
154
|
+
for (const [k, v] of walkDirFiles(abs, rel))
|
|
155
|
+
out.set(k, v);
|
|
156
|
+
}
|
|
157
|
+
else if (st.isFile()) {
|
|
158
|
+
out.set(zipEntryName(rel), readFileSync(abs));
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return out;
|
|
162
|
+
}
|
|
163
|
+
function stripSingleTopFolder(entries) {
|
|
164
|
+
const keys = [...entries.keys()];
|
|
165
|
+
const tops = new Set(keys.map((k) => k.split("/")[0]).filter((t) => t.length > 0));
|
|
166
|
+
if (tops.size !== 1)
|
|
167
|
+
return entries;
|
|
168
|
+
const top = [...tops][0];
|
|
169
|
+
const hasManifest = entries.has(`${top}/manifest.json`) ||
|
|
170
|
+
entries.has(`${top}/member.json`) ||
|
|
171
|
+
entries.has("manifest.json");
|
|
172
|
+
const hasMarker = entries.has(`${top}/${AGENT_MEMBER_PACK_MARKER}`) ||
|
|
173
|
+
entries.has(AGENT_MEMBER_PACK_MARKER);
|
|
174
|
+
if (hasManifest &&
|
|
175
|
+
hasMarker &&
|
|
176
|
+
!entries.has("manifest.json") &&
|
|
177
|
+
!entries.has(AGENT_MEMBER_PACK_MARKER)) {
|
|
178
|
+
const stripped = new Map();
|
|
179
|
+
const prefix = `${top}/`;
|
|
180
|
+
for (const [k, v] of entries) {
|
|
181
|
+
if (k.startsWith(prefix))
|
|
182
|
+
stripped.set(k.slice(prefix.length), v);
|
|
183
|
+
else
|
|
184
|
+
stripped.set(k, v);
|
|
185
|
+
}
|
|
186
|
+
return stripped;
|
|
187
|
+
}
|
|
188
|
+
return entries;
|
|
189
|
+
}
|
|
190
|
+
/** Load a pack from a `.zip` file or an unpacked directory. */
|
|
191
|
+
export function loadAgentMemberPack(sourcePath) {
|
|
192
|
+
const abs = path.resolve(sourcePath);
|
|
193
|
+
if (!existsSync(abs)) {
|
|
194
|
+
return { ok: false, error: `pack path not found: ${abs}` };
|
|
195
|
+
}
|
|
196
|
+
let st;
|
|
197
|
+
try {
|
|
198
|
+
st = statSync(abs);
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
return { ok: false, error: `cannot stat pack path: ${abs}` };
|
|
202
|
+
}
|
|
203
|
+
if (st.isDirectory()) {
|
|
204
|
+
return parseAgentMemberPackFiles(walkDirFiles(abs));
|
|
205
|
+
}
|
|
206
|
+
if (!st.isFile()) {
|
|
207
|
+
return { ok: false, error: "pack path must be a .zip or directory" };
|
|
208
|
+
}
|
|
209
|
+
const buf = readFileSync(abs);
|
|
210
|
+
const entries = readZipEntries(buf);
|
|
211
|
+
if (!entries) {
|
|
212
|
+
return { ok: false, error: "not a readable zip (store or deflate)" };
|
|
213
|
+
}
|
|
214
|
+
return parseAgentMemberPackFiles(stripSingleTopFolder(entries));
|
|
215
|
+
}
|
|
216
|
+
/** Load pack bytes (e.g. UI upload). */
|
|
217
|
+
export function loadAgentMemberPackBytes(buf) {
|
|
218
|
+
const entries = readZipEntries(buf);
|
|
219
|
+
if (!entries) {
|
|
220
|
+
return { ok: false, error: "not a readable zip (store or deflate)" };
|
|
221
|
+
}
|
|
222
|
+
return parseAgentMemberPackFiles(stripSingleTopFolder(entries));
|
|
223
|
+
}
|
|
224
|
+
/** Read env/SETUP.md from an already-materialized pack dir (parent prep text). */
|
|
225
|
+
export function readMemberPackEnvPrep(packDir) {
|
|
226
|
+
for (const rel of ["env/SETUP.md", "env/setup.md", "SETUP.md"]) {
|
|
227
|
+
const abs = path.join(packDir, rel);
|
|
228
|
+
if (!existsSync(abs))
|
|
229
|
+
continue;
|
|
230
|
+
try {
|
|
231
|
+
const text = readFileSync(abs, "utf8").trim();
|
|
232
|
+
if (text)
|
|
233
|
+
return text;
|
|
234
|
+
}
|
|
235
|
+
catch {
|
|
236
|
+
continue;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
return undefined;
|
|
240
|
+
}
|
|
241
|
+
/** Hints for advanced members that are not ready yet (team_list / Face list / UI). */
|
|
242
|
+
export function notReadyPackHints(input) {
|
|
243
|
+
const packDir = memberPackDir(input.rosterWorkspaceId, input.memberId, input.productHome);
|
|
244
|
+
const envPrep = readMemberPackEnvPrep(packDir);
|
|
245
|
+
return {
|
|
246
|
+
packDir,
|
|
247
|
+
...(envPrep ? { envPrep } : {}),
|
|
248
|
+
envHint: envPrep
|
|
249
|
+
? "Follow envPrep in this parent session, then team_ready. Do not auto-run untrusted scripts."
|
|
250
|
+
: "No env/SETUP.md — call team_ready when the member is configured.",
|
|
251
|
+
next: "team_ready → subagent member_id",
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Write pack files under `agent-rosters/packs/{scope}/{id}/`.
|
|
256
|
+
* Skills stay in the pack — never installed into workspace `.agents/skills`.
|
|
257
|
+
*/
|
|
258
|
+
export function materializeAgentMemberPack(pack, options) {
|
|
259
|
+
const packDir = memberPackDir(options.rosterWorkspaceId, options.memberId, options.productHome);
|
|
260
|
+
if (existsSync(packDir)) {
|
|
261
|
+
rmSync(packDir, { recursive: true, force: true });
|
|
262
|
+
}
|
|
263
|
+
mkdirSync(packDir, { recursive: true });
|
|
264
|
+
const files = new Map(pack.files);
|
|
265
|
+
if (!files.has(AGENT_MEMBER_PACK_MARKER)) {
|
|
266
|
+
files.set(AGENT_MEMBER_PACK_MARKER, Buffer.from(markerPayload()));
|
|
267
|
+
}
|
|
268
|
+
for (const [rel, data] of files) {
|
|
269
|
+
const name = zipEntryName(rel);
|
|
270
|
+
if (!name || name.includes(".."))
|
|
271
|
+
continue;
|
|
272
|
+
const dest = path.join(packDir, name);
|
|
273
|
+
mkdirSync(path.dirname(dest), { recursive: true });
|
|
274
|
+
writeFileSync(dest, data);
|
|
275
|
+
}
|
|
276
|
+
return {
|
|
277
|
+
card: pack.card,
|
|
278
|
+
packDir,
|
|
279
|
+
skillNames: pack.skillDirs,
|
|
280
|
+
...(pack.envPrep ? { envPrep: pack.envPrep } : {}),
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
/** Build a store-method zip for export (includes marker; no appearance). */
|
|
284
|
+
export function buildAgentMemberPackZip(card, options) {
|
|
285
|
+
const enc = new TextEncoder();
|
|
286
|
+
const manifest = {
|
|
287
|
+
kind: AGENT_MEMBER_PACK_KIND,
|
|
288
|
+
version: AGENT_MEMBER_PACK_VERSION,
|
|
289
|
+
name: card.name,
|
|
290
|
+
role: card.role,
|
|
291
|
+
...(card.brief ? { brief: card.brief } : {}),
|
|
292
|
+
...(card.inject ? { inject: card.inject } : {}),
|
|
293
|
+
...(card.tools ? { tools: card.tools } : {}),
|
|
294
|
+
};
|
|
295
|
+
const entries = [
|
|
296
|
+
{ name: AGENT_MEMBER_PACK_MARKER, data: enc.encode(markerPayload()) },
|
|
297
|
+
{ name: "manifest.json", data: enc.encode(`${JSON.stringify(manifest, null, 2)}\n`) },
|
|
298
|
+
{
|
|
299
|
+
name: "playbook.md",
|
|
300
|
+
data: enc.encode(card.playbook.endsWith("\n") ? card.playbook : `${card.playbook}\n`),
|
|
301
|
+
},
|
|
302
|
+
];
|
|
303
|
+
if (options?.envPrep?.trim()) {
|
|
304
|
+
entries.push({
|
|
305
|
+
name: "env/SETUP.md",
|
|
306
|
+
data: enc.encode(options.envPrep.endsWith("\n") ? options.envPrep : `${options.envPrep}\n`),
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
if (options?.skillsFiles) {
|
|
310
|
+
for (const [rel, data] of options.skillsFiles) {
|
|
311
|
+
const name = zipEntryName(rel.startsWith("skills/") ? rel : `skills/${rel}`);
|
|
312
|
+
entries.push({ name, data });
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
return buildStoredZip(entries);
|
|
316
|
+
}
|
|
317
|
+
/** Zip an on-disk advanced pack directory (must already contain the marker). */
|
|
318
|
+
export function zipMemberPackDir(packDir) {
|
|
319
|
+
if (!existsSync(packDir) || !statSync(packDir).isDirectory())
|
|
320
|
+
return undefined;
|
|
321
|
+
const files = walkDirFiles(packDir);
|
|
322
|
+
if (!hasPackMarker(files)) {
|
|
323
|
+
files.set(AGENT_MEMBER_PACK_MARKER, Buffer.from(markerPayload()));
|
|
324
|
+
}
|
|
325
|
+
const entries = [...files.entries()].map(([name, data]) => ({ name, data }));
|
|
326
|
+
return buildStoredZip(entries);
|
|
327
|
+
}
|
|
328
|
+
//# sourceMappingURL=agent-member-pack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-member-pack.js","sourceRoot":"","sources":["../src/agent-member-pack.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type AgentTeamSpawnRole } from "./agent-team-roles.js";
|
|
2
2
|
import { type PresenceSticker } from "./presence-dressing.js";
|
|
3
3
|
export declare const MEMBER_NAME_MAX = 40;
|
|
4
|
-
export declare const MEMBER_PLAYBOOK_MAX =
|
|
4
|
+
export declare const MEMBER_PLAYBOOK_MAX = 20000;
|
|
5
5
|
export declare const MEMBER_FACE_MAX = 80000;
|
|
6
6
|
export declare const MEMBER_BRIEF_MAX = 160;
|
|
7
7
|
export declare const GLOBAL_ROSTER_ID = "global";
|
|
@@ -13,6 +13,8 @@ export type MemberColor = (typeof MEMBER_COLORS)[number];
|
|
|
13
13
|
export type MemberKit = (typeof MEMBER_KITS)[number];
|
|
14
14
|
export type RosterScope = "global" | "workspace";
|
|
15
15
|
export type MemberInject = "subagent" | "minimal";
|
|
16
|
+
/** Thin = index JSON only. Advanced = pack dir under `packs/{scope}/{id}/`. */
|
|
17
|
+
export type MemberKind = "thin" | "advanced";
|
|
16
18
|
export interface MemberAppearance {
|
|
17
19
|
readonly shape: MemberShape;
|
|
18
20
|
readonly color: MemberColor;
|
|
@@ -41,6 +43,13 @@ export interface AgentRosterMember {
|
|
|
41
43
|
readonly brief: string;
|
|
42
44
|
readonly inject: MemberInject;
|
|
43
45
|
readonly tools?: MemberToolPolicy;
|
|
46
|
+
/** Thin (default) or advanced pack-backed member. */
|
|
47
|
+
readonly kind: MemberKind;
|
|
48
|
+
/**
|
|
49
|
+
* Advanced packs start `false` after zip import until the parent marks ready.
|
|
50
|
+
* Thin members are always ready.
|
|
51
|
+
*/
|
|
52
|
+
readonly ready: boolean;
|
|
44
53
|
/** True for catalog examples that ship with the file. */
|
|
45
54
|
readonly seed?: true;
|
|
46
55
|
readonly updatedAt: number;
|
|
@@ -67,6 +76,13 @@ export declare const MEMBER_FILE_TOOLS: readonly ["bash", "read", "grep", "glob"
|
|
|
67
76
|
/** `workspace` when omitted. Any other string is refused. */
|
|
68
77
|
export declare function parseRosterScope(raw: unknown): RosterScope | undefined;
|
|
69
78
|
export declare function rosterRoot(productHome?: string): string;
|
|
79
|
+
/**
|
|
80
|
+
* On-disk home for an advanced member pack (skills stay here — not workspace).
|
|
81
|
+
* `rosterWorkspaceId` is `global` or the canvas workspace id.
|
|
82
|
+
*/
|
|
83
|
+
export declare function memberPackDir(rosterWorkspaceId: string, memberId: string, productHome?: string): string;
|
|
84
|
+
/** Skills root inside an advanced pack (`…/skills`). */
|
|
85
|
+
export declare function memberPackSkillsDir(rosterWorkspaceId: string, memberId: string, productHome?: string): string;
|
|
70
86
|
/** Transparent PNG/JPEG/WebP/GIF/SVG data URL used as a kit overlay (hat / glasses / held). */
|
|
71
87
|
export declare function parseOverlayImage(raw: unknown): string | undefined;
|
|
72
88
|
export declare function parseMemberAppearance(raw: unknown, fallback: MemberAppearance): MemberAppearance;
|
|
@@ -113,6 +129,8 @@ export declare function rosterPublicFields(row: ListedRosterMember): {
|
|
|
113
129
|
scope: RosterScope;
|
|
114
130
|
brief: string;
|
|
115
131
|
inject: MemberInject;
|
|
132
|
+
kind: MemberKind;
|
|
133
|
+
ready: boolean;
|
|
116
134
|
seed: boolean;
|
|
117
135
|
catalog: boolean;
|
|
118
136
|
appearance: MemberAppearance;
|
|
@@ -127,6 +145,8 @@ export declare class FaceAgentRosterStore {
|
|
|
127
145
|
private readonly productHome;
|
|
128
146
|
private readonly cache;
|
|
129
147
|
constructor(productHome?: string);
|
|
148
|
+
/** Product home used for roster + pack paths (tests may override). */
|
|
149
|
+
get home(): string | undefined;
|
|
130
150
|
private emptyOrSeed;
|
|
131
151
|
private load;
|
|
132
152
|
private save;
|
|
@@ -134,6 +154,17 @@ export declare class FaceAgentRosterStore {
|
|
|
134
154
|
/** Global members first, then workspace; same id → workspace wins. */
|
|
135
155
|
listVisible(workspaceId: string): readonly ListedRosterMember[];
|
|
136
156
|
get(workspaceId: string, memberId: string): ListedRosterMember | undefined;
|
|
157
|
+
/**
|
|
158
|
+
* Locate a member id across global + every workspace roster file.
|
|
159
|
+
* Used when the current canvas cannot see the id (workspace-scoped elsewhere).
|
|
160
|
+
*/
|
|
161
|
+
findHome(memberId: string): {
|
|
162
|
+
readonly scope: "global";
|
|
163
|
+
readonly rosterWorkspaceId: typeof GLOBAL_ROSTER_ID;
|
|
164
|
+
} | {
|
|
165
|
+
readonly scope: "workspace";
|
|
166
|
+
readonly rosterWorkspaceId: string;
|
|
167
|
+
} | undefined;
|
|
137
168
|
upsert(workspaceId: string, input: {
|
|
138
169
|
readonly id?: string;
|
|
139
170
|
readonly name: string;
|
|
@@ -143,7 +174,11 @@ export declare class FaceAgentRosterStore {
|
|
|
143
174
|
readonly brief?: string;
|
|
144
175
|
readonly inject?: MemberInject;
|
|
145
176
|
readonly tools?: MemberToolPolicy | null;
|
|
177
|
+
readonly kind?: MemberKind;
|
|
178
|
+
readonly ready?: boolean;
|
|
146
179
|
}): AgentRosterMember | undefined;
|
|
180
|
+
/** Mark an advanced member ready (or not). Thin members stay ready. */
|
|
181
|
+
setReady(workspaceId: string, memberId: string, ready: boolean): AgentRosterMember | undefined;
|
|
147
182
|
/** Workspace roster file ids on disk (`global.json` is the other home). */
|
|
148
183
|
private listWorkspaceRosterIds;
|
|
149
184
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-roster-store.d.ts","sourceRoot":"","sources":["../src/agent-roster-store.ts"],"names":[],"mappings":"AAUA,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAUL,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"agent-roster-store.d.ts","sourceRoot":"","sources":["../src/agent-roster-store.ts"],"names":[],"mappings":"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"}
|