@burtson-labs/host-kit 0.4.33 → 0.4.35
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/artifacts.d.ts +30 -6
- package/dist/artifacts.d.ts.map +1 -1
- package/dist/artifacts.js +49 -6
- package/dist/artifacts.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/tools/publishArtifactTool.d.ts +7 -0
- package/dist/tools/publishArtifactTool.d.ts.map +1 -0
- package/dist/tools/publishArtifactTool.js +91 -0
- package/dist/tools/publishArtifactTool.js.map +1 -0
- package/package.json +2 -2
package/dist/artifacts.d.ts
CHANGED
|
@@ -2,20 +2,28 @@
|
|
|
2
2
|
* Bandit Artifacts (cloud) — publish a shareable artifact to S3Api and get back
|
|
3
3
|
* a URL anyone with the link can open.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* Auth: S3Api (like every [BurtsonAuthorize] service) validates a gateway JWT,
|
|
6
|
+
* NOT the opaque `bai_` device key the CLI/extension hold. So a host with a
|
|
7
|
+
* `bai_` key must first exchange it for a short-lived gateway token via AuthApi
|
|
8
|
+
* — exactly what BLFlow's GatewayTokenResolver does for the same S3Api calls.
|
|
9
|
+
* publishArtifact does that exchange automatically (see resolveGatewayToken); a
|
|
10
|
+
* caller that already has a gateway JWT (a signed-in web/extension session)
|
|
11
|
+
* passes it straight through. The upload is per-user/team scoped and
|
|
12
|
+
* quota-bounded server-side (see S3Api's ArtifactController).
|
|
10
13
|
*
|
|
11
14
|
* Host-agnostic (fetch + FormData/Blob, standard in the Node the CLI and
|
|
12
15
|
* extension run on), so both hosts share one implementation. Local-only users
|
|
13
16
|
* never call this — it requires a cloud token, keeping the offline path offline.
|
|
14
17
|
*/
|
|
18
|
+
/** AuthApi base URL used for the `bai_` → gateway-JWT exchange. */
|
|
19
|
+
export declare const DEFAULT_AUTH_BASE_URL = "https://auth.burtson.ai";
|
|
15
20
|
export interface PublishArtifactOptions {
|
|
16
21
|
/** S3Api base URL, e.g. https://s3.burtson.ai (no trailing slash needed). */
|
|
17
22
|
s3ApiBaseUrl: string;
|
|
18
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* The user's Bandit cloud credential — either a `bai_` device key (exchanged
|
|
25
|
+
* for a gateway JWT automatically) or an already-minted gateway JWT.
|
|
26
|
+
*/
|
|
19
27
|
token: string;
|
|
20
28
|
/** Artifact bytes (a report, a file) or text. */
|
|
21
29
|
content: Uint8Array | string;
|
|
@@ -23,6 +31,8 @@ export interface PublishArtifactOptions {
|
|
|
23
31
|
filename: string;
|
|
24
32
|
/** MIME type; defaults by extension, else application/octet-stream. */
|
|
25
33
|
contentType?: string;
|
|
34
|
+
/** AuthApi base for the `bai_`→JWT exchange; defaults to auth.burtson.ai. */
|
|
35
|
+
authBaseUrl?: string;
|
|
26
36
|
/** Injectable for tests / non-global-fetch runtimes. */
|
|
27
37
|
fetchImpl?: typeof fetch;
|
|
28
38
|
}
|
|
@@ -35,6 +45,20 @@ export interface PublishedArtifact {
|
|
|
35
45
|
}
|
|
36
46
|
/** Best-effort MIME guess from a filename extension. */
|
|
37
47
|
export declare function guessContentType(filename: string): string;
|
|
48
|
+
/**
|
|
49
|
+
* Exchange a Bandit `bai_` device key for a short-lived gateway JWT, so a host
|
|
50
|
+
* holding only the opaque device key can call a [BurtsonAuthorize] service that
|
|
51
|
+
* validates JWTs (S3Api, Ollama, …). POSTs the key to AuthApi `/api/keys/validate`
|
|
52
|
+
* and returns `gatewayToken`. A token that is not a `bai_` key (i.e. already a
|
|
53
|
+
* gateway JWT) passes straight through untouched — no network call.
|
|
54
|
+
*
|
|
55
|
+
* Mirrors BLFlow's GatewayTokenResolver; kept here so both the CLI and the VS
|
|
56
|
+
* Code extension share one exchange path.
|
|
57
|
+
*/
|
|
58
|
+
export declare function resolveGatewayToken(token: string, opts?: {
|
|
59
|
+
authBaseUrl?: string;
|
|
60
|
+
fetchImpl?: typeof fetch;
|
|
61
|
+
}): Promise<string>;
|
|
38
62
|
/**
|
|
39
63
|
* Upload an artifact and return its shareable URL. Throws on a non-2xx (with
|
|
40
64
|
* the status + server message) so callers can surface a clear failure — this
|
package/dist/artifacts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,mEAAmE;AACnE,eAAO,MAAM,qBAAqB,4BAA4B,CAAC;AAE/D,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC;IAC7B,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAczD;AAED;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CAAO,GAC5D,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA6B9F"}
|
package/dist/artifacts.js
CHANGED
|
@@ -3,19 +3,26 @@
|
|
|
3
3
|
* Bandit Artifacts (cloud) — publish a shareable artifact to S3Api and get back
|
|
4
4
|
* a URL anyone with the link can open.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
6
|
+
* Auth: S3Api (like every [BurtsonAuthorize] service) validates a gateway JWT,
|
|
7
|
+
* NOT the opaque `bai_` device key the CLI/extension hold. So a host with a
|
|
8
|
+
* `bai_` key must first exchange it for a short-lived gateway token via AuthApi
|
|
9
|
+
* — exactly what BLFlow's GatewayTokenResolver does for the same S3Api calls.
|
|
10
|
+
* publishArtifact does that exchange automatically (see resolveGatewayToken); a
|
|
11
|
+
* caller that already has a gateway JWT (a signed-in web/extension session)
|
|
12
|
+
* passes it straight through. The upload is per-user/team scoped and
|
|
13
|
+
* quota-bounded server-side (see S3Api's ArtifactController).
|
|
11
14
|
*
|
|
12
15
|
* Host-agnostic (fetch + FormData/Blob, standard in the Node the CLI and
|
|
13
16
|
* extension run on), so both hosts share one implementation. Local-only users
|
|
14
17
|
* never call this — it requires a cloud token, keeping the offline path offline.
|
|
15
18
|
*/
|
|
16
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.DEFAULT_AUTH_BASE_URL = void 0;
|
|
17
21
|
exports.guessContentType = guessContentType;
|
|
22
|
+
exports.resolveGatewayToken = resolveGatewayToken;
|
|
18
23
|
exports.publishArtifact = publishArtifact;
|
|
24
|
+
/** AuthApi base URL used for the `bai_` → gateway-JWT exchange. */
|
|
25
|
+
exports.DEFAULT_AUTH_BASE_URL = 'https://auth.burtson.ai';
|
|
19
26
|
/** Best-effort MIME guess from a filename extension. */
|
|
20
27
|
function guessContentType(filename) {
|
|
21
28
|
const ext = filename.slice(filename.lastIndexOf('.')).toLowerCase();
|
|
@@ -35,6 +42,40 @@ function guessContentType(filename) {
|
|
|
35
42
|
default: return 'application/octet-stream';
|
|
36
43
|
}
|
|
37
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Exchange a Bandit `bai_` device key for a short-lived gateway JWT, so a host
|
|
47
|
+
* holding only the opaque device key can call a [BurtsonAuthorize] service that
|
|
48
|
+
* validates JWTs (S3Api, Ollama, …). POSTs the key to AuthApi `/api/keys/validate`
|
|
49
|
+
* and returns `gatewayToken`. A token that is not a `bai_` key (i.e. already a
|
|
50
|
+
* gateway JWT) passes straight through untouched — no network call.
|
|
51
|
+
*
|
|
52
|
+
* Mirrors BLFlow's GatewayTokenResolver; kept here so both the CLI and the VS
|
|
53
|
+
* Code extension share one exchange path.
|
|
54
|
+
*/
|
|
55
|
+
async function resolveGatewayToken(token, opts = {}) {
|
|
56
|
+
if (!token.startsWith('bai_'))
|
|
57
|
+
return token; // already a gateway JWT
|
|
58
|
+
const fetchImpl = opts.fetchImpl ?? fetch;
|
|
59
|
+
const base = (opts.authBaseUrl ?? exports.DEFAULT_AUTH_BASE_URL).replace(/\/$/, '');
|
|
60
|
+
let res;
|
|
61
|
+
try {
|
|
62
|
+
res = await fetchImpl(`${base}/api/keys/validate`, {
|
|
63
|
+
method: 'POST',
|
|
64
|
+
headers: { 'content-type': 'application/json' },
|
|
65
|
+
body: JSON.stringify({ key: token }),
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
throw new Error(`could not reach the auth service to sign in: ${err instanceof Error ? err.message : String(err)}`);
|
|
70
|
+
}
|
|
71
|
+
if (!res.ok)
|
|
72
|
+
throw new Error(`token exchange failed: HTTP ${res.status}`);
|
|
73
|
+
const body = (await res.json());
|
|
74
|
+
if (!body.valid || !body.gatewayToken) {
|
|
75
|
+
throw new Error(`your API key was rejected${body.reason ? ` (${body.reason})` : ''} — sign in again with \`bandit login\``);
|
|
76
|
+
}
|
|
77
|
+
return body.gatewayToken;
|
|
78
|
+
}
|
|
38
79
|
/**
|
|
39
80
|
* Upload an artifact and return its shareable URL. Throws on a non-2xx (with
|
|
40
81
|
* the status + server message) so callers can surface a clear failure — this
|
|
@@ -46,6 +87,8 @@ async function publishArtifact(opts) {
|
|
|
46
87
|
const base = opts.s3ApiBaseUrl.replace(/\/$/, '');
|
|
47
88
|
const contentType = opts.contentType ?? guessContentType(opts.filename);
|
|
48
89
|
const bytes = typeof opts.content === 'string' ? new TextEncoder().encode(opts.content) : opts.content;
|
|
90
|
+
// S3Api validates a gateway JWT, not the `bai_` device key — trade up first.
|
|
91
|
+
const bearer = await resolveGatewayToken(opts.token, { authBaseUrl: opts.authBaseUrl, fetchImpl });
|
|
49
92
|
const form = new FormData();
|
|
50
93
|
// Field name must match S3Api's UploadRequest.File. Don't set a
|
|
51
94
|
// Content-Type header ourselves — fetch derives the multipart boundary.
|
|
@@ -54,7 +97,7 @@ async function publishArtifact(opts) {
|
|
|
54
97
|
form.append('File', new Blob([bytes], { type: contentType }), opts.filename);
|
|
55
98
|
const res = await fetchImpl(`${base}/api/artifact`, {
|
|
56
99
|
method: 'POST',
|
|
57
|
-
headers: { authorization: `Bearer ${
|
|
100
|
+
headers: { authorization: `Bearer ${bearer}` },
|
|
58
101
|
body: form,
|
|
59
102
|
});
|
|
60
103
|
if (!res.ok) {
|
package/dist/artifacts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,8 @@ export { loadMemory, loadCombinedMemory, appendMemory, consolidateMemory, type M
|
|
|
2
2
|
export { loadMemoryIndex, renderMemoryIndexBlock, writeMemoryTopic, migrateMemoryToBanditDir, MAX_INDEX_BYTES, MAX_MEMORY_FILE_BYTES, MEMORY_DIR, MEMORY_INDEX_FILE, BANDIT_DIR, BANDIT_MEMORY_DIR, BANDIT_MEMORY_INDEX_FILE, type MemoryIndex, type MemoryIndexEntry, type MemoryWarnFn } from './memoryIndex';
|
|
3
3
|
export { buildReadMemoryTool } from './tools/readMemoryTool';
|
|
4
4
|
export { lessonsPath, loadLessons, addLesson, clearLessons, type AddLessonResult } from './lessons';
|
|
5
|
-
export { publishArtifact, guessContentType, type PublishArtifactOptions, type PublishedArtifact } from './artifacts';
|
|
5
|
+
export { publishArtifact, resolveGatewayToken, guessContentType, DEFAULT_AUTH_BASE_URL, type PublishArtifactOptions, type PublishedArtifact } from './artifacts';
|
|
6
|
+
export { buildPublishArtifactTool } from './tools/publishArtifactTool';
|
|
6
7
|
export { LocalSandboxExecutor, AntonSandboxExecutor, createSandboxExecutor, ANTON_EXEC_CONTRACT, type SandboxExecutor, type SandboxExecOptions, type SandboxExecResult, type SandboxConfig, } from './sandbox';
|
|
7
8
|
export { RUNNER_PROTOCOL_VERSION, type RemoteRunMode, type RemoteTask, type RunnerEvent, type RunnerGateway } from './runner/contract';
|
|
8
9
|
export { HttpRunnerGateway, type HttpGatewayOptions } from './runner/httpGateway';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACzB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,EACrB,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,iBAAiB,EACjB,wBAAwB,EACxB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAEpG,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
5
|
-
exports.CheckpointStore = exports.isChatCapable = exports.suggestOllamaMatch = exports.listInstalledOllamaModels = void 0;
|
|
3
|
+
exports.revokeMcpFingerprint = exports.approveMcpFingerprint = exports.loadApprovedMcpFingerprints = exports.buildCustomServerConfig = exports.looksLikeGmailCredentialsPath = exports.buildGmailServerConfig = exports.looksLikeGitLabToken = exports.buildGitLabServerConfig = exports.looksLikeSlackTeamId = exports.looksLikeSlackToken = exports.buildSlackServerConfig = exports.looksLikeGitHubToken = exports.buildGitHubServerConfig = exports.addMcpServerToConfig = exports.persistMcpActivation = exports.globalMcpServersPath = exports.registerMcpServersFromDisk = exports.loadMcpServersConfig = exports.RemoteSession = exports.HttpRunnerGateway = exports.RUNNER_PROTOCOL_VERSION = exports.ANTON_EXEC_CONTRACT = exports.createSandboxExecutor = exports.AntonSandboxExecutor = exports.LocalSandboxExecutor = exports.buildPublishArtifactTool = exports.DEFAULT_AUTH_BASE_URL = exports.guessContentType = exports.resolveGatewayToken = exports.publishArtifact = exports.clearLessons = exports.addLesson = exports.loadLessons = exports.lessonsPath = exports.buildReadMemoryTool = exports.BANDIT_MEMORY_INDEX_FILE = exports.BANDIT_MEMORY_DIR = exports.BANDIT_DIR = exports.MEMORY_INDEX_FILE = exports.MEMORY_DIR = exports.MAX_MEMORY_FILE_BYTES = exports.MAX_INDEX_BYTES = exports.migrateMemoryToBanditDir = exports.writeMemoryTopic = exports.renderMemoryIndexBlock = exports.loadMemoryIndex = exports.consolidateMemory = exports.appendMemory = exports.loadCombinedMemory = exports.loadMemory = void 0;
|
|
4
|
+
exports.readTurnTraceById = exports.readTurnTrace = exports.listTurnTraces = exports.listTurnTraceFiles = exports.previewText = exports.openTurnLog = exports.SessionPermissionStore = exports.mergePolicies = exports.emptyPolicy = exports.evaluatePermission = exports.InMemoryBackgroundTaskStore = exports.buildInsightsAiCallback = exports.buildAiInput = exports.writeInsightsReport = exports.renderInsightsHtml = exports.computeInsights = exports.parseTestOutput = exports.buildTestCommand = exports.detectTestFramework = exports.buildTestRunTool = exports.buildListTasksTool = exports.buildCheckTaskTool = exports.buildTaskTool = exports.buildRememberTool = exports.buildWebSearchTool = exports.buildWebFetchTool = exports.buildTodoWriteTool = exports.TodoStore = exports.expandMentions = exports.CYCLE_MODES = exports.PERMISSION_MODES = exports.AutoApprovalLedger = exports.nextCycleMode = exports.isPermissionMode = exports.decidePermission = exports.shouldAutoApprove = exports.resolvePermissionMode = exports.policyIncludes = exports.commandSignature = exports.grantRuleFor = exports.classifyRisk = exports.evaluateSecurityGuard = exports.runHooks = exports.persistAllowEntry = exports.loadHookSettings = exports.mcpToolCachePath = exports.pruneMcpToolCache = exports.saveMcpToolEntry = exports.loadMcpToolCache = exports.mcpTrustPath = void 0;
|
|
5
|
+
exports.CheckpointStore = exports.isChatCapable = exports.suggestOllamaMatch = exports.listInstalledOllamaModels = exports.formatTurnTraceMarkdown = exports.summarizeTurnTrace = exports.parseTurnLog = void 0;
|
|
6
6
|
var memory_1 = require("./memory");
|
|
7
7
|
Object.defineProperty(exports, "loadMemory", { enumerable: true, get: function () { return memory_1.loadMemory; } });
|
|
8
8
|
Object.defineProperty(exports, "loadCombinedMemory", { enumerable: true, get: function () { return memory_1.loadCombinedMemory; } });
|
|
@@ -31,7 +31,11 @@ Object.defineProperty(exports, "clearLessons", { enumerable: true, get: function
|
|
|
31
31
|
// Bandit Artifacts (cloud) — publish a shareable artifact to S3Api, get a URL.
|
|
32
32
|
var artifacts_1 = require("./artifacts");
|
|
33
33
|
Object.defineProperty(exports, "publishArtifact", { enumerable: true, get: function () { return artifacts_1.publishArtifact; } });
|
|
34
|
+
Object.defineProperty(exports, "resolveGatewayToken", { enumerable: true, get: function () { return artifacts_1.resolveGatewayToken; } });
|
|
34
35
|
Object.defineProperty(exports, "guessContentType", { enumerable: true, get: function () { return artifacts_1.guessContentType; } });
|
|
36
|
+
Object.defineProperty(exports, "DEFAULT_AUTH_BASE_URL", { enumerable: true, get: function () { return artifacts_1.DEFAULT_AUTH_BASE_URL; } });
|
|
37
|
+
var publishArtifactTool_1 = require("./tools/publishArtifactTool");
|
|
38
|
+
Object.defineProperty(exports, "buildPublishArtifactTool", { enumerable: true, get: function () { return publishArtifactTool_1.buildPublishArtifactTool; } });
|
|
35
39
|
// Sandbox execution seam — swappable boundary for running commands (local host
|
|
36
40
|
// today; Firecracker microVM via anton once its exec endpoint lands).
|
|
37
41
|
var sandbox_1 = require("./sandbox");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,mCAQkB;AAPhB,oGAAA,UAAU,OAAA;AACV,4GAAA,kBAAkB,OAAA;AAClB,sGAAA,YAAY,OAAA;AACZ,2GAAA,iBAAiB,OAAA;AAKnB,6CAeuB;AAdrB,8GAAA,eAAe,OAAA;AACf,qHAAA,sBAAsB,OAAA;AACtB,+GAAA,gBAAgB,OAAA;AAChB,uHAAA,wBAAwB,OAAA;AACxB,8GAAA,eAAe,OAAA;AACf,oHAAA,qBAAqB,OAAA;AACrB,yGAAA,UAAU,OAAA;AACV,gHAAA,iBAAiB,OAAA;AACjB,yGAAA,UAAU,OAAA;AACV,gHAAA,iBAAiB,OAAA;AACjB,uHAAA,wBAAwB,OAAA;AAK1B,yDAA6D;AAApD,qHAAA,mBAAmB,OAAA;AAC5B,+EAA+E;AAC/E,qCAAoG;AAA3F,sGAAA,WAAW,OAAA;AAAE,sGAAA,WAAW,OAAA;AAAE,oGAAA,SAAS,OAAA;AAAE,uGAAA,YAAY,OAAA;AAC1D,+EAA+E;AAC/E,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publishArtifactTool.d.ts","sourceRoot":"","sources":["../../src/tools/publishArtifactTool.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAoC,MAAM,0BAA0B,CAAC;AAG5F,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAyCvH"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.buildPublishArtifactTool = buildPublishArtifactTool;
|
|
37
|
+
/**
|
|
38
|
+
* `publish_artifact` — let the AGENT publish a workspace file as a shareable
|
|
39
|
+
* Bandit Artifact during a turn (so "make a README and publish it" works in one
|
|
40
|
+
* go, instead of the user having to run the /artifact slash command by hand).
|
|
41
|
+
*
|
|
42
|
+
* Thin wrapper over publishArtifact (posts straight to S3Api). Cloud-only: the
|
|
43
|
+
* host only registers this tool when a cloud token is present, so local-only
|
|
44
|
+
* runs never see it and stay fully offline.
|
|
45
|
+
*/
|
|
46
|
+
const fs = __importStar(require("fs"));
|
|
47
|
+
const path = __importStar(require("path"));
|
|
48
|
+
const artifacts_1 = require("../artifacts");
|
|
49
|
+
function buildPublishArtifactTool(opts) {
|
|
50
|
+
return {
|
|
51
|
+
name: 'publish_artifact',
|
|
52
|
+
description: 'Publish a file from the workspace as a shareable Bandit Artifact and return a public URL anyone can open. ' +
|
|
53
|
+
'Use this when the user asks to "publish", "share", or "make an artifact" of a file — write the file first, then call this with its path. Cloud feature.',
|
|
54
|
+
parameters: [
|
|
55
|
+
{
|
|
56
|
+
name: 'path',
|
|
57
|
+
description: 'Workspace-relative (or absolute) path to the file to publish, e.g. "README.md".',
|
|
58
|
+
required: true
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
async execute(params, ctx) {
|
|
62
|
+
const rel = (params.path ?? '').trim();
|
|
63
|
+
if (!rel)
|
|
64
|
+
return { output: 'Error: the `path` parameter is required.', isError: true };
|
|
65
|
+
const root = ctx.workspaceRoot ?? process.cwd();
|
|
66
|
+
const abs = path.isAbsolute(rel) ? rel : path.join(root, rel);
|
|
67
|
+
let bytes;
|
|
68
|
+
try {
|
|
69
|
+
bytes = await fs.promises.readFile(abs);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return { output: `Error: can't read "${rel}". Write the file first, then publish it.`, isError: true };
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
const artifact = await (0, artifacts_1.publishArtifact)({
|
|
76
|
+
s3ApiBaseUrl: opts.s3ApiBaseUrl,
|
|
77
|
+
authBaseUrl: opts.authBaseUrl,
|
|
78
|
+
token: opts.token,
|
|
79
|
+
content: new Uint8Array(bytes),
|
|
80
|
+
filename: path.basename(abs),
|
|
81
|
+
contentType: (0, artifacts_1.guessContentType)(path.basename(abs))
|
|
82
|
+
});
|
|
83
|
+
return { output: `Published "${path.basename(abs)}" — shareable link: ${artifact.url}` };
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
return { output: `Error publishing artifact: ${err instanceof Error ? err.message : String(err)}`, isError: true };
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=publishArtifactTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publishArtifactTool.js","sourceRoot":"","sources":["../../src/tools/publishArtifactTool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,4DAyCC;AAvDD;;;;;;;;GAQG;AACH,uCAAyB;AACzB,2CAA6B;AAE7B,4CAAiE;AAEjE,SAAgB,wBAAwB,CAAC,IAAmE;IAC1G,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,4GAA4G;YAC5G,yJAAyJ;QAC3J,UAAU,EAAE;YACV;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,iFAAiF;gBAC9F,QAAQ,EAAE,IAAI;aACf;SACF;QACD,KAAK,CAAC,OAAO,CAAC,MAA8B,EAAE,GAAyB;YACrE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG;gBAAE,OAAO,EAAE,MAAM,EAAE,0CAA0C,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAEvF,MAAM,IAAI,GAAI,GAAyD,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACvG,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC9D,IAAI,KAAa,CAAC;YAClB,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC1C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,MAAM,EAAE,sBAAsB,GAAG,2CAA2C,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACzG,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAA,2BAAe,EAAC;oBACrC,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,OAAO,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC;oBAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC5B,WAAW,EAAE,IAAA,4BAAgB,EAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;iBAClD,CAAC,CAAC;gBACH,OAAO,EAAE,MAAM,EAAE,cAAc,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,uBAAuB,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC;YAC3F,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,EAAE,MAAM,EAAE,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACrH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@burtson-labs/host-kit",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.35",
|
|
4
4
|
"author": {
|
|
5
5
|
"name": "Burtson Labs",
|
|
6
6
|
"email": "team@burtson.ai",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"dist"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@burtson-labs/agent-core": "1.6.
|
|
25
|
+
"@burtson-labs/agent-core": "1.6.52"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/node": "^20.11.0",
|