sessionlog 0.0.1
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/LICENSE +21 -0
- package/README.md +388 -0
- package/dist/agent/agents/claude-code.d.ts +76 -0
- package/dist/agent/agents/claude-code.d.ts.map +1 -0
- package/dist/agent/agents/claude-code.js +769 -0
- package/dist/agent/agents/claude-code.js.map +1 -0
- package/dist/agent/agents/cursor.d.ts +35 -0
- package/dist/agent/agents/cursor.d.ts.map +1 -0
- package/dist/agent/agents/cursor.js +294 -0
- package/dist/agent/agents/cursor.js.map +1 -0
- package/dist/agent/agents/gemini-cli.d.ts +62 -0
- package/dist/agent/agents/gemini-cli.d.ts.map +1 -0
- package/dist/agent/agents/gemini-cli.js +474 -0
- package/dist/agent/agents/gemini-cli.js.map +1 -0
- package/dist/agent/agents/opencode.d.ts +100 -0
- package/dist/agent/agents/opencode.d.ts.map +1 -0
- package/dist/agent/agents/opencode.js +423 -0
- package/dist/agent/agents/opencode.js.map +1 -0
- package/dist/agent/registry.d.ts +54 -0
- package/dist/agent/registry.d.ts.map +1 -0
- package/dist/agent/registry.js +123 -0
- package/dist/agent/registry.js.map +1 -0
- package/dist/agent/session-types.d.ts +45 -0
- package/dist/agent/session-types.d.ts.map +1 -0
- package/dist/agent/session-types.js +48 -0
- package/dist/agent/session-types.js.map +1 -0
- package/dist/agent/types.d.ts +126 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +40 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/cli.d.ts +12 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +425 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/clean.d.ts +30 -0
- package/dist/commands/clean.d.ts.map +1 -0
- package/dist/commands/clean.js +98 -0
- package/dist/commands/clean.js.map +1 -0
- package/dist/commands/disable.d.ts +23 -0
- package/dist/commands/disable.d.ts.map +1 -0
- package/dist/commands/disable.js +57 -0
- package/dist/commands/disable.js.map +1 -0
- package/dist/commands/doctor.d.ts +43 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +97 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/enable.d.ts +37 -0
- package/dist/commands/enable.d.ts.map +1 -0
- package/dist/commands/enable.js +133 -0
- package/dist/commands/enable.js.map +1 -0
- package/dist/commands/explain.d.ts +68 -0
- package/dist/commands/explain.d.ts.map +1 -0
- package/dist/commands/explain.js +182 -0
- package/dist/commands/explain.js.map +1 -0
- package/dist/commands/reset.d.ts +23 -0
- package/dist/commands/reset.d.ts.map +1 -0
- package/dist/commands/reset.js +68 -0
- package/dist/commands/reset.js.map +1 -0
- package/dist/commands/resume.d.ts +42 -0
- package/dist/commands/resume.d.ts.map +1 -0
- package/dist/commands/resume.js +133 -0
- package/dist/commands/resume.js.map +1 -0
- package/dist/commands/rewind.d.ts +34 -0
- package/dist/commands/rewind.d.ts.map +1 -0
- package/dist/commands/rewind.js +155 -0
- package/dist/commands/rewind.js.map +1 -0
- package/dist/commands/status.d.ts +51 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +112 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/config.d.ts +40 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +127 -0
- package/dist/config.js.map +1 -0
- package/dist/git-operations.d.ts +191 -0
- package/dist/git-operations.d.ts.map +1 -0
- package/dist/git-operations.js +462 -0
- package/dist/git-operations.js.map +1 -0
- package/dist/hooks/git-hooks.d.ts +22 -0
- package/dist/hooks/git-hooks.d.ts.map +1 -0
- package/dist/hooks/git-hooks.js +139 -0
- package/dist/hooks/git-hooks.js.map +1 -0
- package/dist/hooks/lifecycle.d.ts +21 -0
- package/dist/hooks/lifecycle.d.ts.map +1 -0
- package/dist/hooks/lifecycle.js +179 -0
- package/dist/hooks/lifecycle.js.map +1 -0
- package/dist/index.d.ts +76 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +166 -0
- package/dist/index.js.map +1 -0
- package/dist/security/redaction.d.ts +35 -0
- package/dist/security/redaction.d.ts.map +1 -0
- package/dist/security/redaction.js +239 -0
- package/dist/security/redaction.js.map +1 -0
- package/dist/session/state-machine.d.ts +90 -0
- package/dist/session/state-machine.d.ts.map +1 -0
- package/dist/session/state-machine.js +345 -0
- package/dist/session/state-machine.js.map +1 -0
- package/dist/store/checkpoint-store.d.ts +59 -0
- package/dist/store/checkpoint-store.d.ts.map +1 -0
- package/dist/store/checkpoint-store.js +321 -0
- package/dist/store/checkpoint-store.js.map +1 -0
- package/dist/store/native-store.d.ts +14 -0
- package/dist/store/native-store.d.ts.map +1 -0
- package/dist/store/native-store.js +159 -0
- package/dist/store/native-store.js.map +1 -0
- package/dist/store/provider-types.d.ts +78 -0
- package/dist/store/provider-types.d.ts.map +1 -0
- package/dist/store/provider-types.js +12 -0
- package/dist/store/provider-types.js.map +1 -0
- package/dist/store/session-store.d.ts +36 -0
- package/dist/store/session-store.d.ts.map +1 -0
- package/dist/store/session-store.js +193 -0
- package/dist/store/session-store.js.map +1 -0
- package/dist/strategy/attribution.d.ts +39 -0
- package/dist/strategy/attribution.d.ts.map +1 -0
- package/dist/strategy/attribution.js +225 -0
- package/dist/strategy/attribution.js.map +1 -0
- package/dist/strategy/common.d.ts +57 -0
- package/dist/strategy/common.d.ts.map +1 -0
- package/dist/strategy/common.js +156 -0
- package/dist/strategy/common.js.map +1 -0
- package/dist/strategy/content-overlap.d.ts +33 -0
- package/dist/strategy/content-overlap.d.ts.map +1 -0
- package/dist/strategy/content-overlap.js +176 -0
- package/dist/strategy/content-overlap.js.map +1 -0
- package/dist/strategy/manual-commit.d.ts +36 -0
- package/dist/strategy/manual-commit.d.ts.map +1 -0
- package/dist/strategy/manual-commit.js +717 -0
- package/dist/strategy/manual-commit.js.map +1 -0
- package/dist/strategy/types.d.ts +163 -0
- package/dist/strategy/types.d.ts.map +1 -0
- package/dist/strategy/types.js +48 -0
- package/dist/strategy/types.js.map +1 -0
- package/dist/summarize/claude-generator.d.ts +25 -0
- package/dist/summarize/claude-generator.d.ts.map +1 -0
- package/dist/summarize/claude-generator.js +87 -0
- package/dist/summarize/claude-generator.js.map +1 -0
- package/dist/summarize/summarize.d.ts +52 -0
- package/dist/summarize/summarize.d.ts.map +1 -0
- package/dist/summarize/summarize.js +335 -0
- package/dist/summarize/summarize.js.map +1 -0
- package/dist/types.d.ts +293 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +94 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/chunk-files.d.ts +25 -0
- package/dist/utils/chunk-files.d.ts.map +1 -0
- package/dist/utils/chunk-files.js +47 -0
- package/dist/utils/chunk-files.js.map +1 -0
- package/dist/utils/commit-message.d.ts +11 -0
- package/dist/utils/commit-message.d.ts.map +1 -0
- package/dist/utils/commit-message.js +54 -0
- package/dist/utils/commit-message.js.map +1 -0
- package/dist/utils/detect-agent.d.ts +19 -0
- package/dist/utils/detect-agent.d.ts.map +1 -0
- package/dist/utils/detect-agent.js +34 -0
- package/dist/utils/detect-agent.js.map +1 -0
- package/dist/utils/hook-managers.d.ts +24 -0
- package/dist/utils/hook-managers.d.ts.map +1 -0
- package/dist/utils/hook-managers.js +96 -0
- package/dist/utils/hook-managers.js.map +1 -0
- package/dist/utils/ide-tags.d.ts +12 -0
- package/dist/utils/ide-tags.d.ts.map +1 -0
- package/dist/utils/ide-tags.js +30 -0
- package/dist/utils/ide-tags.js.map +1 -0
- package/dist/utils/paths.d.ts +32 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +55 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/preview-rewind.d.ts +23 -0
- package/dist/utils/preview-rewind.d.ts.map +1 -0
- package/dist/utils/preview-rewind.js +63 -0
- package/dist/utils/preview-rewind.js.map +1 -0
- package/dist/utils/rewind-conflict.d.ts +52 -0
- package/dist/utils/rewind-conflict.d.ts.map +1 -0
- package/dist/utils/rewind-conflict.js +79 -0
- package/dist/utils/rewind-conflict.js.map +1 -0
- package/dist/utils/shadow-branch.d.ts +44 -0
- package/dist/utils/shadow-branch.d.ts.map +1 -0
- package/dist/utils/shadow-branch.js +93 -0
- package/dist/utils/shadow-branch.js.map +1 -0
- package/dist/utils/string-utils.d.ts +24 -0
- package/dist/utils/string-utils.d.ts.map +1 -0
- package/dist/utils/string-utils.js +47 -0
- package/dist/utils/string-utils.js.map +1 -0
- package/dist/utils/todo-extract.d.ts +52 -0
- package/dist/utils/todo-extract.d.ts.map +1 -0
- package/dist/utils/todo-extract.js +167 -0
- package/dist/utils/todo-extract.js.map +1 -0
- package/dist/utils/trailers.d.ts +36 -0
- package/dist/utils/trailers.d.ts.map +1 -0
- package/dist/utils/trailers.js +148 -0
- package/dist/utils/trailers.js.map +1 -0
- package/dist/utils/transcript-parse.d.ts +57 -0
- package/dist/utils/transcript-parse.d.ts.map +1 -0
- package/dist/utils/transcript-parse.js +126 -0
- package/dist/utils/transcript-parse.js.map +1 -0
- package/dist/utils/transcript-timestamp.d.ts +22 -0
- package/dist/utils/transcript-timestamp.d.ts.map +1 -0
- package/dist/utils/transcript-timestamp.js +56 -0
- package/dist/utils/transcript-timestamp.js.map +1 -0
- package/dist/utils/tree-ops.d.ts +47 -0
- package/dist/utils/tree-ops.d.ts.map +1 -0
- package/dist/utils/tree-ops.js +145 -0
- package/dist/utils/tree-ops.js.map +1 -0
- package/dist/utils/tty.d.ts +25 -0
- package/dist/utils/tty.d.ts.map +1 -0
- package/dist/utils/tty.js +70 -0
- package/dist/utils/tty.js.map +1 -0
- package/dist/utils/validation.d.ts +31 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +59 -0
- package/dist/utils/validation.js.map +1 -0
- package/dist/utils/worktree.d.ts +16 -0
- package/dist/utils/worktree.d.ts.map +1 -0
- package/dist/utils/worktree.js +50 -0
- package/dist/utils/worktree.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git Hooks
|
|
3
|
+
*
|
|
4
|
+
* Installation and management of git hooks (prepare-commit-msg,
|
|
5
|
+
* commit-msg, post-commit, pre-push) that integrate Entire into the git workflow.
|
|
6
|
+
*/
|
|
7
|
+
declare const HOOK_NAMES: readonly ["prepare-commit-msg", "commit-msg", "post-commit", "pre-push"];
|
|
8
|
+
export type GitHookName = (typeof HOOK_NAMES)[number];
|
|
9
|
+
/**
|
|
10
|
+
* Install git hooks for Entire into a repository
|
|
11
|
+
*/
|
|
12
|
+
export declare function installGitHooks(repoPath: string, entireExecutable?: string): Promise<number>;
|
|
13
|
+
/**
|
|
14
|
+
* Uninstall git hooks for Entire from a repository
|
|
15
|
+
*/
|
|
16
|
+
export declare function uninstallGitHooks(repoPath: string): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Check if git hooks are installed
|
|
19
|
+
*/
|
|
20
|
+
export declare function areGitHooksInstalled(repoPath: string): Promise<boolean>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=git-hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-hooks.d.ts","sourceRoot":"","sources":["../../src/hooks/git-hooks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,QAAA,MAAM,UAAU,0EAA2E,CAAC;AAE5F,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAMtD;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,SAAW,GAC1B,OAAO,CAAC,MAAM,CAAC,CAyCjB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCvE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAe7E"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git Hooks
|
|
3
|
+
*
|
|
4
|
+
* Installation and management of git hooks (prepare-commit-msg,
|
|
5
|
+
* commit-msg, post-commit, pre-push) that integrate Entire into the git workflow.
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from 'node:fs';
|
|
8
|
+
import * as path from 'node:path';
|
|
9
|
+
import { getGitDir } from '../git-operations.js';
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Constants
|
|
12
|
+
// ============================================================================
|
|
13
|
+
const HOOK_MARKER = '# Entire CLI hook';
|
|
14
|
+
const HOOK_NAMES = ['prepare-commit-msg', 'commit-msg', 'post-commit', 'pre-push'];
|
|
15
|
+
// ============================================================================
|
|
16
|
+
// Git Hook Installation
|
|
17
|
+
// ============================================================================
|
|
18
|
+
/**
|
|
19
|
+
* Install git hooks for Entire into a repository
|
|
20
|
+
*/
|
|
21
|
+
export async function installGitHooks(repoPath, entireExecutable = 'entire') {
|
|
22
|
+
const gitDir = await getGitDir(repoPath);
|
|
23
|
+
const hooksDir = path.resolve(repoPath, gitDir, 'hooks');
|
|
24
|
+
await fs.promises.mkdir(hooksDir, { recursive: true });
|
|
25
|
+
let installed = 0;
|
|
26
|
+
for (const hookName of HOOK_NAMES) {
|
|
27
|
+
const hookPath = path.join(hooksDir, hookName);
|
|
28
|
+
const hookScript = generateHookScript(hookName, entireExecutable);
|
|
29
|
+
// Read existing content if any
|
|
30
|
+
let existingContent = '';
|
|
31
|
+
try {
|
|
32
|
+
existingContent = await fs.promises.readFile(hookPath, 'utf-8');
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
// File doesn't exist
|
|
36
|
+
}
|
|
37
|
+
// Check if Entire hook already installed
|
|
38
|
+
if (existingContent.includes(HOOK_MARKER)) {
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
// Append or create
|
|
42
|
+
if (existingContent) {
|
|
43
|
+
// Append to existing hook
|
|
44
|
+
const newContent = existingContent.trimEnd() + '\n\n' + hookScript + '\n';
|
|
45
|
+
await fs.promises.writeFile(hookPath, newContent);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
// Create new hook
|
|
49
|
+
await fs.promises.writeFile(hookPath, '#!/bin/sh\n\n' + hookScript + '\n');
|
|
50
|
+
}
|
|
51
|
+
// Make executable
|
|
52
|
+
await fs.promises.chmod(hookPath, 0o755);
|
|
53
|
+
installed++;
|
|
54
|
+
}
|
|
55
|
+
return installed;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Uninstall git hooks for Entire from a repository
|
|
59
|
+
*/
|
|
60
|
+
export async function uninstallGitHooks(repoPath) {
|
|
61
|
+
const gitDir = await getGitDir(repoPath);
|
|
62
|
+
const hooksDir = path.resolve(repoPath, gitDir, 'hooks');
|
|
63
|
+
for (const hookName of HOOK_NAMES) {
|
|
64
|
+
const hookPath = path.join(hooksDir, hookName);
|
|
65
|
+
try {
|
|
66
|
+
const content = await fs.promises.readFile(hookPath, 'utf-8');
|
|
67
|
+
// Remove Entire section
|
|
68
|
+
const lines = content.split('\n');
|
|
69
|
+
const filtered = [];
|
|
70
|
+
let inEntireSection = false;
|
|
71
|
+
for (const line of lines) {
|
|
72
|
+
if (line.includes(HOOK_MARKER)) {
|
|
73
|
+
inEntireSection = true;
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
if (inEntireSection && line.trim() === '') {
|
|
77
|
+
inEntireSection = false;
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
if (!inEntireSection) {
|
|
81
|
+
filtered.push(line);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const newContent = filtered.join('\n').trim();
|
|
85
|
+
if (newContent === '#!/bin/sh' || newContent === '') {
|
|
86
|
+
// Hook is now empty, remove it
|
|
87
|
+
await fs.promises.unlink(hookPath);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
await fs.promises.writeFile(hookPath, newContent + '\n');
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
// Hook doesn't exist
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Check if git hooks are installed
|
|
100
|
+
*/
|
|
101
|
+
export async function areGitHooksInstalled(repoPath) {
|
|
102
|
+
const gitDir = await getGitDir(repoPath);
|
|
103
|
+
const hooksDir = path.resolve(repoPath, gitDir, 'hooks');
|
|
104
|
+
for (const hookName of HOOK_NAMES) {
|
|
105
|
+
const hookPath = path.join(hooksDir, hookName);
|
|
106
|
+
try {
|
|
107
|
+
const content = await fs.promises.readFile(hookPath, 'utf-8');
|
|
108
|
+
if (content.includes(HOOK_MARKER))
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
// Hook doesn't exist
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
// ============================================================================
|
|
118
|
+
// Hook Script Generation
|
|
119
|
+
// ============================================================================
|
|
120
|
+
function generateHookScript(hookName, executable) {
|
|
121
|
+
switch (hookName) {
|
|
122
|
+
case 'prepare-commit-msg':
|
|
123
|
+
return [
|
|
124
|
+
HOOK_MARKER,
|
|
125
|
+
`${executable} hooks git prepare-commit-msg "$@" 2>/dev/null || true`,
|
|
126
|
+
].join('\n');
|
|
127
|
+
case 'commit-msg':
|
|
128
|
+
return [
|
|
129
|
+
HOOK_MARKER,
|
|
130
|
+
'# Commit-msg hook: strip trailer if no user content (allows aborting empty commits)',
|
|
131
|
+
`${executable} hooks git commit-msg "$1" || exit 1`,
|
|
132
|
+
].join('\n');
|
|
133
|
+
case 'post-commit':
|
|
134
|
+
return [HOOK_MARKER, `${executable} hooks git post-commit 2>/dev/null || true`].join('\n');
|
|
135
|
+
case 'pre-push':
|
|
136
|
+
return [HOOK_MARKER, `${executable} hooks git pre-push "$@" 2>/dev/null || true`].join('\n');
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=git-hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-hooks.js","sourceRoot":"","sources":["../../src/hooks/git-hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lifecycle Management
|
|
3
|
+
*
|
|
4
|
+
* Dispatches normalized agent events through the session state machine.
|
|
5
|
+
* This is the orchestration layer between agent hooks and checkpoint operations.
|
|
6
|
+
*/
|
|
7
|
+
import type { Event } from '../types.js';
|
|
8
|
+
import type { SessionStore } from '../store/session-store.js';
|
|
9
|
+
import type { CheckpointStore } from '../store/checkpoint-store.js';
|
|
10
|
+
import type { Agent } from '../agent/types.js';
|
|
11
|
+
export interface LifecycleConfig {
|
|
12
|
+
sessionStore: SessionStore;
|
|
13
|
+
checkpointStore: CheckpointStore;
|
|
14
|
+
cwd?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface LifecycleHandler {
|
|
17
|
+
/** Dispatch an event through the lifecycle state machine */
|
|
18
|
+
dispatch(agent: Agent, event: Event): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
export declare function createLifecycleHandler(config: LifecycleConfig): LifecycleHandler;
|
|
21
|
+
//# sourceMappingURL=lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/hooks/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAgB,MAAM,aAAa,CAAC;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAQ/C,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,EAAE,eAAe,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrD;AAMD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,eAAe,GAAG,gBAAgB,CAuLhF"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lifecycle Management
|
|
3
|
+
*
|
|
4
|
+
* Dispatches normalized agent events through the session state machine.
|
|
5
|
+
* This is the orchestration layer between agent hooks and checkpoint operations.
|
|
6
|
+
*/
|
|
7
|
+
import * as crypto from 'node:crypto';
|
|
8
|
+
import { EventType, addTokenUsage } from '../types.js';
|
|
9
|
+
import { hasTranscriptAnalyzer, hasTokenCalculator } from '../agent/types.js';
|
|
10
|
+
import { getHead, getCurrentBranch, getUntrackedFiles } from '../git-operations.js';
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// Implementation
|
|
13
|
+
// ============================================================================
|
|
14
|
+
export function createLifecycleHandler(config) {
|
|
15
|
+
const { sessionStore, cwd } = config;
|
|
16
|
+
return {
|
|
17
|
+
async dispatch(agent, event) {
|
|
18
|
+
switch (event.type) {
|
|
19
|
+
case EventType.SessionStart:
|
|
20
|
+
await handleSessionStart(agent, event);
|
|
21
|
+
break;
|
|
22
|
+
case EventType.TurnStart:
|
|
23
|
+
await handleTurnStart(agent, event);
|
|
24
|
+
break;
|
|
25
|
+
case EventType.TurnEnd:
|
|
26
|
+
await handleTurnEnd(agent, event);
|
|
27
|
+
break;
|
|
28
|
+
case EventType.SessionEnd:
|
|
29
|
+
await handleSessionEnd(agent, event);
|
|
30
|
+
break;
|
|
31
|
+
case EventType.Compaction:
|
|
32
|
+
await handleCompaction(agent, event);
|
|
33
|
+
break;
|
|
34
|
+
case EventType.SubagentStart:
|
|
35
|
+
await handleSubagentStart(agent, event);
|
|
36
|
+
break;
|
|
37
|
+
case EventType.SubagentEnd:
|
|
38
|
+
await handleSubagentEnd(agent, event);
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
async function handleSessionStart(agent, event) {
|
|
44
|
+
// Check if session already exists
|
|
45
|
+
const existing = await sessionStore.load(event.sessionID);
|
|
46
|
+
if (existing && existing.phase !== 'ended') {
|
|
47
|
+
// Session already active, update interaction time
|
|
48
|
+
existing.lastInteractionTime = new Date().toISOString();
|
|
49
|
+
await sessionStore.save(existing);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
// Create new session state
|
|
53
|
+
const head = await getHead(cwd);
|
|
54
|
+
const _branch = await getCurrentBranch(cwd);
|
|
55
|
+
const untrackedFiles = await getUntrackedFiles(cwd);
|
|
56
|
+
const state = {
|
|
57
|
+
sessionID: event.sessionID,
|
|
58
|
+
baseCommit: head,
|
|
59
|
+
attributionBaseCommit: head,
|
|
60
|
+
startedAt: new Date().toISOString(),
|
|
61
|
+
phase: 'idle',
|
|
62
|
+
turnCheckpointIDs: [],
|
|
63
|
+
stepCount: 0,
|
|
64
|
+
checkpointTranscriptStart: 0,
|
|
65
|
+
untrackedFilesAtStart: untrackedFiles,
|
|
66
|
+
filesTouched: [],
|
|
67
|
+
agentType: agent.type,
|
|
68
|
+
transcriptPath: event.sessionRef,
|
|
69
|
+
worktreePath: cwd,
|
|
70
|
+
};
|
|
71
|
+
await sessionStore.save(state);
|
|
72
|
+
}
|
|
73
|
+
async function handleTurnStart(agent, event) {
|
|
74
|
+
let state = await sessionStore.load(event.sessionID);
|
|
75
|
+
if (!state) {
|
|
76
|
+
// Auto-create session on first turn
|
|
77
|
+
await handleSessionStart(agent, {
|
|
78
|
+
...event,
|
|
79
|
+
type: EventType.SessionStart,
|
|
80
|
+
});
|
|
81
|
+
state = await sessionStore.load(event.sessionID);
|
|
82
|
+
if (!state)
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
// Generate a new turn ID
|
|
86
|
+
state.turnID = crypto.randomUUID().slice(0, 8);
|
|
87
|
+
state.phase = 'active';
|
|
88
|
+
state.lastInteractionTime = new Date().toISOString();
|
|
89
|
+
state.transcriptPath = event.sessionRef;
|
|
90
|
+
if (event.prompt && !state.firstPrompt) {
|
|
91
|
+
state.firstPrompt = event.prompt.slice(0, 500);
|
|
92
|
+
}
|
|
93
|
+
// Capture pre-prompt transcript position
|
|
94
|
+
if (hasTranscriptAnalyzer(agent) && event.sessionRef) {
|
|
95
|
+
try {
|
|
96
|
+
state.checkpointTranscriptStart = await agent.getTranscriptPosition(event.sessionRef);
|
|
97
|
+
state.transcriptIdentifierAtStart = event.sessionRef;
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
// Ignore transcript position errors
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
await sessionStore.save(state);
|
|
104
|
+
}
|
|
105
|
+
async function handleTurnEnd(agent, event) {
|
|
106
|
+
const state = await sessionStore.load(event.sessionID);
|
|
107
|
+
if (!state)
|
|
108
|
+
return;
|
|
109
|
+
state.lastInteractionTime = new Date().toISOString();
|
|
110
|
+
// Extract modified files from transcript
|
|
111
|
+
if (hasTranscriptAnalyzer(agent) && state.transcriptPath) {
|
|
112
|
+
try {
|
|
113
|
+
const { files } = await agent.extractModifiedFilesFromOffset(state.transcriptPath, state.checkpointTranscriptStart);
|
|
114
|
+
// Merge new files into filesTouched
|
|
115
|
+
const fileSet = new Set(state.filesTouched);
|
|
116
|
+
for (const file of files)
|
|
117
|
+
fileSet.add(file);
|
|
118
|
+
state.filesTouched = Array.from(fileSet);
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
// Ignore extraction errors
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// Calculate token usage
|
|
125
|
+
if (hasTokenCalculator(agent) && state.transcriptPath) {
|
|
126
|
+
try {
|
|
127
|
+
const transcript = await agent.readTranscript(state.transcriptPath);
|
|
128
|
+
const usage = await agent.calculateTokenUsage(transcript, state.checkpointTranscriptStart);
|
|
129
|
+
state.tokenUsage = state.tokenUsage ? addTokenUsage(state.tokenUsage, usage) : usage;
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
// Ignore token calculation errors
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// Transition to idle
|
|
136
|
+
state.phase = 'idle';
|
|
137
|
+
await sessionStore.save(state);
|
|
138
|
+
}
|
|
139
|
+
async function handleSessionEnd(agent, event) {
|
|
140
|
+
const state = await sessionStore.load(event.sessionID);
|
|
141
|
+
if (!state)
|
|
142
|
+
return;
|
|
143
|
+
state.phase = 'ended';
|
|
144
|
+
state.endedAt = new Date().toISOString();
|
|
145
|
+
state.lastInteractionTime = new Date().toISOString();
|
|
146
|
+
await sessionStore.save(state);
|
|
147
|
+
}
|
|
148
|
+
async function handleCompaction(agent, event) {
|
|
149
|
+
const state = await sessionStore.load(event.sessionID);
|
|
150
|
+
if (!state)
|
|
151
|
+
return;
|
|
152
|
+
// Update transcript offset for next checkpoint
|
|
153
|
+
if (hasTranscriptAnalyzer(agent) && state.transcriptPath) {
|
|
154
|
+
try {
|
|
155
|
+
state.checkpointTranscriptStart = await agent.getTranscriptPosition(state.transcriptPath);
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
// Ignore
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
state.lastInteractionTime = new Date().toISOString();
|
|
162
|
+
await sessionStore.save(state);
|
|
163
|
+
}
|
|
164
|
+
async function handleSubagentStart(_agent, event) {
|
|
165
|
+
const state = await sessionStore.load(event.sessionID);
|
|
166
|
+
if (!state)
|
|
167
|
+
return;
|
|
168
|
+
state.lastInteractionTime = new Date().toISOString();
|
|
169
|
+
await sessionStore.save(state);
|
|
170
|
+
}
|
|
171
|
+
async function handleSubagentEnd(_agent, event) {
|
|
172
|
+
const state = await sessionStore.load(event.sessionID);
|
|
173
|
+
if (!state)
|
|
174
|
+
return;
|
|
175
|
+
state.lastInteractionTime = new Date().toISOString();
|
|
176
|
+
await sessionStore.save(state);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/hooks/lifecycle.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entire - Native TypeScript Implementation
|
|
3
|
+
*
|
|
4
|
+
* A self-contained module that implements the Entire CLI's functionality
|
|
5
|
+
* in TypeScript. Designed with clean boundaries for eventual extraction
|
|
6
|
+
* into a standalone package.
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
declare const VERSION: string;
|
|
11
|
+
/** Current package version */
|
|
12
|
+
export { VERSION };
|
|
13
|
+
/**
|
|
14
|
+
* Get the current version string.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getVersion(): string;
|
|
17
|
+
export type { AgentName, AgentType, HookType, HookInput, Event, SessionPhase, SessionState, PromptAttribution, TokenUsage, CheckpointID, Checkpoint, CheckpointSummary, CommittedMetadata, SessionFilePaths, Summary, LearningsSummary, CodeLearning, InitialAttribution, RewindPoint, WriteTemporaryOptions, WriteTemporaryResult, WriteCommittedOptions, UpdateCommittedOptions, SessionChange, EntireSettings, } from './types.js';
|
|
18
|
+
export { AGENT_NAMES, AGENT_TYPES, DEFAULT_AGENT_NAME, EventType, CheckpointType, CHECKPOINT_ID_LENGTH, CHECKPOINT_ID_PATTERN, CHECKPOINTS_BRANCH, SHADOW_BRANCH_PREFIX, ENTIRE_DIR, ENTIRE_METADATA_DIR, ENTIRE_TMP_DIR, ENTIRE_SETTINGS_FILE, ENTIRE_SETTINGS_LOCAL_FILE, SESSION_DIR_NAME, MAX_CHUNK_SIZE, DEFAULT_SETTINGS, validateCheckpointID, checkpointIDPath, emptyTokenUsage, addTokenUsage, } from './types.js';
|
|
19
|
+
export { git, gitSafe, getGitDir, getGitCommonDir, getWorktreeRoot, isGitRepository, getSessionsDir, getHead, getShortHash, getCurrentBranch, refExists, getTreeHash, listBranches, hashObject, mktree, commitTree, lsTree, catFile, showFile, log, diffNameOnly, diffStat, hasUncommittedChanges, getUntrackedFiles, isOnDefaultBranch, pushBranch, getGitAuthor, resolveGitDirSync, atomicWriteFile, initSessionRepo, resolveSessionRepoPath, getProjectID, GitError, type GitAuthor, type GitExecOptions, } from './git-operations.js';
|
|
20
|
+
export { createSessionStore, normalizeSessionState, type SessionStore, } from './store/session-store.js';
|
|
21
|
+
export { createCheckpointStore, type CheckpointStore } from './store/checkpoint-store.js';
|
|
22
|
+
export { createNativeEntireStore } from './store/native-store.js';
|
|
23
|
+
export type { EntireStore, EntireSession, EntireCheckpoint, EntireTokenUsage, EntireSkillUsage, } from './store/provider-types.js';
|
|
24
|
+
export type { Agent, HookSupport, FileWatcher, TranscriptAnalyzer, TokenCalculator, TranscriptChunker, TranscriptPreparer, SubagentAwareExtractor, SessionChangeEvent, } from './agent/types.js';
|
|
25
|
+
export { hasHookSupport, hasFileWatcher, hasTranscriptAnalyzer, hasTokenCalculator, hasTranscriptChunker, hasTranscriptPreparer, hasSubagentAwareExtractor, } from './agent/types.js';
|
|
26
|
+
export { registerAgent, getAgent, listAgentNames, listAgents, detectAgents, detectAgent, getAgentByType, getDefaultAgent, allProtectedDirs, resolveAgent, resetRegistry, type AgentFactory, } from './agent/registry.js';
|
|
27
|
+
export { createClaudeCodeAgent, parseTranscript, extractModifiedFiles, extractLastUserPrompt, extractSpawnedAgentIDs, type TranscriptLine, type AssistantContent, } from './agent/agents/claude-code.js';
|
|
28
|
+
export { createCursorAgent } from './agent/agents/cursor.js';
|
|
29
|
+
export { createGeminiCLIAgent, type GeminiTranscript, type GeminiMessage, type GeminiToolCall, } from './agent/agents/gemini-cli.js';
|
|
30
|
+
export { createOpenCodeAgent, extractTextFromParts, parseExportSession, extractAllUserPrompts, type ExportSession, type ExportMessage, type SessionInfo as OpenCodeSessionInfo, type Part as OpenCodePart, type ToolState as OpenCodeToolState, } from './agent/agents/opencode.js';
|
|
31
|
+
export { installGitHooks, uninstallGitHooks, areGitHooksInstalled, type GitHookName, } from './hooks/git-hooks.js';
|
|
32
|
+
export { createLifecycleHandler, type LifecycleConfig, type LifecycleHandler, } from './hooks/lifecycle.js';
|
|
33
|
+
export { shannonEntropy, detectSecrets, redactString, redactBuffer, redactJSONL, } from './security/redaction.js';
|
|
34
|
+
export { loadSettings, loadProjectSettings, loadLocalSettings, saveProjectSettings, saveLocalSettings, isEnabled, getStrategy, ensureGitignore, } from './config.js';
|
|
35
|
+
export { enable, type EnableOptions, type EnableResult } from './commands/enable.js';
|
|
36
|
+
export { disable, type DisableOptions, type DisableResult } from './commands/disable.js';
|
|
37
|
+
export { status, formatStatusJSON, formatTokens, type StatusResult, type SessionStatus, } from './commands/status.js';
|
|
38
|
+
export { listRewindPoints, rewindTo, listRewindPointsJSON, type RewindOptions, type RewindResult, } from './commands/rewind.js';
|
|
39
|
+
export { diagnose, discardSession, doctor, type StuckSession, type DoctorResult, type DoctorOptions, } from './commands/doctor.js';
|
|
40
|
+
export { findOrphaned, clean, type CleanupItem, type CleanResult, type CleanOptions, } from './commands/clean.js';
|
|
41
|
+
export { reset, type ResetOptions, type ResetResult } from './commands/reset.js';
|
|
42
|
+
export { listCheckpoints, getCheckpointDetail, getCheckpointTranscript, explainCommit, findCheckpointByPrefix, type CheckpointDetail, type CheckpointListItem, type ExplainOptions, type CommitExplainResult, } from './commands/explain.js';
|
|
43
|
+
export { discoverResumeInfo, listResumableBranches, type ResumeInfo, type ResumeOptions, type ResumeResult, } from './commands/resume.js';
|
|
44
|
+
export { createManualCommitStrategy, hasUserContent, stripCheckpointTrailer, type ManualCommitStrategyConfig, } from './strategy/manual-commit.js';
|
|
45
|
+
export type { Strategy, OrphanedItem, OrphanedItemType } from './strategy/types.js';
|
|
46
|
+
export { STRATEGY_NAME_MANUAL_COMMIT, MAX_COMMIT_TRAVERSAL_DEPTH } from './strategy/types.js';
|
|
47
|
+
export { parseStrategy, parseMetadata, parseTaskMetadata, parseBaseCommit, parseCondensation, parseSession, parseCheckpoint as parseCheckpointTrailer, parseAllSessions, formatStrategy, formatMetadata, formatShadowCommit, formatShadowTaskCommit, formatCheckpoint as formatCheckpointTrailer, formatSourceRef, MetadataTrailerKey, StrategyTrailerKey, SessionTrailerKey, CheckpointTrailerKey, BaseCommitTrailerKey, } from './utils/trailers.js';
|
|
48
|
+
export { stripIDEContextTags } from './utils/ide-tags.js';
|
|
49
|
+
export { truncateRunes, collapseWhitespace, capitalizeFirst, countLines, } from './utils/string-utils.js';
|
|
50
|
+
export { parseFromBytes, parseFromBytesAtLine, sliceFromLine, extractUserContent, type TranscriptLine as ParsedTranscriptLine, } from './utils/transcript-parse.js';
|
|
51
|
+
export { generateCommitMessage } from './utils/commit-message.js';
|
|
52
|
+
export { buildCondensedTranscriptFromBytes, buildCondensedTranscript, formatCondensedTranscript, buildSummarizationPrompt, extractJSONFromMarkdown, generateFromTranscript, type Entry as SummarizeEntry, type EntryType as SummarizeEntryType, type SummarizeInput, type SummaryGenerator, } from './summarize/summarize.js';
|
|
53
|
+
export { diffLines, getAllChangedFiles, calculateAttributionWithAccumulated, } from './strategy/attribution.js';
|
|
54
|
+
export { filesOverlapWithContent, stagedFilesOverlapWithContent, filesWithRemainingAgentChanges, } from './strategy/content-overlap.js';
|
|
55
|
+
export { validateSessionID, validateToolUseID, validateAgentID, validateAgentSessionID, } from './utils/validation.js';
|
|
56
|
+
export { detectHookManagers, hookManagerWarning, type HookManager } from './utils/hook-managers.js';
|
|
57
|
+
export { getWorktreeID } from './utils/worktree.js';
|
|
58
|
+
export { parseTimestampFromJSONL, getLastTimestampFromBytes, getLastTimestampFromFile, } from './utils/transcript-timestamp.js';
|
|
59
|
+
export { createClaudeGenerator, DEFAULT_SUMMARIZE_MODEL, type ClaudeGeneratorOptions, } from './summarize/claude-generator.js';
|
|
60
|
+
export { transition, applyTransition, phaseFromString, eventToString, actionToString, isStale, normalizeAfterLoad, mermaidDiagram, NoOpActionHandler, STALE_SESSION_THRESHOLD_MS, StateMachineEvent, Action, } from './session/state-machine.js';
|
|
61
|
+
export type { Phase, TransitionContext, TransitionResult, ActionHandler, StateMachineState, } from './session/state-machine.js';
|
|
62
|
+
export { extractLastCompletedTodo, extractInProgressTodo, countTodos, extractTodoContentFromToolInput, extractLastCompletedTodoFromToolInput, countTodosFromToolInput, formatIncrementalMessage, } from './utils/todo-extract.js';
|
|
63
|
+
export { classifyTimestamps, statusToText, hasConflicts, partitionConflicts, resolveAgentForRewind, } from './utils/rewind-conflict.js';
|
|
64
|
+
export type { SessionRestoreInfo as RewindSessionRestoreInfo } from './utils/rewind-conflict.js';
|
|
65
|
+
export { chunkFileName, parseChunkIndex, sortChunkFiles } from './utils/chunk-files.js';
|
|
66
|
+
export { isInfrastructurePath, toRelativePath, absPath, extractSessionIDFromPath, sessionMetadataDir, } from './utils/paths.js';
|
|
67
|
+
export { detectAgentTypeFromContent } from './utils/detect-agent.js';
|
|
68
|
+
export { hasTTY, askConfirmTTY } from './utils/tty.js';
|
|
69
|
+
export { hashWorktreeID, shadowBranchNameForCommit, parseShadowBranchName, isShadowBranch, listShadowBranches, deleteShadowBranches, } from './utils/shadow-branch.js';
|
|
70
|
+
export { previewRewind, type RewindPreview as RewindPreviewResult, } from './utils/preview-rewind.js';
|
|
71
|
+
export { createAgentSession, EntryType } from './agent/session-types.js';
|
|
72
|
+
export type { AgentSession, SessionEntry } from './agent/session-types.js';
|
|
73
|
+
export { validateRepository, isEmptyRepository, isAncestorOf, isInsideWorktree, ensureMetadataBranch, readCheckpointMetadata, readSessionPromptFromTree, readAgentTypeFromTree, extractFirstPrompt, ensureSetup, getMainRepoRoot, } from './strategy/common.js';
|
|
74
|
+
export { updateSubtree, applyTreeChanges, createTreeFromMap, MergeMode } from './utils/tree-ops.js';
|
|
75
|
+
export type { TreeEntry, TreeChange } from './utils/tree-ops.js';
|
|
76
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,QAAA,MAAiB,OAAO,QAAsD,CAAC;AAE/E,8BAA8B;AAC9B,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAMD,YAAY,EACV,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,0BAA0B,EAC1B,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAC;AAMpB,OAAO,EACL,GAAG,EACH,OAAO,EACP,SAAS,EACT,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,OAAO,EACP,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,YAAY,EACZ,UAAU,EACV,MAAM,EACN,UAAU,EACV,MAAM,EACN,OAAO,EACP,QAAQ,EACR,GAAG,EACH,YAAY,EACZ,QAAQ,EACR,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,QAAQ,EACR,KAAK,SAAS,EACd,KAAK,cAAc,GACpB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,YAAY,GAClB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EAAE,qBAAqB,EAAE,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAM1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,YAAY,EACV,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAMnC,YAAY,EACV,KAAK,EACL,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,aAAa,EACb,QAAQ,EACR,cAAc,EACd,UAAU,EACV,YAAY,EACZ,WAAW,EACX,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,KAAK,YAAY,GAClB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EACL,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,WAAW,IAAI,mBAAmB,EACvC,KAAK,IAAI,IAAI,YAAY,EACzB,KAAK,SAAS,IAAI,iBAAiB,GACpC,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,WAAW,GACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,eAAe,GAChB,MAAM,aAAa,CAAC;AAMrB,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEzF,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,QAAQ,EACR,cAAc,EACd,MAAM,EACN,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,YAAY,EACZ,KAAK,EACL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEjF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,aAAa,EACb,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EACL,0BAA0B,EAC1B,cAAc,EACd,sBAAsB,EACtB,KAAK,0BAA0B,GAChC,MAAM,6BAA6B,CAAC;AAErC,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEpF,OAAO,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAM9F,OAAO,EACL,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,eAAe,IAAI,sBAAsB,EACzC,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,IAAI,uBAAuB,EAC3C,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,UAAU,GACX,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,KAAK,cAAc,IAAI,oBAAoB,GAC5C,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAMlE,OAAO,EACL,iCAAiC,EACjC,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,KAAK,KAAK,IAAI,cAAc,EAC5B,KAAK,SAAS,IAAI,kBAAkB,EACpC,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,mCAAmC,GACpC,MAAM,2BAA2B,CAAC;AAMnC,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,+BAA+B,CAAC;AAMvC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAMpG,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMpD,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,sBAAsB,GAC5B,MAAM,iCAAiC,CAAC;AAMzC,OAAO,EACL,UAAU,EACV,eAAe,EACf,eAAe,EACf,aAAa,EACb,cAAc,EACd,OAAO,EACP,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,EACjB,MAAM,GACP,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACV,KAAK,EACL,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,UAAU,EACV,+BAA+B,EAC/B,qCAAqC,EACrC,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EAAE,kBAAkB,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAMjG,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAMxF,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,OAAO,EACP,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAMrE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAMvD,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EACL,aAAa,EACb,KAAK,aAAa,IAAI,mBAAmB,GAC1C,MAAM,2BAA2B,CAAC;AAMnC,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAEzE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAM3E,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,kBAAkB,EAClB,WAAW,EACX,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEpG,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
|