@creativeintelligence/abbie 0.1.6 → 0.1.8
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/bin/dev.js +1 -49
- package/bin/run.js +42 -49
- package/dist/cli/commands/project/add.d.ts +0 -1
- package/dist/cli/commands/project/add.js +16 -52
- package/dist/cli/commands/project/list.js +13 -93
- package/dist/cli/commands/project/remove.d.ts +0 -2
- package/dist/cli/commands/project/remove.js +11 -28
- package/dist/cli/commands/session/list.js +3 -12
- package/dist/cli/commands/session/mark-done.js +1 -7
- package/dist/cli/commands/session/start.d.ts +0 -1
- package/dist/cli/commands/session/start.js +5 -7
- package/dist/lib/active-sessions.d.ts +0 -12
- package/dist/lib/active-sessions.js +6 -175
- package/dist/lib/project-path.d.ts +6 -0
- package/dist/lib/project-path.js +21 -0
- package/dist/lib.d.ts +1 -2
- package/dist/lib.js +2 -4
- package/oclif.manifest.json +2569 -6368
- package/package.json +21 -10
- package/dist/cli/commands/backlog/add.d.ts +0 -22
- package/dist/cli/commands/backlog/add.js +0 -65
- package/dist/cli/commands/backlog/claim.d.ts +0 -19
- package/dist/cli/commands/backlog/claim.js +0 -45
- package/dist/cli/commands/backlog/complete.d.ts +0 -18
- package/dist/cli/commands/backlog/complete.js +0 -42
- package/dist/cli/commands/backlog/list.d.ts +0 -20
- package/dist/cli/commands/backlog/list.js +0 -91
- package/dist/cli/commands/backlog/pick.d.ts +0 -18
- package/dist/cli/commands/backlog/pick.js +0 -42
- package/dist/cli/commands/backlog/sync.d.ts +0 -24
- package/dist/cli/commands/backlog/sync.js +0 -109
- package/dist/cli/commands/daemon.d.ts +0 -56
- package/dist/cli/commands/daemon.js +0 -1465
- package/dist/cli/commands/docs/lint.d.ts +0 -18
- package/dist/cli/commands/docs/lint.js +0 -82
- package/dist/cli/commands/docs/sync.d.ts +0 -19
- package/dist/cli/commands/docs/sync.js +0 -76
- package/dist/cli/commands/gc.d.ts +0 -29
- package/dist/cli/commands/gc.js +0 -211
- package/dist/cli/commands/index.d.ts +0 -36
- package/dist/cli/commands/index.js +0 -228
- package/dist/cli/commands/panes/broker.d.ts +0 -17
- package/dist/cli/commands/panes/broker.js +0 -57
- package/dist/cli/commands/panes/pipe-sink.d.ts +0 -17
- package/dist/cli/commands/panes/pipe-sink.js +0 -90
- package/dist/cli/commands/panes/snapshot.d.ts +0 -20
- package/dist/cli/commands/panes/snapshot.js +0 -125
- package/dist/cli/commands/preview/init.d.ts +0 -25
- package/dist/cli/commands/preview/init.js +0 -159
- package/dist/cli/commands/preview/sync.d.ts +0 -23
- package/dist/cli/commands/preview/sync.js +0 -144
- package/dist/cli/commands/preview/watch.d.ts +0 -24
- package/dist/cli/commands/preview/watch.js +0 -153
- package/dist/cli/commands/resource/acquire.d.ts +0 -21
- package/dist/cli/commands/resource/acquire.js +0 -90
- package/dist/cli/commands/resource/list.d.ts +0 -15
- package/dist/cli/commands/resource/list.js +0 -61
- package/dist/cli/commands/resource/release.d.ts +0 -18
- package/dist/cli/commands/resource/release.js +0 -50
- package/dist/cli/commands/resource/wait.d.ts +0 -21
- package/dist/cli/commands/resource/wait.js +0 -73
- package/dist/cli/commands/session/view.d.ts +0 -24
- package/dist/cli/commands/session/view.js +0 -145
- package/dist/cli/commands/start.d.ts +0 -37
- package/dist/cli/commands/start.js +0 -234
- package/dist/cli/commands/triage/claim.d.ts +0 -23
- package/dist/cli/commands/triage/claim.js +0 -186
- package/dist/cli/commands/triage/list.d.ts +0 -22
- package/dist/cli/commands/triage/list.js +0 -112
- package/dist/cli/commands/triage/next.d.ts +0 -18
- package/dist/cli/commands/triage/next.js +0 -63
- package/dist/cli/commands/triage/pull.d.ts +0 -19
- package/dist/cli/commands/triage/pull.js +0 -82
- package/dist/cli/commands/triage/stats.d.ts +0 -16
- package/dist/cli/commands/triage/stats.js +0 -69
- package/dist/cli/commands/tunnel/list.d.ts +0 -16
- package/dist/cli/commands/tunnel/list.js +0 -98
- package/dist/cli/commands/tunnel/start.d.ts +0 -24
- package/dist/cli/commands/tunnel/start.js +0 -107
- package/dist/cli/commands/tunnel/stop.d.ts +0 -20
- package/dist/cli/commands/tunnel/stop.js +0 -90
- package/dist/cli/commands/tunnel/url.d.ts +0 -21
- package/dist/cli/commands/tunnel/url.js +0 -70
- package/dist/cli/commands/windows/context.d.ts +0 -18
- package/dist/cli/commands/windows/context.js +0 -326
- package/dist/cli/commands/windows/focus.d.ts +0 -17
- package/dist/cli/commands/windows/focus.js +0 -103
- package/dist/cli/commands/windows/list.d.ts +0 -21
- package/dist/cli/commands/windows/list.js +0 -172
- package/dist/cli/commands/windows/map.d.ts +0 -17
- package/dist/cli/commands/windows/map.js +0 -168
- package/dist/cli/commands/windows/read.d.ts +0 -21
- package/dist/cli/commands/windows/read.js +0 -241
- package/dist/cli/commands/windows/search.d.ts +0 -24
- package/dist/cli/commands/windows/search.js +0 -171
- package/dist/cli/commands/windows/show.d.ts +0 -19
- package/dist/cli/commands/windows/show.js +0 -165
- package/dist/cli/commands/windows/watch.d.ts +0 -19
- package/dist/cli/commands/windows/watch.js +0 -241
- package/dist/lib/managed-session.d.ts +0 -27
- package/dist/lib/managed-session.js +0 -105
- package/dist/lib/panes/broker.d.ts +0 -130
- package/dist/lib/panes/broker.js +0 -97
- package/dist/lib/panes/index.d.ts +0 -2
- package/dist/lib/panes/index.js +0 -1
- package/dist/lib/panes/server.d.ts +0 -17
- package/dist/lib/panes/server.js +0 -308
- package/dist/lib/preview/manager.d.ts +0 -77
- package/dist/lib/preview/manager.js +0 -369
- package/dist/lib/preview/schema.d.ts +0 -2
- package/dist/lib/preview/schema.js +0 -32
- package/dist/lib/preview/sprite.d.ts +0 -85
- package/dist/lib/preview/sprite.js +0 -321
- package/dist/lib/preview/watcher.d.ts +0 -63
- package/dist/lib/preview/watcher.js +0 -185
- package/dist/lib/project-identity.d.ts +0 -16
- package/dist/lib/project-identity.js +0 -75
- package/dist/lib/tmux/bridge.d.ts +0 -133
- package/dist/lib/tmux/bridge.js +0 -315
- package/dist/lib/tmux/context.d.ts +0 -82
- package/dist/lib/tmux/context.js +0 -239
- package/dist/lib/tmux/index.d.ts +0 -8
- package/dist/lib/tmux/index.js +0 -11
- package/dist/lib/tmux/map.d.ts +0 -57
- package/dist/lib/tmux/map.js +0 -198
- package/dist/lib/tmux/panes.d.ts +0 -27
- package/dist/lib/tmux/panes.js +0 -151
- package/dist/lib/tmux/redaction.d.ts +0 -57
- package/dist/lib/tmux/redaction.js +0 -152
- package/dist/lib/web/analytics.d.ts +0 -63
- package/dist/lib/web/analytics.js +0 -168
- package/dist/lib/web/server.d.ts +0 -26
- package/dist/lib/web/server.js +0 -697
- package/dist/lib/web/tmux-bridge.d.ts +0 -7
- package/dist/lib/web/tmux-bridge.js +0 -7
- package/dist/lib/windows/index.d.ts +0 -3
- package/dist/lib/windows/index.js +0 -2
- package/dist/lib/windows/inventory.d.ts +0 -21
- package/dist/lib/windows/inventory.js +0 -263
- package/dist/lib/windows/types.d.ts +0 -46
- package/dist/lib/windows/types.js +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@creativeintelligence/abbie",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Abbie — agent orchestration CLI",
|
|
@@ -42,11 +42,15 @@
|
|
|
42
42
|
"dirname": "abbie",
|
|
43
43
|
"plugins": [
|
|
44
44
|
"@oclif/plugin-help",
|
|
45
|
-
"@oclif/plugin-not-found"
|
|
45
|
+
"@oclif/plugin-not-found",
|
|
46
|
+
"@oclif/plugin-version"
|
|
46
47
|
],
|
|
47
48
|
"additionalHelpFlags": [
|
|
48
49
|
"-h"
|
|
49
50
|
],
|
|
51
|
+
"additionalVersionFlags": [
|
|
52
|
+
"-v"
|
|
53
|
+
],
|
|
50
54
|
"topicSeparator": " ",
|
|
51
55
|
"description": "Agent orchestration CLI",
|
|
52
56
|
"commands": "./dist/cli/commands",
|
|
@@ -54,23 +58,29 @@
|
|
|
54
58
|
"session": {
|
|
55
59
|
"description": "Manage agent sessions"
|
|
56
60
|
},
|
|
57
|
-
"windows": {
|
|
58
|
-
"description": "Workspace windows inventory"
|
|
59
|
-
},
|
|
60
61
|
"report": {
|
|
61
62
|
"description": "Lifecycle reporting"
|
|
62
63
|
},
|
|
63
|
-
"
|
|
64
|
-
"description": "
|
|
64
|
+
"context": {
|
|
65
|
+
"description": "Session context artifacts"
|
|
66
|
+
},
|
|
67
|
+
"project": {
|
|
68
|
+
"description": "Manage projects"
|
|
65
69
|
},
|
|
66
|
-
"
|
|
67
|
-
"description": "
|
|
70
|
+
"annotation": {
|
|
71
|
+
"description": "Preview annotations"
|
|
68
72
|
},
|
|
69
73
|
"hooks": {
|
|
70
|
-
"description": "Agent
|
|
74
|
+
"description": "Agent lifecycle hooks"
|
|
71
75
|
},
|
|
72
76
|
"reference": {
|
|
73
77
|
"description": "Design reference bank"
|
|
78
|
+
},
|
|
79
|
+
"preview": {
|
|
80
|
+
"description": "Preview deployments"
|
|
81
|
+
},
|
|
82
|
+
"auto": {
|
|
83
|
+
"description": "Autonomous agent orchestration"
|
|
74
84
|
}
|
|
75
85
|
}
|
|
76
86
|
},
|
|
@@ -90,6 +100,7 @@
|
|
|
90
100
|
"@oclif/core": "^4",
|
|
91
101
|
"@oclif/plugin-help": "^6",
|
|
92
102
|
"@oclif/plugin-not-found": "^3",
|
|
103
|
+
"@oclif/plugin-version": "^2.2.36",
|
|
93
104
|
"convex": "^1.31.6",
|
|
94
105
|
"tar-fs": "^3"
|
|
95
106
|
},
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { BaseCommand } from "../../base-command.js";
|
|
2
|
-
export default class BacklogAdd extends BaseCommand {
|
|
3
|
-
static description: string;
|
|
4
|
-
static hidden: boolean;
|
|
5
|
-
static examples: string[];
|
|
6
|
-
static args: {
|
|
7
|
-
project: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
-
};
|
|
9
|
-
static flags: {
|
|
10
|
-
ref: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
-
title: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
-
type: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
-
priority: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
-
source: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
-
format: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
-
quiet: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
17
|
-
"json-errors": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
18
|
-
ndjson: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
19
|
-
};
|
|
20
|
-
protected execute(): Promise<unknown>;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=add.d.ts.map
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { Args, Flags } from "@oclif/core";
|
|
2
|
-
import { getBacklogManager } from "../../../lib/backlog.js";
|
|
3
|
-
import { BaseCommand } from "../../base-command.js";
|
|
4
|
-
export default class BacklogAdd extends BaseCommand {
|
|
5
|
-
static description = "Add an item to the backlog";
|
|
6
|
-
static hidden = false;
|
|
7
|
-
static examples = [
|
|
8
|
-
'<%= config.bin %> backlog add hostagent --ref ZO-123 --title "Fix auth bug"',
|
|
9
|
-
'<%= config.bin %> backlog add hostagent --ref task-1 --title "Refactor API" --type task --priority 2',
|
|
10
|
-
'<%= config.bin %> backlog add hostagent --ref "#456" --title "PR review" --type pr --source github',
|
|
11
|
-
];
|
|
12
|
-
static args = {
|
|
13
|
-
project: Args.string({
|
|
14
|
-
description: "Project name",
|
|
15
|
-
required: true,
|
|
16
|
-
}),
|
|
17
|
-
};
|
|
18
|
-
static flags = {
|
|
19
|
-
...BaseCommand.baseFlags,
|
|
20
|
-
ref: Flags.string({
|
|
21
|
-
char: "r",
|
|
22
|
-
description: "Reference (e.g., ZO-123, #456)",
|
|
23
|
-
required: true,
|
|
24
|
-
}),
|
|
25
|
-
title: Flags.string({
|
|
26
|
-
char: "t",
|
|
27
|
-
description: "Item title",
|
|
28
|
-
required: true,
|
|
29
|
-
}),
|
|
30
|
-
type: Flags.string({
|
|
31
|
-
description: "Item type",
|
|
32
|
-
options: ["issue", "pr", "task"],
|
|
33
|
-
default: "task",
|
|
34
|
-
}),
|
|
35
|
-
priority: Flags.integer({
|
|
36
|
-
char: "p",
|
|
37
|
-
description: "Priority (1=urgent, 4=low)",
|
|
38
|
-
default: 3,
|
|
39
|
-
}),
|
|
40
|
-
source: Flags.string({
|
|
41
|
-
char: "s",
|
|
42
|
-
description: "Source",
|
|
43
|
-
options: ["linear", "github", "manual"],
|
|
44
|
-
default: "manual",
|
|
45
|
-
}),
|
|
46
|
-
};
|
|
47
|
-
async execute() {
|
|
48
|
-
const { args, flags } = await this.parse(BacklogAdd);
|
|
49
|
-
this.parsedFlags = flags;
|
|
50
|
-
const backlog = getBacklogManager();
|
|
51
|
-
const item = backlog.add({
|
|
52
|
-
type: flags.type,
|
|
53
|
-
ref: flags.ref,
|
|
54
|
-
title: flags.title,
|
|
55
|
-
project: args.project,
|
|
56
|
-
priority: flags.priority,
|
|
57
|
-
source: flags.source,
|
|
58
|
-
});
|
|
59
|
-
if (flags.json || flags.format === "json") {
|
|
60
|
-
return item;
|
|
61
|
-
}
|
|
62
|
-
this.logInfo(`Added: ${item.ref} (${item.id})`);
|
|
63
|
-
return item;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { BaseCommand } from "../../base-command.js";
|
|
2
|
-
export default class BacklogClaim extends BaseCommand {
|
|
3
|
-
static description: string;
|
|
4
|
-
static hidden: boolean;
|
|
5
|
-
static examples: string[];
|
|
6
|
-
static args: {
|
|
7
|
-
project: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
-
item_id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
9
|
-
};
|
|
10
|
-
static flags: {
|
|
11
|
-
session: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
-
format: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
-
quiet: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
|
-
"json-errors": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
15
|
-
ndjson: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
16
|
-
};
|
|
17
|
-
protected execute(): Promise<unknown>;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=claim.d.ts.map
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { Args, Flags } from "@oclif/core";
|
|
2
|
-
import { getBacklogManager } from "../../../lib/backlog.js";
|
|
3
|
-
import { BaseCommand } from "../../base-command.js";
|
|
4
|
-
export default class BacklogClaim extends BaseCommand {
|
|
5
|
-
static description = "Claim a backlog item for a session";
|
|
6
|
-
static hidden = false;
|
|
7
|
-
static examples = [
|
|
8
|
-
"<%= config.bin %> backlog claim hostagent ITEM_ID --session SESSION_ID",
|
|
9
|
-
"<%= config.bin %> backlog claim hostagent ITEM_ID --session SESSION_ID --json",
|
|
10
|
-
];
|
|
11
|
-
static args = {
|
|
12
|
-
project: Args.string({
|
|
13
|
-
description: "Project name",
|
|
14
|
-
required: true,
|
|
15
|
-
}),
|
|
16
|
-
item_id: Args.string({
|
|
17
|
-
description: "Item ID to claim",
|
|
18
|
-
required: true,
|
|
19
|
-
}),
|
|
20
|
-
};
|
|
21
|
-
static flags = {
|
|
22
|
-
...BaseCommand.baseFlags,
|
|
23
|
-
session: Flags.string({
|
|
24
|
-
char: "s",
|
|
25
|
-
description: "Session ID claiming the item",
|
|
26
|
-
required: true,
|
|
27
|
-
}),
|
|
28
|
-
};
|
|
29
|
-
async execute() {
|
|
30
|
-
const { args, flags } = await this.parse(BacklogClaim);
|
|
31
|
-
this.parsedFlags = flags;
|
|
32
|
-
const backlog = getBacklogManager();
|
|
33
|
-
const result = backlog.claim(args.project, args.item_id, flags.session);
|
|
34
|
-
if (flags.json || flags.format === "json") {
|
|
35
|
-
return result;
|
|
36
|
-
}
|
|
37
|
-
if (result.success) {
|
|
38
|
-
this.logInfo(`Claimed: ${result.item?.ref}`);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
this.logInfo(`Failed to claim: ${result.reason}`);
|
|
42
|
-
}
|
|
43
|
-
return result;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { BaseCommand } from "../../base-command.js";
|
|
2
|
-
export default class BacklogComplete extends BaseCommand {
|
|
3
|
-
static description: string;
|
|
4
|
-
static hidden: boolean;
|
|
5
|
-
static examples: string[];
|
|
6
|
-
static args: {
|
|
7
|
-
project: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
-
item_id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
9
|
-
};
|
|
10
|
-
static flags: {
|
|
11
|
-
format: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
-
quiet: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
|
-
"json-errors": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
|
-
ndjson: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
15
|
-
};
|
|
16
|
-
protected execute(): Promise<unknown>;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=complete.d.ts.map
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { Args } from "@oclif/core";
|
|
2
|
-
import { getBacklogManager } from "../../../lib/backlog.js";
|
|
3
|
-
import { BaseCommand } from "../../base-command.js";
|
|
4
|
-
export default class BacklogComplete extends BaseCommand {
|
|
5
|
-
static description = "Mark a backlog item as complete";
|
|
6
|
-
static hidden = false;
|
|
7
|
-
static examples = [
|
|
8
|
-
"<%= config.bin %> backlog complete hostagent ITEM_ID",
|
|
9
|
-
"<%= config.bin %> backlog complete hostagent ITEM_ID --json",
|
|
10
|
-
];
|
|
11
|
-
static args = {
|
|
12
|
-
project: Args.string({
|
|
13
|
-
description: "Project name",
|
|
14
|
-
required: true,
|
|
15
|
-
}),
|
|
16
|
-
item_id: Args.string({
|
|
17
|
-
description: "Item ID to complete",
|
|
18
|
-
required: true,
|
|
19
|
-
}),
|
|
20
|
-
};
|
|
21
|
-
static flags = {
|
|
22
|
-
...BaseCommand.baseFlags,
|
|
23
|
-
};
|
|
24
|
-
async execute() {
|
|
25
|
-
const { args, flags } = await this.parse(BacklogComplete);
|
|
26
|
-
this.parsedFlags = flags;
|
|
27
|
-
const backlog = getBacklogManager();
|
|
28
|
-
const item = backlog.complete(args.project, args.item_id);
|
|
29
|
-
if (!item) {
|
|
30
|
-
if (flags.json || flags.format === "json") {
|
|
31
|
-
return { success: false, reason: "Item not found" };
|
|
32
|
-
}
|
|
33
|
-
this.logInfo("Item not found");
|
|
34
|
-
return { success: false };
|
|
35
|
-
}
|
|
36
|
-
if (flags.json || flags.format === "json") {
|
|
37
|
-
return { success: true, item };
|
|
38
|
-
}
|
|
39
|
-
this.logInfo(`Completed: ${item.ref}`);
|
|
40
|
-
return { success: true, item };
|
|
41
|
-
}
|
|
42
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { BaseCommand } from "../../base-command.js";
|
|
2
|
-
export default class BacklogList extends BaseCommand {
|
|
3
|
-
static description: string;
|
|
4
|
-
static hidden: boolean;
|
|
5
|
-
static examples: string[];
|
|
6
|
-
static args: {
|
|
7
|
-
project: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
-
};
|
|
9
|
-
static flags: {
|
|
10
|
-
status: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
-
format: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
-
quiet: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
|
-
"json-errors": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
|
-
ndjson: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
15
|
-
};
|
|
16
|
-
protected execute(): Promise<unknown>;
|
|
17
|
-
private getStatusIcon;
|
|
18
|
-
private getPriorityIcon;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=list.d.ts.map
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { Args, Flags } from "@oclif/core";
|
|
2
|
-
import { getBacklogManager } from "../../../lib/backlog.js";
|
|
3
|
-
import { BaseCommand } from "../../base-command.js";
|
|
4
|
-
export default class BacklogList extends BaseCommand {
|
|
5
|
-
static description = "List backlog items for a project";
|
|
6
|
-
static hidden = false;
|
|
7
|
-
static examples = [
|
|
8
|
-
"<%= config.bin %> backlog list hostagent",
|
|
9
|
-
"<%= config.bin %> backlog list hostagent --status pending",
|
|
10
|
-
"<%= config.bin %> backlog list hostagent --json",
|
|
11
|
-
];
|
|
12
|
-
static args = {
|
|
13
|
-
project: Args.string({
|
|
14
|
-
description: "Project name",
|
|
15
|
-
required: true,
|
|
16
|
-
}),
|
|
17
|
-
};
|
|
18
|
-
static flags = {
|
|
19
|
-
...BaseCommand.baseFlags,
|
|
20
|
-
status: Flags.string({
|
|
21
|
-
char: "s",
|
|
22
|
-
description: "Filter by status",
|
|
23
|
-
options: ["pending", "claimed", "in_progress", "blocked", "completed", "abandoned"],
|
|
24
|
-
}),
|
|
25
|
-
};
|
|
26
|
-
async execute() {
|
|
27
|
-
const { args, flags } = await this.parse(BacklogList);
|
|
28
|
-
this.parsedFlags = flags;
|
|
29
|
-
const backlog = getBacklogManager();
|
|
30
|
-
let items = backlog.listItems(args.project);
|
|
31
|
-
if (flags.status) {
|
|
32
|
-
items = items.filter((item) => item.status === flags.status);
|
|
33
|
-
}
|
|
34
|
-
if (flags.json || flags.format === "json") {
|
|
35
|
-
return items;
|
|
36
|
-
}
|
|
37
|
-
// NDJSON: one item per line
|
|
38
|
-
if (this.ndjsonEnabled()) {
|
|
39
|
-
this.outputNdjson(items);
|
|
40
|
-
return items;
|
|
41
|
-
}
|
|
42
|
-
if (items.length === 0) {
|
|
43
|
-
this.logInfo(`No items in ${args.project} backlog`);
|
|
44
|
-
return [];
|
|
45
|
-
}
|
|
46
|
-
this.logInfo(`${args.project} backlog (${items.length} items):\n`);
|
|
47
|
-
for (const item of items) {
|
|
48
|
-
const statusIcon = this.getStatusIcon(item.status);
|
|
49
|
-
const priorityIcon = this.getPriorityIcon(item.priority);
|
|
50
|
-
this.log(`${statusIcon} ${item.ref}: ${item.title}`);
|
|
51
|
-
this.log(` ${priorityIcon} Priority ${item.priority} | Source: ${item.source}`);
|
|
52
|
-
if (item.claimed_by) {
|
|
53
|
-
this.log(` Claimed by: ${item.claimed_by}`);
|
|
54
|
-
}
|
|
55
|
-
this.log("");
|
|
56
|
-
}
|
|
57
|
-
return items;
|
|
58
|
-
}
|
|
59
|
-
getStatusIcon(status) {
|
|
60
|
-
switch (status) {
|
|
61
|
-
case "pending":
|
|
62
|
-
return "⏳";
|
|
63
|
-
case "claimed":
|
|
64
|
-
return "🔒";
|
|
65
|
-
case "in_progress":
|
|
66
|
-
return "🚀";
|
|
67
|
-
case "blocked":
|
|
68
|
-
return "🔴";
|
|
69
|
-
case "completed":
|
|
70
|
-
return "✅";
|
|
71
|
-
case "abandoned":
|
|
72
|
-
return "❌";
|
|
73
|
-
default:
|
|
74
|
-
return "•";
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
getPriorityIcon(priority) {
|
|
78
|
-
switch (priority) {
|
|
79
|
-
case 1:
|
|
80
|
-
return "🔥";
|
|
81
|
-
case 2:
|
|
82
|
-
return "⚡";
|
|
83
|
-
case 3:
|
|
84
|
-
return "📌";
|
|
85
|
-
case 4:
|
|
86
|
-
return "📋";
|
|
87
|
-
default:
|
|
88
|
-
return "•";
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { BaseCommand } from "../../base-command.js";
|
|
2
|
-
export default class BacklogPick extends BaseCommand {
|
|
3
|
-
static description: string;
|
|
4
|
-
static hidden: boolean;
|
|
5
|
-
static examples: string[];
|
|
6
|
-
static args: {
|
|
7
|
-
project: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
-
};
|
|
9
|
-
static flags: {
|
|
10
|
-
session: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
-
format: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
-
quiet: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
|
-
"json-errors": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
|
-
ndjson: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
15
|
-
};
|
|
16
|
-
protected execute(): Promise<unknown>;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=pick.d.ts.map
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { Args, Flags } from "@oclif/core";
|
|
2
|
-
import { getBacklogManager } from "../../../lib/backlog.js";
|
|
3
|
-
import { BaseCommand } from "../../base-command.js";
|
|
4
|
-
export default class BacklogPick extends BaseCommand {
|
|
5
|
-
static description = "Pick and claim the next available backlog item";
|
|
6
|
-
static hidden = false;
|
|
7
|
-
static examples = [
|
|
8
|
-
"<%= config.bin %> backlog pick hostagent --session SESSION_ID",
|
|
9
|
-
"<%= config.bin %> backlog pick hostagent --session SESSION_ID --json",
|
|
10
|
-
];
|
|
11
|
-
static args = {
|
|
12
|
-
project: Args.string({
|
|
13
|
-
description: "Project name",
|
|
14
|
-
required: true,
|
|
15
|
-
}),
|
|
16
|
-
};
|
|
17
|
-
static flags = {
|
|
18
|
-
...BaseCommand.baseFlags,
|
|
19
|
-
session: Flags.string({
|
|
20
|
-
char: "s",
|
|
21
|
-
description: "Session ID claiming the item",
|
|
22
|
-
required: true,
|
|
23
|
-
}),
|
|
24
|
-
};
|
|
25
|
-
async execute() {
|
|
26
|
-
const { args, flags } = await this.parse(BacklogPick);
|
|
27
|
-
this.parsedFlags = flags;
|
|
28
|
-
const backlog = getBacklogManager();
|
|
29
|
-
const result = backlog.pickNext(args.project, flags.session);
|
|
30
|
-
if (flags.json || flags.format === "json") {
|
|
31
|
-
return result;
|
|
32
|
-
}
|
|
33
|
-
if (result.success && result.item) {
|
|
34
|
-
this.logInfo(`Picked: ${result.item.ref} - ${result.item.title}`);
|
|
35
|
-
this.log(result.item.id);
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
this.logInfo(result.reason || "No items available");
|
|
39
|
-
}
|
|
40
|
-
return result;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { BaseCommand } from "../../base-command.js";
|
|
2
|
-
export default class BacklogSync extends BaseCommand {
|
|
3
|
-
static description: string;
|
|
4
|
-
static hidden: boolean;
|
|
5
|
-
static examples: string[];
|
|
6
|
-
static args: {
|
|
7
|
-
project: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
-
};
|
|
9
|
-
static flags: {
|
|
10
|
-
source: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
-
team: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
-
repo: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
-
state: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
-
workspace: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
-
format: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
-
quiet: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
17
|
-
"json-errors": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
18
|
-
ndjson: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
19
|
-
};
|
|
20
|
-
protected execute(): Promise<unknown>;
|
|
21
|
-
private fetchLinearIssues;
|
|
22
|
-
private fetchGitHubItems;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=sync.d.ts.map
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { execSync } from "node:child_process";
|
|
2
|
-
import { Args, Flags } from "@oclif/core";
|
|
3
|
-
import { getBacklogManager } from "../../../lib/backlog.js";
|
|
4
|
-
import { BaseCommand } from "../../base-command.js";
|
|
5
|
-
export default class BacklogSync extends BaseCommand {
|
|
6
|
-
static description = "Sync backlog from Linear or GitHub";
|
|
7
|
-
static hidden = false;
|
|
8
|
-
static examples = [
|
|
9
|
-
"<%= config.bin %> backlog sync hostagent --source linear --team ZO",
|
|
10
|
-
"<%= config.bin %> backlog sync hostagent --source github --repo owner/repo",
|
|
11
|
-
'<%= config.bin %> backlog sync hostagent --source linear --team ZO --state "Ready"',
|
|
12
|
-
];
|
|
13
|
-
static args = {
|
|
14
|
-
project: Args.string({
|
|
15
|
-
description: "Project name",
|
|
16
|
-
required: true,
|
|
17
|
-
}),
|
|
18
|
-
};
|
|
19
|
-
static flags = {
|
|
20
|
-
...BaseCommand.baseFlags,
|
|
21
|
-
source: Flags.string({
|
|
22
|
-
char: "s",
|
|
23
|
-
description: "Source to sync from",
|
|
24
|
-
required: true,
|
|
25
|
-
options: ["linear", "github"],
|
|
26
|
-
}),
|
|
27
|
-
team: Flags.string({
|
|
28
|
-
char: "t",
|
|
29
|
-
description: "Linear team (required for linear source)",
|
|
30
|
-
}),
|
|
31
|
-
repo: Flags.string({
|
|
32
|
-
char: "r",
|
|
33
|
-
description: "GitHub repo (required for github source)",
|
|
34
|
-
}),
|
|
35
|
-
state: Flags.string({
|
|
36
|
-
description: "Linear state filter",
|
|
37
|
-
default: "Ready",
|
|
38
|
-
}),
|
|
39
|
-
workspace: Flags.string({
|
|
40
|
-
char: "w",
|
|
41
|
-
description: "Linear workspace",
|
|
42
|
-
}),
|
|
43
|
-
};
|
|
44
|
-
async execute() {
|
|
45
|
-
const { args, flags } = await this.parse(BacklogSync);
|
|
46
|
-
this.parsedFlags = flags;
|
|
47
|
-
const backlog = getBacklogManager();
|
|
48
|
-
let added = 0;
|
|
49
|
-
if (flags.source === "linear") {
|
|
50
|
-
if (!flags.team) {
|
|
51
|
-
this.error("--team is required for linear source");
|
|
52
|
-
}
|
|
53
|
-
const issues = this.fetchLinearIssues(flags.team, flags.state, flags.workspace);
|
|
54
|
-
added = backlog.syncFromLinear(args.project, issues);
|
|
55
|
-
}
|
|
56
|
-
else if (flags.source === "github") {
|
|
57
|
-
if (!flags.repo) {
|
|
58
|
-
this.error("--repo is required for github source");
|
|
59
|
-
}
|
|
60
|
-
const items = this.fetchGitHubItems(flags.repo);
|
|
61
|
-
added = backlog.syncFromGitHub(args.project, items);
|
|
62
|
-
}
|
|
63
|
-
const result = { source: flags.source, added };
|
|
64
|
-
if (flags.json || flags.format === "json") {
|
|
65
|
-
return result;
|
|
66
|
-
}
|
|
67
|
-
this.logInfo(`Synced from ${flags.source}: ${added} items added`);
|
|
68
|
-
return result;
|
|
69
|
-
}
|
|
70
|
-
fetchLinearIssues(team, state, workspace) {
|
|
71
|
-
try {
|
|
72
|
-
const wsFlag = workspace ? `--workspace ${workspace}` : "";
|
|
73
|
-
const cmd = `linear issue list --team ${team} --state "${state}" ${wsFlag} --json --quiet`;
|
|
74
|
-
const output = execSync(cmd, { encoding: "utf-8" });
|
|
75
|
-
const issues = JSON.parse(output);
|
|
76
|
-
return issues.map((issue) => ({
|
|
77
|
-
id: issue.id,
|
|
78
|
-
title: issue.title,
|
|
79
|
-
priority: issue.priority || 3,
|
|
80
|
-
identifier: issue.identifier,
|
|
81
|
-
}));
|
|
82
|
-
}
|
|
83
|
-
catch {
|
|
84
|
-
return [];
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
fetchGitHubItems(repo) {
|
|
88
|
-
try {
|
|
89
|
-
// Fetch issues
|
|
90
|
-
const issuesCmd = `gh issue list --repo ${repo} --json number,title --limit 50`;
|
|
91
|
-
const issuesOutput = execSync(issuesCmd, { encoding: "utf-8" });
|
|
92
|
-
const issues = JSON.parse(issuesOutput).map((i) => ({
|
|
93
|
-
...i,
|
|
94
|
-
type: "issue",
|
|
95
|
-
}));
|
|
96
|
-
// Fetch PRs
|
|
97
|
-
const prsCmd = `gh pr list --repo ${repo} --json number,title --limit 50`;
|
|
98
|
-
const prsOutput = execSync(prsCmd, { encoding: "utf-8" });
|
|
99
|
-
const prs = JSON.parse(prsOutput).map((p) => ({
|
|
100
|
-
...p,
|
|
101
|
-
type: "pr",
|
|
102
|
-
}));
|
|
103
|
-
return [...issues, ...prs];
|
|
104
|
-
}
|
|
105
|
-
catch {
|
|
106
|
-
return [];
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { BaseCommand } from "../base-command.js";
|
|
2
|
-
export default class DaemonCommand extends BaseCommand {
|
|
3
|
-
static description: string;
|
|
4
|
-
static hidden: boolean;
|
|
5
|
-
static flags: {
|
|
6
|
-
interval: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
-
"tmux-session": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
-
"all-sessions": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
9
|
-
"windows-only": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
-
redact: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
-
"enable-input": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
12
|
-
"input-token": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
-
format: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
-
quiet: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
15
|
-
"json-errors": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
16
|
-
ndjson: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
17
|
-
};
|
|
18
|
-
protected execute(): Promise<unknown>;
|
|
19
|
-
private syncWindows;
|
|
20
|
-
private syncPanes;
|
|
21
|
-
private syncNvimBufferContent;
|
|
22
|
-
private syncDeviceHeartbeat;
|
|
23
|
-
private syncDesktopHeartbeat;
|
|
24
|
-
private syncSessions;
|
|
25
|
-
private lastProjectsHash;
|
|
26
|
-
private desktopProviderRegistered;
|
|
27
|
-
private clerkId;
|
|
28
|
-
private desktopProviderId;
|
|
29
|
-
private desktopConnectionId;
|
|
30
|
-
private sandboxServerProcesses;
|
|
31
|
-
private syncProjects;
|
|
32
|
-
private lastProjectsPushHash;
|
|
33
|
-
/**
|
|
34
|
-
* Push local project configs (.abbie/config.json) UP to Convex projects table.
|
|
35
|
-
* Idempotent — uses hash dedup to avoid redundant mutations.
|
|
36
|
-
*/
|
|
37
|
-
private pushLocalProjects;
|
|
38
|
-
private runCommandQueueWorker;
|
|
39
|
-
/**
|
|
40
|
-
* Background worker that polls the sandbox command queue for pending
|
|
41
|
-
* commands (startServer, stopServer, exec) and executes them locally.
|
|
42
|
-
*/
|
|
43
|
-
private runSandboxCommandWorker;
|
|
44
|
-
/**
|
|
45
|
-
* Execute a single sandbox command locally.
|
|
46
|
-
* Handles startServer (spawn detached process), stopServer (kill by PID),
|
|
47
|
-
* and exec (run command and capture output).
|
|
48
|
-
*/
|
|
49
|
-
private executeSandboxCommand;
|
|
50
|
-
/**
|
|
51
|
-
* Execute a queued command from the chat agent.
|
|
52
|
-
* Currently supports "abbie session start" for spawning local agent sessions.
|
|
53
|
-
*/
|
|
54
|
-
private executeQueuedCommand;
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=daemon.d.ts.map
|