cronies-cli 0.1.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 (64) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +33 -0
  3. package/dist/bin/cronies.d.ts +3 -0
  4. package/dist/bin/cronies.d.ts.map +1 -0
  5. package/dist/chunk-FVB2S2MS.js +4229 -0
  6. package/dist/cronies.js +331 -0
  7. package/dist/index.js +189 -0
  8. package/dist/src/adapters/index.d.ts +2 -0
  9. package/dist/src/adapters/index.d.ts.map +1 -0
  10. package/dist/src/adapters/manager.d.ts +6 -0
  11. package/dist/src/adapters/manager.d.ts.map +1 -0
  12. package/dist/src/cli/index.d.ts +3 -0
  13. package/dist/src/cli/index.d.ts.map +1 -0
  14. package/dist/src/config/index.d.ts +4 -0
  15. package/dist/src/config/index.d.ts.map +1 -0
  16. package/dist/src/config/loader.d.ts +13 -0
  17. package/dist/src/config/loader.d.ts.map +1 -0
  18. package/dist/src/config/schema.d.ts +160 -0
  19. package/dist/src/config/schema.d.ts.map +1 -0
  20. package/dist/src/config/writer.d.ts +17 -0
  21. package/dist/src/config/writer.d.ts.map +1 -0
  22. package/dist/src/daemon.d.ts +11 -0
  23. package/dist/src/daemon.d.ts.map +1 -0
  24. package/dist/src/index.d.ts +14 -0
  25. package/dist/src/index.d.ts.map +1 -0
  26. package/dist/src/logger.d.ts +13 -0
  27. package/dist/src/logger.d.ts.map +1 -0
  28. package/dist/src/orchestrator/health.d.ts +20 -0
  29. package/dist/src/orchestrator/health.d.ts.map +1 -0
  30. package/dist/src/orchestrator/index.d.ts +2 -0
  31. package/dist/src/orchestrator/index.d.ts.map +1 -0
  32. package/dist/src/orchestrator/runner.d.ts +102 -0
  33. package/dist/src/orchestrator/runner.d.ts.map +1 -0
  34. package/dist/src/orchestrator/summary.d.ts +19 -0
  35. package/dist/src/orchestrator/summary.d.ts.map +1 -0
  36. package/dist/src/pid.d.ts +20 -0
  37. package/dist/src/pid.d.ts.map +1 -0
  38. package/dist/src/policy/engine.d.ts +41 -0
  39. package/dist/src/policy/engine.d.ts.map +1 -0
  40. package/dist/src/policy/index.d.ts +2 -0
  41. package/dist/src/policy/index.d.ts.map +1 -0
  42. package/dist/src/server.d.ts +8 -0
  43. package/dist/src/server.d.ts.map +1 -0
  44. package/dist/src/sessionHealthMonitor.d.ts +29 -0
  45. package/dist/src/sessionHealthMonitor.d.ts.map +1 -0
  46. package/dist/src/storage/database.d.ts +3 -0
  47. package/dist/src/storage/database.d.ts.map +1 -0
  48. package/dist/src/storage/index.d.ts +4 -0
  49. package/dist/src/storage/index.d.ts.map +1 -0
  50. package/dist/src/storage/migrations.d.ts +3 -0
  51. package/dist/src/storage/migrations.d.ts.map +1 -0
  52. package/dist/src/storage/store.d.ts +80 -0
  53. package/dist/src/storage/store.d.ts.map +1 -0
  54. package/dist/src/sync/connection.d.ts +37 -0
  55. package/dist/src/sync/connection.d.ts.map +1 -0
  56. package/dist/src/sync/index.d.ts +7 -0
  57. package/dist/src/sync/index.d.ts.map +1 -0
  58. package/dist/src/sync/queue.d.ts +22 -0
  59. package/dist/src/sync/queue.d.ts.map +1 -0
  60. package/dist/src/sync/reconciler.d.ts +42 -0
  61. package/dist/src/sync/reconciler.d.ts.map +1 -0
  62. package/dist/src/sync/rest-client.d.ts +62 -0
  63. package/dist/src/sync/rest-client.d.ts.map +1 -0
  64. package/package.json +60 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/storage/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { DaemonMessage, CloudMessage } from '@cronies/protocol';
2
+ export interface SyncClientOptions {
3
+ wsUrl: string;
4
+ daemonToken: string;
5
+ daemonId: string;
6
+ daemonVersion: string;
7
+ hostname: string;
8
+ onMessage: (message: CloudMessage) => void;
9
+ onConnected: () => void;
10
+ onDisconnected: () => void;
11
+ }
12
+ export declare class SyncClient {
13
+ private ws;
14
+ private options;
15
+ private reconnectAttempts;
16
+ private maxReconnectDelay;
17
+ private heartbeatInterval;
18
+ private reconnectTimer;
19
+ private connected;
20
+ private intentionallyClosed;
21
+ constructor(options: SyncClientOptions);
22
+ connect(): void;
23
+ disconnect(): void;
24
+ /**
25
+ * Send a message to the cloud.
26
+ * Returns true if the message was sent, false if not connected.
27
+ * When false, the caller should enqueue the message in the outbox.
28
+ */
29
+ send(message: DaemonMessage): boolean;
30
+ isConnected(): boolean;
31
+ private handleDisconnect;
32
+ private scheduleReconnect;
33
+ private clearReconnectTimer;
34
+ private startHeartbeat;
35
+ private stopHeartbeat;
36
+ }
37
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/sync/connection.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMrE,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3C,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAMD,qBAAa,UAAU;IACrB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,mBAAmB,CAAS;gBAExB,OAAO,EAAE,iBAAiB;IAQtC,OAAO,IAAI,IAAI;IAqDf,UAAU,IAAI,IAAI;IAiBlB;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO;IAarC,WAAW,IAAI,OAAO;IAQtB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,aAAa;CAMtB"}
@@ -0,0 +1,7 @@
1
+ export { SyncClient } from './connection.js';
2
+ export type { SyncClientOptions } from './connection.js';
3
+ export { RestClient } from './rest-client.js';
4
+ export type { RestClientOptions } from './rest-client.js';
5
+ export { SyncQueue } from './queue.js';
6
+ export { SyncReconciler } from './reconciler.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sync/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { DaemonStore } from '../storage/store.js';
2
+ import type { DaemonMessage } from '@cronies/protocol';
3
+ export declare class SyncQueue {
4
+ private store;
5
+ constructor(store: DaemonStore);
6
+ /**
7
+ * Enqueue a message for later delivery.
8
+ * Called when the SyncClient is disconnected.
9
+ */
10
+ enqueue(message: DaemonMessage): void;
11
+ /**
12
+ * Drain queued messages by passing each to the send function.
13
+ * Stops draining if a send fails (connection lost again).
14
+ * Returns the number of messages successfully sent.
15
+ */
16
+ drain(sendFn: (msg: DaemonMessage) => boolean): number;
17
+ /**
18
+ * Get the count of messages waiting to be sent.
19
+ */
20
+ getPendingCount(): number;
21
+ }
22
+ //# sourceMappingURL=queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/sync/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAOvD,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAc;gBAEf,KAAK,EAAE,WAAW;IAI9B;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAIrC;;;;OAIG;IACH,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,GAAG,MAAM;IA0BtD;;OAEG;IACH,eAAe,IAAI,MAAM;CAI1B"}
@@ -0,0 +1,42 @@
1
+ import type { DaemonStore } from '../storage/store.js';
2
+ import type { CloudMessage } from '@cronies/protocol';
3
+ import type { RunEvent } from '@cronies/core';
4
+ export declare class SyncReconciler {
5
+ private store;
6
+ constructor(store: DaemonStore);
7
+ /**
8
+ * Called when the cloud sends a welcome message after our hello.
9
+ * Reconciles pending jobs, policy, and state overrides from the cloud.
10
+ */
11
+ handleWelcome(welcome: Extract<CloudMessage, {
12
+ type: 'cloud:welcome';
13
+ }>): void;
14
+ /**
15
+ * Called when the cloud sends a batch of events (e.g., events from other daemons
16
+ * or cloud-generated events).
17
+ */
18
+ handleCloudEvents(batch: Extract<CloudMessage, {
19
+ type: 'cloud:event_batch';
20
+ }>): void;
21
+ /**
22
+ * Called when the cloud acknowledges receipt of our events.
23
+ * Marks events as synced up to the acknowledged sequence number.
24
+ */
25
+ handleAck(ack: Extract<CloudMessage, {
26
+ type: 'cloud:ack';
27
+ }>): void;
28
+ /**
29
+ * Called when the cloud sends a policy update.
30
+ * Updates the cached policy so the daemon uses the latest rules.
31
+ */
32
+ handlePolicyUpdate(update: Extract<CloudMessage, {
33
+ type: 'cloud:policy_update';
34
+ }>): void;
35
+ /**
36
+ * Get events that need to be synced to the cloud.
37
+ */
38
+ getUnsyncedEvents(limit?: number): (RunEvent & {
39
+ jobId: string;
40
+ })[];
41
+ }
42
+ //# sourceMappingURL=reconciler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconciler.d.ts","sourceRoot":"","sources":["../../../src/sync/reconciler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAM9C,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAc;gBAEf,KAAK,EAAE,WAAW;IAI9B;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE;QAAE,IAAI,EAAE,eAAe,CAAA;KAAE,CAAC,GAAG,IAAI;IA+B9E;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE;QAAE,IAAI,EAAE,mBAAmB,CAAA;KAAE,CAAC,GAAG,IAAI;IAoBpF;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,YAAY,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC,GAAG,IAAI;IAKlE;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE;QAAE,IAAI,EAAE,qBAAqB,CAAA;KAAE,CAAC,GAAG,IAAI;IAKxF;;OAEG;IACH,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,QAAQ,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE;CAGpE"}
@@ -0,0 +1,62 @@
1
+ export interface RestClientOptions {
2
+ /** Base URL of the dashboard, e.g. "https://cronies.dev" */
3
+ baseUrl: string;
4
+ /** API key from config cloud.token, e.g. "crn_xxx..." */
5
+ apiKey: string;
6
+ /** Persistent daemon ID */
7
+ daemonId: string;
8
+ /** Local HTTP server port for filesystem access */
9
+ port: number;
10
+ /** Polling interval in milliseconds (default 30000) */
11
+ pollIntervalMs: number;
12
+ }
13
+ export declare class RestClient {
14
+ private options;
15
+ private pollTimer;
16
+ private running;
17
+ private pollCount;
18
+ private readonly evalEveryNPolls;
19
+ /** Called when the poll returns one or more jobs */
20
+ onJobsReceived?: (jobs: unknown[]) => void;
21
+ /** Called when a running job has been cancelled/paused from the dashboard */
22
+ onJobCancelled?: (jobId: string) => void;
23
+ /** Called on any polling or network error */
24
+ onError?: (error: Error) => void;
25
+ constructor(options: RestClientOptions);
26
+ /** Register this daemon with the cloud, then start polling for jobs. */
27
+ start(): void;
28
+ /** Stop polling. */
29
+ stop(): void;
30
+ isConnected(): boolean;
31
+ /** Register this daemon with the cloud on startup. */
32
+ private register;
33
+ /** Send heartbeat to keep daemon status online. Called on each poll. */
34
+ private heartbeat;
35
+ private poll;
36
+ /** Evaluate all active outcomes that have no running sessions. */
37
+ private evaluateIdleOutcomes;
38
+ /** Check if any jobs the daemon is running have been cancelled/paused from the dashboard */
39
+ checkForCancelledJobs(runningJobIds: string[]): Promise<void>;
40
+ /** Report a new run starting */
41
+ createRun(run: {
42
+ runId: string;
43
+ jobId: string;
44
+ daemonId: string;
45
+ agentUsed: string;
46
+ }): Promise<void>;
47
+ /** Update a run (status change, completion, etc.) */
48
+ updateRun(runId: string, update: Record<string, unknown>): Promise<void>;
49
+ /** Post run events (batch) */
50
+ postEvents(events: Array<Record<string, unknown>>): Promise<void>;
51
+ /** Report session health snapshot to the cloud */
52
+ postHealth(health: Record<string, unknown>): Promise<void>;
53
+ /** Update a job's status (e.g. 'running', 'active', 'completed') */
54
+ updateJobStatus(jobId: string, status: string): Promise<void>;
55
+ /** Reset orphaned running jobs back to active on daemon startup */
56
+ resetOrphanedJobs(): Promise<void>;
57
+ /** Ask the supervisor to evaluate an outcome's next steps. Retries once on failure. */
58
+ triggerSupervisorEvaluation(outcomeId: string): Promise<void>;
59
+ private post;
60
+ private patch;
61
+ }
62
+ //# sourceMappingURL=rest-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest-client.d.ts","sourceRoot":"","sources":["../../../src/sync/rest-client.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAM;IAEtC,oDAAoD;IACpD,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAC3C,6EAA6E;IAC7E,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,6CAA6C;IAC7C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;gBAErB,OAAO,EAAE,iBAAiB;IAQtC,wEAAwE;IACxE,KAAK,IAAI,IAAI;IAOb,oBAAoB;IACpB,IAAI,IAAI,IAAI;IAQZ,WAAW,IAAI,OAAO;IAQtB,sDAAsD;YACxC,QAAQ;IAyDtB,wEAAwE;YAC1D,SAAS;YAcT,IAAI;IA+BlB,kEAAkE;YACpD,oBAAoB;IAwBlC,4FAA4F;IACtF,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBnE,gCAAgC;IAC1B,SAAS,CAAC,GAAG,EAAE;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjB,qDAAqD;IAC/C,SAAS,CACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;IAIhB,8BAA8B;IACxB,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE,kDAAkD;IAC5C,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE,oEAAoE;IAC9D,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE,mEAAmE;IAC7D,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAUxC,uFAAuF;IACjF,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAiCrD,IAAI;YAqBJ,KAAK;CAiBpB"}
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "cronies-cli",
3
+ "version": "0.1.0",
4
+ "description": "Daemon for Cronies — the outcome layer for autonomous engineering",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/ksuds08/cronies.git",
10
+ "directory": "packages/daemon"
11
+ },
12
+ "homepage": "https://github.com/ksuds08/cronies",
13
+ "keywords": [
14
+ "daemon",
15
+ "agents",
16
+ "automation",
17
+ "claude-code",
18
+ "codex",
19
+ "gemini",
20
+ "cronies"
21
+ ],
22
+ "bin": {
23
+ "cronies": "./dist/cronies.js"
24
+ },
25
+ "main": "./dist/index.js",
26
+ "types": "./dist/src/index.d.ts",
27
+ "files": [
28
+ "dist/",
29
+ "LICENSE",
30
+ "README.md"
31
+ ],
32
+ "engines": {
33
+ "node": ">=22"
34
+ },
35
+ "scripts": {
36
+ "build": "tsup && tsc --project tsconfig.build.json --emitDeclarationOnly --outDir dist",
37
+ "typecheck": "tsc --noEmit",
38
+ "test": "vitest run",
39
+ "clean": "rm -rf dist *.tsbuildinfo"
40
+ },
41
+ "dependencies": {
42
+ "better-sqlite3": "^11",
43
+ "commander": "^13",
44
+ "ulid": "^2",
45
+ "ws": "^8",
46
+ "xstate": "^5",
47
+ "yaml": "^2",
48
+ "zod": "^3"
49
+ },
50
+ "devDependencies": {
51
+ "@cronies/adapters": "workspace:*",
52
+ "@cronies/core": "workspace:*",
53
+ "@cronies/protocol": "workspace:*",
54
+ "@types/better-sqlite3": "^7",
55
+ "@types/ws": "^8",
56
+ "tsup": "^8.5.1",
57
+ "typescript": "^5",
58
+ "vitest": "^3"
59
+ }
60
+ }