@tonycasey/lisa 2.1.0 → 2.2.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/README.md +8 -4
- package/dist/hooks/session-start.js +1 -33070
- package/dist/hooks/session-stop.js +1 -33070
- package/dist/hooks/user-prompt-submit.js +1 -33070
- package/dist/lib/cli.d.ts +15 -1
- package/dist/lib/cli.d.ts.map +1 -1
- package/dist/lib/cli.js +150 -18
- package/dist/lib/cli.js.map +1 -1
- package/dist/opencode/lisa.js +1 -33070
- package/dist/package.json +2 -2
- package/dist/project/.claude/config.js +0 -2
- package/dist/project/.lisa/rules/shared/code-quality-rules.md +2 -0
- package/dist/project/.lisa/rules/shared/git-rules.md +6 -6
- package/dist/project/.lisa/skills/lisa/SKILL.md +6 -6
- package/package.json +3 -3
- package/scripts/postinstall.js +10 -2
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tonycasey/lisa",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Long-term memory for AI coding assistants. Automatic context persistence, task tracking, and knowledge capture across coding sessions. Supports Claude Code and OpenCode.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"remember": "cli.js",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"commander": "^11.1.0",
|
|
54
54
|
"execa": "^8.0.1",
|
|
55
55
|
"fs-extra": "^11.2.0",
|
|
56
|
-
"glob": "
|
|
56
|
+
"glob": "11.1.0",
|
|
57
57
|
"neo4j-driver": "^6.0.1"
|
|
58
58
|
}
|
|
59
59
|
}
|
|
@@ -19,7 +19,6 @@ try {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
const PROJECT_ROOT = process.cwd();
|
|
22
|
-
const PROMPT_SKILL_PATH = path.join(PROJECT_ROOT, '.lisa/skills/prompt/scripts/prompt.js');
|
|
23
22
|
const DEV_DIR = path.join(PROJECT_ROOT, '.dev');
|
|
24
23
|
|
|
25
24
|
const MCP_ENDPOINT = env.GRAPHITI_ENDPOINT || process.env.GRAPHITI_ENDPOINT || 'http://localhost:8010/mcp/';
|
|
@@ -32,7 +31,6 @@ const isZepCloudMode = () => STORAGE_MODE === 'zep-cloud';
|
|
|
32
31
|
|
|
33
32
|
module.exports = {
|
|
34
33
|
PROJECT_ROOT,
|
|
35
|
-
PROMPT_SKILL_PATH,
|
|
36
34
|
DEV_DIR,
|
|
37
35
|
MCP_ENDPOINT,
|
|
38
36
|
DEFAULT_GROUP_ID,
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
|
|
11
11
|
After a commit succeeds, run:
|
|
12
12
|
```bash
|
|
13
|
-
|
|
13
|
+
lisa memory add "<summary>" --cache --type milestone
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
### Step 2: Update Task Status (for tickets)
|
|
17
17
|
|
|
18
18
|
If the commit completes ticket (JIRA-1234), also run:
|
|
19
19
|
```bash
|
|
20
|
-
|
|
20
|
+
lisa tasks add "JIRA-1234: COMPLETED - <description>" --cache --status done
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
### Summary Format
|
|
@@ -32,20 +32,20 @@ The summary should be concise and describe:
|
|
|
32
32
|
**Feature commit (with Jira ticket):**
|
|
33
33
|
```bash
|
|
34
34
|
# Step 1: Save milestone
|
|
35
|
-
|
|
35
|
+
lisa memory add "FEATURE: [JIRA-1234] Added Excel brandlist parser with unit tests" --cache --type milestone
|
|
36
36
|
|
|
37
37
|
# Step 2: Update task status
|
|
38
|
-
|
|
38
|
+
lisa tasks add "JIRA-1234: COMPLETED - Excel brandlist parser utility created, PR #XXXX" --cache --status done
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
**Bug fix:**
|
|
42
42
|
```bash
|
|
43
|
-
|
|
43
|
+
lisa memory add "FIX: Resolved race condition in database connection pooling" --cache --type milestone
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
**Refactor:**
|
|
47
47
|
```bash
|
|
48
|
-
|
|
48
|
+
lisa memory add "REFACTOR: Migrated API handlers to use clean architecture pattern" --cache --type milestone
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
### Why This Matters
|
|
@@ -105,16 +105,16 @@ When user asks for a retrospective, follow these steps:
|
|
|
105
105
|
- Suggests related queries when appropriate
|
|
106
106
|
|
|
107
107
|
## Output Formatting
|
|
108
|
-
- Always prefix Lisa's responses with `👧 lisa
|
|
108
|
+
- Always prefix Lisa's responses with `👧 lisa-> ` (emoji, space, "lisa >>", space)
|
|
109
109
|
- Use this prefix at the start of section headers when presenting data:
|
|
110
|
-
- `👧 lisa
|
|
111
|
-
- `👧 lisa
|
|
112
|
-
- `👧 lisa
|
|
110
|
+
- `👧 lisa-> Recent Memories:` for memory listings
|
|
111
|
+
- `👧 lisa-> Tasks:` for task listings
|
|
112
|
+
- `👧 lisa-> ` for conversational responses
|
|
113
113
|
- For memory and task queries, include the storage mode at the end in parentheses:
|
|
114
|
-
- Example: `👧 lisa
|
|
114
|
+
- Example: `👧 lisa-> Tasks: (neo4j)` or `👧 lisa-> Recent Memories: (zep-cloud)`
|
|
115
115
|
- Example format:
|
|
116
116
|
```
|
|
117
|
-
👧 lisa
|
|
117
|
+
👧 lisa-> Recent Memories: (neo4j)
|
|
118
118
|
1. **Memory title** (date)
|
|
119
119
|
- Details here
|
|
120
120
|
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tonycasey/lisa",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Long-term memory for AI coding assistants. Automatic context persistence, task tracking, and knowledge capture across coding sessions. Supports Claude Code and OpenCode.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"lisa": "dist/lib/cli.js",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"scripts": {
|
|
36
36
|
"build": "tsc -p tsconfig.json",
|
|
37
37
|
"build:local": "DEPLOY_AGENTS_LOCAL=1 npm run build",
|
|
38
|
-
"postbuild": "node scripts/postbuild-copy-templates.js && node scripts/prepare-dist-package.js && node scripts/bundle-hooks.js && node scripts/deploy-
|
|
38
|
+
"postbuild": "node scripts/postbuild-copy-templates.js && node scripts/prepare-dist-package.js && node scripts/bundle-hooks.js && node scripts/deploy-lisa.js",
|
|
39
39
|
"postinstall": "node scripts/postinstall.js",
|
|
40
40
|
"clean": "rimraf dist",
|
|
41
41
|
"package": "rm -f *.tgz releases/*.tgz dist/packages/*.tgz && npm run build && mkdir -p releases dist/packages && npm pack && mv *.tgz releases/ && cp releases/*.tgz dist/packages/",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"commander": "^11.1.0",
|
|
82
82
|
"execa": "^8.0.1",
|
|
83
83
|
"fs-extra": "^11.2.0",
|
|
84
|
-
"glob": "
|
|
84
|
+
"glob": "11.1.0",
|
|
85
85
|
"neo4j-driver": "^6.0.1"
|
|
86
86
|
},
|
|
87
87
|
"devDependencies": {
|
package/scripts/postinstall.js
CHANGED
|
@@ -30,6 +30,9 @@ const projectRoot = isInstalledAsDependency
|
|
|
30
30
|
const distRoot = path.resolve(__dirname, '..', 'dist');
|
|
31
31
|
const projectRoot_dist = path.join(distRoot, 'project');
|
|
32
32
|
|
|
33
|
+
// Bundled hooks location (hooks are bundled separately from templates)
|
|
34
|
+
const bundledHooksDir = path.join(distRoot, 'hooks');
|
|
35
|
+
|
|
33
36
|
// Legacy fallback for older builds
|
|
34
37
|
const templateRoot = path.resolve(__dirname, '..', 'dist', 'templates');
|
|
35
38
|
|
|
@@ -861,8 +864,13 @@ async function main() {
|
|
|
861
864
|
if (await fs.pathExists(claudeSrc)) {
|
|
862
865
|
await copyTemplates(path.join(claudeSrc, 'settings.json'), path.join(claudeDir, 'settings.json'));
|
|
863
866
|
await copyTemplates(path.join(claudeSrc, 'config.js'), path.join(claudeDir, 'config.js'));
|
|
864
|
-
|
|
865
|
-
|
|
867
|
+
console.log(' ✓ Copied .claude/ settings');
|
|
868
|
+
}
|
|
869
|
+
|
|
870
|
+
// Copy bundled hooks (hooks are bundled separately and don't include utils folder)
|
|
871
|
+
if (await fs.pathExists(bundledHooksDir)) {
|
|
872
|
+
await copyTemplates(bundledHooksDir, path.join(claudeDir, 'hooks'));
|
|
873
|
+
console.log(' ✓ Copied .claude/hooks/ (bundled)');
|
|
866
874
|
}
|
|
867
875
|
|
|
868
876
|
// Copy .opencode (plugin)
|