sootsim 0.1.172 → 0.1.174

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/README.md +25 -0
  2. package/dist-cli/bin.js +3 -3
  3. package/dist-cli/chunks/{agent-WQ7M46K4.js → agent-EHUPKIHD.js} +2 -2
  4. package/dist-cli/chunks/{agent-wrapper-PLQVHHZV.js → agent-wrapper-L5F5DCXN.js} +2 -2
  5. package/dist-cli/chunks/{app-fonts-COYEPFDN.js → app-fonts-K4FD7ITP.js} +2 -2
  6. package/dist-cli/chunks/{assert-BK3NDOF2.js → assert-IAGOGXRA.js} +2 -2
  7. package/dist-cli/chunks/beta-U7KMLBHU.js +2 -0
  8. package/dist-cli/chunks/{camera-RU533SOI.js → camera-YRT5HULX.js} +2 -2
  9. package/dist-cli/chunks/chunk-3FGEZ5ZM.js +1 -0
  10. package/dist-cli/chunks/{chunk-LGXEPAHS.js → chunk-3SU6H3TH.js} +1 -1
  11. package/dist-cli/chunks/{chunk-KHDX36G5.js → chunk-4UEZKS2B.js} +3 -3
  12. package/dist-cli/chunks/{chunk-TLX7JDQK.js → chunk-6BM25DJX.js} +2 -2
  13. package/dist-cli/chunks/{chunk-SYAAEME6.js → chunk-6OROZMOR.js} +1 -1
  14. package/dist-cli/chunks/{chunk-TM5K4CCK.js → chunk-7A4YXD3W.js} +1 -1
  15. package/dist-cli/chunks/{chunk-Q5L2HSIK.js → chunk-7E24LDJL.js} +1 -1
  16. package/dist-cli/chunks/{chunk-LENELFGE.js → chunk-7MVFXNE7.js} +3 -3
  17. package/dist-cli/chunks/{chunk-ZMY6B3ZC.js → chunk-7NRQVOIK.js} +2 -2
  18. package/dist-cli/chunks/{chunk-AYNXI62J.js → chunk-7QNSKZ5Y.js} +1 -1
  19. package/dist-cli/chunks/chunk-C77TGXJ6.js +1 -0
  20. package/dist-cli/chunks/{chunk-CMH3BW27.js → chunk-CBNM2JQX.js} +2 -2
  21. package/dist-cli/chunks/{chunk-4J3T7PQJ.js → chunk-DY55G3EZ.js} +2 -2
  22. package/dist-cli/chunks/{chunk-BMIRPWXB.js → chunk-FFKK3UYP.js} +1 -1
  23. package/dist-cli/chunks/{chunk-PTBDLOWI.js → chunk-GERUGIKH.js} +1 -1
  24. package/dist-cli/chunks/chunk-GPC5MNUW.js +2 -0
  25. package/dist-cli/chunks/{chunk-T47U5L2K.js → chunk-H4FFM26I.js} +1 -1
  26. package/dist-cli/chunks/{chunk-NPWSQT6H.js → chunk-HOQZJLG7.js} +2 -2
  27. package/dist-cli/chunks/{chunk-BIWY73P5.js → chunk-IIEAMA66.js} +2 -2
  28. package/dist-cli/chunks/{chunk-LHCRB57U.js → chunk-IX2RHMWB.js} +2 -2
  29. package/dist-cli/chunks/{chunk-EJ76TW66.js → chunk-J2O2AEFO.js} +1 -1
  30. package/dist-cli/chunks/{chunk-46UXO5SQ.js → chunk-JE2Q25A4.js} +1 -1
  31. package/dist-cli/chunks/{chunk-RD6VD4EB.js → chunk-KERGT5NG.js} +2 -2
  32. package/dist-cli/chunks/{chunk-YUOZCM27.js → chunk-KLPYSMAV.js} +1 -1
  33. package/dist-cli/chunks/{chunk-V2EE4PUL.js → chunk-M25NFKL5.js} +2 -2
  34. package/dist-cli/chunks/{chunk-6HZQNXH6.js → chunk-MMIENHCP.js} +2 -2
  35. package/dist-cli/chunks/{chunk-62W3D6EE.js → chunk-MZP77ZME.js} +1 -1
  36. package/dist-cli/chunks/{chunk-IEI42LDX.js → chunk-N5CGRRGJ.js} +1 -1
  37. package/dist-cli/chunks/{chunk-N7PCRU6E.js → chunk-NEIN26HI.js} +2 -2
  38. package/dist-cli/chunks/{chunk-RCN3YTNR.js → chunk-O2PWKVDV.js} +2 -2
  39. package/dist-cli/chunks/{chunk-6E2UB6LQ.js → chunk-OXREO6LV.js} +2 -2
  40. package/dist-cli/chunks/{chunk-4BIG3MC7.js → chunk-QWKK2QEY.js} +1 -1
  41. package/dist-cli/chunks/{chunk-DAIJBIM3.js → chunk-RPRFPJKT.js} +2 -2
  42. package/dist-cli/chunks/{chunk-42CB2PAE.js → chunk-SCM3ERN4.js} +1 -1
  43. package/dist-cli/chunks/{chunk-7Q6G6GQQ.js → chunk-SFHH65G2.js} +2 -2
  44. package/dist-cli/chunks/{chunk-RQWJY32F.js → chunk-STSULGMI.js} +2 -2
  45. package/dist-cli/chunks/{chunk-UJCUPX54.js → chunk-SWKBOGBZ.js} +2 -2
  46. package/dist-cli/chunks/{chunk-6GI3NZFP.js → chunk-TH3AEL45.js} +2 -2
  47. package/dist-cli/chunks/{chunk-NVBBJ3G2.js → chunk-TPE7XEGU.js} +2 -2
  48. package/dist-cli/chunks/{chunk-B23C5UYK.js → chunk-U7BX2XYL.js} +1 -1
  49. package/dist-cli/chunks/{chunk-4LAKUGO7.js → chunk-UARZTJ6K.js} +1 -1
  50. package/dist-cli/chunks/{chunk-53XIVSKW.js → chunk-W3SYJD3H.js} +2 -2
  51. package/dist-cli/chunks/{chunk-MRVSPAIH.js → chunk-X7OTWLOA.js} +2 -2
  52. package/dist-cli/chunks/{chunk-PM4SIKKG.js → chunk-YA46Q5HY.js} +2 -2
  53. package/dist-cli/chunks/{chunk-TJGRGSYC.js → chunk-YA4XRTIG.js} +1 -1
  54. package/dist-cli/chunks/cli-version-YJOJPTJN.js +2 -0
  55. package/dist-cli/chunks/{compat-5DGHR45U.js → compat-SJW4SLDF.js} +3 -3
  56. package/dist-cli/chunks/{control-FNKKISVL.js → control-HS3KMAUF.js} +2 -2
  57. package/dist-cli/chunks/{cpu-profile-JUAWGPGI.js → cpu-profile-E46RYKZY.js} +2 -2
  58. package/dist-cli/chunks/daemon-ZTEQIFR3.js +2 -0
  59. package/dist-cli/chunks/{debug-CW6DJ4JU.js → debug-TO5VRPFP.js} +3 -3
  60. package/dist-cli/chunks/{detox-CWAWL7PV.js → detox-IWT2ZC6E.js} +2 -2
  61. package/dist-cli/chunks/{device-RWDY3QWG.js → device-MM2473ZQ.js} +2 -2
  62. package/dist-cli/chunks/{diagnose-OHHX4L5I.js → diagnose-5COWPUYY.js} +2 -2
  63. package/dist-cli/chunks/drivers-VFOM6SJP.js +2 -0
  64. package/dist-cli/chunks/{electron-OLREFRMH.js → electron-HQGMUN3T.js} +3 -3
  65. package/dist-cli/chunks/flow-Z5DTMEGY.js +2 -0
  66. package/dist-cli/chunks/help-GYJH5S4Y.js +2 -0
  67. package/dist-cli/chunks/{hints-MIKS44U2.js → hints-G6LSQHOA.js} +2 -2
  68. package/dist-cli/chunks/{home-paths-GCXNBHYT.js → home-paths-WVKPC676.js} +2 -2
  69. package/dist-cli/chunks/{inspect-TIGJUGBG.js → inspect-LTFGONJD.js} +3 -3
  70. package/dist-cli/chunks/{install-desktop-MU56WK46.js → install-desktop-CWTQXAHN.js} +3 -3
  71. package/dist-cli/chunks/{keys-PFIFN6C7.js → keys-DCWFESUB.js} +2 -2
  72. package/dist-cli/chunks/{login-PVVH5YUA.js → login-WTZRKO4L.js} +4 -4
  73. package/dist-cli/chunks/{logout-GNKIGKTW.js → logout-3XCA6HOX.js} +2 -2
  74. package/dist-cli/chunks/{maestro-IGGZODE6.js → maestro-5VKHW67Y.js} +2 -2
  75. package/dist-cli/chunks/optional-demo-registry-VKTF3JLY.js +2 -0
  76. package/dist-cli/chunks/{preview-UF3NZLHQ.js → preview-ZBD2J4MR.js} +2 -2
  77. package/dist-cli/chunks/{profile-XR7KRATW.js → profile-3ENYOSN4.js} +2 -2
  78. package/dist-cli/chunks/{react-4VBBPTZN.js → react-DASWRMSI.js} +2 -2
  79. package/dist-cli/chunks/{record-35VQV7SI.js → record-EICRO6TY.js} +2 -2
  80. package/dist-cli/chunks/runtime-FLNHVIWT.js +2 -0
  81. package/dist-cli/chunks/{screenshot-GUXVAMU4.js → screenshot-HE6MAIMM.js} +2 -2
  82. package/dist-cli/chunks/{screenshot-mode-NM3S5FUB.js → screenshot-mode-OQDAMXSB.js} +2 -2
  83. package/dist-cli/chunks/{screenshots-XNVHV5OB.js → screenshots-5WZVXZ5W.js} +2 -2
  84. package/dist-cli/chunks/{screenshots-capture-AL7NR7CG.js → screenshots-capture-UZP6TEXX.js} +2 -2
  85. package/dist-cli/chunks/{serve-P4WR6SDD.js → serve-BAXU4D42.js} +2 -2
  86. package/dist-cli/chunks/{setup-VFE6WRVA.js → setup-DRMJTUMK.js} +2 -2
  87. package/dist-cli/chunks/skills-R6NXAFPT.js +48 -0
  88. package/dist-cli/chunks/{slides-TLMQ6CCP.js → slides-SGIOOUVU.js} +2 -2
  89. package/dist-cli/chunks/store-ZQ4F3GEO.js +2 -0
  90. package/dist-cli/chunks/telemetry-YTN2XUOV.js +2 -0
  91. package/dist-cli/chunks/{test-LDLES3IA.js → test-7HAXG4AU.js} +3 -3
  92. package/dist-cli/chunks/{three-mode-NULZ5VY2.js → three-mode-GBC3JNV6.js} +2 -2
  93. package/dist-cli/chunks/{timeline-4YNNQVMU.js → timeline-C3HHCWU7.js} +5 -5
  94. package/dist-cli/chunks/{upgrade-MGCZ4SP7.js → upgrade-AJ7FIJO2.js} +2 -2
  95. package/dist-cli/chunks/upload-JXH5MBZO.js +2 -0
  96. package/dist-cli/chunks/{version-BZC7W5V3.js → version-RYF5DY5P.js} +2 -2
  97. package/dist-cli/chunks/{web-GWHWLRGJ.js → web-VPQD3D5K.js} +2 -2
  98. package/dist-cli/chunks/{what-happened-5VQD3NPS.js → what-happened-QRPH35TD.js} +8 -7
  99. package/dist-cli/chunks/{whoami-SF4NA5VN.js → whoami-BPGQUMYX.js} +2 -2
  100. package/dist-lib/agent-daemon-client.cjs +1 -1
  101. package/dist-lib/agent-events.cjs +1 -1
  102. package/dist-lib/agent-sessions.cjs +1 -1
  103. package/dist-lib/attached-projects.cjs +1 -1
  104. package/dist-lib/auth/shared-session.cjs +1 -1
  105. package/dist-lib/backend-origin.cjs +1 -1
  106. package/dist-lib/beta.cjs +1 -1
  107. package/dist-lib/beta.mjs +1 -1
  108. package/dist-lib/bridge-constants.cjs +1 -1
  109. package/dist-lib/cli-constants.cjs +1 -1
  110. package/dist-lib/config.cjs +1 -1
  111. package/dist-lib/detox/index.cjs +1 -1
  112. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  113. package/dist-lib/home-paths.cjs +1 -1
  114. package/dist-lib/host/bridge-host.cjs +1 -1
  115. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  116. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  117. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  118. package/dist-lib/host/websocket-proxy.cjs +1 -1
  119. package/dist-lib/index.cjs +66 -1
  120. package/dist-lib/jump-to-source-babel.cjs +93 -0
  121. package/dist-lib/menu.cjs +1 -1
  122. package/dist-lib/menu.mjs +1 -1
  123. package/dist-lib/metro.cjs +1 -1
  124. package/dist-lib/profiles.cjs +1 -1
  125. package/dist-lib/render-mode.cjs +1 -1
  126. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  127. package/dist-lib/sdk.cjs +1 -1
  128. package/dist-lib/sdk.mjs +1 -1
  129. package/dist-lib/skills.cjs +1 -1
  130. package/dist-lib/vite.cjs +1 -1
  131. package/package.json +5 -1
  132. package/skills/soot.md +1 -1
  133. package/skills/sootsim-debug.md +23 -1
  134. package/src/index.ts +1 -0
  135. package/src/jump-to-source-babel.ts +135 -0
  136. package/dist-cli/chunks/beta-F3BMUABH.js +0 -2
  137. package/dist-cli/chunks/chunk-2NGGBDGA.js +0 -2
  138. package/dist-cli/chunks/chunk-72MDGPY7.js +0 -1
  139. package/dist-cli/chunks/chunk-JBGGTC5Z.js +0 -1
  140. package/dist-cli/chunks/cli-version-TNUDIF5R.js +0 -2
  141. package/dist-cli/chunks/daemon-IGYKJTV4.js +0 -2
  142. package/dist-cli/chunks/drivers-LM7U6WOI.js +0 -2
  143. package/dist-cli/chunks/flow-MEQ4WJ2A.js +0 -2
  144. package/dist-cli/chunks/help-CLCZJBU5.js +0 -2
  145. package/dist-cli/chunks/optional-demo-registry-2F65QTQK.js +0 -2
  146. package/dist-cli/chunks/runtime-LDYJVDWV.js +0 -2
  147. package/dist-cli/chunks/skills-ECYDZM76.js +0 -40
  148. package/dist-cli/chunks/store-JX7O3YO6.js +0 -2
  149. package/dist-cli/chunks/telemetry-SS4OVJ4R.js +0 -2
  150. package/dist-cli/chunks/upload-RKYUNV4M.js +0 -2
@@ -0,0 +1,135 @@
1
+ export interface SootsimJumpToSourceBabelOptions {
2
+ enabled?: boolean
3
+ attrName?: string
4
+ include?: readonly SourcePathMatcher[]
5
+ exclude?: readonly SourcePathMatcher[]
6
+ }
7
+
8
+ type SourcePathMatcher = string | RegExp
9
+
10
+ interface BabelApi {
11
+ types: {
12
+ jsxAttribute(name: unknown, value: unknown): JSXAttributeNode
13
+ jsxIdentifier(name: string): unknown
14
+ stringLiteral(value: string): unknown
15
+ }
16
+ }
17
+
18
+ interface BabelPluginState {
19
+ file?: {
20
+ opts?: {
21
+ filename?: string
22
+ }
23
+ }
24
+ }
25
+
26
+ interface SourceLocation {
27
+ line: number
28
+ column: number
29
+ }
30
+
31
+ interface JSXNameNode {
32
+ type: string
33
+ name?: string
34
+ object?: JSXNameNode
35
+ property?: JSXNameNode
36
+ }
37
+
38
+ interface JSXAttributeNode {
39
+ type: string
40
+ name?: JSXNameNode
41
+ }
42
+
43
+ interface JSXOpeningElementNode {
44
+ name?: JSXNameNode
45
+ attributes?: JSXAttributeNode[]
46
+ loc?: {
47
+ start?: SourceLocation
48
+ }
49
+ }
50
+
51
+ interface JSXOpeningElementPath {
52
+ node: JSXOpeningElementNode
53
+ }
54
+
55
+ function normalizeSourcePath(path: string): string {
56
+ const queryStart = path.indexOf('?')
57
+ const clean = queryStart >= 0 ? path.slice(0, queryStart) : path
58
+ return clean.replace(/\\/g, '/')
59
+ }
60
+
61
+ function matchesPath(path: string, matcher: SourcePathMatcher): boolean {
62
+ return typeof matcher === 'string' ? path.includes(matcher) : matcher.test(path)
63
+ }
64
+
65
+ function shouldStampFile(
66
+ filename: string,
67
+ options: SootsimJumpToSourceBabelOptions,
68
+ ): boolean {
69
+ const normalized = normalizeSourcePath(filename)
70
+ if (normalized.includes('/node_modules/')) return false
71
+ if (normalized.includes('/dist/') || normalized.includes('/build/')) return false
72
+ if (options.exclude?.some((matcher) => matchesPath(normalized, matcher))) return false
73
+ if (options.include?.length) {
74
+ return options.include.some((matcher) => matchesPath(normalized, matcher))
75
+ }
76
+ return true
77
+ }
78
+
79
+ function getJSXName(node: JSXNameNode | undefined): string | null {
80
+ if (!node) return null
81
+ if (node.type === 'JSXIdentifier' && node.name) return node.name
82
+ if (node.type === 'JSXMemberExpression') {
83
+ const object = getJSXName(node.object)
84
+ const property = getJSXName(node.property)
85
+ return object && property ? `${object}.${property}` : null
86
+ }
87
+ return null
88
+ }
89
+
90
+ function hasAttribute(node: JSXOpeningElementNode, attrName: string): boolean {
91
+ return (
92
+ node.attributes?.some((attr) => {
93
+ if (attr.type !== 'JSXAttribute') return false
94
+ return attr.name?.type === 'JSXIdentifier' && attr.name.name === attrName
95
+ }) ?? false
96
+ )
97
+ }
98
+
99
+ export default function sootsimJumpToSourceBabelPlugin(
100
+ api: BabelApi,
101
+ options: SootsimJumpToSourceBabelOptions = {},
102
+ ) {
103
+ const attrName = options.attrName || 'srcloc'
104
+
105
+ return {
106
+ name: 'sootsim-jump-to-source',
107
+ visitor: {
108
+ JSXOpeningElement(path: JSXOpeningElementPath, state: BabelPluginState) {
109
+ if (options.enabled === false) return
110
+
111
+ const filename = state.file?.opts?.filename
112
+ if (!filename || !shouldStampFile(filename, options)) return
113
+
114
+ const node = path.node
115
+ const tagName = getJSXName(node.name)
116
+ if (!tagName || tagName === 'Fragment' || tagName.endsWith('.Fragment')) return
117
+ if (hasAttribute(node, attrName)) return
118
+
119
+ const loc = node.loc?.start
120
+ if (!loc) return
121
+
122
+ const source = `${normalizeSourcePath(filename)}:${loc.line}:${loc.column + 1}`
123
+ node.attributes ??= []
124
+ node.attributes.push(
125
+ api.types.jsxAttribute(
126
+ api.types.jsxIdentifier(attrName),
127
+ api.types.stringLiteral(source),
128
+ ),
129
+ )
130
+ },
131
+ },
132
+ }
133
+ }
134
+
135
+ export { sootsimJumpToSourceBabelPlugin }
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c,d}from"./chunk-YUOZCM27.js";import"./chunk-B23C5UYK.js";export{d as BETA_ASK_HEADLINE,b as BETA_LABEL,c as BETA_TAGLINE,a as IS_BETA};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- var t="http://localhost:5173/";export{t as a};
@@ -1 +0,0 @@
1
- /*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
@@ -1 +0,0 @@
1
- /*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a}from"./chunk-EJ76TW66.js";import"./chunk-B23C5UYK.js";export{a as getCliVersion};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c,d,e}from"./chunk-6HZQNXH6.js";import"./chunk-4J3T7PQJ.js";import"./chunk-7Q6G6GQQ.js";import"./chunk-DAIJBIM3.js";import"./chunk-PM4SIKKG.js";import"./chunk-62W3D6EE.js";import"./chunk-CMH3BW27.js";import"./chunk-MRVSPAIH.js";import"./chunk-2NGGBDGA.js";import"./chunk-4BIG3MC7.js";import"./chunk-LGXEPAHS.js";import"./chunk-SYAAEME6.js";import"./chunk-EJ76TW66.js";import"./chunk-YUOZCM27.js";import"./chunk-Q5L2HSIK.js";import"./chunk-B23C5UYK.js";export{c as daemonInstall,b as getDaemonServiceStatus,a as runDaemon,d as teardownDaemonService,e as teardownSootsimHome};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import"./chunk-JBGGTC5Z.js";import{a,b,c,d,e,f,g,h,i}from"./chunk-53XIVSKW.js";import"./chunk-4LAKUGO7.js";import"./chunk-NPWSQT6H.js";import"./chunk-46UXO5SQ.js";import"./chunk-LGXEPAHS.js";import"./chunk-SYAAEME6.js";import"./chunk-B23C5UYK.js";export{e as ALL_DRIVERS,i as buildDriverListRows,a as chromiumDriver,b as electronDriver,f as getAllDrivers,g as getDriver,c as playwrightDriver,h as resolveDriver,d as systemDriver};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a as c,b as d,c as e,d as f}from"./chunk-LENELFGE.js";import"./chunk-ZMY6B3ZC.js";import"./chunk-72MDGPY7.js";import"./chunk-6E2UB6LQ.js";import{c as a,d as b}from"./chunk-V2EE4PUL.js";import"./chunk-BIWY73P5.js";import"./chunk-TLX7JDQK.js";import"./chunk-RQWJY32F.js";import"./chunk-PTBDLOWI.js";import"./chunk-AYNXI62J.js";import"./chunk-53XIVSKW.js";import"./chunk-4LAKUGO7.js";import"./chunk-NPWSQT6H.js";import"./chunk-RD6VD4EB.js";import"./chunk-UJCUPX54.js";import"./chunk-TJGRGSYC.js";import"./chunk-IEI42LDX.js";import"./chunk-RCN3YTNR.js";import"./chunk-46UXO5SQ.js";import"./chunk-4J3T7PQJ.js";import"./chunk-7Q6G6GQQ.js";import"./chunk-MRVSPAIH.js";import"./chunk-2NGGBDGA.js";import"./chunk-4BIG3MC7.js";import"./chunk-LGXEPAHS.js";import"./chunk-SYAAEME6.js";import"./chunk-NVBBJ3G2.js";import"./chunk-Q5L2HSIK.js";import"./chunk-B23C5UYK.js";export{c as discoverSootsimUrl,e as hoistLeadingSimFlag,a as parseFlowFile,f as runFlow,d as runFlowPlayback,b as validateFlowFile};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c}from"./chunk-DAIJBIM3.js";import"./chunk-PM4SIKKG.js";import"./chunk-62W3D6EE.js";import"./chunk-CMH3BW27.js";import"./chunk-MRVSPAIH.js";import"./chunk-2NGGBDGA.js";import"./chunk-4BIG3MC7.js";import"./chunk-LGXEPAHS.js";import"./chunk-SYAAEME6.js";import"./chunk-EJ76TW66.js";import"./chunk-YUOZCM27.js";import"./chunk-Q5L2HSIK.js";import"./chunk-B23C5UYK.js";export{c as printCommandHelp,b as printGroupHelp,a as printHelp};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b}from"./chunk-AYNXI62J.js";import"./chunk-B23C5UYK.js";export{a as loadOptionalDemoApps,b as optionalDemoAppsSync};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a}from"./chunk-KHDX36G5.js";import"./chunk-6GI3NZFP.js";import"./chunk-RCN3YTNR.js";import"./chunk-4BIG3MC7.js";import"./chunk-LGXEPAHS.js";import"./chunk-SYAAEME6.js";import"./chunk-B23C5UYK.js";export{a as runRuntime};
@@ -1,40 +0,0 @@
1
- /*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import"./chunk-B23C5UYK.js";import*as r from"fs";import*as S from"os";import*as i from"path";import{fileURLToPath as g}from"url";function b(){try{let n=g(import.meta.resolve("sootsim/package.json"));return i.join(i.dirname(n),"skills")}catch{let n=i.dirname(g(import.meta.url));return i.resolve(n,"../../skills")}}var c=b(),$=new Set(["all","codex","claude"]);function k(){console.log(`sootsim skill
3
-
4
- install and inspect bundled SootSim agent skills.
5
-
6
- usage:
7
- sootsim skill install [all|codex|claude] [skill-name...]
8
- sootsim skill install --target <dir> [skill-name...]
9
- sootsim skill show [skill-name]
10
-
11
- commands:
12
- install install skills; no target means all supported local agents
13
- show list bundled skills, or print one skill markdown
14
-
15
- targets:
16
- all Codex and Claude Code (default)
17
- codex $CODEX_HOME/skills, or ~/.codex/skills
18
- claude $CLAUDE_CONFIG_DIR/skills, or ~/.claude/skills
19
- `)}function p(){console.log(`sootsim skill install
20
-
21
- install bundled SootSim skills in the agent skill layout: <skill>/SKILL.md.
22
-
23
- usage:
24
- sootsim skill install [all|codex|claude] [skill-name...]
25
- sootsim skill install --target <dir> [skill-name...]
26
-
27
- examples:
28
- sootsim skill install
29
- sootsim skill install codex
30
- sootsim skill install codex sootsim-debug
31
- `)}function u(n,t){let s=process.env[n]||i.join(S.homedir(),t);return i.join(s,"skills")}function x(){return[{label:"codex",dir:u("CODEX_HOME",".codex")},{label:"claude",dir:u("CLAUDE_CONFIG_DIR",".claude")}]}function _(n){if(n==="all")return x();if(n==="codex")return[{label:"codex",dir:u("CODEX_HOME",".codex")}];if(n==="claude")return[{label:"claude",dir:u("CLAUDE_CONFIG_DIR",".claude")}];console.error(` unknown skill install target: ${n}`),console.error(" expected all, codex, or claude"),process.exit(1)}function D(n){let t=n.match(/^---\n([\s\S]*?)\n---/);if(!t)return null;let s=t[1],l=h(s,"name");return l?{name:l,description:h(s,"description")||""}:null}function h(n,t){let s=n.split(`
32
- `),l=`${t}:`;for(let e=0;e<s.length;e++){let o=s[e];if(!o.startsWith(l))continue;let a=o.slice(l.length).trim();if(a===">-"||a===">"||a==="|-"||a==="|"){let f=[];for(let m=e+1;m<s.length;m++){let d=s[m];if(/^[A-Za-z0-9_-]+:\s*/.test(d))break;if(d.trim()===""){f.push("");continue}if(!/^\s+/.test(d))break;f.push(d.trim())}return f.join(a.startsWith("|")?`
33
- `:" ").trim()}return a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'")?a.slice(1,-1):a}return null}function I(){if(!r.existsSync(c))return[];let n=r.readdirSync(c).filter(s=>s.endsWith(".md")),t=[];for(let s of n){let l=r.readFileSync(i.join(c,s),"utf8"),e=D(l);e&&t.push({...e,filename:s})}return t.sort((s,l)=>s.name.localeCompare(l.name))}function y(n,t){if(t.length===0)return n;let s=n.filter(l=>t.some(e=>l.name.includes(e)||l.name.replace("sootsim-","").includes(e)||l.filename.includes(e)));return s.length===0&&(console.error(` no skills matched: ${t.join(", ")}`),console.error(" available: "+n.map(l=>l.name).join(", ")),process.exit(1)),s}function w(n,t){let s=i.join(c,n.filename),l=i.join(t,n.name),e=i.join(l,"SKILL.md");r.mkdirSync(l,{recursive:!0}),r.copyFileSync(s,e),console.log(` copied ${n.name} -> ${e}`)}function C(n){if(n.length===0){console.log(" no skills found");return}console.log(`
34
- available skills:
35
- `);for(let t of n)console.log(` ${t.name}`),console.log(` ${t.description}
36
- `);console.log(" usage: sootsim skill install [all|codex|claude] [skill-name...]"),console.log(` usage: sootsim skill show [skill-name]
37
- `)}function L(n){let t=null,s=[];for(let l=0;l<n.length;l++){let e=n[l];if((e==="--help"||e==="-h")&&(p(),process.exit(0)),e==="--target"){let o=n[l+1];(!o||o.startsWith("-"))&&(console.error(" --target requires a directory"),process.exit(1)),t&&(console.error(" pass only one install target"),process.exit(1)),t=[{label:"target",dir:o}],l++;continue}if(e.startsWith("-")&&(console.error(` unknown option: ${e}`),p(),process.exit(1)),!t&&$.has(e)){t=_(e);continue}s.push(e)}return{targets:t??x(),filters:s}}async function j(n){let t=I();t.length===0&&(console.error(" no skills found in sootsim package"),process.exit(1));let s=L(n),l=y(t,s.filters),e=s.targets.map(o=>({...o,dir:i.resolve(o.dir)}));for(let o of e)r.mkdirSync(o.dir,{recursive:!0}),r.statSync(o.dir).isDirectory()||(console.error(` target is not a directory: ${o.dir}`),process.exit(1));console.log(`
38
- installing ${l.length} skill(s) to ${e.length} target(s)
39
- `);for(let o of e){console.log(` target ${o.label}: ${o.dir}`);for(let a of l)w(a,o.dir);console.log("")}console.log(` done. restart the agent session to load newly installed skills.
40
- `)}function T(n){let t=I(),s=n.find(o=>!o.startsWith("-"));if(!s){C(t);return}let[l]=y(t,[s]),e=r.readFileSync(i.join(c,l.filename),"utf8");console.log(e)}async function F(n){let[t,...s]=n;if(!t||t==="--help"||t==="-h"){k();return}if(t==="install"){await j(s);return}if(t==="show"||t==="list"){T(s);return}console.error(` unknown skill command: ${t}`),k(),process.exit(1)}export{F as runSkill};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a}from"./chunk-NVBBJ3G2.js";import"./chunk-Q5L2HSIK.js";import"./chunk-B23C5UYK.js";export{a as settingsStore};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b}from"./chunk-4J3T7PQJ.js";import"./chunk-7Q6G6GQQ.js";import"./chunk-SYAAEME6.js";import"./chunk-B23C5UYK.js";export{b as flushCliTelemetry,a as trackCliEvent};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c}from"./chunk-RD6VD4EB.js";import"./chunk-UJCUPX54.js";import"./chunk-TJGRGSYC.js";import"./chunk-IEI42LDX.js";import"./chunk-RCN3YTNR.js";import"./chunk-46UXO5SQ.js";import"./chunk-4J3T7PQJ.js";import"./chunk-7Q6G6GQQ.js";import"./chunk-4BIG3MC7.js";import"./chunk-LGXEPAHS.js";import"./chunk-SYAAEME6.js";import"./chunk-B23C5UYK.js";export{a as resolveDefaultUploadOrigin,b as resolvePublicPreviewOrigin,c as runUpload};