clawcontainer 1.0.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/CONTRIBUTING.md +76 -0
- package/DOCS.md +370 -0
- package/LICENSE +21 -0
- package/README.md +147 -0
- package/black_logo.png +0 -0
- package/dist/assets/abap-DLDM7-KI.js +1 -0
- package/dist/assets/apex-DNDY2TF8.js +1 -0
- package/dist/assets/azcli-Y6nb8tq_.js +1 -0
- package/dist/assets/bat-BwHxbl9M.js +1 -0
- package/dist/assets/bicep-CFznDFnq.js +2 -0
- package/dist/assets/cameligo-Bf6VGUru.js +1 -0
- package/dist/assets/clojure-Dnu-v4kV.js +1 -0
- package/dist/assets/codicon-ngg6Pgfi.ttf +0 -0
- package/dist/assets/coffee-Bd8akH9Z.js +1 -0
- package/dist/assets/cpp-BbWJElDN.js +1 -0
- package/dist/assets/csharp-Co3qMtFm.js +1 -0
- package/dist/assets/csp-D-4FJmMZ.js +1 -0
- package/dist/assets/css-DdJfP1eB.js +3 -0
- package/dist/assets/css.worker-GxEd3MMM.js +93 -0
- package/dist/assets/cssMode-DM_ONlf-.js +1 -0
- package/dist/assets/cypher-cTPe9QuQ.js +1 -0
- package/dist/assets/dart-BOtBlQCF.js +1 -0
- package/dist/assets/dockerfile-BG73LgW2.js +1 -0
- package/dist/assets/ecl-BEgZUVRK.js +1 -0
- package/dist/assets/elixir-BkW5O-1t.js +1 -0
- package/dist/assets/flow9-BeJ5waoc.js +1 -0
- package/dist/assets/freemarker2-VbwzOQPq.js +3 -0
- package/dist/assets/fsharp-PahG7c26.js +1 -0
- package/dist/assets/go-acbASCJo.js +1 -0
- package/dist/assets/graphql-BxJiqAUM.js +1 -0
- package/dist/assets/handlebars-DLvQ802u.js +1 -0
- package/dist/assets/hcl-DtV1sZF8.js +1 -0
- package/dist/assets/html-DuEPBzmS.js +1 -0
- package/dist/assets/html.worker-lU17Tx2m.js +470 -0
- package/dist/assets/htmlMode-BfeYTJaB.js +1 -0
- package/dist/assets/index-BnBKg8GZ.js +1291 -0
- package/dist/assets/index-Dq3FlPWe.css +32 -0
- package/dist/assets/ini-Kd9XrMLS.js +1 -0
- package/dist/assets/java-CXBNlu9o.js +1 -0
- package/dist/assets/javascript-DQO1Leza.js +1 -0
- package/dist/assets/json.worker-CUJs-dtA.js +58 -0
- package/dist/assets/jsonMode--qsURhHr.js +7 -0
- package/dist/assets/julia-cl7-CwDS.js +1 -0
- package/dist/assets/kotlin-s7OhZKlX.js +1 -0
- package/dist/assets/less-9HpZscsL.js +2 -0
- package/dist/assets/lexon-OrD6JF1K.js +1 -0
- package/dist/assets/liquid-PL6MZtM8.js +1 -0
- package/dist/assets/lspLanguageFeatures-Cy5rDFeq.js +4 -0
- package/dist/assets/lua-Cyyb5UIc.js +1 -0
- package/dist/assets/m3-B8OfTtLu.js +1 -0
- package/dist/assets/markdown-BFxVWTOG.js +1 -0
- package/dist/assets/mdx-Cb3Jy14X.js +1 -0
- package/dist/assets/mips-CiqrrVzr.js +1 -0
- package/dist/assets/msdax-DmeGPVcC.js +1 -0
- package/dist/assets/mysql-C_tMU-Nz.js +1 -0
- package/dist/assets/objective-c-BDtDVThU.js +1 -0
- package/dist/assets/pascal-vHIfCaH5.js +1 -0
- package/dist/assets/pascaligo-DtZ0uQbO.js +1 -0
- package/dist/assets/perl-Ub6l9XKa.js +1 -0
- package/dist/assets/pgsql-BlNEE0v7.js +1 -0
- package/dist/assets/php-BBUBE1dy.js +1 -0
- package/dist/assets/pla-DSh2-awV.js +1 -0
- package/dist/assets/postiats-CocnycG-.js +1 -0
- package/dist/assets/powerquery-tScXyioY.js +1 -0
- package/dist/assets/powershell-COWaemsV.js +1 -0
- package/dist/assets/protobuf-Brw8urJB.js +2 -0
- package/dist/assets/pug-8SOpv6rk.js +1 -0
- package/dist/assets/python-Usm4OUwq.js +1 -0
- package/dist/assets/qsharp-Bw9ernYp.js +1 -0
- package/dist/assets/r-j7ic8hl3.js +1 -0
- package/dist/assets/razor-BIOole7a.js +1 -0
- package/dist/assets/redis-Bu5POkcn.js +1 -0
- package/dist/assets/redshift-Bs9aos_-.js +1 -0
- package/dist/assets/restructuredtext-CqXO7rUv.js +1 -0
- package/dist/assets/ruby-zBfavPgS.js +1 -0
- package/dist/assets/rust-BzKRNQWT.js +1 -0
- package/dist/assets/sb-BBc9UKZt.js +1 -0
- package/dist/assets/scala-D9hQfWCl.js +1 -0
- package/dist/assets/scheme-BPhDTwHR.js +1 -0
- package/dist/assets/scss-CBJaRo0y.js +3 -0
- package/dist/assets/shell-DiJ1NA_G.js +1 -0
- package/dist/assets/solidity-Db0IVjzk.js +1 -0
- package/dist/assets/sophia-CnS9iZB_.js +1 -0
- package/dist/assets/sparql-CJmd_6j2.js +1 -0
- package/dist/assets/sql-ClhHkBeG.js +1 -0
- package/dist/assets/st-CHwy0fLd.js +1 -0
- package/dist/assets/swift-Bqt4WxQ4.js +3 -0
- package/dist/assets/systemverilog-Bs9z6M-B.js +1 -0
- package/dist/assets/tcl-Dm6ycUr_.js +1 -0
- package/dist/assets/ts.worker-Dy9lDQQT.js +67731 -0
- package/dist/assets/tsMode-CDjF3DWK.js +11 -0
- package/dist/assets/twig-Csy3S7wG.js +1 -0
- package/dist/assets/typescript-CJR4sLnG.js +1 -0
- package/dist/assets/typespec-Btyra-wh.js +1 -0
- package/dist/assets/vb-Db0cS2oM.js +1 -0
- package/dist/assets/wgsl-DumH7NcR.js +298 -0
- package/dist/assets/xml-CJZS3uh7.js +1 -0
- package/dist/assets/yaml-DB88cW5z.js +1 -0
- package/dist/audit.d.ts +48 -0
- package/dist/container.d.ts +100 -0
- package/dist/event-emitter.d.ts +7 -0
- package/dist/favicon.png +0 -0
- package/dist/git-service.d.ts +31 -0
- package/dist/index.html +188 -0
- package/dist/logo-sm.png +0 -0
- package/dist/logo.png +0 -0
- package/dist/main.d.ts +1 -0
- package/dist/monaco-editor.d.ts +11 -0
- package/dist/monacoeditorwork/css.worker.bundle.js +54264 -0
- package/dist/monacoeditorwork/editor.worker.bundle.js +14317 -0
- package/dist/monacoeditorwork/html.worker.bundle.js +30449 -0
- package/dist/monacoeditorwork/json.worker.bundle.js +22085 -0
- package/dist/monacoeditorwork/ts.worker.bundle.js +225552 -0
- package/dist/net-intercept.d.ts +2 -0
- package/dist/network-hook.d.ts +1 -0
- package/dist/plugin.d.ts +20 -0
- package/dist/policy.d.ts +58 -0
- package/dist/sdk.d.ts +61 -0
- package/dist/tab-manager.d.ts +11 -0
- package/dist/templates.d.ts +46 -0
- package/dist/terminal.d.ts +19 -0
- package/dist/types.d.ts +109 -0
- package/dist/ui.d.ts +81 -0
- package/dist/workspace.d.ts +16 -0
- package/index.html +159 -0
- package/logo.png +0 -0
- package/package.json +31 -0
- package/public/favicon.png +0 -0
- package/public/logo-sm.png +0 -0
- package/public/logo.png +0 -0
- package/src/audit.ts +196 -0
- package/src/container.ts +723 -0
- package/src/event-emitter.ts +28 -0
- package/src/git-service.ts +202 -0
- package/src/main.ts +9 -0
- package/src/monaco-editor.ts +111 -0
- package/src/net-intercept.ts +74 -0
- package/src/network-hook.ts +248 -0
- package/src/plugin.ts +63 -0
- package/src/policy.ts +403 -0
- package/src/sdk.ts +355 -0
- package/src/style.css +432 -0
- package/src/tab-manager.ts +30 -0
- package/src/templates.ts +271 -0
- package/src/terminal.ts +78 -0
- package/src/types.ts +113 -0
- package/src/ui.ts +1266 -0
- package/src/workspace.ts +107 -0
- package/tsconfig.json +20 -0
- package/vite.config.ts +52 -0
package/src/workspace.ts
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default workspace files mounted into the WebContainer /workspace directory.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export const DEFAULT_AGENT_YAML = `spec_version: "0.1.0"
|
|
6
|
+
name: my-agent
|
|
7
|
+
version: 1.0.0
|
|
8
|
+
model:
|
|
9
|
+
preferred: "" # set via API config panel
|
|
10
|
+
fallback: []
|
|
11
|
+
tools: [cli, read, write, memory]
|
|
12
|
+
runtime:
|
|
13
|
+
max_turns: 50
|
|
14
|
+
timeout: 120
|
|
15
|
+
`;
|
|
16
|
+
|
|
17
|
+
export const DEFAULT_SOUL_MD = `# Agent Soul
|
|
18
|
+
|
|
19
|
+
You are a helpful, thoughtful AI assistant running inside ClawLess.
|
|
20
|
+
You can read and write files, run commands, and remember things.
|
|
21
|
+
`;
|
|
22
|
+
|
|
23
|
+
export const DEFAULT_RULES_MD = `# Agent Rules
|
|
24
|
+
|
|
25
|
+
1. Be concise and accurate.
|
|
26
|
+
2. Ask for clarification before taking irreversible actions.
|
|
27
|
+
3. Prefer small, focused changes over large rewrites.
|
|
28
|
+
4. Always explain what you are doing and why.
|
|
29
|
+
`;
|
|
30
|
+
|
|
31
|
+
export const DEFAULT_MEMORY_MD = `# Memory Index
|
|
32
|
+
|
|
33
|
+
No memories saved yet.
|
|
34
|
+
`;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Node.js script that acts as a git stub.
|
|
38
|
+
* npm will create node_modules/.bin/git → ../../git-stub.js with execute bit set.
|
|
39
|
+
*/
|
|
40
|
+
export const GIT_STUB_JS = `#!/usr/bin/env node
|
|
41
|
+
const [,, cmd, ...args] = process.argv;
|
|
42
|
+
if (cmd === 'init') {
|
|
43
|
+
const fs = require('fs');
|
|
44
|
+
if (!fs.existsSync('.git')) {
|
|
45
|
+
fs.mkdirSync('.git/objects', { recursive: true });
|
|
46
|
+
fs.mkdirSync('.git/refs/heads', { recursive: true });
|
|
47
|
+
fs.writeFileSync('.git/HEAD', 'ref: refs/heads/main\\n');
|
|
48
|
+
fs.writeFileSync('.git/config', '[core]\\n\\trepositoryformatversion = 0\\n\\tbare = false\\n');
|
|
49
|
+
}
|
|
50
|
+
console.log('Initialized empty Git repository in ' + process.cwd() + '/.git/');
|
|
51
|
+
} else if (cmd === '--version' || cmd === 'version') {
|
|
52
|
+
console.log('git version 2.39.0');
|
|
53
|
+
} else if (cmd === 'rev-parse') {
|
|
54
|
+
if (args.includes('--show-toplevel')) process.stdout.write(process.cwd() + '\\n');
|
|
55
|
+
else process.stdout.write('\\n');
|
|
56
|
+
}
|
|
57
|
+
// add, commit, status, log, etc. silently succeed (exit 0)
|
|
58
|
+
process.exit(0);
|
|
59
|
+
`;
|
|
60
|
+
|
|
61
|
+
/** Returns the FileSystem tree to mount under /workspace inside WebContainer. */
|
|
62
|
+
export function buildWorkspaceFiles(extra?: Record<string, string>) {
|
|
63
|
+
const tree: Record<string, any> = {
|
|
64
|
+
'agent.yaml': { file: { contents: DEFAULT_AGENT_YAML } },
|
|
65
|
+
'SOUL.md': { file: { contents: DEFAULT_SOUL_MD } },
|
|
66
|
+
'RULES.md': { file: { contents: DEFAULT_RULES_MD } },
|
|
67
|
+
'memory': {
|
|
68
|
+
directory: {
|
|
69
|
+
'MEMORY.md': { file: { contents: DEFAULT_MEMORY_MD } },
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
// Merge user-provided flat files (e.g. 'src/index.ts': '...')
|
|
75
|
+
if (extra) {
|
|
76
|
+
for (const [path, content] of Object.entries(extra)) {
|
|
77
|
+
const parts = path.split('/');
|
|
78
|
+
let node = tree;
|
|
79
|
+
for (let i = 0; i < parts.length - 1; i++) {
|
|
80
|
+
if (!node[parts[i]]) node[parts[i]] = { directory: {} };
|
|
81
|
+
node = node[parts[i]].directory;
|
|
82
|
+
}
|
|
83
|
+
node[parts[parts.length - 1]] = { file: { contents: content } };
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return tree;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/** Returns the inner-container package.json that requests gitclaw. */
|
|
91
|
+
export function buildContainerPackageJson(extraDeps?: Record<string, string>) {
|
|
92
|
+
return JSON.stringify({
|
|
93
|
+
name: 'gitclaw-workspace',
|
|
94
|
+
version: '1.0.0',
|
|
95
|
+
private: true,
|
|
96
|
+
// npm creates node_modules/.bin/git → ../../git-stub.js with execute bit
|
|
97
|
+
bin: { git: './git-stub.js' },
|
|
98
|
+
dependencies: {
|
|
99
|
+
gitclaw: '1.1.4',
|
|
100
|
+
...extraDeps,
|
|
101
|
+
},
|
|
102
|
+
// baileys has a git-SSH dep (libsignal-node) unreachable in WebContainer
|
|
103
|
+
overrides: {
|
|
104
|
+
'baileys': 'npm:is-number@7.0.0',
|
|
105
|
+
},
|
|
106
|
+
}, null, 2);
|
|
107
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"useDefineForClassFields": true,
|
|
5
|
+
"module": "ESNext",
|
|
6
|
+
"lib": ["ES2022", "DOM", "DOM.Iterable"],
|
|
7
|
+
"moduleResolution": "bundler",
|
|
8
|
+
"resolveJsonModule": true,
|
|
9
|
+
"allowImportingTsExtensions": true,
|
|
10
|
+
"declaration": true,
|
|
11
|
+
"declarationDir": "dist",
|
|
12
|
+
"emitDeclarationOnly": true,
|
|
13
|
+
"strict": true,
|
|
14
|
+
"noUnusedLocals": true,
|
|
15
|
+
"noUnusedParameters": true,
|
|
16
|
+
"noFallthroughCasesInSwitch": true,
|
|
17
|
+
"skipLibCheck": true
|
|
18
|
+
},
|
|
19
|
+
"include": ["src"]
|
|
20
|
+
}
|
package/vite.config.ts
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { defineConfig } from 'vite';
|
|
2
|
+
import monacoEditorPlugin from 'vite-plugin-monaco-editor';
|
|
3
|
+
|
|
4
|
+
export default defineConfig(({ mode }) => {
|
|
5
|
+
const isLib = mode === 'lib';
|
|
6
|
+
|
|
7
|
+
return {
|
|
8
|
+
plugins: [
|
|
9
|
+
(monacoEditorPlugin as any).default({
|
|
10
|
+
languageWorkers: ['editorWorkerService', 'json', 'css', 'html', 'typescript'],
|
|
11
|
+
}),
|
|
12
|
+
],
|
|
13
|
+
server: {
|
|
14
|
+
headers: {
|
|
15
|
+
'Cross-Origin-Embedder-Policy': 'require-corp',
|
|
16
|
+
'Cross-Origin-Opener-Policy': 'same-origin',
|
|
17
|
+
},
|
|
18
|
+
proxy: {
|
|
19
|
+
'/api/browserbase': {
|
|
20
|
+
target: 'https://api.browserbase.com',
|
|
21
|
+
changeOrigin: true,
|
|
22
|
+
rewrite: (path) => path.replace(/^\/api\/browserbase/, ''),
|
|
23
|
+
secure: true,
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
preview: {
|
|
28
|
+
headers: {
|
|
29
|
+
'Cross-Origin-Embedder-Policy': 'require-corp',
|
|
30
|
+
'Cross-Origin-Opener-Policy': 'same-origin',
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
build: isLib
|
|
34
|
+
? {
|
|
35
|
+
target: 'esnext',
|
|
36
|
+
lib: {
|
|
37
|
+
entry: 'src/sdk.ts',
|
|
38
|
+
formats: ['es'],
|
|
39
|
+
fileName: 'sdk',
|
|
40
|
+
},
|
|
41
|
+
rollupOptions: {
|
|
42
|
+
external: ['@webcontainer/api', '@xterm/xterm', '@xterm/addon-fit', 'monaco-editor'],
|
|
43
|
+
},
|
|
44
|
+
}
|
|
45
|
+
: {
|
|
46
|
+
target: 'esnext',
|
|
47
|
+
},
|
|
48
|
+
optimizeDeps: {
|
|
49
|
+
exclude: ['@webcontainer/api'],
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
});
|