agent-issues 0.0.121 → 0.0.127

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 (166) hide show
  1. package/dist/build-info.json +3 -0
  2. package/dist/cli.js +97746 -26
  3. package/kanban/dist/assets/index-CIAg6qj5.css +1 -0
  4. package/kanban/dist/assets/index-DaYQjJS7.js +920 -0
  5. package/kanban/dist/index.html +13 -0
  6. package/package.json +12 -11
  7. package/site/dist/assets/{index-Cx-fLU3e.js → index-BRvRYF7I.js} +195 -146
  8. package/site/dist/index.html +1 -1
  9. package/dist/agent-installer.d.ts +0 -49
  10. package/dist/agent-installer.js +0 -171
  11. package/dist/agent-installer.js.map +0 -1
  12. package/dist/auth-session.d.ts +0 -40
  13. package/dist/auth-session.js +0 -107
  14. package/dist/auth-session.js.map +0 -1
  15. package/dist/body-backfill.d.ts +0 -26
  16. package/dist/body-backfill.js +0 -219
  17. package/dist/body-backfill.js.map +0 -1
  18. package/dist/build-mode.d.ts +0 -1
  19. package/dist/build-mode.js +0 -1
  20. package/dist/build-mode.js.map +0 -1
  21. package/dist/cli/commands/auth.d.ts +0 -61
  22. package/dist/cli/commands/auth.js +0 -134
  23. package/dist/cli/commands/auth.js.map +0 -1
  24. package/dist/cli/commands/backfill.d.ts +0 -8
  25. package/dist/cli/commands/backfill.js +0 -36
  26. package/dist/cli/commands/backfill.js.map +0 -1
  27. package/dist/cli/commands/comments.d.ts +0 -34
  28. package/dist/cli/commands/comments.js +0 -124
  29. package/dist/cli/commands/comments.js.map +0 -1
  30. package/dist/cli/commands/context.d.ts +0 -13
  31. package/dist/cli/commands/context.js +0 -156
  32. package/dist/cli/commands/context.js.map +0 -1
  33. package/dist/cli/commands/entities.d.ts +0 -91
  34. package/dist/cli/commands/entities.js +0 -420
  35. package/dist/cli/commands/entities.js.map +0 -1
  36. package/dist/cli/commands/export.d.ts +0 -20
  37. package/dist/cli/commands/export.js +0 -98
  38. package/dist/cli/commands/export.js.map +0 -1
  39. package/dist/cli/commands/fallback.d.ts +0 -6
  40. package/dist/cli/commands/fallback.js +0 -10
  41. package/dist/cli/commands/fallback.js.map +0 -1
  42. package/dist/cli/commands/handoff.d.ts +0 -1
  43. package/dist/cli/commands/handoff.js +0 -2
  44. package/dist/cli/commands/handoff.js.map +0 -1
  45. package/dist/cli/commands/installers.d.ts +0 -37
  46. package/dist/cli/commands/installers.js +0 -78
  47. package/dist/cli/commands/installers.js.map +0 -1
  48. package/dist/cli/commands/kanban.d.ts +0 -8
  49. package/dist/cli/commands/kanban.js +0 -83
  50. package/dist/cli/commands/kanban.js.map +0 -1
  51. package/dist/cli/commands/meta.d.ts +0 -14
  52. package/dist/cli/commands/meta.js +0 -33
  53. package/dist/cli/commands/meta.js.map +0 -1
  54. package/dist/cli/commands/plan-entries.d.ts +0 -30
  55. package/dist/cli/commands/plan-entries.js +0 -94
  56. package/dist/cli/commands/plan-entries.js.map +0 -1
  57. package/dist/cli/commands/site.d.ts +0 -29
  58. package/dist/cli/commands/site.js +0 -89
  59. package/dist/cli/commands/site.js.map +0 -1
  60. package/dist/cli/commands/sql.d.ts +0 -6
  61. package/dist/cli/commands/sql.js +0 -21
  62. package/dist/cli/commands/sql.js.map +0 -1
  63. package/dist/cli/commands/synchronize.d.ts +0 -12
  64. package/dist/cli/commands/synchronize.js +0 -31
  65. package/dist/cli/commands/synchronize.js.map +0 -1
  66. package/dist/cli/commands/tenants.d.ts +0 -29
  67. package/dist/cli/commands/tenants.js +0 -101
  68. package/dist/cli/commands/tenants.js.map +0 -1
  69. package/dist/cli/index.d.ts +0 -4
  70. package/dist/cli/index.js +0 -120
  71. package/dist/cli/index.js.map +0 -1
  72. package/dist/cli/renderers.d.ts +0 -250
  73. package/dist/cli/renderers.js +0 -286
  74. package/dist/cli/renderers.js.map +0 -1
  75. package/dist/cli/shared.d.ts +0 -97
  76. package/dist/cli/shared.js +0 -192
  77. package/dist/cli/shared.js.map +0 -1
  78. package/dist/cli.d.ts +0 -11
  79. package/dist/cli.js.map +0 -1
  80. package/dist/context-cli.d.ts +0 -16
  81. package/dist/context-cli.js +0 -131
  82. package/dist/context-cli.js.map +0 -1
  83. package/dist/daemon/daemon-lifecycle.d.ts +0 -1
  84. package/dist/daemon/daemon-lifecycle.js +0 -2
  85. package/dist/daemon/daemon-lifecycle.js.map +0 -1
  86. package/dist/daemon/daemon-main.d.ts +0 -14
  87. package/dist/daemon/daemon-main.js +0 -30
  88. package/dist/daemon/daemon-main.js.map +0 -1
  89. package/dist/daemon/local-daemon-store.d.ts +0 -21
  90. package/dist/daemon/local-daemon-store.js +0 -31
  91. package/dist/daemon/local-daemon-store.js.map +0 -1
  92. package/dist/entity-projection.d.ts +0 -141
  93. package/dist/entity-projection.js +0 -147
  94. package/dist/entity-projection.js.map +0 -1
  95. package/dist/entra-device-login.d.ts +0 -12
  96. package/dist/entra-device-login.js +0 -40
  97. package/dist/entra-device-login.js.map +0 -1
  98. package/dist/export-files.d.ts +0 -24
  99. package/dist/export-files.js +0 -230
  100. package/dist/export-files.js.map +0 -1
  101. package/dist/export-markdown.d.ts +0 -24
  102. package/dist/export-markdown.js +0 -343
  103. package/dist/export-markdown.js.map +0 -1
  104. package/dist/help.d.ts +0 -112
  105. package/dist/help.js +0 -1430
  106. package/dist/help.js.map +0 -1
  107. package/dist/kanban/assets.d.ts +0 -3
  108. package/dist/kanban/assets.js +0 -37
  109. package/dist/kanban/assets.js.map +0 -1
  110. package/dist/kanban/index.d.ts +0 -1
  111. package/dist/kanban/index.js +0 -2
  112. package/dist/kanban/index.js.map +0 -1
  113. package/dist/kanban/server.d.ts +0 -28
  114. package/dist/kanban/server.js +0 -118
  115. package/dist/kanban/server.js.map +0 -1
  116. package/dist/mcp-installer.d.ts +0 -32
  117. package/dist/mcp-installer.js +0 -118
  118. package/dist/mcp-installer.js.map +0 -1
  119. package/dist/mcp-server/index.d.ts +0 -11
  120. package/dist/mcp-server/index.js +0 -504
  121. package/dist/mcp-server/index.js.map +0 -1
  122. package/dist/mcp-server/index.test.d.ts +0 -1
  123. package/dist/mcp-server/index.test.js +0 -746
  124. package/dist/mcp-server/index.test.js.map +0 -1
  125. package/dist/mcp-server/mcp-tool-audit.d.ts +0 -6
  126. package/dist/mcp-server/mcp-tool-audit.js +0 -47
  127. package/dist/mcp-server/mcp-tool-audit.js.map +0 -1
  128. package/dist/mcp-server/stdio.d.ts +0 -2
  129. package/dist/mcp-server/stdio.js +0 -7
  130. package/dist/mcp-server/stdio.js.map +0 -1
  131. package/dist/mcp.d.ts +0 -2
  132. package/dist/mcp.js +0 -19
  133. package/dist/mcp.js.map +0 -1
  134. package/dist/open-storage-driver.d.ts +0 -55
  135. package/dist/open-storage-driver.js +0 -73
  136. package/dist/open-storage-driver.js.map +0 -1
  137. package/dist/open-synchronize-stores.d.ts +0 -24
  138. package/dist/open-synchronize-stores.js +0 -34
  139. package/dist/open-synchronize-stores.js.map +0 -1
  140. package/dist/project-identity.d.ts +0 -23
  141. package/dist/project-identity.js +0 -121
  142. package/dist/project-identity.js.map +0 -1
  143. package/dist/runtime-access-boundary.d.ts +0 -7
  144. package/dist/runtime-access-boundary.js +0 -182
  145. package/dist/runtime-access-boundary.js.map +0 -1
  146. package/dist/service-discovery.d.ts +0 -10
  147. package/dist/service-discovery.js +0 -64
  148. package/dist/service-discovery.js.map +0 -1
  149. package/dist/site/assets.d.ts +0 -4
  150. package/dist/site/assets.js +0 -46
  151. package/dist/site/assets.js.map +0 -1
  152. package/dist/site/cloud-events-relay.d.ts +0 -16
  153. package/dist/site/cloud-events-relay.js +0 -78
  154. package/dist/site/cloud-events-relay.js.map +0 -1
  155. package/dist/site/index.d.ts +0 -1
  156. package/dist/site/index.js +0 -2
  157. package/dist/site/index.js.map +0 -1
  158. package/dist/site/server.d.ts +0 -42
  159. package/dist/site/server.js +0 -632
  160. package/dist/site/server.js.map +0 -1
  161. package/dist/skill-installer.d.ts +0 -35
  162. package/dist/skill-installer.js +0 -180
  163. package/dist/skill-installer.js.map +0 -1
  164. package/dist/vitest-setup.d.ts +0 -1
  165. package/dist/vitest-setup.js +0 -7
  166. package/dist/vitest-setup.js.map +0 -1
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>agent-issues viewer</title>
7
7
  <style>#app { min-height: 100vh; }</style>
8
- <script type="module" crossorigin src="/assets/index-Cx-fLU3e.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-BRvRYF7I.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/assets/index-DKEVC0aQ.css">
10
10
  </head>
11
11
  <body>
@@ -1,49 +0,0 @@
1
- type AgentHost = "claude" | "copilot" | "vscode";
2
- type AgentInstallRecord = {
3
- installedName: string;
4
- agentFile: string;
5
- };
6
- type AgentInstallation = AgentInstallRecord & {
7
- host: AgentHost;
8
- targetDir: string;
9
- };
10
- export type InstallAgentResult = {
11
- targetDir: string;
12
- installed: AgentInstallRecord & {
13
- status: "installed" | "updated" | "skipped";
14
- };
15
- additionalInstalled: Array<AgentInstallation & {
16
- status: "installed" | "updated" | "skipped";
17
- }>;
18
- };
19
- export type UninstallAgentResult = {
20
- targetDir: string;
21
- removed: AgentInstallRecord & {
22
- status: "removed" | "missing";
23
- };
24
- additionalRemoved: Array<AgentInstallation & {
25
- status: "removed" | "missing";
26
- }>;
27
- };
28
- export type ListAgentResult = {
29
- targetDir: string;
30
- agent: AgentInstallRecord & {
31
- status: "installed" | "partial" | "missing";
32
- };
33
- additionalAgents: Array<AgentInstallation & {
34
- status: "installed" | "partial" | "missing";
35
- }>;
36
- };
37
- export declare function getDefaultAgentInstallDir(): string;
38
- export declare function getDefaultAgentInstallDirs(): Record<AgentHost, string>;
39
- export declare function installAgent(input: {
40
- targetDir?: string;
41
- force?: boolean;
42
- }): InstallAgentResult;
43
- export declare function uninstallAgent(input: {
44
- targetDir?: string;
45
- }): UninstallAgentResult;
46
- export declare function listAgent(input: {
47
- targetDir?: string;
48
- }): ListAgentResult;
49
- export {};
@@ -1,171 +0,0 @@
1
- import { cpSync, existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
2
- import { homedir } from "node:os";
3
- import path from "node:path";
4
- import { fileURLToPath } from "node:url";
5
- const AGENT_FILE_NAME = "agent-issues.agent.md";
6
- const CLAUDE_AGENT_FILE_NAME = "agent-issues.md";
7
- const LEGACY_HOOK_FILE_NAME = "agent-issues-enforcer.mjs";
8
- const LANGUAGE_FILE_NAME = "agent-issues-language.md";
9
- const RECIPES_DIRECTORY_NAME = "recipes";
10
- const AGENT_FILES_MANIFEST = ".agent-issues-agent-files.json";
11
- const INSTALLED_AGENT_NAME = "agent-issues";
12
- function getVsCodeUserDir() {
13
- if (process.platform === "win32") {
14
- const appData = process.env.APPDATA ?? path.join(homedir(), "AppData", "Roaming");
15
- return path.join(appData, "Code", "User");
16
- }
17
- if (process.platform === "darwin")
18
- return path.join(homedir(), "Library", "Application Support", "Code", "User");
19
- const configHome = process.env.XDG_CONFIG_HOME ?? path.join(homedir(), ".config");
20
- return path.join(configHome, "Code", "User");
21
- }
22
- export function getDefaultAgentInstallDir() {
23
- return getDefaultAgentInstallDirs().vscode;
24
- }
25
- export function getDefaultAgentInstallDirs() {
26
- return {
27
- claude: path.join(homedir(), ".claude", "agents"),
28
- copilot: path.join(homedir(), ".copilot", "agents"),
29
- vscode: path.join(getVsCodeUserDir(), "prompts")
30
- };
31
- }
32
- export function installAgent(input) {
33
- const sourceRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", ".github");
34
- const [primaryTarget, ...additionalTargets] = getAgentTargets(input.targetDir);
35
- const installed = installAgentAtTarget(primaryTarget, sourceRoot, Boolean(input.force));
36
- const additionalInstalled = additionalTargets.map((target) => ({
37
- ...installAgentAtTarget(target, sourceRoot, Boolean(input.force)),
38
- host: target.host,
39
- targetDir: target.targetDir
40
- }));
41
- return {
42
- targetDir: primaryTarget.targetDir,
43
- installed,
44
- additionalInstalled
45
- };
46
- }
47
- export function uninstallAgent(input) {
48
- const [primaryTarget, ...additionalTargets] = getAgentTargets(input.targetDir);
49
- const removed = uninstallAgentAtTarget(primaryTarget);
50
- const additionalRemoved = additionalTargets.map((target) => ({
51
- ...uninstallAgentAtTarget(target),
52
- host: target.host,
53
- targetDir: target.targetDir
54
- }));
55
- return {
56
- targetDir: primaryTarget.targetDir,
57
- removed,
58
- additionalRemoved
59
- };
60
- }
61
- export function listAgent(input) {
62
- const [primaryTarget, ...additionalTargets] = getAgentTargets(input.targetDir);
63
- const agent = listAgentAtTarget(primaryTarget);
64
- const additionalAgents = additionalTargets.map((target) => ({
65
- ...listAgentAtTarget(target),
66
- host: target.host,
67
- targetDir: target.targetDir
68
- }));
69
- return {
70
- targetDir: primaryTarget.targetDir,
71
- agent,
72
- additionalAgents
73
- };
74
- }
75
- function getAgentTargets(targetDir) {
76
- if (targetDir) {
77
- return [{ host: "vscode", targetDir: path.resolve(targetDir), agentFileName: AGENT_FILE_NAME }];
78
- }
79
- const targetDirs = getDefaultAgentInstallDirs();
80
- return [
81
- { host: "vscode", targetDir: targetDirs.vscode, agentFileName: AGENT_FILE_NAME },
82
- { host: "copilot", targetDir: targetDirs.copilot, agentFileName: AGENT_FILE_NAME },
83
- { host: "claude", targetDir: targetDirs.claude, agentFileName: CLAUDE_AGENT_FILE_NAME }
84
- ];
85
- }
86
- function installAgentAtTarget(target, sourceRoot, force) {
87
- const sourceAgentFile = path.join(sourceRoot, "agents", target.host === "claude" ? "agent-issues.claude.md" : AGENT_FILE_NAME);
88
- const sourceLanguageFile = path.join(sourceRoot, "..", "skills", LANGUAGE_FILE_NAME);
89
- const sourceRecipesDirectory = path.join(sourceRoot, "..", "skills", RECIPES_DIRECTORY_NAME);
90
- const destinationAgentFile = path.join(target.targetDir, target.agentFileName);
91
- const legacyHookFile = path.join(target.targetDir, LEGACY_HOOK_FILE_NAME);
92
- const destinationLanguageFile = path.join(target.targetDir, LANGUAGE_FILE_NAME);
93
- const destinationRecipesDirectory = path.join(target.targetDir, RECIPES_DIRECTORY_NAME);
94
- const existed = existsSync(destinationAgentFile);
95
- if (!existsSync(sourceAgentFile) || !existsSync(sourceLanguageFile) || !existsSync(sourceRecipesDirectory)) {
96
- throw new Error(`Packaged agent assets not found under ${sourceRoot}`);
97
- }
98
- mkdirSync(target.targetDir, { recursive: true });
99
- if (existed && !force) {
100
- return {
101
- installedName: INSTALLED_AGENT_NAME,
102
- agentFile: destinationAgentFile,
103
- status: "skipped"
104
- };
105
- }
106
- cpSync(sourceAgentFile, destinationAgentFile);
107
- rmSync(legacyHookFile, { force: true });
108
- cpSync(sourceLanguageFile, destinationLanguageFile);
109
- if (force || !existsSync(destinationRecipesDirectory)) {
110
- if (existsSync(destinationRecipesDirectory)) {
111
- rmSync(destinationRecipesDirectory, { force: true, recursive: true });
112
- }
113
- cpSync(sourceRecipesDirectory, destinationRecipesDirectory, { recursive: true });
114
- writeOwnedRecipeCatalog(target.targetDir);
115
- }
116
- return {
117
- installedName: INSTALLED_AGENT_NAME,
118
- agentFile: destinationAgentFile,
119
- status: existed ? "updated" : "installed"
120
- };
121
- }
122
- function uninstallAgentAtTarget(target) {
123
- const destinationAgentFile = path.join(target.targetDir, target.agentFileName);
124
- const legacyHookFile = path.join(target.targetDir, LEGACY_HOOK_FILE_NAME);
125
- const destinationLanguageFile = path.join(target.targetDir, LANGUAGE_FILE_NAME);
126
- const destinationRecipesDirectory = path.join(target.targetDir, RECIPES_DIRECTORY_NAME);
127
- const existed = existsSync(destinationAgentFile);
128
- for (const destinationFile of [destinationAgentFile, legacyHookFile, destinationLanguageFile]) {
129
- if (existsSync(destinationFile)) {
130
- rmSync(destinationFile, { force: true });
131
- }
132
- }
133
- if (hasOwnedRecipeCatalog(target.targetDir) && existsSync(destinationRecipesDirectory)) {
134
- rmSync(destinationRecipesDirectory, { force: true, recursive: true });
135
- }
136
- rmSync(path.join(target.targetDir, AGENT_FILES_MANIFEST), { force: true });
137
- return {
138
- installedName: INSTALLED_AGENT_NAME,
139
- agentFile: destinationAgentFile,
140
- status: existed ? "removed" : "missing"
141
- };
142
- }
143
- function listAgentAtTarget(target) {
144
- const destinationAgentFile = path.join(target.targetDir, target.agentFileName);
145
- const destinationRecipesDirectory = path.join(target.targetDir, RECIPES_DIRECTORY_NAME);
146
- const agentExists = existsSync(destinationAgentFile);
147
- const recipesExist = existsSync(destinationRecipesDirectory);
148
- const ownsRecipeCatalog = hasOwnedRecipeCatalog(target.targetDir);
149
- return {
150
- installedName: INSTALLED_AGENT_NAME,
151
- agentFile: destinationAgentFile,
152
- status: agentExists && recipesExist && ownsRecipeCatalog ? "installed" : agentExists || recipesExist ? "partial" : "missing"
153
- };
154
- }
155
- function hasOwnedRecipeCatalog(targetDir) {
156
- const manifestPath = path.join(targetDir, AGENT_FILES_MANIFEST);
157
- if (!existsSync(manifestPath)) {
158
- return false;
159
- }
160
- try {
161
- const parsed = JSON.parse(readFileSync(manifestPath, "utf8"));
162
- return parsed.recipeCatalog === true;
163
- }
164
- catch {
165
- return false;
166
- }
167
- }
168
- function writeOwnedRecipeCatalog(targetDir) {
169
- writeFileSync(path.join(targetDir, AGENT_FILES_MANIFEST), `${JSON.stringify({ recipeCatalog: true }, null, "\t")}\n`);
170
- }
171
- //# sourceMappingURL=agent-installer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-installer.js","sourceRoot":"","sources":["../src/agent-installer.ts"],"names":[],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- import { type OsCredentialStoreOptions } from "@agent-issues/core";
2
- export type LocalSavedLogin = {
3
- name: "local";
4
- kind: "local";
5
- };
6
- export type RemoteSavedLogin = {
7
- name: string;
8
- kind: "remote";
9
- serviceUrl: string;
10
- tenantId: string;
11
- userId: string;
12
- displayName?: string;
13
- accessToken: string;
14
- expiresAt: string;
15
- };
16
- export type SavedLogin = LocalSavedLogin | RemoteSavedLogin;
17
- export type SavedLoginView = LocalSavedLogin | Omit<RemoteSavedLogin, "accessToken">;
18
- /** Strips remote credentials so callers can safely display or log a saved login. */
19
- export declare function toSavedLoginView(login: LocalSavedLogin): LocalSavedLogin;
20
- export declare function toSavedLoginView(login: RemoteSavedLogin): Omit<RemoteSavedLogin, "accessToken">;
21
- export declare function toSavedLoginView(login: SavedLogin): SavedLoginView;
22
- export type SavedLoginStoreOptions = OsCredentialStoreOptions & {
23
- /**
24
- * Overrides the directory checked for legacy plaintext routing files to
25
- * remove during upgrade. Production defaults to
26
- * `resolveAgentIssuesHomeDirectory()` (`~/.agent-issues`); tests inject a
27
- * temp directory so no real user state is touched.
28
- */
29
- homeDirectory?: string;
30
- };
31
- /** Returns every saved login in switching order, beginning with local. */
32
- export declare function listSavedLogins(_options?: SavedLoginStoreOptions): Promise<SavedLogin[]>;
33
- /** Returns the one globally active saved login. */
34
- export declare function getActiveSavedLogin(options?: SavedLoginStoreOptions): Promise<SavedLogin>;
35
- /** Creates or refreshes a named remote login and makes it active. */
36
- export declare function saveSavedLogin(login: RemoteSavedLogin, options?: SavedLoginStoreOptions): Promise<void>;
37
- /** Persists the globally active name when it identifies an existing saved login. */
38
- export declare function setActiveSavedLogin(name: string, options?: SavedLoginStoreOptions): Promise<void>;
39
- /** Removes a remote saved login, falling back to local when it was active. */
40
- export declare function removeSavedLogin(name: string, options?: SavedLoginStoreOptions): Promise<void>;
@@ -1,107 +0,0 @@
1
- import { rmSync } from "node:fs";
2
- import path from "node:path";
3
- import { getCredential, resolveAgentIssuesHomeDirectory, setCredential } from "@agent-issues/core";
4
- const LOCAL_SAVED_LOGIN = { name: "local", kind: "local" };
5
- export function toSavedLoginView(login) {
6
- if (login.kind === "local")
7
- return login;
8
- const { accessToken: _accessToken, ...view } = login;
9
- return view;
10
- }
11
- const SERVICE = "agent-issues-auth";
12
- const ACCOUNT = "sessions";
13
- const LEGACY_AUTH_SESSION_FILENAME = "auth.json";
14
- const LEGACY_CLOUD_BINDINGS_FILENAME = "cloud-bindings.json";
15
- const SAVED_LOGIN_CREDENTIAL_VERSION = 1;
16
- function resolveLegacyFilePath(filename, options) {
17
- const homeDirectory = options?.homeDirectory ?? resolveAgentIssuesHomeDirectory();
18
- return path.join(homeDirectory, filename);
19
- }
20
- function createLocalSavedLoginCredential() {
21
- return { version: SAVED_LOGIN_CREDENTIAL_VERSION, activeName: LOCAL_SAVED_LOGIN.name, remoteLogins: [] };
22
- }
23
- function parseSavedLoginCredential(raw) {
24
- try {
25
- const parsed = JSON.parse(raw);
26
- if (typeof parsed !== "object" || parsed === null)
27
- return undefined;
28
- const { version, activeName, remoteLogins } = parsed;
29
- if (version !== SAVED_LOGIN_CREDENTIAL_VERSION || typeof activeName !== "string" || !Array.isArray(remoteLogins)) {
30
- return undefined;
31
- }
32
- return {
33
- version,
34
- activeName,
35
- remoteLogins
36
- };
37
- }
38
- catch {
39
- return undefined;
40
- }
41
- }
42
- async function readSavedLoginCredential(options) {
43
- rmSync(resolveLegacyFilePath(LEGACY_AUTH_SESSION_FILENAME, options), { force: true });
44
- rmSync(resolveLegacyFilePath(LEGACY_CLOUD_BINDINGS_FILENAME, options), { force: true });
45
- const stored = await getCredential(SERVICE, ACCOUNT, options);
46
- if (stored !== undefined) {
47
- const current = parseSavedLoginCredential(stored);
48
- if (current)
49
- return current;
50
- }
51
- const migrated = createLocalSavedLoginCredential();
52
- await setCredential(SERVICE, ACCOUNT, JSON.stringify(migrated), options);
53
- return migrated;
54
- }
55
- async function writeSavedLoginCredential(file, options) {
56
- await setCredential(SERVICE, ACCOUNT, JSON.stringify(file), options);
57
- }
58
- /** Returns every saved login in switching order, beginning with local. */
59
- export async function listSavedLogins(_options) {
60
- return [LOCAL_SAVED_LOGIN, ...(await readSavedLoginCredential(_options)).remoteLogins];
61
- }
62
- /** Returns the one globally active saved login. */
63
- export async function getActiveSavedLogin(options) {
64
- const file = await readSavedLoginCredential(options);
65
- return file.remoteLogins.find(({ name }) => name === file.activeName) ?? LOCAL_SAVED_LOGIN;
66
- }
67
- /** Creates or refreshes a named remote login and makes it active. */
68
- export async function saveSavedLogin(login, options) {
69
- if (login.name === LOCAL_SAVED_LOGIN.name) {
70
- throw new Error('Saved-login name "local" is reserved.');
71
- }
72
- const file = await readSavedLoginCredential(options);
73
- const existingIndex = file.remoteLogins.findIndex(({ name }) => name === login.name);
74
- if (existingIndex === -1) {
75
- file.remoteLogins.push(login);
76
- }
77
- else {
78
- file.remoteLogins[existingIndex] = login;
79
- }
80
- file.activeName = login.name;
81
- await writeSavedLoginCredential(file, options);
82
- }
83
- /** Persists the globally active name when it identifies an existing saved login. */
84
- export async function setActiveSavedLogin(name, options) {
85
- const file = await readSavedLoginCredential(options);
86
- if (name !== LOCAL_SAVED_LOGIN.name && !file.remoteLogins.some((login) => login.name === name)) {
87
- throw new Error(`No saved login named "${name}".`);
88
- }
89
- file.activeName = name;
90
- await writeSavedLoginCredential(file, options);
91
- }
92
- /** Removes a remote saved login, falling back to local when it was active. */
93
- export async function removeSavedLogin(name, options) {
94
- if (name === LOCAL_SAVED_LOGIN.name) {
95
- throw new Error('The local saved login cannot be removed.');
96
- }
97
- const file = await readSavedLoginCredential(options);
98
- if (!file.remoteLogins.some((login) => login.name === name)) {
99
- throw new Error(`No saved login named "${name}".`);
100
- }
101
- file.remoteLogins = file.remoteLogins.filter((login) => login.name !== name);
102
- if (file.activeName === name) {
103
- file.activeName = LOCAL_SAVED_LOGIN.name;
104
- }
105
- await writeSavedLoginCredential(file, options);
106
- }
107
- //# sourceMappingURL=auth-session.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-session.js","sourceRoot":"","sources":["../src/auth-session.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import type { StorageDriver } from "@agent-issues/core";
2
- export declare const BACKFILLABLE_BODY_KINDS: readonly ["project", "epic", "version", "initiative", "issue", "prd", "userStory", "adr"];
3
- export type BackfillableBodyKind = (typeof BACKFILLABLE_BODY_KINDS)[number];
4
- export type BackfillBodiesKindResult = {
5
- kind: BackfillableBodyKind;
6
- considered: number;
7
- updated: number;
8
- skipped: number;
9
- };
10
- export type BackfillBodiesResult = {
11
- tenantId: string;
12
- dryRun: boolean;
13
- force: boolean;
14
- kinds: BackfillableBodyKind[];
15
- considered: number;
16
- updated: number;
17
- skipped: number;
18
- byKind: BackfillBodiesKindResult[];
19
- };
20
- export declare function isBackfillableBodyKind(value: string): value is BackfillableBodyKind;
21
- export declare function parseBackfillableBodyKinds(values: string[]): BackfillableBodyKind[];
22
- export declare function backfillBodies(store: StorageDriver, input?: {
23
- dryRun?: boolean;
24
- force?: boolean;
25
- kinds?: BackfillableBodyKind[];
26
- }): Promise<BackfillBodiesResult>;
@@ -1,219 +0,0 @@
1
- export const BACKFILLABLE_BODY_KINDS = ["project", "epic", "version", "initiative", "issue", "prd", "userStory", "adr"];
2
- const DERIVED_CONTENT_MARKER = "Not derived from tracker metadata.";
3
- export function isBackfillableBodyKind(value) {
4
- return BACKFILLABLE_BODY_KINDS.includes(value);
5
- }
6
- export function parseBackfillableBodyKinds(values) {
7
- if (values.length === 0) {
8
- return [...BACKFILLABLE_BODY_KINDS];
9
- }
10
- const kinds = [];
11
- const invalid = [];
12
- for (const value of values) {
13
- if (!isBackfillableBodyKind(value)) {
14
- invalid.push(value);
15
- continue;
16
- }
17
- if (!kinds.includes(value)) {
18
- kinds.push(value);
19
- }
20
- }
21
- if (invalid.length > 0) {
22
- throw new Error(`Unsupported backfill kinds: ${invalid.join(", ")}. Supported kinds: ${BACKFILLABLE_BODY_KINDS.join(", ")}.`);
23
- }
24
- return kinds;
25
- }
26
- export async function backfillBodies(store, input = {}) {
27
- const snapshot = await store.getDatabaseSnapshot();
28
- const kinds = input.kinds ?? [...BACKFILLABLE_BODY_KINDS];
29
- const byKind = [];
30
- for (const kind of kinds) {
31
- const entities = sortEntities(snapshot.entities.filter((entity) => entity.kind === kind));
32
- let updated = 0;
33
- let skipped = 0;
34
- for (const entity of entities) {
35
- const body = buildBody(kind);
36
- if (body.trim().length === 0) {
37
- skipped += 1;
38
- continue;
39
- }
40
- const hasStoredBody = entity.body.trim().length > 0;
41
- const matchesGeneratedBody = hasStoredBody && entity.body === body;
42
- if (!input.force && hasStoredBody && !matchesGeneratedBody) {
43
- skipped += 1;
44
- continue;
45
- }
46
- if (!input.force && matchesGeneratedBody && entity.bodySource === "generated") {
47
- skipped += 1;
48
- continue;
49
- }
50
- if (!input.dryRun) {
51
- await store.setEntityBody({ entityId: entity.id, body, bodySource: "generated", expectedRevision: entity.revision, expectedContentHash: entity.contentHash });
52
- }
53
- updated += 1;
54
- }
55
- byKind.push({
56
- kind,
57
- considered: entities.length,
58
- updated,
59
- skipped
60
- });
61
- }
62
- return {
63
- tenantId: store.tenantId,
64
- dryRun: input.dryRun ?? false,
65
- force: input.force ?? false,
66
- kinds,
67
- considered: byKind.reduce((sum, item) => sum + item.considered, 0),
68
- updated: byKind.reduce((sum, item) => sum + item.updated, 0),
69
- skipped: byKind.reduce((sum, item) => sum + item.skipped, 0),
70
- byKind
71
- };
72
- }
73
- function buildBody(kind) {
74
- switch (kind) {
75
- case "project":
76
- return buildManagementBody();
77
- case "epic":
78
- return buildManagementBody();
79
- case "version":
80
- return buildVersionBody();
81
- case "initiative":
82
- return buildInitiativeBody();
83
- case "issue":
84
- return buildIssueBody();
85
- case "prd":
86
- return buildPrdBody();
87
- case "userStory":
88
- return buildUserStoryBody();
89
- case "adr":
90
- return buildAdrBody();
91
- }
92
- }
93
- function buildManagementBody() {
94
- return [
95
- "## Purpose",
96
- "",
97
- DERIVED_CONTENT_MARKER,
98
- "",
99
- "## Scope",
100
- "",
101
- `- ${DERIVED_CONTENT_MARKER}`,
102
- "",
103
- "## Success Conditions",
104
- "",
105
- `- ${DERIVED_CONTENT_MARKER}`,
106
- "",
107
- "## Non-Goals",
108
- "",
109
- `- ${DERIVED_CONTENT_MARKER}`
110
- ].join("\n");
111
- }
112
- function buildVersionBody() {
113
- return [
114
- "## Release Intent",
115
- "",
116
- DERIVED_CONTENT_MARKER,
117
- "",
118
- "## Compatibility and Migration Notes",
119
- "",
120
- `- ${DERIVED_CONTENT_MARKER}`
121
- ].join("\n");
122
- }
123
- function buildInitiativeBody() {
124
- return buildManagementBody();
125
- }
126
- function buildIssueBody() {
127
- return [
128
- "## Work Mode",
129
- "",
130
- DERIVED_CONTENT_MARKER,
131
- "",
132
- "## Outcome",
133
- "",
134
- DERIVED_CONTENT_MARKER,
135
- "",
136
- "## Scope",
137
- "",
138
- `- ${DERIVED_CONTENT_MARKER}`,
139
- "",
140
- "## Work Plan",
141
- "",
142
- `- ${DERIVED_CONTENT_MARKER}`,
143
- "",
144
- "## Acceptance Criteria",
145
- "",
146
- `- ${DERIVED_CONTENT_MARKER}`,
147
- "",
148
- "## Verification",
149
- "",
150
- `- ${DERIVED_CONTENT_MARKER}`,
151
- "",
152
- "## Notes",
153
- "",
154
- DERIVED_CONTENT_MARKER
155
- ].join("\n");
156
- }
157
- function buildPrdBody() {
158
- return [
159
- "## Problem Statement",
160
- "",
161
- DERIVED_CONTENT_MARKER,
162
- "",
163
- "## Solution",
164
- "",
165
- DERIVED_CONTENT_MARKER,
166
- "",
167
- "## Implementation Decisions",
168
- "",
169
- `- ${DERIVED_CONTENT_MARKER}`,
170
- "",
171
- "## Testing Decisions",
172
- "",
173
- `- ${DERIVED_CONTENT_MARKER}`,
174
- "",
175
- "## Out of Scope",
176
- "",
177
- `- ${DERIVED_CONTENT_MARKER}`,
178
- "",
179
- "## Further Notes",
180
- "",
181
- DERIVED_CONTENT_MARKER
182
- ].join("\n");
183
- }
184
- function buildUserStoryBody() {
185
- return [
186
- `As an actor, I want ${DERIVED_CONTENT_MARKER}, so that ${DERIVED_CONTENT_MARKER}`,
187
- "",
188
- "## Acceptance Criteria",
189
- "",
190
- `- ${DERIVED_CONTENT_MARKER}`,
191
- "",
192
- "## Boundaries",
193
- "",
194
- `- ${DERIVED_CONTENT_MARKER}`
195
- ].join("\n");
196
- }
197
- function buildAdrBody() {
198
- return [
199
- "## Status",
200
- "",
201
- DERIVED_CONTENT_MARKER,
202
- "",
203
- "## Context",
204
- "",
205
- DERIVED_CONTENT_MARKER,
206
- "",
207
- "## Decision",
208
- "",
209
- DERIVED_CONTENT_MARKER,
210
- "",
211
- "## Consequences",
212
- "",
213
- `- ${DERIVED_CONTENT_MARKER}`
214
- ].join("\n");
215
- }
216
- function sortEntities(entities) {
217
- return [...entities].sort((left, right) => left.id.localeCompare(right.id, undefined, { numeric: true }));
218
- }
219
- //# sourceMappingURL=body-backfill.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"body-backfill.js","sourceRoot":"","sources":["../src/body-backfill.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,CAAU,CAAC;AACjI,MAAM,sBAAsB,GAAG,oCAAoC,CAAC;AAsBpE,MAAM,UAAU,sBAAsB,CAAC,KAAa;IACnD,OAAO,uBAAuB,CAAC,QAAQ,CAAC,KAA6B,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAgB;IAC1D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,uBAAuB,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,SAAS;QACV,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACF,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACd,+BAA+B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC5G,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,KAAoB,EACpB,KAAK,GAA0E,EAAE;IAEjF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE,CAAC;IACnD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,GAAG,uBAAuB,CAAC,CAAC;IAC1D,MAAM,MAAM,GAA+B,EAAE,CAAC;IAE9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;QAC1F,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,CAAC;gBACb,SAAS;YACV,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;YACpD,MAAM,oBAAoB,GAAG,aAAa,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC;YAEnE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,aAAa,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5D,OAAO,IAAI,CAAC,CAAC;gBACb,SAAS;YACV,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,oBAAoB,IAAI,MAAM,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;gBAC/E,OAAO,IAAI,CAAC,CAAC;gBACb,SAAS;YACV,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,KAAK,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,mBAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YAC/J,CAAC;YACD,OAAO,IAAI,CAAC,CAAC;QACd,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACX,IAAI;YACJ,UAAU,EAAE,QAAQ,CAAC,MAAM;YAC3B,OAAO;YACP,OAAO;SACP,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACN,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK;QAC7B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK;QAC3B,KAAK;QACL,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAClE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM;KACN,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAA0B;IAC5C,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,SAAS;YACb,OAAO,mBAAmB,EAAE,CAAC;QAC9B,KAAK,MAAM;YACV,OAAO,mBAAmB,EAAE,CAAC;QAC9B,KAAK,SAAS;YACb,OAAO,gBAAgB,EAAE,CAAC;QAC3B,KAAK,YAAY;YAChB,OAAO,mBAAmB,EAAE,CAAC;QAC9B,KAAK,OAAO;YACX,OAAO,cAAc,EAAE,CAAC;QACzB,KAAK,KAAK;YACT,OAAO,YAAY,EAAE,CAAC;QACvB,KAAK,WAAW;YACf,OAAO,kBAAkB,EAAE,CAAC;QAC7B,KAAK,KAAK;YACT,OAAO,YAAY,EAAE,CAAC;IACxB,CAAC;AACF,CAAC;AAED,SAAS,mBAAmB;IAC3B,OAAO;QACN,YAAY;QACZ,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,UAAU;QACV,EAAE;QACF,KAAK,sBAAsB,EAAE;QAC7B,EAAE;QACF,uBAAuB;QACvB,EAAE;QACF,KAAK,sBAAsB,EAAE;QAC7B,EAAE;QACF,cAAc;QACd,EAAE;QACF,KAAK,sBAAsB,EAAE;KAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB;IACxB,OAAO;QACN,mBAAmB;QACnB,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,sCAAsC;QACtC,EAAE;QACF,KAAK,sBAAsB,EAAE;KAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB;IAC3B,OAAO,mBAAmB,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,cAAc;IACtB,OAAO;QACN,cAAc;QACd,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,YAAY;QACZ,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,UAAU;QACV,EAAE;QACF,KAAK,sBAAsB,EAAE;QAC7B,EAAE;QACF,cAAc;QACd,EAAE;QACF,KAAK,sBAAsB,EAAE;QAC7B,EAAE;QACF,wBAAwB;QACxB,EAAE;QACF,KAAK,sBAAsB,EAAE;QAC7B,EAAE;QACF,iBAAiB;QACjB,EAAE;QACF,KAAK,sBAAsB,EAAE;QAC7B,EAAE;QACF,UAAU;QACV,EAAE;QACF,sBAAsB;KACtB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,SAAS,YAAY;IACpB,OAAO;QACN,sBAAsB;QACtB,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,aAAa;QACb,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,6BAA6B;QAC7B,EAAE;QACF,KAAK,sBAAsB,EAAE;QAC7B,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,KAAK,sBAAsB,EAAE;QAC7B,EAAE;QACF,iBAAiB;QACjB,EAAE;QACF,KAAK,sBAAsB,EAAE;QAC7B,EAAE;QACF,kBAAkB;QAClB,EAAE;QACF,sBAAsB;KACtB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB;IAC1B,OAAO;QACN,uBAAuB,sBAAsB,aAAa,sBAAsB,EAAE;QAClF,EAAE;QACF,wBAAwB;QACxB,EAAE;QACF,KAAK,sBAAsB,EAAE;QAC7B,EAAE;QACF,eAAe;QACf,EAAE;QACF,KAAK,sBAAsB,EAAE;KAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,SAAS,YAAY;IACpB,OAAO;QACN,WAAW;QACX,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,YAAY;QACZ,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,aAAa;QACb,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,iBAAiB;QACjB,EAAE;QACF,KAAK,sBAAsB,EAAE;KAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAyB,QAAa;IAC1D,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3G,CAAC"}
@@ -1 +0,0 @@
1
- export declare const BUILD_MODE: "development" | "production";
@@ -1 +0,0 @@
1
- export const BUILD_MODE = "production";