workweave 0.2.0 → 0.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 +33 -32
- package/dist/cli.js +27 -31
- package/dist/cli.js.map +1 -1
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +61 -86
- package/dist/setup.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
> Turn scattered developer signals into a focused, prioritized plan for your day.
|
|
4
4
|
|
|
5
|
+
[](https://www.npmjs.com/package/workweave)
|
|
5
6
|
[](LICENSE)
|
|
6
|
-
[](package.json)
|
|
7
7
|
[](https://nodejs.org)
|
|
8
8
|
|
|
9
9
|
Workweave is a CLI tool that ingests activity from **GitHub**, **Linear**, and **Slack**, then synthesizes a time-boxed workday plan — either using deterministic prioritization rules or an AI model of your choice (local, Anthropic, or OpenAI).
|
|
@@ -42,22 +42,17 @@ Slack ─┘ ▲
|
|
|
42
42
|
## Install
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
|
-
|
|
46
|
-
cd workweave
|
|
47
|
-
npm install
|
|
48
|
-
npm run build
|
|
45
|
+
npm install -g workweave
|
|
49
46
|
```
|
|
50
47
|
|
|
51
|
-
|
|
48
|
+
That's it. The `workweave` command is now available globally.
|
|
52
49
|
|
|
53
|
-
|
|
54
|
-
npm link
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
Or run directly without linking:
|
|
50
|
+
**From source** (for contributors):
|
|
58
51
|
|
|
59
52
|
```bash
|
|
60
|
-
|
|
53
|
+
git clone https://github.com/emin93/workweave.git
|
|
54
|
+
cd workweave
|
|
55
|
+
npm install && npm run build && npm link
|
|
61
56
|
```
|
|
62
57
|
|
|
63
58
|
---
|
|
@@ -82,13 +77,13 @@ All credentials are stored in a local `.env` file that is never committed.
|
|
|
82
77
|
**2. Check that your connectors are ready:**
|
|
83
78
|
|
|
84
79
|
```bash
|
|
85
|
-
workweave detect
|
|
80
|
+
workweave detect
|
|
86
81
|
```
|
|
87
82
|
|
|
88
83
|
**3. Synthesize your day:**
|
|
89
84
|
|
|
90
85
|
```bash
|
|
91
|
-
workweave synth
|
|
86
|
+
workweave synth
|
|
92
87
|
```
|
|
93
88
|
|
|
94
89
|
---
|
|
@@ -108,7 +103,7 @@ workweave setup
|
|
|
108
103
|
Check which connectors are configured and reachable.
|
|
109
104
|
|
|
110
105
|
```bash
|
|
111
|
-
workweave detect
|
|
106
|
+
workweave detect
|
|
112
107
|
```
|
|
113
108
|
|
|
114
109
|
```
|
|
@@ -117,40 +112,45 @@ workweave detect --connectors github,linear,slack
|
|
|
117
112
|
slack ✗ SLACK_USER_TOKEN not set
|
|
118
113
|
```
|
|
119
114
|
|
|
115
|
+
Pass `--connectors github,linear,slack` to check specific sources only.
|
|
116
|
+
|
|
120
117
|
### `workweave synth`
|
|
121
118
|
|
|
122
119
|
Fetch signals and produce a workday plan.
|
|
123
120
|
|
|
124
121
|
```bash
|
|
125
|
-
#
|
|
126
|
-
workweave synth
|
|
127
|
-
|
|
128
|
-
# With AI — auto-detects provider (local → Anthropic → OpenAI)
|
|
129
|
-
workweave synth --connectors github,linear,slack --ai
|
|
122
|
+
# Synthesize your day (AI auto-detected)
|
|
123
|
+
workweave synth
|
|
130
124
|
|
|
131
125
|
# Force a specific provider
|
|
132
|
-
workweave synth --
|
|
126
|
+
workweave synth --provider anthropic
|
|
133
127
|
|
|
134
128
|
# Adjust available time
|
|
135
|
-
workweave synth --
|
|
129
|
+
workweave synth --workday-minutes 360
|
|
136
130
|
|
|
137
131
|
# Machine-readable output
|
|
138
|
-
workweave synth --
|
|
132
|
+
workweave synth --json
|
|
133
|
+
|
|
134
|
+
# Limit to specific connectors
|
|
135
|
+
workweave synth --connectors github,linear
|
|
136
|
+
|
|
137
|
+
# Skip AI and use rules-based prioritization only
|
|
138
|
+
workweave synth --no-ai
|
|
139
139
|
```
|
|
140
140
|
|
|
141
141
|
---
|
|
142
142
|
|
|
143
|
-
## AI
|
|
143
|
+
## AI provider
|
|
144
144
|
|
|
145
|
-
|
|
145
|
+
Run `workweave setup` to choose your AI provider. The choice is saved to your `.env` and used on every run.
|
|
146
146
|
|
|
147
|
-
|
|
|
148
|
-
|
|
149
|
-
|
|
|
150
|
-
|
|
|
151
|
-
|
|
|
147
|
+
| Provider | Model | Requires |
|
|
148
|
+
|----------|-------|---------|
|
|
149
|
+
| **Anthropic** | `claude-haiku-4-5` | `ANTHROPIC_API_KEY` |
|
|
150
|
+
| **OpenAI** | `gpt-4o-mini` | `OPENAI_API_KEY` |
|
|
151
|
+
| **Local** | Qwen 2.5 1.5B (via `node-llama-cpp`) | ~1 GB one-time download, no key |
|
|
152
152
|
|
|
153
|
-
|
|
153
|
+
Override for a single run with `--provider anthropic|openai|local`.
|
|
154
154
|
|
|
155
155
|
---
|
|
156
156
|
|
|
@@ -158,6 +158,7 @@ You can force a provider with `--provider local|anthropic|openai`.
|
|
|
158
158
|
|
|
159
159
|
| Variable | Description |
|
|
160
160
|
|----------|-------------|
|
|
161
|
+
| `AI_PROVIDER` | Active AI provider: `anthropic` \| `openai` \| `local` (set by `workweave setup`) |
|
|
161
162
|
| `GITHUB_TOKEN` | GitHub personal access token (repo scope) |
|
|
162
163
|
| `LINEAR_API_KEY` | Linear personal API key |
|
|
163
164
|
| `SLACK_USER_TOKEN` | Slack user token (`xoxp-…`) |
|
|
@@ -176,7 +177,7 @@ Variables can be set in a local `.env` file at the project root (created by `wor
|
|
|
176
177
|
Add `--json` to any command for machine-readable output. Progress logs are suppressed and only the result is written to stdout.
|
|
177
178
|
|
|
178
179
|
```bash
|
|
179
|
-
workweave synth --
|
|
180
|
+
workweave synth --json | jq '.plan.blocks[].title'
|
|
180
181
|
```
|
|
181
182
|
|
|
182
183
|
**`synth` output shape:**
|
package/dist/cli.js
CHANGED
|
@@ -26,7 +26,7 @@ function parseArgs(argv) {
|
|
|
26
26
|
command,
|
|
27
27
|
connectors: ["github"],
|
|
28
28
|
workdayMinutes: Number(process.env.WORKDAY_MINUTES ?? "480"),
|
|
29
|
-
|
|
29
|
+
noAi: false,
|
|
30
30
|
json: false,
|
|
31
31
|
};
|
|
32
32
|
for (let i = 0; i < args.length; i++) {
|
|
@@ -35,8 +35,8 @@ function parseArgs(argv) {
|
|
|
35
35
|
opts.connectors = (args[++i] ?? "github").split(",").map((x) => x.trim()).filter(Boolean);
|
|
36
36
|
else if (a === "--workday-minutes")
|
|
37
37
|
opts.workdayMinutes = Number(args[++i] ?? "480");
|
|
38
|
-
else if (a === "--ai")
|
|
39
|
-
opts.
|
|
38
|
+
else if (a === "--no-ai")
|
|
39
|
+
opts.noAi = true;
|
|
40
40
|
else if (a === "--json")
|
|
41
41
|
opts.json = true;
|
|
42
42
|
else if (a === "--provider") {
|
|
@@ -58,20 +58,21 @@ Usage:
|
|
|
58
58
|
workweave setup
|
|
59
59
|
workweave detect [--connectors github,linear,slack] [--json]
|
|
60
60
|
workweave synth [--connectors github,linear,slack] [--workday-minutes 480]
|
|
61
|
-
[--ai] [--provider local|anthropic|openai] [--json]
|
|
61
|
+
[--no-ai] [--provider local|anthropic|openai] [--json]
|
|
62
62
|
|
|
63
63
|
Flags:
|
|
64
64
|
--json Machine-readable JSON output (default: formatted terminal)
|
|
65
|
-
--ai
|
|
65
|
+
--no-ai Skip AI synthesis and use rules-based prioritization
|
|
66
66
|
--provider <name> Force a specific AI provider (local | anthropic | openai)
|
|
67
67
|
--workday-minutes Available minutes in your workday (default: 480)
|
|
68
68
|
--connectors Comma-separated list of connectors to use
|
|
69
69
|
|
|
70
70
|
Environment variables:
|
|
71
|
+
AI_PROVIDER Configured AI provider: anthropic | openai | local (set by setup)
|
|
71
72
|
GITHUB_TOKEN GitHub personal access token (repo scope)
|
|
72
|
-
ANTHROPIC_API_KEY Anthropic API key
|
|
73
|
+
ANTHROPIC_API_KEY Anthropic API key
|
|
73
74
|
ANTHROPIC_MODEL Model override (default: claude-haiku-4-5)
|
|
74
|
-
OPENAI_API_KEY OpenAI API key
|
|
75
|
+
OPENAI_API_KEY OpenAI API key
|
|
75
76
|
OPENAI_MODEL Model override (default: gpt-4o-mini)
|
|
76
77
|
LINEAR_API_KEY Linear personal API key
|
|
77
78
|
SLACK_USER_TOKEN Slack user token (xoxp-...)
|
|
@@ -84,35 +85,30 @@ function buildRegistry() {
|
|
|
84
85
|
registry.register(new slack_1.SlackConnector());
|
|
85
86
|
return registry;
|
|
86
87
|
}
|
|
87
|
-
async function resolveProvider(
|
|
88
|
-
if (
|
|
88
|
+
async function resolveProvider(noAi, preferredProvider) {
|
|
89
|
+
if (noAi)
|
|
89
90
|
return null;
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
const provider = preferredProvider ?? process.env.AI_PROVIDER;
|
|
92
|
+
if (!provider)
|
|
93
|
+
return null;
|
|
94
|
+
if (provider === "local") {
|
|
95
|
+
if (!(0, local_1.modelExists)())
|
|
94
96
|
throw new Error("Local model not found. Run `workweave setup` to download it.");
|
|
95
|
-
}
|
|
96
97
|
return new provider_1.LlamaCppProvider((0, local_1.modelPath)());
|
|
97
98
|
}
|
|
98
|
-
if (
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
99
|
+
if (provider === "anthropic") {
|
|
100
|
+
const key = process.env.ANTHROPIC_API_KEY;
|
|
101
|
+
if (!key)
|
|
102
|
+
throw new Error("ANTHROPIC_API_KEY not set. Run `workweave setup` to configure it.");
|
|
103
|
+
return new provider_1.AnthropicProvider({ apiKey: key, model: process.env.ANTHROPIC_MODEL });
|
|
102
104
|
}
|
|
103
|
-
if (
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
if (provider === "openai") {
|
|
106
|
+
const key = process.env.OPENAI_API_KEY;
|
|
107
|
+
if (!key)
|
|
108
|
+
throw new Error("OPENAI_API_KEY not set. Run `workweave setup` to configure it.");
|
|
109
|
+
return new provider_1.OpenAIProvider({ apiKey: key, model: process.env.OPENAI_MODEL });
|
|
107
110
|
}
|
|
108
|
-
|
|
109
|
-
if ((0, local_1.modelExists)())
|
|
110
|
-
return new provider_1.LlamaCppProvider((0, local_1.modelPath)());
|
|
111
|
-
if (anthropicKey)
|
|
112
|
-
return new provider_1.AnthropicProvider({ apiKey: anthropicKey, model: process.env.ANTHROPIC_MODEL });
|
|
113
|
-
if (openaiKey)
|
|
114
|
-
return new provider_1.OpenAIProvider({ apiKey: openaiKey, model: process.env.OPENAI_MODEL });
|
|
115
|
-
throw new Error("No AI provider found. Run `workweave setup` to download a local model or add an API key.");
|
|
111
|
+
return null;
|
|
116
112
|
}
|
|
117
113
|
(0, env_1.loadLocalEnv)();
|
|
118
114
|
async function run() {
|
|
@@ -151,7 +147,7 @@ async function run() {
|
|
|
151
147
|
const ingestion = new ingest_1.IngestionOrchestrator(registry);
|
|
152
148
|
const { events, errors } = await ingestion.fetchAll(opts.connectors);
|
|
153
149
|
const artifacts = (0, normalize_1.normalize)(events);
|
|
154
|
-
const provider = await resolveProvider(opts.
|
|
150
|
+
const provider = await resolveProvider(opts.noAi, opts.provider);
|
|
155
151
|
let clusters;
|
|
156
152
|
let synthesisMode = "rules";
|
|
157
153
|
if (provider) {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AACA,oDAA0D;AAC1D,gDAAsD;AACtD,gDAAsD;AACtD,8CAAoD;AACpD,8CAA+D;AAC/D,oDAAiD;AACjD,oDAAiD;AACjD,sDAAmD;AACnD,kDAA+C;AAC/C,4DAAwD;AACxD,4CAAsG;AACtG,sCAAoD;AACpD,+BAAqC;AACrC,mCAAmC;AACnC,uCAA8E;AAW9E,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,OAAO,GACX,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO;QAC1D,CAAC,CAAE,IAAI,CAAC,KAAK,EAA4B;QACzC,CAAC,CAAC,OAAO,CAAC;IAEd,MAAM,IAAI,GAAe;QACvB,OAAO;QACP,UAAU,EAAE,CAAC,QAAQ,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,KAAK,CAAC;QAC5D,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AA8OA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAsB9C"}
|
package/dist/setup.js
CHANGED
|
@@ -60,24 +60,68 @@ async function setupGitHub(rl) {
|
|
|
60
60
|
const file = (0, env_1.upsertLocalEnv)("GITHUB_TOKEN", token);
|
|
61
61
|
ok(`GITHUB_TOKEN saved to ${file}`);
|
|
62
62
|
}
|
|
63
|
-
async function
|
|
64
|
-
section("AI
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const
|
|
69
|
-
if (!
|
|
70
|
-
return
|
|
63
|
+
async function setupAI(rl) {
|
|
64
|
+
section("AI");
|
|
65
|
+
const current = process.env.AI_PROVIDER;
|
|
66
|
+
if (current) {
|
|
67
|
+
ok(`AI provider is set to: ${current}`);
|
|
68
|
+
const change = await yesNo(rl, "Change it?", false);
|
|
69
|
+
if (!change)
|
|
70
|
+
return;
|
|
71
71
|
}
|
|
72
|
-
|
|
72
|
+
info("");
|
|
73
|
+
info(" Choose an AI provider:");
|
|
74
|
+
info(" 1) Anthropic (claude-haiku-4-5) — fast, hosted");
|
|
75
|
+
info(" 2) OpenAI (gpt-4o-mini) — fast, hosted");
|
|
76
|
+
info(" 3) Local (Qwen 2.5 1.5B) — private, runs on CPU, no key required");
|
|
77
|
+
const choice = (await rl.question("\n Enter 1, 2 or 3 [1]: ")).trim();
|
|
78
|
+
if (choice === "2") {
|
|
79
|
+
info("");
|
|
80
|
+
info(" Get a key at https://platform.openai.com/api-keys");
|
|
81
|
+
const key = await ask(rl, "Paste OPENAI_API_KEY (input is visible):");
|
|
82
|
+
if (!key) {
|
|
83
|
+
warn("No key entered — skipping.");
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
(0, env_1.upsertLocalEnv)("OPENAI_API_KEY", key);
|
|
87
|
+
const file = (0, env_1.upsertLocalEnv)("AI_PROVIDER", "openai");
|
|
88
|
+
ok(`OpenAI configured. Settings saved to ${file}`);
|
|
89
|
+
}
|
|
90
|
+
else if (choice === "3") {
|
|
73
91
|
info(` Model : ${local_1.MODEL_NAME} Q4_K_M`);
|
|
74
|
-
info(` Size : ~${local_1.MODEL_SIZE_MB} MB (
|
|
92
|
+
info(` Size : ~${local_1.MODEL_SIZE_MB} MB (stored in ~/.workweave/models/)`);
|
|
75
93
|
info(` Speed : ~5–15 s per synthesis on CPU`);
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
94
|
+
if ((0, local_1.modelExists)()) {
|
|
95
|
+
ok(`${local_1.MODEL_NAME} is already downloaded.`);
|
|
96
|
+
const redownload = await yesNo(rl, "Re-download it?", false);
|
|
97
|
+
if (redownload)
|
|
98
|
+
await downloadLocalModel();
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
const go = await yesNo(rl, "Download now?", true);
|
|
102
|
+
if (!go) {
|
|
103
|
+
info(" Skipped.");
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
await downloadLocalModel();
|
|
107
|
+
}
|
|
108
|
+
const file = (0, env_1.upsertLocalEnv)("AI_PROVIDER", "local");
|
|
109
|
+
ok(`Local model configured. Settings saved to ${file}`);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
info("");
|
|
113
|
+
info(" Get a key at https://console.anthropic.com/settings/keys");
|
|
114
|
+
const key = await ask(rl, "Paste ANTHROPIC_API_KEY (input is visible):");
|
|
115
|
+
if (!key) {
|
|
116
|
+
warn("No key entered — skipping.");
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
(0, env_1.upsertLocalEnv)("ANTHROPIC_API_KEY", key);
|
|
120
|
+
const file = (0, env_1.upsertLocalEnv)("AI_PROVIDER", "anthropic");
|
|
121
|
+
ok(`Anthropic configured. Settings saved to ${file}`);
|
|
80
122
|
}
|
|
123
|
+
}
|
|
124
|
+
async function downloadLocalModel() {
|
|
81
125
|
info("");
|
|
82
126
|
info(` Downloading ${local_1.MODEL_FILE} …`);
|
|
83
127
|
info("");
|
|
@@ -91,65 +135,6 @@ async function setupLocalModel(rl) {
|
|
|
91
135
|
process.stdout.write("\n");
|
|
92
136
|
info("");
|
|
93
137
|
ok(`Downloaded to ${(0, local_1.modelPath)()}`);
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
async function setupAPIProvider(rl) {
|
|
97
|
-
section("AI synthesis — API key (alternative)");
|
|
98
|
-
info(" Use an API key instead of (or alongside) the local model.");
|
|
99
|
-
info(" The local model is preferred at runtime; an API key is a fallback.");
|
|
100
|
-
info("");
|
|
101
|
-
const hasAnthropic = !!process.env.ANTHROPIC_API_KEY;
|
|
102
|
-
const hasOpenAI = !!process.env.OPENAI_API_KEY;
|
|
103
|
-
if (hasAnthropic) {
|
|
104
|
-
ok("ANTHROPIC_API_KEY is already configured.");
|
|
105
|
-
const replace = await yesNo(rl, "Replace it?", false);
|
|
106
|
-
if (replace)
|
|
107
|
-
await enterKey(rl, "anthropic");
|
|
108
|
-
}
|
|
109
|
-
else if (hasOpenAI) {
|
|
110
|
-
ok("OPENAI_API_KEY is already configured.");
|
|
111
|
-
const replace = await yesNo(rl, "Replace it or add an Anthropic key?", false);
|
|
112
|
-
if (replace)
|
|
113
|
-
await pickAndEnterKey(rl);
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
const configure = await yesNo(rl, "Add an API key now?", false);
|
|
117
|
-
if (configure)
|
|
118
|
-
await pickAndEnterKey(rl);
|
|
119
|
-
else
|
|
120
|
-
info(" Skipped. Run `workweave setup` again to add one later.");
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
async function pickAndEnterKey(rl) {
|
|
124
|
-
info("");
|
|
125
|
-
info(" 1) Anthropic (claude-haiku-4-5)");
|
|
126
|
-
info(" 2) OpenAI (gpt-4o-mini)");
|
|
127
|
-
const choice = (await rl.question("\n Enter 1 or 2 [1]: ")).trim();
|
|
128
|
-
await enterKey(rl, choice === "2" ? "openai" : "anthropic");
|
|
129
|
-
}
|
|
130
|
-
async function enterKey(rl, provider) {
|
|
131
|
-
if (provider === "anthropic") {
|
|
132
|
-
info("");
|
|
133
|
-
info(" Get a key at https://console.anthropic.com/settings/keys");
|
|
134
|
-
const key = await ask(rl, "Paste ANTHROPIC_API_KEY (input is visible):");
|
|
135
|
-
if (!key) {
|
|
136
|
-
warn("No key entered — skipping.");
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
const file = (0, env_1.upsertLocalEnv)("ANTHROPIC_API_KEY", key);
|
|
140
|
-
ok(`ANTHROPIC_API_KEY saved to ${file}`);
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
info("");
|
|
144
|
-
info(" Get a key at https://platform.openai.com/api-keys");
|
|
145
|
-
const key = await ask(rl, "Paste OPENAI_API_KEY (input is visible):");
|
|
146
|
-
if (!key) {
|
|
147
|
-
warn("No key entered — skipping.");
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
const file = (0, env_1.upsertLocalEnv)("OPENAI_API_KEY", key);
|
|
151
|
-
ok(`OPENAI_API_KEY saved to ${file}`);
|
|
152
|
-
}
|
|
153
138
|
}
|
|
154
139
|
async function setupLinear(rl) {
|
|
155
140
|
section("Linear (optional)");
|
|
@@ -234,8 +219,8 @@ function printNextSteps() {
|
|
|
234
219
|
info("Local config: " + (0, env_1.envFilePath)());
|
|
235
220
|
info("");
|
|
236
221
|
info(" Try it out:");
|
|
237
|
-
info(" workweave detect
|
|
238
|
-
info(" workweave synth
|
|
222
|
+
info(" workweave detect");
|
|
223
|
+
info(" workweave synth");
|
|
239
224
|
info("");
|
|
240
225
|
info(" Run setup again any time to add or update credentials:");
|
|
241
226
|
info(" workweave setup");
|
|
@@ -253,17 +238,7 @@ async function runSetup() {
|
|
|
253
238
|
info(" Configures connectors and AI synthesis.");
|
|
254
239
|
info(" Credentials are stored in a local .env file (never committed).");
|
|
255
240
|
await setupGitHub(rl);
|
|
256
|
-
|
|
257
|
-
if (!hasLocal) {
|
|
258
|
-
// Only prompt for an API key if they declined the local model
|
|
259
|
-
await setupAPIProvider(rl);
|
|
260
|
-
}
|
|
261
|
-
else {
|
|
262
|
-
// Still offer an API key as an optional fallback
|
|
263
|
-
const addKey = await yesNo(rl, "\n Also add an API key as fallback?", false);
|
|
264
|
-
if (addKey)
|
|
265
|
-
await pickAndEnterKey(rl);
|
|
266
|
-
}
|
|
241
|
+
await setupAI(rl);
|
|
267
242
|
await setupWorkdayHours(rl);
|
|
268
243
|
await setupLinear(rl);
|
|
269
244
|
await setupSlack(rl);
|
package/dist/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";;AA8OA,4BAsBC;AApQD,gDAAoD;AACpD,+BAAoD;AACpD,sCAOoB;AAEpB,8EAA8E;AAE9E,SAAS,EAAE;IACT,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,EAAE,EAAE,CAAC;IACL,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;IAC1B,EAAE,EAAE,CAAC;AACP,CAAC;AAED,SAAS,EAAE,CAAC,GAAW,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,SAAS,IAAI,CAAC,GAAW,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAChE,SAAS,IAAI,CAAC,GAAW,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAEvD,SAAS,WAAW,CAAC,GAAW,EAAE,KAAK,GAAG,EAAE;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAC/C,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC;AACrE,CAAC;AAED,KAAK,UAAU,KAAK,CAClB,EAAsC,EACtC,QAAgB,EAChB,UAAmB;IAEnB,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5C,MAAM,MAAM,GAAG,CACb,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,QAAQ,IAAI,IAAI,GAAG,CAAC,CAC9C,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACvB,IAAI,CAAC,MAAM;QAAE,OAAO,UAAU,CAAC;IAC/B,OAAO,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,KAAK,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,GAAG,CAChB,EAAsC,EACtC,QAAgB;IAEhB,OAAO,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACxD,CAAC;AAED,8EAA8E;AAE9E,KAAK,UAAU,WAAW,CAAC,EAAsC;IAC/D,OAAO,CAAC,QAAQ,CAAC,CAAC;IAElB,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC7B,EAAE,CAAC,qCAAqC,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO;IACvB,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,uBAAuB,EAAE,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,EAAE,CAAC;YAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;IACjD,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,IAAI,CAAC,sEAAsE,CAAC,CAAC;IAC7E,IAAI,CAAC,gDAAgD,CAAC,CAAC;IACvD,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAChC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,wCAAwC,CAAC,CAAC;IACtE,IAAI,CAAC,KAAK,EAAE,CAAC;QAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,IAAA,oBAAc,EAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACnD,EAAE,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,EAAsC;IAC3D,OAAO,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,WAA2D,CAAC;IAExF,IAAI,OAAO,EAAE,CAAC;QACZ,EAAE,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM;YAAE,OAAO;IACtB,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACjC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IAC3D,IAAI,CAAC,oDAAoD,CAAC,CAAC;IAC3D,IAAI,CAAC,6EAA6E,CAAC,CAAC;IAEpF,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEvE,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,IAAI,CAAC,qDAAqD,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,0CAA0C,CAAC,CAAC;QACtE,IAAI,CAAC,GAAG,EAAE,CAAC;YAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACzD,IAAA,oBAAc,EAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,IAAA,oBAAc,EAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACrD,EAAE,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,kBAAU,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,cAAc,qBAAa,uCAAuC,CAAC,CAAC;QACzE,IAAI,CAAC,wCAAwC,CAAC,CAAC;QAC/C,IAAI,IAAA,mBAAW,GAAE,EAAE,CAAC;YAClB,EAAE,CAAC,GAAG,kBAAU,yBAAyB,CAAC,CAAC;YAC3C,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;YAC7D,IAAI,UAAU;gBAAE,MAAM,kBAAkB,EAAE,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,EAAE,EAAE,CAAC;gBAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YACxC,MAAM,kBAAkB,EAAE,CAAC;QAC7B,CAAC;QACD,MAAM,IAAI,GAAG,IAAA,oBAAc,EAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACpD,EAAE,CAAC,6CAA6C,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,IAAI,CAAC,4DAA4D,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,6CAA6C,CAAC,CAAC;QACzE,IAAI,CAAC,GAAG,EAAE,CAAC;YAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACzD,IAAA,oBAAc,EAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,IAAA,oBAAc,EAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QACxD,EAAE,CAAC,2CAA2C,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC/B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,IAAI,CAAC,iBAAiB,kBAAU,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,CAAC,CAAC;IAET,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,MAAM,IAAA,qBAAa,EAAC,CAAC,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;QACjD,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,YAAY,SAAS,OAAO,KAAK,CAAC;QACpE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3F,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,EAAE,CAAC,iBAAiB,IAAA,iBAAS,GAAE,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,EAAsC;IAC/D,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE9B,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QAC/B,EAAE,CAAC,uCAAuC,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO;IACvB,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,EAAE,CAAC;YAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;IACjD,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAC1C,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,0CAA0C,CAAC,CAAC;IACtE,IAAI,CAAC,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IACzD,MAAM,IAAI,GAAG,IAAA,oBAAc,EAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IACnD,EAAE,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,EAAsC;IACrE,OAAO,CAAC,eAAe,CAAC,CAAC;IAEzB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe;QACzC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,QAAQ;QACjE,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,OAAO,EAAE,CAAC;QACZ,EAAE,CAAC,+BAA+B,OAAO,GAAG,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO;YAAE,OAAO;IACvB,CAAC;IAED,IAAI,CAAC,uCAAuC,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;IAEvC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;QAC7C,IAAI,CAAC,6CAA6C,CAAC,CAAC;QACpD,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAA,oBAAc,EAAC,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,EAAE,CAAC,kBAAkB,KAAK,MAAM,OAAO,mBAAmB,IAAI,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,EAAsC;IAC9D,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAE7B,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACjC,EAAE,CAAC,yCAAyC,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO;IACvB,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,EAAE,CAAC;YAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;IACjD,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,IAAI,CAAC,+DAA+D,CAAC,CAAC;IACtE,IAAI,CAAC,yDAAyD,CAAC,CAAC;IAChE,IAAI,CAAC,8DAA8D,CAAC,CAAC;IACrE,IAAI,CAAC,qEAAqE,CAAC,CAAC;IAC5E,IAAI,CAAC,mDAAmD,CAAC,CAAC;IAC1D,IAAI,CAAC,qDAAqD,CAAC,CAAC;IAE5D,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,4CAA4C,CAAC,CAAC;IAC1E,IAAI,CAAC,KAAK,EAAE,CAAC;QAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,IAAA,oBAAc,EAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACvD,EAAE,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,CAAC,MAAM,CAAC,CAAC;IAChB,IAAI,CAAC,gBAAgB,GAAG,IAAA,iBAAW,GAAE,CAAC,CAAC;IACvC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,IAAI,CAAC,eAAe,CAAC,CAAC;IACtB,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC7B,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,IAAI,CAAC,0DAA0D,CAAC,CAAC;IACjE,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,CAAC,CAAC;AACX,CAAC;AAED,8EAA8E;AAEvE,KAAK,UAAU,QAAQ;IAC5B,MAAM,EAAE,GAAG,IAAA,0BAAe,EAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE7E,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,EAAE,EAAE,CAAC;QACL,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,EAAE,EAAE,CAAC;QACL,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAClD,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAEzE,MAAM,WAAW,CAAC,EAAE,CAAC,CAAC;QACtB,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;QAClB,MAAM,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,WAAW,CAAC,EAAE,CAAC,CAAC;QACtB,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;QAErB,cAAc,EAAE,CAAC;IACnB,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "workweave",
|
|
3
3
|
"description": "CLI tool that weaves scattered developer signals into a focused, prioritized workday plan",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.3.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://emin93.github.io/workweave/",
|
|
7
7
|
"repository": {
|