heyiam 0.2.17 → 0.2.18
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/analyzer.js +0 -1
- package/dist/archive.js +0 -1
- package/dist/auth.js +0 -1
- package/dist/autostart.js +0 -1
- package/dist/bridge.js +0 -1
- package/dist/config.js +0 -1
- package/dist/context-export.js +0 -1
- package/dist/daemon-install.js +0 -1
- package/dist/db.js +0 -1
- package/dist/demo-data.js +0 -1
- package/dist/demo-seed.js +0 -1
- package/dist/export.js +0 -1
- package/dist/format-utils.js +0 -1
- package/dist/index.js +0 -1
- package/dist/llm/anthropic-provider.js +0 -1
- package/dist/llm/index.js +0 -1
- package/dist/llm/project-enhance.js +0 -1
- package/dist/llm/proxy-provider.js +0 -1
- package/dist/llm/triage.js +0 -1
- package/dist/llm/types.js +0 -1
- package/dist/parsers/claude.js +0 -1
- package/dist/parsers/codex.js +0 -1
- package/dist/parsers/cursor.js +0 -1
- package/dist/parsers/gemini.js +0 -1
- package/dist/parsers/index.js +0 -1
- package/dist/parsers/types.js +0 -1
- package/dist/redact.js +0 -1
- package/dist/render/build-render-data.js +0 -1
- package/dist/render/index.js +0 -1
- package/dist/render/liquid.js +0 -1
- package/dist/render/templates/project.liquid +28 -14
- package/dist/render/templates/styles.css +31 -1
- package/dist/render/types.js +0 -1
- package/dist/routes/archive.js +0 -1
- package/dist/routes/auth.js +0 -1
- package/dist/routes/context.js +0 -1
- package/dist/routes/dashboard.js +0 -1
- package/dist/routes/enhance.js +0 -1
- package/dist/routes/export.js +0 -1
- package/dist/routes/index.js +0 -1
- package/dist/routes/preview.js +0 -1
- package/dist/routes/projects.js +0 -1
- package/dist/routes/publish.js +4 -2
- package/dist/routes/search.js +0 -1
- package/dist/routes/sessions.js +0 -1
- package/dist/routes/settings.js +0 -1
- package/dist/screenshot.js +0 -1
- package/dist/search.js +0 -1
- package/dist/server.js +2 -2
- package/dist/settings.js +0 -1
- package/dist/source-audit.js +0 -1
- package/dist/summarize.js +0 -1
- package/dist/sync.js +0 -1
- package/dist/transcript.js +0 -1
- package/package.json +6 -3
- package/dist/analyzer.d.ts +0 -123
- package/dist/analyzer.js.map +0 -1
- package/dist/archive.d.ts +0 -14
- package/dist/archive.js.map +0 -1
- package/dist/auth.d.ts +0 -28
- package/dist/auth.js.map +0 -1
- package/dist/autostart.d.ts +0 -19
- package/dist/autostart.js.map +0 -1
- package/dist/bridge.d.ts +0 -58
- package/dist/bridge.js.map +0 -1
- package/dist/config.d.ts +0 -2
- package/dist/config.js.map +0 -1
- package/dist/context-export.d.ts +0 -28
- package/dist/context-export.js.map +0 -1
- package/dist/daemon-install.d.ts +0 -23
- package/dist/daemon-install.js.map +0 -1
- package/dist/db.d.ts +0 -126
- package/dist/db.js.map +0 -1
- package/dist/demo-data.d.ts +0 -95
- package/dist/demo-data.js.map +0 -1
- package/dist/demo-seed.d.ts +0 -17
- package/dist/demo-seed.js.map +0 -1
- package/dist/export.d.ts +0 -34
- package/dist/export.js.map +0 -1
- package/dist/format-utils.d.ts +0 -6
- package/dist/format-utils.js.map +0 -1
- package/dist/index.d.ts +0 -4
- package/dist/index.js.map +0 -1
- package/dist/llm/anthropic-provider.d.ts +0 -11
- package/dist/llm/anthropic-provider.js.map +0 -1
- package/dist/llm/index.d.ts +0 -16
- package/dist/llm/index.js.map +0 -1
- package/dist/llm/project-enhance.d.ts +0 -72
- package/dist/llm/project-enhance.js.map +0 -1
- package/dist/llm/proxy-provider.d.ts +0 -16
- package/dist/llm/proxy-provider.js.map +0 -1
- package/dist/llm/triage.d.ts +0 -67
- package/dist/llm/triage.js.map +0 -1
- package/dist/llm/types.d.ts +0 -19
- package/dist/llm/types.js.map +0 -1
- package/dist/parsers/claude.d.ts +0 -18
- package/dist/parsers/claude.js.map +0 -1
- package/dist/parsers/codex.d.ts +0 -8
- package/dist/parsers/codex.js.map +0 -1
- package/dist/parsers/cursor.d.ts +0 -91
- package/dist/parsers/cursor.js.map +0 -1
- package/dist/parsers/gemini.d.ts +0 -29
- package/dist/parsers/gemini.js.map +0 -1
- package/dist/parsers/index.d.ts +0 -49
- package/dist/parsers/index.js.map +0 -1
- package/dist/parsers/types.d.ts +0 -123
- package/dist/parsers/types.js.map +0 -1
- package/dist/redact.d.ts +0 -31
- package/dist/redact.js.map +0 -1
- package/dist/render/build-render-data.d.ts +0 -60
- package/dist/render/build-render-data.js.map +0 -1
- package/dist/render/index.d.ts +0 -37
- package/dist/render/index.js.map +0 -1
- package/dist/render/liquid.d.ts +0 -19
- package/dist/render/liquid.js.map +0 -1
- package/dist/render/templates/templates/project.liquid +0 -225
- package/dist/render/templates/templates/session.liquid +0 -158
- package/dist/render/templates/templates/styles.css +0 -599
- package/dist/render/types.d.ts +0 -122
- package/dist/render/types.js.map +0 -1
- package/dist/routes/archive.d.ts +0 -3
- package/dist/routes/archive.js.map +0 -1
- package/dist/routes/auth.d.ts +0 -3
- package/dist/routes/auth.js.map +0 -1
- package/dist/routes/context.d.ts +0 -76
- package/dist/routes/context.js.map +0 -1
- package/dist/routes/dashboard.d.ts +0 -3
- package/dist/routes/dashboard.js.map +0 -1
- package/dist/routes/enhance.d.ts +0 -3
- package/dist/routes/enhance.js.map +0 -1
- package/dist/routes/export.d.ts +0 -3
- package/dist/routes/export.js.map +0 -1
- package/dist/routes/index.d.ts +0 -12
- package/dist/routes/index.js.map +0 -1
- package/dist/routes/preview.d.ts +0 -3
- package/dist/routes/preview.js.map +0 -1
- package/dist/routes/projects.d.ts +0 -3
- package/dist/routes/projects.js.map +0 -1
- package/dist/routes/publish.d.ts +0 -3
- package/dist/routes/publish.js.map +0 -1
- package/dist/routes/search.d.ts +0 -3
- package/dist/routes/search.js.map +0 -1
- package/dist/routes/sessions.d.ts +0 -3
- package/dist/routes/sessions.js.map +0 -1
- package/dist/routes/settings.d.ts +0 -3
- package/dist/routes/settings.js.map +0 -1
- package/dist/screenshot.d.ts +0 -13
- package/dist/screenshot.js.map +0 -1
- package/dist/search.d.ts +0 -30
- package/dist/search.js.map +0 -1
- package/dist/server.d.ts +0 -14
- package/dist/server.js.map +0 -1
- package/dist/settings.d.ts +0 -109
- package/dist/settings.js.map +0 -1
- package/dist/source-audit.d.ts +0 -29
- package/dist/source-audit.js.map +0 -1
- package/dist/summarize.d.ts +0 -65
- package/dist/summarize.js.map +0 -1
- package/dist/sync.d.ts +0 -78
- package/dist/sync.js.map +0 -1
- package/dist/transcript.d.ts +0 -68
- package/dist/transcript.js.map +0 -1
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Helpers that build render data types from CLI internal data structures.
|
|
3
|
-
*
|
|
4
|
-
* Extracted from server.ts publish flow so the mapping logic is unit-testable.
|
|
5
|
-
*/
|
|
6
|
-
import type { SessionRenderData, ProjectRenderData, SessionCard } from './types.js';
|
|
7
|
-
import type { Session } from '../analyzer.js';
|
|
8
|
-
import type { EnhancedData } from '../settings.js';
|
|
9
|
-
import type { AgentSummary } from '../routes/context.js';
|
|
10
|
-
export declare const DEFAULT_ACCENT = "#084471";
|
|
11
|
-
interface BuildSessionRenderOpts {
|
|
12
|
-
sessionId: string;
|
|
13
|
-
session: Session;
|
|
14
|
-
enhanced: EnhancedData | null;
|
|
15
|
-
username: string;
|
|
16
|
-
projectSlug: string;
|
|
17
|
-
sessionSlug: string;
|
|
18
|
-
sourceTool: string;
|
|
19
|
-
agentSummary?: AgentSummary | null;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Build SessionRenderData from CLI internal types.
|
|
23
|
-
* Pure function — no I/O, no side effects.
|
|
24
|
-
*/
|
|
25
|
-
export declare function buildSessionRenderData(opts: BuildSessionRenderOpts): SessionRenderData;
|
|
26
|
-
/**
|
|
27
|
-
* Build a SessionCard from CLI internal types (for project page session list).
|
|
28
|
-
* Pure function — no I/O, no side effects.
|
|
29
|
-
*/
|
|
30
|
-
export declare function buildSessionCard(opts: BuildSessionRenderOpts): SessionCard;
|
|
31
|
-
interface BuildProjectRenderOpts {
|
|
32
|
-
username: string;
|
|
33
|
-
slug: string;
|
|
34
|
-
title: string;
|
|
35
|
-
narrative: string;
|
|
36
|
-
repoUrl?: string;
|
|
37
|
-
projectUrl?: string;
|
|
38
|
-
screenshotUrl?: string;
|
|
39
|
-
timeline: Array<{
|
|
40
|
-
period: string;
|
|
41
|
-
label: string;
|
|
42
|
-
sessions: Array<Record<string, unknown>>;
|
|
43
|
-
}>;
|
|
44
|
-
skills: string[];
|
|
45
|
-
totalSessions: number;
|
|
46
|
-
totalLoc: number;
|
|
47
|
-
totalDurationMinutes: number;
|
|
48
|
-
totalAgentDurationMinutes?: number;
|
|
49
|
-
totalFilesChanged: number;
|
|
50
|
-
totalTokens?: number;
|
|
51
|
-
sessionCards: SessionCard[];
|
|
52
|
-
allSessionCards?: SessionCard[];
|
|
53
|
-
sessionBaseUrl?: string;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Build ProjectRenderData from CLI publish flow data.
|
|
57
|
-
* Pure function — no I/O, no side effects.
|
|
58
|
-
*/
|
|
59
|
-
export declare function buildProjectRenderData(opts: BuildProjectRenderOpts): ProjectRenderData;
|
|
60
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build-render-data.js","sourceRoot":"","sources":["../../src/render/build-render-data.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,gFAAgF;AAChF,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC;AAaxC;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAA4B;IACjE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAE5G,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,aAAa,IAAI,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACxF,MAAM,gBAAgB,GAAI,QAAmC,EAAE,SAAS,IAAI,EAAE,CAAC;IAC/E,MAAM,YAAY,GAAG,QAAQ,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IACtD,MAAM,aAAa,GAAG,QAAQ,EAAE,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;IAC/D,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEzG,OAAO;QACL,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE;QAC1C,WAAW;QACX,OAAO,EAAE;YACP,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,YAAY;YACnB,OAAO;YACP,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,EAAE;YAChC,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,CAAC;YAC7C,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;YACzB,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC;YAC/C,UAAU,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC;YACpC,MAAM,EAAE,aAAa;YACrB,SAAS,EAAE,gBAAgB;YAC3B,KAAK,EAAE,CAAC,QAAQ,EAAE,cAAc,IAAI,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9E,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC;gBACjC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACjC,IAAI,EAAG,CAA8B,CAAC,WAAW,IAAK,CAAuB,CAAC,IAAI,IAAI,EAAE;aACzF,CAAC,CAAC;YACH,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE;YACnD,UAAU,EAAE,EAAE;YACd,aAAa,EAAE,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3F,QAAQ,EAAE,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5D,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CACpE;YACD,UAAU,EAAE,iBAAiB;YAC7B,UAAU;YACV,QAAQ,EAAE,WAAW;YACrB,YAAY,EAAE,YAAY,IAAI,SAAS;SACxC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAA4B;IAC3D,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAErF,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,aAAa,IAAI,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACxF,MAAM,YAAY,GAAG,QAAQ,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IACtD,MAAM,aAAa,GAAG,QAAQ,EAAE,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;IAC/D,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEzG,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,YAAY;QACnB,OAAO;QACP,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,CAAC;QAC7C,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;QACzB,UAAU,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC;QACpC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC;QAC/C,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,iBAAiB;QAC7B,UAAU;QACV,YAAY,EAAE,YAAY,IAAI,SAAS;KACxC,CAAC;AACJ,CAAC;AAuBD;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAA4B;IACjE,OAAO;QACL,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE;QACzD,OAAO,EAAE;YACP,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;YACzD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/D;QACD,QAAQ,EAAE,IAAI,CAAC,YAAY;QAC3B,WAAW,EAAE,IAAI,CAAC,eAAe;QACjC,cAAc,EAAE,IAAI,CAAC,cAAc;KACpC,CAAC;AACJ,CAAC"}
|
package/dist/render/index.d.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Static HTML renderer for portfolio pages.
|
|
3
|
-
*
|
|
4
|
-
* Produces self-contained HTML fragments (no <html>, no <head>) using
|
|
5
|
-
* Liquid templates. The output is stored in the DB and served by Phoenix
|
|
6
|
-
* as pre-rendered content, or written to standalone HTML files for export.
|
|
7
|
-
*
|
|
8
|
-
* These functions run on the Node.js server, never in the browser.
|
|
9
|
-
*/
|
|
10
|
-
import type { ProjectRenderData, SessionRenderData } from './types.js';
|
|
11
|
-
export type { ProjectRenderData, SessionRenderData } from './types.js';
|
|
12
|
-
/** Errors from the render pipeline carry a machine-readable code. */
|
|
13
|
-
export declare class RenderError extends Error {
|
|
14
|
-
readonly code: string;
|
|
15
|
-
constructor(code: string, message: string, cause?: unknown);
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Render a project page to a static HTML fragment.
|
|
19
|
-
*
|
|
20
|
-
* @throws {RenderError} with code VALIDATION_ERROR if required fields are missing
|
|
21
|
-
* @throws {RenderError} with code RENDER_FAILED if Liquid rendering fails
|
|
22
|
-
*/
|
|
23
|
-
export declare function renderProjectHtml(data: ProjectRenderData, extras?: {
|
|
24
|
-
arc?: Array<{
|
|
25
|
-
phase: number;
|
|
26
|
-
title: string;
|
|
27
|
-
description: string;
|
|
28
|
-
}>;
|
|
29
|
-
fullSessions?: Array<Record<string, unknown>>;
|
|
30
|
-
}): string;
|
|
31
|
-
/**
|
|
32
|
-
* Render a session page to a static HTML fragment.
|
|
33
|
-
*
|
|
34
|
-
* @throws {RenderError} with code VALIDATION_ERROR if required fields are missing
|
|
35
|
-
* @throws {RenderError} with code RENDER_FAILED if Liquid rendering fails
|
|
36
|
-
*/
|
|
37
|
-
export declare function renderSessionHtml(data: SessionRenderData): string;
|
package/dist/render/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/render/index.tsx"],"names":[],"mappings":"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"}
|
package/dist/render/liquid.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Liquid template engine for static HTML rendering.
|
|
3
|
-
*
|
|
4
|
-
* Replaces React SSR (ReactDOMServer.renderToStaticMarkup) with
|
|
5
|
-
* liquidjs sync rendering. Templates live in ./templates/*.liquid.
|
|
6
|
-
*/
|
|
7
|
-
import type { ProjectRenderData, SessionRenderData } from './types.js';
|
|
8
|
-
interface RenderProjectExtras {
|
|
9
|
-
arc?: Array<{
|
|
10
|
-
phase: number;
|
|
11
|
-
title: string;
|
|
12
|
-
description: string;
|
|
13
|
-
}>;
|
|
14
|
-
/** Full session data for charts — uses Session type from analyzer, not SessionCard */
|
|
15
|
-
fullSessions?: Array<Record<string, unknown>>;
|
|
16
|
-
}
|
|
17
|
-
export declare function renderProject(data: ProjectRenderData, extras?: RenderProjectExtras): string;
|
|
18
|
-
export declare function renderSession(data: SessionRenderData): string;
|
|
19
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"liquid.js","sourceRoot":"","sources":["../../src/render/liquid.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
<div class="heyiam-project" data-render-version="2">
|
|
2
|
-
|
|
3
|
-
{%- comment -%} Title {%- endcomment -%}
|
|
4
|
-
<h1 class="project-title">{{ project.title }}</h1>
|
|
5
|
-
|
|
6
|
-
{%- comment -%} Project links {%- endcomment -%}
|
|
7
|
-
{% if project.repoUrl or project.projectUrl %}
|
|
8
|
-
<div class="project-links">
|
|
9
|
-
{% if project.repoUrl %}
|
|
10
|
-
<a href="{{ project.repoUrl }}" target="_blank" rel="noopener noreferrer" class="project-link">
|
|
11
|
-
<svg class="project-link__icon" viewBox="0 0 16 16" fill="currentColor"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg>
|
|
12
|
-
{{ project.repoUrl | stripProtocol }}
|
|
13
|
-
</a>
|
|
14
|
-
{% endif %}
|
|
15
|
-
{% if project.projectUrl %}
|
|
16
|
-
<a href="{{ project.projectUrl }}" target="_blank" rel="noopener noreferrer" class="project-link">
|
|
17
|
-
<svg class="project-link__icon" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M6.5 10.5l3-3m-1.5-2a2.5 2.5 0 013.54 3.54l-1.5 1.5m-4.08-1.08a2.5 2.5 0 01-3.54-3.54l1.5-1.5"/></svg>
|
|
18
|
-
{{ project.projectUrl | stripProtocol }}
|
|
19
|
-
</a>
|
|
20
|
-
{% endif %}
|
|
21
|
-
</div>
|
|
22
|
-
{% endif %}
|
|
23
|
-
|
|
24
|
-
{%- comment -%} Screenshot with browser chrome {%- endcomment -%}
|
|
25
|
-
{% if project.screenshotUrl %}
|
|
26
|
-
<div class="browser-chrome">
|
|
27
|
-
<div class="browser-chrome__bar">
|
|
28
|
-
<span class="browser-chrome__dot browser-chrome__dot--red"></span>
|
|
29
|
-
<span class="browser-chrome__dot browser-chrome__dot--yellow"></span>
|
|
30
|
-
<span class="browser-chrome__dot browser-chrome__dot--green"></span>
|
|
31
|
-
</div>
|
|
32
|
-
<div class="browser-chrome__viewport">
|
|
33
|
-
<img src="{{ project.screenshotUrl }}" alt="Screenshot of {{ project.title }}" class="browser-chrome__img" loading="lazy" />
|
|
34
|
-
</div>
|
|
35
|
-
</div>
|
|
36
|
-
{% endif %}
|
|
37
|
-
|
|
38
|
-
{%- comment -%} Narrative {%- endcomment -%}
|
|
39
|
-
{% if project.narrative != blank %}
|
|
40
|
-
<div class="card">
|
|
41
|
-
<div class="section-header">
|
|
42
|
-
<h3 class="section-header__title">Narrative summary</h3>
|
|
43
|
-
</div>
|
|
44
|
-
<p class="narrative-text">{{ project.narrative }}</p>
|
|
45
|
-
</div>
|
|
46
|
-
{% endif %}
|
|
47
|
-
|
|
48
|
-
{%- comment -%} Stats: hero time card + compact grid {%- endcomment -%}
|
|
49
|
-
<div class="stat-hero-layout">
|
|
50
|
-
<div class="stat-card stat-card--hero">
|
|
51
|
-
<div class="stat-card__label">{{ durationLabel }}</div>
|
|
52
|
-
<div class="stat-card__value">
|
|
53
|
-
{% if project.totalAgentDurationMinutes %}
|
|
54
|
-
{{ project.totalDurationMinutes | formatDuration }} / {{ project.totalAgentDurationMinutes | formatDuration }}
|
|
55
|
-
{% else %}
|
|
56
|
-
{{ project.totalDurationMinutes | formatDuration }}
|
|
57
|
-
{% endif %}
|
|
58
|
-
</div>
|
|
59
|
-
{% if efficiencyMultiplier %}
|
|
60
|
-
<div class="stat-card__sub">
|
|
61
|
-
<div class="stat-card__label">Efficiency multiplier</div>
|
|
62
|
-
<div class="stat-card__value stat-card__value--sm">{{ efficiencyMultiplier }}</div>
|
|
63
|
-
</div>
|
|
64
|
-
{% endif %}
|
|
65
|
-
</div>
|
|
66
|
-
<div class="stat-grid--compact">
|
|
67
|
-
<div class="stat-card">
|
|
68
|
-
<div class="stat-card__label">Sessions</div>
|
|
69
|
-
<div class="stat-card__value">{{ project.totalSessions }}</div>
|
|
70
|
-
</div>
|
|
71
|
-
<div class="stat-card">
|
|
72
|
-
<div class="stat-card__label">Lines changed</div>
|
|
73
|
-
<div class="stat-card__value">{{ project.totalLoc | formatLoc }}</div>
|
|
74
|
-
</div>
|
|
75
|
-
<div class="stat-card">
|
|
76
|
-
<div class="stat-card__label">Files</div>
|
|
77
|
-
<div class="stat-card__value">{{ project.totalFilesChanged }}</div>
|
|
78
|
-
</div>
|
|
79
|
-
{% if project.totalTokens %}
|
|
80
|
-
<div class="stat-card">
|
|
81
|
-
<div class="stat-card__label">Tokens</div>
|
|
82
|
-
<div class="stat-card__value">{{ project.totalTokens | formatTokens }}</div>
|
|
83
|
-
</div>
|
|
84
|
-
{% endif %}
|
|
85
|
-
</div>
|
|
86
|
-
</div>
|
|
87
|
-
|
|
88
|
-
{%- comment -%} Work Timeline mount point {%- endcomment -%}
|
|
89
|
-
<div class="card">
|
|
90
|
-
<div class="section-header">
|
|
91
|
-
<h3 class="section-header__title">Work timeline</h3>
|
|
92
|
-
<span class="section-header__meta">sessions over time</span>
|
|
93
|
-
</div>
|
|
94
|
-
<div data-work-timeline data-sessions='{{ sessionsJson | raw }}'></div>
|
|
95
|
-
</div>
|
|
96
|
-
|
|
97
|
-
{%- comment -%} Growth Chart mount point {%- endcomment -%}
|
|
98
|
-
<div class="card">
|
|
99
|
-
<div class="section-header">
|
|
100
|
-
<h3 class="section-header__title">Project growth</h3>
|
|
101
|
-
<span class="section-header__meta">cumulative LOC</span>
|
|
102
|
-
</div>
|
|
103
|
-
<div data-growth-chart data-total-loc="{{ project.totalLoc }}" data-total-files="{{ project.totalFilesChanged }}" data-sessions='{{ growthJson | raw }}'></div>
|
|
104
|
-
</div>
|
|
105
|
-
|
|
106
|
-
{%- comment -%} Key decisions + Source breakdown {%- endcomment -%}
|
|
107
|
-
<div class="two-col">
|
|
108
|
-
<div class="card">
|
|
109
|
-
<div class="section-header">
|
|
110
|
-
<h3 class="section-header__title">Key decisions</h3>
|
|
111
|
-
<span class="section-header__meta">signal</span>
|
|
112
|
-
</div>
|
|
113
|
-
{% if arc.size > 0 %}
|
|
114
|
-
<div class="note-stack">
|
|
115
|
-
{% for phase in arc limit: 3 %}
|
|
116
|
-
<div class="note">
|
|
117
|
-
<div class="note__title">{{ phase.title }}</div>
|
|
118
|
-
<div class="note__body">{{ phase.description }}</div>
|
|
119
|
-
</div>
|
|
120
|
-
{% endfor %}
|
|
121
|
-
</div>
|
|
122
|
-
{% else %}
|
|
123
|
-
<div class="note">
|
|
124
|
-
<div class="note__body">Enhance this project to extract key decisions.</div>
|
|
125
|
-
</div>
|
|
126
|
-
{% endif %}
|
|
127
|
-
</div>
|
|
128
|
-
<div class="card">
|
|
129
|
-
<div class="section-header">
|
|
130
|
-
<h3 class="section-header__title">Source breakdown</h3>
|
|
131
|
-
<span class="section-header__meta">provenance</span>
|
|
132
|
-
</div>
|
|
133
|
-
<table class="source-table">
|
|
134
|
-
<thead>
|
|
135
|
-
<tr>
|
|
136
|
-
<th class="source-table__th">Source</th>
|
|
137
|
-
<th class="source-table__th">Count</th>
|
|
138
|
-
</tr>
|
|
139
|
-
</thead>
|
|
140
|
-
<tbody>
|
|
141
|
-
{% for src in sourceCounts %}
|
|
142
|
-
<tr>
|
|
143
|
-
<td class="source-table__td">{{ src.tool }}</td>
|
|
144
|
-
<td class="source-table__td">{{ src.count }}</td>
|
|
145
|
-
</tr>
|
|
146
|
-
{% endfor %}
|
|
147
|
-
</tbody>
|
|
148
|
-
</table>
|
|
149
|
-
</div>
|
|
150
|
-
</div>
|
|
151
|
-
|
|
152
|
-
{%- comment -%} Project phases {%- endcomment -%}
|
|
153
|
-
{% if arc.size > 0 %}
|
|
154
|
-
<div class="card">
|
|
155
|
-
<div class="section-header">
|
|
156
|
-
<h3 class="section-header__title">Project phases</h3>
|
|
157
|
-
<span class="section-header__meta">timeline</span>
|
|
158
|
-
</div>
|
|
159
|
-
<div class="phase-timeline">
|
|
160
|
-
<div class="phase-timeline__line"></div>
|
|
161
|
-
{% for phase in arc %}
|
|
162
|
-
<div class="phase-timeline__item">
|
|
163
|
-
<div class="phase-timeline__dot"></div>
|
|
164
|
-
<div class="phase-timeline__label">{{ phase.title }}</div>
|
|
165
|
-
<div class="note">
|
|
166
|
-
<div class="note__body">{{ phase.description }}</div>
|
|
167
|
-
</div>
|
|
168
|
-
</div>
|
|
169
|
-
{% endfor %}
|
|
170
|
-
</div>
|
|
171
|
-
</div>
|
|
172
|
-
{% endif %}
|
|
173
|
-
|
|
174
|
-
{%- comment -%} Skills {%- endcomment -%}
|
|
175
|
-
{% if project.skills.size > 0 %}
|
|
176
|
-
<div class="card">
|
|
177
|
-
<div class="section-header">
|
|
178
|
-
<h3 class="section-header__title">Skills</h3>
|
|
179
|
-
</div>
|
|
180
|
-
<div class="chip-list">
|
|
181
|
-
{% for skill in project.skills %}
|
|
182
|
-
<span class="chip chip--violet">{{ skill }}</span>
|
|
183
|
-
{% endfor %}
|
|
184
|
-
</div>
|
|
185
|
-
</div>
|
|
186
|
-
{% endif %}
|
|
187
|
-
|
|
188
|
-
{%- comment -%} Featured session cards {%- endcomment -%}
|
|
189
|
-
{% if featuredSessions.size > 0 %}
|
|
190
|
-
<div class="card">
|
|
191
|
-
<div class="section-header">
|
|
192
|
-
<h3 class="section-header__title">Featured sessions</h3>
|
|
193
|
-
<span class="section-header__meta">{{ sessions.size }} total</span>
|
|
194
|
-
</div>
|
|
195
|
-
<div class="session-grid">
|
|
196
|
-
{% for session in featuredSessions %}
|
|
197
|
-
{% if sessionBaseUrl %}
|
|
198
|
-
<a href="{{ sessionBaseUrl }}/{{ session.slug | default: session.token }}.html" class="session-card-link">
|
|
199
|
-
{% endif %}
|
|
200
|
-
<div class="session-card" data-session-id="{{ session.token }}">
|
|
201
|
-
<div class="session-card__bar session-card__bar--{{ forloop.index0 | durationColor }}"></div>
|
|
202
|
-
<h4 class="session-card__title">{{ session.title }}</h4>
|
|
203
|
-
<span class="session-card__meta">
|
|
204
|
-
{{ session.durationMinutes | formatDuration }} · {{ session.turns }} turns · {{ session.locChanged | formatLoc }} lines
|
|
205
|
-
</span>
|
|
206
|
-
{% if session.skills.size > 0 %}
|
|
207
|
-
<div class="session-card__skills">
|
|
208
|
-
<span class="chip chip--violet">{{ session.skills[0] }}</span>
|
|
209
|
-
</div>
|
|
210
|
-
{% endif %}
|
|
211
|
-
</div>
|
|
212
|
-
{% if sessionBaseUrl %}
|
|
213
|
-
</a>
|
|
214
|
-
{% endif %}
|
|
215
|
-
{% endfor %}
|
|
216
|
-
</div>
|
|
217
|
-
</div>
|
|
218
|
-
{% endif %}
|
|
219
|
-
|
|
220
|
-
{%- comment -%} Footer {%- endcomment -%}
|
|
221
|
-
<div class="export-footer">
|
|
222
|
-
<span class="export-footer__text">exported from heyi.am</span>
|
|
223
|
-
</div>
|
|
224
|
-
|
|
225
|
-
</div>
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
<div class="heyiam-session" data-render-version="2" data-template="{{ session.template }}">
|
|
2
|
-
|
|
3
|
-
<div class="session-layout">
|
|
4
|
-
|
|
5
|
-
{%- comment -%} Sidebar {%- endcomment -%}
|
|
6
|
-
<aside class="session-sidebar">
|
|
7
|
-
{% if session.toolBreakdown.size > 0 %}
|
|
8
|
-
<div class="sidebar-section">
|
|
9
|
-
<h3 class="sidebar-section__heading">Tool Usage</h3>
|
|
10
|
-
<ul class="tool-list">
|
|
11
|
-
{% for t in session.toolBreakdown %}
|
|
12
|
-
<li class="tool-list__item">
|
|
13
|
-
<span class="tool-list__name">{{ t.tool }}</span>
|
|
14
|
-
<span class="tool-list__count">{{ t.count }}</span>
|
|
15
|
-
</li>
|
|
16
|
-
{% endfor %}
|
|
17
|
-
</ul>
|
|
18
|
-
</div>
|
|
19
|
-
{% endif %}
|
|
20
|
-
|
|
21
|
-
{% if session.topFiles.size > 0 %}
|
|
22
|
-
<div class="sidebar-section">
|
|
23
|
-
<h3 class="sidebar-section__heading">Top Files</h3>
|
|
24
|
-
<ul class="file-list">
|
|
25
|
-
{% for f in session.topFiles %}
|
|
26
|
-
<li class="file-list__item">
|
|
27
|
-
<span class="file-list__path">{{ f.path }}</span>
|
|
28
|
-
<span class="file-list__adds">+{{ f.additions }}</span>
|
|
29
|
-
<span class="file-list__dels">-{{ f.deletions }}</span>
|
|
30
|
-
</li>
|
|
31
|
-
{% endfor %}
|
|
32
|
-
</ul>
|
|
33
|
-
</div>
|
|
34
|
-
{% endif %}
|
|
35
|
-
</aside>
|
|
36
|
-
|
|
37
|
-
{%- comment -%} Main content {%- endcomment -%}
|
|
38
|
-
<main class="session-main">
|
|
39
|
-
|
|
40
|
-
{%- comment -%} Breadcrumb {%- endcomment -%}
|
|
41
|
-
<nav class="breadcrumb">
|
|
42
|
-
<a href="/@{{ user.username }}">{{ user.username }}</a>
|
|
43
|
-
{% if projectSlug %}
|
|
44
|
-
<span class="breadcrumb__sep" aria-hidden="true">/</span>
|
|
45
|
-
<a href="/@{{ user.username }}/p/{{ projectSlug }}">{{ projectSlug }}</a>
|
|
46
|
-
{% endif %}
|
|
47
|
-
<span class="breadcrumb__sep" aria-hidden="true">/</span>
|
|
48
|
-
<span>{{ session.title }}</span>
|
|
49
|
-
</nav>
|
|
50
|
-
|
|
51
|
-
{%- comment -%} Header {%- endcomment -%}
|
|
52
|
-
<header class="session-header">
|
|
53
|
-
<h1 class="session-header__title">{{ session.title }}</h1>
|
|
54
|
-
|
|
55
|
-
<div class="session-header__meta">
|
|
56
|
-
<time class="session-header__date" datetime="{{ session.recordedAt }}">
|
|
57
|
-
{{ session.recordedAt | formatDate }}
|
|
58
|
-
</time>
|
|
59
|
-
<span class="session-header__source">{{ session.sourceTool }}</span>
|
|
60
|
-
</div>
|
|
61
|
-
|
|
62
|
-
{% if session.devTake != blank %}
|
|
63
|
-
<blockquote class="session-header__devtake">
|
|
64
|
-
<p>{{ session.devTake }}</p>
|
|
65
|
-
</blockquote>
|
|
66
|
-
{% endif %}
|
|
67
|
-
|
|
68
|
-
{% if session.context != blank %}
|
|
69
|
-
<p class="session-header__context">{{ session.context }}</p>
|
|
70
|
-
{% endif %}
|
|
71
|
-
|
|
72
|
-
<div class="stat-grid stat-grid--4">
|
|
73
|
-
<span class="stat">
|
|
74
|
-
<span class="stat__value">{{ session.durationMinutes | formatDuration }}</span>
|
|
75
|
-
<span class="stat__label">active</span>
|
|
76
|
-
</span>
|
|
77
|
-
<span class="stat">
|
|
78
|
-
<span class="stat__value">{{ session.turns }}</span>
|
|
79
|
-
<span class="stat__label">turns</span>
|
|
80
|
-
</span>
|
|
81
|
-
<span class="stat">
|
|
82
|
-
<span class="stat__value">{{ session.locChanged | localeNumber }}</span>
|
|
83
|
-
<span class="stat__label">lines changed</span>
|
|
84
|
-
</span>
|
|
85
|
-
<span class="stat">
|
|
86
|
-
<span class="stat__value">{{ session.filesChanged }}</span>
|
|
87
|
-
<span class="stat__label">files</span>
|
|
88
|
-
</span>
|
|
89
|
-
</div>
|
|
90
|
-
</header>
|
|
91
|
-
|
|
92
|
-
{%- comment -%} Skills {%- endcomment -%}
|
|
93
|
-
{% if session.skills.size > 0 %}
|
|
94
|
-
<section class="content-section">
|
|
95
|
-
<div class="chip-list">
|
|
96
|
-
{% for skill in session.skills %}
|
|
97
|
-
<span class="chip chip--violet">{{ skill }}</span>
|
|
98
|
-
{% endfor %}
|
|
99
|
-
</div>
|
|
100
|
-
</section>
|
|
101
|
-
{% endif %}
|
|
102
|
-
|
|
103
|
-
{%- comment -%} Narrative {%- endcomment -%}
|
|
104
|
-
{% if session.narrative != blank %}
|
|
105
|
-
<section class="content-section">
|
|
106
|
-
<h2 class="content-section__heading">Narrative</h2>
|
|
107
|
-
<p>{{ session.narrative }}</p>
|
|
108
|
-
</section>
|
|
109
|
-
{% endif %}
|
|
110
|
-
|
|
111
|
-
{%- comment -%} Highlights {%- endcomment -%}
|
|
112
|
-
{% if session.highlights.size > 0 %}
|
|
113
|
-
<section class="content-section">
|
|
114
|
-
<h2 class="content-section__heading">Highlights</h2>
|
|
115
|
-
<ul class="highlights-list">
|
|
116
|
-
{% for h in session.highlights %}
|
|
117
|
-
<li>{{ h }}</li>
|
|
118
|
-
{% endfor %}
|
|
119
|
-
</ul>
|
|
120
|
-
</section>
|
|
121
|
-
{% endif %}
|
|
122
|
-
|
|
123
|
-
{%- comment -%} Execution Path {%- endcomment -%}
|
|
124
|
-
{% if session.beats.size > 0 %}
|
|
125
|
-
<section class="content-section">
|
|
126
|
-
<h2 class="content-section__heading">Execution Path</h2>
|
|
127
|
-
<ol class="beats-list">
|
|
128
|
-
{% for beat in session.beats %}
|
|
129
|
-
<li class="beat">
|
|
130
|
-
<span class="beat__number">{{ beat.stepNumber }}</span>
|
|
131
|
-
<div class="beat__content">
|
|
132
|
-
<strong class="beat__title">{{ beat.title }}</strong>
|
|
133
|
-
<p class="beat__body">{{ beat.body }}</p>
|
|
134
|
-
</div>
|
|
135
|
-
</li>
|
|
136
|
-
{% endfor %}
|
|
137
|
-
</ol>
|
|
138
|
-
</section>
|
|
139
|
-
{% endif %}
|
|
140
|
-
|
|
141
|
-
{%- comment -%} Q&A {%- endcomment -%}
|
|
142
|
-
{% if session.qaPairs.size > 0 %}
|
|
143
|
-
<section class="content-section">
|
|
144
|
-
<h2 class="content-section__heading">Q&A</h2>
|
|
145
|
-
<div class="qa-list">
|
|
146
|
-
{% for qa in session.qaPairs %}
|
|
147
|
-
<div class="qa-pair">
|
|
148
|
-
<p class="qa-pair__question">{{ qa.question }}</p>
|
|
149
|
-
<p class="qa-pair__answer">{{ qa.answer }}</p>
|
|
150
|
-
</div>
|
|
151
|
-
{% endfor %}
|
|
152
|
-
</div>
|
|
153
|
-
</section>
|
|
154
|
-
{% endif %}
|
|
155
|
-
|
|
156
|
-
</main>
|
|
157
|
-
</div>
|
|
158
|
-
</div>
|