real-link-ai 1.6.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 +79 -0
- package/dist/commands/agent.d.ts +3 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +120 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/asset.d.ts +3 -0
- package/dist/commands/asset.d.ts.map +1 -0
- package/dist/commands/asset.js +53 -0
- package/dist/commands/asset.js.map +1 -0
- package/dist/commands/bug.d.ts +3 -0
- package/dist/commands/bug.d.ts.map +1 -0
- package/dist/commands/bug.js +179 -0
- package/dist/commands/bug.js.map +1 -0
- package/dist/commands/call.d.ts +3 -0
- package/dist/commands/call.d.ts.map +1 -0
- package/dist/commands/call.js +116 -0
- package/dist/commands/call.js.map +1 -0
- package/dist/commands/game.d.ts +3 -0
- package/dist/commands/game.d.ts.map +1 -0
- package/dist/commands/game.js +291 -0
- package/dist/commands/game.js.map +1 -0
- package/dist/commands/learning.d.ts +3 -0
- package/dist/commands/learning.d.ts.map +1 -0
- package/dist/commands/learning.js +83 -0
- package/dist/commands/learning.js.map +1 -0
- package/dist/commands/login.d.ts +5 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +102 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/loop.d.ts +3 -0
- package/dist/commands/loop.d.ts.map +1 -0
- package/dist/commands/loop.js +382 -0
- package/dist/commands/loop.js.map +1 -0
- package/dist/commands/memory.d.ts +3 -0
- package/dist/commands/memory.d.ts.map +1 -0
- package/dist/commands/memory.js +80 -0
- package/dist/commands/memory.js.map +1 -0
- package/dist/commands/message.d.ts +3 -0
- package/dist/commands/message.d.ts.map +1 -0
- package/dist/commands/message.js +80 -0
- package/dist/commands/message.js.map +1 -0
- package/dist/commands/onboarding.d.ts +3 -0
- package/dist/commands/onboarding.d.ts.map +1 -0
- package/dist/commands/onboarding.js +100 -0
- package/dist/commands/onboarding.js.map +1 -0
- package/dist/commands/ops.d.ts +3 -0
- package/dist/commands/ops.d.ts.map +1 -0
- package/dist/commands/ops.js +80 -0
- package/dist/commands/ops.js.map +1 -0
- package/dist/commands/orchestrate.d.ts +3 -0
- package/dist/commands/orchestrate.d.ts.map +1 -0
- package/dist/commands/orchestrate.js +91 -0
- package/dist/commands/orchestrate.js.map +1 -0
- package/dist/commands/plan.d.ts +3 -0
- package/dist/commands/plan.d.ts.map +1 -0
- package/dist/commands/plan.js +157 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/signal.d.ts +3 -0
- package/dist/commands/signal.d.ts.map +1 -0
- package/dist/commands/signal.js +50 -0
- package/dist/commands/signal.js.map +1 -0
- package/dist/commands/system.d.ts +3 -0
- package/dist/commands/system.d.ts.map +1 -0
- package/dist/commands/system.js +110 -0
- package/dist/commands/system.js.map +1 -0
- package/dist/commands/task.d.ts +3 -0
- package/dist/commands/task.d.ts.map +1 -0
- package/dist/commands/task.js +222 -0
- package/dist/commands/task.js.map +1 -0
- package/dist/commands/wish.d.ts +3 -0
- package/dist/commands/wish.d.ts.map +1 -0
- package/dist/commands/wish.js +133 -0
- package/dist/commands/wish.js.map +1 -0
- package/dist/commands/work.d.ts +3 -0
- package/dist/commands/work.d.ts.map +1 -0
- package/dist/commands/work.js +533 -0
- package/dist/commands/work.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +55 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api.d.ts +11 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +74 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/config.d.ts +23 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +50 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/doc-sync.d.ts +31 -0
- package/dist/lib/doc-sync.d.ts.map +1 -0
- package/dist/lib/doc-sync.js +145 -0
- package/dist/lib/doc-sync.js.map +1 -0
- package/dist/lib/production-pack.d.ts +73 -0
- package/dist/lib/production-pack.d.ts.map +1 -0
- package/dist/lib/production-pack.js +282 -0
- package/dist/lib/production-pack.js.map +1 -0
- package/dist/lib/storyworld-sync.d.ts +30 -0
- package/dist/lib/storyworld-sync.d.ts.map +1 -0
- package/dist/lib/storyworld-sync.js +437 -0
- package/dist/lib/storyworld-sync.js.map +1 -0
- package/dist/lib/thriller-vn.d.ts +38 -0
- package/dist/lib/thriller-vn.d.ts.map +1 -0
- package/dist/lib/thriller-vn.js +1106 -0
- package/dist/lib/thriller-vn.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAUD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAYlE;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,QAAQ,CAAC,CA8BnB;AAED,wBAAsB,OAAO,CAAC,CAAC,GAAG,OAAO,EACvC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,CAAC,CAAC,CAmBZ"}
|
package/dist/lib/api.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildApiUrl = buildApiUrl;
|
|
4
|
+
exports.apiRequest = apiRequest;
|
|
5
|
+
exports.apiCall = apiCall;
|
|
6
|
+
const config_js_1 = require("./config.js");
|
|
7
|
+
function normalizeApiPath(path) {
|
|
8
|
+
if (/^https?:\/\//i.test(path))
|
|
9
|
+
return path;
|
|
10
|
+
if (path.startsWith("/api/v1/"))
|
|
11
|
+
return path;
|
|
12
|
+
if (path === "/api/v1")
|
|
13
|
+
return path;
|
|
14
|
+
if (path.startsWith("/"))
|
|
15
|
+
return `/api/v1${path}`;
|
|
16
|
+
return `/api/v1/${path}`;
|
|
17
|
+
}
|
|
18
|
+
function buildApiUrl(path, apiBase) {
|
|
19
|
+
const config = (0, config_js_1.resolveConfig)();
|
|
20
|
+
const base = apiBase || config.apiUrl;
|
|
21
|
+
const normalizedBase = base.endsWith("/") ? base.slice(0, -1) : base;
|
|
22
|
+
const baseWithoutVersion = normalizedBase.replace(/\/api\/v1$/i, "");
|
|
23
|
+
const normalizedPath = normalizeApiPath(path);
|
|
24
|
+
if (/^https?:\/\//i.test(normalizedPath)) {
|
|
25
|
+
return normalizedPath;
|
|
26
|
+
}
|
|
27
|
+
return `${baseWithoutVersion}${normalizedPath}`;
|
|
28
|
+
}
|
|
29
|
+
async function apiRequest(path, options = {}) {
|
|
30
|
+
const config = (0, config_js_1.resolveConfig)();
|
|
31
|
+
const url = buildApiUrl(path, config.apiUrl);
|
|
32
|
+
const headers = {};
|
|
33
|
+
let body;
|
|
34
|
+
// Add auth headers if configured
|
|
35
|
+
if (!options.skipAuth && config.apiKey) {
|
|
36
|
+
headers["x-api-key"] = config.apiKey;
|
|
37
|
+
}
|
|
38
|
+
if (!options.skipAuth && config.workspaceId) {
|
|
39
|
+
headers["x-workspace-id"] = config.workspaceId;
|
|
40
|
+
}
|
|
41
|
+
Object.assign(headers, options.headers);
|
|
42
|
+
if (options.formData) {
|
|
43
|
+
body = options.formData;
|
|
44
|
+
}
|
|
45
|
+
else if (options.body) {
|
|
46
|
+
headers["content-type"] = "application/json";
|
|
47
|
+
body = JSON.stringify(options.body);
|
|
48
|
+
}
|
|
49
|
+
const response = await fetch(url, {
|
|
50
|
+
method: options.method || (options.body || options.formData ? "POST" : "GET"),
|
|
51
|
+
headers,
|
|
52
|
+
body,
|
|
53
|
+
});
|
|
54
|
+
return response;
|
|
55
|
+
}
|
|
56
|
+
async function apiCall(path, options = {}) {
|
|
57
|
+
const response = await apiRequest(path, options);
|
|
58
|
+
const raw = await response.text();
|
|
59
|
+
let data = {};
|
|
60
|
+
if (raw) {
|
|
61
|
+
try {
|
|
62
|
+
data = JSON.parse(raw);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
throw new Error(`Expected JSON response from ${path}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (!response.ok || !data.ok) {
|
|
69
|
+
const error = data.error || `HTTP ${response.status}`;
|
|
70
|
+
throw new Error(error);
|
|
71
|
+
}
|
|
72
|
+
return data.data;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
declare const CONFIG_PATH: string;
|
|
2
|
+
declare const CONFIG_PATH_DISPLAY = "~/.reallink-agent.json";
|
|
3
|
+
export interface AgentConfig {
|
|
4
|
+
agentId: string;
|
|
5
|
+
name: string;
|
|
6
|
+
engine: "claude-code" | "codex" | "aider" | "custom";
|
|
7
|
+
apiUrl: string;
|
|
8
|
+
capabilities: {
|
|
9
|
+
languages: string[];
|
|
10
|
+
domains: string[];
|
|
11
|
+
engines: string[];
|
|
12
|
+
modalities: string[];
|
|
13
|
+
};
|
|
14
|
+
machineFingerprint?: string;
|
|
15
|
+
apiKey?: string;
|
|
16
|
+
workspaceId?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function loadConfig(): AgentConfig;
|
|
19
|
+
export declare function saveConfig(config: AgentConfig): void;
|
|
20
|
+
export declare function configExists(): boolean;
|
|
21
|
+
export declare function resolveConfig(): AgentConfig;
|
|
22
|
+
export { CONFIG_PATH, CONFIG_PATH_DISPLAY };
|
|
23
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,WAAW,QAA0C,CAAC;AAC5D,QAAA,MAAM,mBAAmB,2BAA2B,CAAC;AAErD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE;QACZ,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;IACF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAeD,wBAAgB,UAAU,IAAI,WAAW,CAMxC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAEpD;AAED,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,aAAa,IAAI,WAAW,CAU3C;AAED,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CONFIG_PATH_DISPLAY = exports.CONFIG_PATH = void 0;
|
|
4
|
+
exports.loadConfig = loadConfig;
|
|
5
|
+
exports.saveConfig = saveConfig;
|
|
6
|
+
exports.configExists = configExists;
|
|
7
|
+
exports.resolveConfig = resolveConfig;
|
|
8
|
+
const fs_1 = require("fs");
|
|
9
|
+
const path_1 = require("path");
|
|
10
|
+
const os_1 = require("os");
|
|
11
|
+
const CONFIG_PATH = (0, path_1.join)((0, os_1.homedir)(), ".reallink-agent.json");
|
|
12
|
+
exports.CONFIG_PATH = CONFIG_PATH;
|
|
13
|
+
const CONFIG_PATH_DISPLAY = "~/.reallink-agent.json";
|
|
14
|
+
exports.CONFIG_PATH_DISPLAY = CONFIG_PATH_DISPLAY;
|
|
15
|
+
const DEFAULT_CONFIG = {
|
|
16
|
+
agentId: "",
|
|
17
|
+
name: "",
|
|
18
|
+
engine: "claude-code",
|
|
19
|
+
apiUrl: "https://api.real-link.ai",
|
|
20
|
+
capabilities: {
|
|
21
|
+
languages: ["typescript"],
|
|
22
|
+
domains: ["general"],
|
|
23
|
+
engines: [],
|
|
24
|
+
modalities: ["code"],
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
function loadConfig() {
|
|
28
|
+
if (!(0, fs_1.existsSync)(CONFIG_PATH)) {
|
|
29
|
+
return DEFAULT_CONFIG;
|
|
30
|
+
}
|
|
31
|
+
const raw = (0, fs_1.readFileSync)(CONFIG_PATH, "utf-8");
|
|
32
|
+
return { ...DEFAULT_CONFIG, ...JSON.parse(raw) };
|
|
33
|
+
}
|
|
34
|
+
function saveConfig(config) {
|
|
35
|
+
(0, fs_1.writeFileSync)(CONFIG_PATH, JSON.stringify(config, null, 2), { mode: 0o600 });
|
|
36
|
+
}
|
|
37
|
+
function configExists() {
|
|
38
|
+
return (0, fs_1.existsSync)(CONFIG_PATH);
|
|
39
|
+
}
|
|
40
|
+
function resolveConfig() {
|
|
41
|
+
const config = loadConfig();
|
|
42
|
+
return {
|
|
43
|
+
...config,
|
|
44
|
+
agentId: process.env.REAL_LINK_AGENT_ID || config.agentId,
|
|
45
|
+
apiUrl: process.env.REAL_LINK_API_URL || config.apiUrl,
|
|
46
|
+
apiKey: process.env.REAL_LINK_API_KEY || config.apiKey,
|
|
47
|
+
workspaceId: process.env.REAL_LINK_WORKSPACE_ID || process.env.REAL_LINK_WORKSPACE || config.workspaceId,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":";;;AAoCA,gCAMC;AAED,gCAEC;AAED,oCAEC;AAED,sCAUC;AA9DD,2BAA6D;AAC7D,+BAA4B;AAC5B,2BAA6B;AAE7B,MAAM,WAAW,GAAG,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,sBAAsB,CAAC,CAAC;AA4DnD,kCAAW;AA3DpB,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;AA2D/B,kDAAmB;AAzCzC,MAAM,cAAc,GAAgB;IAClC,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,0BAA0B;IAClC,YAAY,EAAE;QACZ,SAAS,EAAE,CAAC,YAAY,CAAC;QACzB,OAAO,EAAE,CAAC,SAAS,CAAC;QACpB,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,CAAC,MAAM,CAAC;KACrB;CACF,CAAC;AAEF,SAAgB,UAAU;IACxB,IAAI,CAAC,IAAA,eAAU,EAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,MAAM,GAAG,GAAG,IAAA,iBAAY,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AACnD,CAAC;AAED,SAAgB,UAAU,CAAC,MAAmB;IAC5C,IAAA,kBAAa,EAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,SAAgB,YAAY;IAC1B,OAAO,IAAA,eAAU,EAAC,WAAW,CAAC,CAAC;AACjC,CAAC;AAED,SAAgB,aAAa;IAC3B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,OAAO;QACL,GAAG,MAAM;QACT,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,CAAC,OAAO;QACzD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC,MAAM;QACtD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC,MAAM;QACtD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,MAAM,CAAC,WAAW;KACzG,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
type MemoryLayer = "episodic" | "semantic" | "procedural" | "working";
|
|
2
|
+
export interface SyncDocOptions {
|
|
3
|
+
files: string[];
|
|
4
|
+
taskId?: string;
|
|
5
|
+
gameId?: string;
|
|
6
|
+
namespace?: string;
|
|
7
|
+
memoryKeyPrefix?: string;
|
|
8
|
+
artifactType?: string;
|
|
9
|
+
role?: string;
|
|
10
|
+
status?: string;
|
|
11
|
+
title?: string;
|
|
12
|
+
summary?: string;
|
|
13
|
+
layer?: MemoryLayer;
|
|
14
|
+
agentId?: string;
|
|
15
|
+
memoryOnly?: boolean;
|
|
16
|
+
artifactOnly?: boolean;
|
|
17
|
+
cwd?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface SyncedDocResult {
|
|
20
|
+
filePath: string;
|
|
21
|
+
relativePath: string;
|
|
22
|
+
title: string;
|
|
23
|
+
memoryKey: string | null;
|
|
24
|
+
artifactId: string | null;
|
|
25
|
+
sha256: string;
|
|
26
|
+
bytes: number;
|
|
27
|
+
lineCount: number;
|
|
28
|
+
}
|
|
29
|
+
export declare function syncDocs(options: SyncDocOptions): Promise<SyncedDocResult[]>;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=doc-sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-sync.d.ts","sourceRoot":"","sources":["../../src/lib/doc-sync.ts"],"names":[],"mappings":"AAMA,KAAK,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,CAAC;AAUtE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AA6ED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CA8FlF"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.syncDocs = syncDocs;
|
|
4
|
+
const node_crypto_1 = require("node:crypto");
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
|
+
const api_js_1 = require("./api.js");
|
|
8
|
+
const config_js_1 = require("./config.js");
|
|
9
|
+
function toPosixPath(value) {
|
|
10
|
+
return value.replace(/\\/g, "/");
|
|
11
|
+
}
|
|
12
|
+
function buildUri(relativePath, absolutePath) {
|
|
13
|
+
if (relativePath.startsWith("..")) {
|
|
14
|
+
return `path://${toPosixPath(absolutePath)}`;
|
|
15
|
+
}
|
|
16
|
+
return `repo://${toPosixPath(relativePath)}`;
|
|
17
|
+
}
|
|
18
|
+
function buildMemoryKey(relativePath, options) {
|
|
19
|
+
if (options.memoryKeyPrefix) {
|
|
20
|
+
return `${options.memoryKeyPrefix.replace(/\/+$/, "")}/${toPosixPath(relativePath)}`;
|
|
21
|
+
}
|
|
22
|
+
if (options.gameId) {
|
|
23
|
+
return `games/${options.gameId}/docs/${toPosixPath(relativePath)}`;
|
|
24
|
+
}
|
|
25
|
+
return `docs/${toPosixPath(relativePath)}`;
|
|
26
|
+
}
|
|
27
|
+
function defaultTitle(relativePath) {
|
|
28
|
+
const base = (0, node_path_1.basename)(relativePath).replace(/\.[^.]+$/, "");
|
|
29
|
+
return base.replace(/[-_]+/g, " ").trim() || relativePath;
|
|
30
|
+
}
|
|
31
|
+
function summarizeMarkdown(content, fallbackTitle) {
|
|
32
|
+
const lines = content
|
|
33
|
+
.split(/\r?\n/)
|
|
34
|
+
.map((line) => line.trim())
|
|
35
|
+
.filter(Boolean);
|
|
36
|
+
const firstMeaningful = lines.find((line) => !/^[-*]\s*$/.test(line)) || fallbackTitle;
|
|
37
|
+
const normalized = firstMeaningful.replace(/^#+\s*/, "").replace(/^[-*]\s+/, "");
|
|
38
|
+
const clipped = normalized.length > 140 ? `${normalized.slice(0, 137)}...` : normalized;
|
|
39
|
+
return clipped || fallbackTitle;
|
|
40
|
+
}
|
|
41
|
+
function buildArtifactMatchKey(input) {
|
|
42
|
+
return `${input.title.trim().toLowerCase()}::${(input.artifactType || "doc").trim().toLowerCase()}::${(input.role || "context").trim().toLowerCase()}`;
|
|
43
|
+
}
|
|
44
|
+
async function upsertTaskArtifact(taskId, body) {
|
|
45
|
+
const existingArtifacts = await (0, api_js_1.apiCall)(`/tasks/${taskId}/artifacts`);
|
|
46
|
+
const match = existingArtifacts.find((artifact) => artifact.uri && artifact.uri === body.uri)
|
|
47
|
+
|| existingArtifacts.find((artifact) => buildArtifactMatchKey(artifact) === buildArtifactMatchKey(body));
|
|
48
|
+
if (match) {
|
|
49
|
+
await (0, api_js_1.apiCall)(`/tasks/${taskId}/artifacts/${match.id}`, {
|
|
50
|
+
method: "PATCH",
|
|
51
|
+
body,
|
|
52
|
+
});
|
|
53
|
+
return match.id;
|
|
54
|
+
}
|
|
55
|
+
const created = await (0, api_js_1.apiCall)(`/tasks/${taskId}/artifacts`, {
|
|
56
|
+
body,
|
|
57
|
+
});
|
|
58
|
+
return created.id;
|
|
59
|
+
}
|
|
60
|
+
async function syncDocs(options) {
|
|
61
|
+
if (options.memoryOnly && options.artifactOnly) {
|
|
62
|
+
throw new Error("Choose either --memory-only or --artifact-only, not both");
|
|
63
|
+
}
|
|
64
|
+
if (!options.files.length) {
|
|
65
|
+
throw new Error("At least one file is required");
|
|
66
|
+
}
|
|
67
|
+
if (options.files.length > 1 && options.title) {
|
|
68
|
+
throw new Error("--title can only be used when syncing a single file");
|
|
69
|
+
}
|
|
70
|
+
if (options.artifactOnly && !options.taskId) {
|
|
71
|
+
throw new Error("--artifact-only requires --task-id");
|
|
72
|
+
}
|
|
73
|
+
const config = (0, config_js_1.resolveConfig)();
|
|
74
|
+
const agentId = options.agentId || config.agentId;
|
|
75
|
+
const shouldSyncMemory = !options.artifactOnly;
|
|
76
|
+
const shouldSyncArtifact = !!options.taskId && !options.memoryOnly;
|
|
77
|
+
if (shouldSyncMemory && !agentId) {
|
|
78
|
+
throw new Error("Memory sync requires an agentId. Run `rlcreate agent register` or pass --agent-id");
|
|
79
|
+
}
|
|
80
|
+
const cwd = options.cwd || process.cwd();
|
|
81
|
+
const results = [];
|
|
82
|
+
for (const inputPath of options.files) {
|
|
83
|
+
const absolutePath = (0, node_path_1.resolve)(cwd, inputPath);
|
|
84
|
+
if (!(0, node_fs_1.existsSync)(absolutePath)) {
|
|
85
|
+
throw new Error(`Document not found: ${inputPath}`);
|
|
86
|
+
}
|
|
87
|
+
const stats = (0, node_fs_1.statSync)(absolutePath);
|
|
88
|
+
if (!stats.isFile()) {
|
|
89
|
+
throw new Error(`Not a file: ${inputPath}`);
|
|
90
|
+
}
|
|
91
|
+
const raw = (0, node_fs_1.readFileSync)(absolutePath, "utf8");
|
|
92
|
+
const relativePath = toPosixPath((0, node_path_1.relative)(cwd, absolutePath));
|
|
93
|
+
const title = options.title || defaultTitle(relativePath);
|
|
94
|
+
const summary = options.summary || summarizeMarkdown(raw, title);
|
|
95
|
+
const sha256 = (0, node_crypto_1.createHash)("sha256").update(raw).digest("hex");
|
|
96
|
+
const lineCount = raw.split(/\r?\n/).length;
|
|
97
|
+
const memoryKey = shouldSyncMemory ? buildMemoryKey(relativePath, options) : null;
|
|
98
|
+
const uri = buildUri(relativePath, absolutePath);
|
|
99
|
+
if (shouldSyncMemory) {
|
|
100
|
+
await (0, api_js_1.apiCall)("/memory/store", {
|
|
101
|
+
body: {
|
|
102
|
+
namespace: options.namespace || "shared",
|
|
103
|
+
key: memoryKey,
|
|
104
|
+
value: raw,
|
|
105
|
+
agentId,
|
|
106
|
+
layer: options.layer || "semantic",
|
|
107
|
+
category: options.artifactType || "doc",
|
|
108
|
+
},
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
let artifactId = null;
|
|
112
|
+
if (shouldSyncArtifact && options.taskId) {
|
|
113
|
+
artifactId = await upsertTaskArtifact(options.taskId, {
|
|
114
|
+
title,
|
|
115
|
+
summary,
|
|
116
|
+
artifactType: options.artifactType || "doc",
|
|
117
|
+
role: options.role || "context",
|
|
118
|
+
status: options.status || "delivered",
|
|
119
|
+
uri,
|
|
120
|
+
metadata: {
|
|
121
|
+
gameId: options.gameId || null,
|
|
122
|
+
sourcePath: relativePath,
|
|
123
|
+
sha256,
|
|
124
|
+
bytes: stats.size,
|
|
125
|
+
lineCount,
|
|
126
|
+
memoryNamespace: options.namespace || "shared",
|
|
127
|
+
memoryKey,
|
|
128
|
+
syncedAt: new Date().toISOString(),
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
results.push({
|
|
133
|
+
filePath: absolutePath,
|
|
134
|
+
relativePath,
|
|
135
|
+
title,
|
|
136
|
+
memoryKey,
|
|
137
|
+
artifactId,
|
|
138
|
+
sha256,
|
|
139
|
+
bytes: stats.size,
|
|
140
|
+
lineCount,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
return results;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=doc-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-sync.js","sourceRoot":"","sources":["../../src/lib/doc-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export interface ProductionPackArtifact {
|
|
2
|
+
taskKey: string;
|
|
3
|
+
title: string;
|
|
4
|
+
artifactType?: string;
|
|
5
|
+
role?: string;
|
|
6
|
+
status?: string;
|
|
7
|
+
summary?: string;
|
|
8
|
+
uri?: string;
|
|
9
|
+
metadata?: Record<string, unknown>;
|
|
10
|
+
}
|
|
11
|
+
export interface ProductionPackTask {
|
|
12
|
+
key: string;
|
|
13
|
+
title: string;
|
|
14
|
+
description: string;
|
|
15
|
+
type?: string;
|
|
16
|
+
priority?: number;
|
|
17
|
+
dependsOn?: string[];
|
|
18
|
+
requiredCapabilities?: string[];
|
|
19
|
+
preferredCapabilities?: string[];
|
|
20
|
+
packet?: {
|
|
21
|
+
inputs?: string[];
|
|
22
|
+
expectedOutputs?: string[];
|
|
23
|
+
acceptanceChecks?: string[];
|
|
24
|
+
artifactTargets?: Array<{
|
|
25
|
+
title: string;
|
|
26
|
+
artifactType?: string;
|
|
27
|
+
role?: string;
|
|
28
|
+
status?: string;
|
|
29
|
+
summary?: string;
|
|
30
|
+
}>;
|
|
31
|
+
narrativeGoals?: string[];
|
|
32
|
+
notes?: string[];
|
|
33
|
+
};
|
|
34
|
+
metadata?: Record<string, unknown>;
|
|
35
|
+
}
|
|
36
|
+
export interface ProductionPack {
|
|
37
|
+
version: string;
|
|
38
|
+
game: {
|
|
39
|
+
name: string;
|
|
40
|
+
description?: string;
|
|
41
|
+
engine?: string;
|
|
42
|
+
repoPath?: string;
|
|
43
|
+
};
|
|
44
|
+
plan: {
|
|
45
|
+
title?: string;
|
|
46
|
+
goal: string;
|
|
47
|
+
strategy?: string;
|
|
48
|
+
constraints?: string[];
|
|
49
|
+
createdBy?: string;
|
|
50
|
+
};
|
|
51
|
+
tasks: ProductionPackTask[];
|
|
52
|
+
artifacts?: ProductionPackArtifact[];
|
|
53
|
+
}
|
|
54
|
+
export interface ApplyProductionPackOptions {
|
|
55
|
+
packPath: string;
|
|
56
|
+
gameId?: string;
|
|
57
|
+
planId?: string;
|
|
58
|
+
dryRun?: boolean;
|
|
59
|
+
}
|
|
60
|
+
export interface ApplyProductionPackResult {
|
|
61
|
+
packPath: string;
|
|
62
|
+
gameId: string | null;
|
|
63
|
+
gameCreated: boolean;
|
|
64
|
+
planId: string | null;
|
|
65
|
+
tasksCreated: number;
|
|
66
|
+
tasksSynced: number;
|
|
67
|
+
artifactsLinked: number;
|
|
68
|
+
taskKeys: string[];
|
|
69
|
+
title: string;
|
|
70
|
+
}
|
|
71
|
+
export declare function loadProductionPack(packPath: string): ProductionPack;
|
|
72
|
+
export declare function applyProductionPack(options: ApplyProductionPackOptions): Promise<ApplyProductionPackResult>;
|
|
73
|
+
//# sourceMappingURL=production-pack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"production-pack.d.ts","sourceRoot":"","sources":["../../src/lib/production-pack.ts"],"names":[],"mappings":"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"}
|