feat: Created packages/daemon workspace package with DaemonConfig/LogLe…
- "packages/daemon/package.json" - "packages/daemon/tsconfig.json" - "packages/daemon/src/types.ts" - "packages/daemon/src/index.ts" GSD-Task: S01/T01
This commit is contained in:
parent
8e1d523f4e
commit
c37eb1a5c3
5 changed files with 125 additions and 0 deletions
22
package-lock.json
generated
22
package-lock.json
generated
|
|
@ -1750,6 +1750,10 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@gsd-build/daemon": {
|
||||
"resolved": "packages/daemon",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/@gsd-build/engine-darwin-arm64": {
|
||||
"version": "2.10.5",
|
||||
"resolved": "https://registry.npmjs.org/@gsd-build/engine-darwin-arm64/-/engine-darwin-arm64-2.10.5.tgz",
|
||||
|
|
@ -9149,6 +9153,24 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"packages/daemon": {
|
||||
"name": "@gsd-build/daemon",
|
||||
"version": "0.1.0",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"yaml": "^2.8.0"
|
||||
},
|
||||
"bin": {
|
||||
"gsd-daemon": "dist/cli.js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^24.12.0",
|
||||
"typescript": "^5.4.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=22.0.0"
|
||||
}
|
||||
},
|
||||
"packages/mcp-server": {
|
||||
"name": "@gsd-build/mcp-server",
|
||||
"version": "2.52.0",
|
||||
|
|
|
|||
44
packages/daemon/package.json
Normal file
44
packages/daemon/package.json
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
"name": "@gsd-build/daemon",
|
||||
"version": "0.1.0",
|
||||
"description": "GSD daemon — background process for project monitoring and Discord integration",
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/gsd-build/gsd-2.git",
|
||||
"directory": "packages/daemon"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"type": "module",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/index.d.ts",
|
||||
"import": "./dist/index.js"
|
||||
}
|
||||
},
|
||||
"bin": {
|
||||
"gsd-daemon": "./dist/cli.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc",
|
||||
"test": "node --test dist/daemon.test.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"yaml": "^2.8.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^24.12.0",
|
||||
"typescript": "^5.4.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=22.0.0"
|
||||
},
|
||||
"files": [
|
||||
"dist",
|
||||
"!dist/**/*.test.*"
|
||||
]
|
||||
}
|
||||
1
packages/daemon/src/index.ts
Normal file
1
packages/daemon/src/index.ts
Normal file
|
|
@ -0,0 +1 @@
|
|||
export type { DaemonConfig, LogLevel, LogEntry } from './types.js';
|
||||
34
packages/daemon/src/types.ts
Normal file
34
packages/daemon/src/types.ts
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
/**
|
||||
* Log severity levels, ordered from most to least verbose.
|
||||
*/
|
||||
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
||||
|
||||
/**
|
||||
* A single structured log entry written as JSON-lines.
|
||||
*/
|
||||
export interface LogEntry {
|
||||
/** ISO-8601 timestamp */
|
||||
ts: string;
|
||||
level: LogLevel;
|
||||
msg: string;
|
||||
data?: Record<string, unknown>;
|
||||
}
|
||||
|
||||
/**
|
||||
* Top-level daemon configuration, loaded from YAML.
|
||||
*/
|
||||
export interface DaemonConfig {
|
||||
discord?: {
|
||||
token: string;
|
||||
guild_id: string;
|
||||
owner_id: string;
|
||||
};
|
||||
projects: {
|
||||
scan_roots: string[];
|
||||
};
|
||||
log: {
|
||||
file: string;
|
||||
level: LogLevel;
|
||||
max_size_mb: number;
|
||||
};
|
||||
}
|
||||
24
packages/daemon/tsconfig.json
Normal file
24
packages/daemon/tsconfig.json
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"target": "ES2024",
|
||||
"module": "Node16",
|
||||
"lib": ["ES2024"],
|
||||
"strict": true,
|
||||
"esModuleInterop": true,
|
||||
"skipLibCheck": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"declaration": true,
|
||||
"declarationMap": true,
|
||||
"sourceMap": true,
|
||||
"inlineSources": true,
|
||||
"inlineSourceMap": false,
|
||||
"moduleResolution": "Node16",
|
||||
"resolveJsonModule": true,
|
||||
"allowImportingTsExtensions": false,
|
||||
"types": ["node"],
|
||||
"outDir": "./dist",
|
||||
"rootDir": "./src"
|
||||
},
|
||||
"include": ["src/**/*.ts"],
|
||||
"exclude": ["node_modules", "dist", "**/*.d.ts", "src/**/*.d.ts"]
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue