@papercraneai/sandbox-agent 0.1.0

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.
@@ -0,0 +1,23 @@
1
+ export type LogLevel = "trace" | "debug" | "info" | "warn" | "error";
2
+ export interface LogContext {
3
+ requestId?: string;
4
+ sessionId?: string;
5
+ toolName?: string;
6
+ toolUseId?: string;
7
+ duration?: number;
8
+ [key: string]: unknown;
9
+ }
10
+ export declare function trace(context: LogContext, message: string): void;
11
+ export declare function debug(context: LogContext, message: string): void;
12
+ export declare function info(context: LogContext, message: string): void;
13
+ export declare function warn(context: LogContext, message: string): void;
14
+ export declare function error(context: LogContext, message: string): void;
15
+ export declare function createLogger(baseContext: LogContext): {
16
+ trace: (message: string, extra?: LogContext) => void;
17
+ debug: (message: string, extra?: LogContext) => void;
18
+ info: (message: string, extra?: LogContext) => void;
19
+ warn: (message: string, extra?: LogContext) => void;
20
+ error: (message: string, extra?: LogContext) => void;
21
+ };
22
+ export declare function getLogLevel(): LogLevel;
23
+ export declare function isLevelEnabled(level: LogLevel): boolean;
package/dist/logger.js ADDED
@@ -0,0 +1,62 @@
1
+ const levels = {
2
+ trace: 0,
3
+ debug: 1,
4
+ info: 2,
5
+ warn: 3,
6
+ error: 4
7
+ };
8
+ const currentLevel = process.env.LOG_LEVEL || "info";
9
+ function shouldLog(level) {
10
+ return levels[level] >= levels[currentLevel];
11
+ }
12
+ function formatLog(level, context, message) {
13
+ return JSON.stringify({
14
+ ts: new Date().toISOString(),
15
+ level,
16
+ service: "sandbox-agent",
17
+ ...context,
18
+ msg: message
19
+ });
20
+ }
21
+ export function trace(context, message) {
22
+ if (shouldLog("trace")) {
23
+ console.log(formatLog("trace", context, message));
24
+ }
25
+ }
26
+ export function debug(context, message) {
27
+ if (shouldLog("debug")) {
28
+ console.log(formatLog("debug", context, message));
29
+ }
30
+ }
31
+ export function info(context, message) {
32
+ if (shouldLog("info")) {
33
+ console.log(formatLog("info", context, message));
34
+ }
35
+ }
36
+ export function warn(context, message) {
37
+ if (shouldLog("warn")) {
38
+ console.warn(formatLog("warn", context, message));
39
+ }
40
+ }
41
+ export function error(context, message) {
42
+ if (shouldLog("error")) {
43
+ console.error(formatLog("error", context, message));
44
+ }
45
+ }
46
+ // Convenience function to create a scoped logger with preset context
47
+ export function createLogger(baseContext) {
48
+ return {
49
+ trace: (message, extra) => trace({ ...baseContext, ...extra }, message),
50
+ debug: (message, extra) => debug({ ...baseContext, ...extra }, message),
51
+ info: (message, extra) => info({ ...baseContext, ...extra }, message),
52
+ warn: (message, extra) => warn({ ...baseContext, ...extra }, message),
53
+ error: (message, extra) => error({ ...baseContext, ...extra }, message),
54
+ };
55
+ }
56
+ // Get current log level
57
+ export function getLogLevel() {
58
+ return currentLevel;
59
+ }
60
+ export function isLevelEnabled(level) {
61
+ return shouldLog(level);
62
+ }
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@papercraneai/sandbox-agent",
3
+ "version": "0.1.0",
4
+ "description": "Claude Agent SDK server for sandbox environments",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "dist/index.js",
8
+ "bin": {
9
+ "sandbox-agent": "dist/index.js"
10
+ },
11
+ "files": [
12
+ "dist"
13
+ ],
14
+ "publishConfig": {
15
+ "access": "public"
16
+ },
17
+ "scripts": {
18
+ "start": "node dist/index.js",
19
+ "dev": "tsx watch src/index.ts",
20
+ "dev:local": "PROJECT_DIR=./template/src/app tsx src/index.ts",
21
+ "build": "tsc",
22
+ "typecheck": "tsc --noEmit"
23
+ },
24
+ "dependencies": {
25
+ "@anthropic-ai/claude-agent-sdk": "^0.2.5",
26
+ "express": "^4.21.1",
27
+ "multer": "^2.0.2",
28
+ "zod": "^4.0.0"
29
+ },
30
+ "devDependencies": {
31
+ "@types/express": "^5.0.0",
32
+ "@types/multer": "^2.0.0",
33
+ "@types/node": "^22.14.0",
34
+ "tsx": "^4.20.6",
35
+ "typescript": "^5.8.3"
36
+ }
37
+ }