@iamem/amem 0.1.1 → 0.1.3
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/README.md +98 -4
- package/desktop/icons/icon-1024.png +0 -0
- package/desktop/icons/icon.icns +0 -0
- package/desktop/icons/icon.png +0 -0
- package/desktop/main.js +100 -0
- package/desktop/package.json +16 -0
- package/desktop/preload.js +4 -0
- package/desktop/scripts/ensure-electron.mjs +122 -0
- package/dist/api/routes.js +331 -1
- package/dist/app-shell.d.ts +13 -0
- package/dist/app-shell.js +126 -0
- package/dist/attest.d.ts +13 -0
- package/dist/attest.js +44 -0
- package/dist/cli.js +258 -2
- package/dist/context.d.ts +10 -1
- package/dist/context.js +105 -3
- package/dist/db.d.ts +141 -0
- package/dist/db.js +398 -0
- package/dist/embed.js +5 -14
- package/dist/hook.js +8 -1
- package/dist/hygiene.d.ts +1 -2
- package/dist/hygiene.js +1 -2
- package/dist/install/hosts.js +8 -0
- package/dist/install/skills.js +10 -5
- package/dist/license.d.ts +1 -0
- package/dist/license.js +21 -19
- package/dist/mcp.js +221 -0
- package/dist/policy.d.ts +6 -0
- package/dist/policy.js +16 -1
- package/dist/publish.d.ts +1 -1
- package/dist/publish.js +1 -0
- package/dist/skill-capture.d.ts +43 -0
- package/dist/skill-capture.js +146 -0
- package/dist/skills.d.ts +106 -0
- package/dist/skills.js +422 -0
- package/docs/backlog.md +9 -0
- package/docs/npm-release.md +1 -1
- package/package.json +7 -2
- package/scripts/postinstall.js +62 -0
- package/skills/amem-tasks/SKILL.md +100 -0
- package/skills/amem-write-skill/SKILL.md +99 -0
- package/templates/cursor-rule.mdc +16 -6
- package/templates/policy.deny-default.toml +5 -0
- package/templates/policy.example.toml +8 -0
- package/ui-static/app.js +435 -227
- package/ui-static/index.html +11 -34
- package/ui-static/styles.css +299 -0
package/ui-static/index.html
CHANGED
|
@@ -37,6 +37,14 @@
|
|
|
37
37
|
<span class="nav-ico" aria-hidden="true"></span>
|
|
38
38
|
Analytics
|
|
39
39
|
</button>
|
|
40
|
+
<button type="button" data-tab="tasks">
|
|
41
|
+
<span class="nav-ico" aria-hidden="true"></span>
|
|
42
|
+
Tasks
|
|
43
|
+
</button>
|
|
44
|
+
<button type="button" data-tab="skills">
|
|
45
|
+
<span class="nav-ico" aria-hidden="true"></span>
|
|
46
|
+
Skills
|
|
47
|
+
</button>
|
|
40
48
|
</nav>
|
|
41
49
|
<div class="side-footer">
|
|
42
50
|
<button class="side-foot-btn" id="personalBtn" type="button">Personal</button>
|
|
@@ -105,18 +113,6 @@
|
|
|
105
113
|
/>
|
|
106
114
|
<button class="btn secondary" id="vaultRestoreBtn" type="button">Restore</button>
|
|
107
115
|
</div>
|
|
108
|
-
<div class="add-repo-row" id="shopRow">
|
|
109
|
-
<a class="btn" id="buyPro" href="https://getamem.com/buy/pro" target="_blank" rel="noopener"
|
|
110
|
-
>Buy Pro · $12</a
|
|
111
|
-
>
|
|
112
|
-
<a class="btn secondary" id="buyIt" href="https://getamem.com/buy/it" target="_blank" rel="noopener"
|
|
113
|
-
>Buy IT · $49</a
|
|
114
|
-
>
|
|
115
|
-
<span class="note"
|
|
116
|
-
>After pay, download <code>amem-license.json</code> on the thank-you page, then apply it in Plans/Setup or
|
|
117
|
-
<code>amem license apply --file</code>.</span
|
|
118
|
-
>
|
|
119
|
-
</div>
|
|
120
116
|
<p class="note" id="vaultDetail"></p>
|
|
121
117
|
</div>
|
|
122
118
|
</div>
|
|
@@ -140,30 +136,11 @@
|
|
|
140
136
|
</div>
|
|
141
137
|
<script>
|
|
142
138
|
(function () {
|
|
143
|
-
var TABS = ["
|
|
139
|
+
var TABS = ["setup", "dashboard", "brain", "analytics", "tasks"];
|
|
144
140
|
var params = new URLSearchParams(location.search);
|
|
145
141
|
var fromUrl = params.get("tab");
|
|
146
|
-
var
|
|
147
|
-
|
|
148
|
-
try {
|
|
149
|
-
welcomeDismissed = localStorage.getItem("amem.welcome.dismissed") === "1";
|
|
150
|
-
var tier = localStorage.getItem("amem.license.tier");
|
|
151
|
-
paid = tier === "pro" || tier === "it";
|
|
152
|
-
} catch (e) {}
|
|
153
|
-
var tab = "setup";
|
|
154
|
-
if (paid) {
|
|
155
|
-
if (fromUrl === "stats") tab = "analytics";
|
|
156
|
-
else if (TABS.indexOf(fromUrl) !== -1) tab = fromUrl;
|
|
157
|
-
else tab = "dashboard";
|
|
158
|
-
} else if (
|
|
159
|
-
!welcomeDismissed &&
|
|
160
|
-
fromUrl !== "brain" &&
|
|
161
|
-
fromUrl !== "stats" &&
|
|
162
|
-
fromUrl !== "analytics" &&
|
|
163
|
-
fromUrl !== "dashboard"
|
|
164
|
-
) {
|
|
165
|
-
tab = "welcome";
|
|
166
|
-
} else if (fromUrl === "stats") {
|
|
142
|
+
var tab = "dashboard";
|
|
143
|
+
if (fromUrl === "stats") {
|
|
167
144
|
tab = "analytics";
|
|
168
145
|
} else if (TABS.indexOf(fromUrl) !== -1) {
|
|
169
146
|
tab = fromUrl;
|
package/ui-static/styles.css
CHANGED
|
@@ -1857,6 +1857,305 @@ button.linkish:hover code {
|
|
|
1857
1857
|
.dash-grid {
|
|
1858
1858
|
grid-template-columns: 1fr;
|
|
1859
1859
|
}
|
|
1860
|
+
.tasks-board {
|
|
1861
|
+
grid-template-columns: 1fr;
|
|
1862
|
+
}
|
|
1863
|
+
}
|
|
1864
|
+
|
|
1865
|
+
.tasks-add {
|
|
1866
|
+
display: grid;
|
|
1867
|
+
grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto;
|
|
1868
|
+
gap: 0.55rem;
|
|
1869
|
+
margin: 0 0 1.1rem;
|
|
1870
|
+
}
|
|
1871
|
+
.tasks-add input {
|
|
1872
|
+
background: rgba(20, 27, 33, 0.9);
|
|
1873
|
+
color: var(--ink);
|
|
1874
|
+
border: 1px solid var(--line);
|
|
1875
|
+
border-radius: 10px;
|
|
1876
|
+
padding: 0.6rem 0.75rem;
|
|
1877
|
+
font: inherit;
|
|
1878
|
+
}
|
|
1879
|
+
.tasks-board {
|
|
1880
|
+
display: grid;
|
|
1881
|
+
grid-template-columns: repeat(5, minmax(9.5rem, 1fr));
|
|
1882
|
+
gap: 0.65rem;
|
|
1883
|
+
align-items: start;
|
|
1884
|
+
}
|
|
1885
|
+
.tasks-col {
|
|
1886
|
+
border: 1px solid var(--line);
|
|
1887
|
+
border-radius: 14px;
|
|
1888
|
+
background: rgba(20, 27, 33, 0.55);
|
|
1889
|
+
min-height: 12rem;
|
|
1890
|
+
transition: border-color 0.15s ease, background 0.15s ease;
|
|
1891
|
+
}
|
|
1892
|
+
.tasks-col.drag-over {
|
|
1893
|
+
border-color: rgba(46, 196, 182, 0.55);
|
|
1894
|
+
background: rgba(46, 196, 182, 0.08);
|
|
1895
|
+
}
|
|
1896
|
+
.tasks-col > header {
|
|
1897
|
+
display: flex;
|
|
1898
|
+
align-items: center;
|
|
1899
|
+
justify-content: space-between;
|
|
1900
|
+
gap: 0.5rem;
|
|
1901
|
+
padding: 0.65rem 0.75rem 0.35rem;
|
|
1902
|
+
}
|
|
1903
|
+
.tasks-col > header h2 {
|
|
1904
|
+
margin: 0;
|
|
1905
|
+
font-size: 0.82rem;
|
|
1906
|
+
letter-spacing: 0.04em;
|
|
1907
|
+
text-transform: uppercase;
|
|
1908
|
+
color: var(--muted);
|
|
1909
|
+
font-weight: 600;
|
|
1910
|
+
}
|
|
1911
|
+
.tasks-col > header span {
|
|
1912
|
+
color: var(--muted);
|
|
1913
|
+
font-size: 0.78rem;
|
|
1914
|
+
font-variant-numeric: tabular-nums;
|
|
1915
|
+
}
|
|
1916
|
+
.tasks-col-body {
|
|
1917
|
+
padding: 0.35rem 0.55rem 0.7rem;
|
|
1918
|
+
display: flex;
|
|
1919
|
+
flex-direction: column;
|
|
1920
|
+
gap: 0.45rem;
|
|
1921
|
+
min-height: 4rem;
|
|
1922
|
+
}
|
|
1923
|
+
.tasks-empty {
|
|
1924
|
+
margin: 0.35rem 0.2rem;
|
|
1925
|
+
color: var(--muted);
|
|
1926
|
+
font-size: 0.8rem;
|
|
1927
|
+
}
|
|
1928
|
+
.tasks-card {
|
|
1929
|
+
border: 1px solid var(--line);
|
|
1930
|
+
border-radius: 12px;
|
|
1931
|
+
background: rgba(11, 15, 18, 0.75);
|
|
1932
|
+
padding: 0.65rem 0.7rem 0.55rem;
|
|
1933
|
+
cursor: grab;
|
|
1934
|
+
}
|
|
1935
|
+
.tasks-card.dragging {
|
|
1936
|
+
opacity: 0.55;
|
|
1937
|
+
}
|
|
1938
|
+
.tasks-card h3 {
|
|
1939
|
+
margin: 0;
|
|
1940
|
+
font-size: 0.92rem;
|
|
1941
|
+
font-weight: 600;
|
|
1942
|
+
letter-spacing: -0.01em;
|
|
1943
|
+
line-height: 1.3;
|
|
1944
|
+
}
|
|
1945
|
+
/* Skills — procedural memory library */
|
|
1946
|
+
.skill-grid {
|
|
1947
|
+
display: grid;
|
|
1948
|
+
gap: 0.75rem;
|
|
1949
|
+
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
|
|
1950
|
+
margin-top: 1rem;
|
|
1951
|
+
}
|
|
1952
|
+
|
|
1953
|
+
.skill-card {
|
|
1954
|
+
background: var(--card);
|
|
1955
|
+
border: 1px solid var(--line);
|
|
1956
|
+
border-radius: 12px;
|
|
1957
|
+
display: flex;
|
|
1958
|
+
flex-direction: column;
|
|
1959
|
+
gap: 0.4rem;
|
|
1960
|
+
padding: 0.85rem;
|
|
1961
|
+
}
|
|
1962
|
+
|
|
1963
|
+
.skill-card-head {
|
|
1964
|
+
align-items: baseline;
|
|
1965
|
+
display: flex;
|
|
1966
|
+
gap: 0.5rem;
|
|
1967
|
+
justify-content: space-between;
|
|
1968
|
+
}
|
|
1969
|
+
|
|
1970
|
+
.skill-card-head h3 {
|
|
1971
|
+
font-size: 0.95rem;
|
|
1972
|
+
margin: 0;
|
|
1973
|
+
word-break: break-word;
|
|
1974
|
+
}
|
|
1975
|
+
|
|
1976
|
+
.skill-uses {
|
|
1977
|
+
color: var(--muted);
|
|
1978
|
+
flex: none;
|
|
1979
|
+
font-size: 0.7rem;
|
|
1980
|
+
}
|
|
1981
|
+
|
|
1982
|
+
.skill-card-desc {
|
|
1983
|
+
color: var(--muted);
|
|
1984
|
+
font-size: 0.82rem;
|
|
1985
|
+
line-height: 1.4;
|
|
1986
|
+
margin: 0;
|
|
1987
|
+
}
|
|
1988
|
+
|
|
1989
|
+
.skill-card-desc.muted {
|
|
1990
|
+
font-style: italic;
|
|
1991
|
+
opacity: 0.75;
|
|
1992
|
+
}
|
|
1993
|
+
|
|
1994
|
+
.skill-card-tags {
|
|
1995
|
+
display: flex;
|
|
1996
|
+
flex-wrap: wrap;
|
|
1997
|
+
gap: 0.25rem;
|
|
1998
|
+
}
|
|
1999
|
+
|
|
2000
|
+
.skill-tag {
|
|
2001
|
+
border: 1px solid var(--line);
|
|
2002
|
+
border-radius: 999px;
|
|
2003
|
+
color: var(--muted);
|
|
2004
|
+
font-size: 0.68rem;
|
|
2005
|
+
padding: 0.05rem 0.4rem;
|
|
2006
|
+
}
|
|
2007
|
+
|
|
2008
|
+
.skill-card-actions {
|
|
2009
|
+
display: flex;
|
|
2010
|
+
gap: 0.4rem;
|
|
2011
|
+
margin-top: auto;
|
|
2012
|
+
padding-top: 0.35rem;
|
|
2013
|
+
}
|
|
2014
|
+
|
|
2015
|
+
.skill-empty {
|
|
2016
|
+
background: var(--card);
|
|
2017
|
+
border: 1px dashed var(--line);
|
|
2018
|
+
border-radius: 12px;
|
|
2019
|
+
margin-top: 1rem;
|
|
2020
|
+
padding: 1.5rem;
|
|
2021
|
+
}
|
|
2022
|
+
|
|
2023
|
+
.skill-empty h2 {
|
|
2024
|
+
font-size: 1.05rem;
|
|
2025
|
+
margin: 0 0 0.4rem;
|
|
2026
|
+
}
|
|
2027
|
+
|
|
2028
|
+
.skill-drafts {
|
|
2029
|
+
margin-top: 1.25rem;
|
|
2030
|
+
}
|
|
2031
|
+
|
|
2032
|
+
.skill-drafts h2 {
|
|
2033
|
+
font-size: 1rem;
|
|
2034
|
+
margin: 0 0 0.2rem;
|
|
2035
|
+
}
|
|
2036
|
+
|
|
2037
|
+
.skill-draft-list {
|
|
2038
|
+
display: grid;
|
|
2039
|
+
gap: 0.6rem;
|
|
2040
|
+
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
|
|
2041
|
+
margin-top: 0.6rem;
|
|
2042
|
+
}
|
|
2043
|
+
|
|
2044
|
+
.skill-draft {
|
|
2045
|
+
background: var(--card);
|
|
2046
|
+
border: 1px solid var(--accent, var(--line));
|
|
2047
|
+
border-radius: 12px;
|
|
2048
|
+
padding: 0.8rem;
|
|
2049
|
+
}
|
|
2050
|
+
|
|
2051
|
+
.skill-draft-kind {
|
|
2052
|
+
color: var(--muted);
|
|
2053
|
+
font-size: 0.68rem;
|
|
2054
|
+
font-weight: 600;
|
|
2055
|
+
letter-spacing: 0.03em;
|
|
2056
|
+
text-transform: uppercase;
|
|
2057
|
+
}
|
|
2058
|
+
|
|
2059
|
+
.skill-draft h4 {
|
|
2060
|
+
font-size: 0.9rem;
|
|
2061
|
+
margin: 0.25rem 0 0.35rem;
|
|
2062
|
+
}
|
|
2063
|
+
|
|
2064
|
+
.skill-draft-why,
|
|
2065
|
+
.skill-draft-hint {
|
|
2066
|
+
color: var(--muted);
|
|
2067
|
+
font-size: 0.76rem;
|
|
2068
|
+
line-height: 1.4;
|
|
2069
|
+
margin: 0 0 0.35rem;
|
|
2070
|
+
}
|
|
2071
|
+
|
|
2072
|
+
.skill-draft-actions {
|
|
2073
|
+
display: flex;
|
|
2074
|
+
gap: 0.4rem;
|
|
2075
|
+
}
|
|
2076
|
+
|
|
2077
|
+
.skill-detail {
|
|
2078
|
+
background: var(--card);
|
|
2079
|
+
border: 1px solid var(--line);
|
|
2080
|
+
border-radius: 12px;
|
|
2081
|
+
margin-top: 1rem;
|
|
2082
|
+
padding: 0.9rem;
|
|
2083
|
+
}
|
|
2084
|
+
|
|
2085
|
+
.skill-detail-head {
|
|
2086
|
+
align-items: center;
|
|
2087
|
+
display: flex;
|
|
2088
|
+
justify-content: space-between;
|
|
2089
|
+
margin-bottom: 0.5rem;
|
|
2090
|
+
}
|
|
2091
|
+
|
|
2092
|
+
.skill-detail-head h2 {
|
|
2093
|
+
font-size: 1rem;
|
|
2094
|
+
margin: 0;
|
|
2095
|
+
}
|
|
2096
|
+
|
|
2097
|
+
.skill-detail-body {
|
|
2098
|
+
background: var(--bg);
|
|
2099
|
+
border: 1px solid var(--line);
|
|
2100
|
+
border-radius: 8px;
|
|
2101
|
+
font-size: 0.78rem;
|
|
2102
|
+
line-height: 1.5;
|
|
2103
|
+
max-height: 60vh;
|
|
2104
|
+
overflow: auto;
|
|
2105
|
+
padding: 0.75rem;
|
|
2106
|
+
white-space: pre-wrap;
|
|
2107
|
+
word-break: break-word;
|
|
2108
|
+
}
|
|
2109
|
+
|
|
2110
|
+
.tasks-card-repo {
|
|
2111
|
+
display: inline-block;
|
|
2112
|
+
margin-bottom: 0.3rem;
|
|
2113
|
+
padding: 0.08rem 0.4rem;
|
|
2114
|
+
border: 1px solid var(--line);
|
|
2115
|
+
border-radius: 999px;
|
|
2116
|
+
color: var(--muted);
|
|
2117
|
+
font-size: 0.68rem;
|
|
2118
|
+
font-weight: 600;
|
|
2119
|
+
letter-spacing: 0.01em;
|
|
2120
|
+
max-width: 100%;
|
|
2121
|
+
overflow: hidden;
|
|
2122
|
+
text-overflow: ellipsis;
|
|
2123
|
+
white-space: nowrap;
|
|
2124
|
+
}
|
|
2125
|
+
.tasks-card-body {
|
|
2126
|
+
margin: 0.35rem 0 0;
|
|
2127
|
+
color: var(--muted);
|
|
2128
|
+
font-size: 0.78rem;
|
|
2129
|
+
line-height: 1.35;
|
|
2130
|
+
}
|
|
2131
|
+
.tasks-card-actions {
|
|
2132
|
+
display: flex;
|
|
2133
|
+
align-items: center;
|
|
2134
|
+
gap: 0.35rem;
|
|
2135
|
+
margin-top: 0.55rem;
|
|
2136
|
+
}
|
|
2137
|
+
.tasks-status {
|
|
2138
|
+
flex: 1;
|
|
2139
|
+
min-width: 0;
|
|
2140
|
+
background: rgba(20, 27, 33, 0.95);
|
|
2141
|
+
color: var(--ink);
|
|
2142
|
+
border: 1px solid var(--line);
|
|
2143
|
+
border-radius: 8px;
|
|
2144
|
+
padding: 0.28rem 0.4rem;
|
|
2145
|
+
font: inherit;
|
|
2146
|
+
font-size: 0.75rem;
|
|
2147
|
+
}
|
|
2148
|
+
.tasks-del {
|
|
2149
|
+
padding: 0.25rem 0.45rem !important;
|
|
2150
|
+
}
|
|
2151
|
+
|
|
2152
|
+
@media (max-width: 1100px) {
|
|
2153
|
+
.tasks-board {
|
|
2154
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
2155
|
+
}
|
|
2156
|
+
.tasks-add {
|
|
2157
|
+
grid-template-columns: 1fr;
|
|
2158
|
+
}
|
|
1860
2159
|
}
|
|
1861
2160
|
|
|
1862
2161
|
.platform-card.accented {
|