@alexlikevibe/agent-sdk 0.1.2 → 0.1.3
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/dist/create-agent.d.ts.map +1 -1
- package/dist/create-agent.js +33 -22
- package/dist/create-agent.js.map +1 -1
- package/dist/harness-server.d.ts +1 -1
- package/dist/harness-server.d.ts.map +1 -1
- package/dist/harness-server.js +57 -54
- package/dist/harness-server.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-agent.d.ts","sourceRoot":"","sources":["../src/create-agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAOnE,MAAM,WAAW,kBAAkB;IACjC,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,cAAc,EAAE,CAAA;IACxB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,wBAAsB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"create-agent.d.ts","sourceRoot":"","sources":["../src/create-agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAOnE,MAAM,WAAW,kBAAkB;IACjC,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,cAAc,EAAE,CAAA;IACxB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,wBAAsB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8DjF"}
|
package/dist/create-agent.js
CHANGED
|
@@ -16,35 +16,46 @@ export async function createAgent(options = {}) {
|
|
|
16
16
|
else {
|
|
17
17
|
logger.info({ event: 'agent.start', mode: 'local' });
|
|
18
18
|
}
|
|
19
|
-
//
|
|
20
|
-
//
|
|
21
|
-
const app =
|
|
19
|
+
// Build the express app synchronously (no async init yet — just mounts routes).
|
|
20
|
+
// /health is available as soon as server.listen() is called.
|
|
21
|
+
const app = createHarnessApp({ systemPrompt, tools, skillDirs, config, gateway });
|
|
22
|
+
// Mark flags as false so /chat returns 503 until both are ready
|
|
23
|
+
app.locals.sessionReady = false;
|
|
24
|
+
app.locals.fileSyncReady = config.mode !== 'sandbox'; // local: no file sync needed
|
|
22
25
|
const server = createServer(app);
|
|
23
|
-
server.listen(config.port, () => {
|
|
26
|
+
await new Promise((resolve) => server.listen(config.port, () => {
|
|
24
27
|
logger.info({ event: 'agent.listening', port: config.port, mode: config.mode });
|
|
28
|
+
resolve();
|
|
29
|
+
}));
|
|
30
|
+
// After listen(), kick off session init and file sync in parallel.
|
|
31
|
+
// /health already returns 200; /chat returns 503 until both complete.
|
|
32
|
+
const sessionInitPromise = app.locals.initSession().catch((err) => {
|
|
33
|
+
logger.error({ event: 'agent.session_init_failed', error: String(err) });
|
|
34
|
+
app.locals.sessionReady = true; // unblock /chat even on failure
|
|
25
35
|
});
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
})
|
|
40
|
-
|
|
41
|
-
else {
|
|
42
|
-
app.locals.fileSyncReady = true;
|
|
43
|
-
}
|
|
36
|
+
const fileSyncPromise = fileSync
|
|
37
|
+
? (() => {
|
|
38
|
+
const initStart = Date.now();
|
|
39
|
+
logger.info({ event: 'agent.file_sync_init', mode: 'sandbox' });
|
|
40
|
+
return fileSync.init()
|
|
41
|
+
.then(() => {
|
|
42
|
+
fileSync.startWatch();
|
|
43
|
+
logger.info({ event: 'agent.file_sync_started', duration_ms: Date.now() - initStart });
|
|
44
|
+
})
|
|
45
|
+
.catch((err) => {
|
|
46
|
+
logger.error({ event: 'agent.file_sync_failed', error: String(err) });
|
|
47
|
+
})
|
|
48
|
+
.finally(() => { app.locals.fileSyncReady = true; });
|
|
49
|
+
})()
|
|
50
|
+
: Promise.resolve();
|
|
44
51
|
// Graceful shutdown
|
|
45
52
|
process.on('SIGTERM', () => {
|
|
46
53
|
fileSync?.stopWatch();
|
|
47
54
|
server.close(() => process.exit(0));
|
|
48
55
|
});
|
|
56
|
+
// In local mode, await both so the process doesn't exit early
|
|
57
|
+
if (config.mode !== 'sandbox') {
|
|
58
|
+
await Promise.all([sessionInitPromise, fileSyncPromise]);
|
|
59
|
+
}
|
|
49
60
|
}
|
|
50
61
|
//# sourceMappingURL=create-agent.js.map
|
package/dist/create-agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-agent.js","sourceRoot":"","sources":["../src/create-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAWpC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,UAA8B,EAAE;IAChE,MAAM,EAAE,YAAY,GAAG,8BAA8B,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IACnF,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAE9B,IAAI,OAAkC,CAAA;IACtC,IAAI,QAA8B,CAAA;IAElC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QACnE,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;IACzD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"create-agent.js","sourceRoot":"","sources":["../src/create-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAWpC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,UAA8B,EAAE;IAChE,MAAM,EAAE,YAAY,GAAG,8BAA8B,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IACnF,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAE9B,IAAI,OAAkC,CAAA;IACtC,IAAI,QAA8B,CAAA;IAElC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QACnE,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;IACzD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,gFAAgF;IAChF,6DAA6D;IAC7D,MAAM,GAAG,GAAG,gBAAgB,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;IAEjF,gEAAgE;IAChE,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK,CAAA;IAC/B,GAAG,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAA,CAAC,6BAA6B;IAElF,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;IAEhC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACnE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QAC/E,OAAO,EAAE,CAAA;IACX,CAAC,CAAC,CAAC,CAAA;IAEH,mEAAmE;IACnE,sEAAsE;IACtE,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACzE,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACxE,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAA,CAAC,gCAAgC;IACjE,CAAC,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,QAAQ;QAC9B,CAAC,CAAC,CAAC,GAAG,EAAE;YACJ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YAC/D,OAAO,QAAS,CAAC,IAAI,EAAE;iBACpB,IAAI,CAAC,GAAG,EAAE;gBACT,QAAS,CAAC,UAAU,EAAE,CAAA;gBACtB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAA;YACxF,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACvE,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAA,CAAC,CAAC,CAAC,CAAA;QACvD,CAAC,CAAC,EAAE;QACN,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;IAErB,oBAAoB;IACpB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,QAAQ,EAAE,SAAS,EAAE,CAAA;QACrB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,8DAA8D;IAC9D,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC,CAAA;IAC1D,CAAC;AACH,CAAC"}
|
package/dist/harness-server.d.ts
CHANGED
|
@@ -9,5 +9,5 @@ export interface HarnessServerOptions {
|
|
|
9
9
|
config: ResolvedConfig;
|
|
10
10
|
gateway?: GatewayClient;
|
|
11
11
|
}
|
|
12
|
-
export declare function createHarnessApp(options: HarnessServerOptions):
|
|
12
|
+
export declare function createHarnessApp(options: HarnessServerOptions): Application;
|
|
13
13
|
//# sourceMappingURL=harness-server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-server.d.ts","sourceRoot":"","sources":["../src/harness-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,+BAA+B,CAAA;AACtC,OAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAA;AAInD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,kBAAkB,CAAA;AAGrE,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,MAAM,EAAE,cAAc,CAAA;IACtB,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB;AAKD,
|
|
1
|
+
{"version":3,"file":"harness-server.d.ts","sourceRoot":"","sources":["../src/harness-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,+BAA+B,CAAA;AACtC,OAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAA;AAInD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,kBAAkB,CAAA;AAGrE,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,MAAM,EAAE,cAAc,CAAA;IACtB,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB;AAKD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,GAAG,WAAW,CAwI3E"}
|
package/dist/harness-server.js
CHANGED
|
@@ -6,72 +6,75 @@ import { logger } from './logger.js';
|
|
|
6
6
|
// Note: /chat requests are processed serially by the pi agent session.
|
|
7
7
|
// Concurrent requests are not supported in MVP — the dispatcher ensures
|
|
8
8
|
// one request at a time per conversation (sandbox-per-conversation model).
|
|
9
|
-
export
|
|
9
|
+
export function createHarnessApp(options) {
|
|
10
10
|
const { config, systemPrompt, tools = [], gateway } = options;
|
|
11
11
|
const app = express();
|
|
12
12
|
app.use(express.json());
|
|
13
|
-
//
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
// Session is initialized asynchronously after the server starts listening.
|
|
14
|
+
// /health returns 200 immediately; /chat returns 503 until session is ready.
|
|
15
|
+
let session = null;
|
|
16
|
+
let lastMessageId = null;
|
|
17
|
+
// Kick off session init in the background — caller triggers this after listen()
|
|
18
|
+
app.locals.initSession = async () => {
|
|
19
|
+
const initStart = Date.now();
|
|
20
|
+
// Register gateway LLM provider in sandbox mode
|
|
21
|
+
if (config.mode === 'sandbox' && gateway) {
|
|
22
|
+
const provider = createGatewayLlmProvider(config.gatewayUrl, config.sessionToken);
|
|
23
|
+
try {
|
|
24
|
+
const { registerApiProvider } = await import('@mariozechner/pi-ai');
|
|
25
|
+
registerApiProvider(provider, 'aaas-gateway');
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
logger.warn({ event: 'harness.provider_register_failed', error: String(e) });
|
|
29
|
+
}
|
|
19
30
|
}
|
|
20
|
-
|
|
21
|
-
|
|
31
|
+
const sessionDir = config.mode === 'sandbox'
|
|
32
|
+
? join(config.persistentRoot, 'conversation')
|
|
33
|
+
: undefined;
|
|
34
|
+
const sessionManager = sessionDir
|
|
35
|
+
? SessionManager.continueRecent(process.cwd(), sessionDir)
|
|
36
|
+
: SessionManager.inMemory();
|
|
37
|
+
let gatewayModel;
|
|
38
|
+
let modelRegistry;
|
|
39
|
+
if (config.mode === 'sandbox') {
|
|
40
|
+
const sandboxConfig = config;
|
|
41
|
+
gatewayModel = {
|
|
42
|
+
id: process.env.LLM_MODEL ?? 'glm-5.1',
|
|
43
|
+
name: 'Gateway LLM',
|
|
44
|
+
api: 'gateway-llm',
|
|
45
|
+
provider: 'gateway',
|
|
46
|
+
baseUrl: sandboxConfig.gatewayUrl,
|
|
47
|
+
reasoning: false,
|
|
48
|
+
input: ['text'],
|
|
49
|
+
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
50
|
+
contextWindow: 128000,
|
|
51
|
+
maxTokens: 4096,
|
|
52
|
+
};
|
|
53
|
+
modelRegistry = new ModelRegistry(AuthStorage.inMemory(), undefined);
|
|
54
|
+
modelRegistry.registerProvider('gateway', { apiKey: sandboxConfig.sessionToken });
|
|
22
55
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
// SessionManager: use continueRecent in sandbox, or inMemory in local dev
|
|
29
|
-
const sessionManager = sessionDir
|
|
30
|
-
? SessionManager.continueRecent(process.cwd(), sessionDir)
|
|
31
|
-
: SessionManager.inMemory();
|
|
32
|
-
// In sandbox mode, construct a Model pointing to gateway-llm provider and a
|
|
33
|
-
// ModelRegistry that knows the 'gateway' provider's API key (= sessionToken).
|
|
34
|
-
// pi-coding-agent calls getApiKey(model.provider) before each LLM request;
|
|
35
|
-
// without a registered key it throws "No API key found for gateway".
|
|
36
|
-
let gatewayModel;
|
|
37
|
-
let modelRegistry;
|
|
38
|
-
if (config.mode === 'sandbox') {
|
|
39
|
-
const sandboxConfig = config;
|
|
40
|
-
gatewayModel = {
|
|
41
|
-
id: process.env.LLM_MODEL ?? 'glm-5.1',
|
|
42
|
-
name: 'Gateway LLM',
|
|
43
|
-
api: 'gateway-llm',
|
|
44
|
-
provider: 'gateway',
|
|
45
|
-
baseUrl: sandboxConfig.gatewayUrl,
|
|
46
|
-
reasoning: false,
|
|
47
|
-
input: ['text'],
|
|
48
|
-
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
49
|
-
contextWindow: 128000,
|
|
50
|
-
maxTokens: 4096,
|
|
56
|
+
const sessionOptions = {
|
|
57
|
+
sessionManager,
|
|
58
|
+
customTools: tools,
|
|
59
|
+
...(gatewayModel && { model: gatewayModel }),
|
|
60
|
+
...(modelRegistry && { modelRegistry }),
|
|
51
61
|
};
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
...(modelRegistry && { modelRegistry }),
|
|
62
|
+
const result = await createAgentSession(sessionOptions);
|
|
63
|
+
session = result.session;
|
|
64
|
+
if (systemPrompt) {
|
|
65
|
+
session.agent.setSystemPrompt(systemPrompt);
|
|
66
|
+
}
|
|
67
|
+
logger.info({ event: 'agent.session_ready', duration_ms: Date.now() - initStart });
|
|
68
|
+
app.locals.sessionReady = true;
|
|
60
69
|
};
|
|
61
|
-
const { session } = await createAgentSession(sessionOptions);
|
|
62
|
-
let lastMessageId = null;
|
|
63
|
-
if (systemPrompt) {
|
|
64
|
-
session.agent.setSystemPrompt(systemPrompt);
|
|
65
|
-
}
|
|
66
70
|
// /health is always 200 — dispatcher polls this to detect agent startup.
|
|
67
|
-
//
|
|
68
|
-
// or session init completes, allowing faster sandbox ready detection.
|
|
71
|
+
// Returns OK as soon as the HTTP server is listening, before session init.
|
|
69
72
|
app.get('/health', (_req, res) => {
|
|
70
73
|
res.json({ ok: true });
|
|
71
74
|
});
|
|
72
75
|
app.post('/chat', async (req, res) => {
|
|
73
|
-
// Return 503 if file sync init is still in progress
|
|
74
|
-
if (
|
|
76
|
+
// Return 503 if session or file sync init is still in progress
|
|
77
|
+
if (!app.locals.sessionReady || !app.locals.fileSyncReady) {
|
|
75
78
|
res.status(503).json({ error: 'agent initializing' });
|
|
76
79
|
return;
|
|
77
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-server.js","sourceRoot":"","sources":["../src/harness-server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,kBAAkB,EAElB,aAAa,EACb,cAAc,GAEf,MAAM,+BAA+B,CAAA;AACtC,OAAO,OAA6B,MAAM,SAAS,CAAA;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAInE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAUpC,uEAAuE;AACvE,wEAAwE;AACxE,2EAA2E;AAC3E,MAAM,
|
|
1
|
+
{"version":3,"file":"harness-server.js","sourceRoot":"","sources":["../src/harness-server.ts"],"names":[],"mappings":"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"}
|