@masslessai/push-todo 3.2.0 → 3.2.1
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/.claude-plugin/plugin.json +1 -1
- package/lib/cli.js +1 -1
- package/package.json +1 -1
- package/scripts/postinstall.js +74 -18
package/lib/cli.js
CHANGED
|
@@ -15,7 +15,7 @@ import { ensureDaemonRunning, getDaemonStatus, startDaemon, stopDaemon } from '.
|
|
|
15
15
|
import { getScreenshotPath, screenshotExists, openScreenshot } from './utils/screenshots.js';
|
|
16
16
|
import { bold, red, cyan, dim, green } from './utils/colors.js';
|
|
17
17
|
|
|
18
|
-
const VERSION = '3.2.
|
|
18
|
+
const VERSION = '3.2.1';
|
|
19
19
|
|
|
20
20
|
const HELP_TEXT = `
|
|
21
21
|
${bold('push-todo')} - Voice tasks from Push iOS app for Claude Code
|
package/package.json
CHANGED
package/scripts/postinstall.js
CHANGED
|
@@ -31,6 +31,8 @@ const LEGACY_SKILL_LINK = join(LEGACY_SKILL_DIR, 'push-todo');
|
|
|
31
31
|
|
|
32
32
|
// OpenAI Codex locations
|
|
33
33
|
const CODEX_DIR = join(homedir(), '.codex');
|
|
34
|
+
const CODEX_SKILL_DIR = join(CODEX_DIR, 'skills', 'push-todo');
|
|
35
|
+
const CODEX_SKILL_FILE = join(CODEX_SKILL_DIR, 'SKILL.md');
|
|
34
36
|
const CODEX_AGENTS_FILE = join(CODEX_DIR, 'AGENTS.md');
|
|
35
37
|
|
|
36
38
|
// Clawdbot locations
|
|
@@ -142,7 +144,7 @@ function migrateFromPython() {
|
|
|
142
144
|
|
|
143
145
|
/**
|
|
144
146
|
* Set up OpenAI Codex integration.
|
|
145
|
-
*
|
|
147
|
+
* Creates ~/.codex/skills/push-todo/SKILL.md and updates AGENTS.md
|
|
146
148
|
*
|
|
147
149
|
* @returns {boolean} True if Codex was detected and set up
|
|
148
150
|
*/
|
|
@@ -154,12 +156,22 @@ function setupCodex() {
|
|
|
154
156
|
|
|
155
157
|
console.log('[push-todo] Detected OpenAI Codex installation');
|
|
156
158
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
+
// Skill file content
|
|
160
|
+
const SKILL_CONTENT = `# Push Tasks Skill
|
|
161
|
+
|
|
162
|
+
This skill retrieves and processes tasks sent from the Push iOS app.
|
|
163
|
+
|
|
164
|
+
## Activation
|
|
159
165
|
|
|
160
|
-
|
|
166
|
+
This skill activates when the user:
|
|
167
|
+
- Says "push-todo", "push todo", "push tasks", or "tasks from push"
|
|
168
|
+
- Runs \`$push-todo\` command
|
|
169
|
+
- Mentions "tasks from iPhone" or "mobile tasks"
|
|
170
|
+
- Asks about "pending tasks" or "voice tasks"
|
|
161
171
|
|
|
162
|
-
|
|
172
|
+
## Commands
|
|
173
|
+
|
|
174
|
+
Run these in the terminal:
|
|
163
175
|
|
|
164
176
|
| Command | Description |
|
|
165
177
|
|---------|-------------|
|
|
@@ -167,32 +179,76 @@ Voice tasks captured on iPhone via the Push app.
|
|
|
167
179
|
| \`push-todo 427\` | Show task #427 |
|
|
168
180
|
| \`push-todo connect\` | Connect/fix issues |
|
|
169
181
|
| \`push-todo search "query"\` | Search tasks |
|
|
182
|
+
| \`push-todo --help\` | All options |
|
|
170
183
|
|
|
171
|
-
|
|
184
|
+
## Instructions
|
|
172
185
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
\`\`\`
|
|
177
|
-
|
|
186
|
+
When this skill is activated:
|
|
187
|
+
|
|
188
|
+
1. **Check connection** - If user hasn't set up, run:
|
|
189
|
+
\`\`\`bash
|
|
190
|
+
push-todo connect
|
|
191
|
+
\`\`\`
|
|
192
|
+
|
|
193
|
+
2. **Fetch tasks** - List available tasks:
|
|
194
|
+
\`\`\`bash
|
|
195
|
+
push-todo
|
|
196
|
+
\`\`\`
|
|
197
|
+
|
|
198
|
+
3. **Work on specific task** - Get task details:
|
|
199
|
+
\`\`\`bash
|
|
200
|
+
push-todo 427
|
|
201
|
+
\`\`\`
|
|
202
|
+
|
|
203
|
+
4. **Present the task** to the user with a brief summary and offer to help implement it.
|
|
204
|
+
`;
|
|
205
|
+
|
|
206
|
+
// AGENTS.md bootstrap content
|
|
207
|
+
const AGENTS_SECTION = `
|
|
208
|
+
## Push Tasks Integration
|
|
209
|
+
|
|
210
|
+
At the start of each session, check for pending tasks from the Push iOS app:
|
|
211
|
+
|
|
212
|
+
1. Run this command silently:
|
|
213
|
+
\`\`\`bash
|
|
214
|
+
push-todo --json 2>/dev/null | head -1
|
|
215
|
+
\`\`\`
|
|
216
|
+
|
|
217
|
+
2. If tasks exist, inform the user:
|
|
218
|
+
"You have X task(s) from Push. Type $push-todo to see them."
|
|
219
|
+
|
|
220
|
+
3. If no output or error, proceed normally without mentioning Push.
|
|
178
221
|
`;
|
|
179
222
|
|
|
180
223
|
try {
|
|
224
|
+
// Create skill directory and SKILL.md
|
|
225
|
+
mkdirSync(CODEX_SKILL_DIR, { recursive: true });
|
|
226
|
+
writeFileSync(CODEX_SKILL_FILE, SKILL_CONTENT);
|
|
227
|
+
console.log('[push-todo] Codex: Created skills/push-todo/SKILL.md');
|
|
228
|
+
|
|
229
|
+
// Update AGENTS.md for session-start bootstrap
|
|
181
230
|
if (existsSync(CODEX_AGENTS_FILE)) {
|
|
182
231
|
const content = readFileSync(CODEX_AGENTS_FILE, 'utf8');
|
|
183
232
|
if (content.includes('Push Tasks Integration')) {
|
|
184
|
-
|
|
185
|
-
|
|
233
|
+
// Update existing section (replace old Python references)
|
|
234
|
+
const updated = content.replace(
|
|
235
|
+
/## Push Tasks Integration[\s\S]*?(?=\n## |$)/,
|
|
236
|
+
AGENTS_SECTION.trim() + '\n\n'
|
|
237
|
+
);
|
|
238
|
+
writeFileSync(CODEX_AGENTS_FILE, updated);
|
|
239
|
+
console.log('[push-todo] Codex: Updated AGENTS.md');
|
|
240
|
+
} else {
|
|
241
|
+
appendFileSync(CODEX_AGENTS_FILE, AGENTS_SECTION);
|
|
242
|
+
console.log('[push-todo] Codex: Added to AGENTS.md');
|
|
186
243
|
}
|
|
187
|
-
appendFileSync(CODEX_AGENTS_FILE, PUSH_SECTION);
|
|
188
|
-
console.log('[push-todo] Codex: Added Push section to AGENTS.md');
|
|
189
244
|
} else {
|
|
190
|
-
writeFileSync(CODEX_AGENTS_FILE,
|
|
191
|
-
console.log('[push-todo] Codex: Created AGENTS.md
|
|
245
|
+
writeFileSync(CODEX_AGENTS_FILE, AGENTS_SECTION.trim() + '\n');
|
|
246
|
+
console.log('[push-todo] Codex: Created AGENTS.md');
|
|
192
247
|
}
|
|
248
|
+
|
|
193
249
|
return true;
|
|
194
250
|
} catch (error) {
|
|
195
|
-
console.log(`[push-todo] Codex:
|
|
251
|
+
console.log(`[push-todo] Codex: Setup failed: ${error.message}`);
|
|
196
252
|
return false;
|
|
197
253
|
}
|
|
198
254
|
}
|