@rse/ase 1.0.6 → 2.0.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.
- package/dst/ase-agent-definition-api.d.ts +184 -0
- package/dst/ase-agent-definition-api.js +6 -0
- package/dst/ase-agent-definition-builtin/condenser.js +42 -0
- package/dst/ase-agent-definition-builtin/editor.js +45 -0
- package/dst/ase-agent-definition-builtin/estimator.js +98 -0
- package/dst/ase-agent-definition-builtin/implementer.js +121 -0
- package/dst/ase-agent-definition-builtin/integrator.js +56 -0
- package/dst/ase-agent-definition-builtin/qualifier.js +61 -0
- package/dst/ase-agent-definition-builtin/rebooter.js +41 -0
- package/dst/ase-agent-definition-builtin/researcher.js +77 -0
- package/dst/ase-agent-definition-core.js +827 -0
- package/dst/ase-agent-fleet.js +772 -0
- package/dst/ase-agent-process.js +232 -0
- package/dst/ase-agent-relay-client.js +509 -0
- package/dst/ase-agent-relay-core.js +213 -0
- package/dst/ase-agent-relay-server-bind.js +242 -0
- package/dst/ase-agent-relay-server-cli.js +50 -0
- package/dst/ase-agent-runtime-claim.js +189 -0
- package/dst/ase-agent-runtime-engine.js +1100 -0
- package/dst/ase-agent-runtime-exec.js +275 -0
- package/dst/ase-agent-runtime-phase.js +581 -0
- package/dst/ase-agent-runtime-request.js +272 -0
- package/dst/ase-agent-runtime-tool.js +207 -0
- package/dst/ase-agent-runtime.js +1316 -0
- package/dst/ase-agent.js +65 -0
- package/dst/ase-artifact.js +6 -5
- package/dst/ase-config-core.js +465 -0
- package/dst/ase-config-schema.js +351 -0
- package/dst/ase-config-scope.js +172 -0
- package/dst/ase-config.js +25 -585
- package/dst/ase-hook.js +230 -116
- package/dst/ase-lib-daemon-cli.js +130 -0
- package/dst/ase-lib-hash.js +20 -0
- package/dst/{ase-log.js → ase-lib-log.js} +40 -7
- package/dst/ase-lib-server-bind.js +115 -0
- package/dst/ase-lib-server-cli.js +474 -0
- package/dst/{ase-table.js → ase-lib-table.js} +1 -1
- package/dst/{ase-version.js → ase-lib-version.js} +3 -0
- package/dst/ase-man.js +96 -0
- package/dst/ase-mcp.js +166 -13
- package/dst/{ase-getopt.js → ase-service-getopt.js} +82 -80
- package/dst/{ase-markdown.js → ase-service-markdown.js} +18 -11
- package/dst/ase-service-otel.js +1246 -0
- package/dst/{ase-skills.js → ase-service-skills.js} +29 -64
- package/dst/ase-service-state.js +101 -0
- package/dst/ase-service.js +251 -76
- package/dst/ase-setup-common.js +141 -0
- package/dst/ase-setup-mcp.js +359 -0
- package/dst/ase-setup-settings.js +837 -0
- package/dst/ase-setup.js +113 -869
- package/dst/ase-spec.js +31 -19
- package/dst/ase-statusline.js +108 -43
- package/dst/ase-task-board-core.js +739 -0
- package/dst/ase-task-board-filter.js +127 -0
- package/dst/ase-task-board-flow.js +237 -0
- package/dst/ase-task-board-graph.js +497 -0
- package/dst/ase-task-board-stats.js +263 -0
- package/dst/ase-task-board-tui-control.js +775 -0
- package/dst/ase-task-board-tui-model.js +1008 -0
- package/dst/ase-task-board-tui-popup.js +626 -0
- package/dst/ase-task-board-tui-style.js +106 -0
- package/dst/ase-task-board-tui-view.js +847 -0
- package/dst/ase-task-board-tui.js +189 -0
- package/dst/ase-task-board-web-client.css +1 -0
- package/dst/ase-task-board-web-client.html +20 -0
- package/dst/ase-task-board-web-client.js +81 -0
- package/dst/ase-task-board-web-server.js +823 -0
- package/dst/ase-task-board.js +134 -0
- package/dst/ase-task-format.js +757 -0
- package/dst/ase-task-request.js +208 -0
- package/dst/ase-task-store-client.js +495 -0
- package/dst/ase-task-store-core.js +804 -0
- package/dst/ase-task-store-issues.js +237 -0
- package/dst/ase-task-store-plugin-api.js +6 -0
- package/dst/ase-task-store-plugin-ase.js +484 -0
- package/dst/ase-task-store-plugin-delegate.js +137 -0
- package/dst/ase-task-store-plugin-gitea.js +666 -0
- package/dst/ase-task-store-plugin-github.js +696 -0
- package/dst/ase-task-store-plugin-gitlab.js +668 -0
- package/dst/ase-task-store-server-bind.js +538 -0
- package/dst/ase-task-store-server-cli.js +154 -0
- package/dst/ase-task.js +1335 -357
- package/dst/{ase-compat.js → ase-util-compat.js} +2 -2
- package/dst/{ase-diagram.js → ase-util-diagram.js} +107 -32
- package/dst/{ase-meta.js → ase-util-meta.js} +2 -2
- package/dst/{ase-metric.js → ase-util-metric.js} +2 -2
- package/dst/{ase-mint.js → ase-util-mint.js} +19 -12
- package/dst/{ase-worktree.js → ase-util-worktree.js} +30 -19
- package/dst/ase-util.js +20 -0
- package/dst/ase.js +108 -32
- package/dst/man/ase-agent-adhoc.1 +515 -0
- package/dst/man/ase-agent-condenser.1 +193 -0
- package/dst/man/ase-agent-editor.1 +212 -0
- package/dst/man/ase-agent-estimator.1 +214 -0
- package/dst/man/ase-agent-fleet.1 +185 -0
- package/dst/man/ase-agent-implementer.1 +233 -0
- package/dst/man/ase-agent-integrator.1 +213 -0
- package/dst/man/ase-agent-qualifier.1 +214 -0
- package/dst/man/ase-agent-rebooter.1 +193 -0
- package/dst/man/ase-agent-relay.1 +128 -0
- package/dst/man/ase-agent-researcher.1 +217 -0
- package/dst/man/ase-agent.1 +264 -0
- package/dst/man/ase-artifact-list.1 +38 -0
- package/dst/man/ase-artifact-name.1 +39 -0
- package/dst/man/ase-artifact.1 +56 -0
- package/dst/man/ase-config-delete.1 +45 -0
- package/dst/man/ase-config-edit.1 +48 -0
- package/dst/man/ase-config-get.1 +46 -0
- package/dst/man/ase-config-init.1 +60 -0
- package/dst/man/ase-config-list.1 +42 -0
- package/dst/man/ase-config-set.1 +52 -0
- package/dst/man/ase-config.1 +225 -0
- package/dst/man/ase-hook-permission-request.1 +36 -0
- package/dst/man/ase-hook-pre-tool-use.1 +59 -0
- package/dst/man/ase-hook-session-end.1 +47 -0
- package/dst/man/ase-hook-session-persona.1 +37 -0
- package/dst/man/ase-hook-session-start.1 +81 -0
- package/dst/man/ase-hook-stop.1 +34 -0
- package/dst/man/ase-hook-user-prompt-submit.1 +34 -0
- package/dst/man/ase-hook.1 +51 -0
- package/dst/man/ase-man.1 +67 -0
- package/dst/man/ase-mcp.1 +61 -0
- package/dst/man/ase-service-log.1 +43 -0
- package/dst/man/ase-service-send.1 +47 -0
- package/dst/man/ase-service-start.1 +54 -0
- package/dst/man/ase-service-status.1 +46 -0
- package/dst/man/ase-service-stop.1 +37 -0
- package/dst/man/ase-service.1 +85 -0
- package/dst/man/ase-setup-disable.1 +44 -0
- package/dst/man/ase-setup-enable.1 +45 -0
- package/dst/man/ase-setup-install.1 +73 -0
- package/dst/man/ase-setup-mcp.1 +124 -0
- package/dst/man/ase-setup-status.1 +60 -0
- package/dst/man/ase-setup-statusline.1 +92 -0
- package/dst/man/ase-setup-telemetry.1 +92 -0
- package/dst/man/ase-setup-uninstall.1 +59 -0
- package/dst/man/ase-setup-update.1 +64 -0
- package/dst/man/ase-setup.1 +93 -0
- package/dst/man/ase-spec-export.1 +62 -0
- package/dst/man/ase-spec-lint.1 +40 -0
- package/dst/man/ase-spec-preview.1 +40 -0
- package/dst/man/ase-spec.1 +46 -0
- package/dst/man/ase-statusline.1 +189 -0
- package/dst/man/ase-task-assign.1 +71 -0
- package/dst/man/ase-task-board.1 +384 -0
- package/dst/man/ase-task-delete.1 +35 -0
- package/dst/man/ase-task-edit.1 +46 -0
- package/dst/man/ase-task-idscheme.1 +65 -0
- package/dst/man/ase-task-lifecycle.1 +57 -0
- package/dst/man/ase-task-list.1 +47 -0
- package/dst/man/ase-task-load.1 +36 -0
- package/dst/man/ase-task-newid.1 +61 -0
- package/dst/man/ase-task-purge.1 +37 -0
- package/dst/man/ase-task-rename.1 +44 -0
- package/dst/man/ase-task-request.1 +61 -0
- package/dst/man/ase-task-save.1 +48 -0
- package/dst/man/ase-task-status.1 +55 -0
- package/dst/man/ase-task-store.1 +194 -0
- package/dst/man/ase-task-view.1 +40 -0
- package/dst/man/ase-task.1 +160 -0
- package/dst/man/ase-util-compat.1 +25 -0
- package/dst/man/ase-util-diagram.1 +76 -0
- package/dst/man/ase-util-meta.1 +45 -0
- package/dst/man/ase-util-metric.1 +54 -0
- package/dst/man/ase-util-mint.1 +59 -0
- package/dst/man/ase-util-worktree.1 +72 -0
- package/dst/man/ase-util.1 +50 -0
- package/dst/man/ase.1 +124 -0
- package/package.json +79 -21
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/.github/plugin/plugin.json +1 -1
- package/plugin/agents/ase-meta-diagram.md +12 -8
- package/plugin/agents/ase-repo-review.md +322 -0
- package/plugin/hooks/hooks-codex.json +5 -0
- package/plugin/hooks/hooks-copilot.json +5 -0
- package/plugin/hooks/hooks.json +8 -0
- package/plugin/meta/ase-common-approach.md +117 -0
- package/plugin/meta/ase-common-changeset.md +256 -0
- package/plugin/meta/ase-common-code.md +10 -173
- package/plugin/meta/ase-common-grill.md +317 -0
- package/plugin/meta/ase-common-resolve.md +305 -0
- package/plugin/meta/ase-common-task.md +83 -4
- package/plugin/meta/ase-constitution.md +0 -2
- package/plugin/meta/ase-format-specbook.md +208 -25
- package/plugin/meta/ase-format-specbook.yaml +242 -851
- package/plugin/meta/ase-format-task.md +669 -125
- package/plugin/meta/ase-persona.md +3 -4
- package/plugin/meta/ase-skill.md +9 -0
- package/plugin/mods/ase-mods.ts +409 -0
- package/plugin/mods/claude-code.d.ts +13417 -0
- package/plugin/skills/ase-arch-analyze/SKILL.md +1 -1
- package/plugin/skills/ase-arch-analyze/help.md +2 -2
- package/plugin/skills/ase-code-analyze/SKILL.md +59 -8
- package/plugin/skills/ase-code-analyze/help.md +29 -4
- package/plugin/skills/ase-code-edit/SKILL.md +107 -181
- package/plugin/skills/ase-code-edit/help.md +118 -31
- package/plugin/skills/ase-code-lint/SKILL.md +64 -13
- package/plugin/skills/ase-code-lint/help.md +32 -2
- package/plugin/skills/ase-docs-proofread/SKILL.md +4 -4
- package/plugin/skills/ase-docs-proofread/help.md +1 -1
- package/plugin/skills/ase-docs-refine/SKILL.md +4 -4
- package/plugin/skills/ase-docs-shorten/SKILL.md +4 -4
- package/plugin/skills/ase-help-intent/data.md +2164 -1087
- package/plugin/skills/ase-help-intent/help.md +1 -1
- package/plugin/skills/ase-help-skill/catalog.md +12 -9
- package/plugin/skills/ase-meta-brainstorm/SKILL.md +1 -1
- package/plugin/skills/ase-meta-config/SKILL.md +3 -4
- package/plugin/skills/ase-meta-config/help.md +31 -10
- package/plugin/skills/ase-meta-mint/SKILL.md +5 -5
- package/plugin/skills/ase-meta-mint/help.md +10 -5
- package/plugin/skills/ase-meta-why/help.md +1 -1
- package/plugin/skills/ase-meta-workflow/SKILL.md +7 -7
- package/plugin/skills/ase-meta-workflow/help.md +4 -4
- package/plugin/skills/ase-meta-workflow/sample.md +3 -3
- package/plugin/skills/ase-meta-workflow/workflow.txt +22 -18
- package/plugin/skills/{ase-meta-changelog → ase-repo-changelog}/SKILL.md +4 -3
- package/plugin/skills/{ase-meta-changelog → ase-repo-changelog}/help.md +5 -5
- package/plugin/skills/{ase-meta-commit → ase-repo-commit}/SKILL.md +6 -6
- package/plugin/skills/{ase-meta-commit → ase-repo-commit}/help.md +5 -5
- package/plugin/skills/{ase-meta-diff → ase-repo-diff}/SKILL.md +6 -6
- package/plugin/skills/{ase-meta-diff → ase-repo-diff}/help.md +8 -8
- package/plugin/skills/{ase-code-dissect → ase-repo-dissect}/SKILL.md +19 -19
- package/plugin/skills/{ase-code-dissect → ase-repo-dissect}/help.md +10 -12
- package/plugin/skills/ase-repo-merge/SKILL.md +346 -0
- package/plugin/skills/ase-repo-merge/help.md +107 -0
- package/plugin/skills/ase-repo-resolve/SKILL.md +158 -0
- package/plugin/skills/ase-repo-resolve/help.md +102 -0
- package/plugin/skills/ase-repo-review/SKILL.md +406 -0
- package/plugin/skills/ase-repo-review/help.md +181 -0
- package/plugin/skills/ase-spec-edit/SKILL.md +117 -183
- package/plugin/skills/ase-spec-edit/help.md +107 -26
- package/plugin/skills/ase-sync-reconcile/help.md +1 -1
- package/plugin/skills/ase-task-assign/SKILL.md +111 -0
- package/plugin/skills/ase-task-assign/help.md +119 -0
- package/plugin/skills/ase-task-condense/SKILL.md +21 -21
- package/plugin/skills/ase-task-condense/help.md +12 -10
- package/plugin/skills/ase-task-delete/SKILL.md +1 -1
- package/plugin/skills/ase-task-dissect/SKILL.md +71 -48
- package/plugin/skills/ase-task-dissect/help.md +10 -9
- package/plugin/skills/ase-task-edit/SKILL.md +379 -94
- package/plugin/skills/ase-task-edit/help.md +95 -22
- package/plugin/skills/ase-task-estimate/SKILL.md +492 -0
- package/plugin/skills/ase-task-estimate/help.md +158 -0
- package/plugin/skills/ase-task-grill/SKILL.md +246 -138
- package/plugin/skills/ase-task-grill/help.md +129 -26
- package/plugin/skills/ase-task-id/SKILL.md +8 -1
- package/plugin/skills/ase-task-id/help.md +6 -3
- package/plugin/skills/ase-task-implement/SKILL.md +535 -145
- package/plugin/skills/ase-task-implement/help.md +138 -47
- package/plugin/skills/ase-task-integrate/SKILL.md +549 -0
- package/plugin/skills/ase-task-integrate/help.md +187 -0
- package/plugin/skills/ase-task-list/SKILL.md +55 -23
- package/plugin/skills/ase-task-list/help.md +45 -21
- package/plugin/skills/ase-task-reboot/SKILL.md +84 -43
- package/plugin/skills/ase-task-reboot/help.md +28 -8
- package/plugin/skills/ase-task-rename/SKILL.md +10 -2
- package/plugin/skills/ase-task-research/SKILL.md +386 -0
- package/plugin/skills/ase-task-research/help.md +102 -0
- package/plugin/skills/ase-task-status/SKILL.md +137 -0
- package/plugin/skills/ase-task-status/help.md +80 -0
- package/plugin/skills/ase-task-view/SKILL.md +49 -24
- package/plugin/skills/ase-task-view/help.md +19 -9
- package/plugin/agents/ase-meta-review.md +0 -187
- package/plugin/skills/ase-code-craft/SKILL.md +0 -264
- package/plugin/skills/ase-code-craft/help.md +0 -122
- package/plugin/skills/ase-code-refactor/SKILL.md +0 -232
- package/plugin/skills/ase-code-refactor/help.md +0 -109
- package/plugin/skills/ase-code-resolve/SKILL.md +0 -289
- package/plugin/skills/ase-code-resolve/help.md +0 -116
- package/plugin/skills/ase-meta-review/SKILL.md +0 -210
- package/plugin/skills/ase-meta-review/help.md +0 -96
- package/plugin/skills/ase-task-preflight/SKILL.md +0 -166
- package/plugin/skills/ase-task-preflight/help.md +0 -82
- /package/dst/{ase-ignore.js → ase-lib-ignore.js} +0 -0
- /package/dst/{ase-stdio.js → ase-lib-stdio.js} +0 -0
- /package/dst/{ase-kv.js → ase-service-kv.js} +0 -0
- /package/dst/{ase-sleep.js → ase-service-sleep.js} +0 -0
- /package/dst/{ase-timestamp.js → ase-service-timestamp.js} +0 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/*
|
|
2
|
+
** Agentic Software Engineering (ASE)
|
|
3
|
+
** Copyright (c) 2025-2026 Dr. Ralf S. Engelschall <rse@engelschall.com>
|
|
4
|
+
** Licensed under Apache 2.0 <https://spdx.org/licenses/Apache-2.0>
|
|
5
|
+
*/
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
import { Option } from "commander";
|
|
8
|
+
import { isMap } from "yaml";
|
|
9
|
+
import * as v from "valibot";
|
|
10
|
+
import { ServerCommand, configuredTls } from "./ase-lib-server-cli.js";
|
|
11
|
+
import { Config } from "./ase-config-core.js";
|
|
12
|
+
import { configSchema } from "./ase-config-schema.js";
|
|
13
|
+
import * as Delegate from "./ase-task-store-plugin-delegate.js";
|
|
14
|
+
import * as Server from "./ase-task-store-server-bind.js";
|
|
15
|
+
/* schema for the per-user "store.yaml" */
|
|
16
|
+
export const storeSchema = v.nullish(v.strictObject({
|
|
17
|
+
address: v.optional(v.string()),
|
|
18
|
+
port: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(65535))),
|
|
19
|
+
token: v.optional(v.string()),
|
|
20
|
+
pid: v.optional(v.pipe(v.number(), v.integer())),
|
|
21
|
+
relay: v.optional(v.boolean()),
|
|
22
|
+
cors: v.optional(v.array(v.string())),
|
|
23
|
+
tls: v.optional(v.strictObject({
|
|
24
|
+
cert: v.optional(v.string()),
|
|
25
|
+
key: v.optional(v.string())
|
|
26
|
+
})),
|
|
27
|
+
storage: v.optional(v.strictObject({
|
|
28
|
+
plugin: v.optional(v.string()),
|
|
29
|
+
options: v.optional(v.record(v.string(), v.unknown()))
|
|
30
|
+
}))
|
|
31
|
+
}));
|
|
32
|
+
/* CLI command group "ase task store" */
|
|
33
|
+
export default class TaskStoreCommand extends ServerCommand {
|
|
34
|
+
label = "task store";
|
|
35
|
+
description = "Manage the per-user task store REST API server";
|
|
36
|
+
name = "store";
|
|
37
|
+
schema = storeSchema;
|
|
38
|
+
prefix = "ASE_TASK_STORE";
|
|
39
|
+
words = "task store";
|
|
40
|
+
probePath = "/projects";
|
|
41
|
+
/* extend the context by the co-hosting of the agent relay and the storage plugin */
|
|
42
|
+
context(ctx, scalar) {
|
|
43
|
+
const relay = scalar("relay");
|
|
44
|
+
const plugin = scalar("storage.plugin");
|
|
45
|
+
const opts = ctx.cfg.get("storage.options");
|
|
46
|
+
return {
|
|
47
|
+
...ctx,
|
|
48
|
+
relay: relay === "true",
|
|
49
|
+
plugin: plugin !== null ? String(plugin) : null,
|
|
50
|
+
options: isMap(opts) ? opts.toJSON() : {}
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/* the TLS certificate and key configured in the project configuration:
|
|
54
|
+
"project.task.store.crt" and "project.task.store.key", unless
|
|
55
|
+
"project.task.store.url" selects HTTP on this host */
|
|
56
|
+
tlsDefaults() {
|
|
57
|
+
const cfg = new Config("config", configSchema, this.log);
|
|
58
|
+
cfg.read();
|
|
59
|
+
return configuredTls(cfg, "project.task.store");
|
|
60
|
+
}
|
|
61
|
+
/* the base directory of the built-in storage plugin of the context */
|
|
62
|
+
basedir(ctx) {
|
|
63
|
+
return typeof ctx.options.basedir === "string" && ctx.options.basedir !== "" ?
|
|
64
|
+
path.resolve(ctx.dir, ctx.options.basedir) : path.join(ctx.dir, "tasks");
|
|
65
|
+
}
|
|
66
|
+
/* load the storage plugin and create the server */
|
|
67
|
+
async create(ctx, config, env) {
|
|
68
|
+
const module = (env[this.env("MODULE")] ?? ctx.plugin) || null;
|
|
69
|
+
const relay = env[this.env("RELAY")] === "1" ? true : env[this.env("RELAY")] === "0" ? false : ctx.relay;
|
|
70
|
+
/* the built-in plugin additionally takes its base directory
|
|
71
|
+
(default: "tasks" below the per-user config dir) and "solo"
|
|
72
|
+
mode ("--solo" or "--no-solo") from the command line,
|
|
73
|
+
persisted for subsequent starts */
|
|
74
|
+
const options = { ...ctx.options };
|
|
75
|
+
const storage = {};
|
|
76
|
+
if (module === null || module === Delegate.BUILTIN_PLUGIN) {
|
|
77
|
+
const basedir = env[this.env("BASEDIR")];
|
|
78
|
+
const solo = env[this.env("SOLO")];
|
|
79
|
+
options.basedir = this.basedir(ctx);
|
|
80
|
+
if (basedir !== undefined && basedir !== "")
|
|
81
|
+
options.basedir = storage["storage.options.basedir"] = basedir;
|
|
82
|
+
if (solo === "1")
|
|
83
|
+
options.solo = storage["storage.options.solo"] = true;
|
|
84
|
+
else if (solo === "0") {
|
|
85
|
+
options.solo = false;
|
|
86
|
+
storage["storage.options.solo"] = null;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
const plugin = await Delegate.loadTaskStoragePlugin(module, {
|
|
90
|
+
options,
|
|
91
|
+
log: (level, message) => this.log.write(level, `task store: plugin "${module ?? Delegate.BUILTIN_PLUGIN}": ${message}`)
|
|
92
|
+
});
|
|
93
|
+
const server = new Server.TaskStoreServer(this.log, {
|
|
94
|
+
...config, relay,
|
|
95
|
+
store: new Delegate.TaskStore(plugin)
|
|
96
|
+
});
|
|
97
|
+
return {
|
|
98
|
+
server,
|
|
99
|
+
facts: {
|
|
100
|
+
relay: relay ? true : null,
|
|
101
|
+
"storage.plugin": module,
|
|
102
|
+
...storage
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/* the options of the storage plugin and the co-hosting of the agent relay */
|
|
107
|
+
options(cmd) {
|
|
108
|
+
cmd
|
|
109
|
+
.option("-m, --module <name>", "storage plugin to load: \"ase\" for the built-in one, \"github\", \"gitlab\", resp. \"gitea\" " +
|
|
110
|
+
"for the built-in GitHub, GitLab, resp. Gitea Issues one, else the NPM package \"ase-task-store-<name>\" " +
|
|
111
|
+
"(default: the configured \"storage.plugin\", else \"ase\")")
|
|
112
|
+
.option("-d, --basedir <dir>", "base directory of the built-in storage plugin " +
|
|
113
|
+
"(default: the configured \"storage.options.basedir\", else \"tasks\" below the per-user config dir)")
|
|
114
|
+
.option("-s, --solo", "let the built-in storage plugin store a single project flat in the base " +
|
|
115
|
+
"directory, accepting any project id (default: the configured \"storage.options.solo\", " +
|
|
116
|
+
"else one sub-directory per project)")
|
|
117
|
+
.option("--no-solo", "let the built-in storage plugin store one sub-directory per project, " +
|
|
118
|
+
"resetting a configured \"storage.options.solo\"")
|
|
119
|
+
.addOption(new Option("--with-agent-relay", "co-host the agent relay (see \"ase agent relay\") under the same token " +
|
|
120
|
+
"(default: the configured \"relay\", else not co-hosted)").conflicts("withoutAgentRelay"))
|
|
121
|
+
.addOption(new Option("--without-agent-relay", "do not co-host the agent relay, resetting a configured \"relay\"")
|
|
122
|
+
.conflicts("withAgentRelay"));
|
|
123
|
+
}
|
|
124
|
+
/* the explicitly given options of the storage plugin and the co-hosting
|
|
125
|
+
of the agent relay deviating from the configuration of the running server */
|
|
126
|
+
deviating(ctx, opts) {
|
|
127
|
+
const module = ctx.plugin || Delegate.BUILTIN_PLUGIN;
|
|
128
|
+
const solo = ctx.options.solo === true;
|
|
129
|
+
return [
|
|
130
|
+
opts.module !== undefined && (opts.module || Delegate.BUILTIN_PLUGIN) !== module ? "--module" : "",
|
|
131
|
+
opts.basedir !== undefined && path.resolve(opts.basedir) !== this.basedir(ctx) ? "--basedir" : "",
|
|
132
|
+
opts.solo !== undefined && opts.solo !== solo ? "--[no-]solo" : "",
|
|
133
|
+
opts.withAgentRelay === true && !ctx.relay ? "--with-agent-relay" : "",
|
|
134
|
+
opts.withoutAgentRelay === true && ctx.relay ? "--without-agent-relay" : ""
|
|
135
|
+
];
|
|
136
|
+
}
|
|
137
|
+
/* the environment variables handing the storage plugin and the co-hosting of the agent relay to the server */
|
|
138
|
+
environment(ctx, opts) {
|
|
139
|
+
return {
|
|
140
|
+
[this.env("MODULE")]: (opts.module ?? ctx.plugin) || Delegate.BUILTIN_PLUGIN,
|
|
141
|
+
[this.env("BASEDIR")]: opts.basedir !== undefined ? path.resolve(opts.basedir) : "",
|
|
142
|
+
[this.env("SOLO")]: opts.solo === true ? "1" : opts.solo === false ? "0" : "",
|
|
143
|
+
[this.env("RELAY")]: opts.withAgentRelay === true ? "1" : opts.withoutAgentRelay === true ? "0" : ""
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
/* the storage plugin of the started server */
|
|
147
|
+
started(env) {
|
|
148
|
+
return ` (storage plugin "${env[this.env("MODULE")]}")`;
|
|
149
|
+
}
|
|
150
|
+
/* the co-hosting of the agent relay by the running server */
|
|
151
|
+
running(ctx) {
|
|
152
|
+
return ctx.relay ? " with agent relay" : "";
|
|
153
|
+
}
|
|
154
|
+
}
|