chamba 0.7.0 → 0.9.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 (134) hide show
  1. package/LICENSE +53 -14
  2. package/README.md +34 -8
  3. package/dist/commands/advanced.js +7 -278
  4. package/dist/commands/dev.js +11 -612
  5. package/dist/commands/doctor.js +1 -29
  6. package/dist/commands/menu.js +1 -80
  7. package/dist/commands/onboard.js +6 -230
  8. package/dist/commands/settings.js +15 -349
  9. package/dist/lib/agent-commands.js +2 -0
  10. package/dist/lib/agent-context.js +6 -210
  11. package/dist/lib/browser.js +1 -40
  12. package/dist/lib/chamba-yaml.js +10 -191
  13. package/dist/lib/constants.js +1 -125
  14. package/dist/lib/dockerfile-builder.js +41 -261
  15. package/dist/lib/env.js +2 -78
  16. package/dist/lib/git-env.js +1 -21
  17. package/dist/lib/global-config.js +4 -66
  18. package/dist/lib/pnpm-store.js +1 -19
  19. package/dist/lib/ports.js +1 -210
  20. package/dist/lib/safe-rm.js +1 -36
  21. package/dist/lib/sessions.js +2 -34
  22. package/dist/lib/shadows.js +1 -176
  23. package/dist/lib/skills.js +2 -0
  24. package/dist/lib/templates.js +1 -0
  25. package/dist/lib/webterm.js +1 -305
  26. package/dist/lib/workspace-identity.js +4 -260
  27. package/package.json +4 -4
  28. package/templates/Dockerfile +15 -22
  29. package/templates/claude-statusline.sh +5 -7
  30. package/templates/context/baseline.md +4 -2
  31. package/templates/context/web-pane-craft.md +1 -1
  32. package/templates/pane-apps/client/assets/api-BBDf_rzz.js +12 -0
  33. package/templates/pane-apps/client/assets/api-DNLbSBpK.css +1 -0
  34. package/templates/pane-apps/client/assets/bee-B7t97l5B.webp +0 -0
  35. package/templates/pane-apps/client/assets/buzz-CUUsbnXH.mp3 +0 -0
  36. package/templates/pane-apps/client/assets/c-BNa-DeUl.json +3552 -0
  37. package/templates/pane-apps/client/assets/cpp-B-T4NRoH.json +20239 -0
  38. package/templates/pane-apps/client/assets/csharp-BbxHChhA.json +6010 -0
  39. package/templates/pane-apps/client/assets/css-CWCxuwmz.json +1860 -0
  40. package/templates/pane-apps/client/assets/diff-B-2N89g8.json +154 -0
  41. package/templates/pane-apps/client/assets/docker-DWTvYW26.json +103 -0
  42. package/templates/pane-apps/client/assets/files-BkmyervY.js +1 -0
  43. package/templates/pane-apps/client/assets/go-B2hyYeNg.json +3156 -0
  44. package/templates/pane-apps/client/assets/graphql-Z6Id2aNO.json +1292 -0
  45. package/templates/pane-apps/client/assets/home-3SeGzySM.css +1 -0
  46. package/templates/pane-apps/client/assets/home-Cu9xOd2i.js +1 -0
  47. package/templates/pane-apps/client/assets/html-BtzvlIfu.json +2627 -0
  48. package/templates/pane-apps/client/assets/ini-Bn3Twap1.json +108 -0
  49. package/templates/pane-apps/client/assets/java-C7t2dwLO.json +1885 -0
  50. package/templates/pane-apps/client/assets/javascript-DuC2v0C0.json +5996 -0
  51. package/templates/pane-apps/client/assets/json-CwdkWeV5.json +206 -0
  52. package/templates/pane-apps/client/assets/jsonc-MYWDbTU3.json +206 -0
  53. package/templates/pane-apps/client/assets/jsx-Cn8EZuIC.json +5996 -0
  54. package/templates/pane-apps/client/assets/kotlin-CFNOz1gw.json +580 -0
  55. package/templates/pane-apps/client/assets/make-BVnlFCcl.json +629 -0
  56. package/templates/pane-apps/client/assets/markdown-B4Xk2WM_.json +3263 -0
  57. package/templates/pane-apps/client/assets/php-CAQzQmmI.json +4188 -0
  58. package/templates/pane-apps/client/assets/pop-D5ZANBC3.mp3 +0 -0
  59. package/templates/pane-apps/client/assets/python-CYQee8m4.json +4174 -0
  60. package/templates/pane-apps/client/assets/reviews-DMrGB-kG.js +153 -0
  61. package/templates/pane-apps/client/assets/reviews-nK_yRav9.css +1 -0
  62. package/templates/pane-apps/client/assets/ruby-D7R58tus.json +3114 -0
  63. package/templates/pane-apps/client/assets/rust-BFBbFiei.json +1103 -0
  64. package/templates/pane-apps/client/assets/scss-TQRhBkPG.json +1874 -0
  65. package/templates/pane-apps/client/assets/shellscript-DieAkC4W.json +2375 -0
  66. package/templates/pane-apps/client/assets/specs-Cabb15F0.js +13 -0
  67. package/templates/pane-apps/client/assets/sql-Bxd030LV.json +634 -0
  68. package/templates/pane-apps/client/assets/toml-ChrKGzsV.json +430 -0
  69. package/templates/pane-apps/client/assets/tsx-D2e90MFw.json +5996 -0
  70. package/templates/pane-apps/client/assets/typescript-DonXQ_n1.json +5747 -0
  71. package/templates/pane-apps/client/assets/useNow-BHFKFraS.js +1 -0
  72. package/templates/pane-apps/client/assets/xml-B17r2RXF.json +382 -0
  73. package/templates/pane-apps/client/assets/yaml-CKn4h1zy.json +627 -0
  74. package/templates/pane-apps/client/home/index.html +16 -0
  75. package/templates/pane-apps/client/reviews/index.html +17 -0
  76. package/templates/pane-apps/client/specs/index.html +4 -2
  77. package/templates/pane-apps/server/home.mjs +12 -0
  78. package/templates/pane-apps/server/reviews.mjs +21 -0
  79. package/templates/pane-apps/server/specs.mjs +5 -1588
  80. package/templates/skills/chamba-statusline/SKILL.md +7 -19
  81. package/templates/skills/dx-review/SKILL.md +136 -0
  82. package/templates/skills/dx-review/references/acts.md +233 -0
  83. package/templates/skills/dx-spec/SKILL.md +230 -30
  84. package/templates/skills/dx-spec/references/principles-template.md +2 -0
  85. package/templates/skills/dx-spec/references/review-guide.md +6 -52
  86. package/templates/skills/dx-spec/references/spec-guide.md +25 -5
  87. package/templates/skills/dx-spec/references/stages.md +149 -60
  88. package/templates/skills/dx-spec-execute/SKILL.md +217 -38
  89. package/templates/startup.mjs +22 -16
  90. package/templates/tool-helper.sh +168 -0
  91. package/templates/webterm/README.md +82 -27
  92. package/templates/webterm/color.js +61 -0
  93. package/templates/webterm/config.js +55 -4
  94. package/templates/webterm/context/claude.md +0 -1
  95. package/templates/webterm/public/app/alerts.js +95 -14
  96. package/templates/webterm/public/app/anchored.js +81 -0
  97. package/templates/webterm/public/app/composer.js +37 -3
  98. package/templates/webterm/public/app/connection.js +23 -0
  99. package/templates/webterm/public/app/dom.js +3 -0
  100. package/templates/webterm/public/app/frames.js +52 -18
  101. package/templates/webterm/public/app/home-host.js +16 -0
  102. package/templates/webterm/public/app/main.js +24 -8
  103. package/templates/webterm/public/app/new-session.js +13 -41
  104. package/templates/webterm/public/app/palette.js +58 -0
  105. package/templates/webterm/public/app/pane-shape.js +169 -0
  106. package/templates/webterm/public/app/pane-shell.js +240 -135
  107. package/templates/webterm/public/app/pane.js +39 -24
  108. package/templates/webterm/public/app/reviews-host.js +19 -0
  109. package/templates/webterm/public/app/specs-host.js +12 -218
  110. package/templates/webterm/public/app/state.js +5 -0
  111. package/templates/webterm/public/app/tabs.js +6 -2
  112. package/templates/webterm/public/app/theme.js +75 -27
  113. package/templates/webterm/public/app/tool-host.js +318 -0
  114. package/templates/webterm/public/app/workspace-color.js +192 -0
  115. package/templates/webterm/public/index.html +22 -4
  116. package/templates/webterm/public/styles.css +195 -21
  117. package/templates/webterm/server.js +198 -150
  118. package/templates/webterm/tool-document.js +3 -2
  119. package/templates/webterm/tools/commands.js +61 -0
  120. package/templates/webterm/tools/home.js +58 -0
  121. package/templates/webterm/tools/index.js +26 -0
  122. package/templates/webterm/tools/mount.js +337 -0
  123. package/templates/webterm/tools/paths.js +34 -0
  124. package/templates/webterm/tools/reviews.js +137 -0
  125. package/templates/webterm/tools/specs.js +154 -0
  126. package/templates/webterm/typed-line.js +70 -7
  127. package/templates/context/context-usage.md +0 -1
  128. package/templates/context-usage.sh +0 -266
  129. package/templates/pane-apps/client/assets/specs-B1970L17.css +0 -1
  130. package/templates/pane-apps/client/assets/specs-cEee_SPn.js +0 -23
  131. package/templates/skills/dx-spec-config/SKILL.md +0 -313
  132. package/templates/skills/dx-spec-config/references/principles-template.md +0 -12
  133. package/templates/specs.sh +0 -106
  134. package/templates/webterm/specs.js +0 -358
@@ -0,0 +1,154 @@
1
+ {
2
+ "displayName": "Diff",
3
+ "name": "diff",
4
+ "patterns": [
5
+ {
6
+ "captures": {
7
+ "1": {
8
+ "name": "punctuation.definition.separator.diff"
9
+ }
10
+ },
11
+ "match": "^((\\*{15})|(={67})|(-{3}))$\\n?",
12
+ "name": "meta.separator.diff"
13
+ },
14
+ {
15
+ "match": "^\\d+(,\\d+)*([acd])\\d+(,\\d+)*$\\n?",
16
+ "name": "meta.diff.range.normal"
17
+ },
18
+ {
19
+ "captures": {
20
+ "1": {
21
+ "name": "punctuation.definition.range.diff"
22
+ },
23
+ "2": {
24
+ "name": "meta.toc-list.line-number.diff"
25
+ },
26
+ "3": {
27
+ "name": "punctuation.definition.range.diff"
28
+ }
29
+ },
30
+ "match": "^(@@)\\s*(.+?)\\s*(@@)($\\n?)?",
31
+ "name": "meta.diff.range.unified"
32
+ },
33
+ {
34
+ "captures": {
35
+ "3": {
36
+ "name": "punctuation.definition.range.diff"
37
+ },
38
+ "4": {
39
+ "name": "punctuation.definition.range.diff"
40
+ },
41
+ "6": {
42
+ "name": "punctuation.definition.range.diff"
43
+ },
44
+ "7": {
45
+ "name": "punctuation.definition.range.diff"
46
+ }
47
+ },
48
+ "match": "^(((-{3}) .+ (-{4}))|((\\*{3}) .+ (\\*{4})))$\\n?",
49
+ "name": "meta.diff.range.context"
50
+ },
51
+ {
52
+ "match": "^diff --git a/.*$\\n?",
53
+ "name": "meta.diff.header.git"
54
+ },
55
+ {
56
+ "match": "^diff (-|\\S+\\s+\\S+).*$\\n?",
57
+ "name": "meta.diff.header.command"
58
+ },
59
+ {
60
+ "captures": {
61
+ "4": {
62
+ "name": "punctuation.definition.from-file.diff"
63
+ },
64
+ "6": {
65
+ "name": "punctuation.definition.from-file.diff"
66
+ },
67
+ "7": {
68
+ "name": "punctuation.definition.from-file.diff"
69
+ }
70
+ },
71
+ "match": "^((((-{3}) .+)|((\\*{3}) .+))$\\n?|(={4}) .+(?= - ))",
72
+ "name": "meta.diff.header.from-file"
73
+ },
74
+ {
75
+ "captures": {
76
+ "2": {
77
+ "name": "punctuation.definition.to-file.diff"
78
+ },
79
+ "3": {
80
+ "name": "punctuation.definition.to-file.diff"
81
+ },
82
+ "4": {
83
+ "name": "punctuation.definition.to-file.diff"
84
+ }
85
+ },
86
+ "match": "(^(\\+{3}) .+$\\n?| (-) .* (={4})$\\n?)",
87
+ "name": "meta.diff.header.to-file"
88
+ },
89
+ {
90
+ "captures": {
91
+ "3": {
92
+ "name": "punctuation.definition.inserted.diff"
93
+ },
94
+ "6": {
95
+ "name": "punctuation.definition.inserted.diff"
96
+ }
97
+ },
98
+ "match": "^(((>)( .*)?)|((\\+).*))$\\n?",
99
+ "name": "markup.inserted.diff"
100
+ },
101
+ {
102
+ "captures": {
103
+ "1": {
104
+ "name": "punctuation.definition.changed.diff"
105
+ }
106
+ },
107
+ "match": "^(!).*$\\n?",
108
+ "name": "markup.changed.diff"
109
+ },
110
+ {
111
+ "captures": {
112
+ "3": {
113
+ "name": "punctuation.definition.deleted.diff"
114
+ },
115
+ "6": {
116
+ "name": "punctuation.definition.deleted.diff"
117
+ }
118
+ },
119
+ "match": "^(((<)( .*)?)|((-).*))$\\n?",
120
+ "name": "markup.deleted.diff"
121
+ },
122
+ {
123
+ "begin": "^(#)",
124
+ "captures": {
125
+ "1": {
126
+ "name": "punctuation.definition.comment.diff"
127
+ }
128
+ },
129
+ "end": "\\n",
130
+ "name": "comment.line.number-sign.diff"
131
+ },
132
+ {
133
+ "match": "^index [0-9a-f]{7,40}\\.\\.[0-9a-f]{7,40}.*$\\n?",
134
+ "name": "meta.diff.index.git"
135
+ },
136
+ {
137
+ "captures": {
138
+ "1": {
139
+ "name": "punctuation.separator.key-value.diff"
140
+ },
141
+ "2": {
142
+ "name": "meta.toc-list.file-name.diff"
143
+ }
144
+ },
145
+ "match": "^Index(:) (.+)$\\n?",
146
+ "name": "meta.diff.index"
147
+ },
148
+ {
149
+ "match": "^Only in .*: .*$\\n?",
150
+ "name": "meta.diff.only-in"
151
+ }
152
+ ],
153
+ "scopeName": "source.diff"
154
+ }
@@ -0,0 +1,103 @@
1
+ {
2
+ "displayName": "Dockerfile",
3
+ "name": "docker",
4
+ "patterns": [
5
+ {
6
+ "captures": {
7
+ "1": {
8
+ "name": "keyword.other.special-method.dockerfile"
9
+ },
10
+ "2": {
11
+ "name": "keyword.other.special-method.dockerfile"
12
+ }
13
+ },
14
+ "match": "^\\s*\\b(?i:(FROM))\\b.*?\\b(?i:(AS))\\b"
15
+ },
16
+ {
17
+ "captures": {
18
+ "1": {
19
+ "name": "keyword.control.dockerfile"
20
+ },
21
+ "2": {
22
+ "name": "keyword.other.special-method.dockerfile"
23
+ }
24
+ },
25
+ "match": "^\\s*(?i:(ONBUILD)\\s+)?(?i:(ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR))\\s"
26
+ },
27
+ {
28
+ "captures": {
29
+ "1": {
30
+ "name": "keyword.operator.dockerfile"
31
+ },
32
+ "2": {
33
+ "name": "keyword.other.special-method.dockerfile"
34
+ }
35
+ },
36
+ "match": "^\\s*(?i:(ONBUILD)\\s+)?(?i:(CMD|ENTRYPOINT))\\s"
37
+ },
38
+ {
39
+ "include": "#string-character-escape"
40
+ },
41
+ {
42
+ "begin": "\"",
43
+ "beginCaptures": {
44
+ "1": {
45
+ "name": "punctuation.definition.string.begin.dockerfile"
46
+ }
47
+ },
48
+ "end": "\"",
49
+ "endCaptures": {
50
+ "1": {
51
+ "name": "punctuation.definition.string.end.dockerfile"
52
+ }
53
+ },
54
+ "name": "string.quoted.double.dockerfile",
55
+ "patterns": [
56
+ {
57
+ "include": "#string-character-escape"
58
+ }
59
+ ]
60
+ },
61
+ {
62
+ "begin": "'",
63
+ "beginCaptures": {
64
+ "1": {
65
+ "name": "punctuation.definition.string.begin.dockerfile"
66
+ }
67
+ },
68
+ "end": "'",
69
+ "endCaptures": {
70
+ "1": {
71
+ "name": "punctuation.definition.string.end.dockerfile"
72
+ }
73
+ },
74
+ "name": "string.quoted.single.dockerfile",
75
+ "patterns": [
76
+ {
77
+ "include": "#string-character-escape"
78
+ }
79
+ ]
80
+ },
81
+ {
82
+ "captures": {
83
+ "1": {
84
+ "name": "punctuation.whitespace.comment.leading.dockerfile"
85
+ },
86
+ "2": {
87
+ "name": "comment.line.number-sign.dockerfile"
88
+ },
89
+ "3": {
90
+ "name": "punctuation.definition.comment.dockerfile"
91
+ }
92
+ },
93
+ "match": "^(\\s*)((#).*$\\n?)"
94
+ }
95
+ ],
96
+ "repository": {
97
+ "string-character-escape": {
98
+ "match": "\\\\.",
99
+ "name": "constant.character.escaped.dockerfile"
100
+ }
101
+ },
102
+ "scopeName": "source.dockerfile"
103
+ }
@@ -0,0 +1 @@
1
+ import{A as e,D as t,T as n,b as r}from"./api-BBDf_rzz.js";var i=t();function a(e){let t=e.theme===`dark`?`Light theme`:`Dark theme`,a=e.kept?t:`${t} - there is no session to keep it in`;return(0,i.jsxs)(`button`,{type:`button`,className:`theme-toggle`,title:a,disabled:!e.kept,onClick:e.onToggle,children:[e.theme===`dark`?(0,i.jsx)(n,{size:13}):(0,i.jsx)(r,{size:13}),(0,i.jsx)(`span`,{className:`visually-hidden`,children:a})]})}var o=e(),s=`(prefers-color-scheme: light)`;function c(){return typeof matchMedia==`function`&&matchMedia(s).matches?`light`:`dark`}function l(e){let[t,n]=(0,o.useState)(null),[r,i]=(0,o.useState)(c),[a,l]=(0,o.useState)(!0);(0,o.useEffect)(()=>{if(typeof matchMedia!=`function`)return;let e=matchMedia(s),t=()=>i(e.matches?`light`:`dark`);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]),(0,o.useEffect)(()=>e.onSession(e=>{n(e.theme),l(e.sid!==null)}),[e.onSession]);let u=t??r;return{theme:u,kept:a,toggle:()=>void e.askTheme(u===`dark`?`light`:`dark`)}}var u=32*1024*1024,d=new Set([`md`,`markdown`,`mdown`,`mkd`]),f=new Set([`html`,`htm`]),p=new Set([`png`,`jpg`,`jpeg`,`gif`,`webp`,`svg`,`avif`,`bmp`,`ico`]),m=new Set(`txt text log json yaml yml toml ini cfg conf csv tsv xml css scss js jsx mjs cjs ts tsx py rb go rs java kt swift c h cpp hpp sh bash zsh fish sql graphql gql env diff patch lock gitignore editorconfig`.split(` `));function h(e){let t=e.slice(e.lastIndexOf(`/`)+1).slice(1).match(/\.([^.]+)$/);return t?t[1].toLowerCase():``}function g(e,t){if(!t||/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(t)||t.startsWith(`#`)||t.startsWith(`/`)||t.startsWith(`//`))return null;let n=t.split(/[#?]/)[0];if(!n)return null;let r=e?e.split(`/`).filter(Boolean):[];for(let e of n.split(`/`))if(!(e===``||e===`.`)){if(e===`..`){if(r.length===0)return null;r.pop();continue}r.push(e)}return r.join(`/`)}function _(e){try{let t=new URL(e);return t.protocol===`http:`||t.protocol===`https:`?t.href:null}catch{return null}}function v(e){let t=h(e);return d.has(t)?`markdown`:f.has(t)?`html`:p.has(t)?`image`:m.has(t)||!t?`text`:`binary`}export{l as a,g as i,_ as n,a as o,v as r,u as t};