@llblab/pi-kit 0.22.2 → 0.23.1
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/CHANGELOG.md +12 -0
- package/README.md +5 -5
- package/node_modules/@llblab/pi-actors/AGENTS.md +4 -1
- package/node_modules/@llblab/pi-actors/CHANGELOG.md +10 -0
- package/node_modules/@llblab/pi-actors/README.md +2 -2
- package/node_modules/@llblab/pi-actors/dist/index.js +4 -1
- package/node_modules/@llblab/pi-actors/dist/lib/inspector-overlay.js +2 -1
- package/node_modules/@llblab/pi-actors/dist/lib/paths.d.ts +6 -0
- package/node_modules/@llblab/pi-actors/dist/lib/paths.js +19 -1
- package/node_modules/@llblab/pi-actors/dist/lib/trace-projection.d.ts +2 -0
- package/node_modules/@llblab/pi-actors/dist/lib/trace-projection.js +11 -7
- package/node_modules/@llblab/pi-actors/dist/scripts/build-dist.mjs +94 -30
- package/node_modules/@llblab/pi-actors/docs/actor-inspector.md +1 -1
- package/node_modules/@llblab/pi-actors/index.ts +6 -3
- package/node_modules/@llblab/pi-actors/lib/inspector-overlay.ts +2 -1
- package/node_modules/@llblab/pi-actors/lib/paths.ts +27 -1
- package/node_modules/@llblab/pi-actors/lib/trace-projection.ts +13 -6
- package/node_modules/@llblab/pi-actors/package.json +3 -8
- package/node_modules/@llblab/pi-actors/scripts/build-dist.mjs +94 -30
- package/node_modules/@llblab/pi-grow-loop/AGENTS.md +10 -6
- package/node_modules/@llblab/pi-grow-loop/CHANGELOG.md +7 -0
- package/node_modules/@llblab/pi-grow-loop/README.md +2 -0
- package/node_modules/@llblab/pi-grow-loop/dist/index.d.ts +33 -0
- package/node_modules/@llblab/pi-grow-loop/dist/index.js +286 -0
- package/node_modules/@llblab/pi-grow-loop/dist/pi-grow-loop/index.d.ts +1 -0
- package/node_modules/@llblab/pi-grow-loop/dist/pi-grow-loop/index.js +1 -0
- package/node_modules/@llblab/pi-grow-loop/dist/skills/grow-loop/SKILL.md +117 -0
- package/node_modules/@llblab/pi-grow-loop/dist/skills/while-true/SKILL.md +233 -0
- package/node_modules/@llblab/pi-grow-loop/index.ts +67 -12
- package/node_modules/@llblab/pi-grow-loop/package.json +9 -8
- package/node_modules/@llblab/pi-state-flow/AGENTS.md +23 -17
- package/node_modules/@llblab/pi-state-flow/BACKLOG.md +5 -3
- package/node_modules/@llblab/pi-state-flow/CHANGELOG.md +11 -0
- package/node_modules/@llblab/pi-state-flow/README.md +18 -6
- package/node_modules/@llblab/pi-state-flow/dist/index.d.ts +2 -1
- package/node_modules/@llblab/pi-state-flow/dist/index.js +1 -0
- package/node_modules/@llblab/pi-state-flow/dist/lib/artifact.d.ts +2 -2
- package/node_modules/@llblab/pi-state-flow/dist/lib/artifact.js +5 -5
- package/node_modules/@llblab/pi-state-flow/dist/lib/context.d.ts +3 -2
- package/node_modules/@llblab/pi-state-flow/dist/lib/context.js +7 -2
- package/node_modules/@llblab/pi-state-flow/dist/lib/continuation.d.ts +5 -5
- package/node_modules/@llblab/pi-state-flow/dist/lib/continuation.js +54 -40
- package/node_modules/@llblab/pi-state-flow/dist/lib/durable.js +20 -20
- package/node_modules/@llblab/pi-state-flow/dist/lib/extension.js +755 -325
- package/node_modules/@llblab/pi-state-flow/dist/lib/git.d.ts +2 -2
- package/node_modules/@llblab/pi-state-flow/dist/lib/git.js +14 -17
- package/node_modules/@llblab/pi-state-flow/dist/lib/protocol.d.ts +4 -0
- package/node_modules/@llblab/pi-state-flow/dist/lib/protocol.js +65 -23
- package/node_modules/@llblab/pi-state-flow/dist/lib/recovery.d.ts +16 -5
- package/node_modules/@llblab/pi-state-flow/dist/lib/recovery.js +32 -15
- package/node_modules/@llblab/pi-state-flow/dist/lib/runtime.d.ts +28 -2
- package/node_modules/@llblab/pi-state-flow/dist/lib/runtime.js +276 -26
- package/node_modules/@llblab/pi-state-flow/dist/lib/session.d.ts +5 -0
- package/node_modules/@llblab/pi-state-flow/dist/lib/session.js +36 -2
- package/node_modules/@llblab/pi-state-flow/dist/lib/snapshot.d.ts +3 -0
- package/node_modules/@llblab/pi-state-flow/dist/lib/snapshot.js +3 -0
- package/node_modules/@llblab/pi-state-flow/dist/lib/status.d.ts +1 -0
- package/node_modules/@llblab/pi-state-flow/dist/lib/status.js +3 -1
- package/node_modules/@llblab/pi-state-flow/dist/lib/storage.d.ts +11 -0
- package/node_modules/@llblab/pi-state-flow/dist/lib/storage.js +150 -24
- package/node_modules/@llblab/pi-state-flow/dist/lib/telegram.d.ts +14 -1
- package/node_modules/@llblab/pi-state-flow/dist/lib/telegram.js +52 -18
- package/node_modules/@llblab/pi-state-flow/dist/lib/transition.js +8 -8
- package/node_modules/@llblab/pi-state-flow/dist/package.json +1 -1
- package/node_modules/@llblab/pi-state-flow/dist/skills/state-flow-guide/SKILL.md +3 -1
- package/node_modules/@llblab/pi-state-flow/docs/architecture.md +53 -7
- package/node_modules/@llblab/pi-state-flow/docs/compatibility.md +84 -44
- package/node_modules/@llblab/pi-state-flow/docs/filesystem-recovery.md +12 -2
- package/node_modules/@llblab/pi-state-flow/docs/fork-contract.md +6 -4
- package/node_modules/@llblab/pi-state-flow/docs/performance.md +2 -2
- package/node_modules/@llblab/pi-state-flow/docs/temporal-acceptance.md +28 -8
- package/node_modules/@llblab/pi-state-flow/docs/usage.md +41 -14
- package/node_modules/@llblab/pi-state-flow/index.ts +3 -0
- package/node_modules/@llblab/pi-state-flow/lib/artifact.ts +5 -5
- package/node_modules/@llblab/pi-state-flow/lib/context.ts +8 -3
- package/node_modules/@llblab/pi-state-flow/lib/continuation.ts +57 -40
- package/node_modules/@llblab/pi-state-flow/lib/durable.ts +20 -20
- package/node_modules/@llblab/pi-state-flow/lib/extension.ts +719 -316
- package/node_modules/@llblab/pi-state-flow/lib/git.ts +16 -18
- package/node_modules/@llblab/pi-state-flow/lib/protocol.ts +60 -24
- package/node_modules/@llblab/pi-state-flow/lib/recovery.ts +34 -21
- package/node_modules/@llblab/pi-state-flow/lib/runtime.ts +290 -25
- package/node_modules/@llblab/pi-state-flow/lib/session.ts +37 -2
- package/node_modules/@llblab/pi-state-flow/lib/snapshot.ts +3 -0
- package/node_modules/@llblab/pi-state-flow/lib/status.ts +4 -1
- package/node_modules/@llblab/pi-state-flow/lib/storage.ts +141 -22
- package/node_modules/@llblab/pi-state-flow/lib/telegram.ts +60 -19
- package/node_modules/@llblab/pi-state-flow/lib/transition.ts +8 -8
- package/node_modules/@llblab/pi-state-flow/package.json +1 -1
- package/node_modules/@llblab/pi-state-flow/skills/state-flow-guide/SKILL.md +3 -1
- package/node_modules/@llblab/pi-telegram/AGENTS.md +1 -1
- package/node_modules/@llblab/pi-telegram/CHANGELOG.md +5 -0
- package/node_modules/@llblab/pi-telegram/README.md +2 -2
- package/node_modules/@llblab/pi-telegram/dist/lib/skills.d.ts +7 -1
- package/node_modules/@llblab/pi-telegram/dist/lib/skills.js +32 -7
- package/node_modules/@llblab/pi-telegram/dist/package.json +3 -8
- package/node_modules/@llblab/pi-telegram/lib/skills.ts +43 -7
- package/node_modules/@llblab/pi-telegram/package.json +3 -8
- package/node_modules/@llblab/pi-telegram/scripts/build-dist.mjs +103 -32
- package/package.json +7 -7
|
@@ -4,26 +4,62 @@
|
|
|
4
4
|
* Owns source-checkout skill contribution; installed packages use their manifest
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { existsSync } from "node:fs";
|
|
8
|
+
import { basename, dirname, join, resolve } from "node:path";
|
|
8
9
|
import { fileURLToPath } from "node:url";
|
|
9
10
|
|
|
10
11
|
import type { ExtensionAPI } from "./pi.ts";
|
|
12
|
+
import { resolveAgentDir } from "./paths.ts";
|
|
11
13
|
|
|
12
14
|
const TELEGRAM_SKILLS_MODULE_PATH = fileURLToPath(import.meta.url);
|
|
13
15
|
|
|
14
|
-
export
|
|
15
|
-
|
|
16
|
+
export function getTelegramExtensionPackageRoot(modulePath: string): string {
|
|
17
|
+
let current = dirname(modulePath);
|
|
18
|
+
while (true) {
|
|
19
|
+
if (existsSync(join(current, "package.json"))) {
|
|
20
|
+
const parent = dirname(current);
|
|
21
|
+
if (basename(current) === "dist" && existsSync(join(parent, "package.json"))) {
|
|
22
|
+
return parent;
|
|
23
|
+
}
|
|
24
|
+
return current;
|
|
25
|
+
}
|
|
26
|
+
const parent = dirname(current);
|
|
27
|
+
if (parent === current) return dirname(modulePath);
|
|
28
|
+
current = parent;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface TelegramRawExtensionCheckoutOptions {
|
|
33
|
+
agentDir?: string;
|
|
34
|
+
cwd?: string;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function isRawTelegramExtensionCheckout(
|
|
38
|
+
modulePath: string,
|
|
39
|
+
options: TelegramRawExtensionCheckoutOptions = {},
|
|
40
|
+
): boolean {
|
|
41
|
+
const packageRoot = resolve(getTelegramExtensionPackageRoot(modulePath));
|
|
42
|
+
const agentDir = resolve(options.agentDir ?? resolveAgentDir());
|
|
43
|
+
const cwd = resolve(options.cwd ?? process.cwd());
|
|
44
|
+
return dirname(packageRoot) === join(agentDir, "extensions") ||
|
|
45
|
+
dirname(packageRoot) === join(cwd, ".pi", "extensions");
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export const TELEGRAM_SKILLS_PATH = join(
|
|
49
|
+
getTelegramExtensionPackageRoot(TELEGRAM_SKILLS_MODULE_PATH),
|
|
50
|
+
"skills",
|
|
16
51
|
);
|
|
17
52
|
|
|
18
53
|
export function registerTelegramSkillDiscovery(
|
|
19
54
|
pi: Pick<ExtensionAPI, "on">,
|
|
20
55
|
modulePath = TELEGRAM_SKILLS_MODULE_PATH,
|
|
56
|
+
options: TelegramRawExtensionCheckoutOptions = {},
|
|
21
57
|
): boolean {
|
|
22
|
-
//
|
|
23
|
-
// packages
|
|
24
|
-
if (
|
|
58
|
+
// Pi auto-discovers extension entrypoints but not their manifest Skills.
|
|
59
|
+
// Manifest-loaded packages own Skills and filters through `pi.skills`.
|
|
60
|
+
if (!isRawTelegramExtensionCheckout(modulePath, options)) return false;
|
|
25
61
|
pi.on("resources_discover", () => ({
|
|
26
|
-
skillPaths: [
|
|
62
|
+
skillPaths: [join(getTelegramExtensionPackageRoot(modulePath), "skills")],
|
|
27
63
|
}));
|
|
28
64
|
return true;
|
|
29
65
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@llblab/pi-telegram",
|
|
3
|
-
"version": "0.51.
|
|
3
|
+
"version": "0.51.4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -31,12 +31,13 @@
|
|
|
31
31
|
"test:verbose": "node --experimental-strip-types --test --test-reporter=spec tests/*.test.ts",
|
|
32
32
|
"typecheck": "tsc --noEmit",
|
|
33
33
|
"build": "node scripts/build-dist.mjs",
|
|
34
|
+
"build:check": "node scripts/build-dist.mjs --check",
|
|
34
35
|
"prepack": "npm run build",
|
|
35
36
|
"check": "node -e \"await import('./dist/pi-telegram/index.js'); console.log('pi-telegram: extension import ok')\"",
|
|
36
37
|
"audit": "npm audit --omit=peer",
|
|
37
38
|
"audit:host": "npm audit",
|
|
38
39
|
"pack:check": "npm pack --dry-run",
|
|
39
|
-
"validate": "npm run build && npm run typecheck && npm test && npm run audit && npm run check && npm run pack:check"
|
|
40
|
+
"validate": "npm run build:check && npm run typecheck && npm test && npm run audit && npm run check && npm run pack:check"
|
|
40
41
|
},
|
|
41
42
|
"files": [
|
|
42
43
|
"index.ts",
|
|
@@ -102,15 +103,9 @@
|
|
|
102
103
|
"extensions": [
|
|
103
104
|
"./dist/pi-telegram/index.js"
|
|
104
105
|
],
|
|
105
|
-
"sourceExtensions": [
|
|
106
|
-
"./index.ts"
|
|
107
|
-
],
|
|
108
106
|
"skills": [
|
|
109
107
|
"./dist/skills"
|
|
110
108
|
],
|
|
111
|
-
"sourceSkills": [
|
|
112
|
-
"./skills"
|
|
113
|
-
],
|
|
114
109
|
"image": "https://raw.githubusercontent.com/llblab/pi-telegram/main/screenshot.png"
|
|
115
110
|
},
|
|
116
111
|
"peerDependencies": {
|
|
@@ -1,44 +1,115 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Builds the distributive JavaScript, declarations, Pi entrypoint,
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* The build replaces `dist`, compiles with `tsconfig.build.json`, then copies
|
|
8
|
-
* package-owned runtime assets. It does not publish, pack, or modify sources.
|
|
4
|
+
* Builds or verifies the distributive JavaScript, declarations, Pi entrypoint,
|
|
5
|
+
* Skills, and runtime assets without exposing a partial tree.
|
|
9
6
|
*/
|
|
10
7
|
|
|
11
8
|
import { spawnSync } from "node:child_process";
|
|
12
|
-
import {
|
|
13
|
-
|
|
9
|
+
import {
|
|
10
|
+
cpSync,
|
|
11
|
+
existsSync,
|
|
12
|
+
mkdirSync,
|
|
13
|
+
mkdtempSync,
|
|
14
|
+
readFileSync,
|
|
15
|
+
readdirSync,
|
|
16
|
+
renameSync,
|
|
17
|
+
rmSync,
|
|
18
|
+
writeFileSync,
|
|
19
|
+
} from "node:fs";
|
|
20
|
+
import { join, relative } from "node:path";
|
|
21
|
+
|
|
22
|
+
const DIST_DIR = "dist";
|
|
23
|
+
const checkOnly = process.argv.includes("--check");
|
|
14
24
|
|
|
15
25
|
function run(command, args) {
|
|
16
26
|
const result = spawnSync(command, args, { stdio: "inherit" });
|
|
17
27
|
if (result.error) throw result.error;
|
|
18
|
-
if (result.status !== 0)
|
|
28
|
+
if (result.status !== 0) {
|
|
29
|
+
throw new Error(`${command} exited with status ${result.status ?? "unknown"}.`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function listFiles(root, current = root) {
|
|
34
|
+
return readdirSync(current, { withFileTypes: true }).flatMap((entry) => {
|
|
35
|
+
const path = join(current, entry.name);
|
|
36
|
+
return entry.isDirectory() ? listFiles(root, path) : [relative(root, path)];
|
|
37
|
+
}).sort();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function normalizeTextFiles(root) {
|
|
41
|
+
const textSuffixes = [".js", ".ts", ".mjs", ".json", ".md"];
|
|
42
|
+
for (const path of listFiles(root)) {
|
|
43
|
+
if (!textSuffixes.some((suffix) => path.endsWith(suffix))) continue;
|
|
44
|
+
const absolutePath = join(root, path);
|
|
45
|
+
const source = readFileSync(absolutePath, "utf8");
|
|
46
|
+
const normalized = source.replace(/\r\n?/g, "\n");
|
|
47
|
+
if (normalized !== source) writeFileSync(absolutePath, normalized, "utf8");
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function assertTreesEqual(expectedRoot, actualRoot) {
|
|
52
|
+
if (!existsSync(expectedRoot)) {
|
|
53
|
+
throw new Error(`${expectedRoot} is missing; run npm run build.`);
|
|
54
|
+
}
|
|
55
|
+
const expectedFiles = listFiles(expectedRoot);
|
|
56
|
+
const actualFiles = listFiles(actualRoot);
|
|
57
|
+
if (JSON.stringify(expectedFiles) !== JSON.stringify(actualFiles)) {
|
|
58
|
+
throw new Error("dist file inventory is stale; run npm run build.");
|
|
59
|
+
}
|
|
60
|
+
for (const path of expectedFiles) {
|
|
61
|
+
if (!readFileSync(join(expectedRoot, path)).equals(readFileSync(join(actualRoot, path)))) {
|
|
62
|
+
throw new Error(`dist/${path} is stale; run npm run build.`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function replaceDist(candidate) {
|
|
68
|
+
const backup = `.dist-backup-${process.pid}-${Date.now()}`;
|
|
69
|
+
const hadDist = existsSync(DIST_DIR);
|
|
70
|
+
if (hadDist) renameSync(DIST_DIR, backup);
|
|
71
|
+
try {
|
|
72
|
+
renameSync(candidate, DIST_DIR);
|
|
73
|
+
if (hadDist) rmSync(backup, { recursive: true, force: true });
|
|
74
|
+
} catch (error) {
|
|
75
|
+
if (hadDist && existsSync(backup) && !existsSync(DIST_DIR)) {
|
|
76
|
+
renameSync(backup, DIST_DIR);
|
|
77
|
+
}
|
|
78
|
+
throw error;
|
|
79
|
+
}
|
|
19
80
|
}
|
|
20
81
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
cpSync("
|
|
39
|
-
cpSync(
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
)
|
|
43
|
-
|
|
44
|
-
run(process.execPath, ["--check", join(
|
|
82
|
+
const candidate = mkdtempSync(join(process.cwd(), ".dist-build-"));
|
|
83
|
+
try {
|
|
84
|
+
run(process.execPath, [
|
|
85
|
+
join("node_modules", "typescript", "bin", "tsc"),
|
|
86
|
+
"-p",
|
|
87
|
+
"tsconfig.build.json",
|
|
88
|
+
"--outDir",
|
|
89
|
+
candidate,
|
|
90
|
+
]);
|
|
91
|
+
|
|
92
|
+
mkdirSync(join(candidate, "pi-telegram"), { recursive: true });
|
|
93
|
+
writeFileSync(
|
|
94
|
+
join(candidate, "pi-telegram", "index.js"),
|
|
95
|
+
'export { default } from "../index.js";\n',
|
|
96
|
+
"utf8",
|
|
97
|
+
);
|
|
98
|
+
normalizeTextFiles(candidate);
|
|
99
|
+
cpSync("skills", join(candidate, "skills"), { recursive: true });
|
|
100
|
+
cpSync("package.json", join(candidate, "package.json"));
|
|
101
|
+
cpSync(
|
|
102
|
+
join("lib", "generative-app-worker.mjs"),
|
|
103
|
+
join(candidate, "lib", "generative-app-worker.mjs"),
|
|
104
|
+
);
|
|
105
|
+
run(process.execPath, ["--check", join(candidate, "pi-telegram", "index.js")]);
|
|
106
|
+
|
|
107
|
+
if (checkOnly) {
|
|
108
|
+
assertTreesEqual(DIST_DIR, candidate);
|
|
109
|
+
console.log("pi-telegram: dist is current");
|
|
110
|
+
} else {
|
|
111
|
+
replaceDist(candidate);
|
|
112
|
+
}
|
|
113
|
+
} finally {
|
|
114
|
+
rmSync(candidate, { recursive: true, force: true });
|
|
115
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@llblab/pi-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -40,12 +40,12 @@
|
|
|
40
40
|
"LICENSE"
|
|
41
41
|
],
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@llblab/pi-actors": "0.53.
|
|
43
|
+
"@llblab/pi-actors": "0.53.2",
|
|
44
44
|
"@llblab/pi-clean-room": "0.2.0",
|
|
45
45
|
"@llblab/pi-codex-usage": "0.10.0",
|
|
46
|
-
"@llblab/pi-grow-loop": "0.8.
|
|
47
|
-
"@llblab/pi-state-flow": "0.
|
|
48
|
-
"@llblab/pi-telegram": "0.51.
|
|
46
|
+
"@llblab/pi-grow-loop": "0.8.2",
|
|
47
|
+
"@llblab/pi-state-flow": "0.19.0",
|
|
48
|
+
"@llblab/pi-telegram": "0.51.4",
|
|
49
49
|
"@llblab/skills": "1.15.0"
|
|
50
50
|
},
|
|
51
51
|
"bundledDependencies": [
|
|
@@ -62,13 +62,13 @@
|
|
|
62
62
|
"./node_modules/@llblab/pi-actors/dist/pi-actors/index.js",
|
|
63
63
|
"./node_modules/@llblab/pi-clean-room/index.ts",
|
|
64
64
|
"./node_modules/@llblab/pi-codex-usage/index.ts",
|
|
65
|
-
"./node_modules/@llblab/pi-grow-loop/index.
|
|
65
|
+
"./node_modules/@llblab/pi-grow-loop/dist/pi-grow-loop/index.js",
|
|
66
66
|
"./node_modules/@llblab/pi-state-flow/dist/pi-state-flow/index.js",
|
|
67
67
|
"./node_modules/@llblab/pi-telegram/dist/pi-telegram/index.js"
|
|
68
68
|
],
|
|
69
69
|
"skills": [
|
|
70
70
|
"./node_modules/@llblab/pi-actors/dist/skills",
|
|
71
|
-
"./node_modules/@llblab/pi-grow-loop/skills",
|
|
71
|
+
"./node_modules/@llblab/pi-grow-loop/dist/skills",
|
|
72
72
|
"./node_modules/@llblab/pi-state-flow/dist/skills",
|
|
73
73
|
"./node_modules/@llblab/pi-telegram/dist/skills",
|
|
74
74
|
"./node_modules/@llblab/skills/"
|