reeboot 1.0.0 → 1.3.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.
Files changed (112) hide show
  1. package/README.md +218 -7
  2. package/dist/channels/signal.d.ts +13 -0
  3. package/dist/channels/signal.d.ts.map +1 -1
  4. package/dist/channels/signal.js +54 -0
  5. package/dist/channels/signal.js.map +1 -1
  6. package/dist/channels/whatsapp.d.ts +14 -0
  7. package/dist/channels/whatsapp.d.ts.map +1 -1
  8. package/dist/channels/whatsapp.js +51 -0
  9. package/dist/channels/whatsapp.js.map +1 -1
  10. package/dist/config.d.ts +112 -0
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +18 -0
  13. package/dist/config.js.map +1 -1
  14. package/dist/db/schema.d.ts +96 -0
  15. package/dist/db/schema.d.ts.map +1 -1
  16. package/dist/db/schema.js +69 -0
  17. package/dist/db/schema.js.map +1 -1
  18. package/dist/extensions/loader.d.ts.map +1 -1
  19. package/dist/extensions/loader.js +16 -0
  20. package/dist/extensions/loader.js.map +1 -1
  21. package/dist/index.d.ts +30 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +132 -7
  24. package/dist/index.js.map +1 -1
  25. package/dist/orchestrator.d.ts +7 -0
  26. package/dist/orchestrator.d.ts.map +1 -1
  27. package/dist/orchestrator.js +30 -0
  28. package/dist/orchestrator.js.map +1 -1
  29. package/dist/scheduler/heartbeat.d.ts +27 -0
  30. package/dist/scheduler/heartbeat.d.ts.map +1 -0
  31. package/dist/scheduler/heartbeat.js +74 -0
  32. package/dist/scheduler/heartbeat.js.map +1 -0
  33. package/dist/scheduler/parse.d.ts +42 -0
  34. package/dist/scheduler/parse.d.ts.map +1 -0
  35. package/dist/scheduler/parse.js +119 -0
  36. package/dist/scheduler/parse.js.map +1 -0
  37. package/dist/scheduler-registry.d.ts +7 -3
  38. package/dist/scheduler-registry.d.ts.map +1 -1
  39. package/dist/scheduler-registry.js +3 -0
  40. package/dist/scheduler-registry.js.map +1 -1
  41. package/dist/scheduler.d.ts +71 -15
  42. package/dist/scheduler.d.ts.map +1 -1
  43. package/dist/scheduler.js +304 -64
  44. package/dist/scheduler.js.map +1 -1
  45. package/dist/server.d.ts.map +1 -1
  46. package/dist/server.js +18 -4
  47. package/dist/server.js.map +1 -1
  48. package/dist/setup-wizard.d.ts +5 -0
  49. package/dist/setup-wizard.d.ts.map +1 -1
  50. package/dist/setup-wizard.js +23 -69
  51. package/dist/setup-wizard.js.map +1 -1
  52. package/dist/skills-cli.d.ts +22 -0
  53. package/dist/skills-cli.d.ts.map +1 -0
  54. package/dist/skills-cli.js +56 -0
  55. package/dist/skills-cli.js.map +1 -0
  56. package/dist/utils/atomic-config.d.ts +7 -0
  57. package/dist/utils/atomic-config.d.ts.map +1 -0
  58. package/dist/utils/atomic-config.js +10 -0
  59. package/dist/utils/atomic-config.js.map +1 -0
  60. package/dist/utils/docker.d.ts +10 -0
  61. package/dist/utils/docker.d.ts.map +1 -0
  62. package/dist/utils/docker.js +27 -0
  63. package/dist/utils/docker.js.map +1 -0
  64. package/dist/wizard/index.d.ts +21 -0
  65. package/dist/wizard/index.d.ts.map +1 -0
  66. package/dist/wizard/index.js +101 -0
  67. package/dist/wizard/index.js.map +1 -0
  68. package/dist/wizard/prompter.d.ts +48 -0
  69. package/dist/wizard/prompter.d.ts.map +1 -0
  70. package/dist/wizard/prompter.js +62 -0
  71. package/dist/wizard/prompter.js.map +1 -0
  72. package/dist/wizard/steps/channels.d.ts +20 -0
  73. package/dist/wizard/steps/channels.d.ts.map +1 -0
  74. package/dist/wizard/steps/channels.js +215 -0
  75. package/dist/wizard/steps/channels.js.map +1 -0
  76. package/dist/wizard/steps/launch.d.ts +20 -0
  77. package/dist/wizard/steps/launch.d.ts.map +1 -0
  78. package/dist/wizard/steps/launch.js +82 -0
  79. package/dist/wizard/steps/launch.js.map +1 -0
  80. package/dist/wizard/steps/name.d.ts +9 -0
  81. package/dist/wizard/steps/name.d.ts.map +1 -0
  82. package/dist/wizard/steps/name.js +16 -0
  83. package/dist/wizard/steps/name.js.map +1 -0
  84. package/dist/wizard/steps/provider.d.ts +22 -0
  85. package/dist/wizard/steps/provider.d.ts.map +1 -0
  86. package/dist/wizard/steps/provider.js +134 -0
  87. package/dist/wizard/steps/provider.js.map +1 -0
  88. package/dist/wizard/steps/web-search.d.ts +10 -0
  89. package/dist/wizard/steps/web-search.d.ts.map +1 -0
  90. package/dist/wizard/steps/web-search.js +84 -0
  91. package/dist/wizard/steps/web-search.js.map +1 -0
  92. package/extensions/scheduler-tool.ts +360 -8
  93. package/extensions/skill-manager.ts +421 -0
  94. package/extensions/web-search.ts +466 -0
  95. package/package.json +5 -3
  96. package/skills/docker/SKILL.md +131 -0
  97. package/skills/files/SKILL.md +94 -0
  98. package/skills/gcal/SKILL.md +69 -0
  99. package/skills/gdrive/SKILL.md +65 -0
  100. package/skills/github/SKILL.md +80 -0
  101. package/skills/gmail/SKILL.md +68 -0
  102. package/skills/hubspot/SKILL.md +77 -0
  103. package/skills/linear/SKILL.md +78 -0
  104. package/skills/notion/SKILL.md +85 -0
  105. package/skills/postgres/SKILL.md +75 -0
  106. package/skills/reeboot-tasks/SKILL.md +98 -0
  107. package/skills/send-message/SKILL.md +52 -14
  108. package/skills/slack/SKILL.md +74 -0
  109. package/skills/sqlite/SKILL.md +85 -0
  110. package/skills/web-research/SKILL.md +47 -0
  111. package/templates/models-ollama.json +16 -0
  112. package/skills/web-search/SKILL.md +0 -32
package/dist/config.js CHANGED
@@ -27,6 +27,11 @@ const ExtensionsCoreConfigSchema = z.object({
27
27
  const ExtensionsConfigSchema = z.object({
28
28
  core: ExtensionsCoreConfigSchema.default({}),
29
29
  });
30
+ const SkillsConfigSchema = z.object({
31
+ permanent: z.array(z.string()).default([]),
32
+ ephemeral_ttl_minutes: z.number().int().min(1).default(60),
33
+ catalog_path: z.string().default(''),
34
+ });
30
35
  const WebChannelSchema = z.object({
31
36
  enabled: z.boolean().default(true),
32
37
  port: z.number().int().default(3000),
@@ -69,6 +74,16 @@ const CredentialProxyConfigSchema = z.object({
69
74
  enabled: z.boolean().default(false),
70
75
  port: z.number().int().default(3001),
71
76
  });
77
+ const SearchConfigSchema = z.object({
78
+ provider: z.enum(['none', 'duckduckgo', 'brave', 'tavily', 'serper', 'exa', 'searxng']).default('none'),
79
+ apiKey: z.string().default(''),
80
+ searxngBaseUrl: z.string().default('http://localhost:4000'),
81
+ });
82
+ const HeartbeatConfigSchema = z.object({
83
+ enabled: z.boolean().default(false),
84
+ interval: z.string().default('every 5m'),
85
+ contextId: z.string().default('main'),
86
+ });
72
87
  export const ConfigSchema = z.object({
73
88
  agent: AgentConfigSchema.default({}),
74
89
  channels: ChannelsConfigSchema.default({}),
@@ -79,6 +94,9 @@ export const ConfigSchema = z.object({
79
94
  routing: RoutingConfigSchema.default({}),
80
95
  session: SessionConfigSchema.default({}),
81
96
  credentialProxy: CredentialProxyConfigSchema.default({}),
97
+ search: SearchConfigSchema.default({}),
98
+ heartbeat: HeartbeatConfigSchema.default({}),
99
+ skills: SkillsConfigSchema.default({}),
82
100
  });
83
101
  // ─── Defaults ────────────────────────────────────────────────────────────────
84
102
  export const defaultConfig = ConfigSchema.parse({});
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAU,OAAO,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,gFAAgF;AAEhF,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAChC,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ;CACzD,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC9C,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC1C,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC1C,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACvC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC5C,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACzC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,0BAA0B,CAAC,OAAO,CAAC,EAAE,CAAC;CAC7C,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACrC,CAAC,CAAC;AAGH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACpC,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACvC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CAC7C,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,GAAG,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,QAAQ,EAAE,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3C,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;CACxC,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;CAC7C,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;CACpF,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC;IAChC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACnD,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;CACvD,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC9C,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU;CACpE,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACvG,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC;CAC5D,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;CACtC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;IACpC,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,UAAU,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9C,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,eAAe,EAAE,2BAA2B,CAAC,OAAO,CAAC,EAAE,CAAC;IACxD,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,SAAS,EAAE,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;CACvC,CAAC,CAAC;AAMH,gFAAgF;AAEhF,MAAM,CAAC,MAAM,aAAa,GAAW,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAE5D,gFAAgF;AAEhF,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AACpD,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,UAAU,CAAC,UAAmB;IAC5C,MAAM,IAAI,GAAG,UAAU,IAAI,oBAAoB,EAAE,CAAC;IAElD,IAAI,GAAG,GAAY,EAAE,CAAC;IAEtB,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,kFAAkF;IAClF,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEvC,uCAAuC;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACjB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAClC,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,iBAA+C,CAAC;QAC1E,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACtD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,UAAmB;IAC5D,MAAM,IAAI,GAAG,UAAU,IAAI,oBAAoB,EAAE,CAAC;IAElD,0BAA0B;IAC1B,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE3B,0BAA0B;IAC1B,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9C,wEAAwE;IACxE,0EAA0E;IAC1E,8EAA8E;IAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,mBAAmB,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC9E,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACjE,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC"}
@@ -405,4 +405,100 @@ export declare const usage: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
405
405
  };
406
406
  dialect: "sqlite";
407
407
  }>;
408
+ export declare const taskRuns: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
409
+ name: "task_runs";
410
+ schema: undefined;
411
+ columns: {
412
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
413
+ name: "id";
414
+ tableName: "task_runs";
415
+ dataType: "string";
416
+ columnType: "SQLiteText";
417
+ data: string;
418
+ driverParam: string;
419
+ notNull: true;
420
+ hasDefault: false;
421
+ enumValues: [string, ...string[]];
422
+ baseColumn: never;
423
+ }, object>;
424
+ taskId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
425
+ name: "task_id";
426
+ tableName: "task_runs";
427
+ dataType: "string";
428
+ columnType: "SQLiteText";
429
+ data: string;
430
+ driverParam: string;
431
+ notNull: true;
432
+ hasDefault: false;
433
+ enumValues: [string, ...string[]];
434
+ baseColumn: never;
435
+ }, object>;
436
+ runAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
437
+ name: "run_at";
438
+ tableName: "task_runs";
439
+ dataType: "string";
440
+ columnType: "SQLiteText";
441
+ data: string;
442
+ driverParam: string;
443
+ notNull: true;
444
+ hasDefault: true;
445
+ enumValues: [string, ...string[]];
446
+ baseColumn: never;
447
+ }, object>;
448
+ durationMs: import("drizzle-orm/sqlite-core").SQLiteColumn<{
449
+ name: "duration_ms";
450
+ tableName: "task_runs";
451
+ dataType: "number";
452
+ columnType: "SQLiteInteger";
453
+ data: number;
454
+ driverParam: number;
455
+ notNull: true;
456
+ hasDefault: true;
457
+ enumValues: undefined;
458
+ baseColumn: never;
459
+ }, object>;
460
+ status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
461
+ name: "status";
462
+ tableName: "task_runs";
463
+ dataType: "string";
464
+ columnType: "SQLiteText";
465
+ data: string;
466
+ driverParam: string;
467
+ notNull: true;
468
+ hasDefault: false;
469
+ enumValues: [string, ...string[]];
470
+ baseColumn: never;
471
+ }, object>;
472
+ result: import("drizzle-orm/sqlite-core").SQLiteColumn<{
473
+ name: "result";
474
+ tableName: "task_runs";
475
+ dataType: "string";
476
+ columnType: "SQLiteText";
477
+ data: string;
478
+ driverParam: string;
479
+ notNull: false;
480
+ hasDefault: false;
481
+ enumValues: [string, ...string[]];
482
+ baseColumn: never;
483
+ }, object>;
484
+ error: import("drizzle-orm/sqlite-core").SQLiteColumn<{
485
+ name: "error";
486
+ tableName: "task_runs";
487
+ dataType: "string";
488
+ columnType: "SQLiteText";
489
+ data: string;
490
+ driverParam: string;
491
+ notNull: false;
492
+ hasDefault: false;
493
+ enumValues: [string, ...string[]];
494
+ baseColumn: never;
495
+ }, object>;
496
+ };
497
+ dialect: "sqlite";
498
+ }>;
499
+ /**
500
+ * Runs an idempotent migration to add new columns to the tasks table and
501
+ * create the task_runs table. Safe to call multiple times.
502
+ */
503
+ export declare function runMigration(db: import('better-sqlite3').Database): void;
408
504
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOnB,CAAC;AAIH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWnB,CAAC;AAIH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUhB,CAAC;AAIH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKnB,CAAC;AAIH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAShB,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOnB,CAAC;AAIH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWnB,CAAC;AAIH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUhB,CAAC;AAIH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKnB,CAAC;AAIH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAShB,CAAC;AAIH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQnB,CAAC;AAIH;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,gBAAgB,EAAE,QAAQ,GAAG,IAAI,CAqCxE"}
package/dist/db/schema.js CHANGED
@@ -52,4 +52,73 @@ export const usage = sqliteTable('usage', {
52
52
  model: text('model').notNull(),
53
53
  createdAt: text('created_at').notNull().default(sql `(datetime('now'))`),
54
54
  });
55
+ // ─── task_runs ───────────────────────────────────────────────────────────────
56
+ export const taskRuns = sqliteTable('task_runs', {
57
+ id: text('id').primaryKey(),
58
+ taskId: text('task_id').notNull().references(() => tasks.id),
59
+ runAt: text('run_at').notNull().default(sql `(datetime('now'))`),
60
+ durationMs: integer('duration_ms').notNull().default(0),
61
+ status: text('status').notNull(), // 'success' | 'error'
62
+ result: text('result'),
63
+ error: text('error'),
64
+ });
65
+ // ─── Migration ───────────────────────────────────────────────────────────────
66
+ /**
67
+ * Runs an idempotent migration to add new columns to the tasks table and
68
+ * create the task_runs table. Safe to call multiple times.
69
+ */
70
+ export function runMigration(db) {
71
+ // Get existing columns on tasks table
72
+ const existingCols = new Set(db.pragma('table_info(tasks)').map((c) => c.name));
73
+ const newColumns = [
74
+ { name: 'schedule_type', definition: "TEXT NOT NULL DEFAULT 'cron'" },
75
+ { name: 'schedule_value', definition: "TEXT NOT NULL DEFAULT ''" },
76
+ { name: 'normalized_ms', definition: 'INTEGER' },
77
+ { name: 'status', definition: "TEXT NOT NULL DEFAULT 'active'" },
78
+ { name: 'next_run', definition: 'TEXT' },
79
+ { name: 'last_result', definition: 'TEXT' },
80
+ { name: 'context_mode', definition: "TEXT NOT NULL DEFAULT 'shared'" },
81
+ ];
82
+ for (const col of newColumns) {
83
+ if (!existingCols.has(col.name)) {
84
+ db.exec(`ALTER TABLE tasks ADD COLUMN ${col.name} ${col.definition}`);
85
+ }
86
+ }
87
+ // Create task_runs table if it doesn't exist
88
+ db.exec(`
89
+ CREATE TABLE IF NOT EXISTS task_runs (
90
+ id TEXT PRIMARY KEY,
91
+ task_id TEXT NOT NULL REFERENCES tasks(id),
92
+ run_at TEXT NOT NULL DEFAULT (datetime('now')),
93
+ duration_ms INTEGER NOT NULL DEFAULT 0,
94
+ status TEXT NOT NULL,
95
+ result TEXT,
96
+ error TEXT
97
+ )
98
+ `);
99
+ // Compute next_run for existing cron tasks that lack it
100
+ _computeMissingNextRuns(db);
101
+ }
102
+ /**
103
+ * For legacy rows where schedule_type='cron' and next_run is NULL,
104
+ * compute next_run from the schedule column using cron-parser.
105
+ */
106
+ function _computeMissingNextRuns(db) {
107
+ const { parseExpression } = require('cron-parser');
108
+ const rows = db
109
+ .prepare("SELECT id, schedule, schedule_value FROM tasks WHERE schedule_type = 'cron' AND next_run IS NULL")
110
+ .all();
111
+ const update = db.prepare("UPDATE tasks SET next_run = ? WHERE id = ?");
112
+ for (const row of rows) {
113
+ const expr = row.schedule_value || row.schedule;
114
+ try {
115
+ const next = parseExpression(expr).next().toDate().toISOString();
116
+ update.run(next, row.id);
117
+ }
118
+ catch {
119
+ // If cron expression is invalid, set next_run to now so it runs on next poll
120
+ update.run(new Date().toISOString(), row.id);
121
+ }
122
+ }
123
+ }
55
124
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/extensions/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAItE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAclE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAmFtE;AAID,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAkBnF"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/extensions/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAItE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAclE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAmGtE;AAID,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAkBnF"}
@@ -34,6 +34,8 @@ export function getBundledFactories(config) {
34
34
  const compactionEnabled = core.custom_compaction ?? true;
35
35
  const schedulerEnabled = core.scheduler_tool ?? true;
36
36
  const tokenMeterEnabled = core.token_meter ?? true;
37
+ const webSearchEnabled = core.web_search ?? true;
38
+ const skillManagerEnabled = core.skill_manager ?? true;
37
39
  const factories = [];
38
40
  // Note: sandbox requires its own npm install (has a package.json).
39
41
  // We load it as a factory only when enabled AND its index.ts is resolvable.
@@ -101,6 +103,20 @@ export function getBundledFactories(config) {
101
103
  mod.default(pi);
102
104
  });
103
105
  }
106
+ if (webSearchEnabled) {
107
+ factories.push(async (pi) => {
108
+ const mod = await import(join(BUNDLED_EXTENSIONS_DIR, 'web-search.ts')).catch(() => null);
109
+ if (mod?.default)
110
+ await mod.default(pi);
111
+ });
112
+ }
113
+ if (skillManagerEnabled) {
114
+ factories.push(async (pi) => {
115
+ const mod = await import(join(BUNDLED_EXTENSIONS_DIR, 'skill-manager.ts')).catch(() => null);
116
+ if (mod?.default)
117
+ await mod.default(pi, config);
118
+ });
119
+ }
104
120
  return factories;
105
121
  }
106
122
  // ─── createLoader ─────────────────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/extensions/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/extensions/loader.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,32 @@
1
1
  #!/usr/bin/env node
2
- export {};
2
+ import type { Prompter } from './wizard/prompter.js';
3
+ /**
4
+ * Exported for testing: determines whether to run the wizard or start the agent.
5
+ * Checks config path existence (using REEBOOT_CONFIG_PATH env var if set).
6
+ */
7
+ export interface DefaultActionDeps {
8
+ runWizard?: (opts: {
9
+ configPath: string;
10
+ }) => Promise<void>;
11
+ startAgent?: (configPath: string) => Promise<void>;
12
+ }
13
+ export declare function handleDefaultAction(opts?: {
14
+ configPath?: string;
15
+ _deps?: DefaultActionDeps;
16
+ }): Promise<void>;
17
+ /**
18
+ * Exported for testing: `reeboot setup` handler.
19
+ * If config exists, prompts for overwrite confirmation before running wizard.
20
+ */
21
+ export interface SetupCommandDeps {
22
+ runWizard?: (opts: {
23
+ configPath: string;
24
+ prompter?: Prompter;
25
+ }) => Promise<void>;
26
+ }
27
+ export declare function runSetupCommand(opts?: {
28
+ configPath?: string;
29
+ prompter?: Prompter;
30
+ _deps?: SetupCommandDeps;
31
+ }): Promise<void>;
3
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAWrD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACnD;AAED,wBAAsB,mBAAmB,CAAC,IAAI,GAAE;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,iBAAiB,CAAA;CACrB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BrB;AAID;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACjF;AAED,wBAAsB,eAAe,CAAC,IAAI,GAAE;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,gBAAgB,CAAC;CACrB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmCrB"}
package/dist/index.js CHANGED
@@ -8,6 +8,75 @@ program
8
8
  .name('reeboot')
9
9
  .description('Personal AI agent running locally')
10
10
  .version('0.0.1');
11
+ export async function handleDefaultAction(opts = {}) {
12
+ const configPath = opts.configPath
13
+ ?? process.env.REEBOOT_CONFIG_PATH
14
+ ?? join(homedir(), '.reeboot', 'config.json');
15
+ const deps = opts._deps ?? {};
16
+ if (!existsSync(configPath)) {
17
+ if (deps.runWizard) {
18
+ await deps.runWizard({ configPath });
19
+ }
20
+ else {
21
+ const { runSetupWizard } = await import('./wizard/index.js');
22
+ await runSetupWizard({ configPath });
23
+ }
24
+ }
25
+ else {
26
+ if (deps.startAgent) {
27
+ await deps.startAgent(configPath);
28
+ }
29
+ else {
30
+ const { loadConfig } = await import('./config.js');
31
+ const { startServer } = await import('./server.js');
32
+ const config = loadConfig(configPath);
33
+ await startServer({
34
+ port: config.channels.web.port,
35
+ host: process.env.REEBOOT_HOST ?? '127.0.0.1',
36
+ logLevel: config.logging.level,
37
+ token: config.server.token,
38
+ config,
39
+ });
40
+ console.log(`✓ WebChat ready at http://localhost:${config.channels.web.port}`);
41
+ }
42
+ }
43
+ }
44
+ export async function runSetupCommand(opts = {}) {
45
+ const configPath = opts.configPath
46
+ ?? process.env.REEBOOT_CONFIG_PATH
47
+ ?? join(homedir(), '.reeboot', 'config.json');
48
+ if (existsSync(configPath)) {
49
+ let confirmed;
50
+ if (opts.prompter) {
51
+ confirmed = await opts.prompter.confirm({
52
+ message: 'Config already exists. Overwrite?',
53
+ default: false,
54
+ });
55
+ }
56
+ else {
57
+ const { default: inquirer } = await import('inquirer');
58
+ const { overwrite } = await inquirer.prompt([{
59
+ type: 'confirm',
60
+ name: 'overwrite',
61
+ message: 'Config already exists. Overwrite?',
62
+ default: false,
63
+ }]);
64
+ confirmed = overwrite;
65
+ }
66
+ if (!confirmed) {
67
+ console.log('Setup cancelled. Existing config preserved.');
68
+ return;
69
+ }
70
+ }
71
+ const deps = opts._deps ?? {};
72
+ if (deps.runWizard) {
73
+ await deps.runWizard({ configPath, prompter: opts.prompter });
74
+ }
75
+ else {
76
+ const { runSetupWizard } = await import('./wizard/index.js');
77
+ await runSetupWizard({ configPath, prompter: opts.prompter });
78
+ }
79
+ }
11
80
  // ─── start ───────────────────────────────────────────────────────────────────
12
81
  program
13
82
  .command('start')
@@ -48,8 +117,6 @@ program
48
117
  console.log(`Starting reeboot on port ${config.channels.web.port}...`);
49
118
  await startServer({
50
119
  port: config.channels.web.port,
51
- // Allow overriding the bind host via env var so Docker containers can
52
- // bind 0.0.0.0 without changing config.json.
53
120
  host: process.env.REEBOOT_HOST ?? '127.0.0.1',
54
121
  logLevel: config.logging.level,
55
122
  token: config.server.token,
@@ -85,8 +152,13 @@ program
85
152
  .option('--channels <channels>', 'Channels comma-separated')
86
153
  .option('--name <name>', 'Agent name')
87
154
  .action(async (opts) => {
88
- const { runWizard } = await import('./setup-wizard.js');
89
- await runWizard({ interactive: opts.interactive ?? true, ...opts });
155
+ await runSetupCommand({ configPath: undefined });
156
+ // Note: interactive opts handled inside runSetupCommand/runSetupWizard
157
+ });
158
+ // ─── default action (no subcommand) ──────────────────────────────────────────
159
+ program
160
+ .action(async () => {
161
+ await handleDefaultAction();
90
162
  });
91
163
  // ─── status ──────────────────────────────────────────────────────────────────
92
164
  program
@@ -389,8 +461,6 @@ channels
389
461
  console.log(' (b) Link an existing Signal account (scan QR in terminal)');
390
462
  const choice = (await ask('\nEnter (a) or (b): ')).trim().toLowerCase();
391
463
  if (choice === 'b') {
392
- // Get the sgnl:// URI directly from signal-cli inside the container
393
- // then render it as ASCII QR — no external tools needed
394
464
  console.log('\n📱 Generating QR code...\n');
395
465
  const linkProc = spawn('docker', [
396
466
  'exec', 'signal-cli-rest-api',
@@ -551,7 +621,62 @@ sessions
551
621
  .action(() => {
552
622
  console.log('sessions list: not yet implemented');
553
623
  });
554
- // ─── Error on unknown commands ───────────────────────────────────────────────
624
+ // ─── tasks ───────────────────────────────────────────────────────────────────
625
+ const tasks = program
626
+ .command('tasks')
627
+ .description('Task management commands');
628
+ tasks
629
+ .command('due')
630
+ .description('List overdue scheduled tasks')
631
+ .action(async () => {
632
+ const { join } = await import('path');
633
+ const { homedir } = await import('os');
634
+ const Database = (await import('better-sqlite3')).default;
635
+ const { runMigration } = await import('./db/schema.js');
636
+ const { getTasksDue, formatTasksDue } = await import('./scheduler.js');
637
+ const dbPath = join(homedir(), '.reeboot', 'reeboot.db');
638
+ let db;
639
+ try {
640
+ db = new Database(dbPath, { readonly: true });
641
+ }
642
+ catch {
643
+ console.error('No reeboot database found. Run "reeboot start" first.');
644
+ process.exit(1);
645
+ }
646
+ const due = getTasksDue(db);
647
+ console.log(formatTasksDue(due));
648
+ db.close();
649
+ });
650
+ // ─── skills ──────────────────────────────────────────────────────────────────
651
+ const skillsCmd = program
652
+ .command('skills')
653
+ .description('Skill catalog commands');
654
+ skillsCmd
655
+ .command('list')
656
+ .description('List all bundled skills')
657
+ .action(async () => {
658
+ const { fileURLToPath } = await import('url');
659
+ const { dirname, join } = await import('path');
660
+ const { printSkillsList } = await import('./skills-cli.js');
661
+ const __filename = fileURLToPath(import.meta.url);
662
+ const __dirname = dirname(__filename);
663
+ const skillsDir = join(__dirname, '..', 'skills');
664
+ printSkillsList(skillsDir);
665
+ process.exit(0);
666
+ });
667
+ skillsCmd
668
+ .command('update')
669
+ .description('Update extended skill catalog')
670
+ .action(async () => {
671
+ const { fileURLToPath } = await import('url');
672
+ const { dirname, join } = await import('path');
673
+ const { getSkillsUpdateMessage } = await import('./skills-cli.js');
674
+ const __filename = fileURLToPath(import.meta.url);
675
+ const __dirname = dirname(__filename);
676
+ const skillsDir = join(__dirname, '..', 'skills');
677
+ console.log(getSkillsUpdateMessage(skillsDir));
678
+ process.exit(0);
679
+ });
555
680
  program.on('command:*', () => {
556
681
  console.error(`Unknown command: ${program.args.join(' ')}`);
557
682
  console.error('Run "reeboot --help" for available commands.');