@helmai/cli 1.0.3 → 1.0.5
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/commands/init.d.ts +5 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +126 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/inject.d.ts.map +1 -1
- package/dist/commands/inject.js +53 -4
- package/dist/commands/inject.js.map +1 -1
- package/dist/commands/save.d.ts +1 -0
- package/dist/commands/save.d.ts.map +1 -1
- package/dist/commands/save.js +17 -4
- package/dist/commands/save.js.map +1 -1
- package/dist/commands/sync.d.ts +6 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +116 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/api.d.ts +29 -0
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +4 -0
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/hooks.d.ts.map +1 -1
- package/dist/lib/hooks.js +31 -16
- package/dist/lib/hooks.js.map +1 -1
- package/dist/lib/knowledge.d.ts +6 -0
- package/dist/lib/knowledge.d.ts.map +1 -1
- package/dist/lib/knowledge.js +105 -1
- package/dist/lib/knowledge.js.map +1 -1
- package/dist/lib/local-rules.d.ts +7 -0
- package/dist/lib/local-rules.d.ts.map +1 -1
- package/dist/lib/local-rules.js +142 -15
- package/dist/lib/local-rules.js.map +1 -1
- package/dist/lib/session.d.ts +12 -0
- package/dist/lib/session.d.ts.map +1 -0
- package/dist/lib/session.js +94 -0
- package/dist/lib/session.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.getOrCreateSession = getOrCreateSession;
|
|
37
|
+
exports.getSessionState = getSessionState;
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const crypto_1 = require("crypto");
|
|
41
|
+
const SESSION_TIMEOUT_MS = 30 * 60 * 1000; // 30 minutes
|
|
42
|
+
function getStatePath(cwd) {
|
|
43
|
+
return path.join(cwd, '.helm', 'state.json');
|
|
44
|
+
}
|
|
45
|
+
function loadState(cwd) {
|
|
46
|
+
const statePath = getStatePath(cwd);
|
|
47
|
+
if (!fs.existsSync(statePath))
|
|
48
|
+
return null;
|
|
49
|
+
try {
|
|
50
|
+
return JSON.parse(fs.readFileSync(statePath, 'utf-8'));
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function saveState(cwd, state) {
|
|
57
|
+
const helmDir = path.join(cwd, '.helm');
|
|
58
|
+
if (!fs.existsSync(helmDir)) {
|
|
59
|
+
fs.mkdirSync(helmDir, { recursive: true });
|
|
60
|
+
}
|
|
61
|
+
fs.writeFileSync(getStatePath(cwd), JSON.stringify(state, null, 2));
|
|
62
|
+
}
|
|
63
|
+
function getOrCreateSession(cwd, branch) {
|
|
64
|
+
const state = loadState(cwd);
|
|
65
|
+
const now = new Date();
|
|
66
|
+
if (state) {
|
|
67
|
+
const lastPrompt = new Date(state.last_prompt_at);
|
|
68
|
+
const elapsed = now.getTime() - lastPrompt.getTime();
|
|
69
|
+
const sameBranch = state.branch === branch;
|
|
70
|
+
if (elapsed < SESSION_TIMEOUT_MS && sameBranch) {
|
|
71
|
+
// Reuse existing session
|
|
72
|
+
state.last_prompt_at = now.toISOString();
|
|
73
|
+
state.prompt_count += 1;
|
|
74
|
+
state.inject_count += 1;
|
|
75
|
+
saveState(cwd, state);
|
|
76
|
+
return state.session_id;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// New session
|
|
80
|
+
const newState = {
|
|
81
|
+
session_id: (0, crypto_1.randomUUID)(),
|
|
82
|
+
branch,
|
|
83
|
+
last_prompt_at: now.toISOString(),
|
|
84
|
+
prompt_count: 1,
|
|
85
|
+
inject_count: (state?.inject_count ?? 0) + 1,
|
|
86
|
+
last_nudge_at: state?.last_nudge_at,
|
|
87
|
+
};
|
|
88
|
+
saveState(cwd, newState);
|
|
89
|
+
return newState.session_id;
|
|
90
|
+
}
|
|
91
|
+
function getSessionState(cwd) {
|
|
92
|
+
return loadState(cwd);
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,gDA8BC;AAED,0CAEC;AAvED,uCAAyB;AACzB,2CAA6B;AAC7B,mCAAoC;AAWpC,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AAExD,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAiB,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,KAAmB;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAgB,kBAAkB,CAAC,GAAW,EAAE,MAAqB;IACnE,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC;QAE3C,IAAI,OAAO,GAAG,kBAAkB,IAAI,UAAU,EAAE,CAAC;YAC/C,yBAAyB;YACzB,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACzC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;YACxB,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;YACxB,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACtB,OAAO,KAAK,CAAC,UAAU,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,cAAc;IACd,MAAM,QAAQ,GAAiB;QAC7B,UAAU,EAAE,IAAA,mBAAU,GAAE;QACxB,MAAM;QACN,cAAc,EAAE,GAAG,CAAC,WAAW,EAAE;QACjC,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC;QAC5C,aAAa,EAAE,KAAK,EAAE,aAAa;KACpC,CAAC;IACF,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACzB,OAAO,QAAQ,CAAC,UAAU,CAAC;AAC7B,CAAC;AAED,SAAgB,eAAe,CAAC,GAAW;IACzC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC"}
|