behavior-wrapped 0.8.7 → 0.8.9
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/index.html
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
<meta name="theme-color" content="#0d0b1b" />
|
|
7
7
|
<meta name="description" content="A local-first behavior report for you and your AI agents." />
|
|
8
8
|
<title>Behavior Wrapped</title>
|
|
9
|
-
<script type="module" crossorigin src="/assets/index-
|
|
10
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
9
|
+
<script type="module" crossorigin src="/assets/index-CD48EtI2.js"></script>
|
|
10
|
+
<link rel="stylesheet" crossorigin href="/assets/index-RUb7reCR.css">
|
|
11
11
|
</head>
|
|
12
12
|
<body>
|
|
13
13
|
<div id="root"></div>
|
package/package.json
CHANGED
package/server/consent.mjs
CHANGED
|
@@ -7,11 +7,26 @@ const reset = "\x1b[0m";
|
|
|
7
7
|
|
|
8
8
|
export const remoteAnalysisConsentText = "Behavior Wrapped will send redacted excerpts from your session history to GPT-5.6 Luna via OpenRouter using zero-data-retention providers for analysis. OK to proceed?";
|
|
9
9
|
export const localOnlyAnalysisText = "Local-only analysis keeps all session data on this device. It uses deterministic statistics and a locally counted favorite phrase, but omits AI-judged interaction tone, usage topics, and instrumental workarounds. Those omissions leave leaderboard plots 2 and 3 incomplete, so the report will not be published or included in the leaderboard.";
|
|
10
|
+
export const researchDonationIntroText = [
|
|
11
|
+
"Your Claude Code and Codex sessions from the last 30 days are read and analyzed locally.",
|
|
12
|
+
"With permission, redacted excerpts are sent to an LLM judge for additional analysis.",
|
|
13
|
+
"Your public Wrapped contains aggregate statistics only.",
|
|
14
|
+
"At the end, you may optionally review and donate select transcripts to the Susan Calvin Project (susancalvin.org). Research donation is optional and is not required to create your Wrapped.",
|
|
15
|
+
];
|
|
16
|
+
|
|
17
|
+
export function formatResearchDonationIntro() {
|
|
18
|
+
return [
|
|
19
|
+
`${bright}Before we begin${reset}`,
|
|
20
|
+
"",
|
|
21
|
+
...researchDonationIntroText.map((line, index) => `${purple}${index + 1}.${reset} ${line}`),
|
|
22
|
+
].join("\n");
|
|
23
|
+
}
|
|
10
24
|
|
|
11
25
|
export async function requestAnalysisMode({ input = process.stdin, output = process.stdout } = {}) {
|
|
12
26
|
const prompt = createInterface({ input, output });
|
|
13
27
|
try {
|
|
14
|
-
|
|
28
|
+
output.write(`\n${formatResearchDonationIntro()}\n\n`);
|
|
29
|
+
const question = `${lime}◇${reset} ${remoteAnalysisConsentText.replace("GPT-5.6 Luna", `${purple}${bright}GPT-5.6 Luna${reset}`)} ${bright}(Y/n)${reset} `;
|
|
15
30
|
const answer = await prompt.question(question);
|
|
16
31
|
if (/^(?:|y|yes)$/i.test(answer.trim())) return "remote";
|
|
17
32
|
output.write(`\n${localOnlyAnalysisText}\n\n`);
|