@agentknight/sdk 0.9.42 → 0.9.43
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/chunks/{acp-adapter-SPIMGGL2.js → acp-adapter-LJNYHSSY.js} +3 -3
- package/dist/chunks/{chunk-QTBB2U7G.js → chunk-7QOBDG6R.js} +12 -0
- package/dist/chunks/{chunk-VDC4G7ZG.js → chunk-C2VUD77E.js} +2 -2
- package/dist/chunks/{chunk-SHOE7YAU.js → chunk-CWJENQ3O.js} +5 -3
- package/dist/chunks/{chunk-RBULXS7T.js → chunk-DB3EAMYS.js} +1 -1
- package/dist/chunks/chunk-EIFNERXM.js +55 -0
- package/dist/chunks/{chunk-QN3OD5UE.js → chunk-M2QZ6EFR.js} +1 -1
- package/dist/chunks/{chunk-J52FWJU4.js → chunk-NYSZHHBS.js} +1 -1
- package/dist/chunks/{chunk-LQIW4ARE.js → chunk-ULM5KUJ7.js} +3 -1
- package/dist/chunks/{chunk-ASHXZ46V.js → chunk-YZ2GB3DD.js} +5 -2
- package/dist/chunks/claude-adapter-7VQ4QCNI.js +1040 -0
- package/dist/chunks/codex-adapter-VQTLTFNP.js +1249 -0
- package/dist/chunks/{copilot-adapter-A6QB4RD4.js → copilot-adapter-UP6KDSXH.js} +9 -9
- package/dist/chunks/{managed-agent-adapter-LMHQX6IH.js → managed-agent-adapter-ZXTKIPJN.js} +10 -8
- package/dist/chunks/{pi-adapter-NWQWUNXO.js → pi-adapter-KXVZ5QP5.js} +3 -3
- package/dist/index.d.ts +229 -218
- package/dist/index.js +220 -266
- package/dist/runtime.js +2 -2
- package/package.json +16 -13
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
latestPreviewItems
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DB3EAMYS.js";
|
|
4
4
|
import {
|
|
5
5
|
UnsupportedAgentOperationError
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ULM5KUJ7.js";
|
|
7
7
|
import {
|
|
8
8
|
ConversationItemSchema,
|
|
9
9
|
PromptImageAttachmentSchema,
|
|
10
10
|
SESSION_TIMELINE_PAGE_SIZE,
|
|
11
11
|
SessionSummarySchema
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-7QOBDG6R.js";
|
|
13
13
|
|
|
14
14
|
// src/acp-adapter.ts
|
|
15
15
|
import { spawn } from "node:child_process";
|
|
@@ -1770,6 +1770,9 @@ var SESSION_FILE_MAX_RESPONSE_BYTES = SESSION_FILE_MAX_BASE64_LENGTH + 8192;
|
|
|
1770
1770
|
var SESSION_FILE_V2_MAX_TRANSFER_BYTES = SESSION_FILE_V2_MAX_ORIGINAL_BYTES + 1024;
|
|
1771
1771
|
var SESSION_FILE_V2_MAX_BASE64_LENGTH = Math.ceil(SESSION_FILE_V2_MAX_TRANSFER_BYTES / 3) * 4;
|
|
1772
1772
|
var SESSION_FILE_V2_MAX_RESPONSE_BYTES = SESSION_FILE_V2_MAX_BASE64_LENGTH + 8192;
|
|
1773
|
+
var SESSION_FILE_DOWNLOAD_OPERATION = "session.file.download";
|
|
1774
|
+
var SESSION_FILE_DOWNLOAD_VERSION = 1;
|
|
1775
|
+
var SESSION_FILE_DOWNLOAD_MAX_ORIGINAL_BYTES = SESSION_FILE_V2_MAX_ORIGINAL_BYTES;
|
|
1773
1776
|
var SESSION_FILE_MEDIA_TYPES = [
|
|
1774
1777
|
"text/plain",
|
|
1775
1778
|
"text/html",
|
|
@@ -1851,6 +1854,8 @@ function fileResultSchema(mediaTypes, extended) {
|
|
|
1851
1854
|
}
|
|
1852
1855
|
var SessionFileReadResultDataSchema = fileResultSchema(SESSION_FILE_MEDIA_TYPES, false);
|
|
1853
1856
|
var SessionFileReadV2ResultDataSchema = fileResultSchema(SESSION_FILE_V2_MEDIA_TYPES, true);
|
|
1857
|
+
var SessionFileDownloadDataSchema = SessionFileReadDataSchema;
|
|
1858
|
+
var SessionFileDownloadResultDataSchema = fileResultSchema(["application/octet-stream"], true);
|
|
1854
1859
|
var SessionGitProjectSchema = z18.object({
|
|
1855
1860
|
localRepositoryKey: z18.string().length(43).regex(/^[A-Za-z0-9_-]{43}$/),
|
|
1856
1861
|
worktreeRoot: z18.string().min(1).max(SESSION_PROJECT_IDENTITY_MAX_PATH_LENGTH),
|
|
@@ -2576,6 +2581,8 @@ var AndroidProtocolSchemas = {
|
|
|
2576
2581
|
SessionFileReadData: SessionFileReadDataSchema,
|
|
2577
2582
|
SessionFileReadResultData: SessionFileReadResultDataSchema,
|
|
2578
2583
|
SessionFileReadV2ResultData: SessionFileReadV2ResultDataSchema,
|
|
2584
|
+
SessionFileDownloadData: SessionFileDownloadDataSchema,
|
|
2585
|
+
SessionFileDownloadResultData: SessionFileDownloadResultDataSchema,
|
|
2579
2586
|
SessionResourceReadData: SessionResourceReadDataSchema,
|
|
2580
2587
|
SessionResourceReadResultData: SessionResourceReadResultDataSchema,
|
|
2581
2588
|
SessionDirectoryListRequest: SessionDirectoryListRequestSchema,
|
|
@@ -2708,6 +2715,9 @@ export {
|
|
|
2708
2715
|
SESSION_FILE_MAX_IMAGE_BYTES,
|
|
2709
2716
|
SESSION_FILE_MAX_IMAGE_EDGE,
|
|
2710
2717
|
SESSION_FILE_MAX_IMAGE_PIXELS,
|
|
2718
|
+
SESSION_FILE_DOWNLOAD_OPERATION,
|
|
2719
|
+
SESSION_FILE_DOWNLOAD_VERSION,
|
|
2720
|
+
SESSION_FILE_DOWNLOAD_MAX_ORIGINAL_BYTES,
|
|
2711
2721
|
SESSION_FILE_MAX_VIDEO_PIXELS,
|
|
2712
2722
|
isSafeSessionDirectoryPath,
|
|
2713
2723
|
SessionDirectoryListDataSchema,
|
|
@@ -2715,6 +2725,8 @@ export {
|
|
|
2715
2725
|
SessionFileReadDataSchema,
|
|
2716
2726
|
SessionFileReadResultDataSchema,
|
|
2717
2727
|
SessionFileReadV2ResultDataSchema,
|
|
2728
|
+
SessionFileDownloadDataSchema,
|
|
2729
|
+
SessionFileDownloadResultDataSchema,
|
|
2718
2730
|
SessionGitProjectSchema,
|
|
2719
2731
|
SessionProjectIdentityRequestDataSchema,
|
|
2720
2732
|
SessionProjectIdentityResultDataSchema,
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AgentSessionRenameError,
|
|
3
3
|
validateSessionName
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-ULM5KUJ7.js";
|
|
5
5
|
import {
|
|
6
6
|
ConversationItemSchema,
|
|
7
7
|
GroupChatInfoSchema,
|
|
8
8
|
GroupChatParticipantSchema,
|
|
9
9
|
SESSION_TIMELINE_PAGE_SIZE,
|
|
10
10
|
SessionSummarySchema
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-7QOBDG6R.js";
|
|
12
12
|
|
|
13
13
|
// src/group-chat.ts
|
|
14
14
|
import { createHash, randomUUID } from "node:crypto";
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isContentfulAssistant
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DB3EAMYS.js";
|
|
4
4
|
import {
|
|
5
5
|
SessionOperationError
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ULM5KUJ7.js";
|
|
7
7
|
import {
|
|
8
8
|
CONVERSATION_SOURCE_ID_LIMIT,
|
|
9
9
|
SESSION_DIRECTORY_LIST_OPERATION,
|
|
10
|
+
SESSION_FILE_DOWNLOAD_OPERATION,
|
|
10
11
|
SESSION_FILE_READ_OPERATION,
|
|
11
12
|
SESSION_PROJECT_IDENTITY_OPERATION,
|
|
12
13
|
SESSION_RESOURCE_READ_OPERATION,
|
|
@@ -22,7 +23,7 @@ import {
|
|
|
22
23
|
WorkbenchInsightsSchema,
|
|
23
24
|
WorkbenchQueueMutationResultSchema,
|
|
24
25
|
WorkbenchQueueSnapshotSchema
|
|
25
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-7QOBDG6R.js";
|
|
26
27
|
|
|
27
28
|
// src/operation-diagnostics.ts
|
|
28
29
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
@@ -103,6 +104,7 @@ var operations = /* @__PURE__ */ new Set([
|
|
|
103
104
|
TIMELINE_IMAGE_OPERATION,
|
|
104
105
|
SESSION_DIRECTORY_LIST_OPERATION,
|
|
105
106
|
SESSION_FILE_READ_OPERATION,
|
|
107
|
+
SESSION_FILE_DOWNLOAD_OPERATION,
|
|
106
108
|
SESSION_PROJECT_IDENTITY_OPERATION,
|
|
107
109
|
SESSION_RESOURCE_READ_OPERATION,
|
|
108
110
|
...WORKBENCH_OPERATIONS
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// src/local-agent-discovery.ts
|
|
2
|
+
import { constants } from "node:fs";
|
|
3
|
+
import { access, stat } from "node:fs/promises";
|
|
4
|
+
import { homedir } from "node:os";
|
|
5
|
+
import { delimiter, isAbsolute, join } from "node:path";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
async function accessible(path, executable = false) {
|
|
8
|
+
try {
|
|
9
|
+
await access(path, executable && process.platform !== "win32" ? constants.X_OK : constants.F_OK);
|
|
10
|
+
return (await stat(path)).isFile();
|
|
11
|
+
} catch (error) {
|
|
12
|
+
if (error instanceof Error && "code" in error && (error.code === "ENOENT" || error.code === "ENOTDIR")) return false;
|
|
13
|
+
throw error;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
async function hasLocalExecutable(command, environment = process.env) {
|
|
17
|
+
const extensions = process.platform === "win32" ? ["", ...(environment.PATHEXT ?? ".EXE;.CMD;.BAT").split(";")] : [""];
|
|
18
|
+
const paths = isAbsolute(command) || command.includes("/") || command.includes("\\") ? [command] : (environment.PATH ?? "").split(delimiter).filter(Boolean).map((directory) => join(directory, command));
|
|
19
|
+
for (const path of paths) {
|
|
20
|
+
for (const extension of extensions) {
|
|
21
|
+
if (await accessible(`${path}${extension}`, true)) return true;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
async function hasPackage(name) {
|
|
27
|
+
try {
|
|
28
|
+
return await accessible(fileURLToPath(import.meta.resolve(name)));
|
|
29
|
+
} catch (error) {
|
|
30
|
+
if (error instanceof Error && "code" in error && error.code === "ERR_MODULE_NOT_FOUND") return false;
|
|
31
|
+
throw error;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async function detectCopilot() {
|
|
35
|
+
return process.env.COPILOT_CLI_PATH ? accessible(process.env.COPILOT_CLI_PATH) : await hasPackage("@github/copilot/npm-loader.js") || hasLocalExecutable("copilot");
|
|
36
|
+
}
|
|
37
|
+
async function detectPi(agentDirectory) {
|
|
38
|
+
if (!await hasPackage("@earendil-works/pi-coding-agent")) return false;
|
|
39
|
+
const directory = agentDirectory ?? (process.env.PI_CODING_AGENT_DIR || join(homedir(), ".pi", "agent"));
|
|
40
|
+
return agentDirectory !== void 0 || await accessible(join(directory, "auth.json")) || await hasLocalExecutable("pi");
|
|
41
|
+
}
|
|
42
|
+
function hasClaudeProviderConfiguration(environment = process.env) {
|
|
43
|
+
return Boolean(environment.ANTHROPIC_API_KEY?.trim()) || ["CLAUDE_CODE_USE_BEDROCK", "CLAUDE_CODE_USE_VERTEX", "CLAUDE_CODE_USE_FOUNDRY"].some((key) => environment[key] === "1");
|
|
44
|
+
}
|
|
45
|
+
async function detectClaude() {
|
|
46
|
+
return hasClaudeProviderConfiguration() && await hasPackage("@anthropic-ai/claude-agent-sdk");
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export {
|
|
50
|
+
hasLocalExecutable,
|
|
51
|
+
detectCopilot,
|
|
52
|
+
detectPi,
|
|
53
|
+
hasClaudeProviderConfiguration,
|
|
54
|
+
detectClaude
|
|
55
|
+
};
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
SessionCommunicationDataSchema,
|
|
4
4
|
SessionNameSchema,
|
|
5
5
|
WorkbenchOperationStatusSchema
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-7QOBDG6R.js";
|
|
7
7
|
|
|
8
8
|
// src/session-operations.ts
|
|
9
9
|
import { createHash, randomUUID } from "node:crypto";
|
|
@@ -278,6 +278,7 @@ var SessionOperations = class {
|
|
|
278
278
|
};
|
|
279
279
|
|
|
280
280
|
// src/coding-agent-adapter.ts
|
|
281
|
+
var CODING_AGENT_IDS = ["copilot", "pi", "codex", "claude", "acp"];
|
|
281
282
|
var TimelinePageBudgetError = class extends Error {
|
|
282
283
|
};
|
|
283
284
|
var AgentModelListingError = class extends AggregateError {
|
|
@@ -333,6 +334,7 @@ function validateSessionName(name) {
|
|
|
333
334
|
export {
|
|
334
335
|
SessionOperationError,
|
|
335
336
|
SessionOperations,
|
|
337
|
+
CODING_AGENT_IDS,
|
|
336
338
|
TimelinePageBudgetError,
|
|
337
339
|
AgentModelListingError,
|
|
338
340
|
captureResearchAccess,
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CODING_AGENT_IDS
|
|
3
|
+
} from "./chunk-ULM5KUJ7.js";
|
|
1
4
|
import {
|
|
2
5
|
SECURE_MESSAGE_MAX_CIPHERTEXT_LENGTH
|
|
3
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-7QOBDG6R.js";
|
|
4
7
|
|
|
5
8
|
// src/agent-selection.ts
|
|
6
9
|
import { z } from "zod";
|
|
7
10
|
var AgentSelectionSchema = z.object({
|
|
8
|
-
agents: z.array(z.enum(
|
|
11
|
+
agents: z.array(z.enum(CODING_AGENT_IDS)).max(CODING_AGENT_IDS.length).refine((agents) => new Set(agents).size === agents.length, "Duplicate managed agent selection")
|
|
9
12
|
}).strict();
|
|
10
13
|
function assertSelectionSnapshotFits(sessions) {
|
|
11
14
|
const bytes = Buffer.byteLength(JSON.stringify(sessions), "utf8") + 4096;
|