@fdcn/sourcefed 0.3.7 → 0.4.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.
Files changed (118) hide show
  1. package/README.md +36 -1
  2. package/dist/{chunk-E6J3BAXP.js → chunk-L4SMC2NT.js} +1165 -251
  3. package/dist/cli.js +12578 -8814
  4. package/dist/daemon.js +1025 -107
  5. package/dist/data/core/SKILL.md +9 -4
  6. package/dist/data/core/references/commands.md +6 -1
  7. package/dist/data/sourcefed/SKILL.md +3 -2
  8. package/dist/guidance.md +6 -2
  9. package/dist/mcp.js +2286 -1106
  10. package/dist/opencode.js +6 -2
  11. package/dist/pi.js +161 -39
  12. package/dist/tui-compiled.mjs +306 -166
  13. package/dist.dts/adapters/opencode/bridge.d.ts +1 -1
  14. package/dist.dts/adapters/opencode/subscriptions.d.ts +2 -2
  15. package/dist.dts/adapters/opencode/tools/monitor_create.d.ts +16 -0
  16. package/dist.dts/adapters/opencode/tui/sidebar.d.ts +1 -1
  17. package/dist.dts/adapters/pi/src/dialog.d.ts +1 -2
  18. package/dist.dts/adapters/pi/src/monitors-dialog.d.ts +32 -0
  19. package/dist.dts/adapters/pi/src/monitors-dialog.test.d.ts +1 -0
  20. package/dist.dts/packages/cli/src/commands/monitor/index.d.ts +1 -1
  21. package/dist.dts/packages/cli/src/utils/daemon.d.ts +1 -1
  22. package/dist.dts/packages/cli/src/utils/format.d.ts +1 -1
  23. package/dist.dts/packages/cli/src/utils/webhooks.d.ts +1 -1
  24. package/dist.dts/packages/core/src/events.d.ts +2 -2
  25. package/dist.dts/packages/core/src/index.d.ts +4 -4
  26. package/dist.dts/packages/core/src/monitors/index.d.ts +3 -3
  27. package/dist.dts/packages/core/src/monitors/monitor.d.ts +6 -6
  28. package/dist.dts/packages/core/src/monitors/poll/monitor.d.ts +5 -5
  29. package/dist.dts/packages/core/src/monitors/poll/types/poll-monitor-options.d.ts +1 -1
  30. package/dist.dts/packages/core/src/monitors/poll/types/poll-runner.d.ts +2 -2
  31. package/dist.dts/packages/core/src/monitors/poll/utils/event-delivery-id.d.ts +1 -1
  32. package/dist.dts/packages/core/src/monitors/poll/utils/tick.d.ts +1 -1
  33. package/dist.dts/packages/core/src/monitors/service.d.ts +3 -3
  34. package/dist.dts/packages/core/src/monitors/utils/monitor-identity.d.ts +3 -3
  35. package/dist.dts/packages/core/src/monitors/webhook/monitor.d.ts +5 -5
  36. package/dist.dts/packages/core/src/monitors/webhook/types/pending-webhook-event.d.ts +1 -1
  37. package/dist.dts/packages/core/src/monitors/webhook/types/webhook-monitor-options.d.ts +1 -1
  38. package/dist.dts/packages/core/src/monitors/webhook/utils/deliver-webhook.d.ts +2 -2
  39. package/dist.dts/packages/core/src/monitors/webhook/utils/handle-webhook.d.ts +1 -1
  40. package/dist.dts/packages/core/src/monitors/webhook/utils/heartbeat-webhooks.d.ts +2 -2
  41. package/dist.dts/packages/core/src/runtime.d.ts +3 -3
  42. package/dist.dts/packages/core/src/sources/index.d.ts +1 -1
  43. package/dist.dts/packages/core/src/sources/types/source-registry.d.ts +1 -1
  44. package/dist.dts/packages/core/src/storage/json.d.ts +2 -2
  45. package/dist.dts/packages/core/src/types/monitor-context.d.ts +2 -2
  46. package/dist.dts/packages/core/src/types/monitor-create-input.d.ts +4 -0
  47. package/dist.dts/packages/core/src/types/monitor-options.d.ts +1 -1
  48. package/dist.dts/packages/core/src/utils/event-to-text.d.ts +1 -1
  49. package/dist.dts/packages/core/src/utils/to-monitor-event.d.ts +2 -2
  50. package/dist.dts/packages/daemon/src/client.d.ts +1 -1
  51. package/dist.dts/packages/daemon/src/daemon.d.ts +3 -3
  52. package/dist.dts/packages/daemon/src/event-stream.d.ts +1 -1
  53. package/dist.dts/packages/daemon/src/event-transport.d.ts +4 -0
  54. package/dist.dts/packages/daemon/src/event-transport.test.d.ts +1 -0
  55. package/dist.dts/packages/daemon/src/fetch-isolation.test.d.ts +1 -0
  56. package/dist.dts/packages/daemon/src/index.d.ts +3 -3
  57. package/dist.dts/packages/daemon/src/registry.d.ts +6 -4
  58. package/dist.dts/packages/daemon/src/types/client.d.ts +1 -1
  59. package/dist.dts/packages/daemon/src/types/daemon.d.ts +5 -1
  60. package/dist.dts/packages/daemon/src/types/protocol.d.ts +1 -1
  61. package/dist.dts/packages/daemon/src/utils/sink.d.ts +2 -2
  62. package/dist.dts/packages/daemon/src/utils/target.d.ts +1 -1
  63. package/dist.dts/packages/mcp/src/server.d.ts +1 -1
  64. package/dist.dts/packages/mcp/src/uris.d.ts +2 -2
  65. package/dist.dts/providers/github/src/index.d.ts +1 -1
  66. package/dist.dts/providers/github/src/monitor.d.ts +6 -6
  67. package/dist.dts/providers/github/src/poll/index.d.ts +1 -1
  68. package/dist.dts/providers/github/src/poll/monitor.d.ts +2 -2
  69. package/dist.dts/providers/github/src/poll/utils/append-comments.d.ts +1 -1
  70. package/dist.dts/providers/github/src/poll/utils/append-github-ci-event.d.ts +1 -1
  71. package/dist.dts/providers/github/src/poll/utils/append-github-conflict-event.d.ts +1 -1
  72. package/dist.dts/providers/github/src/poll/utils/append-github-reviews.d.ts +1 -1
  73. package/dist.dts/providers/github/src/poll/utils/append-github-state-event.d.ts +1 -1
  74. package/dist.dts/providers/github/src/poll/utils/empty-cursor.d.ts +1 -1
  75. package/dist.dts/providers/github/src/poll/utils/poll-github.d.ts +1 -1
  76. package/dist.dts/providers/github/src/webhook/index.d.ts +2 -2
  77. package/dist.dts/providers/github/src/webhook/monitor.d.ts +2 -2
  78. package/dist.dts/providers/github/src/webhook/utils/github-event-handlers.d.ts +1 -1
  79. package/dist.dts/providers/github/src/webhook/utils/parse-github-webhook.d.ts +1 -1
  80. package/dist.dts/providers/github/src/webhook/utils/update-github-cursor.d.ts +2 -2
  81. package/dist.dts/providers/jira/src/index.d.ts +1 -1
  82. package/dist.dts/providers/jira/src/monitor.d.ts +5 -5
  83. package/dist.dts/providers/jira/src/poll/index.d.ts +1 -1
  84. package/dist.dts/providers/jira/src/poll/monitor.d.ts +2 -2
  85. package/dist.dts/providers/jira/src/poll/utils/append-jira-changelog.d.ts +1 -1
  86. package/dist.dts/providers/jira/src/poll/utils/append-jira-comments.d.ts +1 -1
  87. package/dist.dts/providers/jira/src/poll/utils/append-jira-description.d.ts +1 -1
  88. package/dist.dts/providers/jira/src/poll/utils/empty-cursor.d.ts +1 -1
  89. package/dist.dts/providers/jira/src/poll/utils/jira-changelog-event.d.ts +1 -1
  90. package/dist.dts/providers/jira/src/poll/utils/poll-jira.d.ts +1 -1
  91. package/dist.dts/providers/slack/src/index.d.ts +1 -1
  92. package/dist.dts/providers/slack/src/monitor.d.ts +6 -6
  93. package/dist.dts/providers/slack/src/poll/index.d.ts +1 -1
  94. package/dist.dts/providers/slack/src/poll/monitor.d.ts +2 -2
  95. package/dist.dts/providers/slack/src/poll/utils/parse-slack-read-result.d.ts +1 -1
  96. package/dist.dts/providers/slack/src/poll/utils/poll-slack.d.ts +1 -1
  97. package/dist.dts/providers/slack/src/webhook/index.d.ts +1 -1
  98. package/dist.dts/providers/slack/src/webhook/monitor.d.ts +2 -2
  99. package/dist.dts/providers/slack/src/webhook/utils/parse-slack-webhook.d.ts +1 -1
  100. package/dist.dts/providers/slack/src/webhook/utils/update-slack-cursor.d.ts +2 -2
  101. package/dist.dts/providers/yab/src/index.d.ts +2 -0
  102. package/dist.dts/providers/yab/src/monitor.d.ts +14 -0
  103. package/dist.dts/providers/yab/src/poll/index.d.ts +2 -0
  104. package/dist.dts/providers/yab/src/poll/monitor.d.ts +3 -0
  105. package/dist.dts/providers/yab/src/poll/utils/feed-events.d.ts +5 -0
  106. package/dist.dts/providers/yab/src/poll/utils/index.d.ts +4 -0
  107. package/dist.dts/providers/yab/src/poll/utils/parse-feed.d.ts +3 -0
  108. package/dist.dts/providers/yab/src/poll/utils/poll-yab.d.ts +7 -0
  109. package/dist.dts/providers/yab/src/poll/utils/yab-mcp.d.ts +10 -0
  110. package/dist.dts/providers/yab/src/schema.d.ts +12 -0
  111. package/dist.dts/providers/yab/src/types/cursor.d.ts +4 -0
  112. package/dist.dts/providers/yab/src/types/event.d.ts +8 -0
  113. package/dist.dts/providers/yab/src/types/feed-entry.d.ts +8 -0
  114. package/dist.dts/providers/yab/src/types/index.d.ts +5 -0
  115. package/dist.dts/providers/yab/src/types/page.d.ts +6 -0
  116. package/dist.dts/providers/yab/src/types/source-record.d.ts +7 -0
  117. package/dist.dts/providers/yab/src/yab.test.d.ts +1 -0
  118. package/package.json +27 -9
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  name: core
3
- description: Core sourcefed usage guide. Read this before creating monitors. Covers monitor creation per source (Jira issue, GitHub PR, Slack thread), event delivery and acknowledgement semantics, daemon modes, CLI usage, and troubleshooting. Use when the user asks to watch or monitor a Jira ticket, GitHub PR, Slack thread, or when sourcefed monitor events arrive in the session.
3
+ description: Core sourcefed usage guide. Read this before creating monitors. Covers monitor creation per source (Jira issue, GitHub PR, Slack thread, Yab feed), event delivery and acknowledgement semantics, daemon modes, CLI usage, and troubleshooting. Use when the user asks to watch or monitor a Jira ticket, GitHub PR, Slack thread, a feed or inbox they are signed in to in Yab, or when sourcefed monitor events arrive in the session.
4
4
  ---
5
5
 
6
6
  # Sourcefed core
7
7
 
8
- Sourcefed lets you create **monitors** that watch a Jira issue, GitHub PR, or
9
- Slack thread or direct-message conversation and route NEW events into the session you're currently working in,
8
+ Sourcefed lets you create **monitors** that watch a Jira issue, GitHub PR,
9
+ Slack thread or direct-message conversation, or a feed read through Yab, and route NEW events into the session you're currently working in,
10
10
  so you can react to them as they happen.
11
11
 
12
12
  Every monitor is detect-only: it routes events into the session and never
@@ -21,6 +21,7 @@ affect that session's monitors.
21
21
  - **GitHub PR**: `monitor_create({ name: "PR #42", sourceType: "github", repo: "owner/repo", prNumber: 42 })`
22
22
  - **Slack thread**: `monitor_create({ name: "thread", sourceType: "slack", threadUrl: "<thread-url>" })`
23
23
  - **Whole Slack DM**: `monitor_create({ name: "DM with Alex", sourceType: "slack", channelId: "D0123456789" })`
24
+ - **Yab feed**: `monitor_create({ name: "inbox", sourceType: "yab", url: "https://mail.google.com/mail/u/0/feed/atom", space: "Personal", match: "interview|offer", exclude: "newsletter" })`
24
25
 
25
26
  You will be notified of:
26
27
 
@@ -30,9 +31,13 @@ You will be notified of:
30
31
  - **Slack thread**: new replies in the thread.
31
32
  - **Slack DM**: new top-level messages in the DM. Slack monitors are always detect-only
32
33
  and never reply.
34
+ - **Yab feed**: each new entry of an Atom, RSS or JSON feed, read through the user's Yab
35
+ browser with their sign-ins (so private feeds like Gmail's unread-inbox feed work).
36
+ `space` picks the Yab space; `match`/`exclude` are case-insensitive regexes over the
37
+ entry's title, summary and author. Yab must be running.
33
38
 
34
39
  GitHub and Slack use webhook delivery when configured and fall back to polling
35
- when unavailable. Jira always uses polling. You can lower `pollIntervalSec`
40
+ when unavailable. Jira and Yab always use polling. You can lower `pollIntervalSec`
36
41
  (min 15) for time-sensitive work, but prefer the default to avoid hammering
37
42
  APIs.
38
43
 
@@ -26,13 +26,17 @@ sourcefed skills path [name] Print skill directory path
26
26
 
27
27
  ```text
28
28
  --name NAME Human-readable monitor name (defaults to the source type)
29
- --source-type TYPE jira | github | slack
29
+ --source-type TYPE jira | github | slack | yab
30
30
  --issue-key KEY Jira issue key (jira)
31
31
  --repo OWNER/NAME GitHub repository (github)
32
32
  --pr-number N GitHub PR number (github)
33
33
  --channel-id ID Slack channel or DM ID; a D… ID alone monitors the whole DM
34
34
  --thread-ts TS Slack parent message timestamp; omit for a whole-DM monitor
35
35
  --thread-url URL Slack thread URL (slack)
36
+ --url URL Atom, RSS or JSON feed URL read through Yab (yab)
37
+ --space NAME Yab space whose sign-ins to use (yab)
38
+ --match REGEX Only deliver entries matching this case-insensitive regex (yab)
39
+ --exclude REGEX Skip entries matching this case-insensitive regex (yab)
36
40
  --poll-interval-sec N Poll interval in seconds (min 15)
37
41
  --target-kind KIND Target kind for ownership scoping (default: cli)
38
42
  --target-id ID Target id for ownership scoping (default: hostname)
@@ -54,6 +58,7 @@ SOURCEFED_JIRA_TERMINAL_STATUS Jira status that auto-removes monitors
54
58
  GH_TOKEN / GITHUB_TOKEN GitHub token for direct API polling
55
59
  SOURCEFED_GITHUB_WEBHOOK_SECRET GitHub webhook secret (enables webhooks)
56
60
  SOURCEFED_SLACK_SIGNING_SECRET Slack signing secret (enables webhooks)
61
+ SOURCEFED_YAB_COMMAND Yab binary for yab monitors (default /Applications/yab.app/Contents/MacOS/yab)
57
62
  SOURCEFED_SKILLS_DIR Override the bundled skills directory
58
63
  ```
59
64
 
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: sourcefed
3
- description: Live Jira, GitHub, and Slack monitoring for agent hosts. Create monitors that route new issue comments, PR reviews, CI failures, and Slack thread or DM messages into the current session as they happen.
3
+ description: Live Jira, GitHub, Slack, and Yab feed monitoring for agent hosts. Create monitors that route new issue comments, PR reviews, CI failures, Slack thread or DM messages, and new entries of feeds read through Yab into the current session as they happen.
4
4
  hidden: true
5
5
  ---
6
6
 
7
7
  # Sourcefed
8
8
 
9
9
  Sourcefed turns external collaboration threads into live agent input: create a
10
- monitor for a Jira issue, GitHub PR, Slack thread, or Slack DM and NEW events are routed
10
+ monitor for a Jira issue, GitHub PR, Slack thread, Slack DM, or a feed read through Yab and NEW events are routed
11
11
  into the session you are working in, so you can react to them as they happen.
12
12
 
13
13
  This file is a discovery stub, not the usage guide. Before running any
@@ -25,6 +25,7 @@ releases, which is why it just points at `skills get core`.
25
25
  ## When to load this skill
26
26
 
27
27
  - A user asks to monitor a Jira ticket, GitHub PR, Slack thread, or Slack DM.
28
+ - A user wants to hear about new entries in a feed or inbox they are signed in to in Yab.
28
29
  - You found or are working on a Jira ticket, PR, thread, or DM and want new
29
30
  activity routed into your session.
30
31
  - You opened a PR and want to be notified of reviews, comments, CI failures,
package/dist/guidance.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # sourcefed monitors
2
2
 
3
- Monitors watch a Jira issue, GitHub PR, or Slack thread and bring new events into this session.
3
+ Monitors watch a Jira issue, GitHub PR, Slack thread, or a feed read through Yab and bring new events
4
+ into this session.
4
5
 
5
6
  Create one with `monitor_create` when:
6
7
 
@@ -9,7 +10,10 @@ Create one with `monitor_create` when:
9
10
  - your branch has a PR: `{ name: "<pr>", sourceType: "github", repo: "owner/name", prNumber: 42 }`
10
11
  (reviews, comments, CI failures, conflicts, merge or close);
11
12
  - you were given a Slack thread: `{ name: "<thread>", sourceType: "slack", threadUrl: "<url>" }`
12
- (new messages; read-only, never replies).
13
+ (new messages; read-only, never replies);
14
+ - the user wants new entries of a feed they are signed in to in Yab (unread Gmail, a job board's RSS):
15
+ `{ name: "<feed>", sourceType: "yab", url: "https://mail.google.com/mail/u/0/feed/atom", space: "Personal", match: "interview|offer" }`
16
+ (each new entry; `match`/`exclude` are case-insensitive regexes; Yab must be running).
13
17
 
14
18
  Keep the default `pollIntervalSec` unless the work is time-sensitive (min 15).
15
19
  `monitor_list`, `monitor_status { id }` and `monitor_stop { id }` act on this session's monitors.