copilotoffice 2.1.0 → 2.3.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/README.md +225 -192
- package/bin/copilotoffice.js +39 -39
- package/dist/electron/main.js +599 -126
- package/dist/electron/terminal/events-watcher.js +53 -2
- package/dist/electron/terminal/ipc-relay.js +49 -1
- package/dist/electron/terminal/preload.js +57 -13
- package/dist/electron/terminal/server.js +6125 -940
- package/dist/game.bundle.js +611 -206
- package/package.json +62 -58
- package/src/index.html +44 -44
package/package.json
CHANGED
|
@@ -1,58 +1,62 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "copilotoffice",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "A 2D pixel-art game where you interact with AI agents
|
|
5
|
-
"main": "dist/electron/main.js",
|
|
6
|
-
"bin": {
|
|
7
|
-
"copilotoffice": "bin/copilotoffice.js"
|
|
8
|
-
},
|
|
9
|
-
"files": [
|
|
10
|
-
"bin/",
|
|
11
|
-
"dist/",
|
|
12
|
-
"src/index.html"
|
|
13
|
-
],
|
|
14
|
-
"scripts": {
|
|
15
|
-
"build:game": "esbuild src/main.ts --bundle --outfile=dist/game.bundle.js --platform=browser --format=iife --global-name=CopilotOffice",
|
|
16
|
-
"build:electron": "esbuild electron/main.ts electron/terminal/preload.ts electron/cli-bridge.ts electron/terminal/events-watcher.ts electron/terminal/server.ts electron/terminal/protocol.ts electron/terminal/ipc-relay.ts --bundle --outdir=dist/electron --platform=node --format=cjs --external:electron --external:node-pty --external:ws",
|
|
17
|
-
"build": "npm run build:game && npm run build:electron",
|
|
18
|
-
"prepack": "npm run build",
|
|
19
|
-
"start": "npm run build && electron .",
|
|
20
|
-
"dev": "concurrently \"npm run build:game -- --watch\" \"npm run build:electron -- --watch\" \"electron .\"",
|
|
21
|
-
"electron": "electron .",
|
|
22
|
-
"test": "vitest run",
|
|
23
|
-
"test:watch": "vitest",
|
|
24
|
-
"test:coverage": "vitest run --coverage",
|
|
25
|
-
"test:e2e": "npm run build && playwright test"
|
|
26
|
-
},
|
|
27
|
-
"keywords": [
|
|
28
|
-
"copilot",
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
"@
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
|
|
58
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "copilotoffice",
|
|
3
|
+
"version": "2.3.0",
|
|
4
|
+
"description": "A 2D pixel-art desktop game where you walk around a virtual office and interact with AI agents that run real GitHub Copilot CLI sessions — plan, debug, orchestrate fleets, and drive agents from Microsoft Teams.",
|
|
5
|
+
"main": "dist/electron/main.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"copilotoffice": "bin/copilotoffice.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"bin/",
|
|
11
|
+
"dist/",
|
|
12
|
+
"src/index.html"
|
|
13
|
+
],
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build:game": "esbuild src/main.ts --bundle --outfile=dist/game.bundle.js --platform=browser --format=iife --global-name=CopilotOffice",
|
|
16
|
+
"build:electron": "esbuild electron/main.ts electron/terminal/preload.ts electron/cli-bridge.ts electron/terminal/events-watcher.ts electron/terminal/server.ts electron/terminal/protocol.ts electron/terminal/ipc-relay.ts --bundle --outdir=dist/electron --platform=node --format=cjs --external:electron --external:node-pty --external:ws",
|
|
17
|
+
"build": "npm run build:game && npm run build:electron",
|
|
18
|
+
"prepack": "npm run build",
|
|
19
|
+
"start": "npm run build && electron .",
|
|
20
|
+
"dev": "concurrently \"npm run build:game -- --watch\" \"npm run build:electron -- --watch\" \"electron .\"",
|
|
21
|
+
"electron": "electron .",
|
|
22
|
+
"test": "vitest run",
|
|
23
|
+
"test:watch": "vitest",
|
|
24
|
+
"test:coverage": "vitest run --coverage",
|
|
25
|
+
"test:e2e": "npm run build && playwright test"
|
|
26
|
+
},
|
|
27
|
+
"keywords": [
|
|
28
|
+
"copilot",
|
|
29
|
+
"copilot-cli",
|
|
30
|
+
"ai-agents",
|
|
31
|
+
"game",
|
|
32
|
+
"pixel-art",
|
|
33
|
+
"phaser",
|
|
34
|
+
"electron",
|
|
35
|
+
"typescript"
|
|
36
|
+
],
|
|
37
|
+
"author": "",
|
|
38
|
+
"license": "ISC",
|
|
39
|
+
"type": "commonjs",
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"@github/copilot-sdk": "1.0.5",
|
|
42
|
+
"@xterm/addon-fit": "^0.11.0",
|
|
43
|
+
"@xterm/xterm": "^6.0.0",
|
|
44
|
+
"ansi-to-html": "^0.7.2",
|
|
45
|
+
"electron": "^40.6.1",
|
|
46
|
+
"node-pty": "^1.1.0",
|
|
47
|
+
"phaser": "^3.90.0",
|
|
48
|
+
"ws": "^8.21.0"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@playwright/test": "^1.56.1",
|
|
52
|
+
"@testing-library/dom": "^10.4.1",
|
|
53
|
+
"@types/node": "^25.3.3",
|
|
54
|
+
"@types/ws": "^8.18.1",
|
|
55
|
+
"@vitest/coverage-v8": "^4.0.0",
|
|
56
|
+
"concurrently": "^9.2.1",
|
|
57
|
+
"esbuild": "^0.27.3",
|
|
58
|
+
"jsdom": "^27.0.1",
|
|
59
|
+
"typescript": "^5.9.3",
|
|
60
|
+
"vitest": "^4.0.0"
|
|
61
|
+
}
|
|
62
|
+
}
|
package/src/index.html
CHANGED
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>Copilot Office</title>
|
|
7
|
-
<link rel="stylesheet" href="../node_modules/@xterm/xterm/css/xterm.css">
|
|
8
|
-
<style>
|
|
9
|
-
* {
|
|
10
|
-
margin: 0;
|
|
11
|
-
padding: 0;
|
|
12
|
-
box-sizing: border-box;
|
|
13
|
-
}
|
|
14
|
-
html, body {
|
|
15
|
-
width: 100%;
|
|
16
|
-
height: 100%;
|
|
17
|
-
overflow: hidden;
|
|
18
|
-
background-color: #1a1a2e;
|
|
19
|
-
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
20
|
-
}
|
|
21
|
-
#game-container {
|
|
22
|
-
width: 100%;
|
|
23
|
-
height: calc(100% - 32px);
|
|
24
|
-
position: relative;
|
|
25
|
-
}
|
|
26
|
-
#game-container canvas {
|
|
27
|
-
display: block;
|
|
28
|
-
image-rendering: pixelated;
|
|
29
|
-
image-rendering: crisp-edges;
|
|
30
|
-
}
|
|
31
|
-
/* xterm terminal styling */
|
|
32
|
-
.xterm {
|
|
33
|
-
height: 100%;
|
|
34
|
-
}
|
|
35
|
-
.xterm-viewport {
|
|
36
|
-
overflow-y: auto !important;
|
|
37
|
-
}
|
|
38
|
-
</style>
|
|
39
|
-
</head>
|
|
40
|
-
<body>
|
|
41
|
-
<div id="game-container"></div>
|
|
42
|
-
<script src="../dist/game.bundle.js"></script>
|
|
43
|
-
</body>
|
|
44
|
-
</html>
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Copilot Office</title>
|
|
7
|
+
<link rel="stylesheet" href="../node_modules/@xterm/xterm/css/xterm.css">
|
|
8
|
+
<style>
|
|
9
|
+
* {
|
|
10
|
+
margin: 0;
|
|
11
|
+
padding: 0;
|
|
12
|
+
box-sizing: border-box;
|
|
13
|
+
}
|
|
14
|
+
html, body {
|
|
15
|
+
width: 100%;
|
|
16
|
+
height: 100%;
|
|
17
|
+
overflow: hidden;
|
|
18
|
+
background-color: #1a1a2e;
|
|
19
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
20
|
+
}
|
|
21
|
+
#game-container {
|
|
22
|
+
width: 100%;
|
|
23
|
+
height: calc(100% - 32px);
|
|
24
|
+
position: relative;
|
|
25
|
+
}
|
|
26
|
+
#game-container canvas {
|
|
27
|
+
display: block;
|
|
28
|
+
image-rendering: pixelated;
|
|
29
|
+
image-rendering: crisp-edges;
|
|
30
|
+
}
|
|
31
|
+
/* xterm terminal styling */
|
|
32
|
+
.xterm {
|
|
33
|
+
height: 100%;
|
|
34
|
+
}
|
|
35
|
+
.xterm-viewport {
|
|
36
|
+
overflow-y: auto !important;
|
|
37
|
+
}
|
|
38
|
+
</style>
|
|
39
|
+
</head>
|
|
40
|
+
<body>
|
|
41
|
+
<div id="game-container"></div>
|
|
42
|
+
<script src="../dist/game.bundle.js"></script>
|
|
43
|
+
</body>
|
|
44
|
+
</html>
|