@ramarivera/coding-agent-langfuse 0.1.30 → 0.1.32
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/README.md +32 -1
- package/dist/service.d.ts +2 -1
- package/dist/service.js +22 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -65,7 +65,17 @@ The service installer supports:
|
|
|
65
65
|
- Windows: scheduled task installer script under `%APPDATA%\\coding-agent-langfuse`
|
|
66
66
|
|
|
67
67
|
Use `--dry-run` to print the exact file and commands, `--no-start` to only write
|
|
68
|
-
the service file,
|
|
68
|
+
the service file, `service status` to inspect the platform registration, and
|
|
69
|
+
`service uninstall` to remove it.
|
|
70
|
+
|
|
71
|
+
```sh
|
|
72
|
+
npx @ramarivera/coding-agent-langfuse@latest service status \
|
|
73
|
+
--agents codex,pi
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
The Windows path intentionally uses a per-user Scheduled Task for the default
|
|
77
|
+
`npx` workflow. A true Windows SCM service needs an installed wrapper or native
|
|
78
|
+
service binary; raw `sc.exe` is not a good fit for a transient npm command.
|
|
69
79
|
|
|
70
80
|
## Backfill windows
|
|
71
81
|
|
|
@@ -81,3 +91,24 @@ npx @ramarivera/coding-agent-langfuse@latest \
|
|
|
81
91
|
|
|
82
92
|
Deduplication is state-file based and keyed by agent, session id, and source
|
|
83
93
|
record id. Reuse the same `--state` path for repeat repairs on a host.
|
|
94
|
+
|
|
95
|
+
## Verification
|
|
96
|
+
|
|
97
|
+
The test suite covers parser behavior for all supported agents and exercises the
|
|
98
|
+
CLI against a local OTLP collector.
|
|
99
|
+
|
|
100
|
+
```sh
|
|
101
|
+
npm run check
|
|
102
|
+
npm test
|
|
103
|
+
npm run test:e2e
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
The e2e suite verifies:
|
|
107
|
+
|
|
108
|
+
- Codex full session traces with messages, reasoning, tool calls, tool results,
|
|
109
|
+
usage, and costs
|
|
110
|
+
- Follow mode picking up newly written Codex events
|
|
111
|
+
- One CLI run posting reconstructable traces for Claude Code, Codex, Grok,
|
|
112
|
+
OpenCode, and Pi
|
|
113
|
+
- Service plan generation for Linux systemd user units, macOS LaunchAgents, and
|
|
114
|
+
Windows Scheduled Tasks
|
package/dist/service.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
type AgentName = "claude" | "codex" | "grok" | "opencode" | "pi";
|
|
2
2
|
type ServicePlatform = "darwin" | "linux" | "win32";
|
|
3
|
-
type ServiceAction = "install" | "uninstall" | "print";
|
|
3
|
+
type ServiceAction = "install" | "uninstall" | "status" | "print";
|
|
4
4
|
type ServiceOptions = {
|
|
5
5
|
action: ServiceAction;
|
|
6
6
|
platform: ServicePlatform;
|
|
@@ -28,6 +28,7 @@ type ServicePlan = {
|
|
|
28
28
|
command: string[];
|
|
29
29
|
postInstallCommands: string[][];
|
|
30
30
|
uninstallCommands: string[][];
|
|
31
|
+
statusCommands: string[][];
|
|
31
32
|
};
|
|
32
33
|
declare function parseServiceArgs(argv: string[]): ServiceOptions;
|
|
33
34
|
declare function buildServicePlan(options: ServiceOptions): ServicePlan;
|
package/dist/service.js
CHANGED
|
@@ -9,6 +9,7 @@ function serviceUsage() {
|
|
|
9
9
|
return `Usage:
|
|
10
10
|
coding-agent-langfuse service install [options]
|
|
11
11
|
coding-agent-langfuse service print [options]
|
|
12
|
+
coding-agent-langfuse service status [options]
|
|
12
13
|
coding-agent-langfuse service uninstall [options]
|
|
13
14
|
|
|
14
15
|
Service options:
|
|
@@ -153,6 +154,9 @@ function buildServicePlan(options) {
|
|
|
153
154
|
uninstallCommands: [
|
|
154
155
|
["launchctl", "bootout", `gui/${process.getuid?.() ?? 501}`, path],
|
|
155
156
|
],
|
|
157
|
+
statusCommands: [
|
|
158
|
+
["launchctl", "print", `gui/${process.getuid?.() ?? 501}/${options.name}`],
|
|
159
|
+
],
|
|
156
160
|
};
|
|
157
161
|
}
|
|
158
162
|
if (options.platform === "linux") {
|
|
@@ -174,6 +178,9 @@ function buildServicePlan(options) {
|
|
|
174
178
|
["systemctl", "--user", "disable", "--now", `${options.name}.service`],
|
|
175
179
|
["systemctl", "--user", "daemon-reload"],
|
|
176
180
|
],
|
|
181
|
+
statusCommands: [
|
|
182
|
+
["systemctl", "--user", "status", `${options.name}.service`],
|
|
183
|
+
],
|
|
177
184
|
};
|
|
178
185
|
}
|
|
179
186
|
const path = join(process.env.APPDATA ?? join(options.homeDir, "AppData/Roaming"), "coding-agent-langfuse", `${options.name}.ps1`);
|
|
@@ -208,6 +215,14 @@ function buildServicePlan(options) {
|
|
|
208
215
|
`Unregister-ScheduledTask -TaskName ${powershellString(taskName)} -Confirm:$false -ErrorAction SilentlyContinue`,
|
|
209
216
|
],
|
|
210
217
|
],
|
|
218
|
+
statusCommands: [
|
|
219
|
+
[
|
|
220
|
+
"powershell.exe",
|
|
221
|
+
"-NoProfile",
|
|
222
|
+
"-Command",
|
|
223
|
+
`Get-ScheduledTask -TaskName ${powershellString(taskName)} | Format-List *`,
|
|
224
|
+
],
|
|
225
|
+
],
|
|
211
226
|
};
|
|
212
227
|
}
|
|
213
228
|
async function serviceMain(argv = process.argv.slice(2)) {
|
|
@@ -226,6 +241,11 @@ async function serviceMain(argv = process.argv.slice(2)) {
|
|
|
226
241
|
console.log(JSON.stringify(plan, null, 2));
|
|
227
242
|
return plan;
|
|
228
243
|
}
|
|
244
|
+
if (options.action === "status") {
|
|
245
|
+
runCommands(plan.statusCommands);
|
|
246
|
+
console.log(JSON.stringify(plan, null, 2));
|
|
247
|
+
return plan;
|
|
248
|
+
}
|
|
229
249
|
runCommands(plan.uninstallCommands, { ignoreFailure: true });
|
|
230
250
|
if (existsSync(plan.path))
|
|
231
251
|
rmSync(plan.path);
|
|
@@ -329,9 +349,9 @@ if ($Install) {
|
|
|
329
349
|
`;
|
|
330
350
|
}
|
|
331
351
|
function parseServiceAction(value) {
|
|
332
|
-
if (value === "install" || value === "uninstall" || value === "print")
|
|
352
|
+
if (value === "install" || value === "uninstall" || value === "status" || value === "print")
|
|
333
353
|
return value;
|
|
334
|
-
throw new Error(`Expected service action install, uninstall, or print; got '${value ?? ""}'`);
|
|
354
|
+
throw new Error(`Expected service action install, uninstall, status, or print; got '${value ?? ""}'`);
|
|
335
355
|
}
|
|
336
356
|
function parsePlatform(value) {
|
|
337
357
|
if (value === "darwin" || value === "linux" || value === "win32")
|