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.
Files changed (150) hide show
  1. package/CONTRIBUTING.md +76 -0
  2. package/DOCS.md +370 -0
  3. package/LICENSE +21 -0
  4. package/README.md +147 -0
  5. package/black_logo.png +0 -0
  6. package/dist/assets/abap-DLDM7-KI.js +1 -0
  7. package/dist/assets/apex-DNDY2TF8.js +1 -0
  8. package/dist/assets/azcli-Y6nb8tq_.js +1 -0
  9. package/dist/assets/bat-BwHxbl9M.js +1 -0
  10. package/dist/assets/bicep-CFznDFnq.js +2 -0
  11. package/dist/assets/cameligo-Bf6VGUru.js +1 -0
  12. package/dist/assets/clojure-Dnu-v4kV.js +1 -0
  13. package/dist/assets/codicon-ngg6Pgfi.ttf +0 -0
  14. package/dist/assets/coffee-Bd8akH9Z.js +1 -0
  15. package/dist/assets/cpp-BbWJElDN.js +1 -0
  16. package/dist/assets/csharp-Co3qMtFm.js +1 -0
  17. package/dist/assets/csp-D-4FJmMZ.js +1 -0
  18. package/dist/assets/css-DdJfP1eB.js +3 -0
  19. package/dist/assets/css.worker-GxEd3MMM.js +93 -0
  20. package/dist/assets/cssMode-DM_ONlf-.js +1 -0
  21. package/dist/assets/cypher-cTPe9QuQ.js +1 -0
  22. package/dist/assets/dart-BOtBlQCF.js +1 -0
  23. package/dist/assets/dockerfile-BG73LgW2.js +1 -0
  24. package/dist/assets/ecl-BEgZUVRK.js +1 -0
  25. package/dist/assets/elixir-BkW5O-1t.js +1 -0
  26. package/dist/assets/flow9-BeJ5waoc.js +1 -0
  27. package/dist/assets/freemarker2-VbwzOQPq.js +3 -0
  28. package/dist/assets/fsharp-PahG7c26.js +1 -0
  29. package/dist/assets/go-acbASCJo.js +1 -0
  30. package/dist/assets/graphql-BxJiqAUM.js +1 -0
  31. package/dist/assets/handlebars-DLvQ802u.js +1 -0
  32. package/dist/assets/hcl-DtV1sZF8.js +1 -0
  33. package/dist/assets/html-DuEPBzmS.js +1 -0
  34. package/dist/assets/html.worker-lU17Tx2m.js +470 -0
  35. package/dist/assets/htmlMode-BfeYTJaB.js +1 -0
  36. package/dist/assets/index-BnBKg8GZ.js +1291 -0
  37. package/dist/assets/index-Dq3FlPWe.css +32 -0
  38. package/dist/assets/ini-Kd9XrMLS.js +1 -0
  39. package/dist/assets/java-CXBNlu9o.js +1 -0
  40. package/dist/assets/javascript-DQO1Leza.js +1 -0
  41. package/dist/assets/json.worker-CUJs-dtA.js +58 -0
  42. package/dist/assets/jsonMode--qsURhHr.js +7 -0
  43. package/dist/assets/julia-cl7-CwDS.js +1 -0
  44. package/dist/assets/kotlin-s7OhZKlX.js +1 -0
  45. package/dist/assets/less-9HpZscsL.js +2 -0
  46. package/dist/assets/lexon-OrD6JF1K.js +1 -0
  47. package/dist/assets/liquid-PL6MZtM8.js +1 -0
  48. package/dist/assets/lspLanguageFeatures-Cy5rDFeq.js +4 -0
  49. package/dist/assets/lua-Cyyb5UIc.js +1 -0
  50. package/dist/assets/m3-B8OfTtLu.js +1 -0
  51. package/dist/assets/markdown-BFxVWTOG.js +1 -0
  52. package/dist/assets/mdx-Cb3Jy14X.js +1 -0
  53. package/dist/assets/mips-CiqrrVzr.js +1 -0
  54. package/dist/assets/msdax-DmeGPVcC.js +1 -0
  55. package/dist/assets/mysql-C_tMU-Nz.js +1 -0
  56. package/dist/assets/objective-c-BDtDVThU.js +1 -0
  57. package/dist/assets/pascal-vHIfCaH5.js +1 -0
  58. package/dist/assets/pascaligo-DtZ0uQbO.js +1 -0
  59. package/dist/assets/perl-Ub6l9XKa.js +1 -0
  60. package/dist/assets/pgsql-BlNEE0v7.js +1 -0
  61. package/dist/assets/php-BBUBE1dy.js +1 -0
  62. package/dist/assets/pla-DSh2-awV.js +1 -0
  63. package/dist/assets/postiats-CocnycG-.js +1 -0
  64. package/dist/assets/powerquery-tScXyioY.js +1 -0
  65. package/dist/assets/powershell-COWaemsV.js +1 -0
  66. package/dist/assets/protobuf-Brw8urJB.js +2 -0
  67. package/dist/assets/pug-8SOpv6rk.js +1 -0
  68. package/dist/assets/python-Usm4OUwq.js +1 -0
  69. package/dist/assets/qsharp-Bw9ernYp.js +1 -0
  70. package/dist/assets/r-j7ic8hl3.js +1 -0
  71. package/dist/assets/razor-BIOole7a.js +1 -0
  72. package/dist/assets/redis-Bu5POkcn.js +1 -0
  73. package/dist/assets/redshift-Bs9aos_-.js +1 -0
  74. package/dist/assets/restructuredtext-CqXO7rUv.js +1 -0
  75. package/dist/assets/ruby-zBfavPgS.js +1 -0
  76. package/dist/assets/rust-BzKRNQWT.js +1 -0
  77. package/dist/assets/sb-BBc9UKZt.js +1 -0
  78. package/dist/assets/scala-D9hQfWCl.js +1 -0
  79. package/dist/assets/scheme-BPhDTwHR.js +1 -0
  80. package/dist/assets/scss-CBJaRo0y.js +3 -0
  81. package/dist/assets/shell-DiJ1NA_G.js +1 -0
  82. package/dist/assets/solidity-Db0IVjzk.js +1 -0
  83. package/dist/assets/sophia-CnS9iZB_.js +1 -0
  84. package/dist/assets/sparql-CJmd_6j2.js +1 -0
  85. package/dist/assets/sql-ClhHkBeG.js +1 -0
  86. package/dist/assets/st-CHwy0fLd.js +1 -0
  87. package/dist/assets/swift-Bqt4WxQ4.js +3 -0
  88. package/dist/assets/systemverilog-Bs9z6M-B.js +1 -0
  89. package/dist/assets/tcl-Dm6ycUr_.js +1 -0
  90. package/dist/assets/ts.worker-Dy9lDQQT.js +67731 -0
  91. package/dist/assets/tsMode-CDjF3DWK.js +11 -0
  92. package/dist/assets/twig-Csy3S7wG.js +1 -0
  93. package/dist/assets/typescript-CJR4sLnG.js +1 -0
  94. package/dist/assets/typespec-Btyra-wh.js +1 -0
  95. package/dist/assets/vb-Db0cS2oM.js +1 -0
  96. package/dist/assets/wgsl-DumH7NcR.js +298 -0
  97. package/dist/assets/xml-CJZS3uh7.js +1 -0
  98. package/dist/assets/yaml-DB88cW5z.js +1 -0
  99. package/dist/audit.d.ts +48 -0
  100. package/dist/container.d.ts +100 -0
  101. package/dist/event-emitter.d.ts +7 -0
  102. package/dist/favicon.png +0 -0
  103. package/dist/git-service.d.ts +31 -0
  104. package/dist/index.html +188 -0
  105. package/dist/logo-sm.png +0 -0
  106. package/dist/logo.png +0 -0
  107. package/dist/main.d.ts +1 -0
  108. package/dist/monaco-editor.d.ts +11 -0
  109. package/dist/monacoeditorwork/css.worker.bundle.js +54264 -0
  110. package/dist/monacoeditorwork/editor.worker.bundle.js +14317 -0
  111. package/dist/monacoeditorwork/html.worker.bundle.js +30449 -0
  112. package/dist/monacoeditorwork/json.worker.bundle.js +22085 -0
  113. package/dist/monacoeditorwork/ts.worker.bundle.js +225552 -0
  114. package/dist/net-intercept.d.ts +2 -0
  115. package/dist/network-hook.d.ts +1 -0
  116. package/dist/plugin.d.ts +20 -0
  117. package/dist/policy.d.ts +58 -0
  118. package/dist/sdk.d.ts +61 -0
  119. package/dist/tab-manager.d.ts +11 -0
  120. package/dist/templates.d.ts +46 -0
  121. package/dist/terminal.d.ts +19 -0
  122. package/dist/types.d.ts +109 -0
  123. package/dist/ui.d.ts +81 -0
  124. package/dist/workspace.d.ts +16 -0
  125. package/index.html +159 -0
  126. package/logo.png +0 -0
  127. package/package.json +31 -0
  128. package/public/favicon.png +0 -0
  129. package/public/logo-sm.png +0 -0
  130. package/public/logo.png +0 -0
  131. package/src/audit.ts +196 -0
  132. package/src/container.ts +723 -0
  133. package/src/event-emitter.ts +28 -0
  134. package/src/git-service.ts +202 -0
  135. package/src/main.ts +9 -0
  136. package/src/monaco-editor.ts +111 -0
  137. package/src/net-intercept.ts +74 -0
  138. package/src/network-hook.ts +248 -0
  139. package/src/plugin.ts +63 -0
  140. package/src/policy.ts +403 -0
  141. package/src/sdk.ts +355 -0
  142. package/src/style.css +432 -0
  143. package/src/tab-manager.ts +30 -0
  144. package/src/templates.ts +271 -0
  145. package/src/terminal.ts +78 -0
  146. package/src/types.ts +113 -0
  147. package/src/ui.ts +1266 -0
  148. package/src/workspace.ts +107 -0
  149. package/tsconfig.json +20 -0
  150. package/vite.config.ts +52 -0
@@ -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
+ });