@cortexkit/opencode-magic-context 0.30.5 → 0.30.6
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/dist/features/magic-context/dreamer/task-scheduler.d.ts +2 -0
- package/dist/features/magic-context/dreamer/task-scheduler.d.ts.map +1 -1
- package/dist/features/magic-context/git-commits/git-log-reader.d.ts +20 -0
- package/dist/features/magic-context/git-commits/git-log-reader.d.ts.map +1 -1
- package/dist/features/magic-context/git-commits/index.d.ts +1 -1
- package/dist/features/magic-context/git-commits/index.d.ts.map +1 -1
- package/dist/features/magic-context/git-commits/indexer.d.ts +6 -0
- package/dist/features/magic-context/git-commits/indexer.d.ts.map +1 -1
- package/dist/features/magic-context/git-commits/sweep-coordinator.d.ts +17 -0
- package/dist/features/magic-context/git-commits/sweep-coordinator.d.ts.map +1 -1
- package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
- package/dist/index.js +60 -9
- package/dist/plugin/dream-timer.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -55,6 +55,8 @@ interface DueTask {
|
|
|
55
55
|
* arrived. Gate evaluation happens in the drain (pre- AND post-lease). Exported
|
|
56
56
|
* for testing. */
|
|
57
57
|
export declare function planDueTasks(db: Database, projectIdentity: string, tasks: readonly DreamTaskRuntimeConfig[], now: number): DueTask[];
|
|
58
|
+
/** Lease wait budget for manual /ctx-dream runs. */
|
|
59
|
+
export declare const MANUAL_RUN_LEASE_WAIT_MS = 60000;
|
|
58
60
|
export interface ManualRunResult {
|
|
59
61
|
/** Tasks that actually executed (gate passed, lease acquired). */
|
|
60
62
|
ran: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-scheduler.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/dreamer/task-scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAWvD,OAAO,EAAoB,KAAK,aAAa,EAA6B,MAAM,iBAAiB,CAAC;AAElG;4BAC4B;AAC5B,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC;kFACkF;AAClF,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,aAAa,CAAC;IACpB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC/B;gFAC4E;IAC5E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE;QACZ,yEAAyE;QACzE,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5C,CAAC;CACL;AAED;;+EAE+E;AAC/E,MAAM,MAAM,YAAY,GAAG,CACvB,IAAI,EAAE,sBAAsB,EAC5B,GAAG,EAAE;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,KACjF,OAAO,CAAC,eAAe,CAAC,CAAC;AAE9B,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAE,QAAQ,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACzC,QAAQ,EAAE,YAAY,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAkED,UAAU,OAAO;IACb,MAAM,EAAE,sBAAsB,CAAC;IAC/B;wDACoD;IACpD,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;mBAEmB;AACnB,wBAAgB,YAAY,CACxB,EAAE,EAAE,QAAQ,EACZ,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,SAAS,sBAAsB,EAAE,EACxC,GAAG,EAAE,MAAM,GACZ,OAAO,EAAE,CA0BX;
|
|
1
|
+
{"version":3,"file":"task-scheduler.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/dreamer/task-scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAWvD,OAAO,EAAoB,KAAK,aAAa,EAA6B,MAAM,iBAAiB,CAAC;AAElG;4BAC4B;AAC5B,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC;kFACkF;AAClF,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,aAAa,CAAC;IACpB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC/B;gFAC4E;IAC5E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE;QACZ,yEAAyE;QACzE,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5C,CAAC;CACL;AAED;;+EAE+E;AAC/E,MAAM,MAAM,YAAY,GAAG,CACvB,IAAI,EAAE,sBAAsB,EAC5B,GAAG,EAAE;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,KACjF,OAAO,CAAC,eAAe,CAAC,CAAC;AAE9B,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAE,QAAQ,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACzC,QAAQ,EAAE,YAAY,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAkED,UAAU,OAAO;IACb,MAAM,EAAE,sBAAsB,CAAC;IAC/B;wDACoD;IACpD,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;mBAEmB;AACnB,wBAAgB,YAAY,CACxB,EAAE,EAAE,QAAQ,EACZ,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,SAAS,sBAAsB,EAAE,EACxC,GAAG,EAAE,MAAM,GACZ,OAAO,EAAE,CA0BX;AAuGD,oDAAoD;AACpD,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAuG/C,MAAM,WAAW,eAAe;IAC5B,kEAAkE;IAClE,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,kEAAkE;IAClE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,mEAAmE;IACnE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iCAAiC;IACjC,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAChC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,aAAa,CAAA;CAAE,GAC9D,OAAO,CAAC,eAAe,CAAC,CAkE1B;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAuClF"}
|
|
@@ -25,6 +25,16 @@
|
|
|
25
25
|
* - We skip merge commits via `--no-merges` so merge "Merge branch 'x'"
|
|
26
26
|
* noise doesn't fill the index.
|
|
27
27
|
*/
|
|
28
|
+
/**
|
|
29
|
+
* Why `git log` produced no commits, when it failed. `not_a_repo` and
|
|
30
|
+
* `no_head` (a repo with zero commits) are structural: retrying every sweep
|
|
31
|
+
* tick cannot succeed and only floods the log, so callers put the project on
|
|
32
|
+
* a long re-probe cooldown instead. `transient` covers everything else
|
|
33
|
+
* (timeouts, missing git binary, permission errors) and keeps the normal
|
|
34
|
+
* retry cadence.
|
|
35
|
+
*/
|
|
36
|
+
export type GitLogFailureKind = "not_a_repo" | "no_head" | "transient";
|
|
37
|
+
export declare function classifyGitLogFailure(message: string): GitLogFailureKind;
|
|
28
38
|
export interface GitCommit {
|
|
29
39
|
/** Full 40-char SHA. */
|
|
30
40
|
sha: string;
|
|
@@ -61,5 +71,15 @@ export interface ReadGitCommitsOptions {
|
|
|
61
71
|
* never crash the plugin.
|
|
62
72
|
*/
|
|
63
73
|
export declare function readGitCommits(directory: string, options?: ReadGitCommitsOptions): Promise<GitCommit[]>;
|
|
74
|
+
/**
|
|
75
|
+
* Like {@link readGitCommits}, but also reports WHY the read failed so the
|
|
76
|
+
* sweep can distinguish structurally non-indexable directories (not a repo,
|
|
77
|
+
* repo with no commits) from transient errors. `failure` is null on success —
|
|
78
|
+
* including a successful read that matched zero commits.
|
|
79
|
+
*/
|
|
80
|
+
export declare function readGitCommitsResult(directory: string, options?: ReadGitCommitsOptions): Promise<{
|
|
81
|
+
commits: GitCommit[];
|
|
82
|
+
failure: GitLogFailureKind | null;
|
|
83
|
+
}>;
|
|
64
84
|
export declare function parseGitLogOutput(stdout: string): GitCommit[];
|
|
65
85
|
//# sourceMappingURL=git-log-reader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-log-reader.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/git-commits/git-log-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAeH,MAAM,WAAW,SAAS;IACtB,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,kDAAkD;IAClD,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IAClC,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,qBAA0B,GACpC,OAAO,CAAC,SAAS,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"git-log-reader.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/git-commits/git-log-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAeH;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AAEvE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAUxE;AAED,MAAM,WAAW,SAAS;IACtB,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,kDAAkD;IAClD,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IAClC,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,qBAA0B,GACpC,OAAO,CAAC,SAAS,EAAE,CAAC,CAEtB;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACtC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,qBAA0B,GACpC,OAAO,CAAC;IAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAAE,CAAC,CAuEtE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,CA6C7D"}
|
|
@@ -4,5 +4,5 @@ export { _resetIndexerGuards, embedUnembeddedCommits, type IndexCommitsOptions,
|
|
|
4
4
|
export { type GitCommitSearchHit, type SearchGitCommitsOptions, searchGitCommitsSync, } from "./search-git-commits";
|
|
5
5
|
export { clearProjectCommitEmbeddings, countEmbeddedCommits, loadProjectCommitEmbeddings, loadUnembeddedCommits, saveCommitEmbedding, } from "./storage-git-commit-embeddings";
|
|
6
6
|
export { enforceProjectCap, evictOldestCommits, getCommitBySha, getCommitCount, getLatestIndexedCommitTimeMs, type StoredGitCommit, upsertCommit, upsertCommits, } from "./storage-git-commits";
|
|
7
|
-
export { acquireGitSweepLease, GIT_SWEEP_COOLDOWN_MS, GIT_SWEEP_LEASE_RENEWAL_MS, GIT_SWEEP_LEASE_TTL_MS, type GitSweepCoordinatorState, type GitSweepLeaseResult, getGitSweepCoordinatorState, markGitSweepSuccessAndRelease, releaseGitSweepLease, renewGitSweepLease, } from "./sweep-coordinator";
|
|
7
|
+
export { acquireGitSweepLease, GIT_SWEEP_COOLDOWN_MS, GIT_SWEEP_LEASE_RENEWAL_MS, GIT_SWEEP_LEASE_TTL_MS, type GitSweepCoordinatorState, type GitSweepLeaseResult, getGitSweepCoordinatorState, markGitSweepSuccessAndRelease, parkGitSweepNonIndexable, releaseGitSweepLease, renewGitSweepLease, } from "./sweep-coordinator";
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/git-commits/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,sBAAsB,GACzB,MAAM,WAAW,CAAC;AACnB,OAAO,EACH,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,oBAAoB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,4BAA4B,EAC5B,oBAAoB,EACpB,2BAA2B,EAC3B,qBAAqB,EACrB,mBAAmB,GACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACH,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,4BAA4B,EAC5B,KAAK,eAAe,EACpB,YAAY,EACZ,aAAa,GAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACH,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,2BAA2B,EAC3B,6BAA6B,EAC7B,oBAAoB,EACpB,kBAAkB,GACrB,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/git-commits/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,sBAAsB,GACzB,MAAM,WAAW,CAAC;AACnB,OAAO,EACH,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,oBAAoB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,4BAA4B,EAC5B,oBAAoB,EACpB,2BAA2B,EAC3B,qBAAqB,EACrB,mBAAmB,GACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACH,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,4BAA4B,EAC5B,KAAK,eAAe,EACpB,YAAY,EACZ,aAAa,GAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACH,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,2BAA2B,EAC3B,6BAA6B,EAC7B,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,GACrB,MAAM,qBAAqB,CAAC"}
|
|
@@ -23,6 +23,12 @@ export interface IndexCommitsResult {
|
|
|
23
23
|
updated: number;
|
|
24
24
|
evicted: number;
|
|
25
25
|
embedded: number;
|
|
26
|
+
/**
|
|
27
|
+
* Set when `git log` failed structurally (directory is not a repo, or the
|
|
28
|
+
* repo has no commits yet). The sweep uses this to park the project on a
|
|
29
|
+
* long re-probe cooldown instead of retrying every tick.
|
|
30
|
+
*/
|
|
31
|
+
nonIndexable: boolean;
|
|
26
32
|
}
|
|
27
33
|
/**
|
|
28
34
|
* Sweep commits from `directory` (must be a git repo), upsert them for
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/git-commits/indexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAwBvD,MAAM,WAAW,mBAAmB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB;sEACkE;IAClE,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/git-commits/indexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAwBvD,MAAM,WAAW,mBAAmB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB;sEACkE;IAClE,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,YAAY,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CACxC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,mBAAmB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAyE7B;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAyD/F;AAED,2CAA2C;AAC3C,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import type { Database } from "../../../shared/sqlite";
|
|
2
2
|
export declare const GIT_SWEEP_COOLDOWN_MS: number;
|
|
3
3
|
export declare const GIT_SWEEP_LEASE_TTL_MS: number;
|
|
4
|
+
/**
|
|
5
|
+
* Re-probe horizon for structurally non-indexable directories (not a repo /
|
|
6
|
+
* empty repo). Long enough to stop per-tick log flooding, short enough that a
|
|
7
|
+
* directory that becomes a real repo starts indexing within a day.
|
|
8
|
+
*/
|
|
9
|
+
export declare const GIT_SWEEP_NON_INDEXABLE_REPROBE_MS: number;
|
|
4
10
|
export declare const GIT_SWEEP_LEASE_RENEWAL_MS: number;
|
|
5
11
|
export type GitSweepSkipReason = "lease_active" | "cooldown_active";
|
|
6
12
|
export interface GitSweepLeaseAcquired {
|
|
@@ -44,5 +50,16 @@ export declare function getGitSweepCoordinatorState(db: Database, projectPath: s
|
|
|
44
50
|
export declare function acquireGitSweepLease(db: Database, projectPath: string, holderId: string, options?: AcquireGitSweepLeaseOptions): GitSweepLeaseResult;
|
|
45
51
|
export declare function renewGitSweepLease(db: Database, projectPath: string, holderId: string, leaseTtlMs?: number): boolean;
|
|
46
52
|
export declare function markGitSweepSuccessAndRelease(db: Database, projectPath: string, holderId: string): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Park a structurally non-indexable project (not a git repo, or a repo with
|
|
55
|
+
* no commits) and release the lease. Re-probes are still allowed after
|
|
56
|
+
* `reprobeMs` — a plain directory can be `git init`-ed and an empty repo gets
|
|
57
|
+
* its first commit — but until then every sweep tick would fail identically,
|
|
58
|
+
* so the cooldown gate absorbs them. Implemented by future-dating
|
|
59
|
+
* `last_swept_at` so the existing cooldown arithmetic
|
|
60
|
+
* (`last_swept_at + cooldownMs`) yields the long re-probe horizon without a
|
|
61
|
+
* schema change; `last_swept_at` is only ever read by that arithmetic.
|
|
62
|
+
*/
|
|
63
|
+
export declare function parkGitSweepNonIndexable(db: Database, projectPath: string, holderId: string, reprobeMs?: number): boolean;
|
|
47
64
|
export declare function releaseGitSweepLease(db: Database, projectPath: string, holderId: string): void;
|
|
48
65
|
//# sourceMappingURL=sweep-coordinator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sweep-coordinator.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/git-commits/sweep-coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,eAAO,MAAM,qBAAqB,QAAiB,CAAC;AAKpD,eAAO,MAAM,sBAAsB,QAAgB,CAAC;AACpD,eAAO,MAAM,0BAA0B,QAAY,CAAC;AAEpD,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAEpE,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,IAAI,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,KAAK,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,GAAG,oBAAoB,CAAC;AAE/E,MAAM,WAAW,wBAAwB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AASD,MAAM,WAAW,2BAA2B;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AA8BD,wBAAgB,2BAA2B,CACvC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,GACpB,wBAAwB,GAAG,IAAI,CASjC;AAED,wBAAgB,oBAAoB,CAChC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,2BAAgC,GAC1C,mBAAmB,CA2DrB;AAED,wBAAgB,kBAAkB,CAC9B,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,UAAU,SAAyB,GACpC,OAAO,CAeT;AAED,wBAAgB,6BAA6B,CACzC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAgBT;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAU9F"}
|
|
1
|
+
{"version":3,"file":"sweep-coordinator.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/git-commits/sweep-coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,eAAO,MAAM,qBAAqB,QAAiB,CAAC;AAKpD,eAAO,MAAM,sBAAsB,QAAgB,CAAC;AACpD;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,QAAsB,CAAC;AACtE,eAAO,MAAM,0BAA0B,QAAY,CAAC;AAEpD,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAEpE,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,IAAI,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,KAAK,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,GAAG,oBAAoB,CAAC;AAE/E,MAAM,WAAW,wBAAwB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AASD,MAAM,WAAW,2BAA2B;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AA8BD,wBAAgB,2BAA2B,CACvC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,GACpB,wBAAwB,GAAG,IAAI,CASjC;AAED,wBAAgB,oBAAoB,CAChC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,2BAAgC,GAC1C,mBAAmB,CA2DrB;AAED,wBAAgB,kBAAkB,CAC9B,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,UAAU,SAAyB,GACpC,OAAO,CAeT;AAED,wBAAgB,6BAA6B,CACzC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAgBT;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACpC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,MAA2C,GACvD,OAAO,CAiBT;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAU9F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-handler.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/command-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAEH,KAAK,aAAa,EAErB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AAG3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACH,KAAK,kBAAkB,EAE1B,MAAM,qCAAqC,CAAC;AAG7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAwBtE;;;;;;;qEAOqE;AACrE,wBAAgB,eAAe,CAC3B,GAAG,EAAE,MAAM,GAET;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA6BvC;AAED,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD;AAwLD,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"command-handler.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/command-handler.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -167985,6 +167985,20 @@ function markGitSweepSuccessAndRelease(db, projectPath, holderId) {
|
|
|
167985
167985
|
return result.changes === 1;
|
|
167986
167986
|
});
|
|
167987
167987
|
}
|
|
167988
|
+
function parkGitSweepNonIndexable(db, projectPath, holderId, reprobeMs = GIT_SWEEP_NON_INDEXABLE_REPROBE_MS) {
|
|
167989
|
+
return runImmediate2(db, () => {
|
|
167990
|
+
const now = Date.now();
|
|
167991
|
+
const sweptAt = now + reprobeMs - GIT_SWEEP_COOLDOWN_MS;
|
|
167992
|
+
const result = db.prepare(`UPDATE git_sweep_coordinator
|
|
167993
|
+
SET lease_holder = NULL,
|
|
167994
|
+
lease_expires_at = NULL,
|
|
167995
|
+
last_swept_at = ?
|
|
167996
|
+
WHERE project_path = ?
|
|
167997
|
+
AND lease_holder = ?
|
|
167998
|
+
AND lease_expires_at > ?`).run(sweptAt, projectPath, holderId, now);
|
|
167999
|
+
return result.changes === 1;
|
|
168000
|
+
});
|
|
168001
|
+
}
|
|
167988
168002
|
function releaseGitSweepLease(db, projectPath, holderId) {
|
|
167989
168003
|
runImmediate2(db, () => {
|
|
167990
168004
|
db.prepare(`UPDATE git_sweep_coordinator
|
|
@@ -167994,10 +168008,11 @@ function releaseGitSweepLease(db, projectPath, holderId) {
|
|
|
167994
168008
|
AND lease_holder = ?`).run(projectPath, holderId);
|
|
167995
168009
|
});
|
|
167996
168010
|
}
|
|
167997
|
-
var GIT_SWEEP_COOLDOWN_MS, GIT_SWEEP_LEASE_TTL_MS, GIT_SWEEP_LEASE_RENEWAL_MS;
|
|
168011
|
+
var GIT_SWEEP_COOLDOWN_MS, GIT_SWEEP_LEASE_TTL_MS, GIT_SWEEP_NON_INDEXABLE_REPROBE_MS, GIT_SWEEP_LEASE_RENEWAL_MS;
|
|
167998
168012
|
var init_sweep_coordinator = __esm(() => {
|
|
167999
168013
|
GIT_SWEEP_COOLDOWN_MS = 10 * 60 * 1000;
|
|
168000
168014
|
GIT_SWEEP_LEASE_TTL_MS = 5 * 60 * 1000;
|
|
168015
|
+
GIT_SWEEP_NON_INDEXABLE_REPROBE_MS = 24 * 60 * 60 * 1000;
|
|
168001
168016
|
GIT_SWEEP_LEASE_RENEWAL_MS = 60 * 1000;
|
|
168002
168017
|
});
|
|
168003
168018
|
|
|
@@ -192632,11 +192647,21 @@ function recordTransientFailure(db, projectIdentity, due, finishedAt, error51) {
|
|
|
192632
192647
|
});
|
|
192633
192648
|
}
|
|
192634
192649
|
}
|
|
192650
|
+
var LEASE_WAIT_POLL_MS = 2000;
|
|
192651
|
+
var MANUAL_RUN_LEASE_WAIT_MS = 60000;
|
|
192635
192652
|
async function runDomainGroup(deps, group, cb) {
|
|
192636
192653
|
const { db, projectIdentity, executor } = deps;
|
|
192637
192654
|
const leaseKey = leaseKeyFor(group[0].config.task, projectIdentity);
|
|
192638
192655
|
const holderId = crypto.randomUUID();
|
|
192639
|
-
|
|
192656
|
+
let acquired = acquireLease(db, holderId, leaseKey);
|
|
192657
|
+
if (!acquired && cb?.leaseWaitMs) {
|
|
192658
|
+
const deadline = Date.now() + cb.leaseWaitMs;
|
|
192659
|
+
while (!acquired && Date.now() < deadline) {
|
|
192660
|
+
await new Promise((resolve4) => setTimeout(resolve4, LEASE_WAIT_POLL_MS));
|
|
192661
|
+
acquired = acquireLease(db, holderId, leaseKey);
|
|
192662
|
+
}
|
|
192663
|
+
}
|
|
192664
|
+
if (!acquired) {
|
|
192640
192665
|
log(`[dreamer] domain lease busy (${leaseKey}) — deferring ${group.length} task(s)`);
|
|
192641
192666
|
for (const due of group)
|
|
192642
192667
|
cb?.onBusy?.(due.config.task);
|
|
@@ -192731,6 +192756,7 @@ async function runManualDream(deps) {
|
|
|
192731
192756
|
}
|
|
192732
192757
|
await Promise.all([...groups.values()].map((group) => runDomainGroup({ ...deps, executor: deps.executor }, group, {
|
|
192733
192758
|
forceGate,
|
|
192759
|
+
leaseWaitMs: MANUAL_RUN_LEASE_WAIT_MS,
|
|
192734
192760
|
onRan: (t) => result.ran.push(t),
|
|
192735
192761
|
onFailed: (t) => result.failed.push(t),
|
|
192736
192762
|
onBusy: (t) => result.deferredBusy.push(t)
|
|
@@ -192779,7 +192805,15 @@ var GIT_TIMEOUT_MS3 = 1e4;
|
|
|
192779
192805
|
var DEFAULT_MAX_COMMITS = 5000;
|
|
192780
192806
|
var RECORD_SEPARATOR = "\x1E";
|
|
192781
192807
|
var FIELD_SEPARATOR = "\x1F";
|
|
192782
|
-
|
|
192808
|
+
function classifyGitLogFailure(message) {
|
|
192809
|
+
if (message.includes("not a git repository"))
|
|
192810
|
+
return "not_a_repo";
|
|
192811
|
+
if (message.includes("unknown revision or path not in the working tree") || message.includes("does not have any commits yet") || message.includes("bad revision")) {
|
|
192812
|
+
return "no_head";
|
|
192813
|
+
}
|
|
192814
|
+
return "transient";
|
|
192815
|
+
}
|
|
192816
|
+
async function readGitCommitsResult(directory, options = {}) {
|
|
192783
192817
|
const revision = options.branch ?? "HEAD";
|
|
192784
192818
|
if (revision.startsWith("-")) {
|
|
192785
192819
|
throw new Error(`readGitCommits: refusing revision that looks like an option: "${revision}"`);
|
|
@@ -192807,13 +192841,18 @@ async function readGitCommits(directory, options = {}) {
|
|
|
192807
192841
|
stdout = result.stdout;
|
|
192808
192842
|
} catch (error51) {
|
|
192809
192843
|
const message = error51 instanceof Error ? error51.message : String(error51);
|
|
192810
|
-
|
|
192811
|
-
|
|
192844
|
+
const failure = classifyGitLogFailure(message);
|
|
192845
|
+
if (failure === "transient") {
|
|
192846
|
+
log(`[git-commits] readGitCommits failed for ${projectLabel}: ${message.slice(0, 500)}`);
|
|
192847
|
+
} else {
|
|
192848
|
+
log(`[git-commits] ${projectLabel} is not indexable (${failure})`);
|
|
192849
|
+
}
|
|
192850
|
+
return { commits: [], failure };
|
|
192812
192851
|
}
|
|
192813
192852
|
if (stdout.trim().length === 0) {
|
|
192814
192853
|
log(`[git-commits] readGitCommits returned empty stdout for ${projectLabel} (sinceMs=${options.sinceMs ?? "none"} args=${args.slice(0, 4).join(" ")})`);
|
|
192815
192854
|
}
|
|
192816
|
-
return parseGitLogOutput(stdout);
|
|
192855
|
+
return { commits: parseGitLogOutput(stdout), failure: null };
|
|
192817
192856
|
}
|
|
192818
192857
|
function parseGitLogOutput(stdout) {
|
|
192819
192858
|
const commits = [];
|
|
@@ -192872,7 +192911,8 @@ async function indexCommitsForProject(db, projectPath, directory, options) {
|
|
|
192872
192911
|
inserted: 0,
|
|
192873
192912
|
updated: 0,
|
|
192874
192913
|
evicted: 0,
|
|
192875
|
-
embedded: 0
|
|
192914
|
+
embedded: 0,
|
|
192915
|
+
nonIndexable: false
|
|
192876
192916
|
};
|
|
192877
192917
|
if (indexInProgress.has(projectPath)) {
|
|
192878
192918
|
log(`[git-commits] index already in progress for ${projectPath}, skipping`);
|
|
@@ -192882,12 +192922,17 @@ async function indexCommitsForProject(db, projectPath, directory, options) {
|
|
|
192882
192922
|
try {
|
|
192883
192923
|
const latestIndexed = getLatestIndexedCommitTimeMs(db, projectPath);
|
|
192884
192924
|
const sinceMs = latestIndexed !== null ? Math.max(latestIndexed - 60000, Date.now() - options.sinceDays * MS_PER_DAY) : Date.now() - options.sinceDays * MS_PER_DAY;
|
|
192885
|
-
const
|
|
192925
|
+
const read = await readGitCommitsResult(directory, {
|
|
192886
192926
|
sinceMs,
|
|
192887
192927
|
maxCommits: options.maxCommits,
|
|
192888
192928
|
projectIdentity: projectPath
|
|
192889
192929
|
});
|
|
192930
|
+
const commits = read.commits;
|
|
192890
192931
|
result.scanned = commits.length;
|
|
192932
|
+
if (read.failure === "not_a_repo" || read.failure === "no_head") {
|
|
192933
|
+
result.nonIndexable = true;
|
|
192934
|
+
return result;
|
|
192935
|
+
}
|
|
192891
192936
|
if (commits.length === 0) {
|
|
192892
192937
|
result.evicted = enforceProjectCap(db, projectPath, options.maxCommits);
|
|
192893
192938
|
log(`[git-commits] no new commits for ${projectPath} (sinceMs=${sinceMs} latestIndexed=${latestIndexed ?? "none"} evicted=${result.evicted})`);
|
|
@@ -193320,6 +193365,12 @@ async function sweepGitCommits(args) {
|
|
|
193320
193365
|
sinceDays: gitCommitIndexing.since_days,
|
|
193321
193366
|
maxCommits: gitCommitIndexing.max_commits
|
|
193322
193367
|
});
|
|
193368
|
+
if (result.nonIndexable) {
|
|
193369
|
+
if (!parkGitSweepNonIndexable(db, projectIdentity, holderId)) {
|
|
193370
|
+
releaseGitSweepLease(db, projectIdentity, holderId);
|
|
193371
|
+
}
|
|
193372
|
+
return;
|
|
193373
|
+
}
|
|
193323
193374
|
let drainedEmbeddings = 0;
|
|
193324
193375
|
if (result.embedded > 0) {
|
|
193325
193376
|
drainedEmbeddings = await embedUnembeddedCommits(db, projectIdentity);
|
|
@@ -194631,7 +194682,7 @@ function summarizeManualDream(s) {
|
|
|
194631
194682
|
if (s.skippedNoWork.length > 0)
|
|
194632
194683
|
lines.push(`Skipped (no work): ${s.skippedNoWork.join(", ")}`);
|
|
194633
194684
|
if (s.deferredBusy.length > 0)
|
|
194634
|
-
lines.push(`Busy
|
|
194685
|
+
lines.push(`Busy: ${s.deferredBusy.join(", ")} — another dream task holds this domain's lease; retry in a minute`);
|
|
194635
194686
|
if (s.ran.length === 0 && s.failed.length === 0 && s.skippedNoWork.length === 0 && s.deferredBusy.length === 0) {
|
|
194636
194687
|
lines.push("No enabled dream tasks to run.");
|
|
194637
194688
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dream-timer.d.ts","sourceRoot":"","sources":["../../src/plugin/dream-timer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AASpE,OAAO,EAEH,KAAK,wBAAwB,EAChC,MAAM,8DAA8D,CAAC;
|
|
1
|
+
{"version":3,"file":"dream-timer.d.ts","sourceRoot":"","sources":["../../src/plugin/dream-timer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AASpE,OAAO,EAEH,KAAK,wBAAwB,EAChC,MAAM,8DAA8D,CAAC;AA6BtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAGpF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAO7C;;;;;GAKG;AACH,UAAU,mBAAmB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE;QAChB,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,CACvB,EAAE,EAAE,QAAQ,EACZ,eAAe,EAAE,MAAM,KACtB,wBAAwB,GAAG,IAAI,CAAC;IACrC;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,CACvB,SAAS,EAAE,MAAM,KAChB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,kBAAkB,GAAG,IAAI,CAAC;CACvE;AA+CD;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CACzC,IAAI,EAAE,mBAAmB,GAC1B,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC,CAyDnC"}
|
package/package.json
CHANGED