@cnrai/pave 0.3.35 → 0.3.51
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 +21 -218
- package/package.json +32 -35
- package/pave.js +3 -0
- package/sandbox/SandboxRunner.js +1 -0
- package/sandbox/pave-run.js +2 -0
- package/sandbox/permission.js +1 -0
- package/sandbox/utils/yaml.js +1 -0
- package/MARKETPLACE.md +0 -406
- package/build-binary.js +0 -591
- package/build-npm.js +0 -537
- package/build.js +0 -230
- package/check-binary.js +0 -26
- package/deploy.sh +0 -95
- package/index.js +0 -5776
- package/lib/agent-registry.js +0 -1037
- package/lib/args-parser.js +0 -837
- package/lib/blessed-widget-patched.js +0 -93
- package/lib/cli-markdown.js +0 -590
- package/lib/compaction.js +0 -153
- package/lib/duration.js +0 -94
- package/lib/hash.js +0 -22
- package/lib/marketplace.js +0 -866
- package/lib/memory-config.js +0 -166
- package/lib/skill-manager.js +0 -891
- package/lib/soul.js +0 -31
- package/lib/tool-output-formatter.js +0 -180
- package/start-pave.sh +0 -149
- package/status.js +0 -271
- package/test/abort-stream.test.js +0 -445
- package/test/agent-auto-compaction.test.js +0 -552
- package/test/agent-comm-abort.test.js +0 -95
- package/test/agent-comm.test.js +0 -598
- package/test/agent-inbox.test.js +0 -576
- package/test/agent-init.test.js +0 -264
- package/test/agent-interrupt.test.js +0 -314
- package/test/agent-lifecycle.test.js +0 -520
- package/test/agent-log-files.test.js +0 -349
- package/test/agent-mode.manual-test.js +0 -392
- package/test/agent-parsing.test.js +0 -228
- package/test/agent-post-stream-idle.test.js +0 -762
- package/test/agent-registry.test.js +0 -359
- package/test/agent-rm.test.js +0 -442
- package/test/agent-spawn.test.js +0 -933
- package/test/agent-status-api.test.js +0 -624
- package/test/agent-update.test.js +0 -435
- package/test/args-parser.test.js +0 -391
- package/test/auto-compaction-chat.manual-test.js +0 -227
- package/test/auto-compaction.test.js +0 -941
- package/test/build-config.test.js +0 -120
- package/test/build-npm.test.js +0 -388
- package/test/chat-command.test.js +0 -137
- package/test/chat-leading-lines.test.js +0 -159
- package/test/config-flag.test.js +0 -272
- package/test/cursor-drift.test.js +0 -135
- package/test/debug-require.js +0 -23
- package/test/dir-migration.test.js +0 -323
- package/test/duration.test.js +0 -229
- package/test/ghostty-term.test.js +0 -202
- package/test/http500-backoff.test.js +0 -854
- package/test/integration.test.js +0 -86
- package/test/memory-guard-env.test.js +0 -220
- package/test/pr233-fixes.test.js +0 -259
- package/test/run-agent-init.js +0 -297
- package/test/run-all.js +0 -64
- package/test/run-config-flag.js +0 -159
- package/test/run-cursor-drift.js +0 -82
- package/test/run-session-path.js +0 -154
- package/test/run-tests.js +0 -643
- package/test/sandbox-redirect.test.js +0 -202
- package/test/session-path.test.js +0 -132
- package/test/shebang-strip.test.js +0 -241
- package/test/soul-reinject.test.js +0 -1027
- package/test/soul-reread.test.js +0 -281
- package/test/tool-output-formatter.test.js +0 -486
- package/test/tool-output-gating.test.js +0 -143
- package/test/tool-states.test.js +0 -167
- package/test/tools-flag.test.js +0 -65
- package/test/tui-attach.test.js +0 -1255
- package/test/tui-compaction.test.js +0 -354
- package/test/tui-wrap.test.js +0 -568
- package/test-binary.js +0 -52
- package/test-binary2.js +0 -36
package/test/run-session-path.js
DELETED
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
// Standalone test runner for agent session file path (issue #108)
|
|
2
|
-
// Verifies the agent uses <cwd>/.pave-session.json, not <configDir>/.pave-session.json
|
|
3
|
-
|
|
4
|
-
const path = require('path');
|
|
5
|
-
const fs = require('fs');
|
|
6
|
-
|
|
7
|
-
let passed = 0;
|
|
8
|
-
let failed = 0;
|
|
9
|
-
|
|
10
|
-
function assert(cond, msg) {
|
|
11
|
-
if (cond) {
|
|
12
|
-
passed++;
|
|
13
|
-
console.log(' PASS: ' + msg);
|
|
14
|
-
} else {
|
|
15
|
-
failed++;
|
|
16
|
-
console.log(' FAIL: ' + msg);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
function assertEqual(actual, expected, msg) {
|
|
21
|
-
if (actual === expected) {
|
|
22
|
-
passed++;
|
|
23
|
-
console.log(' PASS: ' + msg);
|
|
24
|
-
} else {
|
|
25
|
-
failed++;
|
|
26
|
-
console.log(' FAIL: ' + msg);
|
|
27
|
-
console.log(' Expected: ' + JSON.stringify(expected));
|
|
28
|
-
console.log(' Actual: ' + JSON.stringify(actual));
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
console.log('Agent session file path tests (issue #108)');
|
|
33
|
-
console.log('==========================================\n');
|
|
34
|
-
|
|
35
|
-
// --- Path computation tests ---
|
|
36
|
-
|
|
37
|
-
console.log('Session file path:');
|
|
38
|
-
|
|
39
|
-
const sessionFile = path.join(process.cwd(), '.pave-session.json');
|
|
40
|
-
const configDir = path.resolve('.pave');
|
|
41
|
-
|
|
42
|
-
assert(
|
|
43
|
-
!sessionFile.startsWith(configDir + path.sep),
|
|
44
|
-
'session file is NOT inside config directory (.pave/)',
|
|
45
|
-
);
|
|
46
|
-
|
|
47
|
-
assertEqual(
|
|
48
|
-
path.basename(sessionFile),
|
|
49
|
-
'.pave-session.json',
|
|
50
|
-
'session file basename is .pave-session.json',
|
|
51
|
-
);
|
|
52
|
-
|
|
53
|
-
assertEqual(
|
|
54
|
-
path.dirname(sessionFile),
|
|
55
|
-
process.cwd(),
|
|
56
|
-
'session file directory is process.cwd()',
|
|
57
|
-
);
|
|
58
|
-
|
|
59
|
-
assert(
|
|
60
|
-
path.basename(path.dirname(sessionFile)) !== '.pave',
|
|
61
|
-
'session file parent dir is not .pave',
|
|
62
|
-
);
|
|
63
|
-
|
|
64
|
-
// --- Source code verification ---
|
|
65
|
-
|
|
66
|
-
console.log('\nSource code verification:');
|
|
67
|
-
|
|
68
|
-
const srcPath = path.join(__dirname, '..', 'index.js');
|
|
69
|
-
const src = fs.readFileSync(srcPath, 'utf8');
|
|
70
|
-
|
|
71
|
-
assertEqual(
|
|
72
|
-
src.indexOf('CWD_SESSION_FILE'),
|
|
73
|
-
-1,
|
|
74
|
-
'no CWD_SESSION_FILE variable in source',
|
|
75
|
-
);
|
|
76
|
-
|
|
77
|
-
assertEqual(
|
|
78
|
-
src.indexOf('agent-session'),
|
|
79
|
-
-1,
|
|
80
|
-
'no agent-session reference in source',
|
|
81
|
-
);
|
|
82
|
-
|
|
83
|
-
// Find SESSION_FILE definitions using flexible regex (handles reformatting)
|
|
84
|
-
const sessionFileDefRegex = /const\s+SESSION_FILE\s*=\s*path\.join\s*\([^;]*;/g;
|
|
85
|
-
const sessionFileDefs = [];
|
|
86
|
-
let match;
|
|
87
|
-
while ((match = sessionFileDefRegex.exec(src)) !== null) {
|
|
88
|
-
const before = src.slice(0, match.index);
|
|
89
|
-
const lineNum = before.split('\n').length;
|
|
90
|
-
sessionFileDefs.push({ line: lineNum, content: match[0].trim() });
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
assert(
|
|
94
|
-
sessionFileDefs.length >= 2,
|
|
95
|
-
'at least 2 SESSION_FILE definitions (chat + agent), found ' + sessionFileDefs.length,
|
|
96
|
-
);
|
|
97
|
-
|
|
98
|
-
for (let j = 0; j < sessionFileDefs.length; j++) {
|
|
99
|
-
const def = sessionFileDefs[j];
|
|
100
|
-
assert(
|
|
101
|
-
def.content.indexOf('process.cwd()') !== -1,
|
|
102
|
-
'SESSION_FILE def at line ' + def.line + ' uses process.cwd()',
|
|
103
|
-
);
|
|
104
|
-
assert(
|
|
105
|
-
def.content.indexOf('.pave-session.json') !== -1,
|
|
106
|
-
'SESSION_FILE def at line ' + def.line + ' references .pave-session.json',
|
|
107
|
-
);
|
|
108
|
-
assert(
|
|
109
|
-
def.content.indexOf('AGENT_LOG_DIR') === -1,
|
|
110
|
-
'SESSION_FILE def at line ' + def.line + ' does NOT reference AGENT_LOG_DIR',
|
|
111
|
-
);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
// Verify no dual writes: check for any CWD_SESSION_FILE write in source
|
|
115
|
-
const srcLines = src.split('\n');
|
|
116
|
-
let cwdWriteCount = 0;
|
|
117
|
-
for (let k = 0; k < srcLines.length; k++) {
|
|
118
|
-
if (srcLines[k].indexOf('writeFileSync(CWD_SESSION_FILE') !== -1) {
|
|
119
|
-
cwdWriteCount++;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
assertEqual(
|
|
124
|
-
cwdWriteCount,
|
|
125
|
-
0,
|
|
126
|
-
'no writes to CWD_SESSION_FILE anywhere in source',
|
|
127
|
-
);
|
|
128
|
-
|
|
129
|
-
// --- Chat/Agent alignment ---
|
|
130
|
-
|
|
131
|
-
console.log('\nChat/Agent alignment:');
|
|
132
|
-
|
|
133
|
-
// Both chat and agent should write to the same path
|
|
134
|
-
const chatDef = sessionFileDefs[0];
|
|
135
|
-
const agentDef = sessionFileDefs[1];
|
|
136
|
-
|
|
137
|
-
if (chatDef && agentDef) {
|
|
138
|
-
assertEqual(
|
|
139
|
-
chatDef.content,
|
|
140
|
-
agentDef.content,
|
|
141
|
-
'chat and agent SESSION_FILE definitions are identical',
|
|
142
|
-
);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
// --- Summary ---
|
|
146
|
-
|
|
147
|
-
console.log('\n==========================================');
|
|
148
|
-
console.log('Results: ' + passed + ' passed, ' + failed + ' failed, ' + (passed + failed) + ' total');
|
|
149
|
-
|
|
150
|
-
if (failed > 0) {
|
|
151
|
-
process.exit(1);
|
|
152
|
-
} else {
|
|
153
|
-
console.log('\nAll tests passed!');
|
|
154
|
-
}
|