document360-engine 0.1.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/LICENSE +21 -0
- package/README.md +47 -0
- package/dist/config.d.ts +73 -0
- package/dist/config.js +62 -0
- package/dist/config.js.map +1 -0
- package/dist/d360/client.d.ts +30 -0
- package/dist/d360/client.js +132 -0
- package/dist/d360/client.js.map +1 -0
- package/dist/d360/environments.d.ts +28 -0
- package/dist/d360/environments.js +54 -0
- package/dist/d360/environments.js.map +1 -0
- package/dist/d360/oauth.d.ts +27 -0
- package/dist/d360/oauth.js +162 -0
- package/dist/d360/oauth.js.map +1 -0
- package/dist/d360/profile.d.ts +18 -0
- package/dist/d360/profile.js +31 -0
- package/dist/d360/profile.js.map +1 -0
- package/dist/d360/tokenStore.d.ts +17 -0
- package/dist/d360/tokenStore.js +50 -0
- package/dist/d360/tokenStore.js.map +1 -0
- package/dist/d360/tools.d.ts +14 -0
- package/dist/d360/tools.js +335 -0
- package/dist/d360/tools.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/auth.d.ts +14 -0
- package/dist/lib/auth.js +25 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/messageQueue.d.ts +9 -0
- package/dist/lib/messageQueue.js +40 -0
- package/dist/lib/messageQueue.js.map +1 -0
- package/dist/lib/paths.d.ts +9 -0
- package/dist/lib/paths.js +35 -0
- package/dist/lib/paths.js.map +1 -0
- package/dist/lib/sessionStore.d.ts +24 -0
- package/dist/lib/sessionStore.js +100 -0
- package/dist/lib/sessionStore.js.map +1 -0
- package/dist/lib/titleGen.d.ts +7 -0
- package/dist/lib/titleGen.js +64 -0
- package/dist/lib/titleGen.js.map +1 -0
- package/dist/session.d.ts +47 -0
- package/dist/session.js +190 -0
- package/dist/session.js.map +1 -0
- package/package.json +44 -0
- package/skills/CLAUDE.md +92 -0
- package/skills/analyze-codebase/SKILL.md +35 -0
- package/skills/audit-docs/SKILL.md +48 -0
- package/skills/emit-screenshot-spec/SKILL.md +82 -0
- package/skills/gather-context-from-mcp/SKILL.md +29 -0
- package/skills/propose-structure/SKILL.md +51 -0
- package/skills/publish-to-d360/SKILL.md +49 -0
- package/skills/write-article/SKILL.md +95 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/d360/tools.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './session.js';
|
|
2
|
+
export * from './config.js';
|
|
3
|
+
export * from './lib/auth.js';
|
|
4
|
+
export * from './lib/sessionStore.js';
|
|
5
|
+
export * from './lib/titleGen.js';
|
|
6
|
+
export * from './lib/paths.js';
|
|
7
|
+
export * from './d360/oauth.js';
|
|
8
|
+
export * from './d360/tokenStore.js';
|
|
9
|
+
export * from './d360/environments.js';
|
|
10
|
+
export * from './d360/profile.js';
|
|
11
|
+
export * from './d360/client.js';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// document360-engine — headless documentation agent. Public API consumed by the
|
|
2
|
+
// terminal wrapper (document360-writer) and future GUI wrappers (document360-desktop).
|
|
3
|
+
// The engine never renders UI; it emits typed EngineEvents and exposes auth/profile/
|
|
4
|
+
// config/session operations.
|
|
5
|
+
export * from './session.js'; // createSession, EngineSession, EngineEvent, CreateSessionOptions
|
|
6
|
+
export * from './config.js';
|
|
7
|
+
export * from './lib/auth.js';
|
|
8
|
+
export * from './lib/sessionStore.js';
|
|
9
|
+
export * from './lib/titleGen.js';
|
|
10
|
+
export * from './lib/paths.js';
|
|
11
|
+
export * from './d360/oauth.js';
|
|
12
|
+
export * from './d360/tokenStore.js';
|
|
13
|
+
export * from './d360/environments.js';
|
|
14
|
+
export * from './d360/profile.js';
|
|
15
|
+
export * from './d360/client.js';
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,uFAAuF;AACvF,qFAAqF;AACrF,6BAA6B;AAE7B,cAAc,cAAc,CAAC,CAAC,kEAAkE;AAChG,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type AuthMode = 'auto' | 'api' | 'subscription';
|
|
2
|
+
export declare const AUTH_MODES: readonly AuthMode[];
|
|
3
|
+
export type ResolvedAuth = {
|
|
4
|
+
kind: 'api';
|
|
5
|
+
}
|
|
6
|
+
/** stored=false means no credentials file/token was found, but the engine may
|
|
7
|
+
still authenticate (macOS stores Claude Code logins in the Keychain). */
|
|
8
|
+
| {
|
|
9
|
+
kind: 'subscription';
|
|
10
|
+
stored: boolean;
|
|
11
|
+
} | {
|
|
12
|
+
kind: 'none';
|
|
13
|
+
};
|
|
14
|
+
export declare function resolveAuth(mode: AuthMode): ResolvedAuth;
|
package/dist/lib/auth.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
export const AUTH_MODES = ['auto', 'api', 'subscription'];
|
|
5
|
+
function hasStoredLogin() {
|
|
6
|
+
if (process.env.CLAUDE_CODE_OAUTH_TOKEN)
|
|
7
|
+
return true;
|
|
8
|
+
return existsSync(join(homedir(), '.claude', '.credentials.json'));
|
|
9
|
+
}
|
|
10
|
+
export function resolveAuth(mode) {
|
|
11
|
+
const hasKey = Boolean(process.env.ANTHROPIC_API_KEY);
|
|
12
|
+
if (mode === 'api') {
|
|
13
|
+
return hasKey ? { kind: 'api' } : { kind: 'none' };
|
|
14
|
+
}
|
|
15
|
+
if (mode === 'subscription') {
|
|
16
|
+
// The SDK-spawned engine inherits our env; drop the key so it can't win.
|
|
17
|
+
delete process.env.ANTHROPIC_API_KEY;
|
|
18
|
+
return { kind: 'subscription', stored: hasStoredLogin() };
|
|
19
|
+
}
|
|
20
|
+
// auto
|
|
21
|
+
if (hasKey)
|
|
22
|
+
return { kind: 'api' };
|
|
23
|
+
return { kind: 'subscription', stored: hasStoredLogin() };
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,CAAC,MAAM,UAAU,GAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;AAS/E,SAAS,cAAc;IACrB,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB;QAAE,OAAO,IAAI,CAAC;IACrD,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAc;IACxC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAEtD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACrD,CAAC;IAED,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QAC5B,yEAAyE;QACzE,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACrC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,CAAC;IAC5D,CAAC;IAED,OAAO;IACP,IAAI,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACnC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SDKUserMessage } from '@anthropic-ai/claude-agent-sdk';
|
|
2
|
+
export declare class UserMessageQueue implements AsyncIterable<SDKUserMessage> {
|
|
3
|
+
private resolvers;
|
|
4
|
+
private buffer;
|
|
5
|
+
private closed;
|
|
6
|
+
push(content: string): void;
|
|
7
|
+
close(): void;
|
|
8
|
+
[Symbol.asyncIterator](): AsyncIterator<SDKUserMessage>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export class UserMessageQueue {
|
|
2
|
+
resolvers = [];
|
|
3
|
+
buffer = [];
|
|
4
|
+
closed = false;
|
|
5
|
+
push(content) {
|
|
6
|
+
if (this.closed)
|
|
7
|
+
return;
|
|
8
|
+
const msg = {
|
|
9
|
+
type: 'user',
|
|
10
|
+
message: { role: 'user', content },
|
|
11
|
+
parent_tool_use_id: null,
|
|
12
|
+
};
|
|
13
|
+
const resolver = this.resolvers.shift();
|
|
14
|
+
if (resolver)
|
|
15
|
+
resolver(msg);
|
|
16
|
+
else
|
|
17
|
+
this.buffer.push(msg);
|
|
18
|
+
}
|
|
19
|
+
close() {
|
|
20
|
+
this.closed = true;
|
|
21
|
+
for (const r of this.resolvers)
|
|
22
|
+
r(null);
|
|
23
|
+
this.resolvers = [];
|
|
24
|
+
}
|
|
25
|
+
async *[Symbol.asyncIterator]() {
|
|
26
|
+
while (true) {
|
|
27
|
+
if (this.buffer.length > 0) {
|
|
28
|
+
yield this.buffer.shift();
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
if (this.closed)
|
|
32
|
+
return;
|
|
33
|
+
const next = await new Promise(r => this.resolvers.push(r));
|
|
34
|
+
if (next === null)
|
|
35
|
+
return;
|
|
36
|
+
yield next;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=messageQueue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messageQueue.js","sourceRoot":"","sources":["../../src/lib/messageQueue.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,gBAAgB;IACnB,SAAS,GAAgD,EAAE,CAAC;IAC5D,MAAM,GAAqB,EAAE,CAAC;IAC9B,MAAM,GAAG,KAAK,CAAC;IAEvB,IAAI,CAAC,OAAe;QAClB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,MAAM,GAAG,GAAmB;YAC1B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;YAClC,kBAAkB,EAAE,IAAI;SACzB,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACxC,IAAI,QAAQ;YAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;;YACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS;YAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3B,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAG,CAAC;gBAC3B,SAAS;YACX,CAAC;YACD,IAAI,IAAI,CAAC,MAAM;gBAAE,OAAO;YACxB,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAAwB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACnF,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO;YAC1B,MAAM,IAAI,CAAC;QACb,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function packageRoot(): string;
|
|
2
|
+
export declare function packageSkillsDir(): string;
|
|
3
|
+
export declare function userDir(): string;
|
|
4
|
+
export declare function userConfigPath(): string;
|
|
5
|
+
export declare function userMcpConfigPath(): string;
|
|
6
|
+
export declare function sessionsFilePath(): string;
|
|
7
|
+
export declare function projectConfigPath(cwd?: string): string;
|
|
8
|
+
export declare function projectSkillsDir(cwd?: string): string;
|
|
9
|
+
export declare function ensureDir(path: string): void;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { homedir } from 'node:os';
|
|
2
|
+
import { join, dirname } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { existsSync, mkdirSync } from 'node:fs';
|
|
5
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = dirname(__filename);
|
|
7
|
+
export function packageRoot() {
|
|
8
|
+
return join(__dirname, '..', '..');
|
|
9
|
+
}
|
|
10
|
+
export function packageSkillsDir() {
|
|
11
|
+
return join(packageRoot(), 'skills');
|
|
12
|
+
}
|
|
13
|
+
export function userDir() {
|
|
14
|
+
return join(homedir(), '.document360-writer');
|
|
15
|
+
}
|
|
16
|
+
export function userConfigPath() {
|
|
17
|
+
return join(userDir(), 'config.json');
|
|
18
|
+
}
|
|
19
|
+
export function userMcpConfigPath() {
|
|
20
|
+
return join(userDir(), 'mcp.json');
|
|
21
|
+
}
|
|
22
|
+
export function sessionsFilePath() {
|
|
23
|
+
return join(userDir(), 'sessions.json');
|
|
24
|
+
}
|
|
25
|
+
export function projectConfigPath(cwd = process.cwd()) {
|
|
26
|
+
return join(cwd, '.d360-writer.json');
|
|
27
|
+
}
|
|
28
|
+
export function projectSkillsDir(cwd = process.cwd()) {
|
|
29
|
+
return join(cwd, '.d360-writer', 'skills');
|
|
30
|
+
}
|
|
31
|
+
export function ensureDir(path) {
|
|
32
|
+
if (!existsSync(path))
|
|
33
|
+
mkdirSync(path, { recursive: true });
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/lib/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,qBAAqB,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAC3D,OAAO,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAC1D,OAAO,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export type SessionRecord = {
|
|
2
|
+
uuid: string;
|
|
3
|
+
name: string;
|
|
4
|
+
/** User named it via /rename — auto-titling must never overwrite. */
|
|
5
|
+
renamed: boolean;
|
|
6
|
+
/** LLM title was applied (or attempted-and-kept-slug). */
|
|
7
|
+
titled: boolean;
|
|
8
|
+
cwd: string;
|
|
9
|
+
firstPrompt: string;
|
|
10
|
+
createdAt: string;
|
|
11
|
+
updatedAt: string;
|
|
12
|
+
};
|
|
13
|
+
export declare function loadSessions(): SessionRecord[];
|
|
14
|
+
export declare function upsertSession(rec: SessionRecord): void;
|
|
15
|
+
export declare function getSession(uuid: string): SessionRecord | undefined;
|
|
16
|
+
export declare function listSessions(cwd: string): SessionRecord[];
|
|
17
|
+
/** Exact name match first, then unique name-prefix, then unique uuid-prefix. */
|
|
18
|
+
export declare function findByName(cwd: string, name: string): SessionRecord | undefined;
|
|
19
|
+
export declare function touchSession(uuid: string): void;
|
|
20
|
+
export declare function renameSession(uuid: string, name: string): boolean;
|
|
21
|
+
/** Apply an auto-generated title. No-op if the user already renamed the session. */
|
|
22
|
+
export declare function setTitle(uuid: string, title: string): void;
|
|
23
|
+
export declare function slugify(text: string, maxWords?: number): string;
|
|
24
|
+
export declare function relativeTime(iso: string): string;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { sessionsFilePath, userDir, ensureDir } from './paths.js';
|
|
3
|
+
const MAX_RECORDS = 100;
|
|
4
|
+
export function loadSessions() {
|
|
5
|
+
const path = sessionsFilePath();
|
|
6
|
+
if (!existsSync(path))
|
|
7
|
+
return [];
|
|
8
|
+
try {
|
|
9
|
+
const parsed = JSON.parse(readFileSync(path, 'utf8'));
|
|
10
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return [];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function saveSessions(records) {
|
|
17
|
+
ensureDir(userDir());
|
|
18
|
+
const sorted = [...records].sort((a, b) => b.updatedAt.localeCompare(a.updatedAt)).slice(0, MAX_RECORDS);
|
|
19
|
+
writeFileSync(sessionsFilePath(), JSON.stringify(sorted, null, 2));
|
|
20
|
+
}
|
|
21
|
+
export function upsertSession(rec) {
|
|
22
|
+
const records = loadSessions().filter(r => r.uuid !== rec.uuid);
|
|
23
|
+
records.push(rec);
|
|
24
|
+
saveSessions(records);
|
|
25
|
+
}
|
|
26
|
+
export function getSession(uuid) {
|
|
27
|
+
return loadSessions().find(r => r.uuid === uuid);
|
|
28
|
+
}
|
|
29
|
+
export function listSessions(cwd) {
|
|
30
|
+
return loadSessions()
|
|
31
|
+
.filter(r => r.cwd === cwd)
|
|
32
|
+
.sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));
|
|
33
|
+
}
|
|
34
|
+
/** Exact name match first, then unique name-prefix, then unique uuid-prefix. */
|
|
35
|
+
export function findByName(cwd, name) {
|
|
36
|
+
const sessions = listSessions(cwd);
|
|
37
|
+
const lower = name.toLowerCase();
|
|
38
|
+
const exact = sessions.find(r => r.name.toLowerCase() === lower);
|
|
39
|
+
if (exact)
|
|
40
|
+
return exact;
|
|
41
|
+
const prefix = sessions.filter(r => r.name.toLowerCase().startsWith(lower));
|
|
42
|
+
if (prefix.length === 1)
|
|
43
|
+
return prefix[0];
|
|
44
|
+
const byUuid = sessions.filter(r => r.uuid.startsWith(name));
|
|
45
|
+
if (byUuid.length === 1)
|
|
46
|
+
return byUuid[0];
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
export function touchSession(uuid) {
|
|
50
|
+
const records = loadSessions();
|
|
51
|
+
const rec = records.find(r => r.uuid === uuid);
|
|
52
|
+
if (!rec)
|
|
53
|
+
return;
|
|
54
|
+
rec.updatedAt = new Date().toISOString();
|
|
55
|
+
saveSessions(records);
|
|
56
|
+
}
|
|
57
|
+
export function renameSession(uuid, name) {
|
|
58
|
+
const records = loadSessions();
|
|
59
|
+
const rec = records.find(r => r.uuid === uuid);
|
|
60
|
+
if (!rec)
|
|
61
|
+
return false;
|
|
62
|
+
rec.name = name;
|
|
63
|
+
rec.renamed = true;
|
|
64
|
+
rec.updatedAt = new Date().toISOString();
|
|
65
|
+
saveSessions(records);
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
/** Apply an auto-generated title. No-op if the user already renamed the session. */
|
|
69
|
+
export function setTitle(uuid, title) {
|
|
70
|
+
const records = loadSessions();
|
|
71
|
+
const rec = records.find(r => r.uuid === uuid);
|
|
72
|
+
if (!rec || rec.renamed)
|
|
73
|
+
return;
|
|
74
|
+
rec.name = title;
|
|
75
|
+
rec.titled = true;
|
|
76
|
+
saveSessions(records);
|
|
77
|
+
}
|
|
78
|
+
export function slugify(text, maxWords = 6) {
|
|
79
|
+
const words = text
|
|
80
|
+
.toLowerCase()
|
|
81
|
+
.replace(/[^a-z0-9\s-]/g, '')
|
|
82
|
+
.split(/\s+/)
|
|
83
|
+
.filter(Boolean)
|
|
84
|
+
.slice(0, maxWords);
|
|
85
|
+
return words.join('-') || 'session';
|
|
86
|
+
}
|
|
87
|
+
export function relativeTime(iso) {
|
|
88
|
+
const ms = Date.now() - new Date(iso).getTime();
|
|
89
|
+
const min = Math.floor(ms / 60_000);
|
|
90
|
+
if (min < 1)
|
|
91
|
+
return 'just now';
|
|
92
|
+
if (min < 60)
|
|
93
|
+
return `${min}m ago`;
|
|
94
|
+
const hr = Math.floor(min / 60);
|
|
95
|
+
if (hr < 24)
|
|
96
|
+
return `${hr}h ago`;
|
|
97
|
+
const day = Math.floor(hr / 24);
|
|
98
|
+
return `${day}d ago`;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=sessionStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionStore.js","sourceRoot":"","sources":["../../src/lib/sessionStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One-shot background Haiku call to title a session, Claude Code-style.
|
|
3
|
+
* Goes through the Agent SDK (not the raw API) so it works in both API-key
|
|
4
|
+
* and subscription auth modes. Returns null on any failure — callers keep
|
|
5
|
+
* the slug fallback.
|
|
6
|
+
*/
|
|
7
|
+
export declare function generateTitle(firstPrompt: string, cwd: string): Promise<string | null>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { query } from '@anthropic-ai/claude-agent-sdk';
|
|
2
|
+
const TIMEOUT_MS = 60_000;
|
|
3
|
+
/**
|
|
4
|
+
* One-shot background Haiku call to title a session, Claude Code-style.
|
|
5
|
+
* Goes through the Agent SDK (not the raw API) so it works in both API-key
|
|
6
|
+
* and subscription auth modes. Returns null on any failure — callers keep
|
|
7
|
+
* the slug fallback.
|
|
8
|
+
*/
|
|
9
|
+
export async function generateTitle(firstPrompt, cwd) {
|
|
10
|
+
try {
|
|
11
|
+
const result = await Promise.race([run(firstPrompt, cwd), timeout()]);
|
|
12
|
+
return result;
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
async function run(firstPrompt, cwd) {
|
|
19
|
+
const q = query({
|
|
20
|
+
prompt: [
|
|
21
|
+
'Generate a short session title for a documentation-writing session that started with this request:',
|
|
22
|
+
'',
|
|
23
|
+
firstPrompt.slice(0, 500),
|
|
24
|
+
'',
|
|
25
|
+
'Reply with ONLY the title: 3-6 words, lowercase, kebab-case, no quotes, no punctuation.',
|
|
26
|
+
].join('\n'),
|
|
27
|
+
options: {
|
|
28
|
+
cwd,
|
|
29
|
+
model: 'haiku',
|
|
30
|
+
maxTurns: 1,
|
|
31
|
+
settingSources: [],
|
|
32
|
+
systemPrompt: 'You generate terse kebab-case session titles. Output only the title, nothing else.',
|
|
33
|
+
allowedTools: [],
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
for await (const msg of q) {
|
|
37
|
+
const m = msg;
|
|
38
|
+
if (m.type === 'result') {
|
|
39
|
+
if (m.subtype === 'success' && typeof m.result === 'string') {
|
|
40
|
+
return sanitize(m.result);
|
|
41
|
+
}
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
function timeout() {
|
|
48
|
+
return new Promise(resolve => setTimeout(() => resolve(null), TIMEOUT_MS).unref());
|
|
49
|
+
}
|
|
50
|
+
function sanitize(raw) {
|
|
51
|
+
const title = raw
|
|
52
|
+
.trim()
|
|
53
|
+
.toLowerCase()
|
|
54
|
+
.replace(/[^a-z0-9\s-]/g, '')
|
|
55
|
+
.replace(/\s+/g, '-')
|
|
56
|
+
.replace(/-+/g, '-')
|
|
57
|
+
.replace(/^-|-$/g, '')
|
|
58
|
+
.split('-')
|
|
59
|
+
.slice(0, 8)
|
|
60
|
+
.join('-')
|
|
61
|
+
.slice(0, 60);
|
|
62
|
+
return title.length >= 3 ? title : null;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=titleGen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"titleGen.js","sourceRoot":"","sources":["../../src/lib/titleGen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAEvD,MAAM,UAAU,GAAG,MAAM,CAAC;AAE1B;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAmB,EAAE,GAAW;IAClE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACtE,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,GAAG,CAAC,WAAmB,EAAE,GAAW;IACjD,MAAM,CAAC,GAAG,KAAK,CAAC;QACd,MAAM,EAAE;YACN,oGAAoG;YACpG,EAAE;YACF,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACzB,EAAE;YACF,yFAAyF;SAC1F,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,OAAO,EAAE;YACP,GAAG;YACH,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,CAAC;YACX,cAAc,EAAE,EAAE;YAClB,YAAY,EAAE,oFAAoF;YAClG,YAAY,EAAE,EAAE;SACjB;KACF,CAAC,CAAC;IACH,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,GAA2D,CAAC;QACtE,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC5D,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,OAAO;IACd,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IAC3B,MAAM,KAAK,GAAG,GAAG;SACd,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;SAC5B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,KAAK,CAAC,GAAG,CAAC;SACV,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,IAAI,CAAC,GAAG,CAAC;SACT,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI-agnostic event emitted while the agent works. Wrappers (terminal/desktop)
|
|
3
|
+
* render these; the engine never prints. All variants are plain JSON (IPC-ready).
|
|
4
|
+
*/
|
|
5
|
+
export type EngineEvent = {
|
|
6
|
+
type: 'session';
|
|
7
|
+
sessionId: string;
|
|
8
|
+
} | {
|
|
9
|
+
type: 'text';
|
|
10
|
+
delta: string;
|
|
11
|
+
} | {
|
|
12
|
+
type: 'tool';
|
|
13
|
+
name: string;
|
|
14
|
+
} | {
|
|
15
|
+
type: 'result';
|
|
16
|
+
inputTokens: number;
|
|
17
|
+
outputTokens: number;
|
|
18
|
+
ok: boolean;
|
|
19
|
+
} | {
|
|
20
|
+
type: 'error';
|
|
21
|
+
kind: 'auth' | 'agent';
|
|
22
|
+
message: string;
|
|
23
|
+
};
|
|
24
|
+
export type CreateSessionOptions = {
|
|
25
|
+
cwd?: string;
|
|
26
|
+
/** Resume an existing engine session by its UUID. */
|
|
27
|
+
resume?: string;
|
|
28
|
+
/** Connection profile name; defaults to the repo's defaultProfile. */
|
|
29
|
+
profileName?: string;
|
|
30
|
+
/** Authorize writes on a production profile (terminal: /allow-prod, one-shot: --yes). */
|
|
31
|
+
allowProdWrites?: boolean;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* A persistent conversation with the documentation agent. `send()` streams typed
|
|
35
|
+
* EngineEvents for one user turn; the session stays open for further turns until close().
|
|
36
|
+
*/
|
|
37
|
+
export declare class EngineSession {
|
|
38
|
+
private readonly queue;
|
|
39
|
+
private readonly iterator;
|
|
40
|
+
/** The engine's own session UUID, once revealed (for resume/persistence). */
|
|
41
|
+
sessionId: string | null;
|
|
42
|
+
constructor(opts?: CreateSessionOptions);
|
|
43
|
+
/** Send one user turn; yields EngineEvents until the agent produces its result. */
|
|
44
|
+
send(text: string): AsyncIterable<EngineEvent>;
|
|
45
|
+
close(): void;
|
|
46
|
+
}
|
|
47
|
+
export declare function createSession(opts?: CreateSessionOptions): EngineSession;
|