0xkobold 0.6.9 → 0.7.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 +48 -21
- package/dist/package.json +6 -5
- package/dist/src/cli/extensions/env.js +175 -14
- package/dist/src/cli/extensions/env.js.map +1 -1
- package/dist/src/extensions/community/pi-ollama-wrapper.js +27 -0
- package/dist/src/extensions/community/pi-ollama-wrapper.js.map +1 -0
- package/dist/src/extensions/core/agent-orchestrator-extension.js +160 -43
- package/dist/src/extensions/core/agent-orchestrator-extension.js.map +1 -1
- package/dist/src/extensions/core/cloudflare-browser-extension.js +389 -0
- package/dist/src/extensions/core/cloudflare-browser-extension.js.map +1 -0
- package/dist/src/extensions/core/draconic-extension-loader.js +144 -0
- package/dist/src/extensions/core/draconic-extension-loader.js.map +1 -0
- package/dist/src/extensions/core/intelligent-context-extension.js +196 -0
- package/dist/src/extensions/core/intelligent-context-extension.js.map +1 -0
- package/dist/src/extensions/core/obsidian-bridge-extension.js +488 -0
- package/dist/src/extensions/core/obsidian-bridge-extension.js.map +1 -0
- package/dist/src/gateway/discord-bot.js +4 -4
- package/dist/src/gateway/discord-bot.js.map +1 -1
- package/dist/src/index.js +8 -6
- package/dist/src/index.js.map +1 -1
- package/dist/src/llm/ollama.js +26 -1
- package/dist/src/llm/ollama.js.map +1 -1
- package/dist/src/pi-config.js +18 -2
- package/dist/src/pi-config.js.map +1 -1
- package/dist/src/utils/redact.js +212 -0
- package/dist/src/utils/redact.js.map +1 -0
- package/package.json +6 -5
- package/skills/cloudflare-research.ts +345 -0
- package/dist/src/extensions/core/context-pruning/extension.js +0 -124
- package/dist/src/extensions/core/context-pruning/extension.js.map +0 -1
- package/dist/src/extensions/core/context-pruning/pruner.js +0 -312
- package/dist/src/extensions/core/context-pruning/pruner.js.map +0 -1
- package/dist/src/extensions/core/context-pruning/runtime.js +0 -48
- package/dist/src/extensions/core/context-pruning/runtime.js.map +0 -1
- package/dist/src/extensions/core/context-pruning/settings.js +0 -105
- package/dist/src/extensions/core/context-pruning/settings.js.map +0 -1
- package/dist/src/extensions/core/ollama-extension.js +0 -442
- package/dist/src/extensions/core/ollama-extension.js.map +0 -1
- package/dist/src/gateway/server.js +0 -325
- package/dist/src/gateway/server.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,22 +1,4 @@
|
|
|
1
|
-
# 0xKobold
|
|
2
|
-
|
|
3
|
-
**v0.6.9** — Fix gateway detection when dev already running
|
|
4
|
-
|
|
5
|
-
**v0.6.8** — Add /lair-sync command to bridge local/global context
|
|
6
|
-
|
|
7
|
-
**v0.6.7** — Auto-detect and notify about project lairs in local mode
|
|
8
|
-
|
|
9
|
-
**v0.6.6** — Enforce global workspace sandboxing, proper CWD isolation
|
|
10
|
-
|
|
11
|
-
**v0.6.5** — Clean dist/ before build, removes ghost extensions
|
|
12
|
-
|
|
13
|
-
**v0.6.4** — Fix workspace detection from home directory
|
|
14
|
-
|
|
15
|
-
**v0.6.3** — Workspace-aware footer, cleaner gateway display
|
|
16
|
-
|
|
17
|
-
**v0.6.2** — Gateway auto-start opt-in (fixes port conflicts)
|
|
18
|
-
|
|
19
|
-
**v0.6.0 "Koclaw Gateway"** — JSON-RPC gateway, session persistence, multi-channel
|
|
1
|
+
# 0xKobold
|
|
20
2
|
|
|
21
3
|
```
|
|
22
4
|
..
|
|
@@ -54,7 +36,19 @@
|
|
|
54
36
|
|
|
55
37
|
> *"Your digital familiar - a personal AI assistant that connects, persists, and evolves"*
|
|
56
38
|
|
|
57
|
-
|
|
39
|
+
## 🔥 Latest: v0.6.11 "Secret Guardian"
|
|
40
|
+
|
|
41
|
+
**v0.6.11** — Automatic secret redaction in env commands, README restructure
|
|
42
|
+
**v0.6.10** — Gateway auto-starts by default for TUI (detects existing)
|
|
43
|
+
**v0.6.9** — Fix gateway detection when dev already running
|
|
44
|
+
**v0.6.8** — Add /lair-sync command to bridge local/global context
|
|
45
|
+
**v0.6.7** — Auto-detect and notify about project lairs in local mode
|
|
46
|
+
**v0.6.6** — Enforce global workspace sandboxing, proper CWD isolation
|
|
47
|
+
**v0.6.5** — Clean dist/ before build, removes ghost extensions
|
|
48
|
+
**v0.6.4** — Fix workspace detection from home directory
|
|
49
|
+
**v0.6.3** — Workspace-aware footer, cleaner gateway display
|
|
50
|
+
**v0.6.2** — Gateway auto-start opt-in (fixes port conflicts)
|
|
51
|
+
**v0.6.0** — JSON-RPC gateway, session persistence, multi-channel
|
|
58
52
|
|
|
59
53
|
> **New in v0.6.0:** Koclaw Gateway (JSON-RPC), Session Management, Auth Profiles, Session Resume
|
|
60
54
|
> **From v0.5.0:** Generative Agents, Semantic Memory, Multi-agent Orchestration
|
|
@@ -242,6 +236,28 @@ recall "what was the database decision"
|
|
|
242
236
|
|
|
243
237
|
---
|
|
244
238
|
|
|
239
|
+
## Secret Management 🔐
|
|
240
|
+
|
|
241
|
+
Environment variables with automatic redaction:
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
# Show env vars (secrets automatically redacted)
|
|
245
|
+
0xkobold env show
|
|
246
|
+
|
|
247
|
+
# Show with secrets revealed (careful!)
|
|
248
|
+
0xkobold env show --show-secrets
|
|
249
|
+
|
|
250
|
+
# Show entire .env file (redacted)
|
|
251
|
+
0xkobold env show --file
|
|
252
|
+
|
|
253
|
+
# Check status
|
|
254
|
+
0xkobold env status
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
**Auto-redacted:** TOKEN, KEY, SECRET, PASSWORD, API_KEY, WEBHOOK_URL, and token-like values
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
245
261
|
## Skills System 🔧
|
|
246
262
|
|
|
247
263
|
Create custom capabilities without restarting:
|
|
@@ -330,6 +346,14 @@ bun run init # Initialize workspace
|
|
|
330
346
|
0xkobold gateway health
|
|
331
347
|
```
|
|
332
348
|
|
|
349
|
+
### Environment
|
|
350
|
+
```bash
|
|
351
|
+
0xkobold env status # Check environment status
|
|
352
|
+
0xkobold env show # Show env vars (redacted)
|
|
353
|
+
0xkobold env show --show-secrets # Show with secrets visible
|
|
354
|
+
0xkobold env show --file # Show .env file contents
|
|
355
|
+
```
|
|
356
|
+
|
|
333
357
|
---
|
|
334
358
|
|
|
335
359
|
## Configuration
|
|
@@ -406,6 +430,7 @@ eventBus.on('agent.spawned', handler);
|
|
|
406
430
|
| `src/skills/` | Hot-reload skill system |
|
|
407
431
|
| `src/tui/` | Terminal UI (React-based) |
|
|
408
432
|
| `src/event-bus/` | Decoupled event system |
|
|
433
|
+
| `src/cli/extensions/env.ts` | Secret management with auto-redaction |
|
|
409
434
|
|
|
410
435
|
---
|
|
411
436
|
|
|
@@ -453,7 +478,7 @@ bun test --coverage
|
|
|
453
478
|
│ │ ├── builtin/ # Built-in skills
|
|
454
479
|
│ │ └── loader.ts # Hot-reload logic
|
|
455
480
|
│ ├── tui/ # Terminal UI
|
|
456
|
-
│ └── utils/ # Utilities (nl-patterns.ts)
|
|
481
|
+
│ └── utils/ # Utilities (nl-patterns.ts, redact.ts)
|
|
457
482
|
├── skills/ # Your custom skills (hot-reloaded)
|
|
458
483
|
├── test/ # Test suites
|
|
459
484
|
│ ├── unit/
|
|
@@ -480,6 +505,8 @@ bun test --coverage
|
|
|
480
505
|
- `src/agent/auth-profiles.ts` - Auth profile management
|
|
481
506
|
- `src/extensions/core/generative-agents-extension.ts` - Generative agents
|
|
482
507
|
- `src/utils/nl-patterns.ts` - Natural language parsing
|
|
508
|
+
- `src/utils/redact.ts` - Secret redaction utilities
|
|
509
|
+
- `src/cli/extensions/env.ts` - Environment & secrets management
|
|
483
510
|
- `~/.0xkobold/config.json` - User configuration
|
|
484
511
|
- `~/.0xkobold/memory/perennial/knowledge.db` - Semantic memory
|
|
485
512
|
- `CLAUDE.md` - AI assistant context
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "0xkobold",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Your digital familiar - Koclaw-style gateway, session management, and multi-agent orchestration",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"types": "dist/src/index.d.ts",
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
"author": "0xKobold Team",
|
|
44
44
|
"license": "MIT",
|
|
45
45
|
"dependencies": {
|
|
46
|
+
"@0xkobold/pi-ollama": "0.1.7",
|
|
46
47
|
"@aliou/pi-processes": "^0.6.2",
|
|
47
48
|
"@mariozechner/pi-agent-core": "0.57.1",
|
|
48
49
|
"@mariozechner/pi-coding-agent": "0.57.1",
|
|
@@ -56,12 +57,12 @@
|
|
|
56
57
|
"json5": "^2.2.3",
|
|
57
58
|
"node-machine-id": "^1.1.12",
|
|
58
59
|
"node-telegram-bot-api": "^0.67.0",
|
|
59
|
-
"pi-extmgr": "^0.1.
|
|
60
|
+
"pi-extmgr": "^0.1.25",
|
|
60
61
|
"pi-librarian": "^1.3.0",
|
|
61
62
|
"pi-memory-md": "^0.1.1",
|
|
62
63
|
"pi-messenger": "^0.13.0",
|
|
63
|
-
"pi-subagents": "^0.11.
|
|
64
|
-
"pi-web-access": "^0.10.
|
|
64
|
+
"pi-subagents": "^0.11.2",
|
|
65
|
+
"pi-web-access": "^0.10.3",
|
|
65
66
|
"playwright": "^1.58.2",
|
|
66
67
|
"react": "^19.2.4",
|
|
67
68
|
"sharp": "^0.33.5",
|
|
@@ -71,7 +72,7 @@
|
|
|
71
72
|
"@types/blessed": "^0.1.27",
|
|
72
73
|
"@types/bun": "latest",
|
|
73
74
|
"@types/json5": "^2.2.0",
|
|
74
|
-
"@types/node": "^20.19.
|
|
75
|
+
"@types/node": "^20.19.37",
|
|
75
76
|
"bun-types": "latest",
|
|
76
77
|
"typescript": "^5.9.3"
|
|
77
78
|
},
|
|
@@ -2,11 +2,124 @@
|
|
|
2
2
|
* Environment CLI Extension
|
|
3
3
|
*
|
|
4
4
|
* Registers Environment subcommands under 0xkobold CLI
|
|
5
|
+
*
|
|
6
|
+
* Secret Redaction:
|
|
7
|
+
* - Automatically detects secret keys ( TOKEN, KEY, SECRET, PASSWORD, etc.)
|
|
8
|
+
* - Masks values like "sk-abc123***xyz" (shows first/last 4 chars only)
|
|
9
|
+
* - Use --show-secrets flag to reveal actual values
|
|
5
10
|
*/
|
|
6
|
-
import { existsSync } from "fs";
|
|
11
|
+
import { existsSync, readFileSync } from "fs";
|
|
7
12
|
import { homedir } from "os";
|
|
8
13
|
import { join } from "path";
|
|
9
14
|
const CONFIG_DIR = join(homedir(), ".0xkobold", "config");
|
|
15
|
+
/** Patterns that indicate a secret key */
|
|
16
|
+
const SECRET_KEY_PATTERNS = [
|
|
17
|
+
/token/i,
|
|
18
|
+
/password/i,
|
|
19
|
+
/secret/i,
|
|
20
|
+
/api[_-]?key/i,
|
|
21
|
+
/auth/i,
|
|
22
|
+
/credential/i,
|
|
23
|
+
/private/i,
|
|
24
|
+
/webhook[_-]?url/i,
|
|
25
|
+
];
|
|
26
|
+
/** Environment variable names that are known secrets */
|
|
27
|
+
const SECRET_ENV_NAMES = [
|
|
28
|
+
'DISCORD_BOT_TOKEN',
|
|
29
|
+
'TELEGRAM_BOT_TOKEN',
|
|
30
|
+
'ANTHROPIC_API_KEY',
|
|
31
|
+
'OPENAI_API_KEY',
|
|
32
|
+
'LLM_API_KEY',
|
|
33
|
+
'KOBOLD_REMOTE_TOKEN',
|
|
34
|
+
'KOBOLD_API_KEY',
|
|
35
|
+
'SOPS_AGE_KEY',
|
|
36
|
+
'AWS_ACCESS_KEY_ID',
|
|
37
|
+
'AWS_SECRET_ACCESS_KEY',
|
|
38
|
+
'GITHUB_TOKEN',
|
|
39
|
+
'GITLAB_TOKEN',
|
|
40
|
+
'SLACK_TOKEN',
|
|
41
|
+
'STRIPE_SECRET_KEY',
|
|
42
|
+
'JWT_SECRET',
|
|
43
|
+
'SESSION_SECRET',
|
|
44
|
+
'COOKIE_SECRET',
|
|
45
|
+
];
|
|
46
|
+
/**
|
|
47
|
+
* Check if a key looks like it could be a secret
|
|
48
|
+
*/
|
|
49
|
+
function isSecretKey(key) {
|
|
50
|
+
return SECRET_KEY_PATTERNS.some(pattern => pattern.test(key));
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Check if an environment variable name is a known secret
|
|
54
|
+
*/
|
|
55
|
+
function isSecretEnvVar(name) {
|
|
56
|
+
return SECRET_ENV_NAMES.some(secret => name.toUpperCase() === secret ||
|
|
57
|
+
name.toUpperCase().startsWith(secret + '_'));
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Redact a secret value, showing only first/last 4 chars
|
|
61
|
+
* e.g., "sk-abc123***xyz" -> "sk-a************xyz"
|
|
62
|
+
*/
|
|
63
|
+
function redactValue(value, visibleChars = 4) {
|
|
64
|
+
if (!value || value.length <= visibleChars * 2) {
|
|
65
|
+
return '<redacted>';
|
|
66
|
+
}
|
|
67
|
+
const start = value.slice(0, visibleChars);
|
|
68
|
+
const end = value.slice(-visibleChars);
|
|
69
|
+
const middleLength = value.length - (visibleChars * 2);
|
|
70
|
+
return `${start}${'•'.repeat(Math.min(middleLength, 8))}${end}`;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Check if a value looks like a token/key
|
|
74
|
+
*/
|
|
75
|
+
function looksLikeToken(value) {
|
|
76
|
+
const tokenPatterns = [
|
|
77
|
+
/^sk-/, /^pk_/, /^sk_/, /^ghp_/, /^gho_/, /^xoxb-/, /^xoxp-/, /^bot/,
|
|
78
|
+
/^eyJ/, /^Bearer /, /^Basic /,
|
|
79
|
+
/[a-f0-9]{32,}/i, // Hex tokens
|
|
80
|
+
];
|
|
81
|
+
return value.length > 20 && tokenPatterns.some(p => p.test(value));
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Format an env var value with optional redaction
|
|
85
|
+
*/
|
|
86
|
+
function formatEnvValue(key, value, showSecrets) {
|
|
87
|
+
if (!value)
|
|
88
|
+
return '<not set>';
|
|
89
|
+
if (showSecrets)
|
|
90
|
+
return value;
|
|
91
|
+
// Check if this is a secret
|
|
92
|
+
const isSecret = isSecretKey(key) || isSecretEnvVar(key) || looksLikeToken(value);
|
|
93
|
+
if (isSecret) {
|
|
94
|
+
return redactValue(value, 4);
|
|
95
|
+
}
|
|
96
|
+
return value;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Redact secrets in .env file content
|
|
100
|
+
*/
|
|
101
|
+
function redactEnvFile(content, showSecrets) {
|
|
102
|
+
if (showSecrets)
|
|
103
|
+
return content;
|
|
104
|
+
return content.split('\n').map(line => {
|
|
105
|
+
// Skip comments and empty lines
|
|
106
|
+
if (!line.trim() || line.startsWith('#'))
|
|
107
|
+
return line;
|
|
108
|
+
// Match KEY=VALUE patterns
|
|
109
|
+
const match = line.match(/^([A-Za-z_][A-Za-z0-9_]*)=(.*)$/);
|
|
110
|
+
if (!match)
|
|
111
|
+
return line;
|
|
112
|
+
const [, key, rawValue] = match;
|
|
113
|
+
// Strip quotes if present
|
|
114
|
+
const value = rawValue.replace(/^["']|["']$/g, '');
|
|
115
|
+
// Check if this is a secret
|
|
116
|
+
const isSecret = isSecretKey(key) || isSecretEnvVar(key);
|
|
117
|
+
if (isSecret && value) {
|
|
118
|
+
return `${key}=${redactValue(value, 4)}`;
|
|
119
|
+
}
|
|
120
|
+
return line;
|
|
121
|
+
}).join('\n');
|
|
122
|
+
}
|
|
10
123
|
export function registerEnvCli(program) {
|
|
11
124
|
const env = program
|
|
12
125
|
.command("env")
|
|
@@ -14,7 +127,8 @@ export function registerEnvCli(program) {
|
|
|
14
127
|
env
|
|
15
128
|
.command("status")
|
|
16
129
|
.description("Show environment status")
|
|
17
|
-
.
|
|
130
|
+
.option("--show-secrets", "Reveal secret values (careful!)")
|
|
131
|
+
.action(async (opts) => {
|
|
18
132
|
console.log("📁 Environment Status");
|
|
19
133
|
console.log("═════════════════════\n");
|
|
20
134
|
// Check config directory
|
|
@@ -33,9 +147,18 @@ export function registerEnvCli(program) {
|
|
|
33
147
|
const vars = ["DISCORD_BOT_TOKEN", "DISCORD_NOTIFY_CHANNEL_ID", "NODE_ENV"];
|
|
34
148
|
vars.forEach(v => {
|
|
35
149
|
const set = !!process.env[v];
|
|
36
|
-
|
|
150
|
+
const displayValue = process.env[v]
|
|
151
|
+
? formatEnvValue(v, process.env[v], opts.showSecrets)
|
|
152
|
+
: null;
|
|
153
|
+
const status = set
|
|
154
|
+
? (opts.showSecrets ? `=${displayValue}` : `: ${displayValue}`)
|
|
155
|
+
: " (not set)";
|
|
156
|
+
console.log(` ${set ? "✅" : "❌"} ${v}${status}`);
|
|
37
157
|
});
|
|
38
|
-
|
|
158
|
+
if (!opts.showSecrets) {
|
|
159
|
+
console.log("\n🛡️ Secrets are redacted. Use --show-secrets to reveal (careful!)");
|
|
160
|
+
}
|
|
161
|
+
// Check Discord token status
|
|
39
162
|
if (process.env.DISCORD_BOT_TOKEN) {
|
|
40
163
|
console.log("\n🟢 Discord: Configured");
|
|
41
164
|
}
|
|
@@ -45,25 +168,63 @@ export function registerEnvCli(program) {
|
|
|
45
168
|
});
|
|
46
169
|
env
|
|
47
170
|
.command("show")
|
|
48
|
-
.description("Show environment variables (
|
|
49
|
-
.
|
|
50
|
-
|
|
171
|
+
.description("Show environment variables (secrets redacted by default)")
|
|
172
|
+
.option("--show-secrets", "Reveal secret values (careful!)")
|
|
173
|
+
.option("--file", "Show entire .env file content")
|
|
174
|
+
.action(async (opts) => {
|
|
175
|
+
if (opts.file) {
|
|
176
|
+
const envPath = join(CONFIG_DIR, ".env");
|
|
177
|
+
if (!existsSync(envPath)) {
|
|
178
|
+
console.log("⚠️ No .env file found");
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
console.log("📄 .env file contents");
|
|
182
|
+
console.log("════════════════════\n");
|
|
183
|
+
const content = readFileSync(envPath, "utf-8");
|
|
184
|
+
const redacted = redactEnvFile(content, opts.showSecrets);
|
|
185
|
+
console.log(redacted);
|
|
186
|
+
if (!opts.showSecrets && content !== redacted) {
|
|
187
|
+
console.log("\n🛡️ Some values are redacted. Use --show-secrets to reveal (careful!)");
|
|
188
|
+
}
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
console.log("📊 Environment Variables");
|
|
192
|
+
console.log(opts.showSecrets
|
|
193
|
+
? "⚠️ WARNING: Secrets are visible!\n"
|
|
194
|
+
: "🛡️ (Secrets automatically redacted)\n");
|
|
51
195
|
console.log("══════════════════════════════════\n");
|
|
52
|
-
|
|
196
|
+
// Get all env vars sorted
|
|
197
|
+
const sortedVars = Object.keys(process.env).sort();
|
|
198
|
+
// Known safe vars to always show first
|
|
199
|
+
const safeVars = [
|
|
53
200
|
"NODE_ENV",
|
|
54
201
|
"GATEWAY_PORT",
|
|
202
|
+
"KOBOLD_GATEWAY_HOST",
|
|
203
|
+
"KOBOLD_GATEWAY_PORT",
|
|
55
204
|
"DISCORD_NOTIFY_CHANNEL_ID",
|
|
56
205
|
];
|
|
57
|
-
|
|
206
|
+
// Show known safe vars
|
|
207
|
+
const shown = new Set();
|
|
208
|
+
for (const v of safeVars) {
|
|
58
209
|
const val = process.env[v];
|
|
59
|
-
if (val) {
|
|
210
|
+
if (val !== undefined) {
|
|
60
211
|
console.log(`${v}=${val}`);
|
|
212
|
+
shown.add(v);
|
|
61
213
|
}
|
|
62
|
-
|
|
63
|
-
|
|
214
|
+
}
|
|
215
|
+
// Show other vars (redacted if secret)
|
|
216
|
+
const otherVars = sortedVars.filter(v => !shown.has(v) && !v.startsWith('_'));
|
|
217
|
+
if (otherVars.length > 0) {
|
|
218
|
+
console.log("\n# Other variables:");
|
|
219
|
+
for (const v of otherVars) {
|
|
220
|
+
const val = process.env[v] || '<not set>';
|
|
221
|
+
const display = formatEnvValue(v, val, opts.showSecrets);
|
|
222
|
+
console.log(`${v}=${display}`);
|
|
64
223
|
}
|
|
65
|
-
}
|
|
66
|
-
|
|
224
|
+
}
|
|
225
|
+
if (!opts.showSecrets) {
|
|
226
|
+
console.log("\n🛡️ Secrets are redacted. Use --show-secrets to reveal (careful!)");
|
|
227
|
+
}
|
|
67
228
|
});
|
|
68
229
|
env
|
|
69
230
|
.command("secrets")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../../src/cli/extensions/env.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../../src/cli/extensions/env.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 🦙 Pi Ollama - Community Extension Wrapper
|
|
3
|
+
*
|
|
4
|
+
* Wraps @0xkobold/pi-ollama npm package
|
|
5
|
+
*
|
|
6
|
+
* Note: This extension is loaded via pi-config.ts
|
|
7
|
+
* The npm package is loaded via `pi install npm:@0xkobold/pi-ollama`
|
|
8
|
+
*/
|
|
9
|
+
export default async function register(pi) {
|
|
10
|
+
console.log("[🦙 PiOllama] Loading npm package...");
|
|
11
|
+
try {
|
|
12
|
+
// Dynamic import from npm package
|
|
13
|
+
const ollamaMod = await import("@0xkobold/pi-ollama");
|
|
14
|
+
const ollamaExt = ollamaMod.default;
|
|
15
|
+
if (typeof ollamaExt !== 'function') {
|
|
16
|
+
throw new Error('Pi-ollama does not export a callable default');
|
|
17
|
+
}
|
|
18
|
+
// Initialize the extension
|
|
19
|
+
await ollamaExt(pi);
|
|
20
|
+
console.log("[🦙 PiOllama] npm package loaded successfully");
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
console.error("[🦙 PiOllama] Failed to load npm package:", err);
|
|
24
|
+
throw err;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=pi-ollama-wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pi-ollama-wrapper.js","sourceRoot":"","sources":["../../../../src/extensions/community/pi-ollama-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,QAAQ,CAAC,EAAgB;IACrD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IAEpD,IAAI,CAAC;QACH,kCAAkC;QAClC,MAAM,SAAS,GAAQ,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC;QAEpC,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,2BAA2B;QAC3B,MAAM,SAAS,CAAC,EAAE,CAAC,CAAC;QAEpB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAC;QAChE,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|