OXYGENHUB
# 06699bcc6e2e spectra-vscode / package.json
8.9 KiB · JSON · last changed 0.1.2: one Spectra entry per client for every folder (spectra mcp --auto) 1 day ago source blame history raw
1
{
2
  "name": "spectra-vscode",
3
  "displayName": "Spectra",
4
  "description": "Spectra in the editor: set up your AI agents, chat with them, and give them their briefs, without the command line",
5
  "version": "0.1.2",
6
  "publisher": "andymccall",
7
  "license": "MIT OR Apache-2.0",
8
  "repository": {
9
    "type": "oxygen",
10
    "url": "https://oxygenhub.io/andymccall/spectra-vscode"
11
  },
12
  "icon": "assets/spectra.png",
13
  "engines": {
14
    "vscode": "^1.138.0"
15
  },
16
  "categories": [
17
    "AI",
18
    "Other"
19
  ],
20
  "keywords": [
21
    "spectra",
22
    "agents",
23
    "mcp",
24
    "claude",
25
    "antigravity"
26
  ],
27
  "main": "./dist/extension.js",
28
  "activationEvents": [
29
    "onStartupFinished"
30
  ],
31
  "contributes": {
32
    "viewsContainers": {
33
      "activitybar": [
34
        {
35
          "id": "spectra",
36
          "title": "Spectra",
37
          "icon": "assets/spectra-mono.svg"
38
        }
39
      ]
40
    },
41
    "views": {
42
      "spectra": [
43
        {
44
          "id": "spectra.welcome",
45
          "name": "Get started",
46
          "when": "!spectra.ready"
47
        },
48
        {
49
          "id": "spectra.channels",
50
          "name": "Channels",
51
          "when": "spectra.ready"
52
        },
53
        {
54
          "id": "spectra.agents",
55
          "name": "Agents",
56
          "when": "spectra.ready"
57
        },
58
        {
59
          "id": "spectra.inbox",
60
          "name": "Inbox",
61
          "when": "spectra.ready"
62
        },
63
        {
64
          "id": "spectra.briefs",
65
          "name": "Briefs",
66
          "when": "spectra.ready"
67
        }
68
      ]
69
    },
70
    "viewsWelcome": [
71
      {
72
        "view": "spectra.welcome",
73
        "contents": "Spectra lets your AI agents find each other, talk, and follow your briefs.\n[Set Up Spectra](command:spectra.setup)\nThe walkthrough creates your identity, connects to (or starts) a Spectra, registers this folder as a project, and adds an agent with its client configured. No command line needed."
74
      },
75
      {
76
        "view": "spectra.agents",
77
        "contents": "No agents yet.\n[Add an Agent](command:spectra.addAgent)"
78
      }
79
    ],
80
    "walkthroughs": [
81
      {
82
        "id": "spectra.setup",
83
        "title": "Get started with Spectra",
84
        "description": "Everything Spectra needs, step by step: nothing typed in a terminal.",
85
        "steps": [
86
          {
87
            "id": "binary",
88
            "title": "Find spectra",
89
            "description": "The extension drives the `spectra` program.\n[Check for spectra](command:spectra.checkBinary)",
90
            "media": {
91
              "markdown": "media/binary.md"
92
            },
93
            "completionEvents": [
94
              "onContext:spectra.hasBinary"
95
            ]
96
          },
97
          {
98
            "id": "identity",
99
            "title": "Create your identity",
100
            "description": "A key pair that signs as you. Agents act for you only when you say so.\n[Create Identity](command:spectra.createIdentity)",
101
            "media": {
102
              "markdown": "media/identity.md"
103
            },
104
            "completionEvents": [
105
              "onContext:spectra.hasIdentity"
106
            ]
107
          },
108
          {
109
            "id": "spectra",
110
            "title": "Choose your Spectra",
111
            "description": "Run it on this machine, or use one on a server you set up.\n[On This Machine](command:spectra.setupHere)\n[On a Server](command:spectra.connectServer)",
112
            "media": {
113
              "markdown": "media/spectra.md"
114
            },
115
            "completionEvents": [
116
              "onContext:spectra.ready"
117
            ]
118
          },
119
          {
120
            "id": "project",
121
            "title": "This folder as a project",
122
            "description": "A project is any work your agents share: code, a manuscript, documents.\n[Register This Folder](command:spectra.registerFolder)",
123
            "media": {
124
              "markdown": "media/project.md"
125
            },
126
            "completionEvents": [
127
              "onContext:spectra.folderIsProject"
128
            ]
129
          },
130
          {
131
            "id": "agent",
132
            "title": "Add an agent",
133
            "description": "Claude Code, Antigravity, Kimi Code or another; the extension can configure its client too.\n[Add an Agent](command:spectra.addAgent)",
134
            "media": {
135
              "markdown": "media/agent.md"
136
            },
137
            "completionEvents": [
138
              "onContext:spectra.hasAgent"
139
            ]
140
          },
141
          {
142
            "id": "hello",
143
            "title": "Say hello",
144
            "description": "Open the project's channel and say hello to your agents.\n[Open the Channel](command:spectra.openProjectChannel)",
145
            "media": {
146
              "markdown": "media/hello.md"
147
            },
148
            "completionEvents": [
149
              "onCommand:spectra.openProjectChannel"
150
            ]
151
          }
152
        ]
153
      }
154
    ],
155
    "commands": [
156
      {
157
        "command": "spectra.setup",
158
        "title": "Set Up",
159
        "category": "Spectra"
160
      },
161
      {
162
        "command": "spectra.checkBinary",
163
        "title": "Check for spectra",
164
        "category": "Spectra"
165
      },
166
      {
167
        "command": "spectra.createIdentity",
168
        "title": "Create Identity",
169
        "category": "Spectra"
170
      },
171
      {
172
        "command": "spectra.setupHere",
173
        "title": "Run Spectra on This Machine",
174
        "category": "Spectra"
175
      },
176
      {
177
        "command": "spectra.connectServer",
178
        "title": "Connect to a Server",
179
        "category": "Spectra"
180
      },
181
      {
182
        "command": "spectra.registerFolder",
183
        "title": "Register Folder as Project",
184
        "category": "Spectra"
185
      },
186
      {
187
        "command": "spectra.linkProject",
188
        "title": "Link Project",
189
        "category": "Spectra"
190
      },
191
      {
192
        "command": "spectra.addAgent",
193
        "title": "Add Agent",
194
        "category": "Spectra",
195
        "icon": "$(add)"
196
      },
197
      {
198
        "command": "spectra.renewAgent",
199
        "title": "Renew Agent",
200
        "category": "Spectra"
201
      },
202
      {
203
        "command": "spectra.openChannel",
204
        "title": "Open Channel",
205
        "category": "Spectra"
206
      },
207
      {
208
        "command": "spectra.openProjectChannel",
209
        "title": "Open This Project's Channel",
210
        "category": "Spectra"
211
      },
212
      {
213
        "command": "spectra.say",
214
        "title": "Say",
215
        "category": "Spectra"
216
      },
217
      {
218
        "command": "spectra.editOverallBrief",
219
        "title": "Edit Overall Brief",
220
        "category": "Spectra"
221
      },
222
      {
223
        "command": "spectra.editProjectBrief",
224
        "title": "Edit Project Brief",
225
        "category": "Spectra"
226
      },
227
      {
228
        "command": "spectra.openRadar",
229
        "title": "Open Radar",
230
        "category": "Spectra"
231
      },
232
      {
233
        "command": "spectra.openConstellation",
234
        "title": "Open Constellation",
235
        "category": "Spectra"
236
      },
237
      {
238
        "command": "spectra.refresh",
239
        "title": "Refresh",
240
        "category": "Spectra",
241
        "icon": "$(refresh)"
242
      }
243
    ],
244
    "menus": {
245
      "view/title": [
246
        {
247
          "command": "spectra.addAgent",
248
          "when": "view == spectra.agents",
249
          "group": "navigation"
250
        },
251
        {
252
          "command": "spectra.refresh",
253
          "when": "view =~ /^spectra\\./",
254
          "group": "navigation"
255
        }
256
      ],
257
      "view/item/context": [
258
        {
259
          "command": "spectra.renewAgent",
260
          "when": "view == spectra.agents && viewItem == agent"
261
        }
262
      ]
263
    },
264
    "configuration": {
265
      "title": "Spectra",
266
      "properties": {
267
        "spectra.path": {
268
          "type": "string",
269
          "default": "",
270
          "description": "The spectra program (empty: spectra on PATH, else ~/.local/bin/spectra)."
271
        },
272
        "spectra.agentsHome": {
273
          "type": "string",
274
          "default": "~/.spectra-agents",
275
          "description": "Where new agents' identity homes are made."
276
        }
277
      }
278
    }
279
  },
280
  "scripts": {
281
    "build": "esbuild src/extension.ts --bundle --platform=node --format=cjs --external:vscode --outfile=dist/extension.js --sourcemap",
282
    "watch": "npm run build -- --watch",
283
    "typecheck": "tsc --noEmit -p .",
284
    "types": "cp ../spectra/crates/spectra-api/ts/index.d.ts src/spectra-api.d.ts",
285
    "pretest": "esbuild src/pure.ts --bundle --platform=node --format=esm --sourcemap --outfile=out/pure.mjs",
286
    "test": "node --enable-source-maps --test \"test/**/*.test.mjs\"",
287
    "check": "npm run typecheck && npm run build && npm test",
288
    "package": "vsce package --no-dependencies",
289
    "smoke": "esbuild src/bridge.ts --bundle --platform=node --format=esm --alias:vscode=./test/vscode-stub.mjs --outfile=out/smoke-bridge.mjs && esbuild src/model.ts --bundle --platform=node --format=esm --alias:vscode=./test/vscode-stub.mjs --outfile=out/smoke-model.mjs && node test/smoke.mjs",
290
    "vscode:prepublish": "npm run build"
291
  },
292
  "devDependencies": {
293
    "@types/node": "^24.0.0",
294
    "@types/vscode": "^1.138.0",
295
    "@vscode/vsce": "^4.0.0",
296
    "esbuild": "^0.28.0",
297
    "typescript": "^5.9.0"
298
  }
299
}