pinokiod 7.2.17 → 7.2.18
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/kernel/agent_instructions.js +166 -0
- package/kernel/api/index.js +137 -12
- package/kernel/bin/huggingface.js +1 -1
- package/kernel/environment.js +23 -9
- package/kernel/plugin_sources.js +57 -4
- package/kernel/prototype.js +4 -0
- package/kernel/shell.js +2 -0
- package/kernel/watch/index.js +31 -4
- package/package.json +1 -1
- package/server/features/index.js +4 -4
- package/server/features/{drafts → notes}/index.js +9 -9
- package/server/features/{drafts → notes}/parser.js +12 -7
- package/server/features/notes/public/notes.css +955 -0
- package/server/features/notes/public/notes.js +1149 -0
- package/server/features/{drafts → notes}/registry_import.js +22 -22
- package/server/features/notes/routes.js +156 -0
- package/server/features/notes/service.js +326 -0
- package/server/features/{drafts → notes}/watcher.js +14 -16
- package/server/index.js +61 -30
- package/server/lib/content_validation.js +19 -8
- package/server/lib/workspace_catalog.js +18 -18
- package/server/public/task-launcher.css +11 -3
- package/server/public/tasker.css +336 -0
- package/server/public/tasker.js +407 -0
- package/server/views/d.ejs +33 -2
- package/server/views/partials/menu.ejs +1 -1
- package/server/views/partials/workspace_row.ejs +11 -11
- package/server/views/pre.ejs +1 -1
- package/server/views/task_launch.ejs +10 -10
- package/server/views/tasker.ejs +40 -0
- package/server/views/terminal.ejs +15 -6
- package/server/views/terminals.ejs +0 -1
- package/server/views/workspaces.ejs +2 -1
- package/system/plugin/antigravity/pinokio.js +2 -4
- package/system/plugin/claude/pinokio.js +2 -4
- package/system/plugin/claude-auto/pinokio.js +2 -4
- package/system/plugin/claude-desktop/pinokio.js +2 -4
- package/system/plugin/codex/pinokio.js +2 -4
- package/system/plugin/codex-auto/pinokio.js +2 -4
- package/system/plugin/codex-desktop/pinokio.js +2 -4
- package/system/plugin/crush/pinokio.js +2 -4
- package/system/plugin/cursor/pinokio.js +2 -4
- package/system/plugin/gemini/pinokio.js +2 -4
- package/system/plugin/gemini-auto/pinokio.js +2 -4
- package/system/plugin/qwen/pinokio.js +2 -4
- package/system/plugin/vscode/pinokio.js +2 -4
- package/system/plugin/windsurf/pinokio.js +2 -4
- package/test/plugin-sources.test.js +45 -0
- package/server/features/drafts/public/drafts.js +0 -1504
- package/server/features/drafts/routes.js +0 -68
- package/server/features/drafts/service.js +0 -261
|
@@ -895,6 +895,7 @@ const createPluginTerminalDiscoveryRefresher = (context = {}) => {
|
|
|
895
895
|
const enabled = (() => {
|
|
896
896
|
try {
|
|
897
897
|
return window.location.pathname.startsWith("/run/plugin/")
|
|
898
|
+
|| window.location.pathname.startsWith("/pinokio/run/plugin/")
|
|
898
899
|
|| (window.location.pathname.startsWith("/run/api/") && /\/pinokio\.js$/i.test(window.location.pathname))
|
|
899
900
|
} catch (_) {
|
|
900
901
|
return false
|
|
@@ -2783,6 +2784,10 @@ document.addEventListener("DOMContentLoaded", async () => {
|
|
|
2783
2784
|
this.resizeSync.sendResize(this.term.cols, this.term.rows)
|
|
2784
2785
|
});
|
|
2785
2786
|
this.observer.observe(document.body)
|
|
2787
|
+
const terminalContainer = document.querySelector(".terminal-container")
|
|
2788
|
+
if (terminalContainer) {
|
|
2789
|
+
this.observer.observe(terminalContainer)
|
|
2790
|
+
}
|
|
2786
2791
|
}
|
|
2787
2792
|
}
|
|
2788
2793
|
<% if (!install_required) { %>
|
|
@@ -2928,9 +2933,9 @@ const reloadMemory = async () => {
|
|
|
2928
2933
|
</script>
|
|
2929
2934
|
</head>
|
|
2930
2935
|
<% if (install_required) { %>
|
|
2931
|
-
<body class='terminal-page frozen <%=theme%> <%= locals.full_navbar ? "has-full-navbar" : "" %>' data-task-save-cwd="<%= cwd || '' %>" data-task-save-workspaces-root="<%= taskSaveWorkspacesRoot || '' %>">
|
|
2936
|
+
<body class='terminal-page frozen <%=theme%> <%= locals.full_navbar ? "has-full-navbar" : "" %>' data-pinokio-notes-scope="true" data-task-save-cwd="<%= cwd || '' %>" data-task-save-workspaces-root="<%= taskSaveWorkspacesRoot || '' %>">
|
|
2932
2937
|
<% } else { %>
|
|
2933
|
-
<body class='terminal-page <%=theme%> <%= locals.full_navbar ? "has-full-navbar" : "" %>' data-task-save-cwd="<%= cwd || '' %>" data-task-save-workspaces-root="<%= taskSaveWorkspacesRoot || '' %>">
|
|
2938
|
+
<body class='terminal-page <%=theme%> <%= locals.full_navbar ? "has-full-navbar" : "" %>' data-pinokio-notes-scope="true" data-task-save-cwd="<%= cwd || '' %>" data-task-save-workspaces-root="<%= taskSaveWorkspacesRoot || '' %>">
|
|
2934
2939
|
<% } %>
|
|
2935
2940
|
<% if (locals.full_navbar) { %>
|
|
2936
2941
|
<header class="navheader grabbable">
|
|
@@ -2960,6 +2965,9 @@ const reloadMemory = async () => {
|
|
|
2960
2965
|
</h1>
|
|
2961
2966
|
</header>
|
|
2962
2967
|
<% } %>
|
|
2968
|
+
<% if (!install_required && typeof note_watch_enabled !== 'undefined' && note_watch_enabled) { %>
|
|
2969
|
+
<div id="pinokio-notes-slot" class="pinokio-notes-slot" aria-live="polite"></div>
|
|
2970
|
+
<% } %>
|
|
2963
2971
|
<% if (!install_required) { %>
|
|
2964
2972
|
<header class='navheader2'>
|
|
2965
2973
|
<div class='runner'>
|
|
@@ -3098,13 +3106,14 @@ const reloadMemory = async () => {
|
|
|
3098
3106
|
</a>
|
|
3099
3107
|
</div>
|
|
3100
3108
|
</div>
|
|
3101
|
-
<% if (typeof
|
|
3109
|
+
<% if (typeof note_watch_enabled !== 'undefined' && note_watch_enabled) { %>
|
|
3102
3110
|
<script>
|
|
3103
|
-
window.
|
|
3104
|
-
cwd: <%- JSON.stringify((typeof
|
|
3111
|
+
window.PinokioNoteContext = {
|
|
3112
|
+
cwd: <%- JSON.stringify((typeof note_watch_cwd !== 'undefined' && note_watch_cwd) ? note_watch_cwd : '').replace(/</g, '\\u003c') %>
|
|
3105
3113
|
};
|
|
3106
3114
|
</script>
|
|
3107
|
-
<
|
|
3115
|
+
<link rel="stylesheet" href="/notes.css?v=flow-footer-fullscreen">
|
|
3116
|
+
<script src="/notes.js?v=flow-footer-fullscreen"></script>
|
|
3108
3117
|
<% } %>
|
|
3109
3118
|
</body>
|
|
3110
3119
|
</html>
|
|
@@ -10030,6 +10030,5 @@ body.dark .swal2-popup.pinokio-diff-modal .pinokio-modal-footer--commit .pinokio
|
|
|
10030
10030
|
requestAnimationFrame(setViewport)
|
|
10031
10031
|
})()
|
|
10032
10032
|
</script>
|
|
10033
|
-
<script src="/drafts.js"></script>
|
|
10034
10033
|
</body>
|
|
10035
10034
|
</html>
|
|
@@ -285,7 +285,7 @@
|
|
|
285
285
|
background: rgba(255, 255, 255, 0.06);
|
|
286
286
|
color: var(--dark-fade);
|
|
287
287
|
}
|
|
288
|
-
.workspaces-page .workspace-
|
|
288
|
+
.workspaces-page .workspace-note-preview {
|
|
289
289
|
margin: 4px 0 8px;
|
|
290
290
|
padding: 8px 0 0;
|
|
291
291
|
color: inherit;
|
|
@@ -642,6 +642,7 @@
|
|
|
642
642
|
url.origin === location.origin
|
|
643
643
|
&& (
|
|
644
644
|
url.pathname.startsWith("/run/plugin/")
|
|
645
|
+
|| url.pathname.startsWith("/pinokio/run/plugin/")
|
|
645
646
|
|| (url.pathname.startsWith("/run/api/") && /\/pinokio\.js$/i.test(url.pathname))
|
|
646
647
|
)
|
|
647
648
|
) {
|
|
@@ -5,11 +5,9 @@ module.exports = {
|
|
|
5
5
|
description: "The AI IDE from Google",
|
|
6
6
|
launch_type: "desktop",
|
|
7
7
|
watch: [{
|
|
8
|
-
|
|
9
|
-
method: "ready",
|
|
8
|
+
method: "note.watch",
|
|
10
9
|
params: {
|
|
11
|
-
path: ".pinokio/
|
|
12
|
-
content: "post.md",
|
|
10
|
+
path: ".pinokio/notes",
|
|
13
11
|
publish: {
|
|
14
12
|
target: "registry",
|
|
15
13
|
type: "post",
|
|
@@ -3,11 +3,9 @@ module.exports = {
|
|
|
3
3
|
icon: "claude.png",
|
|
4
4
|
link: "https://www.anthropic.com/claude-code",
|
|
5
5
|
watch: [{
|
|
6
|
-
|
|
7
|
-
method: "ready",
|
|
6
|
+
method: "note.watch",
|
|
8
7
|
params: {
|
|
9
|
-
path: ".pinokio/
|
|
10
|
-
content: "post.md",
|
|
8
|
+
path: ".pinokio/notes",
|
|
11
9
|
publish: {
|
|
12
10
|
target: "registry",
|
|
13
11
|
type: "post",
|
|
@@ -4,11 +4,9 @@ module.exports = {
|
|
|
4
4
|
description: "Claude Code with trusted workspace and bypass permissions prompts skipped.",
|
|
5
5
|
link: "https://www.anthropic.com/claude-code",
|
|
6
6
|
watch: [{
|
|
7
|
-
|
|
8
|
-
method: "ready",
|
|
7
|
+
method: "note.watch",
|
|
9
8
|
params: {
|
|
10
|
-
path: ".pinokio/
|
|
11
|
-
content: "post.md",
|
|
9
|
+
path: ".pinokio/notes",
|
|
12
10
|
publish: {
|
|
13
11
|
target: "registry",
|
|
14
12
|
type: "post",
|
|
@@ -5,11 +5,9 @@ module.exports = {
|
|
|
5
5
|
description: "Claude desktop",
|
|
6
6
|
launch_type: "desktop",
|
|
7
7
|
watch: [{
|
|
8
|
-
|
|
9
|
-
method: "ready",
|
|
8
|
+
method: "note.watch",
|
|
10
9
|
params: {
|
|
11
|
-
path: ".pinokio/
|
|
12
|
-
content: "post.md",
|
|
10
|
+
path: ".pinokio/notes",
|
|
13
11
|
publish: {
|
|
14
12
|
target: "registry",
|
|
15
13
|
type: "post",
|
|
@@ -3,11 +3,9 @@ module.exports = {
|
|
|
3
3
|
icon: "openai.webp",
|
|
4
4
|
link: "https://github.com/openai/codex",
|
|
5
5
|
watch: [{
|
|
6
|
-
|
|
7
|
-
method: "ready",
|
|
6
|
+
method: "note.watch",
|
|
8
7
|
params: {
|
|
9
|
-
path: ".pinokio/
|
|
10
|
-
content: "post.md",
|
|
8
|
+
path: ".pinokio/notes",
|
|
11
9
|
publish: {
|
|
12
10
|
target: "registry",
|
|
13
11
|
type: "post",
|
|
@@ -4,11 +4,9 @@ module.exports = {
|
|
|
4
4
|
description: "OpenAI Codex CLI with --yolo and trusted workspace config.",
|
|
5
5
|
link: "https://github.com/openai/codex",
|
|
6
6
|
watch: [{
|
|
7
|
-
|
|
8
|
-
method: "ready",
|
|
7
|
+
method: "note.watch",
|
|
9
8
|
params: {
|
|
10
|
-
path: ".pinokio/
|
|
11
|
-
content: "post.md",
|
|
9
|
+
path: ".pinokio/notes",
|
|
12
10
|
publish: {
|
|
13
11
|
target: "registry",
|
|
14
12
|
type: "post",
|
|
@@ -5,11 +5,9 @@ module.exports = {
|
|
|
5
5
|
description: "Codex Desktop",
|
|
6
6
|
launch_type: "desktop",
|
|
7
7
|
watch: [{
|
|
8
|
-
|
|
9
|
-
method: "ready",
|
|
8
|
+
method: "note.watch",
|
|
10
9
|
params: {
|
|
11
|
-
path: ".pinokio/
|
|
12
|
-
content: "post.md",
|
|
10
|
+
path: ".pinokio/notes",
|
|
13
11
|
publish: {
|
|
14
12
|
target: "registry",
|
|
15
13
|
type: "post",
|
|
@@ -3,11 +3,9 @@ module.exports = {
|
|
|
3
3
|
icon: "crush.png",
|
|
4
4
|
link: "https://github.com/charmbracelet/crush",
|
|
5
5
|
watch: [{
|
|
6
|
-
|
|
7
|
-
method: "ready",
|
|
6
|
+
method: "note.watch",
|
|
8
7
|
params: {
|
|
9
|
-
path: ".pinokio/
|
|
10
|
-
content: "post.md",
|
|
8
|
+
path: ".pinokio/notes",
|
|
11
9
|
publish: {
|
|
12
10
|
target: "registry",
|
|
13
11
|
type: "post",
|
|
@@ -5,11 +5,9 @@ module.exports = {
|
|
|
5
5
|
description: "The AI Code Editor",
|
|
6
6
|
launch_type: "desktop",
|
|
7
7
|
watch: [{
|
|
8
|
-
|
|
9
|
-
method: "ready",
|
|
8
|
+
method: "note.watch",
|
|
10
9
|
params: {
|
|
11
|
-
path: ".pinokio/
|
|
12
|
-
content: "post.md",
|
|
10
|
+
path: ".pinokio/notes",
|
|
13
11
|
publish: {
|
|
14
12
|
target: "registry",
|
|
15
13
|
type: "post",
|
|
@@ -3,11 +3,9 @@ module.exports = {
|
|
|
3
3
|
icon: "gemini.jpeg",
|
|
4
4
|
link: "https://github.com/google-gemini/gemini-cli",
|
|
5
5
|
watch: [{
|
|
6
|
-
|
|
7
|
-
method: "ready",
|
|
6
|
+
method: "note.watch",
|
|
8
7
|
params: {
|
|
9
|
-
path: ".pinokio/
|
|
10
|
-
content: "post.md",
|
|
8
|
+
path: ".pinokio/notes",
|
|
11
9
|
publish: {
|
|
12
10
|
target: "registry",
|
|
13
11
|
type: "post",
|
|
@@ -4,11 +4,9 @@ module.exports = {
|
|
|
4
4
|
description: "Gemini CLI with workspace trust and tool approvals skipped.",
|
|
5
5
|
link: "https://github.com/google-gemini/gemini-cli",
|
|
6
6
|
watch: [{
|
|
7
|
-
|
|
8
|
-
method: "ready",
|
|
7
|
+
method: "note.watch",
|
|
9
8
|
params: {
|
|
10
|
-
path: ".pinokio/
|
|
11
|
-
content: "post.md",
|
|
9
|
+
path: ".pinokio/notes",
|
|
12
10
|
publish: {
|
|
13
11
|
target: "registry",
|
|
14
12
|
type: "post",
|
|
@@ -3,11 +3,9 @@ module.exports = {
|
|
|
3
3
|
link: "https://github.com/QwenLM/qwen-code",
|
|
4
4
|
icon: "qwen.png",
|
|
5
5
|
watch: [{
|
|
6
|
-
|
|
7
|
-
method: "ready",
|
|
6
|
+
method: "note.watch",
|
|
8
7
|
params: {
|
|
9
|
-
path: ".pinokio/
|
|
10
|
-
content: "post.md",
|
|
8
|
+
path: ".pinokio/notes",
|
|
11
9
|
publish: {
|
|
12
10
|
target: "registry",
|
|
13
11
|
type: "post",
|
|
@@ -4,11 +4,9 @@ module.exports = {
|
|
|
4
4
|
icon: "vscode.png",
|
|
5
5
|
description: "The AI Code Editor",
|
|
6
6
|
watch: [{
|
|
7
|
-
|
|
8
|
-
method: "ready",
|
|
7
|
+
method: "note.watch",
|
|
9
8
|
params: {
|
|
10
|
-
path: ".pinokio/
|
|
11
|
-
content: "post.md",
|
|
9
|
+
path: ".pinokio/notes",
|
|
12
10
|
publish: {
|
|
13
11
|
target: "registry",
|
|
14
12
|
type: "post",
|
|
@@ -5,11 +5,9 @@ module.exports = {
|
|
|
5
5
|
description: "The AI Code Editor",
|
|
6
6
|
launch_type: "desktop",
|
|
7
7
|
watch: [{
|
|
8
|
-
|
|
9
|
-
method: "ready",
|
|
8
|
+
method: "note.watch",
|
|
10
9
|
params: {
|
|
11
|
-
path: ".pinokio/
|
|
12
|
-
content: "post.md",
|
|
10
|
+
path: ".pinokio/notes",
|
|
13
11
|
publish: {
|
|
14
12
|
target: "registry",
|
|
15
13
|
type: "post",
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
const assert = require("assert")
|
|
2
|
+
const test = require("node:test")
|
|
3
|
+
const PluginSources = require("../kernel/plugin_sources")
|
|
4
|
+
|
|
5
|
+
test("resolveLauncherPluginSelection returns app-dev plugin query paths", () => {
|
|
6
|
+
assert.strictEqual(
|
|
7
|
+
PluginSources.resolveLauncherPluginSelection("codex-auto"),
|
|
8
|
+
"/plugin/codex-auto/pinokio.js"
|
|
9
|
+
)
|
|
10
|
+
assert.strictEqual(
|
|
11
|
+
PluginSources.resolveLauncherPluginSelection("plugin/local-tool"),
|
|
12
|
+
"/plugin/local-tool/pinokio.js"
|
|
13
|
+
)
|
|
14
|
+
assert.strictEqual(
|
|
15
|
+
PluginSources.resolveLauncherPluginSelection("api/my-app/plugins/helper"),
|
|
16
|
+
"/api/my-app/plugins/helper/pinokio.js"
|
|
17
|
+
)
|
|
18
|
+
assert.strictEqual(
|
|
19
|
+
PluginSources.resolveLauncherPluginSelection("pinokio/run/plugin/codex-auto"),
|
|
20
|
+
"/pinokio/run/plugin/codex-auto/pinokio.js"
|
|
21
|
+
)
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
test("normalizeLauncherSuccessPlugin rewrites prototype plugin redirects", () => {
|
|
25
|
+
assert.strictEqual(
|
|
26
|
+
PluginSources.normalizeLauncherSuccessPlugin(
|
|
27
|
+
"/p/example/dev?plugin=/plugin/pinokio/run/plugin/codex-auto/pinokio.js&prompt=build",
|
|
28
|
+
"pinokio/run/plugin/codex-auto"
|
|
29
|
+
),
|
|
30
|
+
"/p/example/dev?plugin=%2Fpinokio%2Frun%2Fplugin%2Fcodex-auto%2Fpinokio.js&prompt=build"
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
assert.strictEqual(
|
|
34
|
+
PluginSources.normalizeLauncherSuccessPlugin(
|
|
35
|
+
"/p/example/dev?plugin=/plugin/api/my-app/plugins/helper/pinokio.js",
|
|
36
|
+
"api/my-app/plugins/helper"
|
|
37
|
+
),
|
|
38
|
+
"/p/example/dev?plugin=%2Fapi%2Fmy-app%2Fplugins%2Fhelper%2Fpinokio.js"
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
assert.strictEqual(
|
|
42
|
+
PluginSources.normalizeLauncherSuccessPlugin("/p/example/dev", "pinokio/run/plugin/codex-auto"),
|
|
43
|
+
"/p/example/dev"
|
|
44
|
+
)
|
|
45
|
+
})
|