@prism-d1/cli 1.4.3 → 1.5.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.
- package/dist/assets/github-workflows/prism-eval-gate-kiro.yml +22 -2
- package/dist/assets/gitlab-workflows/prism-eval-gate.yml +22 -1
- package/dist/src/commands/enable/codeburn.d.ts +21 -1
- package/dist/src/commands/enable/codeburn.d.ts.map +1 -1
- package/dist/src/commands/enable/codeburn.js +199 -27
- package/dist/src/commands/enable/codeburn.js.map +1 -1
- package/dist/src/dashboard/codewatch.d.ts +3 -1
- package/dist/src/dashboard/codewatch.d.ts.map +1 -1
- package/dist/src/dashboard/codewatch.js +1 -0
- package/dist/src/dashboard/codewatch.js.map +1 -1
- package/dist/src/dashboard/page.d.ts.map +1 -1
- package/dist/src/dashboard/page.js +190 -53
- package/dist/src/dashboard/page.js.map +1 -1
- package/dist/src/dashboard/payload.d.ts +24 -4
- package/dist/src/dashboard/payload.d.ts.map +1 -1
- package/dist/src/dashboard/payload.js +41 -24
- package/dist/src/dashboard/payload.js.map +1 -1
- package/dist/src/dashboard/repos.d.ts +6 -0
- package/dist/src/dashboard/repos.d.ts.map +1 -1
- package/dist/src/dashboard/repos.js +24 -0
- package/dist/src/dashboard/repos.js.map +1 -1
- package/dist/src/dashboard/setup.d.ts +12 -3
- package/dist/src/dashboard/setup.d.ts.map +1 -1
- package/dist/src/dashboard/setup.js +15 -4
- package/dist/src/dashboard/setup.js.map +1 -1
- package/dist/src/dashboard/summary.d.ts +45 -0
- package/dist/src/dashboard/summary.d.ts.map +1 -0
- package/dist/src/dashboard/summary.js +19 -0
- package/dist/src/dashboard/summary.js.map +1 -0
- package/dist/src/dashboard/usage.d.ts +16 -0
- package/dist/src/dashboard/usage.d.ts.map +1 -1
- package/dist/src/dashboard/usage.js +31 -3
- package/dist/src/dashboard/usage.js.map +1 -1
- package/dist/src/utils/otel-sync-schedule.d.ts +16 -1
- package/dist/src/utils/otel-sync-schedule.d.ts.map +1 -1
- package/dist/src/utils/otel-sync-schedule.js +31 -3
- package/dist/src/utils/otel-sync-schedule.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel-sync-schedule.d.ts","sourceRoot":"","sources":["../../../src/utils/otel-sync-schedule.ts"],"names":[],"mappings":"AAWA,OAAO,EAAO,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAEhD,uFAAuF;AACvF,eAAO,MAAM,mBAAmB,8BAA8B,CAAC;AAE/D,2FAA2F;AAC3F,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAC/C,eAAO,MAAM,qBAAqB,UAA0C,CAAC;AAE7E,oFAAoF;AACpF,eAAO,MAAM,UAAU,OAAO,CAAC;AAE/B;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAEhD;AAED,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAC/C,eAAO,MAAM,WAAW,wBAAwB,CAAC;AACjD,eAAO,MAAM,YAAY,kBAAkB,CAAC;AAE5C,wBAAgB,UAAU,CAAC,IAAI,SAAY,GAAG,MAAM,CAEnD;AAED,wBAAgB,WAAW,CAAC,IAAI,SAAY,GAAG,MAAM,CAEpD;AAED,wBAAgB,sBAAsB,CAAC,IAAI,SAAY,GAAG,MAAM,CAE/D;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAKD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE,CAKnD;AAED,
|
|
1
|
+
{"version":3,"file":"otel-sync-schedule.d.ts","sourceRoot":"","sources":["../../../src/utils/otel-sync-schedule.ts"],"names":[],"mappings":"AAWA,OAAO,EAAO,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAEhD,uFAAuF;AACvF,eAAO,MAAM,mBAAmB,8BAA8B,CAAC;AAE/D,2FAA2F;AAC3F,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAC/C,eAAO,MAAM,qBAAqB,UAA0C,CAAC;AAE7E,oFAAoF;AACpF,eAAO,MAAM,UAAU,OAAO,CAAC;AAE/B;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAEhD;AAED,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAC/C,eAAO,MAAM,WAAW,wBAAwB,CAAC;AACjD,eAAO,MAAM,YAAY,kBAAkB,CAAC;AAE5C,wBAAgB,UAAU,CAAC,IAAI,SAAY,GAAG,MAAM,CAEnD;AAED,wBAAgB,WAAW,CAAC,IAAI,SAAY,GAAG,MAAM,CAEpD;AAED,wBAAgB,sBAAsB,CAAC,IAAI,SAAY,GAAG,MAAM,CAE/D;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAKD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE,CAKnD;AAED,mIAAmI;AACnI,wBAAgB,uBAAuB,IAAI,OAAO,CAGjD;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,oBAAoB,CAAC;AAC9C,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAG3D,wBAAgB,cAAc,CAAC,IAAI,SAAY,GAAG,MAAM,CAEvD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,SAAY,GAAG,MAAM,CAEzD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,SAAY,GAAG,MAAM,CAE3D;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,IAAI,SAAY,GAAG,OAAO,CAE5D;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED,yGAAyG;AACzG,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED,wBAAgB,eAAe,CAAC,IAAI,SAAY,GAAG,MAAM,CAExD;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED,wBAAgB,cAAc,IAAI,OAAO,CAMxC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAMtC;AAED,MAAM,WAAW,QAAQ;IACvB,uEAAuE;IACvE,EAAE,EAAE,MAAM,CAAC;IACX,wCAAwC;IACxC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,kGAAkG;AAClG,wBAAgB,QAAQ,CAAC,IAAI,SAAY,GAAG,QAAQ,GAAG,IAAI,CAS1D"}
|
|
@@ -62,12 +62,40 @@ export function crontabLines(r) {
|
|
|
62
62
|
const reason = r.stderr.split('\n').map((l) => l.trim()).find(Boolean) || 'unknown error';
|
|
63
63
|
throw new Error(`cannot read your crontab (crontab -l: ${reason}); it was not changed, so your existing cron jobs are kept. Fix crontab access, or run "prism-cli export otel" yourself.`);
|
|
64
64
|
}
|
|
65
|
-
/** Throws (via crontabLines) when the crontab cannot be read, rather than calling the schedule missing. */
|
|
66
|
-
export function
|
|
65
|
+
/** The crontab entry only. Throws (via crontabLines) when the crontab cannot be read, rather than calling the schedule missing. */
|
|
66
|
+
export function linuxCronScheduleExists() {
|
|
67
67
|
if (!linuxCrontabAvailable())
|
|
68
68
|
return false;
|
|
69
69
|
return crontabLines(run('crontab', ['-l'])).some((l) => l.includes(CRON_MARKER));
|
|
70
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* The systemd user timer `enable codeburn --schedule systemd` installs, the
|
|
73
|
+
* Linux schedule for machines whose crontab cannot be read (a PAM denial).
|
|
74
|
+
*/
|
|
75
|
+
export const SYSTEMD_UNIT = 'prism-otel-sync';
|
|
76
|
+
export const SYSTEMD_SCHEDULER_NAME = 'systemd user timer';
|
|
77
|
+
// shortcut: ignores $XDG_CONFIG_HOME, which systemd honours; add it if someone relocates their config dir.
|
|
78
|
+
export function systemdUserDir(home = homedir()) {
|
|
79
|
+
return join(home, '.config', 'systemd', 'user');
|
|
80
|
+
}
|
|
81
|
+
export function systemdTimerPath(home = homedir()) {
|
|
82
|
+
return join(systemdUserDir(home), `${SYSTEMD_UNIT}.timer`);
|
|
83
|
+
}
|
|
84
|
+
export function systemdServicePath(home = homedir()) {
|
|
85
|
+
return join(systemdUserDir(home), `${SYSTEMD_UNIT}.service`);
|
|
86
|
+
}
|
|
87
|
+
/** The timer unit file is present. A file check only: nothing is run. */
|
|
88
|
+
export function systemdTimerExists(home = homedir()) {
|
|
89
|
+
return existsSync(systemdTimerPath(home));
|
|
90
|
+
}
|
|
91
|
+
/** `systemctl --user` reaches a user manager on this machine. */
|
|
92
|
+
export function systemdUserAvailable() {
|
|
93
|
+
return platform() === 'linux' && run('systemctl', ['--user', 'show-environment']).ok;
|
|
94
|
+
}
|
|
95
|
+
/** The systemd timer, else the crontab entry: an unreadable crontab does not hide an installed timer. */
|
|
96
|
+
export function linuxScheduleExists() {
|
|
97
|
+
return systemdTimerExists() || linuxCronScheduleExists();
|
|
98
|
+
}
|
|
71
99
|
export function darwinPlistPath(home = homedir()) {
|
|
72
100
|
return join(home, 'Library', 'LaunchAgents', `${PLIST_LABEL}.plist`);
|
|
73
101
|
}
|
|
@@ -88,7 +116,7 @@ export function schedulerName() {
|
|
|
88
116
|
switch (platform()) {
|
|
89
117
|
case 'darwin': return 'LaunchAgent';
|
|
90
118
|
case 'win32': return 'Scheduled Task';
|
|
91
|
-
default: return 'crontab';
|
|
119
|
+
default: return systemdTimerExists() ? SYSTEMD_SCHEDULER_NAME : 'crontab';
|
|
92
120
|
}
|
|
93
121
|
}
|
|
94
122
|
/** When the scheduled sync last ran, from ~/.prism/logs/otel-sync.log. null if it never wrote. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel-sync-schedule.js","sourceRoot":"","sources":["../../../src/utils/otel-sync-schedule.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,GAAG,EAAkB,MAAM,WAAW,CAAC;AAEhD,uFAAuF;AACvF,MAAM,CAAC,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AAE/D,2FAA2F;AAC3F,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAC/C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC;AAE7E,oFAAoF;AACpF,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC;AAE/B;;;;;;;;;;GAUG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAC/C,MAAM,CAAC,MAAM,WAAW,GAAG,qBAAqB,CAAC;AACjD,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;AAE5C,MAAM,UAAU,UAAU,CAAC,IAAI,GAAG,OAAO,EAAE;IACzC,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAI,GAAG,OAAO,EAAE;IAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAI,GAAG,OAAO,EAAE;IACrD,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;AACtC,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,GAAG,iBAAiB,CAAC;AAErC;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,CAAY;IACvC,IAAI,CAAC,CAAC,EAAE;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC;IAC1F,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,0HAA0H,CAAC,CAAC;AAC7L,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"otel-sync-schedule.js","sourceRoot":"","sources":["../../../src/utils/otel-sync-schedule.ts"],"names":[],"mappings":"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"}
|